Re: [RFA] Check solib bfd arch

Hui Zhu
2009-09-18T05:05:12Z

Hi Joel,

Thanks for you work.

Could you please try it with "bfd_arch_rs6000 and bfd_arch_powerpc"?
Or Ulrich, maybe you can help us with it. :)

Thanks,
Hui

On Fri, Sep 18, 2009 at 06:56, Joel Brobecker <brobecker@adacore.com> wrote:
> Hello,
>
> The following patch is causing trouble on sparc-solaris:
>
>> 2009-07-08  Hui Zhu  <teawater@gmail.com>
>>
>>       * solib.c (solib_bfd_open): Output a warning if solib's
>>       architecture is not compatible with inferior's architecture.
>
> I now see:
>
>    (gdb) run
>    Starting program: /[...]/sparc64/ex/task_switch
>    warning: `/usr/platform/SUNW,Sun-Fire-V440/lib/sparcv9/libc_psr.so.1': Shared library architecture sparc:v9a is not compatible with target architecture sparc:v9.
>
>> +  if (b->compatible (b, bfd_get_arch_info (abfd)) != b)
>
> In my case, b->compatible is bfd_default_compatible. the architecture
> is set to sparc:v9, and the shared library's architecture is sparc:v9a.
> The problem is that b->compatible is returning the architecture that
> is "more featureful" of the two, which in this case is sparc:v9a.
> As a result, we emit the warning.
>
> Looks to me like the check is too aggressive and should be changed
> to == 0. Would that be correct?
>
> 2009-09-16  Joel Brobecker  <brobecker@adacore.com>
>
>        * solib.c (solib_bfd_open): Relax a bit the compatibility check.
>
> Tested on sparc64-solaris.
>
> --
> Joel
>