mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-17 07:53:51 +08:00
BFD_INIT_MAGIC
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.
This commit is contained in:
11
bfd/init.c
11
bfd/init.c
@ -38,17 +38,24 @@ FUNCTION
|
||||
bfd_init
|
||||
|
||||
SYNOPSIS
|
||||
void bfd_init (void);
|
||||
size_t bfd_init (void);
|
||||
|
||||
DESCRIPTION
|
||||
This routine must be called before any other BFD function to
|
||||
initialize magical internal data structures.
|
||||
Returns a magic number, which may be used to check
|
||||
that the bfd library is configured as expected by users.
|
||||
.
|
||||
.{* Value returned by bfd_init. *}
|
||||
.
|
||||
.#define BFD_INIT_MAGIC (sizeof (struct bfd_section))
|
||||
*/
|
||||
|
||||
/* Actually, there is currently nothing for this function to do.
|
||||
However, someday it may be needed, so keep it around. */
|
||||
|
||||
void
|
||||
size_t
|
||||
bfd_init (void)
|
||||
{
|
||||
return BFD_INIT_MAGIC;
|
||||
}
|
||||
|
Reference in New Issue
Block a user