GCC 4.7.1 error: Link tests are not allowed after GCC_NO_EXECUTABLES.

endian matthew.deren@gmail.com
Tue Jul 3 18:50:00 GMT 2012

Kai Ruottu-3 wrote:
> 3.7.2012 17:53, endian kirjoitti:
>> checking dynamic linker characteristics... configure: error: Link tests
>> are
>> not allowed after GCC_NO_EXECUTABLES.
>> make[1]: *** [configure-target-libstdc++-v3] Error 1
>> make[1]: Leaving directory `/home/matt/mycc/src/gcc-4.7.1-build'
>> make: *** [all] Error 2
> This means that the just produced GCC cannot create executables with the
> am-linux-gnueabi targeted binutils and the arm-linux-gnueabi targeted
> standard C library, 'glibc' in this case, which you probably haven't 
> installed.

You are very much correct.  I have not even built glibc or even installed
anything that can be used by this run of GCC.  The goal of this exercise,
and I like overly-complicated exercises, is to build my own tool chain from
complete scratch.

> What do you think, is it so that there are no glibcs for
> arm-linux-gnueabi?

I absolutely guarantee there is no 'available' glibc for this compile. :) 
Or at least, that is what I want gcc to think.

>> Configure Options (sh excerpt):
>> ${SRC_DIR}/${GCC}/configure \
>>          --enable-obsolete \
>>          --target=arm-linux-gnueabi \
>>          --disable-threads \
>>          --enable-language=c \
>>          --prefix=${PREFIX} \
>>          --without-headers \
>>          --disable-multilib \
>>          --disable-decimal-float \
>>          --disable-libgomp \
>>          --disable-libmudflap \
>>          --disable-nls \
>>          --disable-shared \
>>          --disable-libssp \
>>          --with-newlib \
>>          --with-system-zlib
> ...
> I really don't know whether your "brain damaged" GCC really could 
> compile the glibc
> sources :-(   A "working" GCC made with some existing temporary glibc of 
> course should
> be capable to do this!
> A "working GCC" here means a toolchain which can create executables for 
> the target
> system, 'arm-linux-gnueabi'.  At least as simple as "Hello World" in C...

To my understanding, to build a copy of glibc from scratch, a minimal gcc
needs to be constructed before a 'full' compiler can be built for
constructing the rest of the tool chain.  In my configure step, I have
removed anything that might cause the need for any additional links to
occur, hence the removal of multilib, floating point libraries, etc, etc..

It would certainly make sense (and be much easier) to use a temporary glibc
and completely skip this part of my exercise.   I might just do this, per
your suggestion, to keep my head focused on my main task of building this
tool chain.

>>    Any ideas about the source of the error?  I am currently learning
>> how to build tool chains, so please excuse any gross errors I might have
>> made with configure.
> The "Link tests are not allowed after GCC_NO_EXECUTABLES" could be told 
> otherwise:
> "When the toolchain cannot create executables for the target, it is 
> impossible to make
> any link tests in order to see what features the target C library has 
> and what not!". So
> you should refresh your memory about once learned things like 
> "compiling" and "linking"...

I should have been clearer about this 'phase'. :(  This version of gcc is
_only_ to be used to compile glibc (or eglibc, some time down the road..) 
After I build that core library, this version will be trashed and rebuilt
with the newly created glibc.

Thank you for your time.  You have actually started to clear the fog and
help me understand what I am doing.  ;)
View this message in context: http://old.nabble.com/GCC-4.7.1-error%3A-Link-tests-are-not-allowed-after-GCC_NO_EXECUTABLES.-tp34108047p34109353.html
Sent from the gcc - Help mailing list archive at Nabble.com.

More information about the Gcc-help mailing list