public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH 1/3] config-list.mk: add KNOWN_BROKEN
@ 2016-05-26 16:16 David Malcolm
  2016-05-26 17:05 ` [PATCH 3/3] config-list.mk: add OPT-enable-obsolete to 4 targets David Malcolm
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: David Malcolm @ 2016-05-26 16:16 UTC (permalink / raw)
  To: gcc-patches; +Cc: David Malcolm

When using config-list.mk to build all configurations, it's useful
to filter out the configurations that are known to be broken.

This patch does so, adding a KNOWN_BROKEN variable.

contrib/ChangeLog:
	* config-list.mk (LIST): Rename to...
	(FULL_LIST): ...this.
	(KNOWN_BROKEN): New variable.
	(LIST): Redefine, in terms of FULL_LIST and KNOWN_BROKEN.
---
 contrib/config-list.mk | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/contrib/config-list.mk b/contrib/config-list.mk
index 8210352..edc3dc7 100644
--- a/contrib/config-list.mk
+++ b/contrib/config-list.mk
@@ -11,7 +11,7 @@ TEST=all-gcc
 # nohup nice make -j25 -l36 -f ../gcc/contrib/config-list.mk > make.out 2>&1 &
 #
 # v850e1-elf is rejected by config.sub
-LIST = aarch64-elf aarch64-linux-gnu aarch64-rtems \
+FULL_LIST = aarch64-elf aarch64-linux-gnu aarch64-rtems \
   alpha-linux-gnu alpha-freebsd6 alpha-netbsd alpha-openbsd \
   alpha64-dec-vms alpha-dec-vms am33_2.0-linux \
   arc-elf32OPT-with-cpu=arc600 arc-elf32OPT-with-cpu=arc700 \
@@ -81,6 +81,14 @@ LIST = aarch64-elf aarch64-linux-gnu aarch64-rtems \
   xtensa-linux \
   i686-interix3OPT-enable-obsolete
 
+# Which of the above are known to currently not work?
+KNOWN_BROKEN=
+
+# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52551
+KNOWN_BROKEN += i686-interix3OPT-enable-obsolete
+
+LIST= $(filter-out $(KNOWN_BROKEN),$(FULL_LIST))
+
 LOGFILES = $(patsubst %,log/%-make.out,$(LIST))
 all: $(LOGFILES)
 config: $(LIST)
-- 
1.8.5.3

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

* [PATCH 3/3] config-list.mk: add OPT-enable-obsolete to 4 targets
  2016-05-26 16:16 [PATCH 1/3] config-list.mk: add KNOWN_BROKEN David Malcolm
@ 2016-05-26 17:05 ` David Malcolm
  2016-06-09 15:11   ` Jeff Law
  2016-05-26 17:06 ` [PATCH 2/3] config-list.mk: add GCC_SRC_DIR David Malcolm
  2016-06-09 15:09 ` [PATCH 1/3] config-list.mk: add KNOWN_BROKEN Jeff Law
  2 siblings, 1 reply; 8+ messages in thread
From: David Malcolm @ 2016-05-26 17:05 UTC (permalink / raw)
  To: gcc-patches; +Cc: David Malcolm

r233165 marked three deprecated rtems targets as obsolete.
r233887 marked mep-elf as obsolete.

Update config-list.mk to add OPT-enable-obsolete to these 4
targets.

contrib/ChangeLog:
	* config-list.mk (FULL_LIST): Add OPT-enable-obsolete to
	avr-rtems, h8300-rtems, m32r-rtems, mep-elf.
---
 contrib/config-list.mk | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/contrib/config-list.mk b/contrib/config-list.mk
index 2e22b3c..6242c87 100644
--- a/contrib/config-list.mk
+++ b/contrib/config-list.mk
@@ -37,11 +37,12 @@ FULL_LIST = aarch64-elf aarch64-linux-gnu aarch64-rtems \
   arc-linux-uclibcOPT-with-cpu=arc700 arceb-linux-uclibcOPT-with-cpu=arc700 \
   arm-wrs-vxworks arm-netbsdelf \
   arm-linux-androideabi arm-uclinux_eabi arm-eabi arm-rtems \
-  arm-symbianelf avr-rtems avr-elf \
+  arm-symbianelf avr-rtemsOPT-enable-obsolete avr-elf \
   bfin-elf bfin-uclinux bfin-linux-uclibc bfin-rtems bfin-openbsd \
   c6x-elf c6x-uclinux cr16-elf cris-elf cris-linux crisv32-elf crisv32-linux \
   epiphany-elf epiphany-elfOPT-with-stack-offset=16 fido-elf \
-  fr30-elf frv-elf frv-linux ft32-elf h8300-elf h8300-rtems hppa-linux-gnu \
+  fr30-elf frv-elf frv-linux ft32-elf h8300-elf \
+  h8300-rtemsOPT-enable-obsolete 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 \
@@ -55,10 +56,11 @@ FULL_LIST = aarch64-elf aarch64-linux-gnu aarch64-rtems \
   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 \
+  lm32-rtems lm32-uclinux m32c-rtems m32c-elf m32r-elf m32rle-elf \
+  m32r-rtemsOPT-enable-obsolete \
   m32r-linux m32rle-linux m68k-elf m68k-netbsdelf \
   m68k-openbsd m68k-uclinux m68k-linux m68k-rtems \
-  mcore-elf mep-elf microblaze-linux microblaze-elf \
+  mcore-elf mep-elfOPT-enable-obsolete microblaze-linux microblaze-elf \
   mips-netbsd \
   mips64el-st-linux-gnu mips64octeon-linux mipsisa64r2-linux \
   mipsisa32r2-linux-gnu mipsisa64r2-sde-elf mipsisa32-elfoabi \
-- 
1.8.5.3

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

* [PATCH 2/3] config-list.mk: add GCC_SRC_DIR
  2016-05-26 16:16 [PATCH 1/3] config-list.mk: add KNOWN_BROKEN David Malcolm
  2016-05-26 17:05 ` [PATCH 3/3] config-list.mk: add OPT-enable-obsolete to 4 targets David Malcolm
