This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: set sysroot command on AIX has no effect.


Hi Sangamesh,

> If we call solib_bfd_open for .a files then the call to open file using
> gdb_open_cloexec inside solib_find function is failing.
> The reason for this is,
> we will be getting library information from ld_info in the form of
> "/usr/lib/libc.a(shr.o)", but actually we will be having the
> file in filesystem as /usr/lib/libc.a. This is the reason initially i
> didn't use solib_bfd_open.

Yes, I understand why you cannot use solib_bfd_open directly.  That's why
I suggested to use *solib_bfd_fopen* (note the "f") :-)

> But i experimented some more and tried to see how gdb behaves if we pass
> modified pathname exactly as the file which we are having in the machine,
> like "/usr/lib/libc.a".
> Then bfd bfd_check_format is failing with the error "not in executable
> format".
> Looks like bfd isn't able to recognise the .a archives.
> I can have a look on why bfd check is failing.

That's because solib_bfd_open uses the bfd_object argument to
bfd_check_format, which is explicitly supposed to reject .a archives.
Instead, to check for archives, you need to use bfd_archive, like
solib_aix_bfd_open does.  I'm not suggesting to change that, just to
open the bfd using solib_find and solib_bfd_fopen before performing
the check, instead of using gdb_bfd_open.

Bye,
Ulrich

-- 
  Dr. Ulrich Weigand
  GNU/Linux compilers and toolchain
  Ulrich.Weigand@de.ibm.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]