This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Split up config/i386/linux.h etc.


Following up on the changes I made in
<http://gcc.gnu.org/ml/gcc-patches/2010-12/msg02055.html> to separate
config/linux.h into parts for GNU userspace (gnu-user.h) and parts for
the Linux kernel (linux.h), this patch makes similar changes to
config/i386/linux.h and config/i386/linux64.h.

As with the previous changes, this patch is not intended to change the
overall effect of how any target is configured, so it does not fix any
existing problems with k*gnu targets, and does not stop any target
from using any header it now does (avoiding linux*.h on
non-Linux-kernel targets is for a subsequent patch), just adds new
ones.  The LINK_EMULATION macro used in some of the headers is renamed
to GNU_USER_LINK_EMULATION, and macros GNU_USER_DYNAMIC_LINKER* are
added so that the LINK_SPEC settings (in gnu-user*.h) don't refer
directly to LINUX_DYNAMIC_LINKER*; this is the level at which k*gnu
targets should override things, so headers overriding
GLIBC_DYNAMIC_LINKER are updated accordingly.  (LINUX_DYNAMIC_LINKER*
should be renamed to GNU_USER_DYNAMIC_LINKER* in a subsequent patch to
avoid an unnecessary level of indirection, just as
LINUX_TARGET_OS_CPP_BUILTINS should be renamed to
GNU_USER_TARGET_OS_CPP_BUILTINS to reflect its use in gnu-user*.h.)

Bootstrapped with no regressions on x86_64-unknown-linux-gnu, and
tested building cc1 and xgcc for crosses to: i686-pc-linux-gnu
i686-gnu i686-kfreebsd-gnu i686-knetbsd-gnu i686-kopensolaris-gnu
x86_64-kfreebsd-gnu x86_64-knetbsd-gnu.  OK to commit?

2011-04-04  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.

Index: gcc/config.gcc
===================================================================
--- gcc/config.gcc	(revision 171942)
+++ gcc/config.gcc	(working copy)
@@ -1200,7 +1200,7 @@ i[34567]86-*-linux* | i[34567]86-*-kfree
 		# 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
@@ -1220,19 +1220,19 @@ i[34567]86-*-linux* | i[34567]86-*-kfree
 				;;
 			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 ;;
Index: gcc/config/i386/linux.h
===================================================================
--- gcc/config/i386/linux.h	(revision 171942)
+++ gcc/config/i386/linux.h	(working copy)
@@ -20,194 +20,11 @@ You should have received a copy of the G
 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
Index: gcc/config/i386/kfreebsd-gnu.h
===================================================================
--- gcc/config/i386/kfreebsd-gnu.h	(revision 171942)
+++ gcc/config/i386/kfreebsd-gnu.h	(working copy)
@@ -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 G
 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
Index: gcc/config/i386/gnu-user.h
===================================================================
--- gcc/config/i386/gnu-user.h	(revision 171942)
+++ gcc/config/i386/gnu-user.h	(working copy)
@@ -1,4 +1,4 @@
-/* Definitions for Intel 386 running Linux-based GNU systems with ELF format.
+/* 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.
@@ -41,7 +41,7 @@ along with GCC; see the file COPYING3.  
   (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
+   To the best of my knowledge, no GNU userspace libc has required the label
    argument to mcount.  */
 
 #define NO_PROFILE_COUNTERS	1
@@ -80,7 +80,7 @@ along with GCC; see the file COPYING3.  
 #undef CC1_SPEC
 #define CC1_SPEC "%(cc1_cpu) %{profile:-p}"
 
-/* Provide a LINK_SPEC appropriate for Linux.  Here we provide support
+/* 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.
@@ -88,18 +88,14 @@ along with GCC; see the file COPYING3.  
    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 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 }
+  { "link_emulation", GNU_USER_LINK_EMULATION },\
+  { "dynamic_linker", GNU_USER_DYNAMIC_LINKER }
 
 #undef	LINK_SPEC
 #define LINK_SPEC "-m %(link_emulation) %{shared:-shared} \
@@ -109,7 +105,7 @@ along with GCC; see the file COPYING3.  
       -dynamic-linker %(dynamic_linker)} \
       %{static:-static}}"
 
-/* Similar to standard Linux, but adding -ffast-math support.  */
+/* Similar to standard GNU userspace, but adding -ffast-math support.  */
 #undef  ENDFILE_SPEC
 #define ENDFILE_SPEC \
   "%{ffast-math|funsafe-math-optimizations:crtfastmath.o%s} \
@@ -192,17 +188,12 @@ along with GCC; see the file COPYING3.  
 
 #define TARGET_ASM_FILE_END file_end_indicate_exec_stack
 
-#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
Index: gcc/config/i386/gnu.h
===================================================================
--- gcc/config/i386/gnu.h	(revision 171942)
+++ gcc/config/i386/gnu.h	(working copy)
@@ -20,8 +20,8 @@ You should have received a copy of the G
 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}"
Index: gcc/config/i386/linux64.h
===================================================================
--- gcc/config/i386/linux64.h	(revision 171942)
+++ gcc/config/i386/linux64.h	(working copy)
@@ -24,103 +24,12 @@ a copy of the GCC Runtime Library Except
 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
Index: gcc/config/i386/gnu-user64.h
===================================================================
--- gcc/config/i386/gnu-user64.h	(revision 171942)
+++ gcc/config/i386/gnu-user64.h	(working copy)
@@ -1,4 +1,4 @@
-/* Definitions for AMD x86-64 running Linux-based GNU systems with ELF format.
+/* 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.
@@ -56,9 +56,6 @@ see the files COPYING3 and COPYING.RUNTI
    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"
@@ -77,11 +74,11 @@ see the files COPYING3 and COPYING.RUNTI
   %{!shared: \
     %{!static: \
       %{rdynamic:-export-dynamic} \
-      %{" SPEC_32 ":-dynamic-linker " LINUX_DYNAMIC_LINKER32 "} \
-      %{" SPEC_64 ":-dynamic-linker " LINUX_DYNAMIC_LINKER64 "}} \
+      %{" SPEC_32 ":-dynamic-linker " GNU_USER_DYNAMIC_LINKER32 "} \
+      %{" SPEC_64 ":-dynamic-linker " GNU_USER_DYNAMIC_LINKER64 "}} \
     %{static:-static}}"
 
-/* Similar to standard Linux, but adding -ffast-math support.  */
+/* Similar to standard GNU userspace, but adding -ffast-math support.  */
 #undef  ENDFILE_SPEC
 #define ENDFILE_SPEC \
   "%{ffast-math|funsafe-math-optimizations:crtfastmath.o%s} \
@@ -104,17 +101,12 @@ see the files COPYING3 and COPYING.RUNTI
 
 #define TARGET_ASM_FILE_END file_end_indicate_exec_stack
 
-#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.  */
Index: gcc/config/kopensolaris-gnu.h
===================================================================
--- gcc/config/kopensolaris-gnu.h	(revision 171942)
+++ gcc/config/kopensolaris-gnu.h	(working copy)
@@ -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.  
     }						\
   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"
Index: gcc/config/kfreebsd-gnu.h
===================================================================
--- gcc/config/kfreebsd-gnu.h	(revision 171942)
+++ gcc/config/kfreebsd-gnu.h	(working copy)
@@ -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.  
     }						\
   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"
Index: gcc/config/knetbsd-gnu.h
===================================================================
--- gcc/config/knetbsd-gnu.h	(revision 171942)
+++ gcc/config/knetbsd-gnu.h	(working copy)
@@ -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.  
   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"

-- 
Joseph S. Myers
joseph@codesourcery.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]