From 7ed0004cff1cd5621957ccb2b5afba1ae4321ae9 Mon Sep 17 00:00:00 2001
From: g0dil <g0dil@wiback.org>
Date: Fri, 21 Nov 2008 09:32:48 +0000
Subject: [PATCH] Utils/Daemon: Remove now obsolete argv argument cast in unit
 test Add '-Wl,-S' to default build options to hugely increase link
 performance

---
 Utils/Daemon/Daemon.test.cc | 4 ++--
 senfscons/SENFSCons.py      | 8 ++++++--
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/Utils/Daemon/Daemon.test.cc b/Utils/Daemon/Daemon.test.cc
index 584761f42..f3dfc1ecc 100644
--- a/Utils/Daemon/Daemon.test.cc
+++ b/Utils/Daemon/Daemon.test.cc
@@ -88,7 +88,7 @@ namespace {
         ::kill(::getpid(), SIGABRT);
     };
 
-    int run(int argc, char ** argv)
+    int run(int argc, char const ** argv)
     {
         pid  = ::fork();
         if (pid < 0) throw senf::SystemException("::fork()");
@@ -124,7 +124,7 @@ BOOST_AUTO_UNIT_TEST(testDaemon)
                             "--console-log=testDaemon.log", 
                             "--pid-file=testDaemon.pid" };
 
-    SENF_CHECK_NO_THROW( BOOST_CHECK_EQUAL( run(sizeof(args)/sizeof(*args), const_cast<char **>(args)), 0 ) );
+    SENF_CHECK_NO_THROW( BOOST_CHECK_EQUAL( run(sizeof(args)/sizeof(*args), args), 0 ) );
 
     BOOST_CHECK( ! boost::filesystem::exists("invalid.log") );
     BOOST_CHECK( ! boost::filesystem::exists("invalid.pid") );
diff --git a/senfscons/SENFSCons.py b/senfscons/SENFSCons.py
index 4c3f3b862..90a04ffb7 100644
--- a/senfscons/SENFSCons.py
+++ b/senfscons/SENFSCons.py
@@ -72,6 +72,7 @@ def InitOpts():
     opts.Add('EXTRA_DEFINES', 'Additional preprocessor defines', '')
     opts.Add('EXTRA_LIBS', 'Additional libraries to link against', '')
     opts.Add(SCons.Options.BoolOption('final','Enable optimization',0))
+    opts.Add(SCons.Options.BoolOption('debug','Enable debug symbols in binaries',0))
     opts.Add('PREFIX', 'Installation prefix', '/usr/local')
     opts.Add('LIBINSTALLDIR', 'Library install dir', '$PREFIX/lib')
     opts.Add('BININSTALLDIR', 'Executable install dir', '$PREFIX/bin')
@@ -267,8 +268,11 @@ def MakeEnvironment():
         # The boost-regex library is not compiled with _GLIBCXX_DEBUG so this fails:
         #          CPPDEFINES = [ '_GLIBCXX_DEBUG' ],
         env.Append(CXXFLAGS = [ '-O0', '-g' ],
-                   CPPDEFINES = { 'SENF_DEBUG': ''},
-                   LINKFLAGS = [ '-g', '-rdynamic' ])
+                   CPPDEFINES = { 'SENF_DEBUG': ''})
+        if env['debug']:
+            env.Append(LINKFLAGS = [ '-g', '-rdynamic' ])
+        else:
+            env.Append(LINKFLAGS = [ '-Wl,-S', '-rdynamic' ])
 
     env.Append(CPPDEFINES = [ '$EXTRA_DEFINES' ],
                LIBS = [ '$EXTRA_LIBS' ],
-- 
GitLab