2010-04-27 Kai Tietz <kai.tietz@onevision.com>

* pe-x86_64.c (TARGET_UNDERSCORE): Set value dependent
	to USE_MINGW64_LEADING_UNDERSCORES.
        * pei-x86_64.c (TARGET_UNDERSCORE): Likewise.
	* config.bfd: Change underscoring default for x64 mingw
	to false.
	* coffcode.h (coff_write_relocs): Add check that dereferenced
	sym_ptr_ptr isn't NULL.
	* config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
	* configure: Regenerated.
	* configure.in: Add option '--enable-leading-mingw64-underscores'
	and define config.in variable USE_MINGW64_LEADING_UNDERSCORES.
This commit is contained in:
Kai Tietz
2010-04-27 17:26:09 +00:00
parent e78f4312c5
commit ef72a554d9
8 changed files with 56 additions and 6 deletions

View File

@ -1,3 +1,17 @@
2010-04-27 Kai Tietz <kai.tietz@onevision.com>
* pe-x86_64.c (TARGET_UNDERSCORE): Set value dependent
to USE_MINGW64_LEADING_UNDERSCORES.
* pei-x86_64.c (TARGET_UNDERSCORE): Likewise.
* config.bfd: Change underscoring default for x64 mingw
to false.
* coffcode.h (coff_write_relocs): Add check that dereferenced
sym_ptr_ptr isn't NULL.
* config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
* configure: Regenerated.
* configure.in: Add option '--enable-leading-mingw64-underscores'
and define config.in variable USE_MINGW64_LEADING_UNDERSCORES.
2010-04-27 Nick Clifton <nickc@redhat.com> 2010-04-27 Nick Clifton <nickc@redhat.com>
PR binutils/11512 PR binutils/11512

View File

@ -2648,7 +2648,7 @@ coff_write_relocs (bfd * abfd, int first_undef)
entries know which symbol index they point to. So we entries know which symbol index they point to. So we
have to look up the output symbol here. */ have to look up the output symbol here. */
if (q->sym_ptr_ptr[0]->the_bfd != abfd) if (q->sym_ptr_ptr[0] != NULL && q->sym_ptr_ptr[0]->the_bfd != abfd)
{ {
int j; int j;
const char *sname = q->sym_ptr_ptr[0]->name; const char *sname = q->sym_ptr_ptr[0]->name;
@ -2677,7 +2677,7 @@ coff_write_relocs (bfd * abfd, int first_undef)
n.r_symndx = q->addend; n.r_symndx = q->addend;
else else
#endif #endif
if (q->sym_ptr_ptr) if (q->sym_ptr_ptr && q->sym_ptr_ptr[0] != NULL)
{ {
#ifdef SECTION_RELATIVE_ABSOLUTE_SYMBOL_P #ifdef SECTION_RELATIVE_ABSOLUTE_SYMBOL_P
if (SECTION_RELATIVE_ABSOLUTE_SYMBOL_P (q, s)) if (SECTION_RELATIVE_ABSOLUTE_SYMBOL_P (q, s))

View File

@ -177,7 +177,6 @@ case "${targ}" in
;; ;;
alpha*-*-*vms*) alpha*-*-*vms*)
targ_defvec=vms_alpha_vec targ_defvec=vms_alpha_vec
targ_selvecs=vms_lib_txt_vec
want64=true want64=true
;; ;;
alpha*-*-*) alpha*-*-*)
@ -640,7 +639,7 @@ case "${targ}" in
targ_defvec=x86_64pe_vec targ_defvec=x86_64pe_vec
targ_selvecs="x86_64pe_vec x86_64pei_vec bfd_elf64_x86_64_vec bfd_elf64_l1om_vec" targ_selvecs="x86_64pe_vec x86_64pei_vec bfd_elf64_x86_64_vec bfd_elf64_l1om_vec"
want64=true want64=true
targ_underscore=yes targ_underscore=no
;; ;;
#endif #endif
i[3-7]86-*-lynxos*) i[3-7]86-*-lynxos*)
@ -1511,6 +1510,10 @@ case "${targ}" in
targ_defvec=bfd_elf32_vax_vec targ_defvec=bfd_elf32_vax_vec
;; ;;
vax*-*-*vms*)
targ_defvec=vms_vax_vec
;;
we32k-*-*) we32k-*-*)
targ_defvec=we32kcoff_vec targ_defvec=we32kcoff_vec
;; ;;

View File

@ -297,6 +297,9 @@
/* Use b modifier when opening binary files? */ /* Use b modifier when opening binary files? */
#undef USE_BINARY_FOPEN #undef USE_BINARY_FOPEN
/* Define if we should use leading underscore on 64 bit mingw targets */
#undef USE_MINGW64_LEADING_UNDERSCORES
/* Use mmap if it's available? */ /* Use mmap if it's available? */
#undef USE_MMAP #undef USE_MMAP

18
bfd/configure vendored
View File

