I got the butterfly toolchain to build. Here's what I did:

- I installed all of gettext back in chapter 5.

- I used Robert's symlink suggestion to symlink libssp and libintl into both 
/lib and /usr/lib. (I wasn't sure what was needed, so I symlinked everything in 
/tools/lib that started with either of those strings into both targets. I can 
clean it up later with find.)

- I used Gregory's suggestion to remove the duplicate libraries in the building 
of libstdc++.

These three things together allowed the butterfly toolchain to build 
successfully. Although 'make test' turned up lots of "unexpected failures", the 
book warns of this. The manual tests further down the page all executed 
perfectly, although there are a few errors in the text of what to expect (wrong 
executable names).

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: Friday, January 18, 2008 11:23:38 PM (GMT-0800) America/Los_Angeles
Subject: Re: uclibc

OK, I think I figured it out. Rather than going into the gettext source tree's 
tools directory in chapter 5 and building a small portion of the package, I 
simply built and installed the entire gettext package. During the install, the 
following was sent to stderr:

libtool: install: warning: relinking `libgettextlib.la'
libtool: install: warning: relinking `libgettextsrc.la'
libtool: install: warning: relinking `libgettextpo.la'

And now ldd shows that /tools/bin/msgfmt, which is now a binary rather than 
some kind of wrapper, is no longer dependent on the host's libc:

$ ldd /tools/bin/msgfmt 
        libgettextsrc-0.16.1.so => /tools/lib/libgettextsrc-0.16.1.so 
(0xb7ecd000)
        libgettextlib-0.16.1.so => /tools/lib/libgettextlib-0.16.1.so 
(0xb7eae000)
        libintl.so.8 => /tools/lib/libintl.so.8 (0xb7ea3000)
        libc.so.0 => /tools/lib/libc.so.0 (0xb7e11000)
        libssp.so.0 => /tools/lib/libssp.so.0 (0xb7e0d000)
        ld-uClibc.so.0 => /tools/lib/ld-uClibc.so.0 (0xb7f05000)

I'm thinking that, in chapter 6, I'll rebuild all of gettext again before 
building the butterfly toolchain, instead of just libintl. If necessary, I can 
rebuild it a third time afterward.

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: "Robert Connolly" <[EMAIL PROTECTED]>
To: "Hardened LFS Development List" <[email protected]>
Sent: Thursday, January 17, 2008 5:18:11 PM (GMT-0800) America/Los_Angeles
Subject: Re: uclibc

Please retry installing Gettext (msgfmt) in chapter5 with --disable-shared.

robert

On Thursday January 17 2008 07:46:55 pm Chris Buxton wrote:
> 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
>
> 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.
>
> --
> 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

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

Reply via email to