mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-21 04:42:53 +08:00
0cb4071ef9
The x86 relax relocations introduced in binutils 2.26 aren't supported by linker on Solaris older than Solaris 12. To use x86 assembler with older Solaris linker, this patch adds 1. A command line option -mrelax-relocations= to x86 assembler to control whether to generate relax relocations. 2. A configure option --enable-x86-relax-relocations to decide whether x86 assembler should generate relax relocations by default. It is defaulted to yes, except for x86 Solaris targets older than Solaris 12. gas/ PR gas/19520 * NEWS: Mention new command line option -mrelax-relocations and new configure option --enable-x86-relax-relocations for x86 target. * config.in: Regenerated. * configure.ac: Add --enable-x86-relax-relocations. (ac_default_x86_relax_relocations): New. Default to 1 except for x86 Solaris targets older than Solaris 12. (DEFAULT_GENERATE_X86_RELAX_RELOCATIONS): Define. * configure: Likewise. * config/tc-i386.c (generate_relax_relocations): New. (OPTION_MRELAX_RELOCATIONS): Likewise. (output_disp): Don't generate relax relocations if generate_relax_relocations is 0. (md_longopts): Add -mrelax-relocations. (md_show_usage): Likewise. (md_parse_option): Handle OPTION_MRELAX_RELOCATIONS. * doc/c-i386.texi: Document -mrelax-relocations=. * testsuite/gas/i386/got-no-relax.d: New file. * testsuite/gas/i386/x86-64-gotpcrel-no-relax.d: Likewise. * testsuite/gas/i386/got.d: Pass -mrelax-relocations=yes to as. * testsuite/gas/i386/localpic.d: Likewise. * testsuite/gas/i386/mixed-mode-reloc32.d: Likewise. * testsuite/gas/i386/reloc32.d: Likewise. * testsuite/gas/i386/x86-64-gotpcrel.d: Likewise. * testsuite/gas/i386/x86-64-localpic.d: Likewise. * testsuite/gas/i386/ilp32/x86-64-gotpcrel.d: Likewise. * testsuite/gas/i386/ilp32/x86-64-localpic.d: Likewise. * testsuite/gas/i386/i386.exp: Run got-no-relax and x86-64-gotpcrel-no-relax. ld/ PR gas/19520 * testsuite/ld-i386/branch1.d: Pass -mrelax-relocations=yes to as. * testsuite/ld-i386/call1.d: Likewise. * testsuite/ld-i386/call2.d: Likewise. * testsuite/ld-i386/call3a.d: Likewise. * testsuite/ld-i386/call3b.d: Likewise. * testsuite/ld-i386/call3c.d: Likewise. * testsuite/ld-i386/call3d.d: Likewise. * testsuite/ld-i386/call3e.d: Likewise. * testsuite/ld-i386/call3f.d: Likewise. * testsuite/ld-i386/call3g.d: Likewise. * testsuite/ld-i386/call3h.d: Likewise. * testsuite/ld-i386/jmp1.d: Likewise. * testsuite/ld-i386/jmp2.d: Likewise. * testsuite/ld-i386/lea1c.d: Likewise. * testsuite/ld-i386/load1.d: Likewise. * testsuite/ld-i386/load2.d: Likewise. * testsuite/ld-i386/load3.d: Likewise. * testsuite/ld-i386/load4a.d: Likewise. * testsuite/ld-i386/load5a.d: Likewise. * testsuite/ld-i386/mov2b.d: Likewise. * testsuite/ld-i386/mov3.d: Likewise. * testsuite/ld-ifunc/ifunc-21-x86-64.d: Likewise. * testsuite/ld-ifunc/ifunc-22-x86-64.d: Likewise. * testsuite/ld-ifunc/ifunc-5r-local-x86-64.d: Likewise. * testsuite/ld-x86-64/call1a.d: Likewise. * testsuite/ld-x86-64/call1b.d: Likewise. * testsuite/ld-x86-64/call1c.d: Likewise. * testsuite/ld-x86-64/call1d.d: Likewise. * testsuite/ld-x86-64/call1e.d: Likewise. * testsuite/ld-x86-64/call1f.d: Likewise. * testsuite/ld-x86-64/call1h.d: Likewise. * testsuite/ld-x86-64/call1i.d: Likewise. * testsuite/ld-x86-64/load1a.d: Likewise. * testsuite/ld-x86-64/load1b.d: Likewise. * testsuite/ld-i386/got1a.S: Load GOT into %ecx and use it. * testsuite/ld-i386/got1.dd: Updated. * testsuite/ld-i386/got1d.S (1): Removed. * testsuite/ld-i386/i386.exp: Add -Wa,-mrelax-relocations=yes. * testsuite/ld-x86-64/x86-64.exp: Likewise.
391 lines
9.7 KiB
Plaintext
391 lines
9.7 KiB
Plaintext
/* config.in. Generated from configure.ac by autoheader. */
|
|
|
|
/* Check that config.h is #included before system headers
|
|
(this works only for glibc, but that should be enough). */
|
|
#if defined(__GLIBC__) && !defined(__FreeBSD_kernel__) && !defined(__CONFIG_H__)
|
|
# error config.h must be #included before system headers
|
|
#endif
|
|
#define __CONFIG_H__ 1
|
|
|
|
/* Define if building universal (internal helper macro) */
|
|
#undef AC_APPLE_UNIVERSAL_BUILD
|
|
|
|
/* Define if using AIX 5.2 value for C_WEAKEXT. */
|
|
#undef AIX_WEAK_SUPPORT
|
|
|
|
/* assert broken? */
|
|
#undef BROKEN_ASSERT
|
|
|
|
/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
|
|
systems. This function is required for `alloca.c' support on those systems.
|
|
*/
|
|
#undef CRAY_STACKSEG_END
|
|
|
|
/* Compiling cross-assembler? */
|
|
#undef CROSS_COMPILE
|
|
|
|
/* Define to 1 if using `alloca.c'. */
|
|
#undef C_ALLOCA
|
|
|
|
/* Default architecture. */
|
|
#undef DEFAULT_ARCH
|
|
|
|
/* Default CRIS architecture. */
|
|
#undef DEFAULT_CRIS_ARCH
|
|
|
|
/* Default emulation. */
|
|
#undef DEFAULT_EMULATION
|
|
|
|
/* Define if you want compressed debug sections by default. */
|
|
#undef DEFAULT_FLAG_COMPRESS_DEBUG
|
|
|
|
/* Define to 1 if you want to generate x86 relax relocations by default. */
|
|
#undef DEFAULT_GENERATE_X86_RELAX_RELOCATIONS
|
|
|
|
/* Supported emulations. */
|
|
#undef EMULATIONS
|
|
|
|
/* Define if you want run-time sanity checks. */
|
|
#undef ENABLE_CHECKING
|
|
|
|
/* Define to 1 if translation of program messages to the user's native
|
|
language is requested. */
|
|
#undef ENABLE_NLS
|
|
|
|
/* Define to 1 if you have `alloca', as a function or macro. */
|
|
#undef HAVE_ALLOCA
|
|
|
|
/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
|
|
*/
|
|
#undef HAVE_ALLOCA_H
|
|
|
|
/* Define to 1 if you have the declaration of `asprintf', and to 0 if you
|
|
don't. */
|
|
#undef HAVE_DECL_ASPRINTF
|
|
|
|
/* Define to 1 if you have the declaration of `free', and to 0 if you don't.
|
|
*/
|
|
#undef HAVE_DECL_FREE
|
|
|
|
/* Define to 1 if you have the declaration of `getenv', and to 0 if you don't.
|
|
*/
|
|
#undef HAVE_DECL_GETENV
|
|
|
|
/* Is the prototype for getopt in <unistd.h> in the expected format? */
|
|
#undef HAVE_DECL_GETOPT
|
|
|
|
/* Define to 1 if you have the declaration of `malloc', and to 0 if you don't.
|
|
*/
|
|
#undef HAVE_DECL_MALLOC
|
|
|
|
/* Define to 1 if you have the declaration of `mempcpy', and to 0 if you
|
|
don't. */
|
|
#undef HAVE_DECL_MEMPCPY
|
|
|
|
/* Define to 1 if you have the declaration of `realloc', and to 0 if you
|
|
don't. */
|
|
#undef HAVE_DECL_REALLOC
|
|
|
|
/* Define to 1 if you have the declaration of `stpcpy', and to 0 if you don't.
|
|
*/
|
|
#undef HAVE_DECL_STPCPY
|
|
|
|
/* Define to 1 if you have the declaration of `strstr', and to 0 if you don't.
|
|
*/
|
|
#undef HAVE_DECL_STRSTR
|
|
|
|
/* Define to 1 if you have the declaration of `vsnprintf', and to 0 if you
|
|
don't. */
|
|
#undef HAVE_DECL_VSNPRINTF
|
|
|
|
/* Define to 1 if you have the <dlfcn.h> header file. */
|
|
#undef HAVE_DLFCN_H
|
|
|
|
/* Define to 1 if you have the <errno.h> header file. */
|
|
#undef HAVE_ERRNO_H
|
|
|
|
/* Define to 1 if you have the <inttypes.h> header file. */
|
|
#undef HAVE_INTTYPES_H
|
|
|
|
/* Define if your <locale.h> file defines LC_MESSAGES. */
|
|
#undef HAVE_LC_MESSAGES
|
|
|
|
/* Define to 1 if you have the <limits.h> header file. */
|
|
#undef HAVE_LIMITS_H
|
|
|
|
/* Define to 1 if you have the <locale.h> header file. */
|
|
#undef HAVE_LOCALE_H
|
|
|
|
/* Define to 1 if you have the <memory.h> header file. */
|
|
#undef HAVE_MEMORY_H
|
|
|
|
/* Define to 1 if you have the `remove' function. */
|
|
#undef HAVE_REMOVE
|
|
|
|
/* Define to 1 if you have the `sbrk' function. */
|
|
#undef HAVE_SBRK
|
|
|
|
/* Define to 1 if you have the `setlocale' function. */
|
|
#undef HAVE_SETLOCALE
|
|
|
|
/* Define to 1 if you have the <stdint.h> header file. */
|
|
#undef HAVE_STDINT_H
|
|
|
|
/* Define to 1 if you have the <stdlib.h> header file. */
|
|
#undef HAVE_STDLIB_H
|
|
|
|
/* Define to 1 if you have the <strings.h> header file. */
|
|
#undef HAVE_STRINGS_H
|
|
|
|
/* Define to 1 if you have the <string.h> header file. */
|
|
#undef HAVE_STRING_H
|
|
|
|
/* Define if <sys/stat.h> has struct stat.st_mtim.tv_nsec */
|
|
#undef HAVE_ST_MTIM_TV_NSEC
|
|
|
|
/* Define if <sys/stat.h> has struct stat.st_mtim.tv_sec */
|
|
#undef HAVE_ST_MTIM_TV_SEC
|
|
|
|
/* Define to 1 if you have the <sys/stat.h> header file. */
|
|
#undef HAVE_SYS_STAT_H
|
|
|
|
/* Define to 1 if you have the <sys/types.h> header file. */
|
|
#undef HAVE_SYS_TYPES_H
|
|
|
|
/* Define to 1 if you have the <time.h> header file. */
|
|
#undef HAVE_TIME_H
|
|
|
|
/* Define if <time.h> has struct tm.tm_gmtoff. */
|
|
#undef HAVE_TM_GMTOFF
|
|
|
|
/* Define to 1 if you have the <unistd.h> header file. */
|
|
#undef HAVE_UNISTD_H
|
|
|
|
/* Define to 1 if you have the `unlink' function. */
|
|
#undef HAVE_UNLINK
|
|
|
|
/* Define to 1 if you have the <windows.h> header file. */
|
|
#undef HAVE_WINDOWS_H
|
|
|
|
/* Using i386 COFF? */
|
|
#undef I386COFF
|
|
|
|
/* Define to the sub-directory in which libtool stores uninstalled libraries.
|
|
*/
|
|
#undef LT_OBJDIR
|
|
|
|
/* Using m68k COFF? */
|
|
#undef M68KCOFF
|
|
|
|
/* Using m88k COFF? */
|
|
#undef M88KCOFF
|
|
|
|
/* Default CPU for MIPS targets. */
|
|
#undef MIPS_CPU_STRING_DEFAULT
|
|
|
|
/* Generate 64-bit code by default on MIPS targets. */
|
|
#undef MIPS_DEFAULT_64BIT
|
|
|
|
/* Choose a default ABI for MIPS targets. */
|
|
#undef MIPS_DEFAULT_ABI
|
|
|
|
/* Define value for nds32_arch_name */
|
|
#undef NDS32_DEFAULT_ARCH_NAME
|
|
|
|
/* Define default value for nds32_audio_ext */
|
|
#undef NDS32_DEFAULT_AUDIO_EXT
|
|
|
|
/* Define default value for nds32_dx_regs */
|
|
#undef NDS32_DEFAULT_DX_REGS
|
|
|
|
/* Define default value for nds32_perf_ext */
|
|
#undef NDS32_DEFAULT_PERF_EXT
|
|
|
|
/* Define default value for nds32_perf_ext2 */
|
|
#undef NDS32_DEFAULT_PERF_EXT2
|
|
|
|
/* Define default value for nds32_string_ext */
|
|
#undef NDS32_DEFAULT_STRING_EXT
|
|
|
|
/* Define if environ is not declared in system header files. */
|
|
#undef NEED_DECLARATION_ENVIRON
|
|
|
|
/* Define if errno is not declared in system header files. */
|
|
#undef NEED_DECLARATION_ERRNO
|
|
|
|
/* Define if ffs is not declared in system header files. */
|
|
#undef NEED_DECLARATION_FFS
|
|
|
|
/* Define if free is not declared in system header files. */
|
|
#undef NEED_DECLARATION_FREE
|
|
|
|
/* Define if malloc is not declared in system header files. */
|
|
#undef NEED_DECLARATION_MALLOC
|
|
|
|
/* Define if sbrk is not declared in system header files. */
|
|
#undef NEED_DECLARATION_SBRK
|
|
|
|
/* Define if strstr is not declared in system header files. */
|
|
#undef NEED_DECLARATION_STRSTR
|
|
|
|
/* a.out support? */
|
|
#undef OBJ_MAYBE_AOUT
|
|
|
|
/* b.out support? */
|
|
#undef OBJ_MAYBE_BOUT
|
|
|
|
/* COFF support? */
|
|
#undef OBJ_MAYBE_COFF
|
|
|
|
/* ECOFF support? */
|
|
#undef OBJ_MAYBE_ECOFF
|
|
|
|
/* ELF support? */
|
|
#undef OBJ_MAYBE_ELF
|
|
|
|
/* generic support? */
|
|
#undef OBJ_MAYBE_GENERIC
|
|
|
|
/* SOM support? */
|
|
#undef OBJ_MAYBE_SOM
|
|
|
|
/* Name of package */
|
|
#undef PACKAGE
|
|
|
|
/* Define to the address where bug reports for this package should be sent. */
|
|
#undef PACKAGE_BUGREPORT
|
|
|
|
/* Define to the full name of this package. */
|
|
#undef PACKAGE_NAME
|
|
|
|
/* Define to the full name and version of this package. */
|
|
#undef PACKAGE_STRING
|
|
|
|
/* Define to the one symbol short name of this package. */
|
|
#undef PACKAGE_TARNAME
|
|
|
|
/* Define to the home page for this package. */
|
|
#undef PACKAGE_URL
|
|
|
|
/* Define to the version of this package. */
|
|
#undef PACKAGE_VERSION
|
|
|
|
/* Define if defaulting to ELF on SCO 5. */
|
|
#undef SCO_ELF
|
|
|
|
/* If using the C implementation of alloca, define if you know the
|
|
direction of stack growth for your system; otherwise it will be
|
|
automatically deduced at runtime.
|
|
STACK_DIRECTION > 0 => grows toward higher addresses
|
|
STACK_DIRECTION < 0 => grows toward lower addresses
|
|
STACK_DIRECTION = 0 => direction of growth unknown */
|
|
#undef STACK_DIRECTION
|
|
|
|
/* Define to 1 if you have the ANSI C header files. */
|
|
#undef STDC_HEADERS
|
|
|
|
/* Using strict COFF? */
|
|
#undef STRICTCOFF
|
|
|
|
/* Define if you can safely include both <string.h> and <strings.h>. */
|
|
#undef STRING_WITH_STRINGS
|
|
|
|
/* Target alias. */
|
|
#undef TARGET_ALIAS
|
|
|
|
/* Define as 1 if big endian. */
|
|
#undef TARGET_BYTES_BIG_ENDIAN
|
|
|
|
/* Canonical target. */
|
|
#undef TARGET_CANONICAL
|
|
|
|
/* Target CPU. */
|
|
#undef TARGET_CPU
|
|
|
|
/* Target OS. */
|
|
#undef TARGET_OS
|
|
|
|
/* Define if default target is PowerPC Solaris. */
|
|
#undef TARGET_SOLARIS_COMMENT
|
|
|
|
/* Define if target is Symbian OS. */
|
|
#undef TARGET_SYMBIAN
|
|
|
|
/* Target vendor. */
|
|
#undef TARGET_VENDOR
|
|
|
|
/* Use b modifier when opening binary files? */
|
|
#undef USE_BINARY_FOPEN
|
|
|
|
/* Use emulation support? */
|
|
#undef USE_EMULATIONS
|
|
|
|
/* Allow use of E_MIPS_ABI_O32 on MIPS targets. */
|
|
#undef USE_E_MIPS_ABI_O32
|
|
|
|
/* Enable extensions on AIX 3, Interix. */
|
|
#ifndef _ALL_SOURCE
|
|
# undef _ALL_SOURCE
|
|
#endif
|
|
/* Enable GNU extensions on systems that have them. */
|
|
#ifndef _GNU_SOURCE
|
|
# undef _GNU_SOURCE
|
|
#endif
|
|
/* Enable threading extensions on Solaris. */
|
|
#ifndef _POSIX_PTHREAD_SEMANTICS
|
|
# undef _POSIX_PTHREAD_SEMANTICS
|
|
#endif
|
|
/* Enable extensions on HP NonStop. */
|
|
#ifndef _TANDEM_SOURCE
|
|
# undef _TANDEM_SOURCE
|
|
#endif
|
|
/* Enable general extensions on Solaris. */
|
|
#ifndef __EXTENSIONS__
|
|
# undef __EXTENSIONS__
|
|
#endif
|
|
|
|
|
|
/* Using cgen code? */
|
|
#undef USING_CGEN
|
|
|
|
/* Version number of package */
|
|
#undef VERSION
|
|
|
|
/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
|
|
significant byte first (like Motorola and SPARC, unlike Intel). */
|
|
#if defined AC_APPLE_UNIVERSAL_BUILD
|
|
# if defined __BIG_ENDIAN__
|
|
# define WORDS_BIGENDIAN 1
|
|
# endif
|
|
#else
|
|
# ifndef WORDS_BIGENDIAN
|
|
# undef WORDS_BIGENDIAN
|
|
# endif
|
|
#endif
|
|
|
|
/* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a
|
|
`char[]'. */
|
|
#undef YYTEXT_POINTER
|
|
|
|
/* Number of bits in a file offset, on hosts where this is settable. */
|
|
#undef _FILE_OFFSET_BITS
|
|
|
|
/* Define for large files, on AIX-style hosts. */
|
|
#undef _LARGE_FILES
|
|
|
|
/* Define to 1 if on MINIX. */
|
|
#undef _MINIX
|
|
|
|
/* Define to 2 if the system does not provide POSIX.1 features except with
|
|
this defined. */
|
|
#undef _POSIX_1_SOURCE
|
|
|
|
/* Define to 1 if you need to in order for `stat' and other things to work. */
|
|
#undef _POSIX_SOURCE
|
|
|
|
/* Define to `__inline__' or `__inline' if that's what the C compiler
|
|
calls it, or to nothing if 'inline' is not supported under any name. */
|
|
#ifndef __cplusplus
|
|
#undef inline
|
|
#endif
|