phase-helpers.sh: handle readonly EPREFIX for local override (bug 655414)

Since ebuild.sh calls "declare -r ED EPREFIX EROOT", use env to
override EPREFIX for the called command.

Fixes: 17fce85669be ("phase-helpers.sh: fix has/best_version for cross-prefix portageq (bug 655414)")
diff --git a/bin/phase-helpers.sh b/bin/phase-helpers.sh
index 99a30a1..5c9f957 100644
--- a/bin/phase-helpers.sh
+++ b/bin/phase-helpers.sh
@@ -880,6 +880,7 @@
 
 ___best_version_and_has_version_common() {
 	local atom root root_arg
+	local -a cmd=()
 	case $1 in
 		--host-root|-r|-d|-b)
 			root_arg=$1
@@ -903,7 +904,7 @@
 				# Since portageq requires the root argument be consistent
 				# with EPREFIX, ensure consistency here (bug 655414).
 				root=/${PORTAGE_OVERRIDE_EPREFIX#/}
-				local -x EPREFIX=${PORTAGE_OVERRIDE_EPREFIX}
+				cmd+=(env EPREFIX="${PORTAGE_OVERRIDE_EPREFIX}")
 			else
 				root=/
 			fi ;;
@@ -927,10 +928,11 @@
 	esac
 
 	if [[ -n $PORTAGE_IPC_DAEMON ]] ; then
-		"${PORTAGE_BIN_PATH}"/ebuild-ipc "${FUNCNAME[1]}" "${root}" "${atom}"
+		cmd+=("${PORTAGE_BIN_PATH}"/ebuild-ipc "${FUNCNAME[1]}" "${root}" "${atom}")
 	else
-		"${PORTAGE_BIN_PATH}"/ebuild-helpers/portageq "${FUNCNAME[1]}" "${root}" "${atom}"
+		cmd+=("${PORTAGE_BIN_PATH}"/ebuild-helpers/portageq "${FUNCNAME[1]}" "${root}" "${atom}")
 	fi
+	"${cmd[@]}"
 	local retval=$?
 	case "${retval}" in
 		0|1)