Bug 1387 - ns-3-dev fails to compile on Fedora 17 alpha with GCC 4.7
ns-3-dev fails to compile on Fedora 17 alpha with GCC 4.7
Status: RESOLVED FIXED
Product: ns-3
Classification: Unclassified
Component: tap-bridge
pre-release
All All
: P5 normal
Assigned To: Tom Goff
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2012-03-03 05:13 UTC by Vedran Miletić
Modified: 2012-03-09 01:01 UTC (History)
3 users (show)

See Also:


Attachments
possible fix (2.36 KB, patch)
2012-03-06 01:38 UTC, Tom Goff
Details | Diff
additional patch needed (837 bytes, patch)
2012-03-06 06:01 UTC, Vedran Miletić
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Vedran Miletić 2012-03-03 05:13:39 UTC
It fails in emu-net-device, but Bugzilla lacks a Component for it.

$ ./waf configure
Setting top to                           : /home/vedranm/ns-3-allinone/ns-3-dev 
Setting out to                           : /home/vedranm/ns-3-allinone/ns-3-dev/build 
Checking for 'gcc' (c compiler)          : /usr/lib64/ccache/gcc 
Checking for 'g++' (c++ compiler)        : /usr/lib64/ccache/g++ 
Checking for program pkg-config          : /bin/pkg-config 
Checking for compilation flag -Wl,--soname=foo... support : ok 
Checking for program python                               : /bin/python 
Checking for python version                               : (2, 7, 2, 'final', 0) 
Checking for library python2.7 in LIBDIR                  : yes 
Checking for program python2.7-config,python-config-2.7,python2.7m-config : /bin/python2.7-config 
Checking for header Python.h                                              : yes 
Checking for compilation flag -fvisibility=hidden... support              : ok 
Checking for compilation flag -Wno-array-bounds... support                : ok 
Checking for pybindgen location                                           : ../pybindgen (guessed) 
Python module pybindgen                                                   : ok 
Checking for pybindgen version                                            : 0.15.0.797 
Checking for types uint64_t and unsigned long equivalence                 : yes 
Checking for types uint64_t and unsigned long long equivalence            : no 
Checking for the apidefs that can be used for Python bindings             : gcc-LP64 
Checking for internal GCC cxxabi                                          : complete 
Python module pygccxml                                                    : not found 
Checking for click location                                               : ../click (guessed) 
Checking for library dl                                                   : yes 
Checking for library nsclick                                              : yes 
Checking for pkg-config flags for GTK_CONFIG_STORE                        : ok 
Checking for pkg-config flags for LIBXML2                                 : ok 
Checking for type uint128_t                                               : not found 
Checking for type __uint128_t                                             : yes 
Checking high precision time implementation                               : 128-bit integer 
Checking for header stdint.h                                              : yes 
Checking for header inttypes.h                                            : yes 
Checking for header sys/inttypes.h                                        : not found 
Checking for header sys/types.h                                           : yes 
Checking for header sys/stat.h                                            : yes 
Checking for header dirent.h                                              : yes 
Checking for header stdlib.h                                              : yes 
Checking for header signal.h                                              : yes 
Checking for header pthread.h                                             : yes 
Checking for header stdint.h                                              : yes 
Checking for header inttypes.h                                            : yes 
Checking for header sys/inttypes.h                                        : not found 
Checking for library rt                                                   : yes 
Checking for header netpacket/packet.h                                    : yes 
Checking for NSC location                                                 : ../nsc (guessed) 
Checking for library dl                                                   : yes 
Checking for NSC supported architecture x86_64                            : ok 
Checking for header sys/socket.h                                          : yes 
Checking for header netinet/in.h                                          : yes 
Checking boost includes                                                   : 1_48 
Checking boost libs                                                       : ok 
Checking for OpenFlow location                                            : ../openflow (guessed) 
Checking for library dl                                                   : yes 
Checking for library xml2                                                 : yes 
Checking for library openflow                                             : yes 
Checking for library sqlite3                                              : yes 
Checking for header linux/if_tun.h                                        : yes 
Python module gtk                                                         : not found 
Python module goocanvas                                                   : not found 
Python module pygraphviz                                                  : not found 
Checking for program sudo                                                 : /bin/sudo 
Checking for program valgrind                                             : /bin/valgrind 
Checking for pkg-config flags for GSL                                     : ok 
Checking for compilation flag -Wno-error=deprecated-d... support          : ok 
Checking for compilation flag -Wno-error=deprecated-d... support          : ok 
Checking for compilation flag -fstrict-aliasing... support                : ok 
Checking for compilation flag -fstrict-aliasing... support                : ok 
Checking for compilation flag -Wstrict-aliasing... support                : ok 
Checking for compilation flag -Wstrict-aliasing... support                : ok 
Checking for program doxygen                                              : /bin/doxygen 
---- Summary of optional NS-3 features:
Python Bindings               : enabled
Python API Scanning Support   : not enabled (Missing 'pygccxml' Python module)
NS-3 Click Integration        : enabled
GtkConfigStore                : enabled
XmlIo                         : enabled
Threading Primitives          : enabled
Real Time Simulator           : enabled
Emulated Net Device           : enabled
Network Simulation Cradle     : enabled
MPI Support                   : not enabled (option --enable-mpi not selected)
NS-3 OpenFlow Integration     : enabled
SQlite stats data output      : enabled
Tap Bridge                    : enabled
PyViz visualizer              : not enabled (Missing python modules: gtk, goocanvas, pygraphviz)
Use sudo to set suid bit      : not enabled (option --enable-sudo not selected)
Build tests                   : not enabled (defaults to disabled)
Build examples                : not enabled (defaults to disabled)
GNU Scientific Library (GSL)  : enabled
'configure' finished successfully (27.498s)

