summaryrefslogtreecommitdiffstats
path: root/contrib/gcc/config/i386/linux.h
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/gcc/config/i386/linux.h')
-rw-r--r--contrib/gcc/config/i386/linux.h49
1 files changed, 29 insertions, 20 deletions
diff --git a/contrib/gcc/config/i386/linux.h b/contrib/gcc/config/i386/linux.h
index b07bd03..6b553cd 100644
--- a/contrib/gcc/config/i386/linux.h
+++ b/contrib/gcc/config/i386/linux.h
@@ -33,7 +33,6 @@ Boston, MA 02111-1307, USA. */
fputs ("\t.intel_syntax\n", FILE); \
} while (0)
-#undef TARGET_VERSION
#define TARGET_VERSION fprintf (stderr, " (i386 Linux/ELF)");
/* The svr4 ABI for the i386 says that records and unions are returned
@@ -54,23 +53,14 @@ Boston, MA 02111-1307, USA. */
#define NO_PROFILE_COUNTERS
-#undef FUNCTION_PROFILER
-#define FUNCTION_PROFILER(FILE, LABELNO) \
-{ \
- if (flag_pic) \
- fprintf (FILE, "\tcall\t*mcount@GOT(%%ebx)\n"); \
- else \
- fprintf (FILE, "\tcall\tmcount\n"); \
-}
+#undef MCOUNT_NAME
+#define MCOUNT_NAME "mcount"
-/* True if it is possible to profile code that does not have a frame
- pointer.
-
- The GLIBC version of mcount for the x86 assumes that there is a
+/* The GLIBC version of mcount for the x86 assumes that there is a
frame, so we cannot allow profiling without a frame pointer. */
-#undef TARGET_ALLOWS_PROFILING_WITHOUT_FRAME_POINTER
-#define TARGET_ALLOWS_PROFILING_WITHOUT_FRAME_POINTER false
+#undef SUBTARGET_FRAME_POINTER_REQUIRED
+#define SUBTARGET_FRAME_POINTER_REQUIRED current_function_profile
#undef SIZE_TYPE
#define SIZE_TYPE "unsigned int"
@@ -84,14 +74,27 @@ Boston, MA 02111-1307, USA. */
#undef WCHAR_TYPE_SIZE
#define WCHAR_TYPE_SIZE BITS_PER_WORD
-#undef CPP_PREDEFINES
-#define CPP_PREDEFINES "-D__ELF__ -Dunix -D__gnu_linux__ -Dlinux -Asystem=posix"
+#define TARGET_OS_CPP_BUILTINS() \
+ do \
+ { \
+ builtin_define_std ("linux"); \
+ builtin_define_std ("unix"); \
+ builtin_define ("__ELF__"); \
+ builtin_define ("__gnu_linux__"); \
+ builtin_assert ("system=posix"); \
+ if (flag_pic) \
+ { \
+ builtin_define ("__PIC__"); \
+ builtin_define ("__pic__"); \
+ } \
+ } \
+ while (0)
#undef CPP_SPEC
#ifdef USE_GNULIBC_1
-#define CPP_SPEC "%(cpp_cpu) %{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} %{posix:-D_POSIX_SOURCE}"
+#define CPP_SPEC "%{posix:-D_POSIX_SOURCE}"
#else
-#define CPP_SPEC "%(cpp_cpu) %{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} %{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
+#define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
#endif
#undef CC1_SPEC
@@ -221,9 +224,13 @@ Boston, MA 02111-1307, USA. */
state data appropriately. See unwind-dw2.c for the structs. */
#ifdef IN_LIBGCC2
+/* There's no sys/ucontext.h for some (all?) libc1, so no
+ signal-turned-exceptions for them. There's also no configure-run for
+ the target, so we can't check on (e.g.) HAVE_SYS_UCONTEXT_H. Using the
+ target libc1 macro should be enough. */
+#ifndef USE_GNULIBC_1
#include <signal.h>
#include <sys/ucontext.h>
-#endif
#define MD_FALLBACK_FRAME_STATE_FOR(CONTEXT, FS, SUCCESS) \
do { \
@@ -278,3 +285,5 @@ Boston, MA 02111-1307, USA. */
(FS)->retaddr_column = 8; \
goto SUCCESS; \
} while (0)
+#endif /* not USE_GNULIBC_1 */
+#endif /* IN_LIBGCC2 */
OpenPOWER on IntegriCloud