OK, now we're really in the mire. As a reminder for anyone following along, I'm 
working on the 20080108 snapshot of the uClibc/kernel 2.6 book, and I'm using 
package users (not that that should matter for this).

Compiling libstdc++ in the butterfly toolchain apparently requires msgfmt, from 
gettext. But msgfmt as installed is broken; it depends on two missing 
libraries, also from the gettext package:

libgettextsrc-0.16.1.so
libgettextlib-0.16.1.so

So I went back and rebuilt gettext (the chapter 5 build) and copied those two 
libraries into /tools/lib. Then I ran ldd against the tool that was complaining 
at the end of my butterfly build:

# ldd /tools/bin/.libs/lt-msgfmt
        libgettextsrc-0.16.1.so => /tools/lib/libgettextsrc-0.16.1.so 
(0xb7f69000)
        libgettextlib-0.16.1.so => /tools/lib/libgettextlib-0.16.1.so 
(0xb7f4e000)
        libintl.so.8 => /tools/lib/libintl.so.8 (0xb7f43000)
        libc.so.0 => /tools/lib/libc.so.0 (0xb7eb1000)
        libssp.so.0 => /tools/lib/libssp.so.0 (0xb7ead000)
        libc.so.6 => not found
        libc.so.6 => not found
        ld-uClibc.so.0 => /tools/lib/ld-uClibc.so.0 (0xb7f9c000)

It's looking for glibc (libc.so.6). What's happened here? Should these have 
been linked statically against the host's glibc? If so, how do I do that? I'll 
keep working on it, but if anyone has any tips for me, I'd appreciate it.

For the record, here is the end of my latest build attempt:

