]> granicus.if.org Git - gc/commitdiff
openbsd x86_64 patches
authorMatthew Flatt <mflatt@racket-lang.org>
Sat, 14 Oct 2006 00:58:14 +0000 (00:58 +0000)
committerIvan Maidanski <ivmai@mail.ru>
Sun, 3 Nov 2013 09:07:15 +0000 (13:07 +0400)
svn: r4597

dyn_load.c
include/private/gcconfig.h

index 2e4ebed7a361ba3bbe53a5dea57ef6ca608b9cfc..3882526ceea5373e6c04e23d10ec025d3f3789ec 100644 (file)
@@ -49,6 +49,7 @@
 #   undef GC_must_restore_redefined_dlopen
 # endif
 
+/* PLTSCHEME: added OPENBSD: */
 #if (defined(DYNAMIC_LOADING) || defined(MSWIN32) || defined(MSWINCE)) \
     && !defined(PCR)
 #if !defined(SUNOS4) && !defined(SUNOS5DL) && !defined(IRIX5) && \
@@ -57,6 +58,7 @@
     !defined(HPUX) && !(defined(LINUX) && defined(__ELF__)) && \
     !defined(RS6000) && !defined(SCO_ELF) && !defined(DGUX) && \
     !(defined(FREEBSD) && defined(__ELF__)) && \
+    !(defined(OPENBSD) && defined(__ELF__)) && \
     !(defined(NETBSD) && defined(__ELF__)) && !defined(HURD) && \
     !defined(DARWIN)
  --> We only know how to find data segments of dynamic libraries for the
@@ -285,8 +287,10 @@ void GC_register_dynamic_libraries()
 # endif /* !USE_PROC ... */
 # endif /* SUNOS */
 
+/* PLTSCHEME: added OPENBSD: */
 #if defined(LINUX) && defined(__ELF__) || defined(SCO_ELF) || \
     (defined(FREEBSD) && defined(__ELF__)) || defined(DGUX) || \
+    (defined(OPENBSD) && defined(__ELF__)) || \
     (defined(NETBSD) && defined(__ELF__)) || defined(HURD)
 
 
@@ -477,6 +481,9 @@ GC_bool GC_register_main_static_data()
 #  ifndef PF_W
 #  define PF_W         2
 #  endif
+/* PLTSCHEME: OPENBSD */
+#elif defined(OPENBSD)
+#   include <link_elf.h>
 #else
 #  include <elf.h>
 #endif
@@ -487,7 +494,11 @@ GC_bool GC_register_main_static_data()
 #ifdef __GNUC__
 # pragma weak _DYNAMIC
 #endif
+
+/* PLTSCHEME: ifndef OPENBSD */
+#ifndef OPENBSD
 extern ElfW(Dyn) _DYNAMIC[];
+#endif
 
 static struct link_map *
 GC_FirstDLOpenedLinkMap()
index 74cf149d4a4ccfbfcb46e12eacce6e2ef3ed5751..7395faf5c74c46fb06e0e5d8ed44cba3fcf65779 100644 (file)
 #   define I386
 #   define mach_type_known
 # endif
-# if defined(__NetBSD__) && defined(__x86_64__)
+/* PLTSCHEME: added OpenBSD: */
+# if (defined(__NetBSD__) || defined(__OpenBSD__)) && defined(__x86_64__)
 #    define X86_64
 #    define mach_type_known
 # endif
         extern char etext[];
 #       define SEARCH_FOR_DATA_START
 #   endif
-#   ifdef NETBSD
-#      define OS_TYPE "NETBSD"
+/* PLTSCHEME: added OPENBSD: */
+#   if defined(NETBSD) || defined(OPENBSD)
+#       ifdef NETBSD
+#          define OS_TYPE "NETBSD"
+#       endif
+#       ifdef OPENBSD
+#          define OS_TYPE "OPENBSD"
+#       endif
 #      ifdef __ELF__
 #          define DYNAMIC_LOADING
 #      endif