Patchwork support for multiarch systems

login
register
mail settings
Submitter Thomas Schwinge
Date Sept. 6, 2011, 6:56 a.m.
Message ID <87k49m9n1l.fsf@kepler.schwinge.homeip.net>
Download mbox | patch
Permalink /patch/113494/
State Superseded, archived
Headers show

Comments

Thomas Schwinge - Sept. 6, 2011, 6:56 a.m.
Hi!

On Sun, 21 Aug 2011 02:14:10 +0200, Matthias Klose <doko@ubuntu.com> wrote:
Non-text part: multipart/mixed
> On 08/20/2011 09:51 PM, Matthias Klose wrote:
> > Multiarch [1] is the term being used to refer to the capability of a system to
> > install and run applications of multiple different binary targets on the same
> > system.  The idea and name of multiarch dates back to 2004/2005 [2] (to be
> > confused with multiarch in glibc).
> 
> attached is an updated patch which includes feedback from Jakub and Joseph.

I can confirm that this restores out-of-the box GCC bootstrap on Debian
GNU/Linux testing 386 and Debian GNU/Hurd unstable i386.  Thanks!

A hint for the kids trying this patch at home: don't forget to regenerate
gcc/configure...  (Saves you some hours...)  ;-)


Matthias, please put the following patch on top, though.  (For preserving
the order of using i386/t-linux (which should be renamed i386/t-gnu-user,
but that's for another day) and i386/t-{gnu,kfreebsd}.

	* gcc/config.gcc <i[34567]86-*-kfreebsd*-gnu, x86_64-*-kfreebsd*-gnu>
	<i[34567]86-*-gnu*>: Take care to put their configuration files after
	the i386/t-linux one.
 


Grüße,
 Thomas

Patch

diff --git a/gcc/config.gcc b/gcc/config.gcc
index 784ddd7..7d0214f 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -1317,14 +1317,12 @@  i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu | i
 		;;
 	i[34567]86-*-kfreebsd*-gnu)
 		tm_file="${tm_file} i386/gnu-user.h kfreebsd-gnu.h i386/kfreebsd-gnu.h"
-		tmake_file="${tmake_file} i386/t-kfreebsd"
 		;;
 	i[34567]86-*-kopensolaris*-gnu)
 		tm_file="${tm_file} i386/gnu-user.h kopensolaris-gnu.h i386/kopensolaris-gnu.h"
 		;;
 	i[34567]86-*-gnu*)
 		tm_file="$tm_file i386/gnu-user.h gnu.h i386/gnu.h"
-		tmake_file="${tmake_file} i386/t-gnu"
 		;;
 	esac
 	tmake_file="${tmake_file} i386/t-crtstuff"
@@ -3587,11 +3585,15 @@  case ${target} in
 
 	i[34567]86-*-darwin* | x86_64-*-darwin*)
 		;;
-	i[34567]86-*-linux* | x86_64-*-linux* | \
-	  i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu | \
-	  i[34567]86-*-gnu*)
+	i[34567]86-*-linux* | x86_64-*-linux*)
 		tmake_file="${tmake_file} i386/t-linux"
 		;;
+	i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu)
+		tmake_file="${tmake_file} i386/t-linux i386/t-kfreebsd"
+		;;
+	i[34567]86-*-gnu*)
+		tmake_file="${tmake_file} i386/t-linux i386/t-gnu"
+		;;
 	i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
 		;;
 	i[34567]86-*-cygwin* | i[34567]86-*-mingw* | x86_64-*-mingw*)