--- SConstruct.orig	2017-06-08 16:11:03 UTC
+++ SConstruct
@@ -929,9 +929,9 @@ if has_option('variables-help'):
     print env_vars.GenerateHelpText(env)
     Exit(0)
 
-unknown_vars = env_vars.UnknownVariables()
-if unknown_vars:
-    env.FatalError("Unknown variables specified: {0}", ", ".join(unknown_vars.keys()))
+#unknown_vars = env_vars.UnknownVariables()
+#if unknown_vars:
+#    env.FatalError("Unknown variables specified: {0}", ", ".join(unknown_vars.keys()))
 
 def set_config_header_define(env, varname, varval = 1):
     env['CONFIG_HEADER_DEFINES'][varname] = varval
@@ -1550,7 +1550,7 @@ if env.TargetOSIs('posix'):
             # If runtime hardening is requested, then build anything
             # destined for an executable with the necessary flags for PIE.
             env.AppendUnique(
-                PROGCCFLAGS=['-fPIE'],
+                PROGCCFLAGS=['-fpic'],
                 PROGLINKFLAGS=['-pie'],
             )
 
@@ -1564,7 +1564,7 @@ if env.TargetOSIs('posix'):
                          "-Wno-unknown-pragmas",
                          "-Winvalid-pch"] )
     # env.Append( " -Wconversion" ) TODO: this doesn't really work yet
-    if env.TargetOSIs('linux', 'osx', 'solaris'):
+    if env.TargetOSIs('linux', 'osx', 'solaris', 'freebsd'):
         if not has_option("disable-warnings-as-errors"):
             env.Append( CCFLAGS=["-Werror"] )
 
@@ -1592,19 +1592,19 @@ if env.TargetOSIs('posix'):
         env.Append( CCFLAGS=["-fprofile-arcs", "-ftest-coverage"] )
         env.Append( LINKFLAGS=["-fprofile-arcs", "-ftest-coverage"] )
 
-    if optBuild:
-        env.Append( CCFLAGS=["-O2"] )
-    else:
-        env.Append( CCFLAGS=["-O0"] )
+    #if optBuild:
+    #    env.Append( CCFLAGS=["-O2"] )
+    #else:
+    #    env.Append( CCFLAGS=["-O0"] )
 
     # Promote linker warnings into errors. We can't yet do this on OS X because its linker considers
     # noall_load obsolete and warns about it.
-    if not env.TargetOSIs('osx'):
-        env.Append(
-            LINKFLAGS=[
-                "-Wl,--fatal-warnings",
-            ],
-        )
+    #if not env.TargetOSIs('osx'):
+    #    env.Append(
+    #        LINKFLAGS=[
+    #            "-Wl,--fatal-warnings",
+    #        ],
+    #    )
 
 mmapv1 = False
 if get_option('mmapv1') == 'auto':
@@ -2461,7 +2461,7 @@ def doConfigure(myenv):
         }}
         """.format(storage_class)
         context.Message('Checking for storage class {0} '.format(storage_class))
-        ret = context.TryLink(textwrap.dedent(test_body), ".cpp")
+        ret = context.TryCompile(textwrap.dedent(test_body), ".cpp")
         context.Result(ret)
         return ret
 
@@ -2645,6 +2645,7 @@ def doConfigure(myenv):
 
         conf = Configure(myenv, custom_tests = {
             'CheckPThreadSetNameNP': CheckPThreadSetNameNP,
+            'CheckBoostMinVersion': CheckBoostMinVersion,
         })
 
         if conf.CheckPThreadSetNameNP():