On Mon, Aug 24, 2020 at 7:13 AM MikeB <[email protected]> wrote:
>
> Your solution worked great!  Thank you for that as I don't think I would have 
> tracked that down soon.
>
> I now have a follow on problem that I have not been able to solve yet - 
> mostly because my knowledge of the GNU toolchain is not very deep.
>
> This problem only shows up in my Dunfell MIPS build - I also maintain x86_64, 
> AARCH64, and ARM platforms.
>
> I use the SDK to build some proprietary apps.
>
> I have a library libcommon.so that contains many functions used by the 
> proprietary apps.
>
> I have an app that uses only a few of the functions in libcomon.so and none 
> of those functions have any further dependencies.
>
> When I try to link the app using the Dunfell MIPS SDK, it looks like the 
> linker is including every function in libcommon.so into my app.  Many of the 
> unused functions have further dependencies on other libraries which I do not 
> link in because this app isn't using any of those functions.
>
> I've tried everything I can think of to fix this link failure, but no luck.
>
> I assume I'm missing some linker flag now required in Dunfell, but I don't 
> know which one.
>
> Any thoughts on how to fix my linker failure?

which linker are you using by default, is it gold linker on other
platforms and bfd linker on mips ?
maybe you want to try --allow-shlib-undefined linker option.

>
> Thanks, Mike
>
>
> On Thu, Aug 20, 2020 at 8:04 PM Khem Raj <[email protected]> wrote:
>>
>> On Wed, Aug 19, 2020 at 3:08 AM MikeB <[email protected]> wrote:
>> >
>> > Reposting in the hopes of getting an answer - I'm stuck.
>> >
>> > I'm in the process of upgrading from Zeus to Dunfell.  For my MIPS 
>> > platform, the library ABI version has changed from 0 to 5.  I have some 
>> > backward compatibility issues that require generating at least some 
>> > libraries with ABI version 0.  I've tried using -fabi_version=0 in my 
>> > CCFLAGS, but that seems to be ignored.  Can someone tell me how to set the 
>> > ABI version back to 0 in my image and SDK?
>> >
>> > I'm building for a custom MIPs platform running on a Cavium Octeon II in 
>> > 32-bit mode.
>> >
>> > TUNE_FEATURES  = "o32 bigendian fpu-hard octeon2"
>> >
>> > A current Dunfell shared library ELF Header looks like this:
>> >
>> > ELF Header:
>> >   Magic:   7f 45 4c 46 01 02 01 00 05 00 00 00 00 00 00 00
>> >   Class:                             ELF32
>> >   Data:                              2's complement, big endian
>> >   Version:                           1 (current)
>> >   OS/ABI:                            UNIX - System V
>> >   ABI Version:                       5
>> >   Type:                              DYN (Shared object file)
>> >   Machine:                           MIPS R3000
>> >   Version:                           0x1
>> >   Entry point address:               0x1630
>> >   Start of program headers:          52 (bytes into file)
>> >   Start of section headers:          22488 (bytes into file)
>> >   Flags:                             0x808d1107, noreorder, pic, cpic, 
>> > 32bitmode, octeon2, o32, mips64r2
>> >
>> > The same library built with Zeus looks like this.
>> >
>> > ELF Header:
>> >   Magic:   7f 45 4c 46 01 02 01 00 00 00 00 00 00 00 00 00
>> >   Class:                             ELF32
>> >   Data:                              2's complement, big endian
>> >   Version:                           1 (current)
>> >   OS/ABI:                            UNIX - System V
>> >   ABI Version:                       0
>> >   Type:                              DYN (Shared object file)
>> >   Machine:                           MIPS R3000
>> >   Version:                           0x1
>> >   Entry point address:               0x1500
>> >   Start of program headers:          52 (bytes into file)
>> >   Start of section headers:          22340 (bytes into file)
>> >   Flags:                             0x808d1107, noreorder, pic, cpic, 
>> > 32bitmode, octeon2, o32, mips64r2
>> >
>> > The ABI Version being the issue.
>> >
>>
>> This is due to switching default hash style from sysv to gnu starting
>> dunfell. You can switch back to sysv either via LDFLAGS
>> or explicitly define
>>
>> LINKER_HASH_STYLE_mipsarch = "sysv"
>>
>> in your distro.
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#50350): https://lists.yoctoproject.org/g/yocto/message/50350
Mute This Topic: https://lists.yoctoproject.org/mt/76283333/21656
Group Owner: [email protected]
Unsubscribe: https://lists.yoctoproject.org/g/yocto/unsub  
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to