Ralf Wildenhues wrote:
Hello James,
* James Molloy wrote on Tue, May 06, 2008 at 04:24:37PM CEST:
I'm attempting to build GCC 4.3.0 - and I thought I had succeeded until
I realised that the 'all-gcc' make target (now?) doesn't build libgcc.a.
configure:4082: g++ -c -g -O2 conftest.cc >&5
conftest.cc: In function 'int main()':
conftest.cc:13: error: 'exit' was not declared in this scope
As you can see, the test program autoconf is generating does not include
<cstdlib>, so g++ is perfectly correct in erroring.
Compiling GCC 4.3.0 from source using G++ 4.1.2, autoconf 2.61, and
automake 1.10.
Use Autoconf 2.59 to generate configure (and Automake 1.9.6). Better
yet, do not regenerate configure scripts at all, just use those shipped
with 4.3.0.
Newer Autoconf versions don't take care to declare exit any more.
The GCC macros need to be adjusted for this before using newer Autoconf.
I'll post a patch.
Hope that helps.
Cheers,
Ralf
Hi Ralf,
Thanks for the reply. I haven't regenerated the configure script at all,
I'm using the vanilla one as shipped with the stable 4.3.0 release.
So really I'm not sure if the bug is with autoconf or gcc's config.in -
I've found a workaround with help from members of freenode.net#osdev who
have had the same problem - it seems more widespread than I first thought.
The workaround is to compile the targets "all-gcc all-target-libgcc"
then install "install-gcc install-target-libgcc" - which for some reason
completes successfully.
I really have no idea why - the same configure script in the libgcc
subdirectory must be called, surely.
I reply with this in the hope that it will be useful in bug tracking.
Cheers,
James