This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Your config-ml.in change broke cris-axis-elf newlib multilib build
- From: Ralf Wildenhues <Ralf dot Wildenhues at gmx dot de>
- To: Hans-Peter Nilsson <hans-peter dot nilsson at axis dot com>
- Cc: sje at cup dot hp dot com, gcc-patches at gcc dot gnu dot org
- Date: Tue, 17 Apr 2007 16:26:51 +0200
- Subject: Re: Your config-ml.in change broke cris-axis-elf newlib multilib build
- References: <200704142222.l3EMMBUX021891@ignucius.se.axis.com>
* Hans-Peter Nilsson wrote on Sun, Apr 15, 2007 at 12:22:11AM CEST:
>
> This is a note rather than a PR, though I will enter a PR if the
> situation remains for 48h. The following happened with newlib
> as of two days ago (Apr 13 04:15 CET) with gcc in a combined
> tree as of 123829 but worked with 123816. I see nothing in src
> that would help (only the config-ml.in change, which is
> overwritten by the gcc version). I guess this would be the same
> for all newlib multilib systems. To repeat, use e.g. the
> simtest-howto.html instructions to build, configure with
> --target=cris-elf. Beware of the overlong lines.
As far as I can see, the actual root cause of the bug is again in
Autoconf 2.59. AC_CONFIG_SUBDIRS (more precisely, the internal macro
_AC_OUTPUT_SUBDIRS) has been fixed thusly in 2.60.
Rather than working around this issue by finding all instances where
doubled spaces can enter precious variables in GCC's build system --
which I guess are a lot of places -- it would IMVHO be easier to put in
a forward-compatible workaround: fix _AC_OUTPUT_SUBDIRS, in place until
the tree can be updated to 2.61.
I outlined this here:
<http://thread.gmane.org/gmane.comp.sysutils.autoconf.general/8932/focus=8954>
Also please note that I think you should break up ac_configure_args like
this in config-ml.in:
eval "set x $ac_configure_args"
shift
for option
do
...
done
That way, multiple spaces are conserved. Sorry, I have currently no
time to look into this further.
[...]
> configure: error: `CC' has changed since the previous run:
> configure: former value: /tmp/hpautotest-gcc1/cris-elf/gccobj/./gcc/xgcc -B/tmp/hpautotest-gcc1/cris-elf/gccobj/./gcc/ -nostdinc -B/tmp/hpautotest-gcc1/cris-elf/gccobj/cris-elf/v10/newlib/ -isystem /tmp/hpautotest-gcc1/cris-elf/gccobj/cris-elf/v10/newlib/targ-include -isystem /tmp/hpautotest-gcc1/gcc/newlib/libc/include -B/tmp/hpautotest-gcc1/cris-elf/pre/cris-elf/bin/ -B/tmp/hpautotest-gcc1/cris-elf/pre/cris-elf/lib/ -isystem /tmp/hpautotest-gcc1/cris-elf/pre/cris-elf/include -isystem /tmp/hpautotest-gcc1/cris-elf/pre/cris-elf/sys-include -march=v10 -mbest-lib-options
> configure: current value: /tmp/hpautotest-gcc1/cris-elf/gccobj/./gcc/xgcc -B/tmp/hpautotest-gcc1/cris-elf/gccobj/./gcc/ -nostdinc -B/tmp/hpautotest-gcc1/cris-elf/gccobj/cris-elf/v10/newlib/ -isystem /tmp/hpautotest-gcc1/cris-elf/gccobj/cris-elf/v10/newlib/targ-include -isystem /tmp/hpautotest-gcc1/gcc/newlib/libc/include -B/tmp/hpautotest-gcc1/cris-elf/pre/cris-elf/bin/ -B/tmp/hpautotest-gcc1/cris-elf/pre/cris-elf/lib/ -isystem /tmp/hpautotest-gcc1/cris-elf/pre/cris-elf/include -isystem /tmp/hpautotest-gcc1/cris-elf/pre/cris-elf/sys-include -march=v10 -mbest-lib-options
> configure: error: changes in the environment can compromise the build
> configure: error: run `make distclean' and/or `rm .././config.cache' and start over
> configure: error: /bin/sh '/tmp/hpautotest-gcc1/gcc/newlib/libc/configure' failed for libc
> make[1]: *** [configure-target-newlib] Error 1
> make[1]: Leaving directory `/tmp/hpautotest-gcc1/cris-elf/gccobj'
> make: *** [all] Error 2
Cheers,
Ralf