@ -785,6 +785,7 @@ enable_64_bit_bfd
enable_targets enable_targets
with_mmap with_mmap
enable_secureplt enable_secureplt
enable_leading_mingw64_underscores
with_separate_debug_dir with_separate_debug_dir
enable_elf_stt_common enable_elf_stt_common
with_pkgversion with_pkgversion
@ -1435,6 +1436,8 @@ Optional Features:
--enable-64-bit-bfd 64-bit support (on hosts with narrower word sizes) --enable-64-bit-bfd 64-bit support (on hosts with narrower word sizes)
--enable-targets alternative target configurations --enable-targets alternative target configurations
--enable-secureplt Default to creating read-only plt entries --enable-secureplt Default to creating read-only plt entries
--enable-leading-mingw64-underscores
Enable leading underscores on 64 bit mingw targets
--enable-elf-stt-common Allow the generation of ELF symbols with the STT_COMMON type --enable-elf-stt-common Allow the generation of ELF symbols with the STT_COMMON type
--enable-werror treat compile warnings as errors --enable-werror treat compile warnings as errors
--enable-build-warnings enable build-time compiler warnings --enable-build-warnings enable build-time compiler warnings
@ -11402,7 +11405,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF cat > conftest.$ac_ext <<_LT_EOF
#line 11405 "configure" #line 11408 "configure"
#include "confdefs.h" #include "confdefs.h"
#if HAVE_DLFCN_H #if HAVE_DLFCN_H
@ -11508,7 +11511,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF cat > conftest.$ac_ext <<_LT_EOF
#line 11511 "configure" #line 11514 "configure"
#include "confdefs.h" #include "confdefs.h"
#if HAVE_DLFCN_H #if HAVE_DLFCN_H
@ -12049,6 +12052,17 @@ $as_echo "#define USE_SECUREPLT 1" >>confdefs.h
fi fi
# Check whether --enable-leading-mingw64-underscores was given.
if test "${enable_leading_mingw64_underscores+set}" = set; then :
enableval=$enable_leading_mingw64_underscores;
fi
if test x"$enable_leading_mingw64_underscores" = xyes ; then :
$as_echo "#define USE_MINGW64_LEADING_UNDERSCORES 1" >>confdefs.h
fi
DEBUGDIR=${libdir}/debug DEBUGDIR=${libdir}/debug
# Check whether --with-separate-debug-dir was given. # Check whether --with-separate-debug-dir was given.

View File

@ -75,6 +75,14 @@ if test $use_secureplt = true; then
[Define if we should default to creating read-only plt entries]) [Define if we should default to creating read-only plt entries])
fi fi
AC_ARG_ENABLE(leading-mingw64-underscores,
AS_HELP_STRING([--enable-leading-mingw64-underscores],
[Enable leading underscores on 64 bit mingw targets]),
[],[])
AS_IF([ test x"$enable_leading_mingw64_underscores" = xyes ],
[AC_DEFINE(USE_MINGW64_LEADING_UNDERSCORES, 1,
[Define if we should use leading underscore on 64 bit mingw targets])])
DEBUGDIR=${libdir}/debug DEBUGDIR=${libdir}/debug
AC_ARG_WITH(separate-debug-dir, AC_ARG_WITH(separate-debug-dir,
AS_HELP_STRING([--with-separate-debug-dir=DIR], AS_HELP_STRING([--with-separate-debug-dir=DIR],

View File

@ -28,7 +28,11 @@
#define COFF_WITH_PE #define COFF_WITH_PE
#define COFF_WITH_pex64 #define COFF_WITH_pex64
#define PCRELOFFSET TRUE #define PCRELOFFSET TRUE
#if defined (USE_MINGW64_LEADING_UNDERSCORES)
#define TARGET_UNDERSCORE '_' #define TARGET_UNDERSCORE '_'
#else
#define TARGET_UNDERSCORE 0
#endif
#define COFF_LONG_SECTION_NAMES #define COFF_LONG_SECTION_NAMES
#define COFF_SUPPORT_GNU_LINKONCE #define COFF_SUPPORT_GNU_LINKONCE
#define COFF_LONG_FILENAMES #define COFF_LONG_FILENAMES

View File

@ -29,7 +29,11 @@
#define COFF_WITH_PE #define COFF_WITH_PE
#define COFF_WITH_pex64 #define COFF_WITH_pex64
#define PCRELOFFSET TRUE #define PCRELOFFSET TRUE
#if defined (USE_MINGW64_LEADING_UNDERSCORES)
#define TARGET_UNDERSCORE '_' #define TARGET_UNDERSCORE '_'
#else
#define TARGET_UNDERSCORE 0
#endif
/* Long section names not allowed in executable images, only object files. */ /* Long section names not allowed in executable images, only object files. */
#define COFF_LONG_SECTION_NAMES 0 #define COFF_LONG_SECTION_NAMES 0
#define COFF_SUPPORT_GNU_LINKONCE #define COFF_SUPPORT_GNU_LINKONCE