@ 2016-05-26 17:06 ` David Malcolm
  2016-06-09 15:10   ` Jeff Law
  2016-06-09 15:09 ` [PATCH 1/3] config-list.mk: add KNOWN_BROKEN Jeff Law
  2 siblings, 1 reply; 8+ messages in thread
From: David Malcolm @ 2016-05-26 17:06 UTC (permalink / raw)
  To: gcc-patches; +Cc: David Malcolm

config-list.mk currently requires the pwd to be in a sibling directory
of the source tree.  However, building using config-list.mk can consume
over 400GB of disk space in this build directory (e.g. my machine
successfully built cc1 for 206 configurations last night, consuming
442GB of space).  I've found it useful to be able to run config-list.mk
in an arbitrary build location (i.e. one with plenty of free space),
so this patch adds a GCC_SRC_DIR variable which can be overridden.

contrib/ChangeLog:
	* config-list.mk (GCC_SRC_DIR): New variable.
	(make-log-dir): Use GCC_SRC_DIR.
        ($(LIST)): Likewise.
---
 contrib/config-list.mk | 33 ++++++++++++++++++++++++++-------
 1 file changed, 26 insertions(+), 7 deletions(-)

diff --git a/contrib/config-list.mk b/contrib/config-list.mk
index edc3dc7..2e22b3c 100644
--- a/contrib/config-list.mk
+++ b/contrib/config-list.mk
@@ -3,13 +3,32 @@ 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.
+# To use, create a build directory with plenty of free disk space - a build of
+# all configurations can take 450GB.
+# By default, this file assumes the build directory is in a sibling directory
+# to the gcc sources, but you can override GCC_SRC_DIR to specify where to
+# find them.  GCC_SRC_DIR is used in the directory below the build directory,
+# hence the two ".." in the default value; if overriding it, it's easiest to
+# supply an absolute path.
+GCC_SRC_DIR=../../gcc
+
 # 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 &
 #
+# Alternatively, if building against an existing gcc source tree:
+#
+#   cd /somewhere/with/plenty/of/disk/space
+#   mkdir multi-mk; cd multi-mk
+#   nohup nice make \
+#     -j25 -l36 \
+#     -f /path/to/contrib/config-list.mk \
+#     GCC_SRC_DIR=/path/to/gcc/source/tree \
+#     > make.out 2>&1 &
+#
+
 # v850e1-elf is rejected by config.sub
 FULL_LIST = aarch64-elf aarch64-linux-gnu aarch64-rtems \
   alpha-linux-gnu alpha-freebsd6 alpha-netbsd alpha-openbsd \
@@ -99,17 +118,17 @@ show:
 
 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
+#Check for the presence of the MAINTAINERS file to make sure we've located
+#the gcc sources.
+make-log-dir: $(GCC_SRC_DIR)/MAINTAINERS
+	-mkdir log
 
 $(LIST): make-log-dir
 	-mkdir $@
 	(											\
 		cd $@ &&									\
 		TGT=`echo $@ | awk 'BEGIN { FS = "OPT" }; { print $$1 }'` &&			\
-		TGT=`../../gcc/config.sub $$TGT` &&						\
+		TGT=`$(GCC_SRC_DIR)/config.sub $$TGT` &&					\
 		case $$TGT in									\
 			*-*-darwin* | *-*-cygwin* | *-*-mingw* | *-*-aix*)			\
 				ADDITIONAL_LANGUAGES="";					\
@@ -118,7 +137,7 @@ $(LIST): make-log-dir
 				ADDITIONAL_LANGUAGES=",go";					\
 				;;								\
 		esac &&										\
-		../../gcc/configure								\
+		$(GCC_SRC_DIR)/configure							\
 			--target=$(subst SCRIPTS,`pwd`/../scripts/,$(subst OPT,$(empty) -,$@))	\
 			--enable-werror-always ${host_options}					\
 			--enable-languages=all,ada$$ADDITIONAL_LANGUAGES;			\
-- 
1.8.5.3

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

* Re: [PATCH 1/3] config-list.mk: add KNOWN_BROKEN
  2016-05-26 16:16 [PATCH 1/3] config-list.mk: add KNOWN_BROKEN David Malcolm
  2016-05-26 17:05 ` [PATCH 3/3] config-list.mk: add OPT-enable-obsolete to 4 targets David Malcolm
  2016-05-26 17:06 ` [PATCH 2/3] config-list.mk: add GCC_SRC_DIR David Malcolm
@ 2016-06-09 15:09 ` Jeff Law
  2016-06-09 16:25   ` Joseph Myers
  2 siblings, 1 reply; 8+ messages in thread
From: Jeff Law @ 2016-06-09 15:09 UTC (permalink / raw)
  To: David Malcolm, gcc-patches

On 05/26/2016 09:04 AM, David Malcolm wrote:
> When using config-list.mk to build all configurations, it's useful
> to filter out the configurations that are known to be broken.
>
> This patch does so, adding a KNOWN_BROKEN variable.
>
> contrib/ChangeLog:
> 	* config-list.mk (LIST): Rename to...
> 	(FULL_LIST): ...this.
> 	(KNOWN_BROKEN): New variable.
> 	(LIST): Redefine, in terms of FULL_LIST and KNOWN_BROKEN.
I'd rather fix, deprecate and/or remove these kinds of targets.

Given that interix has been broken for a long time, I'll approve a patch 
that removes it.

jeff

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

* Re: [PATCH 2/3] config-list.mk: add GCC_SRC_DIR
  2016-05-26 17:06 ` [PATCH 2/3] config-list.mk: add GCC_SRC_DIR David Malcolm
