$NetBSD: patch-SConstruct,v 1.9 2020/02/01 20:00:08 adam 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	2019-12-04 23:29:59.000000000 +0000
+++ SConstruct
@@ -1015,6 +1015,7 @@ envDict = dict(BUILD_ROOT=buildDir,
                INSTALL_DIR=installDir,
                CONFIG_HEADER_DEFINES={},
                LIBDEPS_TAG_EXPANSIONS=[],
+               ENV=os.environ,
                )
 
 env = Environment(variables=env_vars, **envDict)
@@ -1169,7 +1170,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",
@@ -1557,7 +1560,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.
@@ -1593,14 +1596,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'):
@@ -1858,7 +1861,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",
@@ -2500,9 +2502,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... ')
@@ -2746,7 +2748,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.
@@ -3332,7 +3334,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.")
 
