Fwd: Cross compiler build stops

Brian Dessent brian@dessent.net
Mon Dec 10 00:23:00 GMT 2007


[ I did not see this message on the crosstool list, and sending it to
the gcc list is not appropriate. ]

"S.Reng" wrote:

> + /cygdrive/e/crosstool-0.43/build/i686-unknown-linux-gnu/gcc-4.2.2-glibc-2.7/glibc-2.7/configure
> --prefix=/usr --build=i686-pc-cygwin --host=i686-unknown
> linux-gnu --without-cvs --disable-sanity-checks
> --with-headers=/cygdrive/e/crosstool/gcc-
> 4.2.2-glibc-2.7/i686-unknown-linux-gnu/i686-unknown-linux-gnu/inc
> ude --enable-hacker-mode
> checking build system type... i686-pc-cygwin
> checking host system type... i686-unknown-linux-gnu
> ...
> checking for i686-unknown-linux-gnu-gcc... gcc
> checking for suffix of object files... o
> checking whether we are using the GNU C compiler... yes
> checking whether gcc accepts -g... yes
> checking for gcc option to accept ISO C89... none needed
> checking for gcc... gcc
> checking how to run the C preprocessor... gcc -E
> checking for i686-unknown-linux-gnu-g++... no
> checking for i686-unknown-linux-gnu-c++... no
> checking for i686-unknown-linux-gnu-gpp... no
> checking for i686-unknown-linux-gnu-aCC... no
> checking for i686-unknown-linux-gnu-CC... no
> checking for i686-unknown-linux-gnu-cxx... no
> checking for i686-unknown-linux-gnu-cc++... no
> checking for i686-unknown-linux-gnu-cl.exe... no
> checking for i686-unknown-linux-gnu-FCC... no
> checking for i686-unknown-linux-gnu-KCC... no
> checking for i686-unknown-linux-gnu-RCC... no
> checking for i686-unknown-linux-gnu-xlC_r... no
> checking for i686-unknown-linux-gnu-xlC... no
> checking for g++... g++
> configure: WARNING: In the future, Autoconf will not detect cross-tools
> whose name does not start with the host triplet.  If you think this
> configuration is useful to you, please write to autoconf@gnu.org.
> checking whether we are using the GNU C++ compiler... yes
> checking whether g++ accepts -g... yes
> checking whether
> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/bin/as.exe
> is GNU as... yes
> checking whether
> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/bin/ld.exe
> is GNU ld... yes
> checking for /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/bin/as.exe...
> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/bin/a
> .exe
> checking version of
> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/bin/as.exe...
> 2.17.50, ok
> checking for /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/bin/ld.exe...
> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/bin/l
> .exe
> checking version of
> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/bin/ld.exe...
> 2.17.50, ok
> ...
> checking for assembler global-symbol directive... .globl
> checking for .set assembler directive... no
> checking for assembler .type directive prefix... no
> checking for .symver assembler directive... no
> checking for ld --version-script... no
> *** WARNING: You should not compile GNU libc without versioning. Not using
> *** versioning will introduce incompatibilities so that old binaries
> *** will not run anymore.
> *** For versioning you need recent binutils (binutils-2.8.1.0.23 or newer).
> checking for .previous assembler directive... no
> checking for .popsection assembler directive... no
> checking for .protected and .hidden assembler directive... configure:
> error: assembler support for symbol visibility is required

Something is very wrong here.  The configure script is trying to use the
host gcc and binutils to configure glibc.  It complains because the host
ld doesn't support symbol versioning, which is true because the host
linker is the Cygwin/PE linker, not the ELF linker, so that's hopelessly
broken.

It's not a matter of having the wrong version, something fundamentally
is screwed up here because it should have first built a cross-binutils
and cross-gcc and used those for the glibc configure step.  Just because
Cygwin is x86 and linux is x86 and they both use GNU ld and gcc does not
mean they're the same; they are quite different.

Maybe you've got something weird going on in your PATH, but you need to
figure out why it's picking the host tools and correct that before
anything will work.

Brian

--
For unsubscribe information see http://sourceware.org/lists.html#faq



More information about the crossgcc mailing list