|
Bugzilla – Full Text Bug Listing |
| Summary: | Python examples fail when static built is enabled | ||
|---|---|---|---|
| Product: | ns-3 | Reporter: | Mitch Watrous <watrous> |
| Component: | build system | Assignee: | Gustavo J. A. M. Carneiro <gjcarneiro> |
| Status: | RESOLVED FIXED | ||
| Severity: | major | CC: | gjcarneiro, ns-bugs |
| Priority: | P5 | ||
| Version: | pre-release | ||
| Hardware: | All | ||
| OS: | All | ||
Note to Mitch, please add me to CC of any bug report assigned to me, otherwise I might miss it. I do not subscribe to all bugmail. I only subscribe to the RSS feed, from which sometimes I miss items. Of course, Python bindings have to be dynamic libraries, period. changeset: 6918:614b5388a1ae tag: tip user: Gustavo J. A. M. Carneiro <gjc@inescporto.pt> date: Sun Mar 20 12:18:15 2011 +0000 summary: Bug 1075 - Python examples fail when static built is enabled |
If you do build the non-static (shared dynamic) version of ns-3, all of the tests in test.py pass. But, if you do /waf configure --enable-static or /waf configure --enable-static -d release all of the Python examples fail: FAIL: Example examples/routing/simple-routing-ping6.py FAIL: Example examples/wireless/wifi-ap.py FAIL: Example examples/wireless/mixed-wireless.py FAIL: Example examples/tutorial/first.py FAIL: Example src/bridge/examples/csma-bridge.py I think the reason is that I changed the wscript files to make the bindings be a static library. Before, they were always being created as shared libraries. To be specific, I added to following to bindings/python/wscript: if bld.env['ENABLE_STATIC_NS3']: features = 'cxx cstaticlib pyext' else: features = 'cxx cshlib pyext' if env['ENABLE_PYTHON_PCH']: features += ' pch' I also added following to wscript: if env['ENABLE_STATIC_NS3']: if sys.platform == 'darwin': env.STATICLIB_MARKER = '-Wl,-all_load' else: env.STATICLIB_MARKER = '-Wl,--whole-archive,-Bstatic' env.SHLIB_MARKER = '-Wl,-Bdynamic,--no-whole-archive'