Bugzilla bug 493 - libbfd seg fault

Niels Christiansen nchr@us.ibm.com
Wed Dec 12 18:50:00 GMT 2001


Why powerpc?  Anyway, with your patch I still get a seg fault.  If I
reverse the condition on the test for bfd_set_default_target(), what I get
is:

[nchris@tollway bfdtest]$ ./bfdtest bfdtest
bfd_set_default_target: Success
[nchris@tollway bfdtest]$

...so that looks okay.  Since this is on Linux IA64 I tried using "ia64" in
place of "powerpc"?  It works just like "powerpc".

Niels



                                                                                                       
                    Alan Modra                                                                         
                    <amodra@bigpon       To:     Niels Christiansen/Austin/IBM@IBMUS                   
                    d.net.au>            cc:     binutils@sources.redhat.com                           
                                         Subject:     Re: Bugzilla bug 493 - libbfd seg fault          
                    12/12/2001                                                                         
                    08:29 PM                                                                           
                                                                                                       
                                                                                                       



On Wed, Dec 12, 2001 at 09:04:37PM -0500, Niels Christiansen wrote:
> Alan,
>
> This code works just fine on Linux IA32 and AIX PPC.  Adding bfd_init()
> makes no difference.  set_default_bfd_target() seems to be a function
used
> only by binutils when you want to look at binaries from a different
> platform and is unresolved if I try to use it, so obviously not in the
> library.

Um, OK, set_default_bfd_target is a wrapper in bucomm.c.  Applying this
patch:

--- bfdtest.c~  Thu Dec 13 09:55:33 2001
+++ bfdtest.c   Thu Dec 13 11:50:07 2001
@@ -22,6 +22,14 @@
       printf("Usage: %s kernel-image\n", argv[0]);
       exit(1);
    }
+
+   bfd_init ();
+   if (! bfd_set_default_target ("powerpc-unknown-linux-gnu"))
+   {
+      perror("bfd_set_default_target");
+      exit(1);
+   }
+
    if ((ibfd = (bfd_openr(argv[1], NULL))) == NULL)
    {
       perror("bfd_openr");

gives me the following

alan@pepper:~/bfdtest$ ./bfdtest bfdtest | tail
_bfd_generic_get_section_contents_in_window
_bfd_elf_reloc_type_class
coff_find_nearest_line
bfd_get_section_by_name
_bfd_elf_link_hash_table_create
bfd_set_arch_info
bfd_elf32_big_generic_vec
__gmon_start__
strcpy@@GLIBC_2.0
bfd_link_hash_lookup







More information about the Binutils mailing list