[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Bug#758581: debian-installer: FTBFS on armhf/network-console: No library provides non-weak __aeabi_unwind_cpp_pr0



On Fri, 2014-08-22 at 05:26 +0200, Cyril Brulebois wrote:
> Ian Campbell <ijc@hellion.org.uk> (2014-08-22):
> > The Internet(tm) seems to think that __aeabi_unwind_cpp_pr0 comes from
> > libunwind, but the wifi in this hotel is making it a rather slow job
> > to figure out what might be depending on that and/or whether there
> > is/should be a udeb for it, I'll try and investigate further though.
> > 
> > Interesting that only the network-console flavour is affected....
> 
> Comparing netboot and network-console builds before the library
> reduction phase leads to an interesting diff, which I'm not attaching
> because I think that's not really needed, see below.
> 
> 
> (BTW: There's a similar symbol in the kernel but I'm going to assume the
> *.ko diff is totally irrelevant to the problem in mklibs…)

Yes, I'm sure it is irrelevant.

> Letting netboot go through, and grepping for that symbol, there's no
> match in the resulting tree; on the contrary, network-console still gets
> some:
> | Binary file tmp/network-console/tree/lib/libcrypt.so.1-so-stripped matches
> | Binary file tmp/network-console/tree/lib/libcrypt.so.1-so matches
> | Binary file tmp/network-console/tree/lib/libc.so.6-so matches
> 
> Interestingly, grepping for libcrypt.so in netboot shows no match, while
> network-console has:
> | Binary file tmp/network-console/tree/bin/gen-crypt matches
> | Binary file tmp/network-console/tree/lib/libcrypt.so.1-so-stripped matches
> | Binary file tmp/network-console/tree/lib/libcrypt.so.1-so matches
> | Binary file tmp/network-console/tree/usr/sbin/sshd matches
> 
> See? Both gen-crypt and sshd are only in the network-console image, and
> apparently pulling libcrypt.so.1, which comes from libc:
> | libc6:armhf: /lib/arm-linux-gnueabihf/libcrypt.so.1
> 
> Also in the tree, nm -D shows that this libcrypt.so.1-so* have:
> |          U __aeabi_unwind_cpp_pr0
> which is likely what mklibs barfs about.
> 
> 
> Bottom line: FTBFS vs. non-FTBFS depending on image type is likely
> explained by the differences in binaries included in each image;

Agreed.

>  and
> that FTBFS was likely introduced by a toolchain update which mklibs
> doesn't exactly cope nicely with, yet.

Possibly. One thing I'm confused about is that the symbol is apparently
provided by libgcc_s.so.1 but that doesn't appears under
tmp/network-console/ anywhere. But surely some other symbols from
libgcc_s must be being used already.

Running mklibs by hand in verbose mode AFAICT it is never even
considering libgcc_s.so.1. 

Copying /lib/arm-linux-gnueabihf/libgcc_s.so.1 to
tmp/network-console/tree/lib/ (which I'm sure is quite wrong...) doesn't
work but it does cause mklibs to spit out some interesting debug:

        needed_symbols adding __aeabi_unwind_cpp_pr0, weak: False
        [...]
        present_symbols adding __aeabi_unwind_cpp_pr0@GCC_3.5@libgcc_s.so.1
        [...]
        Exception: No library provides non-weak __aeabi_unwind_cpp_pr0
        
(the middle line is from calling mklibs-readelf
--print-symbols-provided ./tmp/network-console/tree/lib/libgcc_s.so.1)

Which made me wonder if the issue might be to do with symbol versioning
somehow?

> For the record, I'm listing below where the symbol is referenced (T in
> libgcc_s.so.1, U elsewhere).

Was it deliberate that this referenced the host (/lib etc) rather than
the build tree?

I've timed out for now, but I'll continue prodding as I have the
chance...

Ian.


Reply to: