mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-02-25 01:25:34 +08:00
gnu-user.h: Copy from linux.h.
* config/i386/gnu-user.h: Copy from linux.h. Update comments. (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove. (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and GNU_USER_DYNAMIC_LINKER. (MD_UNWIND_SUPPORT, REG_NAME): Remove. * config/i386/gnu-user64.h: Copy from linux64.h. Update comments. (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove. (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and GNU_USER_DYNAMIC_LINKER64. (MD_UNWIND_SUPPORT, REG_NAME): Remove. * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION. * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE, DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS, MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS, CPP_SPEC, CC1_SPEC): Remove. (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION. (GNU_USER_DYNAMIC_LINKER): Define. (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC, ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN, ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA, LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove. * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC, CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC, LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove. (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define. (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove. * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to GNU_USER_DYNAMIC_LINKER. * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine. * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine. * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine. * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers. From-SVN: r172271
This commit is contained in:
parent
8fb3e11aa5
commit
e24609cfc0
@ -1,3 +1,55 @@
|
||||
2011-04-11 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* config/i386/gnu-user.h: Copy from linux.h. Update comments.
|
||||
(LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
|
||||
(SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
|
||||
GNU_USER_DYNAMIC_LINKER.
|
||||
(MD_UNWIND_SUPPORT, REG_NAME): Remove.
|
||||
* config/i386/gnu-user64.h: Copy from linux64.h. Update comments.
|
||||
(GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
|
||||
(LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
|
||||
GNU_USER_DYNAMIC_LINKER64.
|
||||
(MD_UNWIND_SUPPORT, REG_NAME): Remove.
|
||||
* config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
|
||||
GNU_USER_LINK_EMULATION.
|
||||
* config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
|
||||
DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
|
||||
ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
|
||||
MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
|
||||
PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
|
||||
CPP_SPEC, CC1_SPEC): Remove.
|
||||
(LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
|
||||
(GNU_USER_DYNAMIC_LINKER): Define.
|
||||
(ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
|
||||
ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
|
||||
ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
|
||||
LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
|
||||
TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
|
||||
STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
|
||||
TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
|
||||
* config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
|
||||
CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
|
||||
TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
|
||||
LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
|
||||
LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
|
||||
(GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
|
||||
(STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
|
||||
TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
|
||||
TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
|
||||
* config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
|
||||
GNU_USER_DYNAMIC_LINKER.
|
||||
* config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
|
||||
GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
|
||||
* config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
|
||||
GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
|
||||
* config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
|
||||
GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
|
||||
* config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
|
||||
i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
|
||||
i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
|
||||
x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new
|
||||
headers.
|
||||
|
||||
2011-04-11 Kai Tietz <ktietz@redhat.com>
|
||||
|
||||
PR target/9601
|
||||
|
@ -1207,7 +1207,7 @@ i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu | i
|
||||
# Assume modern glibc
|
||||
default_gnu_indirect_function=yes
|
||||
if test x$enable_targets = xall; then
|
||||
tm_file="${tm_file} i386/x86-64.h i386/linux64.h"
|
||||
tm_file="${tm_file} i386/x86-64.h i386/gnu-user64.h i386/linux64.h"
|
||||
tm_defines="${tm_defines} TARGET_BI_ARCH=1"
|
||||
tmake_file="${tmake_file} i386/t-linux64"
|
||||
need_64bit_hwint=yes
|
||||
@ -1227,19 +1227,19 @@ i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu | i
|
||||
;;
|
||||
esac
|
||||
else
|
||||
tm_file="${tm_file} i386/linux.h"
|
||||
tm_file="${tm_file} i386/gnu-user.h i386/linux.h"
|
||||
fi
|
||||
;;
|
||||
i[34567]86-*-knetbsd*-gnu) tm_file="${tm_file} i386/linux.h knetbsd-gnu.h i386/knetbsd-gnu.h" ;;
|
||||
i[34567]86-*-kfreebsd*-gnu) tm_file="${tm_file} i386/linux.h kfreebsd-gnu.h i386/kfreebsd-gnu.h" ;;
|
||||
i[34567]86-*-kopensolaris*-gnu) tm_file="${tm_file} i386/linux.h kopensolaris-gnu.h i386/kopensolaris-gnu.h" ;;
|
||||
i[34567]86-*-gnu*) tm_file="$tm_file i386/linux.h gnu.h i386/gnu.h";;
|
||||
i[34567]86-*-knetbsd*-gnu) tm_file="${tm_file} i386/gnu-user.h i386/linux.h knetbsd-gnu.h i386/knetbsd-gnu.h" ;;
|
||||
i[34567]86-*-kfreebsd*-gnu) tm_file="${tm_file} i386/gnu-user.h i386/linux.h kfreebsd-gnu.h i386/kfreebsd-gnu.h" ;;
|
||||
i[34567]86-*-kopensolaris*-gnu) tm_file="${tm_file} i386/gnu-user.h i386/linux.h kopensolaris-gnu.h i386/kopensolaris-gnu.h" ;;
|
||||
i[34567]86-*-gnu*) tm_file="$tm_file i386/gnu-user.h i386/linux.h gnu.h i386/gnu.h";;
|
||||
esac
|
||||
tmake_file="${tmake_file} i386/t-crtstuff i386/t-crtpc i386/t-crtfm t-dfprules"
|
||||
;;
|
||||
x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu)
|
||||
tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h \
|
||||
i386/x86-64.h i386/linux64.h"
|
||||
i386/x86-64.h i386/gnu-user64.h i386/linux64.h"
|
||||
case ${target} in
|
||||
x86_64-*-linux*)
|
||||
default_gnu_indirect_function=glibc-2011 ;;
|
||||
|
204
gcc/config/i386/gnu-user.h
Normal file
204
gcc/config/i386/gnu-user.h
Normal file
@ -0,0 +1,204 @@
|
||||
/* Definitions for Intel 386 systems using GNU userspace.
|
||||
Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002, 2004, 2005,
|
||||
2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
|
||||
Contributed by Eric Youngdale.
|
||||
Modified for stabs-in-ELF by H.J. Lu.
|
||||
|
||||
This file is part of GCC.
|
||||
|
||||
GCC is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3, or (at your option)
|
||||
any later version.
|
||||
|
||||
GCC is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GCC; see the file COPYING3. If not see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
/* Output at beginning of assembler file. */
|
||||
/* The .file command should always begin the output. */
|
||||
#define TARGET_ASM_FILE_START_FILE_DIRECTIVE true
|
||||
|
||||
/* The svr4 ABI for the i386 says that records and unions are returned
|
||||
in memory. */
|
||||
#undef DEFAULT_PCC_STRUCT_RETURN
|
||||
#define DEFAULT_PCC_STRUCT_RETURN 1
|
||||
|
||||
/* We arrange for the whole %gs segment to map the tls area. */
|
||||
#undef TARGET_TLS_DIRECT_SEG_REFS_DEFAULT
|
||||
#define TARGET_TLS_DIRECT_SEG_REFS_DEFAULT MASK_TLS_DIRECT_SEG_REFS
|
||||
|
||||
#undef ASM_COMMENT_START
|
||||
#define ASM_COMMENT_START "#"
|
||||
|
||||
#undef DBX_REGISTER_NUMBER
|
||||
#define DBX_REGISTER_NUMBER(n) \
|
||||
(TARGET_64BIT ? dbx64_register_map[n] : svr4_dbx_register_map[n])
|
||||
|
||||
/* Output assembler code to FILE to call the profiler.
|
||||
To the best of my knowledge, no GNU userspace libc has required the label
|
||||
argument to mcount. */
|
||||
|
||||
#define NO_PROFILE_COUNTERS 1
|
||||
|
||||
#undef MCOUNT_NAME
|
||||
#define MCOUNT_NAME "mcount"
|
||||
|
||||
/* The GLIBC version of mcount for the x86 assumes that there is a
|
||||
frame, so we cannot allow profiling without a frame pointer. */
|
||||
|
||||
#undef SUBTARGET_FRAME_POINTER_REQUIRED
|
||||
#define SUBTARGET_FRAME_POINTER_REQUIRED crtl->profile
|
||||
|
||||
#undef SIZE_TYPE
|
||||
#define SIZE_TYPE "unsigned int"
|
||||
|
||||
#undef PTRDIFF_TYPE
|
||||
#define PTRDIFF_TYPE "int"
|
||||
|
||||
#undef WCHAR_TYPE
|
||||
#define WCHAR_TYPE "long int"
|
||||
|
||||
#undef WCHAR_TYPE_SIZE
|
||||
#define WCHAR_TYPE_SIZE BITS_PER_WORD
|
||||
|
||||
#define TARGET_OS_CPP_BUILTINS() \
|
||||
do \
|
||||
{ \
|
||||
LINUX_TARGET_OS_CPP_BUILTINS(); \
|
||||
} \
|
||||
while (0)
|
||||
|
||||
#undef CPP_SPEC
|
||||
#define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
|
||||
|
||||
#undef CC1_SPEC
|
||||
#define CC1_SPEC "%(cc1_cpu) %{profile:-p}"
|
||||
|
||||
/* Provide a LINK_SPEC appropriate for GNU userspace. Here we provide support
|
||||
for the special GCC options -static and -shared, which allow us to
|
||||
link things in one of these three modes by applying the appropriate
|
||||
combinations of options at link-time.
|
||||
|
||||
When the -shared link option is used a final link is not being
|
||||
done. */
|
||||
|
||||
#undef ASM_SPEC
|
||||
#define ASM_SPEC \
|
||||
"--32 %{!mno-sse2avx:%{mavx:-msse2avx}} %{msse2avx:%{!mavx:-msse2avx}}"
|
||||
|
||||
#undef SUBTARGET_EXTRA_SPECS
|
||||
#define SUBTARGET_EXTRA_SPECS \
|
||||
{ "link_emulation", GNU_USER_LINK_EMULATION },\
|
||||
{ "dynamic_linker", GNU_USER_DYNAMIC_LINKER }
|
||||
|
||||
#undef LINK_SPEC
|
||||
#define LINK_SPEC "-m %(link_emulation) %{shared:-shared} \
|
||||
%{!shared: \
|
||||
%{!static: \
|
||||
%{rdynamic:-export-dynamic} \
|
||||
-dynamic-linker %(dynamic_linker)} \
|
||||
%{static:-static}}"
|
||||
|
||||
/* Similar to standard GNU userspace, but adding -ffast-math support. */
|
||||
#undef ENDFILE_SPEC
|
||||
#define ENDFILE_SPEC \
|
||||
"%{ffast-math|funsafe-math-optimizations:crtfastmath.o%s} \
|
||||
%{mpc32:crtprec32.o%s} \
|
||||
%{mpc64:crtprec64.o%s} \
|
||||
%{mpc80:crtprec80.o%s} \
|
||||
%{shared|pie:crtendS.o%s;:crtend.o%s} crtn.o%s"
|
||||
|
||||
/* A C statement (sans semicolon) to output to the stdio stream
|
||||
FILE the assembler definition of uninitialized global DECL named
|
||||
NAME whose size is SIZE bytes and alignment is ALIGN bytes.
|
||||
Try to use asm_output_aligned_bss to implement this macro. */
|
||||
|
||||
#define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \
|
||||
asm_output_aligned_bss (FILE, DECL, NAME, SIZE, ALIGN)
|
||||
|
||||
/* A C statement to output to the stdio stream FILE an assembler
|
||||
command to advance the location counter to a multiple of 1<<LOG
|
||||
bytes if it is within MAX_SKIP bytes.
|
||||
|
||||
This is used to align code labels according to Intel recommendations. */
|
||||
|
||||
#ifdef HAVE_GAS_MAX_SKIP_P2ALIGN
|
||||
#define ASM_OUTPUT_MAX_SKIP_ALIGN(FILE,LOG,MAX_SKIP) \
|
||||
do { \
|
||||
if ((LOG) != 0) { \
|
||||
if ((MAX_SKIP) == 0) fprintf ((FILE), "\t.p2align %d\n", (LOG)); \
|
||||
else { \
|
||||
fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP)); \
|
||||
/* Make sure that we have at least 8 byte alignment if > 8 byte \
|
||||
alignment is preferred. */ \
|
||||
if ((LOG) > 3 \
|
||||
&& (1 << (LOG)) > ((MAX_SKIP) + 1) \
|
||||
&& (MAX_SKIP) >= 7) \
|
||||
fputs ("\t.p2align 3\n", (FILE)); \
|
||||
} \
|
||||
} \
|
||||
} while (0)
|
||||
#endif
|
||||
|
||||
/* Handle special EH pointer encodings. Absolute, pc-relative, and
|
||||
indirect are handled automatically. */
|
||||
#define ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX(FILE, ENCODING, SIZE, ADDR, DONE) \
|
||||
do { \
|
||||
if ((SIZE) == 4 && ((ENCODING) & 0x70) == DW_EH_PE_datarel) \
|
||||
{ \
|
||||
fputs (ASM_LONG, FILE); \
|
||||
assemble_name (FILE, XSTR (ADDR, 0)); \
|
||||
fputs (((ENCODING) & DW_EH_PE_indirect ? "@GOT" : "@GOTOFF"), FILE); \
|
||||
goto DONE; \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
/* Used by crtstuff.c to initialize the base of data-relative relocations.
|
||||
These are GOT relative on x86, so return the pic register. */
|
||||
#ifdef __PIC__
|
||||
#define CRT_GET_RFIB_DATA(BASE) \
|
||||
{ \
|
||||
register void *ebx_ __asm__("ebx"); \
|
||||
BASE = ebx_; \
|
||||
}
|
||||
#else
|
||||
#define CRT_GET_RFIB_DATA(BASE) \
|
||||
__asm__ ("call\t.LPR%=\n" \
|
||||
".LPR%=:\n\t" \
|
||||
"pop{l}\t%0\n\t" \
|
||||
/* Due to a GAS bug, this cannot use EAX. That encodes \
|
||||
smaller than the traditional EBX, which results in the \
|
||||
offset being off by one. */ \
|
||||
"add{l}\t{$_GLOBAL_OFFSET_TABLE_+[.-.LPR%=],%0" \
|
||||
"|%0,_GLOBAL_OFFSET_TABLE_+(.-.LPR%=)}" \
|
||||
: "=d"(BASE))
|
||||
#endif
|
||||
|
||||
/* Put all *tf routines in libgcc. */
|
||||
#undef LIBGCC2_HAS_TF_MODE
|
||||
#define LIBGCC2_HAS_TF_MODE 1
|
||||
#define LIBGCC2_TF_CEXT q
|
||||
#define TF_SIZE 113
|
||||
|
||||
#define TARGET_ASM_FILE_END file_end_indicate_exec_stack
|
||||
|
||||
/* The stack pointer needs to be moved while checking the stack. */
|
||||
#define STACK_CHECK_MOVING_SP 1
|
||||
|
||||
/* Static stack checking is supported by means of probes. */
|
||||
#define STACK_CHECK_STATIC_BUILTIN 1
|
||||
|
||||
#ifdef TARGET_LIBC_PROVIDES_SSP
|
||||
/* i386 glibc provides __stack_chk_guard in %gs:0x14. */
|
||||
#define TARGET_THREAD_SSP_OFFSET 0x14
|
||||
|
||||
/* We steal the last transactional memory word. */
|
||||
#define TARGET_CAN_SPLIT_STACK
|
||||
#define TARGET_THREAD_SPLIT_STACK_OFFSET 0x30
|
||||
#endif
|
118
gcc/config/i386/gnu-user64.h
Normal file
118
gcc/config/i386/gnu-user64.h
Normal file
@ -0,0 +1,118 @@
|
||||
/* Definitions for AMD x86-64 using GNU userspace.
|
||||
Copyright (C) 2001, 2002, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
|
||||
Free Software Foundation, Inc.
|
||||
Contributed by Jan Hubicka <jh@suse.cz>, based on linux.h.
|
||||
|
||||
This file is part of GCC.
|
||||
|
||||
GCC is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3, or (at your option)
|
||||
any later version.
|
||||
|
||||
GCC is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
Under Section 7 of GPL version 3, you are granted additional
|
||||
permissions described in the GCC Runtime Library Exception, version
|
||||
3.1, as published by the Free Software Foundation.
|
||||
|
||||
You should have received a copy of the GNU General Public License and
|
||||
a copy of the GCC Runtime Library Exception along with this program;
|
||||
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#define TARGET_OS_CPP_BUILTINS() \
|
||||
do \
|
||||
{ \
|
||||
LINUX_TARGET_OS_CPP_BUILTINS(); \
|
||||
} \
|
||||
while (0)
|
||||
|
||||
#undef CPP_SPEC
|
||||
#define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
|
||||
|
||||
#undef CC1_SPEC
|
||||
#define CC1_SPEC "%(cc1_cpu) %{profile:-p}"
|
||||
|
||||
/* The svr4 ABI for the i386 says that records and unions are returned
|
||||
in memory. In the 64bit compilation we will turn this flag off in
|
||||
ix86_option_override_internal, as we never do pcc_struct_return
|
||||
scheme on this target. */
|
||||
#undef DEFAULT_PCC_STRUCT_RETURN
|
||||
#define DEFAULT_PCC_STRUCT_RETURN 1
|
||||
|
||||
/* We arrange for the whole %fs segment to map the tls area. */
|
||||
#undef TARGET_TLS_DIRECT_SEG_REFS_DEFAULT
|
||||
#define TARGET_TLS_DIRECT_SEG_REFS_DEFAULT MASK_TLS_DIRECT_SEG_REFS
|
||||
|
||||
/* Provide a LINK_SPEC. Here we provide support for the special GCC
|
||||
options -static and -shared, which allow us to link things in one
|
||||
of these three modes by applying the appropriate combinations of
|
||||
options at link-time.
|
||||
|
||||
When the -shared link option is used a final link is not being
|
||||
done. */
|
||||
|
||||
#if TARGET_64BIT_DEFAULT
|
||||
#define SPEC_32 "m32"
|
||||
#define SPEC_64 "!m32"
|
||||
#else
|
||||
#define SPEC_32 "!m64"
|
||||
#define SPEC_64 "m64"
|
||||
#endif
|
||||
|
||||
#undef ASM_SPEC
|
||||
#define ASM_SPEC "%{" SPEC_32 ":--32} %{" SPEC_64 ":--64} \
|
||||
%{!mno-sse2avx:%{mavx:-msse2avx}} %{msse2avx:%{!mavx:-msse2avx}}"
|
||||
|
||||
#undef LINK_SPEC
|
||||
#define LINK_SPEC "%{" SPEC_64 ":-m elf_x86_64} %{" SPEC_32 ":-m elf_i386} \
|
||||
%{shared:-shared} \
|
||||
%{!shared: \
|
||||
%{!static: \
|
||||
%{rdynamic:-export-dynamic} \
|
||||
%{" SPEC_32 ":-dynamic-linker " GNU_USER_DYNAMIC_LINKER32 "} \
|
||||
%{" SPEC_64 ":-dynamic-linker " GNU_USER_DYNAMIC_LINKER64 "}} \
|
||||
%{static:-static}}"
|
||||
|
||||
/* Similar to standard GNU userspace, but adding -ffast-math support. */
|
||||
#undef ENDFILE_SPEC
|
||||
#define ENDFILE_SPEC \
|
||||
"%{ffast-math|funsafe-math-optimizations:crtfastmath.o%s} \
|
||||
%{mpc32:crtprec32.o%s} \
|
||||
%{mpc64:crtprec64.o%s} \
|
||||
%{mpc80:crtprec80.o%s} \
|
||||
%{shared|pie:crtendS.o%s;:crtend.o%s} crtn.o%s"
|
||||
|
||||
#if TARGET_64BIT_DEFAULT
|
||||
#define MULTILIB_DEFAULTS { "m64" }
|
||||
#else
|
||||
#define MULTILIB_DEFAULTS { "m32" }
|
||||
#endif
|
||||
|
||||
/* Put all *tf routines in libgcc. */
|
||||
#undef LIBGCC2_HAS_TF_MODE
|
||||
#define LIBGCC2_HAS_TF_MODE 1
|
||||
#define LIBGCC2_TF_CEXT q
|
||||
#define TF_SIZE 113
|
||||
|
||||
#define TARGET_ASM_FILE_END file_end_indicate_exec_stack
|
||||
|
||||
/* The stack pointer needs to be moved while checking the stack. */
|
||||
#define STACK_CHECK_MOVING_SP 1
|
||||
|
||||
/* Static stack checking is supported by means of probes. */
|
||||
#define STACK_CHECK_STATIC_BUILTIN 1
|
||||
|
||||
#ifdef TARGET_LIBC_PROVIDES_SSP
|
||||
/* i386 glibc provides __stack_chk_guard in %gs:0x14,
|
||||
x86_64 glibc provides it in %fs:0x28. */
|
||||
#define TARGET_THREAD_SSP_OFFSET (TARGET_64BIT ? 0x28 : 0x14)
|
||||
|
||||
/* We steal the last transactional memory word. */
|
||||
#define TARGET_CAN_SPLIT_STACK
|
||||
#define TARGET_THREAD_SPLIT_STACK_OFFSET (TARGET_64BIT ? 0x70 : 0x30)
|
||||
#endif
|
@ -20,8 +20,8 @@ You should have received a copy of the GNU General Public License
|
||||
along with GCC. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#undef GLIBC_DYNAMIC_LINKER
|
||||
#define GLIBC_DYNAMIC_LINKER "/lib/ld.so"
|
||||
#undef GNU_USER_DYNAMIC_LINKER
|
||||
#define GNU_USER_DYNAMIC_LINKER "/lib/ld.so"
|
||||
|
||||
#undef CPP_SPEC
|
||||
#define CPP_SPEC "%{pthread:-D_REENTRANT} %{posix:-D_POSIX_SOURCE}"
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Definitions for Intel 386 running kFreeBSD-based GNU systems with ELF format
|
||||
Copyright (C) 2004, 2007
|
||||
Copyright (C) 2004, 2007, 2011
|
||||
Free Software Foundation, Inc.
|
||||
Contributed by Robert Millan.
|
||||
|
||||
@ -19,7 +19,7 @@ You should have received a copy of the GNU General Public License
|
||||
along with GCC; see the file COPYING3. If not see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#undef LINK_EMULATION
|
||||
#define LINK_EMULATION "elf_i386_fbsd"
|
||||
#undef GNU_USER_LINK_EMULATION
|
||||
#define GNU_USER_LINK_EMULATION "elf_i386_fbsd"
|
||||
#undef REG_NAME
|
||||
#define REG_NAME(reg) sc_ ## reg
|
||||
|
@ -20,194 +20,11 @@ You should have received a copy of the GNU General Public License
|
||||
along with GCC; see the file COPYING3. If not see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
/* Output at beginning of assembler file. */
|
||||
/* The .file command should always begin the output. */
|
||||
#define TARGET_ASM_FILE_START_FILE_DIRECTIVE true
|
||||
|
||||
/* The svr4 ABI for the i386 says that records and unions are returned
|
||||
in memory. */
|
||||
#undef DEFAULT_PCC_STRUCT_RETURN
|
||||
#define DEFAULT_PCC_STRUCT_RETURN 1
|
||||
|
||||
/* We arrange for the whole %gs segment to map the tls area. */
|
||||
#undef TARGET_TLS_DIRECT_SEG_REFS_DEFAULT
|
||||
#define TARGET_TLS_DIRECT_SEG_REFS_DEFAULT MASK_TLS_DIRECT_SEG_REFS
|
||||
|
||||
#undef ASM_COMMENT_START
|
||||
#define ASM_COMMENT_START "#"
|
||||
|
||||
#undef DBX_REGISTER_NUMBER
|
||||
#define DBX_REGISTER_NUMBER(n) \
|
||||
(TARGET_64BIT ? dbx64_register_map[n] : svr4_dbx_register_map[n])
|
||||
|
||||
/* Output assembler code to FILE to call the profiler.
|
||||
To the best of my knowledge, no Linux libc has required the label
|
||||
argument to mcount. */
|
||||
|
||||
#define NO_PROFILE_COUNTERS 1
|
||||
|
||||
#undef MCOUNT_NAME
|
||||
#define MCOUNT_NAME "mcount"
|
||||
|
||||
/* The GLIBC version of mcount for the x86 assumes that there is a
|
||||
frame, so we cannot allow profiling without a frame pointer. */
|
||||
|
||||
#undef SUBTARGET_FRAME_POINTER_REQUIRED
|
||||
#define SUBTARGET_FRAME_POINTER_REQUIRED crtl->profile
|
||||
|
||||
#undef SIZE_TYPE
|
||||
#define SIZE_TYPE "unsigned int"
|
||||
|
||||
#undef PTRDIFF_TYPE
|
||||
#define PTRDIFF_TYPE "int"
|
||||
|
||||
#undef WCHAR_TYPE
|
||||
#define WCHAR_TYPE "long int"
|
||||
|
||||
#undef WCHAR_TYPE_SIZE
|
||||
#define WCHAR_TYPE_SIZE BITS_PER_WORD
|
||||
|
||||
#define TARGET_OS_CPP_BUILTINS() \
|
||||
do \
|
||||
{ \
|
||||
LINUX_TARGET_OS_CPP_BUILTINS(); \
|
||||
} \
|
||||
while (0)
|
||||
|
||||
#undef CPP_SPEC
|
||||
#define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
|
||||
|
||||
#undef CC1_SPEC
|
||||
#define CC1_SPEC "%(cc1_cpu) %{profile:-p}"
|
||||
|
||||
/* Provide a LINK_SPEC appropriate for Linux. Here we provide support
|
||||
for the special GCC options -static and -shared, which allow us to
|
||||
link things in one of these three modes by applying the appropriate
|
||||
combinations of options at link-time.
|
||||
|
||||
When the -shared link option is used a final link is not being
|
||||
done. */
|
||||
|
||||
/* These macros may be overridden in k*bsd-gnu.h and i386/k*bsd-gnu.h. */
|
||||
#define LINK_EMULATION "elf_i386"
|
||||
#define GNU_USER_LINK_EMULATION "elf_i386"
|
||||
#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
|
||||
|
||||
#undef ASM_SPEC
|
||||
#define ASM_SPEC \
|
||||
"--32 %{!mno-sse2avx:%{mavx:-msse2avx}} %{msse2avx:%{!mavx:-msse2avx}}"
|
||||
|
||||
#undef SUBTARGET_EXTRA_SPECS
|
||||
#define SUBTARGET_EXTRA_SPECS \
|
||||
{ "link_emulation", LINK_EMULATION },\
|
||||
{ "dynamic_linker", LINUX_DYNAMIC_LINKER }
|
||||
|
||||
#undef LINK_SPEC
|
||||
#define LINK_SPEC "-m %(link_emulation) %{shared:-shared} \
|
||||
%{!shared: \
|
||||
%{!static: \
|
||||
%{rdynamic:-export-dynamic} \
|
||||
-dynamic-linker %(dynamic_linker)} \
|
||||
%{static:-static}}"
|
||||
|
||||
/* Similar to standard Linux, but adding -ffast-math support. */
|
||||
#undef ENDFILE_SPEC
|
||||
#define ENDFILE_SPEC \
|
||||
"%{ffast-math|funsafe-math-optimizations:crtfastmath.o%s} \
|
||||
%{mpc32:crtprec32.o%s} \
|
||||
%{mpc64:crtprec64.o%s} \
|
||||
%{mpc80:crtprec80.o%s} \
|
||||
%{shared|pie:crtendS.o%s;:crtend.o%s} crtn.o%s"
|
||||
|
||||
/* A C statement (sans semicolon) to output to the stdio stream
|
||||
FILE the assembler definition of uninitialized global DECL named
|
||||
NAME whose size is SIZE bytes and alignment is ALIGN bytes.
|
||||
Try to use asm_output_aligned_bss to implement this macro. */
|
||||
|
||||
#define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \
|
||||
asm_output_aligned_bss (FILE, DECL, NAME, SIZE, ALIGN)
|
||||
|
||||
/* A C statement to output to the stdio stream FILE an assembler
|
||||
command to advance the location counter to a multiple of 1<<LOG
|
||||
bytes if it is within MAX_SKIP bytes.
|
||||
|
||||
This is used to align code labels according to Intel recommendations. */
|
||||
|
||||
#ifdef HAVE_GAS_MAX_SKIP_P2ALIGN
|
||||
#define ASM_OUTPUT_MAX_SKIP_ALIGN(FILE,LOG,MAX_SKIP) \
|
||||
do { \
|
||||
if ((LOG) != 0) { \
|
||||
if ((MAX_SKIP) == 0) fprintf ((FILE), "\t.p2align %d\n", (LOG)); \
|
||||
else { \
|
||||
fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP)); \
|
||||
/* Make sure that we have at least 8 byte alignment if > 8 byte \
|
||||
alignment is preferred. */ \
|
||||
if ((LOG) > 3 \
|
||||
&& (1 << (LOG)) > ((MAX_SKIP) + 1) \
|
||||
&& (MAX_SKIP) >= 7) \
|
||||
fputs ("\t.p2align 3\n", (FILE)); \
|
||||
} \
|
||||
} \
|
||||
} while (0)
|
||||
#endif
|
||||
|
||||
/* Handle special EH pointer encodings. Absolute, pc-relative, and
|
||||
indirect are handled automatically. */
|
||||
#define ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX(FILE, ENCODING, SIZE, ADDR, DONE) \
|
||||
do { \
|
||||
if ((SIZE) == 4 && ((ENCODING) & 0x70) == DW_EH_PE_datarel) \
|
||||
{ \
|
||||
fputs (ASM_LONG, FILE); \
|
||||
assemble_name (FILE, XSTR (ADDR, 0)); \
|
||||
fputs (((ENCODING) & DW_EH_PE_indirect ? "@GOT" : "@GOTOFF"), FILE); \
|
||||
goto DONE; \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
/* Used by crtstuff.c to initialize the base of data-relative relocations.
|
||||
These are GOT relative on x86, so return the pic register. */
|
||||
#ifdef __PIC__
|
||||
#define CRT_GET_RFIB_DATA(BASE) \
|
||||
{ \
|
||||
register void *ebx_ __asm__("ebx"); \
|
||||
BASE = ebx_; \
|
||||
}
|
||||
#else
|
||||
#define CRT_GET_RFIB_DATA(BASE) \
|
||||
__asm__ ("call\t.LPR%=\n" \
|
||||
".LPR%=:\n\t" \
|
||||
"pop{l}\t%0\n\t" \
|
||||
/* Due to a GAS bug, this cannot use EAX. That encodes \
|
||||
smaller than the traditional EBX, which results in the \
|
||||
offset being off by one. */ \
|
||||
"add{l}\t{$_GLOBAL_OFFSET_TABLE_+[.-.LPR%=],%0" \
|
||||
"|%0,_GLOBAL_OFFSET_TABLE_+(.-.LPR%=)}" \
|
||||
: "=d"(BASE))
|
||||
#endif
|
||||
|
||||
/* Put all *tf routines in libgcc. */
|
||||
#undef LIBGCC2_HAS_TF_MODE
|
||||
#define LIBGCC2_HAS_TF_MODE 1
|
||||
#define LIBGCC2_TF_CEXT q
|
||||
#define TF_SIZE 113
|
||||
|
||||
#define TARGET_ASM_FILE_END file_end_indicate_exec_stack
|
||||
#define GNU_USER_DYNAMIC_LINKER LINUX_DYNAMIC_LINKER
|
||||
|
||||
#define MD_UNWIND_SUPPORT "config/i386/linux-unwind.h"
|
||||
|
||||
/* The stack pointer needs to be moved while checking the stack. */
|
||||
#define STACK_CHECK_MOVING_SP 1
|
||||
|
||||
/* Static stack checking is supported by means of probes. */
|
||||
#define STACK_CHECK_STATIC_BUILTIN 1
|
||||
|
||||
/* This macro may be overridden in i386/k*bsd-gnu.h. */
|
||||
#define REG_NAME(reg) reg
|
||||
|
||||
#ifdef TARGET_LIBC_PROVIDES_SSP
|
||||
/* i386 glibc provides __stack_chk_guard in %gs:0x14. */
|
||||
#define TARGET_THREAD_SSP_OFFSET 0x14
|
||||
|
||||
/* We steal the last transactional memory word. */
|
||||
#define TARGET_CAN_SPLIT_STACK
|
||||
#define TARGET_THREAD_SPLIT_STACK_OFFSET 0x30
|
||||
#endif
|
||||
|
@ -24,103 +24,12 @@ a copy of the GCC Runtime Library Exception along with this program;
|
||||
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#define TARGET_OS_CPP_BUILTINS() \
|
||||
do \
|
||||
{ \
|
||||
LINUX_TARGET_OS_CPP_BUILTINS(); \
|
||||
} \
|
||||
while (0)
|
||||
|
||||
#undef CPP_SPEC
|
||||
#define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
|
||||
|
||||
#undef CC1_SPEC
|
||||
#define CC1_SPEC "%(cc1_cpu) %{profile:-p}"
|
||||
|
||||
/* The svr4 ABI for the i386 says that records and unions are returned
|
||||
in memory. In the 64bit compilation we will turn this flag off in
|
||||
ix86_option_override_internal, as we never do pcc_struct_return
|
||||
scheme on this target. */
|
||||
#undef DEFAULT_PCC_STRUCT_RETURN
|
||||
#define DEFAULT_PCC_STRUCT_RETURN 1
|
||||
|
||||
/* We arrange for the whole %fs segment to map the tls area. */
|
||||
#undef TARGET_TLS_DIRECT_SEG_REFS_DEFAULT
|
||||
#define TARGET_TLS_DIRECT_SEG_REFS_DEFAULT MASK_TLS_DIRECT_SEG_REFS
|
||||
|
||||
/* Provide a LINK_SPEC. Here we provide support for the special GCC
|
||||
options -static and -shared, which allow us to link things in one
|
||||
of these three modes by applying the appropriate combinations of
|
||||
options at link-time.
|
||||
|
||||
When the -shared link option is used a final link is not being
|
||||
done. */
|
||||
|
||||
#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2"
|
||||
#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2"
|
||||
|
||||
#if TARGET_64BIT_DEFAULT
|
||||
#define SPEC_32 "m32"
|
||||
#define SPEC_64 "!m32"
|
||||
#else
|
||||
#define SPEC_32 "!m64"
|
||||
#define SPEC_64 "m64"
|
||||
#endif
|
||||
|
||||
#undef ASM_SPEC
|
||||
#define ASM_SPEC "%{" SPEC_32 ":--32} %{" SPEC_64 ":--64} \
|
||||
%{!mno-sse2avx:%{mavx:-msse2avx}} %{msse2avx:%{!mavx:-msse2avx}}"
|
||||
|
||||
#undef LINK_SPEC
|
||||
#define LINK_SPEC "%{" SPEC_64 ":-m elf_x86_64} %{" SPEC_32 ":-m elf_i386} \
|
||||
%{shared:-shared} \
|
||||
%{!shared: \
|
||||
%{!static: \
|
||||
%{rdynamic:-export-dynamic} \
|
||||
%{" SPEC_32 ":-dynamic-linker " LINUX_DYNAMIC_LINKER32 "} \
|
||||
%{" SPEC_64 ":-dynamic-linker " LINUX_DYNAMIC_LINKER64 "}} \
|
||||
%{static:-static}}"
|
||||
|
||||
/* Similar to standard Linux, but adding -ffast-math support. */
|
||||
#undef ENDFILE_SPEC
|
||||
#define ENDFILE_SPEC \
|
||||
"%{ffast-math|funsafe-math-optimizations:crtfastmath.o%s} \
|
||||
%{mpc32:crtprec32.o%s} \
|
||||
%{mpc64:crtprec64.o%s} \
|
||||
%{mpc80:crtprec80.o%s} \
|
||||
%{shared|pie:crtendS.o%s;:crtend.o%s} crtn.o%s"
|
||||
|
||||
#if TARGET_64BIT_DEFAULT
|
||||
#define MULTILIB_DEFAULTS { "m64" }
|
||||
#else
|
||||
#define MULTILIB_DEFAULTS { "m32" }
|
||||
#endif
|
||||
|
||||
/* Put all *tf routines in libgcc. */
|
||||
#undef LIBGCC2_HAS_TF_MODE
|
||||
#define LIBGCC2_HAS_TF_MODE 1
|
||||
#define LIBGCC2_TF_CEXT q
|
||||
#define TF_SIZE 113
|
||||
|
||||
#define TARGET_ASM_FILE_END file_end_indicate_exec_stack
|
||||
#define GNU_USER_DYNAMIC_LINKER32 LINUX_DYNAMIC_LINKER32
|
||||
#define GNU_USER_DYNAMIC_LINKER64 LINUX_DYNAMIC_LINKER64
|
||||
|
||||
#define MD_UNWIND_SUPPORT "config/i386/linux-unwind.h"
|
||||
|
||||
/* The stack pointer needs to be moved while checking the stack. */
|
||||
#define STACK_CHECK_MOVING_SP 1
|
||||
|
||||
/* Static stack checking is supported by means of probes. */
|
||||
#define STACK_CHECK_STATIC_BUILTIN 1
|
||||
|
||||
/* This macro may be overridden in i386/k*bsd-gnu.h. */
|
||||
#define REG_NAME(reg) reg
|
||||
|
||||
#ifdef TARGET_LIBC_PROVIDES_SSP
|
||||
/* i386 glibc provides __stack_chk_guard in %gs:0x14,
|
||||
x86_64 glibc provides it in %fs:0x28. */
|
||||
#define TARGET_THREAD_SSP_OFFSET (TARGET_64BIT ? 0x28 : 0x14)
|
||||
|
||||
/* We steal the last transactional memory word. */
|
||||
#define TARGET_CAN_SPLIT_STACK
|
||||
#define TARGET_THREAD_SPLIT_STACK_OFFSET (TARGET_64BIT ? 0x70 : 0x30)
|
||||
#endif
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Definitions for kFreeBSD-based GNU systems with ELF format
|
||||
Copyright (C) 2004, 2006, 2007
|
||||
Copyright (C) 2004, 2006, 2007, 2011
|
||||
Free Software Foundation, Inc.
|
||||
Contributed by Robert Millan.
|
||||
|
||||
@ -31,7 +31,5 @@ along with GCC; see the file COPYING3. If not see
|
||||
} \
|
||||
while (0)
|
||||
|
||||
#ifdef GLIBC_DYNAMIC_LINKER
|
||||
#undef GLIBC_DYNAMIC_LINKER
|
||||
#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
|
||||
#endif
|
||||
#undef GNU_USER_DYNAMIC_LINKER
|
||||
#define GNU_USER_DYNAMIC_LINKER "/lib/ld.so.1"
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Definitions for kNetBSD-based GNU systems with ELF format
|
||||
Copyright (C) 2004, 2006, 2007
|
||||
Copyright (C) 2004, 2006, 2007, 2011
|
||||
Free Software Foundation, Inc.
|
||||
Contributed by Robert Millan.
|
||||
|
||||
@ -32,7 +32,5 @@ along with GCC; see the file COPYING3. If not see
|
||||
while (0)
|
||||
|
||||
|
||||
#ifdef GLIBC_DYNAMIC_LINKER
|
||||
#undef GLIBC_DYNAMIC_LINKER
|
||||
#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
|
||||
#endif
|
||||
#undef GNU_USER_DYNAMIC_LINKER
|
||||
#define GNU_USER_DYNAMIC_LINKER "/lib/ld.so.1"
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Definitions for kOpenSolaris-based GNU systems with ELF format
|
||||
Copyright (C) 2004, 2006, 2007, 2009
|
||||
Copyright (C) 2004, 2006, 2007, 2009, 2011
|
||||
Free Software Foundation, Inc.
|
||||
Contributed by Robert Millan.
|
||||
|
||||
@ -31,7 +31,5 @@ along with GCC; see the file COPYING3. If not see
|
||||
} \
|
||||
while (0)
|
||||
|
||||
#ifdef GLIBC_DYNAMIC_LINKER
|
||||
#undef GLIBC_DYNAMIC_LINKER
|
||||
#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
|
||||
#endif
|
||||
#undef GNU_USER_DYNAMIC_LINKER
|
||||
#define GNU_USER_DYNAMIC_LINKER "/lib/ld.so.1"
|
||||
|
Loading…
Reference in New Issue
Block a user