Hi! On Sat, 19 May 2012 18:05:30 +0200, I wrote: > On Wed, 09 May 2012 02:38:11 +0200, Matthias Klose <[email protected]> wrote: > > ok, the attached patch includes just the support for the x86 targets, > > including > > the kfreebsd and the hurd systems. The x32 multiarch tuple isn't yet > > defined, so > > I'd like to keep it out of the first version. > > I will test this on/for GNU/Hurd next week (hopefully)
I have now completed this testing: the patch does work correctly when
natively building i686-linux-gnu on Debian GNU/Linux as well as i686-gnu
on Debian GNU/Hurd, and also when building a i686-linux-gnu to i686-gnu
cross-compiler which is not using the Debian multiarch arrangement.
> but here are
> already two comments.
>
> > Index: gcc/Makefile.in
> > ===================================================================
> > --- gcc/Makefile.in (revision 187271)
> > +++ gcc/Makefile.in (working copy)
> > @@ -350,6 +350,17 @@
> >
> > enable_plugin = @enable_plugin@
> >
> > +# Multiarch support
> > +enable_multiarch = @enable_multiarch@
> > +with_float = @with_float@
> > +ifeq ($(enable_multiarch),yes)
> > + if_multiarch = $(1)
> > +else ifeq ($(enable_multiarch),auto-detect)
> > + if_multiarch = $(if $(wildcard $(shell echo
> > $(SYSTEM_HEADER_DIR))/../../usr/lib/*/crti.o),$(1))
> > +else
> > + if_multiarch =
> > +endif
>
> The auto-detection won't work for cases where native_system_header_dir
> (as per config.gcc; or command-line argument) is not /usr/include.
This does not really bother me, as my GNU/Hurd configurations also use
/usr/include as opposed to /include, and the auto-detection will work for
that case.
> > Index: gcc/config.gcc
> > ===================================================================
> > --- gcc/config.gcc (revision 187271)
> > +++ gcc/config.gcc (working copy)
> > @@ -3472,10 +3476,14 @@
> >
> > 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*)
> > ;;
> > + 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"
> > + ;;
>
> > Index: gcc/config/i386/t-linux
> > ===================================================================
> > --- gcc/config/i386/t-linux (revision 0)
> > +++ gcc/config/i386/t-linux (revision 0)
> > @@ -0,0 +1 @@
> > +MULTIARCH_DIRNAME = $(call if_multiarch,i386-linux-gnu)
> > Index: gcc/config/i386/t-gnu
> > ===================================================================
> > --- gcc/config/i386/t-gnu (revision 0)
> > +++ gcc/config/i386/t-gnu (revision 0)
> > @@ -0,0 +1 @@
> > +MULTIARCH_DIRNAME = $(call if_multiarch,i386-gnu)
>
> > Index: gcc/config/i386/t-kfreebsd
> > ===================================================================
> > --- gcc/config/i386/t-kfreebsd (revision 0)
> > +++ gcc/config/i386/t-kfreebsd (revision 0)
> > @@ -0,0 +1,5 @@
> > +MULTIARCH_DIRNAME = $(call if_multiarch,i386-kfreebsd-gnu)
> > +
> > +# MULTILIB_OSDIRNAMES are set in t-linux64.
> > +KFREEBSD_OS = $(filter kfreebsd%, $(word 3, $(subst -, ,$(target))))
> > +MULTILIB_OSDIRNAMES := $(subst linux,$(KFREEBSD_OS),$(MULTILIB_OSDIRNAMES))
>
> As of 2011-11-02 (a997b0d8a7b720578f40c0f9f7767bac02022e0b, r180767)
> there was no i386/t-linux anymore, and you're now re-introducing it, so
> you'll need to re-add it for the *-linux* cases cited above, but also
> remove it from the other *-gnu* cases.
gcc/
* config.gcc <i[34567]86-*-linux* | x86_64-*-linux*> (tmake_file):
Include i386/t-linux.
<i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu> (tmake_file):
Include i386/t-kfreebsd.
<i[34567]86-*-gnu*> (tmake_file): Include i386/t-gnu.
diff --git a/gcc/config.gcc b/gcc/config.gcc
index 7ec184c..39c70f2 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -3481,9 +3481,14 @@ 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-kfreebsd"
+ ;;
+ i[34567]86-*-gnu*)
+ tmake_file="$tmake_file i386/t-gnu"
;;
i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
;;
Grüße,
Thomas
pgp8TtovDlv4g.pgp
Description: PGP signature