$ ./waf build
(...)
[ 865/1343] cxx: src/emu/model/emu-encode-decode.cc -> build/src/emu/model/emu-encode-decode.cc.1.o 
[ 866/1343] cxx: src/emu/model/emu-net-device.cc -> build/src/emu/model/emu-net-device.cc.1.o       
../src/emu/model/emu-net-device.cc: In member function ‘void ns3::EmuNetDevice::CreateSocket()’:    
../src/emu/model/emu-net-device.cc:462:15: error: ‘::fork’ has not been declared
../src/emu/model/emu-net-device.cc:479:16: error: ‘::execlp’ has not been declared
../src/emu/model/emu-net-device.cc: In member function ‘void ns3::EmuNetDevice::StopDevice()’:
../src/emu/model/emu-net-device.cc:621:16: error: ‘close’ was not declared in this scope
../src/emu/model/emu-net-device.cc: In member function ‘virtual uint16_t ns3::EmuNetDevice::GetMtu() const’:
../src/emu/model/emu-net-device.cc:1022:12: error: ‘close’ was not declared in this scope
Waf: Leaving directory `/home/vedranm/ns-3-allinone/ns-3-dev/build'
Build failed
 -> task in 'ns3-emu' failed (exit status 1):                                                       
        {task 51233232: cxx emu-net-device.cc -> emu-net-device.cc.1.o}                             
['/usr/lib64/ccache/g++', '-O0', '-ggdb', '-g3', '-Wall', '-Werror', '-Wno-error=deprecated-declarations', '-fstrict-aliasing', '-Wstrict-aliasing', '-fPIC', '-pthread', '-Ibuild', '-I.', '-DNS3_ASSERT_ENABLE', '-DNS3_LOG_ENABLE', '-DDL=1', '-DXML2=1', '-DSQLITE3=1', '-DHAVE_IF_TUN_H=1', '-DENABLE_GSL', '-DEMU_SOCK_CREATOR="ns3-dev-emu-sock-creator-debug"', '../src/emu/model/emu-net-device.cc', '-c', '-o', 'src/emu/model/emu-net-device.cc.1.o']
Comment 1 Tommaso Pecorella 2012-03-03 07:50:02 UTC
That seems more a missing header file, or something moved from one header to another. Not in ns-3 ones, in kernel ones.
Either it could be a change in some library API.

Anyway, we should fix this either by making it work or by disabling emu net-devices for this configuration. I'd like more the first idea tho.

Cheers,

T.
Comment 2 Vedran Miletić 2012-03-03 07:56:48 UTC
Same here.

It could be a bug in Fedora, of course, in that case reporting it to Red Hat is a must. If you are willing to investigate I can provide you with a SSH access to a machine running F17 alpha.
Comment 3 Tom Goff 2012-03-06 01:38:07 UTC
Created attachment 1350 [details]
possible fix

It looks like the unistd.h header file is what's missing.  The
attached patch seems to fix the build problem for me.
Comment 4 Vedran Miletić 2012-03-06 05:58:56 UTC
Thanks! This works for me with additional patch which I'm posting below. I will try running all the tests to see if they pass.

Tomasso, does this seem OK for inclusion?
Comment 5 Vedran Miletić 2012-03-06 06:01:05 UTC
Created attachment 1351 [details]
additional patch needed

This adds some static casts.
Comment 6 Vedran Miletić 2012-03-08 12:12:04 UTC
Hi Tom, can this be committed?
Comment 7 Tommaso Pecorella 2012-03-08 12:38:17 UTC
If the patch is compatible with all the other environments (I just checked it on MacOS X), then I have no objections.

T.
Comment 8 Vedran Miletić 2012-03-08 13:05:01 UTC
Tommaso, did you apply both patches or just the first one?
Comment 9 Tom Henderson 2012-03-09 01:01:18 UTC
changesets a3a5f9215aae and c8568ed95192.

I did not test on FC 17, just on a couple of the current buildslaves; feel free to reopen if issues remain.