summaryrefslogtreecommitdiff
path: root/databases/mongodb/patches/patch-SConstruct
blob: bb22e5eab620ad21c7c1119cfdc0d4776a949c86 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
$NetBSD: patch-SConstruct,v 1.10 2021/12/27 09:36:10 nia Exp $

Add support for NetBSD and Dragonfly.
Fix locations.
Don't compile with debug info.
Don't mess with the linker.
Respect LDFLAGS and CXXFLAGS.

--- SConstruct.orig	2021-06-30 17:39:08.000000000 +0000
+++ SConstruct
@@ -1043,6 +1043,7 @@ envDict = dict(BUILD_ROOT=buildDir,
                INSTALL_DIR=installDir,
                CONFIG_HEADER_DEFINES={},
                LIBDEPS_TAG_EXPANSIONS=[],
+               ENV=os.environ,
                )
 
 env = Environment(variables=env_vars, **envDict)
@@ -1193,7 +1194,9 @@ def CheckForProcessor(context, which_arc
 os_macros = {
     "windows": "defined(_WIN32)",
     "solaris": "defined(__sun)",
+    "dragonfly": "defined(__DragonFly__)",
     "freebsd": "defined(__FreeBSD__)",
+    "netbsd": "defined(__NetBSD__)",
     "openbsd": "defined(__OpenBSD__)",
     "iOS": "defined(__APPLE__) && TARGET_OS_IOS && !TARGET_OS_SIMULATOR",
     "iOS-sim": "defined(__APPLE__) && TARGET_OS_IOS && TARGET_OS_SIMULATOR",
@@ -1590,7 +1593,7 @@ if env['_LIBDEPS'] == '$_LIBDEPS_LIBS':
     if not env.TargetOSIs('solaris', 'darwin', 'windows', 'openbsd'):
         env.Tool('thin_archive')
 
-if env.TargetOSIs('linux', 'freebsd', 'openbsd'):
+if env.TargetOSIs('linux', 'dragonfly', 'freebsd', 'netbsd', 'openbsd'):
     env['LINK_LIBGROUP_START'] = '-Wl,--start-group'
     env['LINK_LIBGROUP_END'] = '-Wl,--end-group'
     # NOTE: The leading and trailing spaces here are important. Do not remove them.
@@ -1626,14 +1629,14 @@ if env.TargetOSIs('linux'):
 elif env.TargetOSIs('solaris'):
      env.Append( LIBS=["socket","resolv","lgrp"] )
 
-elif env.TargetOSIs('freebsd'):
+elif env.TargetOSIs('freebsd', 'dragonfly'):
     env.Append( LIBS=[ "kvm" ] )
     env.Append( CCFLAGS=[ "-fno-omit-frame-pointer" ] )
 
 elif env.TargetOSIs('darwin'):
     env.Append( LIBS=["resolv"] )
 
-elif env.TargetOSIs('openbsd'):
+elif env.TargetOSIs('netbsd', 'openbsd'):
     env.Append( LIBS=[ "kvm" ] )
 
 elif env.TargetOSIs('windows'):
@@ -1891,7 +1894,6 @@ if env.TargetOSIs('posix'):
     # -Winvalid-pch Warn if a precompiled header (see Precompiled Headers) is found in the search path but can't be used.
     env.Append( CCFLAGS=["-fno-omit-frame-pointer",
                          "-fno-strict-aliasing",
-                         "-ggdb" if not env.TargetOSIs('emscripten') else "-g",
                          "-pthread",
                          "-Wall",
                          "-Wsign-compare",
@@ -2533,9 +2535,9 @@ def doConfigure(myenv):
     if usingLibStdCxx:
         def CheckModernLibStdCxx(context):
             test_body = """
-            #if !__has_include(<experimental/filesystem>)
-            #error "libstdc++ from GCC 5.3.0 or newer is required"
-            #endif
+            //#if !__has_include(<experimental/filesystem>)
+            //#error "libstdc++ from GCC 5.3.0 or newer is required"
+            //#endif
             """
 
             context.Message('Checking for libstdc++ 5.3.0 or better... ')
@@ -2779,7 +2781,7 @@ def doConfigure(myenv):
         #
         myenv.Append( CCFLAGS=["/Zc:inline"])
 
-    if myenv.ToolchainIs('gcc', 'clang'):
+    if myenv.ToolchainIs('gcc', 'clang') and get_option('runtime-hardening') == "on":
         # This tells clang/gcc to use the gold linker if it is available - we prefer the gold linker
         # because it is much faster. Don't use it if the user has already configured another linker
         # selection manually.
@@ -3021,8 +3023,9 @@ def doConfigure(myenv):
     def checkOpenSSL(conf):
         sslLibName = "ssl"
         cryptoLibName = "crypto"
-        sslLinkDependencies = ["crypto", "dl"]
-        if conf.env.TargetOSIs('freebsd'):
+        if conf.env.TargetOSIs('linux', 'solaris'):
+            sslLinkDependencies = ["crypto", "dl"]
+        else:
             sslLinkDependencies = ["crypto"]
 
         if conf.env.TargetOSIs('windows'):
@@ -3368,7 +3371,7 @@ def doConfigure(myenv):
         myenv.ConfError("Couldn't find SASL header/libraries")
 
     # requires ports devel/libexecinfo to be installed
-    if env.TargetOSIs('freebsd', 'openbsd'):
+    if env.TargetOSIs('dragonfly', 'freebsd', 'netbsd', 'openbsd'):
         if not conf.CheckLib("execinfo"):
             myenv.ConfError("Cannot find libexecinfo, please install devel/libexecinfo.")