public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* RFA: Add makefile for cross-configuration torture test
@ 2011-04-13 15:50 Joern Rennecke
  2011-04-13 16:07 ` Rainer Orth
                   ` (2 more replies)
  0 siblings, 3 replies; 17+ messages in thread
From: Joern Rennecke @ 2011-04-13 15:50 UTC (permalink / raw)
  To: gcc-patches

[-- Attachment #1: Type: text/plain, Size: 1190 bytes --]

Global patches that affect various configurations in various ways tend to
break configurations.  People usually make an effort with global search and
replace, but all too often some details are overlooked (or simply mistyped).

This Makefile is supposed to give coverage of all the main configure targets
and notable variants that enable different config files.
Each target is configured, using --enable-werror-always, and then we attempt
to build 'all-gcc'.  configuration and make output is collected in a 'log'
directory.
This is based on config-list.mk in the pr46489-20101227-branch, but with
configurations removed that have been recently removed or obsoleted.
This leaves 193 configurations, of which 23 currently appear to be broken
(according to a test run on gcc20).  These are:

alpha-dec-osf5.1
am33_2.0-linux
arm-freebsd6
arm-wince-pe
avr-elf
avr-rtems
i586-netware --with-ld=../scripts/nwld
i686-openbsd3.0
i686-pc-msdosdjgpp
i686-wrs-vxworksae
iq2000-elf
lm32-elf
lm32-rtems
lm32-uclinux
m68k-openbsd
microblaze-elf
microblaze-linux
mips-openbsd
mn10300-elf
powerpc-wrs-vxworksae
rs6000-ibm-aix5.2.0
rs6000-ibm-aix5.3.0
rs6000-ibm-aix6.0

[-- Attachment #2: config-list-diff --]
[-- Type: text/plain, Size: 5139 bytes --]

2010-04-13  Joern Rennecke  <joern.rennecke@embecosm.com>

        * config-list.mk: New file.

Index: contrib/config-list.mk
===================================================================
--- contrib/config-list.mk	(revision 0)
+++ contrib/config-list.mk	(revision 0)
@@ -0,0 +1,92 @@
+# Run tests covering all config.gcc cases.
+host_options='--with-mpc=/opt/cfarm/mpc' # gcc10
+# Make sure you have a recent enough gcc (with ada support) in your path so
+# that --enable-werror-always will work.
+# To use, create a sibling directory to the gcc sources and cd into this.
+# Use -j / -l make arguments and nice to assure a smooth resource-efficient
+# load on the build machine, e.g. for 24 cores:
+# svn co svn://gcc.gnu.org/svn/gcc/branches/foo-branch gcc
+# mkdir multi-mk; cd multi-mk
+# nohup nice make -j25 -l36 -f ../gcc/contrib/config-list.mk > make.out 2>&1 &
+#
+# v850e1-elf is rejected by config.sub
+LIST = alpha-linux-gnu alpha-freebsd6 alpha-netbsd alpha-openbsd \
+  alpha-dec-osf5.1 alpha64-dec-vms alpha-dec-vms am33_2.0-linux \
+  arm-wrs-vxworks arm-freebsd6 arm-netbsdelf arm-linux \
+  arm-linux-androideabi arm-uclinux_eabi arm-ecos-elf arm-eabi \
+  arm-symbianelf arm-rtems arm-elf arm-wince-pe avr-rtems avr-elf \
+  bfin-elf bfin-uclinux bfin-linux-uclibc bfin-rtems bfin-openbsd \
+  cris-elf cris-linux crisv32-elf crisv32-linux fido-elf \
+  fr30-elf frv-elf frv-linux h8300-elf h8300-rtems hppa-linux-gnu \
+  hppa-linux-gnuOPT-enable-sjlj-exceptions=yes hppa64-linux-gnu \
+  hppa2.0-hpux10.1 hppa64-hpux11.3 \
+  hppa64-hpux11.0OPT-enable-sjlj-exceptions=yes hppa2.0-hpux11.9 \
+  i686-pc-linux-gnu i686-apple-darwin i686-apple-darwin9 i686-apple-darwin10 \
+  i486-freebsd4 i686-freebsd6 i686-kfreebsd-gnu \
+  i686-netbsdelf9 i686-knetbsd-gnu i686-openbsd i686-openbsd3.0 \
+  i686-elf i686-kopensolaris-gnu i686-symbolics-gnu i686-pc-msdosdjgpp \
+  i686-lynxos i586-netwareOPT-with-ld=SCRIPTSnwld i686-nto-qnx \
+  i686-rtems i686-solaris2.10 i686-wrs-vxworks \
+  i686-wrs-vxworksae \
+  i686-cygwinOPT-enable-threads=yes i686-mingw32crt ia64-elf \
+  ia64-freebsd6 ia64-linux ia64-hpux ia64-hp-vms iq2000-elf lm32-elf \
+  lm32-rtems lm32-uclinux m32c-rtems m32c-elf m32r-elf m32rle-elf m32r-rtems \
+  m32r-linux m32rle-linux m68k-elf m68k-netbsdelf \
+  m68k-openbsd m68k-uclinux m68k-linux m68k-rtems \
+  mcore-elf mep-elf microblaze-linux microblaze-elf \
+  mips-sgi-irix6.5OPT-with-stabsOPT-enable-threads=posix mips-netbsd \
+  mips64el-st-linux-gnu mips64octeon-linux mipsisa64r2-linux \
+  mipsisa32r2-linux-gnu mips-openbsd mipsisa64r2-sde-elf mipsisa32-elfoabi \
+  mipsisa64-elfoabi mipsisa64r2el-elf mipsisa64sr71k-elf mipsisa64sb1-elf \
+  mipsel-elf mips64-elf mips64vr-elf mips64orion-elf mips-rtems \
+  mips-wrs-vxworks mipstx39-elf mmix-knuth-mmixware mn10300-elf moxie-elf \
+  moxie-uclinux moxie-rtems pdp11-aout picochip-elf powerpc-darwin8 \
+  powerpc-darwin7 powerpc64-darwin powerpc-freebsd6 powerpc-netbsd \
+  powerpc-eabispe powerpc-eabisimaltivec powerpc-eabisim ppc-elf \
+  powerpc-eabialtivec powerpc-xilinx-eabi powerpc-eabi \
+  powerpc-rtems4.11OPT-enable-threads=yes powerpc-linux_spe \
+  powerpc-linux_paired powerpc64-linux_altivec \
+  powerpc-wrs-vxworks powerpc-wrs-vxworksae powerpc-lynxos powerpcle-elf \
+  powerpcle-eabisim powerpcle-eabi rs6000-ibm-aix4.3 rs6000-ibm-aix5.1.0 \
+  rs6000-ibm-aix5.2.0 rs6000-ibm-aix5.3.0 rs6000-ibm-aix6.0 \
+  rx-elf s390-linux-gnu s390x-linux-gnu s390x-ibm-tpf sh-elf \
+  shle-linux sh-netbsdelf sh-superh-elf sh5el-netbsd sh64-netbsd sh64-linux \
+  sh64-elfOPT-with-newlib sh-rtems sh-wrs-vxworks sparc-elf \
+  sparc-leon-elf sparc-rtems sparc-linux-gnu \
+  sparc-leon3-linux-gnuOPT-enable-target=all sparc-netbsdelf \
+  sparc64-sun-solaris2.10OPT-with-gnu-ldOPT-with-gnu-asOPT-enable-threads=posix \
+  sparc-wrs-vxworks sparc64-elf sparc64-rtems sparc64-linux sparc64-freebsd6 \
+  sparc64-netbsd sparc64-openbsd spu-elf v850e-elf v850-elf vax-linux-gnu \
+  vax-netbsdelf vax-openbsd x86_64-apple-darwin \
+  x86_64-pc-linux-gnuOPT-with-fpmath=avx \
+  x86_64-elfOPT-with-fpmath=sse x86_64-freebsd6 x86_64-netbsd \
+  x86_64-knetbsd-gnu x86_64-w64-mingw32 \
+  x86_64-mingw32OPT-enable-sjlj-exceptions=yes xstormy16-elf xtensa-elf \
+  xtensa-linux
+
+all: $(LIST)
+
+.PHONEY: make-log-dir make-script-dir
+
+empty=
+
+#Check for the presence of the MAINTAINERS file to make sure we are in a
+#suitable current working direcrory.
+make-log-dir: ../gcc/MAINTAINERS
+	mkdir log
+
+# The 'ix86-netware --with-ld=nwld' configuration needs a nwld executable to
+# configure.  See PR47104.
+make-script-dir:
+	mkdir scripts
+	echo ld $* > scripts/nwld
+	chmod u+x scripts/nwld
+
+$(LIST): make-log-dir make-script-dir
+	-mkdir $@
+	(cd $@ && \
+	../../gcc/configure \
+	--target=$(subst SCRIPTS,`pwd`/../scripts/,$(subst OPT,$(empty) -,$@)) \
+	--enable-werror-always ${host_options} --enable-languages=all,ada,go) \
+	> log/$@-config.out 2>&1
+	-$(MAKE) -C $@ all-gcc > log/$@-make.out 2>&1 && rm -r $@

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: RFA: Add makefile for cross-configuration torture test
  2011-04-13 15:50 RFA: Add makefile for cross-configuration torture test Joern Rennecke
@ 2011-04-13 16:07 ` Rainer Orth
  2011-04-13 16:24   ` Joern Rennecke
  2011-04-13 16:27 ` Joseph S. Myers
  2023-02-10 10:16 ` [GCC] In 'contrib/config-list.mk', clarify i686-symbolics-gnu to i686-gnu (was: RFA: Add makefile for cross-configuration torture test) Thomas Schwinge
  2 siblings, 1 reply; 17+ messages in thread
From: Rainer Orth @ 2011-04-13 16:07 UTC (permalink / raw)
  To: Joern Rennecke; +Cc: gcc-patches

Joern Rennecke <joern.rennecke@embecosm.com> writes:

> Global patches that affect various configurations in various ways tend to
> break configurations.  People usually make an effort with global search and
> replace, but all too often some details are overlooked (or simply mistyped).
>
> This Makefile is supposed to give coverage of all the main configure targets
> and notable variants that enable different config files.
> Each target is configured, using --enable-werror-always, and then we attempt
> to build 'all-gcc'.  configuration and make output is collected in a 'log'
> directory.
> This is based on config-list.mk in the pr46489-20101227-branch, but with
> configurations removed that have been recently removed or obsoleted.
> This leaves 193 configurations, of which 23 currently appear to be broken
> (according to a test run on gcc20).  These are:
>
> alpha-dec-osf5.1

Would you care to report the kind of breakage you found?  This may
simply be a case of mips-t* only being buildable native (PR
target/3746) and gas/gld not supporting the target.

Thanks.
	Rainer

-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: RFA: Add makefile for cross-configuration torture test
  2011-04-13 16:07 ` Rainer Orth
@ 2011-04-13 16:24   ` Joern Rennecke
  0 siblings, 0 replies; 17+ messages in thread
From: Joern Rennecke @ 2011-04-13 16:24 UTC (permalink / raw)
  To: Rainer Orth; +Cc: gcc-patches

Quoting Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>:

>> alpha-dec-osf5.1
>
> Would you care to report the kind of breakage you found?  This may
> simply be a case of mips-t* only being buildable native (PR
> target/3746) and gas/gld not supporting the target.

Yes, that's what it is.

gcc -c   -g -O2 -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE  -W -Wall  
-Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes  
-Wmissing-format-attribute -pedantic -Wno-long-long  
-Wno-variadic-macros -Wno-overlength-strings -Werror  
-Wold-style-definition -Wc++-compat -fno-common -Wno-error  
-DHAVE_CONFIG_H -I. -I. -I../../../gcc/gcc -I../../../gcc/gcc/.  
-I../../../gcc/gcc/../include -I../../../gcc/gcc/../libcpp/include  
-I/opt/cfarm/mpc/include  -I../../../gcc/gcc/../libdecnumber  
-I../../../gcc/gcc/../libdecnumber/dpd -I../libdecnumber     
../../../gcc/gcc/mips-tfile.c -o mips-tfile.o
../../../gcc/gcc/mips-tfile.c:672:24: fatal error: mips/a.out.h: No  
such file or directory
compilation terminated.

If you have access to the gcc compile farm, you can read the individual
results in gcc20.fsffrance.org:/home/amylaar/pr46489/apr12/multi2/log

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: RFA: Add makefile for cross-configuration torture test
  2011-04-13 15:50 RFA: Add makefile for cross-configuration torture test Joern Rennecke
  2011-04-13 16:07 ` Rainer Orth
@ 2011-04-13 16:27 ` Joseph S. Myers
       [not found]   ` <20110413140647.provnjxog4og0o84-nzlynne@webmail.spamcop.net>
  2023-02-10 10:16 ` [GCC] In 'contrib/config-list.mk', clarify i686-symbolics-gnu to i686-gnu (was: RFA: Add makefile for cross-configuration torture test) Thomas Schwinge
  2 siblings, 1 reply; 17+ messages in thread
From: Joseph S. Myers @ 2011-04-13 16:27 UTC (permalink / raw)
  To: Joern Rennecke; +Cc: gcc-patches

On Wed, 13 Apr 2011, Joern Rennecke wrote:

> This is based on config-list.mk in the pr46489-20101227-branch, but with
> configurations removed that have been recently removed or obsoleted.

On the whole I think the obsolete but not yet removed targets should be 
included in the list with --enable-obsolete, to be removed from it if they 
are actually removed from GCC.  We know that Interix targets are broken, 
but the other obsolete targets might still build.

> This leaves 193 configurations, of which 23 currently appear to be broken
> (according to a test run on gcc20).  These are:

Do these all have issues filed (marked as blocking PR 47093 or 44756 as 
applicable, and with any target maintainer CC:ed)?

-- 
Joseph S. Myers
joseph@codesourcery.com

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: RFA: Add makefile for cross-configuration torture test
       [not found]     ` <Pine.LNX.4.64.1104131911080.8645@digraph.polyomino.org.uk>
@ 2011-04-13 21:02       ` Joern Rennecke
  2011-04-13 22:10         ` Joseph S. Myers
  2011-04-14  5:51         ` Ralf Wildenhues
  0 siblings, 2 replies; 17+ messages in thread
From: Joern Rennecke @ 2011-04-13 21:02 UTC (permalink / raw)
  To: Joseph S. Myers; +Cc: gcc-patches

[-- Attachment #1: Type: text/plain, Size: 789 bytes --]

Quoting "Joseph S. Myers" <joseph@codesourcery.com>:

> I think Interix and SCORE should be included, but probably only one of
> Solaris 8 and Solaris 9 needs to be included for each of x86 and SPARC
> since the targets don't appear significantly different - so no need to
> include Solaris 8 at all if you include Solaris 9 for both x86 and SPARC.

All right, amended patch attached.

> It's up to the people who volunteered to maintain Interix and SCORE to get
> them into a state that builds cleanly - and you can make sure they are
> CC:ed on the relevant bugs and point out that without fixes the targets
> will be removed later in 4.7 development.

Bug 47096 already exists for the Interix failure; no Interix maintainer is
listed in MAINTAINERS.
I've filed Bug 48595 for score-elf.

[-- Attachment #2: config-list-diff2 --]
[-- Type: text/plain, Size: 5244 bytes --]

2010-04-13  Joern Rennecke  <joern.rennecke@embecosm.com>

        * config-list.mk: New file.

Index: contrib/config-list.mk
===================================================================
--- contrib/config-list.mk	(revision 0)
+++ contrib/config-list.mk	(revision 0)
@@ -0,0 +1,93 @@
+# Run tests covering all config.gcc cases.
+host_options='--with-mpc=/opt/cfarm/mpc' # gcc10
+# Make sure you have a recent enough gcc (with ada support) in your path so
+# that --enable-werror-always will work.
+# To use, create a sibling directory to the gcc sources and cd into this.
+# Use -j / -l make arguments and nice to assure a smooth resource-efficient
+# load on the build machine, e.g. for 24 cores:
+# svn co svn://gcc.gnu.org/svn/gcc/branches/foo-branch gcc
+# mkdir multi-mk; cd multi-mk
+# nohup nice make -j25 -l36 -f ../gcc/contrib/config-list.mk > make.out 2>&1 &
+#
+# v850e1-elf is rejected by config.sub
+LIST = alpha-linux-gnu alpha-freebsd6 alpha-netbsd alpha-openbsd \
+  alpha-dec-osf5.1 alpha64-dec-vms alpha-dec-vms am33_2.0-linux \
+  arm-wrs-vxworks arm-freebsd6 arm-netbsdelf arm-linux \
+  arm-linux-androideabi arm-uclinux_eabi arm-ecos-elf arm-eabi \
+  arm-symbianelf arm-rtems arm-elf arm-wince-pe avr-rtems avr-elf \
+  bfin-elf bfin-uclinux bfin-linux-uclibc bfin-rtems bfin-openbsd \
+  cris-elf cris-linux crisv32-elf crisv32-linux fido-elf \
+  fr30-elf frv-elf frv-linux h8300-elf h8300-rtems hppa-linux-gnu \
+  hppa-linux-gnuOPT-enable-sjlj-exceptions=yes hppa64-linux-gnu \
+  hppa2.0-hpux10.1 hppa64-hpux11.3 \
+  hppa64-hpux11.0OPT-enable-sjlj-exceptions=yes hppa2.0-hpux11.9 \
+  i686-pc-linux-gnu i686-apple-darwin i686-apple-darwin9 i686-apple-darwin10 \
+  i486-freebsd4 i686-freebsd6 i686-kfreebsd-gnu \
+  i686-netbsdelf9 i686-knetbsd-gnu i686-openbsd i686-openbsd3.0 \
+  i686-elf i686-kopensolaris-gnu i686-symbolics-gnu i686-pc-msdosdjgpp \
+  i686-lynxos i586-netwareOPT-with-ld=SCRIPTSnwld i686-nto-qnx \
+  i686-rtems i686-solaris2.10 i686-wrs-vxworks \
+  i686-wrs-vxworksae \
+  i686-cygwinOPT-enable-threads=yes i686-mingw32crt ia64-elf \
+  ia64-freebsd6 ia64-linux ia64-hpux ia64-hp-vms iq2000-elf lm32-elf \
+  lm32-rtems lm32-uclinux m32c-rtems m32c-elf m32r-elf m32rle-elf m32r-rtems \
+  m32r-linux m32rle-linux m68k-elf m68k-netbsdelf \
+  m68k-openbsd m68k-uclinux m68k-linux m68k-rtems \
+  mcore-elf mep-elf microblaze-linux microblaze-elf \
+  mips-sgi-irix6.5OPT-with-stabsOPT-enable-threads=posix mips-netbsd \
+  mips64el-st-linux-gnu mips64octeon-linux mipsisa64r2-linux \
+  mipsisa32r2-linux-gnu mips-openbsd mipsisa64r2-sde-elf mipsisa32-elfoabi \
+  mipsisa64-elfoabi mipsisa64r2el-elf mipsisa64sr71k-elf mipsisa64sb1-elf \
+  mipsel-elf mips64-elf mips64vr-elf mips64orion-elf mips-rtems \
+  mips-wrs-vxworks mipstx39-elf mmix-knuth-mmixware mn10300-elf moxie-elf \
+  moxie-uclinux moxie-rtems pdp11-aout picochip-elf powerpc-darwin8 \
+  powerpc-darwin7 powerpc64-darwin powerpc-freebsd6 powerpc-netbsd \
+  powerpc-eabispe powerpc-eabisimaltivec powerpc-eabisim ppc-elf \
+  powerpc-eabialtivec powerpc-xilinx-eabi powerpc-eabi \
+  powerpc-rtems4.11OPT-enable-threads=yes powerpc-linux_spe \
+  powerpc-linux_paired powerpc64-linux_altivec \
+  powerpc-wrs-vxworks powerpc-wrs-vxworksae powerpc-lynxos powerpcle-elf \
+  powerpcle-eabisim powerpcle-eabi rs6000-ibm-aix4.3 rs6000-ibm-aix5.1.0 \
+  rs6000-ibm-aix5.2.0 rs6000-ibm-aix5.3.0 rs6000-ibm-aix6.0 \
+  rx-elf s390-linux-gnu s390x-linux-gnu s390x-ibm-tpf sh-elf \
+  shle-linux sh-netbsdelf sh-superh-elf sh5el-netbsd sh64-netbsd sh64-linux \
+  sh64-elfOPT-with-newlib sh-rtems sh-wrs-vxworks sparc-elf \
+  sparc-leon-elf sparc-rtems sparc-linux-gnu \
+  sparc-leon3-linux-gnuOPT-enable-target=all sparc-netbsdelf \
+  sparc64-sun-solaris2.10OPT-with-gnu-ldOPT-with-gnu-asOPT-enable-threads=posix \
+  sparc-wrs-vxworks sparc64-elf sparc64-rtems sparc64-linux sparc64-freebsd6 \
+  sparc64-netbsd sparc64-openbsd spu-elf v850e-elf v850-elf vax-linux-gnu \
+  vax-netbsdelf vax-openbsd x86_64-apple-darwin \
+  x86_64-pc-linux-gnuOPT-with-fpmath=avx \
+  x86_64-elfOPT-with-fpmath=sse x86_64-freebsd6 x86_64-netbsd \
+  x86_64-knetbsd-gnu x86_64-w64-mingw32 \
+  x86_64-mingw32OPT-enable-sjlj-exceptions=yes xstormy16-elf xtensa-elf \
+  xtensa-linux sparc-sun-solaris2.9 i686-solaris2.9 \
+  i686-interix3OPT-enable-obsolete score-elfOPT-enable-obsolete
+
+all: $(LIST)
+
+.PHONEY: make-log-dir make-script-dir
+
+empty=
+
+#Check for the presence of the MAINTAINERS file to make sure we are in a
+#suitable current working direcrory.
+make-log-dir: ../gcc/MAINTAINERS
+	mkdir log
+
+# The 'ix86-netware --with-ld=nwld' configuration needs a nwld executable to
+# configure.  See PR47104.
+make-script-dir:
+	mkdir scripts
+	echo ld $* > scripts/nwld
+	chmod u+x scripts/nwld
+
+$(LIST): make-log-dir make-script-dir
+	-mkdir $@
+	(cd $@ && \
+	../../gcc/configure \
+	--target=$(subst SCRIPTS,`pwd`/../scripts/,$(subst OPT,$(empty) -,$@)) \
+	--enable-werror-always ${host_options} --enable-languages=all,ada,go) \
+	> log/$@-config.out 2>&1
+	-$(MAKE) -C $@ all-gcc > log/$@-make.out 2>&1 && rm -r $@

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: RFA: Add makefile for cross-configuration torture test
  2011-04-13 21:02       ` Joern Rennecke
@ 2011-04-13 22:10         ` Joseph S. Myers
  2011-04-13 22:15           ` Douglas B Rupp
  2011-04-14  5:51         ` Ralf Wildenhues
  1 sibling, 1 reply; 17+ messages in thread
From: Joseph S. Myers @ 2011-04-13 22:10 UTC (permalink / raw)
  To: Joern Rennecke; +Cc: gcc-patches, Douglas B Rupp

On Wed, 13 Apr 2011, Joern Rennecke wrote:

> > It's up to the people who volunteered to maintain Interix and SCORE to get
> > them into a state that builds cleanly - and you can make sure they are
> > CC:ed on the relevant bugs and point out that without fixes the targets
> > will be removed later in 4.7 development.
> 
> Bug 47096 already exists for the Interix failure; no Interix maintainer is
> listed in MAINTAINERS.
> I've filed Bug 48595 for score-elf.

The person who volunteered for Interix is Douglas B Rupp <rupp@gnat.com>.

-- 
Joseph S. Myers
joseph@codesourcery.com

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: RFA: Add makefile for cross-configuration torture test
  2011-04-13 22:10         ` Joseph S. Myers
@ 2011-04-13 22:15           ` Douglas B Rupp
  0 siblings, 0 replies; 17+ messages in thread
From: Douglas B Rupp @ 2011-04-13 22:15 UTC (permalink / raw)
  To: Joseph S. Myers; +Cc: Joern Rennecke, gcc-patches

On 4/13/2011 3:10 PM, Joseph S. Myers wrote:
> The person who volunteered for Interix is Douglas B Rupp<rupp@gnat.com>.

I'm still good for it.

--Doug


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: RFA: Add makefile for cross-configuration torture test
  2011-04-13 21:02       ` Joern Rennecke
  2011-04-13 22:10         ` Joseph S. Myers
@ 2011-04-14  5:51         ` Ralf Wildenhues
  2011-04-14  8:12           ` Joern Rennecke
  1 sibling, 1 reply; 17+ messages in thread
From: Ralf Wildenhues @ 2011-04-14  5:51 UTC (permalink / raw)
  To: Joern Rennecke; +Cc: Joseph S. Myers, gcc-patches

Hi Joern,

* Joern Rennecke wrote on Wed, Apr 13, 2011 at 11:02:27PM CEST:
> 2010-04-13  Joern Rennecke  <joern.rennecke@embecosm.com>
> 
>         * config-list.mk: New file.

> --- contrib/config-list.mk	(revision 0)
> +++ contrib/config-list.mk	(revision 0)

> +all: $(LIST)
> +
> +.PHONEY: make-log-dir make-script-dir

.PHONEY is phony, it should be .PHONY instead.  SCNR.

> +empty=
> +
> +#Check for the presence of the MAINTAINERS file to make sure we are in a
> +#suitable current working direcrory.

directory.

> +make-log-dir: ../gcc/MAINTAINERS
> +	mkdir log
> +
> +# The 'ix86-netware --with-ld=nwld' configuration needs a nwld executable to
> +# configure.  See PR47104.
> +make-script-dir:
> +	mkdir scripts
> +	echo ld $* > scripts/nwld
> +	chmod u+x scripts/nwld
> +
> +$(LIST): make-log-dir make-script-dir
> +	-mkdir $@
> +	(cd $@ && \
> +	../../gcc/configure \
> +	--target=$(subst SCRIPTS,`pwd`/../scripts/,$(subst OPT,$(empty) -,$@)) \
> +	--enable-werror-always ${host_options} --enable-languages=all,ada,go) \
> +	> log/$@-config.out 2>&1
> +	-$(MAKE) -C $@ all-gcc > log/$@-make.out 2>&1 && rm -r $@

Can you separate the configure and the build steps into separate make
targets so that one can run one but not the other?  Or would that have
adverse effects on the load pattern (it might, due to the way make
orders scheduling of jobs)?  Would be nice to have 'all-gcc' abstracted
into a make variable too, so it could be reused for other purposes.
Please use rm -rf instead of rm -r.

Thank you!
Ralf

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: RFA: Add makefile for cross-configuration torture test
  2011-04-14  5:51         ` Ralf Wildenhues
@ 2011-04-14  8:12           ` Joern Rennecke
  2011-04-14 14:15             ` Jan-Benedict Glaw
  2011-04-23 15:23             ` Patch ping: " Joern Rennecke
  0 siblings, 2 replies; 17+ messages in thread
From: Joern Rennecke @ 2011-04-14  8:12 UTC (permalink / raw)
  To: Ralf Wildenhues; +Cc: Joseph S. Myers, gcc-patches

[-- Attachment #1: Type: text/plain, Size: 1655 bytes --]

Quoting Ralf Wildenhues <Ralf.Wildenhues@gmx.de>:

> Can you separate the configure and the build steps into separate make
> targets so that one can run one but not the other?  Or would that have
> adverse effects on the load pattern (it might, due to the way make
> orders scheduling of jobs)?

I've added a separate target 'config' for that.
I've written it so that the configuration step of each target configuration
is a separate make target, so make could avoid making lots of configured
directories before they are needed.  Unfortunately, it chooses to do just
that, which I think is a bit annoying.
I can think of a number of ways to avoid that, but they would make the
entire thing a lot more complicated.  I think it's important not to
add lots of complexity with little gain; it's straightforward to adapt
the simple makefile to work across a cluster, but for a complex mess
of rules, you wouldn't know where to start.
The (temporary) extra storage needed for the unnecessarily early configured
directories is about 112 MB (i.e. fit comfortably in the buffer cache of the
kind of machine you would typically run this on), about the same as  
the log files, and in the noise compared to build directory or cc1  
working set
size requirements.  The cumulative CPU time of the configurations are
also low compared with the actual work, so I think the performance is low
enough not to worry (and hard to measure with all that noise on a shared
system to start with).

   Would be nice to have 'all-gcc' abstracted
> into a make variable too, so it could be reused for other purposes.

It's the TEST make variable now.

[-- Attachment #2: config-list-diff3 --]
[-- Type: text/plain, Size: 5367 bytes --]

2010-04-14  Joern Rennecke  <joern.rennecke@embecosm.com>

        * config-list.mk: New file.

Index: contrib/config-list.mk
===================================================================
--- contrib/config-list.mk	(revision 0)
+++ contrib/config-list.mk	(revision 0)
@@ -0,0 +1,98 @@
+# Run tests covering all config.gcc cases.
+host_options='--with-mpc=/opt/cfarm/mpc' # gcc10
+TEST=all-gcc
+# Make sure you have a recent enough gcc (with ada support) in your path so
+# that --enable-werror-always will work.
+# To use, create a sibling directory to the gcc sources and cd into this.
+# Use -j / -l make arguments and nice to assure a smooth resource-efficient
+# load on the build machine, e.g. for 24 cores:
+# svn co svn://gcc.gnu.org/svn/gcc/branches/foo-branch gcc
+# mkdir multi-mk; cd multi-mk
+# nohup nice make -j25 -l36 -f ../gcc/contrib/config-list.mk > make.out 2>&1 &
+#
+# v850e1-elf is rejected by config.sub
+LIST = alpha-linux-gnu alpha-freebsd6 alpha-netbsd alpha-openbsd \
+  alpha-dec-osf5.1 alpha64-dec-vms alpha-dec-vms am33_2.0-linux \
+  arm-wrs-vxworks arm-freebsd6 arm-netbsdelf arm-linux \
+  arm-linux-androideabi arm-uclinux_eabi arm-ecos-elf arm-eabi \
+  arm-symbianelf arm-rtems arm-elf arm-wince-pe avr-rtems avr-elf \
+  bfin-elf bfin-uclinux bfin-linux-uclibc bfin-rtems bfin-openbsd \
+  cris-elf cris-linux crisv32-elf crisv32-linux fido-elf \
+  fr30-elf frv-elf frv-linux h8300-elf h8300-rtems hppa-linux-gnu \
+  hppa-linux-gnuOPT-enable-sjlj-exceptions=yes hppa64-linux-gnu \
+  hppa2.0-hpux10.1 hppa64-hpux11.3 \
+  hppa64-hpux11.0OPT-enable-sjlj-exceptions=yes hppa2.0-hpux11.9 \
+  i686-pc-linux-gnu i686-apple-darwin i686-apple-darwin9 i686-apple-darwin10 \
+  i486-freebsd4 i686-freebsd6 i686-kfreebsd-gnu \
+  i686-netbsdelf9 i686-knetbsd-gnu i686-openbsd i686-openbsd3.0 \
+  i686-elf i686-kopensolaris-gnu i686-symbolics-gnu i686-pc-msdosdjgpp \
+  i686-lynxos i586-netwareOPT-with-ld=SCRIPTSnwld i686-nto-qnx \
+  i686-rtems i686-solaris2.10 i686-wrs-vxworks \
+  i686-wrs-vxworksae \
+  i686-cygwinOPT-enable-threads=yes i686-mingw32crt ia64-elf \
+  ia64-freebsd6 ia64-linux ia64-hpux ia64-hp-vms iq2000-elf lm32-elf \
+  lm32-rtems lm32-uclinux m32c-rtems m32c-elf m32r-elf m32rle-elf m32r-rtems \
+  m32r-linux m32rle-linux m68k-elf m68k-netbsdelf \
+  m68k-openbsd m68k-uclinux m68k-linux m68k-rtems \
+  mcore-elf mep-elf microblaze-linux microblaze-elf \
+  mips-sgi-irix6.5OPT-with-stabsOPT-enable-threads=posix mips-netbsd \
+  mips64el-st-linux-gnu mips64octeon-linux mipsisa64r2-linux \
+  mipsisa32r2-linux-gnu mips-openbsd mipsisa64r2-sde-elf mipsisa32-elfoabi \
+  mipsisa64-elfoabi mipsisa64r2el-elf mipsisa64sr71k-elf mipsisa64sb1-elf \
+  mipsel-elf mips64-elf mips64vr-elf mips64orion-elf mips-rtems \
+  mips-wrs-vxworks mipstx39-elf mmix-knuth-mmixware mn10300-elf moxie-elf \
+  moxie-uclinux moxie-rtems pdp11-aout picochip-elf powerpc-darwin8 \
+  powerpc-darwin7 powerpc64-darwin powerpc-freebsd6 powerpc-netbsd \
+  powerpc-eabispe powerpc-eabisimaltivec powerpc-eabisim ppc-elf \
+  powerpc-eabialtivec powerpc-xilinx-eabi powerpc-eabi \
+  powerpc-rtems4.11OPT-enable-threads=yes powerpc-linux_spe \
+  powerpc-linux_paired powerpc64-linux_altivec \
+  powerpc-wrs-vxworks powerpc-wrs-vxworksae powerpc-lynxos powerpcle-elf \
+  powerpcle-eabisim powerpcle-eabi rs6000-ibm-aix4.3 rs6000-ibm-aix5.1.0 \
+  rs6000-ibm-aix5.2.0 rs6000-ibm-aix5.3.0 rs6000-ibm-aix6.0 \
+  rx-elf s390-linux-gnu s390x-linux-gnu s390x-ibm-tpf sh-elf \
+  shle-linux sh-netbsdelf sh-superh-elf sh5el-netbsd sh64-netbsd sh64-linux \
+  sh64-elfOPT-with-newlib sh-rtems sh-wrs-vxworks sparc-elf \
+  sparc-leon-elf sparc-rtems sparc-linux-gnu \
+  sparc-leon3-linux-gnuOPT-enable-target=all sparc-netbsdelf \
+  sparc64-sun-solaris2.10OPT-with-gnu-ldOPT-with-gnu-asOPT-enable-threads=posix \
+  sparc-wrs-vxworks sparc64-elf sparc64-rtems sparc64-linux sparc64-freebsd6 \
+  sparc64-netbsd sparc64-openbsd spu-elf v850e-elf v850-elf vax-linux-gnu \
+  vax-netbsdelf vax-openbsd x86_64-apple-darwin \
+  x86_64-pc-linux-gnuOPT-with-fpmath=avx \
+  x86_64-elfOPT-with-fpmath=sse x86_64-freebsd6 x86_64-netbsd \
+  x86_64-knetbsd-gnu x86_64-w64-mingw32 \
+  x86_64-mingw32OPT-enable-sjlj-exceptions=yes xstormy16-elf xtensa-elf \
+  xtensa-linux sparc-sun-solaris2.9 i686-solaris2.9 \
+  i686-interix3OPT-enable-obsolete score-elfOPT-enable-obsolete
+
+LOGFILES = $(patsubst %,log/%-make.out,$(LIST))
+all: $(LOGFILES)
+config: $(LIST)
+
+.PHONY: make-log-dir make-script-dir all config
+
+empty=
+
+#Check for the presence of the MAINTAINERS file to make sure we are in a
+#suitable current working directory.
+make-log-dir: ../gcc/MAINTAINERS
+	mkdir log
+
+# The 'ix86-netware --with-ld=nwld' configuration needs a nwld executable to
+# configure.  See PR47104.
+make-script-dir:
+	mkdir scripts
+	echo ld $* > scripts/nwld
+	chmod u+x scripts/nwld
+
+$(LIST): make-log-dir make-script-dir
+	-mkdir $@
+	(cd $@ && \
+	../../gcc/configure \
+	--target=$(subst SCRIPTS,`pwd`/../scripts/,$(subst OPT,$(empty) -,$@)) \
+	--enable-werror-always ${host_options} --enable-languages=all,ada,go) \
+	> log/$@-config.out 2>&1
+
+$(LOGFILES) : log/%-make.out : %
+	-$(MAKE) -C $< $(TEST) > $@ 2>&1 && rm -rf $<

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: RFA: Add makefile for cross-configuration torture test
  2011-04-14  8:12           ` Joern Rennecke
@ 2011-04-14 14:15             ` Jan-Benedict Glaw
  2011-04-23 12:14               ` Joern Rennecke
  2011-04-23 15:23             ` Patch ping: " Joern Rennecke
  1 sibling, 1 reply; 17+ messages in thread
From: Jan-Benedict Glaw @ 2011-04-14 14:15 UTC (permalink / raw)
  To: Joern Rennecke; +Cc: Ralf Wildenhues, Joseph S. Myers, gcc-patches

[-- Attachment #1: Type: text/plain, Size: 1071 bytes --]

On Thu, 2011-04-14 04:12:31 -0400, Joern Rennecke <joern.rennecke@embecosm.com> wrote:
> --- contrib/config-list.mk	(revision 0)
> +++ contrib/config-list.mk	(revision 0)
> @@ -0,0 +1,98 @@
[...]
> +$(LIST): make-log-dir make-script-dir
> +	-mkdir $@
> +	(cd $@ && \
> +	../../gcc/configure \
> +	--target=$(subst SCRIPTS,`pwd`/../scripts/,$(subst OPT,$(empty) -,$@)) \
> +	--enable-werror-always ${host_options} --enable-languages=all,ada,go) \
> +	> log/$@-config.out 2>&1
> +
> +$(LOGFILES) : log/%-make.out : %
> +	-$(MAKE) -C $< $(TEST) > $@ 2>&1 && rm -rf $<

  I don't know how chatty you all like your Makefiles to be, but what
about putting `tee' into the output redirection?

  Other than that, I like that approach. A nice, fast way to build a
hugh number of supposed-to-work configurations.

MfG, JBG

-- 
      Jan-Benedict Glaw      jbglaw@lug-owl.de              +49-172-7608481
  Signature of:                        Lauf nicht vor Deinem Glück davon:
  the second  :                             Es könnte hinter Dir stehen!

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: RFA: Add makefile for cross-configuration torture test
  2011-04-14 14:15             ` Jan-Benedict Glaw
@ 2011-04-23 12:14               ` Joern Rennecke
  0 siblings, 0 replies; 17+ messages in thread
From: Joern Rennecke @ 2011-04-23 12:14 UTC (permalink / raw)
  To: Jan-Benedict Glaw; +Cc: Ralf Wildenhues, Joseph S. Myers, gcc-patches

Quoting Jan-Benedict Glaw <jbglaw@lug-owl.de>:

> On Thu, 2011-04-14 04:12:31 -0400, Joern Rennecke   
> <joern.rennecke@embecosm.com> wrote:
...
>> +$(LOGFILES) : log/%-make.out : %
>> +	-$(MAKE) -C $< $(TEST) > $@ 2>&1 && rm -rf $<
>
>   I don't know how chatty you all like your Makefiles to be, but what
> about putting `tee' into the output redirection?

25 sub-makes talking at once, sending an aggregate average of
55.8 Kbit/sec down my link for over four hours?  No, thanks.

Now and then I might want to monitor an individual build for a short while,
which I can do with tail -f of the appropriate log file.  And stop with ^C
without perturbing the build.

You might also note that the recommended way to run this make is with nohup;
if for any reason you loose your connection, the build still goes on.

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Patch ping: RFA: Add makefile for cross-configuration torture test
  2011-04-14  8:12           ` Joern Rennecke
  2011-04-14 14:15             ` Jan-Benedict Glaw
@ 2011-04-23 15:23             ` Joern Rennecke
  2011-05-02 17:20               ` Patch ping^2: " Joern Rennecke
  1 sibling, 1 reply; 17+ messages in thread
From: Joern Rennecke @ 2011-04-23 15:23 UTC (permalink / raw)
  To: gcc-patches

2010-04-14  Joern Rennecke  <joern.rennecke@embecosm.com>

         * config-list.mk: New file.

http://gcc.gnu.org/ml/gcc-patches/2011-04/msg01044.html

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Patch ping^2: RFA: Add makefile for cross-configuration torture test
  2011-04-23 15:23             ` Patch ping: " Joern Rennecke
@ 2011-05-02 17:20               ` Joern Rennecke
  2011-05-04  3:19                 ` Alexandre Oliva
  0 siblings, 1 reply; 17+ messages in thread
From: Joern Rennecke @ 2011-05-02 17:20 UTC (permalink / raw)
  To: gcc-patches

Quoting Joern Rennecke <joern.rennecke@embecosm.com>:

2010-04-14  Joern Rennecke  <joern.rennecke@embecosm.com>

         * config-list.mk: New file.

http://gcc.gnu.org/ml/gcc-patches/2011-04/msg01044.html

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Patch ping^2: RFA: Add makefile for cross-configuration torture test
  2011-05-02 17:20               ` Patch ping^2: " Joern Rennecke
@ 2011-05-04  3:19                 ` Alexandre Oliva
  0 siblings, 0 replies; 17+ messages in thread
From: Alexandre Oliva @ 2011-05-04  3:19 UTC (permalink / raw)
  To: Joern Rennecke; +Cc: gcc-patches

On May  2, 2011, Joern Rennecke <joern.rennecke@embecosm.com> wrote:

> 2010-04-14  Joern Rennecke  <joern.rennecke@embecosm.com>

>         * config-list.mk: New file.

Ok, thanks!

-- 
Alexandre Oliva, freedom fighter    http://FSFLA.org/~lxoliva/
You must be the change you wish to see in the world. -- Gandhi
Be Free! -- http://FSFLA.org/   FSF Latin America board member
Free Software Evangelist      Red Hat Brazil Compiler Engineer

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [GCC] In 'contrib/config-list.mk', clarify i686-symbolics-gnu to i686-gnu (was: RFA: Add makefile for cross-configuration torture test)
  2011-04-13 15:50 RFA: Add makefile for cross-configuration torture test Joern Rennecke
  2011-04-13 16:07 ` Rainer Orth
  2011-04-13 16:27 ` Joseph S. Myers
@ 2023-02-10 10:16 ` Thomas Schwinge
  2023-05-06 11:50   ` [PATCH] hurd: Add multilib paths for gnu-x86_64 Samuel Thibault
  2 siblings, 1 reply; 17+ messages in thread
From: Thomas Schwinge @ 2023-02-10 10:16 UTC (permalink / raw)
  To: Joern Rennecke, gcc-patches; +Cc: bug-hurd, config-patches

[-- Attachment #1: Type: text/plain, Size: 936 bytes --]

Hi!

On 2011-04-13T06:49:31-0400, Joern Rennecke <joern.rennecke@embecosm.com> wrote:
> [...]
> This Makefile is supposed to give coverage of all the main configure targets
> and notable variants that enable different config files.
> [...]

> --- contrib/config-list.mk    (revision 0)
> +++ contrib/config-list.mk    (revision 0)

> +LIST = [...]
> +  [...]
> +  i686-elf i686-kopensolaris-gnu i686-symbolics-gnu i686-pc-msdosdjgpp \
> +  [...]

Unless anybody has any rationale to share about i686-symbolics-gnu,
I intend to soon push the attached
"In 'contrib/config-list.mk', clarify i686-symbolics-gnu to i686-gnu".


Grüße
 Thomas


-----------------
Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-In-contrib-config-list.mk-clarify-i686-symbolics-gnu.patch --]
[-- Type: text/x-diff, Size: 2309 bytes --]

From 18712980c1007d40c30d1893d47475c928e19e95 Mon Sep 17 00:00:00 2001
From: Thomas Schwinge <thomas@codesourcery.com>
Date: Fri, 10 Feb 2023 10:43:24 +0100
Subject: [PATCH] In 'contrib/config-list.mk', clarify i686-symbolics-gnu to
 i686-gnu

Already in the first revision of 'contrib/config-list.mk', i686-symbolics-gnu
has been present, but it's not clear to me whether that was meant to be
Symbolics as in the manufacturer, <https://en.wikipedia.org/wiki/Symbolics>,
with GNU (that is, GNU/Hurd) kernel/operating system (user land), or Symbolics
kernel with GNU operating system (user land)?

I can't find any mention of "Symbolics" in the history of 'config.sub'
upstream.

Either way, GCC configures i686-symbolics-gnu exactly the same as i686-gnu:

    $ sed -n -e '/Using .* host machine hooks\.$/q' -e '/^Using the following target machine macro files:$/,$p' log/i686-gnu-make.out
    Using the following target machine macro files:
            [...]/gcc/config/vxworks-dummy.h
            [...]/gcc/config/i386/i386.h
            [...]/gcc/config/i386/unix.h
            [...]/gcc/config/i386/att.h
            [...]/gcc/config/elfos.h
            [...]/gcc/config/gnu-user.h
            [...]/gcc/config/glibc-stdint.h
            [...]/gcc/config/i386/gnu-user-common.h
            [...]/gcc/config/i386/gnu-user.h
            [...]/gcc/config/gnu.h
            [...]/gcc/config/i386/gnu.h
            [...]/gcc/config/initfini-array.h

..., so let's clarify i686-symbolics-gnu to i686-gnu.

	contrib/
	* config-list.mk (LIST): Clarify i686-symbolics-gnu to i686-gnu.
---
 contrib/config-list.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/contrib/config-list.mk b/contrib/config-list.mk
index 20b8f4a196f..4c0a94d5c37 100644
--- a/contrib/config-list.mk
+++ b/contrib/config-list.mk
@@ -50,7 +50,7 @@ LIST = aarch64-elf aarch64-freebsd13 aarch64-linux-gnu aarch64-rtems \
   i686-pc-linux-gnu i686-apple-darwin i686-apple-darwin9 i686-apple-darwin10 \
   i686-freebsd13 i686-kfreebsd-gnu \
   i686-netbsdelf9 \
-  i686-openbsd i686-elf i686-kopensolaris-gnu i686-symbolics-gnu \
+  i686-openbsd i686-elf i686-kopensolaris-gnu i686-gnu \
   i686-pc-msdosdjgpp i686-lynxos i686-nto-qnx \
   i686-rtems i686-solaris2.11 i686-wrs-vxworks \
   i686-wrs-vxworksae \
-- 
2.25.1


^ permalink raw reply	[flat|nested] 17+ messages in thread

* [PATCH] hurd: Add multilib paths for gnu-x86_64
  2023-02-10 10:16 ` [GCC] In 'contrib/config-list.mk', clarify i686-symbolics-gnu to i686-gnu (was: RFA: Add makefile for cross-configuration torture test) Thomas Schwinge
@ 2023-05-06 11:50   ` Samuel Thibault
  2023-05-06 13:26     ` Samuel Thibault
  0 siblings, 1 reply; 17+ messages in thread
From: Samuel Thibault @ 2023-05-06 11:50 UTC (permalink / raw)
  To: gcc-patches; +Cc: Thomas Schwinge, bug-hurd

We need the multilib paths in gcc to find e.g. glibc crt files on
Debian.  This is essentially based on t-linux64 version.

gcc/ChangeLog:

	* gcc/config/i386/t-gnu64: New file.
	* gcc/config.gcc [x86_64-*-gnu*): Add i386/t-gnu64 to
	tmake_file.

diff --git a/gcc/config.gcc b/gcc/config.gcc
index 671c7e3b018..6b1939b9f09 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -5828,6 +5828,9 @@ case ${target} in
 	visium-*-*)
 		target_cpu_default2="TARGET_CPU_$with_cpu"
 		;;
+	x86_64-*-gnu*)
+		tmake_file="$tmake_file i386/t-gnu64"
+		;;
 esac
 
 t=
diff --git a/gcc/config/i386/t-gnu64 b/gcc/config/i386/t-gnu64
index e69de29bb2d..23ee6823d65 100644
--- a/gcc/config/i386/t-gnu64
+++ b/gcc/config/i386/t-gnu64
@@ -0,0 +1,38 @@
+# Copyright (C) 2002-2023 Free Software Foundation, Inc.
+#
+# This file is part of GCC.
+#
+# GCC is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# GCC is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GCC; see the file COPYING3.  If not see
+# <http://www.gnu.org/licenses/>.
+
+# On Debian, Ubuntu and other derivative distributions, the 32bit libraries
+# are found in /lib32 and /usr/lib32, /lib64 and /usr/lib64 are symlinks to
+# /lib and /usr/lib, while other distributions install libraries into /lib64
+# and /usr/lib64.  The LSB does not enforce the use of /lib64 and /usr/lib64,
+# it doesn't tell anything about the 32bit libraries on those systems.  Set
+# MULTILIB_OSDIRNAMES according to what is found on the target.
+
+# To support i386, x86-64 and x32 libraries, the directory structrue
+# should be:
+#
+# 	/lib has i386 libraries.
+# 	/lib64 has x86-64 libraries.
+# 	/libx32 has x32 libraries.
+#
+comma=,
+MULTILIB_OPTIONS    = $(subst $(comma),/,$(TM_MULTILIB_CONFIG))
+MULTILIB_DIRNAMES   = $(patsubst m%, %, $(subst /, ,$(MULTILIB_OPTIONS)))
+MULTILIB_OSDIRNAMES = m64=../lib64$(call if_multiarch,:x86_64-gnu)
+MULTILIB_OSDIRNAMES+= m32=$(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:i386-gnu)
+MULTILIB_OSDIRNAMES+= mx32=../libx32$(call if_multiarch,:x86_64-gnux32)

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH] hurd: Add multilib paths for gnu-x86_64
  2023-05-06 11:50   ` [PATCH] hurd: Add multilib paths for gnu-x86_64 Samuel Thibault
@ 2023-05-06 13:26     ` Samuel Thibault
  0 siblings, 0 replies; 17+ messages in thread
From: Samuel Thibault @ 2023-05-06 13:26 UTC (permalink / raw)
  To: gcc-patches, Thomas Schwinge; +Cc: bug-hurd

(and it'd be useful to have it backported to the 13 branch)

Samuel Thibault, le sam. 06 mai 2023 13:50:36 +0200, a ecrit:
> We need the multilib paths in gcc to find e.g. glibc crt files on
> Debian.  This is essentially based on t-linux64 version.
> 
> gcc/ChangeLog:
> 
> 	* gcc/config/i386/t-gnu64: New file.
> 	* gcc/config.gcc [x86_64-*-gnu*): Add i386/t-gnu64 to
> 	tmake_file.
> 
> diff --git a/gcc/config.gcc b/gcc/config.gcc
> index 671c7e3b018..6b1939b9f09 100644
> --- a/gcc/config.gcc
> +++ b/gcc/config.gcc
> @@ -5828,6 +5828,9 @@ case ${target} in
>  	visium-*-*)
>  		target_cpu_default2="TARGET_CPU_$with_cpu"
>  		;;
> +	x86_64-*-gnu*)
> +		tmake_file="$tmake_file i386/t-gnu64"
> +		;;
>  esac
>  
>  t=
> diff --git a/gcc/config/i386/t-gnu64 b/gcc/config/i386/t-gnu64
> index e69de29bb2d..23ee6823d65 100644
> --- a/gcc/config/i386/t-gnu64
> +++ b/gcc/config/i386/t-gnu64
> @@ -0,0 +1,38 @@
> +# Copyright (C) 2002-2023 Free Software Foundation, Inc.
> +#
> +# This file is part of GCC.
> +#
> +# GCC is free software; you can redistribute it and/or modify
> +# it under the terms of the GNU General Public License as published by
> +# the Free Software Foundation; either version 3, or (at your option)
> +# any later version.
> +#
> +# GCC is distributed in the hope that it will be useful,
> +# but WITHOUT ANY WARRANTY; without even the implied warranty of
> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> +# GNU General Public License for more details.
> +#
> +# You should have received a copy of the GNU General Public License
> +# along with GCC; see the file COPYING3.  If not see
> +# <http://www.gnu.org/licenses/>.
> +
> +# On Debian, Ubuntu and other derivative distributions, the 32bit libraries
> +# are found in /lib32 and /usr/lib32, /lib64 and /usr/lib64 are symlinks to
> +# /lib and /usr/lib, while other distributions install libraries into /lib64
> +# and /usr/lib64.  The LSB does not enforce the use of /lib64 and /usr/lib64,
> +# it doesn't tell anything about the 32bit libraries on those systems.  Set
> +# MULTILIB_OSDIRNAMES according to what is found on the target.
> +
> +# To support i386, x86-64 and x32 libraries, the directory structrue
> +# should be:
> +#
> +# 	/lib has i386 libraries.
> +# 	/lib64 has x86-64 libraries.
> +# 	/libx32 has x32 libraries.
> +#
> +comma=,
> +MULTILIB_OPTIONS    = $(subst $(comma),/,$(TM_MULTILIB_CONFIG))
> +MULTILIB_DIRNAMES   = $(patsubst m%, %, $(subst /, ,$(MULTILIB_OPTIONS)))
> +MULTILIB_OSDIRNAMES = m64=../lib64$(call if_multiarch,:x86_64-gnu)
> +MULTILIB_OSDIRNAMES+= m32=$(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:i386-gnu)
> +MULTILIB_OSDIRNAMES+= mx32=../libx32$(call if_multiarch,:x86_64-gnux32)

-- 
Samuel
---
Pour une évaluation indépendante, transparente et rigoureuse !
Je soutiens la Commission d'Évaluation de l'Inria.

^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2023-05-06 13:28 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-04-13 15:50 RFA: Add makefile for cross-configuration torture test Joern Rennecke
2011-04-13 16:07 ` Rainer Orth
2011-04-13 16:24   ` Joern Rennecke
2011-04-13 16:27 ` Joseph S. Myers
     [not found]   ` <20110413140647.provnjxog4og0o84-nzlynne@webmail.spamcop.net>
     [not found]     ` <Pine.LNX.4.64.1104131911080.8645@digraph.polyomino.org.uk>
2011-04-13 21:02       ` Joern Rennecke
2011-04-13 22:10         ` Joseph S. Myers
2011-04-13 22:15           ` Douglas B Rupp
2011-04-14  5:51         ` Ralf Wildenhues
2011-04-14  8:12           ` Joern Rennecke
2011-04-14 14:15             ` Jan-Benedict Glaw
2011-04-23 12:14               ` Joern Rennecke
2011-04-23 15:23             ` Patch ping: " Joern Rennecke
2011-05-02 17:20               ` Patch ping^2: " Joern Rennecke
2011-05-04  3:19                 ` Alexandre Oliva
2023-02-10 10:16 ` [GCC] In 'contrib/config-list.mk', clarify i686-symbolics-gnu to i686-gnu (was: RFA: Add makefile for cross-configuration torture test) Thomas Schwinge
2023-05-06 11:50   ` [PATCH] hurd: Add multilib paths for gnu-x86_64 Samuel Thibault
2023-05-06 13:26     ` Samuel Thibault

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).