Difference between revisions of "Ns-3.35 errata"

From Nsnam
Jump to: navigation, search
(macOS issue 461 errata)
(update errata for Xcode/clang)
Line 16: Line 16:
  
 
https://github.com/gjcarneiro/pybindgen/commit/e645cc684602802580a0b800518c784100d54561
 
https://github.com/gjcarneiro/pybindgen/commit/e645cc684602802580a0b800518c784100d54561
 +
 +
=== Compiler warning: variable set but not used ===
 +
 +
Xcode 13.3 (Apple clang version 13.1.6 (clang-1316.0.21.2)) raises several -Wunused-but-set-variable warnings; e.g.:
 +
 +
<pre>
 +
../src/lte/model/lte-rlc-um.cc:145:12: error: variable 'dataFieldTotalSize' set but not used [-Werror,-Wunused-but-set-variable]
 +
  uint32_t dataFieldTotalSize = 0;
 +
          ^
 +
1 error generated.
 +
</pre>
 +
 +
'''Workaround:'''
 +
 +
Configure ns-3.35 with '-Wall' instead of '-Wall -Werror' as described [[HOWTO_build_old_versions_of_ns-3_on_newer_compilers]].
  
 
=== Segmentation fault for Wi-Fi under certain conditions ===
 
=== Segmentation fault for Wi-Fi under certain conditions ===

Revision as of 22:24, 27 March 2022

On October 1, 2021, ns-3.35 was published. This page lists some minor issues that have been fixed in the mainline since that time, but we considered to be minor enough to just list here rather than make a maintenance release to update ns-3.35.

Compilation on Python 3.10 systems

Python 3.10 was released shortly after ns-3.35, and Python 3.10 will become default in upcoming Linux distributions such as Fedora 35.

The pybindgen version distributed in ns-allinone-3.35 release (version 0.22.0) is missing a small patch needed to make it work with Python 3.10. Below are two suggested workarounds (only one or the other is needed):

Workaround 1:

If you don't need Python bindings, you can disable them from your build by passing the --disable-python argument to Waf configure.

Workaround 2:'

You can replace pybindgen with the latest development version, or patch the version distributed with ns-3.35 release with this small patch:

https://github.com/gjcarneiro/pybindgen/commit/e645cc684602802580a0b800518c784100d54561

Compiler warning: variable set but not used

Xcode 13.3 (Apple clang version 13.1.6 (clang-1316.0.21.2)) raises several -Wunused-but-set-variable warnings; e.g.:

../src/lte/model/lte-rlc-um.cc:145:12: error: variable 'dataFieldTotalSize' set but not used [-Werror,-Wunused-but-set-variable]
  uint32_t dataFieldTotalSize = 0;
           ^
1 error generated.

Workaround:

Configure ns-3.35 with '-Wall' instead of '-Wall -Werror' as described HOWTO_build_old_versions_of_ns-3_on_newer_compilers.

Segmentation fault for Wi-Fi under certain conditions

Changes in to the handling of MPDUs that were introduced just prior to the ns-3.35 release have a bug that may manifest itself as a simulation crash under some conditions. The simulation crashes with a segfault due to the attempt of erasing an element using an invalidated iterator, and a hint may be that the debugger points to some functions in the BlockAckManager.

Workaround:

Try to apply the patch in this commit to resolve the problem:

https://gitlab.com/nsnam/ns-3-dev/-/commit/96fdc81c68492c09488f145367c532

macOS Xcode 12.4 Scheme editor and Finder do not identify executables

Due to what is considered to be an upstream macOS bug, the VERSION format in ns-3.35 release (and earlier releases) leads to a dot character in the executable filename, and the editor or Finder app are unable to identify the file as an executable. The following link has more details:

https://gitlab.com/nsnam/ns-3-dev/-/issues/461#note_679766753

Workaround:

Apply this one-line patch to the wscript file and reconfigure and rebuild the project.

diff --git a/wscript b/wscript
index 1e9c4d9..9062bef 100644
--- a/wscript
+++ b/wscript
@@ -68,7 +68,7 @@ with open("VERSION", "rt") as f:
     VERSION = f.read().strip()
 APPNAME = 'ns'
 
-wutils.VERSION = VERSION
+wutils.VERSION = VERSION.replace(".", "-")
 wutils.APPNAME = APPNAME
 
 # we don't use VNUM anymore (see bug #1327 for details)