Bug #261670 - Automatically revert the CHOST metadata to the initial value
after src_install, in case the ebuild has changed it.

svn path=/main/trunk/; revision=13088
diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py
index 3d7439d..09c9ce6 100644
--- a/pym/_emerge/__init__.py
+++ b/pym/_emerge/__init__.py
@@ -3189,6 +3189,7 @@
 		settings = self.settings
 
 		if self.phase == "install":
+			portage._post_src_install_chost_fix(settings)
 			portage._post_src_install_uid_fix(settings)
 
 		post_phase_cmds = self._post_phase_cmds.get(self.phase)
diff --git a/pym/portage/__init__.py b/pym/portage/__init__.py
index 8c2137f..705c1f3 100644
--- a/pym/portage/__init__.py
+++ b/pym/portage/__init__.py
@@ -4724,6 +4724,7 @@
 	if mydo == "install":
 		_check_build_log(mysettings)
 		if phase_retval == os.EX_OK:
+			_post_src_install_chost_fix(mysettings)
 			phase_retval = _post_src_install_checks(mysettings)
 
 	if mydo == "test" and phase_retval != os.EX_OK and \
@@ -4874,6 +4875,17 @@
 		msg.extend("\t" + line for line in make_jobserver)
 		_eqawarn(msg)
 
+def _post_src_install_chost_fix(settings):
+	"""
+	It's possible that the ebuild has changed the
+	CHOST variable, so revert it to the initial
+	setting.
+	"""
+	chost = settings.get('CHOST')
+	if chost:
+		write_atomic(os.path.join(settings['PORTAGE_BUILDDIR'],
+			'build-info', 'CHOST'), chost + '\n')
+
 def _post_src_install_uid_fix(mysettings):
 	"""
 	Files in $D with user and group bits that match the "portage"