This is the mail archive of the crossgcc@sources.redhat.com mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Trouble putting together a glibc-2.3.5 addon for ColdFire


Peter Barada wrote:
I can build libc.so.6, but as it tries to put together ld.so.1, glibc
is lookig -lgcc_eh which wasn't built by the core gcc compiler:

m68k-linux-gcc -mcfv4e -nostdlib -nostartfiles -o /home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/build-glibc/iconv/iconvconfig -Wl,-dynamic-linker=/lib/ld.so.1 /home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/build-glibc/csu/crt1.o /home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/build-glibc/csu/crti.o `m68k-linux-gcc -mcfv4e --print-file-name=crtbegin.o` /home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/build-glibc/iconv/iconvconfig.o /home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/build-glibc/iconv/strtab.o /home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/build-glibc/iconv/xmalloc.o /home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m6

8k
-linux/gcc-3.4.3-glibc-2.3.5/build-glibc/iconv/hash-string.o -Wl,-rpath-link=/home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/build-glibc:/home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/build-glibc/math:/home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/build-glibc/elf:/home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/build-glibc/dlfcn:/home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/build-glibc/nss:/home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/build-glibc/nis:/home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/build-glibc/rt:/home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3

.4
 .3-glibc-2.3.5/build-glibc/resolv:/home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/build-glibc/crypt:/home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/build-glibc/linuxthreads /home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/build-glibc/libc.so.6 /home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/build-glibc/libc_nonshared.a -lgcc -lgcc_eh  `m68k-linux-gcc -mcfv4e --print-file-name=crtend.o` /home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/build-glibc/csu/crtn.o
/opt/logicpd/ColdFire-new13/m68k-linux/gcc-3.4.3-glibc-2.3.5/lib/gcc/m68k-linux/3.4.3/../../../../m68k-linux/bin/ld: cannot find -lgcc_eh
collect2: ld returned 1 exit status
make[3]: *** [/home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/build-glibc/iconv/iconvconfig] Error 1
make[3]: Leaving directory `/home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/glibc-2.3.5/iconv'

-lgcc_eh is a thorn in my side, too.


Here's the code I added in crosstool-0.31 to deal with a similar problem:
while building glibc, I don't build its apps until after final gcc is built:

if grep -l '^install-lib-all:' ${GLIBC_DIR}/Makerules > /dev/null; then
    # nptl-era glibc.
    # If the install-lib-all target (which is added by our make-install-lib-all.patch) is present,
    # it means we're building glibc-2.3.3 or later, and we can't build programs yet,
    # as they require libeh, which won't be installed until full build of gcc
    GLIBC_INITIAL_BUILD_RULE=lib
    GLIBC_INITIAL_INSTALL_RULE="install-lib-all install-headers"
else
    # classic glibc.
    # We can build and install everything with the bootstrap compiler.
    GLIBC_INITIAL_BUILD_RULE=all
    GLIBC_INITIAL_INSTALL_RULE=install
fi

plus similar code at the bottom to build the apps
that didn't get built before final gcc.

This only triggers if you have applied
patches/glibc-2.3.4/make-install-lib-all.patch

Give that a shot by copying it to patches/glibc-2.3.5.
(Note: another fix is required when building with old gcc's,
I can give you that if you need it, or it'll be in crosstool-0.32).

If I remove the '-lgcc_eh', then I can link ld.so.1 except for a
warning about llseek being dangerous:

[peter@thunk iconv]$ m68k-linux-gcc -mcfv4e -nostdlib -nostartfiles -o /home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/build-glibc/iconv/iconvconfig -Wl,-dynamic-linker=/lib/ld.so.1 /home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/build-glibc/csu/crt1.o /home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/build-glibc/csu/crti.o `m68k-linux-gcc -mcfv4e --print-file-name=crtbegin.o` /home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/build-glibc/iconv/iconvconfig.o /home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/build-glibc/iconv/strtab.o /home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/build-glibc/iconv/xmalloc.o /home/peter/work/cvs-logic/logic/ColdFire/LinuxToo

ls
/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/build-glibc/iconv/hash-string.o -Wl,-rpath-link=/home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/build-glibc:/home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/build-glibc/math:/home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/build-glibc/elf:/home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/build-glibc/dlfcn:/home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/build-glibc/nss:/home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/build-glibc/nis:/home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/build-glibc/rt:/home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/b

ui
ld/m68k-linux/gcc-3.4.3-glibc-2.3.5/build-glibc/resolv:/home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/build-glibc/crypt:/home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/build-glibc/linuxthreads /home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/build-glibc/libc.so.6 /home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/build-glibc/libc_nonshared.a -lgcc `m68k-linux-gcc -mcfv4e --print-file-name=crtend.o` /home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/build-glibc/csu/crtn.o
/home/peter/work/cvs-logic/logic/ColdFire/LinuxTools/crosstool/build/m68k-linux/gcc-3.4.3-glibc-2.3.5/build-glibc/elf/ld.so.1: warning: the `llseek' function may be dangerous; use `lseek64' instead.
[peter@thunk iconv]$


Any ideas how to get around this one?

Aw, the llseek warning probably doesn't matter unless you're using huge files. - Dan

--
Trying to get a job as a c++ developer?  See http://kegel.com/academy/getting-hired.html


------ Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/ Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]