Correcting compilation behavior in Ubuntu 11.10. I guess, default behavior of ldd has been changed... As a result, many dynamic features of NS were not working
authorAlexander Afanasyev <alexander.afanasyev@ucla.edu>
Fri, 11 Nov 2011 00:13:30 -0800
changeset 7593 fe607d42ec05
parent 7590 5f250a7a6f1f
child 7594 52904cc0aa8a
Correcting compilation behavior in Ubuntu 11.10. I guess, default behavior of ldd has been changed... As a result, many dynamic features of NS were not working
wscript
--- a/wscript	Thu Oct 06 10:42:21 2011 -0700
+++ b/wscript	Fri Nov 11 00:13:30 2011 -0800
@@ -577,6 +577,7 @@
 
 def create_ns3_program(bld, name, dependencies=('core',)):
     program = bld.new_task_gen(features=['cxx', 'cxxprogram'])
+
     program.is_ns3_program = True
     program.name = name
     program.target = program.name
@@ -590,6 +591,12 @@
         else:
             program.env.STLIB_MARKER = '-Wl,--whole-archive,-Bstatic'
             program.env.SHLIB_MARKER = '-Wl,-Bdynamic,--no-whole-archive'
+    else:
+        if program.env.DEST_BINFMT == 'elf':
+            # All ELF platforms are impacted but only the gcc compiler has a flag to fix it.
+            if 'gcc' in (program.env.CXX_NAME, program.env.CC_NAME): 
+                program.env.append_value ('SHLIB_MARKER', '-Wl,--no-as-needed')
+
     return program
 
 def register_ns3_script(bld, name, dependencies=('core',)):