Skip to content
  • Alan Modra's avatar
    BFD_INIT_MAGIC · bf2dd8d7
    Alan Modra authored
    This patch performs a run-time test that a shared libbfd.so has been
    compiled with the same size bfd_vma as that of apps using the library.
    On a 32-bit host it is easily possible to have one libbfd.so compiled
    to support 64-bit targets (or configured with --enable-64-bit-bfd)
    while another only supports 32-bit targets.  The two libraries will
    have differently sized bfd_vma types, and if the wrong one is loaded
    all sorts of weird behaviour might be seen.
    
    bfd/
    	PR 23534
    	* init.c (BFD_INIT_MAGIC): Define.
    	(bfd_init): Return BFD_INIT_MAGIC.
    	bfd-in2.h: Regenerate.
    binutils/
    	PR 23534
    	* addr2line.c (main): Exit with fatal error if bfd_init
    	returns an unexpected value.
    	* ar.c (main): Likewise.
    	* dlltool.c (identify_dll_for_implib): Likewise.
    	* nm.c (main): Likewise.
    	* objcopy.c (main): Likewise.
    	* objdump.c (main): Likewise.
    	* size.c (main): Likewise.
    	* strings.c (main): Likewise.
    	* windmc.c (main): Likewise.
    	* windres.c (main): Likewise.
    gas/
    	PR 23534
    	* as.c (main): Exit with fatal error if bfd_init returns an
    	unexpected value.
    ld/
    	PR 23534
    	* ldmain.c (main): Exit with fatal error if bfd_init returns
    	an unexpected value.
    bf2dd8d7