Making all in po
make[4]: Entering directory 
`/usr/src/butterfly/butterfly-build/i686-pc-linux-uclibc/libstdc++-v3/po'
msgfmt -o de.mo ../../../../butterfly-toolchain/libstdc++-v3/po/de.po
/tools/bin/.libs/lt-msgfmt: can't load library 'libgettextsrc-0.16.1.so'
make[4make[4]: Leaving directory 
`/usr/src/butterfly/butterfly-build/i686-pc-linux-uclibc/libstdc++-v3/po'
]: *** [de.mo] Error 16
make[3]: Leaving directory 
`/usr/src/butterfly/butterfly-build/i686-pc-linux-uclibc/libstdc++-v3'
make[3]: *** [all-recursive] Error 1
make[2]: *** [all] Error 2
make[2]: Leaving directory 
`/usr/src/butterfly/butterfly-build/i686-pc-linux-uclibc/libstdc++-v3'
make[1]: Leaving directory `/usr/src/butterfly/butterfly-build'
make[1]: *** [all-target-libstdc++-v3] Error 2
make: *** [all] Error 2

Chris Buxton
Professional Services
Men & Mice
Address: Noatun 17, IS-105, Reykjavik, Iceland
Phone:   +354 412 1500
Email:   [EMAIL PROTECTED]
www.menandmice.com
 
Men & Mice
We bring control and flexibility to network management
 
This e-mail and its attachments may contain confidential and privileged 
information only intended for the person or entity to which it is addressed. If 
the reader of this message is not the intended recipient, you are hereby 
notified that any retention, dissemination, distribution or copy of this e-mail 
is strictly prohibited. If you have received this e-mail in error, please 
notify us immediately by reply e-mail and immediately delete this message and 
all its attachment.

----- Original Message -----
From: "Chris Buxton" <[EMAIL PROTECTED]>
To: "Hardened LFS Development List" <[email protected]>
Sent: Thursday, January 17, 2008 2:09:59 PM (GMT-0800) America/Los_Angeles
Subject: Re: uclibc

Hello Gregory,

Thanks for the tip. That seems to have gotten me past that linking error and on 
to the next error in the building of libstdc++-v3. :\

I'll post information about that once any easy problems are answered (like the 
missing /bin/sed - a symlink should solve that).

Chris Buxton
Professional Services
Men & Mice
Address: Noatun 17, IS-105, Reykjavik, Iceland
Phone:   +354 412 1500
Email:   [EMAIL PROTECTED]
www.menandmice.com
 
Men & Mice
We bring control and flexibility to network management
 
This e-mail and its attachments may contain confidential and privileged 
information only intended for the person or entity to which it is addressed. If 
the reader of this message is not the intended recipient, you are hereby 
notified that any retention, dissemination, distribution or copy of this e-mail 
is strictly prohibited. If you have received this e-mail in error, please 
notify us immediately by reply e-mail and immediately delete this message and 
all its attachment.

----- Original Message -----
From: "Gregory Fleischer (Lists)" <[EMAIL PROTECTED]>
To: "Hardened LFS Development List" <[email protected]>
Sent: Wednesday, January 16, 2008 9:09:43 PM (GMT-0800) America/Los_Angeles
Subject: Re: uclibc

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Jan 16, 2008, at 9:05 AM, Chris Buxton wrote:

> Here is the command that apparently failed (it's a long one):
>
>  /usr/src/butterfly/butterfly-build/./gcc/xgcc -shared-libgcc -B/ 
> usr/src/butterfly/butterfly-build/./gcc -nostdinc++ -L/usr/src/ 
> butterfly/butterfly-build/i686-pc-linux-uclibc/libstdc++-v3/src -L/ 
> usr/src/butterfly/butterfly-build/i686-pc-linux-uclibc/libstdc++-v3/ 
> src/.libs -B/usr/i686-pc-linux-uclibc/bin/ -B/usr/i686-pc-linux- 
> uclibc/lib/ -isystem /usr/i686-pc-linux-uclibc/include -isystem / 
> usr/i686-pc-linux-uclibc/sys-include -L/usr/src/butterfly/butterfly- 
> build/./ld -shared -nostdlib /usr/lib/gcc/../crti.o /usr/src/ 
> butterfly/butterfly-build/./gcc/crtbeginS.o  .libs/ 
> bitmap_allocator.o .libs/pool_allocator.o .libs/ 
> mt_allocator.o .libs/codecvt.o .libs/compatibility.o .libs/ 
> complex_io.o .libs/ctype.o .libs/debug.o .libs/debug_list.o .libs/ 
> functexcept.o .libs/globals_locale.o .libs/globals_io.o .libs/ 
> ios.o .libs/ios_failure.o .libs/ios_init.o .libs/ios_locale.o .libs/ 
> limits.o .libs/list.o .libs/locale.o .libs/locale_init.o .libs/ 
> locale_facets.o .libs/localename.o .libs/stdexcept.o
>   .libs/strstream.o .libs/tree.o .libs/allocator-inst.o .libs/ 
> concept-inst.o .libs/fstream-inst.o .libs/ext-inst.o .libs/ios- 
> inst.o .libs/iostream-inst.o .libs/istream-inst.o .libs/ 
> istream.o .libs/locale-inst.o .libs/locale-misc-inst.o .libs/misc- 
> inst.o .libs/ostream-inst.o .libs/sstream-inst.o .libs/streambuf- 
> inst.o .libs/streambuf.o .libs/string-inst.o .libs/valarray- 
> inst.o .libs/wlocale-inst.o .libs/wstring-inst.o .libs/ 
> atomicity.o .libs/codecvt_members.o .libs/collate_members.o .libs/ 
> ctype_members.o .libs/messages_members.o .libs/ 
> monetary_members.o .libs/numeric_members.o .libs/ 
> time_members.o .libs/basic_file.o .libs/c++locale.o -Wl,--whole- 
> archive ../libmath/.libs/libmath.a ../libsupc++/.libs/libsupc+ 
> +convenience.a /usr/lib/libssp_nonshared.a /usr/lib/ 
> libssp_nonshared.a /usr/lib/libssp_nonshared.a -Wl,--no-whole- 
> archive  -L/usr/src/butterfly/butterfly-build/i686-pc-linux-uclibc/ 
> libstdc++-v3/src -L/usr/src/butterfly/butterfly-build/i686-pc-linux- 
> uclibc/libstdc++-v3/src/.l
>  ibs -L/usr/src/butterfly/butterfly-build/./ld -lm ../libmath/.libs/ 
> libmath.a -lm ../libsupc++/.libs/libsupc++convenience.a -lm -L/usr/ 
> src/butterfly/butterfly-build/./gcc -L/usr/lib/gcc/.. -lgcc_s -lc - 
> lc -lgcc_s -lm /usr/lib/libssp_nonshared.a /usr/lib/libssp.so - 
> lgcc_s /lib/libintl.so -lc -lgcc_s   /usr/src/butterfly/butterfly- 
> build/./gcc/crtendS.o /usr/lib/gcc/../crtn.o  -Wl,-O1 -Wl,-z - 
> Wl,relro -Wl,--version-script=libstdc++-symbol.ver -Wl,-soname - 
> Wl,libstdc++.so.6 -o .libs/libstdc++.so.6.0.8
>
> And here are the error messages after that:
>
> /usr/lib/libssp_nonshared.a(libssp_nonshared_la-ssp-local.o): In  
> function `__stack_chk_fail_local':
> ../ssp-local.c:48: multiple definition of `__stack_chk_fail_local'
> /usr/lib/libssp_nonshared.a(libssp_nonshared_la-ssp-local.o):../ssp- 
> local.c:48: first defined here
> /usr/lib/libssp_nonshared.a(libssp_nonshared_la-ssp-local.o): In  
> function `__stack_chk_fail_local':
> ../ssp-local.c:48: multiple definition of `__stack_chk_fail_local'
> /usr/lib/libssp_nonshared.a(libssp_nonshared_la-ssp-local.o):../ssp- 
> local.c:48: first defined here
> collect2: ld returned 1 exit status
> make[4]: Leaving directory `/usr/src/butterfly/butterfly-build/i686- 
> pc-linux-uclibc/libstdc++-v3/src'
> make[4]: *** [libstdc++.la] Error 1
> make[3]: *** [all-recursive] Error 1
> make[3]: Leaving directory `/usr/src/butterfly/butterfly-build/i686- 
> pc-linux-uclibc/libstdc++-v3'
> make[2]: *** [all] Error 2
> make[2]: Leaving directory `/usr/src/butterfly/butterfly-build/i686- 
> pc-linux-uclibc/libstdc++-v3'
> make[1]: Leaving directory `/usr/src/butterfly/butterfly-build'
>

I've seen this error before, and it was related to the fact that  
libssp_nonshared.a is being included multiple when being linked into  
libstdc++.so.  If one examines the command carefully,  
libssp_nonshared.a is listed multiple times as arguments following "- 
Wl,--whole-archive".

When I encountered it, I eventually determined that there was a  
problem with the dependency detection in ltcf-cxx.sh for libstdc++- 
v3.  I was able to workaround this issue by running the following  
commands against the source to "fix" the problem:

      echo 'postdeps="${postdeps//-lssp_nonshared}"' >> ltcf-cxx.sh
      echo 'postdeps="${postdeps//-lssp}"' >> ltcf-cxx.sh
      sed -i.orig -e '[EMAIL PROTECTED](LIBS)@& -lssp_nonshared -lssp@' \
          ./libstdc++-v3/src/Makefile.in

Hope that helps.

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (Darwin)

iD8DBQFHjuMYWbVJrJm/lrsRApZXAJsEfqOJFiFhDAIDQH3mghw5rzB7UQCgnezr
GYomZlA+uHIJViqHfAaQkp0=
=yZcP
-----END PGP SIGNATURE-----
-- 
http://linuxfromscratch.org/mailman/listinfo/hlfs-dev
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page

-- 
http://linuxfromscratch.org/mailman/listinfo/hlfs-dev
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page

-- 
http://linuxfromscratch.org/mailman/listinfo/hlfs-dev
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page

Reply via email to