@ 2016-06-09 15:10   ` Jeff Law
  0 siblings, 0 replies; 8+ messages in thread
From: Jeff Law @ 2016-06-09 15:10 UTC (permalink / raw)
  To: David Malcolm, gcc-patches

On 05/26/2016 09:04 AM, David Malcolm wrote:
> config-list.mk currently requires the pwd to be in a sibling directory
> of the source tree.  However, building using config-list.mk can consume
> over 400GB of disk space in this build directory (e.g. my machine
> successfully built cc1 for 206 configurations last night, consuming
> 442GB of space).  I've found it useful to be able to run config-list.mk
> in an arbitrary build location (i.e. one with plenty of free space),
> so this patch adds a GCC_SRC_DIR variable which can be overridden.
>
> contrib/ChangeLog:
> 	* config-list.mk (GCC_SRC_DIR): New variable.
> 	(make-log-dir): Use GCC_SRC_DIR.
>         ($(LIST)): Likewise.
OK.  Good to see this happen, I've found the restriction annoying as well.

jeff

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

* Re: [PATCH 3/3] config-list.mk: add OPT-enable-obsolete to 4 targets
  2016-05-26 17:05 ` [PATCH 3/3] config-list.mk: add OPT-enable-obsolete to 4 targets David Malcolm
