Building glibc fails - needs .init_array and .fini_array support
Jonathan Brandvein
workaphobia at gmail.com
Thu Jul 3 15:12:44 UTC 2008
I've been trying to build OpenEmbedded for a few days now and I can't
get past the do_configure phase of building glibc-intermediate.
| checking for .preinit_array/.init_array/.fini_array support... no
| configure: error: Need linker with .init_array/.fini_array support.
It seems like this would be a problem with the way binutils-cross was
built. The closest thing I found to this being mentioned anywhere in
the context of open embedded was this bug:
http://projects.linuxtogo.org/pipermail/openembedded-issues/2007-January/001113.html
(At least, I think that's the correct link. I can't check as the site
is down at the moment.)
The symptom is the same but the cause is entirely different as I do
not have the MACHINE variable set in my shell environment.
I'm trying to build the Angstrom distribution for the AT91SAM9263EK. I
tried switching both the distro and machine to other variants (generic
distro and i686-generic machine), but the problem still persists. I've
been through several different branches including .dev, .stable, and
.angstrom-2007.12-stable, always making sure to update to the most
recent version as per the GettingStarted wiki page, and am amazed at
how nothing I try seems to affect this error. I'm using task-base as
the target, but that doesn't make much of a difference. I've also
tried wiping out the tree and starting over to make sure a bad
configuration didn't persist in the form of a built package
dependency.
Given that other people have apparently been able to build angstrom
for the 9263ek, and I still get this problem when I change machine
architectures and distros, I'm at a loss to explain what the problem
is. Nor do I know how to debug the OpenEmbedded build process, or even
what controls .init_array and .fini_array support in binutils, aside
from (somehow) the MACHINE variable. I'm getting that sinking feeling
that it could be a real stupid error on my part rather than a problem
in the package metadata. (Yesterday I managed to spend over an hour
"debugging" bitbake when it couldn't find bitbake.conf, before I
realized I had failed to export BBPATH from my .bashrc. That took me
down a peg or two, so I'm ready to believe this problem isn't
necessarily OE or angstrom's fault ;-) ).
>From my most recent build failure:
org.openembedded.stable/conf/local.conf:
(I didn't use the /build directory as recommended in the wiki but that
doesn't seem to affect anything)
OE_LOC = "/home/jon/atmel/openembedded/org.openembedded.stable"
DL_DIR = "${OE_LOC}/sources"
BBFILES="${OE_LOC}/packages/*/*.bb"
TMPDIR = "${OE_LOC}/tmp"
#MACHINE = "at91sam9263ek"
MACHINE = "i686-generic"
DISTRO = "angstrom-2007.1"
IMAGE_FSTYPES = "jffs2 tar"
PROFILE_OPTIMIZATION = "-pg"
SELECT_OPTIMIZATION = "${PROFILE_OPTIMIZATION}"
LDFLAGS =+ "-pg" [I had this set to += before, don't know if the syntax matters]
BBINCLUDELOGS = "yes"
#PREFERRED_VERSION_glibc-intermediate = "2.6.1"
#TARGOT_OS = "linux-uclibc"
The package versions that it happened to use this time around are
binutils-cross-2.18-r1 and glibc-initial-2.5-r10.
The binutils configure log:
NOTE: Running /home/jon/atmel/openembedded/org.openembedded.stable/tmp/work/i686-angstrom-linux/binutils-cross-2.18-r1/binutils-2.18/configure
--build=i686-linux --host=i686-linux
--target=i686-angstrom-linux
--prefix=/home/jon/atmel/openembedded/org.openembedded.stable/tmp/cross
--exec_prefix=/home/jon/atmel/openembedded/org.openembedded.stable/tmp/cross
--bindir=/home/jon/atmel/openembedded/org.openembedded.stable/tmp/cross/bin
--sbindir=/home/jon/atmel/openembedded/org.openembedded.stable/tmp/cross/bin
--libexecdir=/home/jon/atmel/openembedded/org.openembedded.stable/tmp/cross/libexec
--datadir=/home/jon/atmel/openembedded/org.openembedded.stable/tmp/cross/share
--sysconfdir=/home/jon/atmel/openembedded/org.openembedded.stable/tmp/cross/etc
--sharedstatedir=/home/jon/atmel/openembedded/org.openembedded.stable/tmp/cross/com
--localstatedir=/home/jon/atmel/openembedded/org.openembedded.stable/tmp/cross/var
--libdir=/home/jon/atmel/openembedded/org.openembedded.stable/tmp/cross/lib
--includedir=/home/jon/atmel/openembedded/org.openembedded.stable/tmp/cross/include
--oldincludedir=/home/jon/atmel/openembedded/org.openembedded.stable/tmp/cross/include
--infodir=/home/jon/atmel/openembedded/org.openembedded.stable/tmp/cross/share/info
--mandir=/home/jon/atmel/openembedded/org.openembedded.stable/tmp/cross/share/man
--enable-mainainer-mode
--with-sysroot=/home/jon/atmel/openembedded/org.openembedded.stable/tmp/cross/i686-angstrom-linux
--program-prefix=i686-angstrom-linux- --enable-install-libbfd
--disable-werror ...
configure: loading site script
/home/jon/atmel/openembedded/org.openembedded.stable/site/endian-little
configure: loading site script
/home/jon/atmel/openembedded/org.openembedded.stable/site/common-glibc
configure: loading site script
/home/jon/atmel/openembedded/org.openembedded.stable/site/ix86-common
configure: loading site script
/home/jon/atmel/openembedded/org.openembedded.stable/site/common
configure: loading site script
/home/jon/atmel/openembedded/org.openembedded.stable/site/common
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking target system type... i686-angstrom-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether ln works... yes
checking whether ln -s works... yes
checking for i686-linux-gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
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 ANSI C... none needed
checking for i686-linux-g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking for i686-linux-gnatbind... no
checking for gnatbind... no
checking for i686-linux-gnatmake... no
checking for gnatmake... no
checking whether compiler driver understands Ada... no
checking how to compare bootstrapped objects... cmp
--ignore-initial=16 $$f1 $$f2
checking for bison... bison -y
checking for bison... bison
checking for gm4... no
checking for gnum4... no
checking for m4... m4
checking for flex... flex
checking for flex... flex
checking for makeinfo... makeinfo
checking for expect... no
checking for runtest... no
checking for ar... (cached) ar
checking for i686-linux-ar... (cached) ar
checking for as... (cached) as
checking for i686-linux-as... (cached) as
checking for i686-linux-dlltool... no
checking for dlltool... no
checking for ld... (cached) ld
checking for i686-linux-ld... (cached) ld
checking for i686-linux-lipo... no
checking for lipo... no
checking for nm... (cached) nm
checking for i686-linux-nm... (cached) nm
checking for ranlib... (cached) ranlib
checking for i686-linux-ranlib... (cached) ranlib
checking for strip... (cached) strip
checking for i686-linux-strip... (cached) strip
checking for i686-linux-windres... no
checking for windres... no
checking for i686-linux-windmc... no
checking for windmc... no
checking for objcopy... (cached) objcopy
checking for i686-linux-objcopy... (cached) objcopy
checking for objdump... (cached) objdump
checking for i686-linux-objdump... (cached) objdump
checking for i686-angstrom-linux-cc... no
checking for i686-angstrom-linux-gcc... i686-angstrom-linux-gcc
checking for i686-angstrom-linux-c++... no
checking for i686-angstrom-linux-g++... no
checking for i686-angstrom-linux-cxx... no
checking for i686-angstrom-linux-gxx... no
checking for i686-angstrom-linux-gcc... i686-angstrom-linux-gcc
checking for i686-angstrom-linux-gcj... no
checking for i686-angstrom-linux-gfortran... no
checking for ar... (cached) i686-angstrom-linux-ar
checking for as... (cached) i686-angstrom-linux-as
checking for i686-angstrom-linux-dlltool... no
checking for ld... (cached) i686-angstrom-linux-ld
checking for i686-angstrom-linux-lipo... no
checking for nm... (cached) i686-angstrom-linux-nm
checking for i686-angstrom-linux-objdump... i686-angstrom-linux-objdump
checking for ranlib... (cached) i686-angstrom-linux-ranlib
checking for i686-angstrom-linux-strip... i686-angstrom-linux-strip
checking for i686-angstrom-linux-windres... no
checking for i686-angstrom-linux-windmc... no
checking where to find the target ar... just compiled
checking where to find the target as... just compiled
checking where to find the target cc... pre-installed
checking where to find the target c++... pre-installed
checking where to find the target c++ for libstdc++... pre-installed
checking where to find the target dlltool... just compiled
checking where to find the target gcc... pre-installed
checking where to find the target gcj... pre-installed
checking where to find the target gfortran... pre-installed
checking where to find the target ld... just compiled
checking where to find the target lipo... pre-installed
checking where to find the target nm... just compiled
checking where to find the target objdump... just compiled
checking where to find the target ranlib... just compiled
checking where to find the target strip... just compiled
checking where to find the target windres... just compiled
checking where to find the target windmc... just compiled
checking whether to enable maintainer-specific portions of Makefiles... no
checking whether -fkeep-inline-functions is supported... yes
configure: creating ./config.status
config.status: creating Makefile
The glibc (failed) configure log:
NOTE: Running /home/jon/atmel/openembedded/org.openembedded.stable/tmp/work/i686-angstrom-linux/glibc-intermediate-2.4-r14/glibc-2.4/configure
--build=i686-linux --host=i686-angstrom-linux
--target=i686-angstrom-linux --prefix=/usr
--exec_prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin
--libexecdir=/usr/libexec --datadir=/usr/share
--sysconfdir=/etc --sharedstatedir=/usr/com
--localstatedir=/var --libdir=/usr/lib
--includedir=/usr/include --oldincludedir=/usr/include
--infodir=/usr/share/info --mandir=/usr/share/man
--enable-mainainer-mode --enable-kernel=2.4.0
--without-cvs --disable-profile --disable-debug --without-gd
--enable-clocale=gnu --enable-add-ons=nptl,ports
--with-headers=/home/jon/atmel/openembedded/org.openembedded.stable/tmp/staging/i686-angstrom-linux/include
--without-selinux ...
configure: loading site script
/home/jon/atmel/openembedded/org.openembedded.stable/site/endian-little
configure: loading site script
/home/jon/atmel/openembedded/org.openembedded.stable/site/common-glibc
configure: loading site script
/home/jon/atmel/openembedded/org.openembedded.stable/site/ix86-common
configure: loading site script
/home/jon/atmel/openembedded/org.openembedded.stable/site/common
configure: loading site script
/home/jon/atmel/openembedded/org.openembedded.stable/site/common
checking build system type... i686-pc-linux-gnu
checking host system type... i686-angstrom-linux-gnu
configure: running configure fragment for add-on nptl
checking add-on ports for preconfigure fragments... am33 arm hppa m68k mips
checking sysdep dirs... sysdeps/i386/elf
nptl/sysdeps/unix/sysv/linux/i386/i686
nptl/sysdeps/unix/sysv/linux/i386 sysdeps/unix/sysv/linux/i386
nptl/sysdeps/unix/sysv/linux nptl/sysdeps/pthread sysdeps/pthread
ports/sysdeps/unix/sysv/linux sysdeps/unix/sysv/linux sysdeps/gnu
sysdeps/unix/common sysdeps/unix/mman sysdeps/unix/inet
ports/sysdeps/unix/sysv/i386 sysdeps/unix/sysv/i386
nptl/sysdeps/unix/sysv ports/sysdeps/unix/sysv sysdeps/unix/sysv
sysdeps/unix/i386 nptl/sysdeps/unix ports/sysdeps/unix sysdeps/unix
sysdeps/posix sysdeps/i386/i686/fpu nptl/sysdeps/i386/i686
sysdeps/i386/i686 sysdeps/i386/i486 nptl/sysdeps/i386/i486
sysdeps/i386/fpu nptl/sysdeps/i386 sysdeps/i386 sysdeps/wordsize-32
sysdeps/ieee754/ldbl-96 sysdeps/ieee754/dbl-64 sysdeps/ieee754/flt-32
sysdeps/ieee754 sysdeps/generic/elf sysdeps/generic
checking for a BSD-compatible install... /usr/bin/install -c
checking whether ln -s works... yes
checking for i686-angstrom-linux-gcc... i686-angstrom-linux-gcc -mcpu=pentiumpro
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether i686-angstrom-linux-gcc -mcpu=pentiumpro accepts -g... yes
checking for i686-angstrom-linux-gcc -mcpu=pentiumpro option to accept
ANSI C... none needed
checking for gcc... gcc
checking how to run the C preprocessor... i686-angstrom-linux-gcc -E
checking for i686-angstrom-linux-g++... i686-angstrom-linux-g++ -mcpu=pentiumpro
checking whether we are using the GNU C++ compiler... no
checking whether i686-angstrom-linux-g++ -mcpu=pentiumpro accepts -g... no
checking whether
/home/jon/atmel/openembedded/org.openembedded.stable/tmp/cross/lib/gcc/i686-angstrom-linux/4.1.2/../../../../i686-angstrom-linux/bin/as
is GNU as... yes
checking whether
/home/jon/atmel/openembedded/org.openembedded.stable/tmp/cross/lib/gcc/i686-angstrom-linux/4.1.2/../../../../i686-angstrom-linux/bin/ld
is GNU ld... yes
checking for /home/jon/atmel/openembedded/org.openembedded.stable/tmp/cross/lib/gcc/i686-angstrom-linux/4.1.2/../../../../i686-angstrom-linux/bin/as...
/home/jon/atmel/openembedded/org.openembedded.stable/tmp/cross/lib/gcc/i686-angstrom-linux/4.1.2/../../../../i686-angstrom-linux/bin/as
checking version of
/home/jon/atmel/openembedded/org.openembedded.stable/tmp/cross/lib/gcc/i686-angstrom-linux/4.1.2/../../../../i686-angstrom-linux/bin/as...
2.18, ok
checking for /home/jon/atmel/openembedded/org.openembedded.stable/tmp/cross/lib/gcc/i686-angstrom-linux/4.1.2/../../../../i686-angstrom-linux/bin/ld...
/home/jon/atmel/openembedded/org.openembedded.stable/tmp/cross/lib/gcc/i686-angstrom-linux/4.1.2/../../../../i686-angstrom-linux/bin/ld
checking version of
/home/jon/atmel/openembedded/org.openembedded.stable/tmp/cross/lib/gcc/i686-angstrom-linux/4.1.2/../../../../i686-angstrom-linux/bin/ld...
2.18, ok
checking for pwd... /bin/pwd
checking for i686-angstrom-linux-gcc... (cached)
i686-angstrom-linux-gcc -mcpu=pentiumpro
checking version of i686-angstrom-linux-gcc -mcpu=pentiumpro... 4.1.2, ok
checking for gnumake... make
checking version of make... 3.81, ok
checking for gnumsgfmt... no
checking for gmsgfmt... no
checking for msgfmt... msgfmt
checking version of msgfmt... 0.14.1, ok
checking for makeinfo... makeinfo
checking version of makeinfo... 4.8, ok
checking for sed... sed
checking version of sed... 4.1.5, ok
checking for autoconf... autoconf
checking whether autoconf works... yes
checking whether ranlib is necessary... `-mcpu=' is deprecated. Use
`-mtune=' or '-march=' instead.
no
checking LD_LIBRARY_PATH variable... ok
checking whether GCC supports -static-libgcc... -static-libgcc
checking for bash... /bin/sh
checking for gawk... gawk
checking for perl... /usr/bin/perl
checking for install-info... /usr/sbin/install-info
checking for bison...
/home/jon/atmel/openembedded/org.openembedded.stable/tmp/staging/i686-linux/bin/bison
checking for signed size_t type... no
checking for libc-friendly stddef.h... yes
checking whether we need to use -P to assemble .S files... no
checking whether .text pseudo-op must be used... yes
checking for assembler global-symbol directive... .globl
checking for .set assembler directive... no
checking for assembler .type directive prefix... @
checking for .symver assembler directive... yes
checking for ld --version-script... yes
checking for .previous assembler directive... yes
checking for .protected and .hidden assembler directive... yes
checking whether __attribute__((visibility())) is supported... yes
checking for broken __attribute__((visibility()))... no
checking for broken __attribute__((alias()))... no
checking whether to put _rtld_local into .sdata section... no
checking for i686-angstrom-linux-readelf... i686-angstrom-linux-readelf
checking for .preinit_array/.init_array/.fini_array support... no
configure: error: Need linker with .init_array/.fini_array support.
FATAL: oe_runconf failed
Thanks,
Jon
More information about the Openembedded-users
mailing list