]> granicus.if.org Git - gc/commitdiff
Add support for NetBSD/aarch64
authorLeonardo Taccari <iamleot@gmail.com>
Sun, 10 Jun 2018 09:49:37 +0000 (11:49 +0200)
committerIvan Maidanski <ivmai@mail.ru>
Wed, 13 Jun 2018 06:20:20 +0000 (09:20 +0300)
Originally added by Jared McNeill (@jaredmcneill).

* include/private/gcconfig.h [NETBSD && __aarch64__] (AARCH64,
mach_type_known): Define macro.
* include/private/gcconfig.h [NETBSD && AARCH64] (OS_TYPE, HEURISTIC2,
DATASTART, ELF_CLASS, DYNAMIC_LOADING): Likewise.
* include/private/gcconfig.h [NETBSD && AARCH64] (GC_data_start):
Declare variable.

include/private/gcconfig.h

index d16fc0328931c09b7b4ac482f012cc283d813c24..bef3298f1448a742427efbccace7f6ce980905eb 100644 (file)
@@ -149,7 +149,7 @@ EXTERN_C_BEGIN
 # if defined(__aarch64__)
 #    define AARCH64
 #    if !defined(LINUX) && !defined(DARWIN) && !defined(FREEBSD) \
-        && !defined(NN_BUILD_TARGET_PLATFORM_NX)
+        && !defined(NETBSD) && !defined(NN_BUILD_TARGET_PLATFORM_NX)
 #      define NOSYS
 #      define mach_type_known
 #    endif
@@ -203,6 +203,10 @@ EXTERN_C_BEGIN
 #    define ARM32
 #    define mach_type_known
 # endif
+# if defined(NETBSD) && defined(__aarch64__)
+#    define AARCH64
+#    define mach_type_known
+# endif
 # if defined(NETBSD) && defined(__sh__)
 #    define SH
 #    define mach_type_known
@@ -2293,6 +2297,14 @@ EXTERN_C_BEGIN
 #     define DATASTART GC_FreeBSDGetDataStart(0x1000, (ptr_t)etext)
 #     define DATASTART_USES_BSDGETDATASTART
 #   endif
+#   ifdef NETBSD
+#     define OS_TYPE "NETBSD"
+#     define HEURISTIC2
+      extern ptr_t GC_data_start;
+#     define DATASTART GC_data_start
+#     define ELF_CLASS ELFCLASS64
+#     define DYNAMIC_LOADING
+#   endif
 #   ifdef NOSYS
       /* __data_start is usually defined in the target linker script.   */
       extern int __data_start[];