]> git.ipfire.org Git - thirdparty/gcc.git/blobdiff - gcc/config/netbsd.h
Update copyright years.
[thirdparty/gcc.git] / gcc / config / netbsd.h
index 4f82809c8c18bc0f0955ec7041a558cc6568b2b0..59e8f37645776243d05c203189c8d813a2fa58ed 100644 (file)
@@ -1,6 +1,5 @@
 /* Base configuration file for all NetBSD targets.
-   Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-   2007 Free Software Foundation, Inc.
+   Copyright (C) 1997-2020 Free Software Foundation, Inc.
 
 This file is part of GCC.
 
@@ -85,7 +84,6 @@ along with GCC; see the file COPYING3.  If not see
    FIXME: Could eliminate the duplication here if we were allowed to
    use string concatenation.  */
 
-#ifdef NETBSD_ENABLE_PTHREADS
 #define NETBSD_LIB_SPEC                \
   "%{pthread:                  \
      %{!p:                     \
@@ -97,32 +95,18 @@ along with GCC; see the file COPYING3.  If not see
        %{!pg:-lposix}}         \
      %{p:-lposix_p}            \
      %{pg:-lposix_p}}          \
+   %{shared:-lc}               \
    %{!shared:                  \
      %{!symbolic:              \
        %{!p:                   \
         %{!pg:-lc}}            \
        %{p:-lc_p}              \
        %{pg:-lc_p}}}"
-#else
-#define NETBSD_LIB_SPEC                \
-  "%{posix:                    \
-     %{!p:                     \
-       %{!pg:-lposix}}         \
-     %{p:-lposix_p}            \
-     %{pg:-lposix_p}}          \
-   %{!shared:                  \
-     %{!symbolic:              \
-       %{!p:                   \
-        %{!pg:-lc}}            \
-       %{p:-lc_p}              \
-       %{pg:-lc_p}}}"
-#endif
 
 #undef LIB_SPEC
 #define LIB_SPEC NETBSD_LIB_SPEC
 
-/* Provide a LIBGCC_SPEC appropriate for NetBSD.  We also want to exclude
-   libgcc with -symbolic.  */
+/* Provide a LIBGCC_SPEC appropriate for NetBSD.  */
 
 #ifdef NETBSD_NATIVE
 #define NETBSD_LIBGCC_SPEC     \
@@ -134,12 +118,19 @@ along with GCC; see the file COPYING3.  If not see
      %{p: -lgcc_p}             \
      %{pg: -lgcc_p}}"
 #else
-#define NETBSD_LIBGCC_SPEC "%{!shared:%{!symbolic: -lgcc}}"
+#define NETBSD_LIBGCC_SPEC "-lgcc"
 #endif
 
 #undef LIBGCC_SPEC
 #define LIBGCC_SPEC NETBSD_LIBGCC_SPEC
 
+#if defined(HAVE_LD_EH_FRAME_HDR)
+#define LINK_EH_SPEC "%{!static|static-pie:--eh-frame-hdr} "
+#endif
+
+#undef TARGET_LIBC_HAS_FUNCTION
+#define TARGET_LIBC_HAS_FUNCTION no_c99_libc_has_function
+
 /* When building shared libraries, the initialization and finalization 
    functions for the library are .init and .fini respectively.  */
 
@@ -158,14 +149,6 @@ along with GCC; see the file COPYING3.  If not see
 #undef TARGET_POSIX_IO
 #define TARGET_POSIX_IO
 
-/* Handle #pragma weak and #pragma pack.  */
-
-#define HANDLE_SYSV_PRAGMA 1
-
-/* Don't assume anything about the header files.  */
-#undef  NO_IMPLICIT_EXTERN_C
-#define NO_IMPLICIT_EXTERN_C    1
-
 /* Define some types that are the same on all NetBSD platforms,
    making them agree with <machine/ansi.h>.  */
 
@@ -177,53 +160,9 @@ along with GCC; see the file COPYING3.  If not see
 
 #undef WINT_TYPE
 #define WINT_TYPE "int"
-\f
-
-/* Attempt to turn on execute permission for the stack.  This may be
-   used by TARGET_TRAMPOLINE_INIT if the target needs it (that is,
-   if the target machine can change execute permissions on a page).
-
-   There is no way to query the execute permission of the stack, so
-   we always issue the mprotect() call.
-
-   Note that we go out of our way to use namespace-non-invasive calls
-   here.  Unfortunately, there is no libc-internal name for mprotect().
-
-   Also note that no errors should be emitted by this code; it is considered
-   dangerous for library calls to send messages to stdout/stderr.  */
-
-#define NETBSD_ENABLE_EXECUTE_STACK                                    \
-extern void __enable_execute_stack (void *);                           \
-void                                                                   \
-__enable_execute_stack (void *addr)                                    \
-{                                                                      \
-  extern int mprotect (void *, size_t, int);                           \
-  extern int __sysctl (int *, unsigned int, void *, size_t *,          \
-                      void *, size_t);                                 \
-                                                                       \
-  static int size;                                                     \
-  static long mask;                                                    \
-                                                                       \
-  char *page, *end;                                                    \
-                                                                       \
-  if (size == 0)                                                       \
-    {                                                                  \
-      int mib[2];                                                      \
-      size_t len;                                                      \
-                                                                       \
-      mib[0] = 6; /* CTL_HW */                                         \
-      mib[1] = 7; /* HW_PAGESIZE */                                    \
-      len = sizeof (size);                                             \
-      (void) __sysctl (mib, 2, &size, &len, NULL, 0);                  \
-      mask = ~((long) size - 1);                                       \
-    }                                                                  \
-                                                                       \
-  page = (char *) (((long) addr) & mask);                              \
-  end  = (char *) ((((long) (addr + TRAMPOLINE_SIZE)) & mask) + size); \
-                                                                       \
-  /* 7 == PROT_READ | PROT_WRITE | PROT_EXEC */                                \
-  (void) mprotect (page, end - page, 7);                               \
-}
-
-/* Define this so we can compile MS code for use with WINE.  */
-#define HANDLE_PRAGMA_PACK_PUSH_POP 1
+
+#undef  SUBTARGET_INIT_BUILTINS
+#define SUBTARGET_INIT_BUILTINS                                                \
+  do {                                                                 \
+    netbsd_patch_builtins ();                                          \
+  } while(0)