@ 2016-06-09 15:11   ` Jeff Law
  0 siblings, 0 replies; 8+ messages in thread
From: Jeff Law @ 2016-06-09 15:11 UTC (permalink / raw)
  To: David Malcolm, gcc-patches

On 05/26/2016 09:04 AM, David Malcolm wrote:
> r233165 marked three deprecated rtems targets as obsolete.
> r233887 marked mep-elf as obsolete.
>
> Update config-list.mk to add OPT-enable-obsolete to these 4
> targets.
>
> contrib/ChangeLog:
> 	* config-list.mk (FULL_LIST): Add OPT-enable-obsolete to
> 	avr-rtems, h8300-rtems, m32r-rtems, mep-elf.
OK.
jeff

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

* Re: [PATCH 1/3] config-list.mk: add KNOWN_BROKEN
  2016-06-09 15:09 ` [PATCH 1/3] config-list.mk: add KNOWN_BROKEN Jeff Law
@ 2016-06-09 16:25   ` Joseph Myers
  2016-06-09 18:20     ` Trevor Saunders
  0 siblings, 1 reply; 8+ messages in thread
From: Joseph Myers @ 2016-06-09 16:25 UTC (permalink / raw)
  To: Jeff Law; +Cc: David Malcolm, gcc-patches

On Thu, 9 Jun 2016, Jeff Law wrote:

> On 05/26/2016 09:04 AM, David Malcolm wrote:
> > When using config-list.mk to build all configurations, it's useful
> > to filter out the configurations that are known to be broken.
> > 
> > This patch does so, adding a KNOWN_BROKEN variable.
> > 
> > contrib/ChangeLog:
> > 	* config-list.mk (LIST): Rename to...
> > 	(FULL_LIST): ...this.
> > 	(KNOWN_BROKEN): New variable.
> > 	(LIST): Redefine, in terms of FULL_LIST and KNOWN_BROKEN.
> I'd rather fix, deprecate and/or remove these kinds of targets.
> 
> Given that interix has been broken for a long time, I'll approve a patch that
> removes it.

The rule was meant to be that a target is deprecated in one release, then 
removed in the next - the error message given without --enable-obsolete 
says so.  So all the targets that require --enable-obsolete in GCC 6 
should be removed for GCC 7 in the absence of interest in reviving them.

-- 
Joseph S. Myers
joseph@codesourcery.com

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

* Re: [PATCH 1/3] config-list.mk: add KNOWN_BROKEN
  2016-06-09 16:25   ` Joseph Myers
@ 2016-06-09 18:20     ` Trevor Saunders
  0 siblings, 0 replies; 8+ messages in thread
From: Trevor Saunders @ 2016-06-09 18:20 UTC (permalink / raw)
  To: Joseph Myers; +Cc: Jeff Law, David Malcolm, gcc-patches

On Thu, Jun 09, 2016 at 04:25:32PM +0000, Joseph Myers wrote:
> On Thu, 9 Jun 2016, Jeff Law wrote:
> 
> > On 05/26/2016 09:04 AM, David Malcolm wrote:
> > > When using config-list.mk to build all configurations, it's useful
> > > to filter out the configurations that are known to be broken.
> > > 
> > > This patch does so, adding a KNOWN_BROKEN variable.
> > > 
> > > contrib/ChangeLog:
> > > 	* config-list.mk (LIST): Rename to...
> > > 	(FULL_LIST): ...this.
> > > 	(KNOWN_BROKEN): New variable.
> > > 	(LIST): Redefine, in terms of FULL_LIST and KNOWN_BROKEN.
> > I'd rather fix, deprecate and/or remove these kinds of targets.
> > 
> > Given that interix has been broken for a long time, I'll approve a patch that
> > removes it.
> 
> The rule was meant to be that a target is deprecated in one release, then 
> removed in the next - the error message given without --enable-obsolete 
> says so.  So all the targets that require --enable-obsolete in GCC 6 
> should be removed for GCC 7 in the absence of interest in reviving them.

yeah, I have patches to do that (including interix which was obsoleted),
but moving and a hard drive failure got in the way of sending them.
I'll try and get those out shortly.

Trev

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

end of thread, other threads:[~2016-06-09 18:20 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-05-26 16:16 [PATCH 1/3] config-list.mk: add KNOWN_BROKEN David Malcolm
2016-05-26 17:05 ` [PATCH 3/3] config-list.mk: add OPT-enable-obsolete to 4 targets David Malcolm
2016-06-09 15:11   ` Jeff Law
2016-05-26 17:06 ` [PATCH 2/3] config-list.mk: add GCC_SRC_DIR David Malcolm
2016-06-09 15:10   ` Jeff Law
2016-06-09 15:09 ` [PATCH 1/3] config-list.mk: add KNOWN_BROKEN Jeff Law
2016-06-09 16:25   ` Joseph Myers
2016-06-09 18:20     ` Trevor Saunders

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).