Hello Matt,
I did everything afresh using LibOS (without sudo). Here is the complete summary (A to Z just to be sure):
Install dependencies :
sudo apt-get install vim git mercurial gcc g++ python python-dev qt4-dev-tools libqt4-dev bzr cmake libc6-dev libc6-dev-i386 g++-multilib gdb valgrind gsl-bin libgsl0-dev libgsl0ldbl flex bison libfl-dev tcpdump sqlite sqlite3 libsqlite3-dev libxml2 libxml2-dev libgtk2.0-0 libgtk2.0-dev vtun lxc uncrustify doxygen graphviz imagemagick texlive texlive-extra-utils texlive-latex-extra texlive-font-utils dvipng python-sphinx dia python-pygraphviz python-kiwi python-pygoocanvas libgoocanvas-dev ipython libboost-signals-dev libboost-filesystem-dev openmpi-bin openmpi-common openmpi-doc libopenmpi-dev libncurses5-dev libncursesw5-dev unrar unrar-free p7zip-full autoconf libpcap-dev cvs libssl-dev
I use XUbuntu 14.04, LibOS from here : https://github.com/libos-nuse/net-next-nuse/tree/mptcp_trunk_libos and dce-ns3-1.8
I first built dce using bake
1. hg clone http://code.nsnam.org/bake bake
2. export BAKE_HOME=`pwd`/bake
3. export PATH=$PATH:$BAKE_HOME
4. export PYTHONPATH=$PYTHONPATH:$BAKE_HOME
5. mkdir dce
6. cd dce
7. bake.py configure -e dce-ns3-1.8
8. bake.py download
9. bake.py build
Next I get mptcp_trunk_libos :
git clone -b mptcp_trunk_libos https://github.com/libos-nuse/net-next-nuse.git
I rename the folder net-next-nuse to mptcp for simplicity :)
1. cd mptcp
2. make menuconfig ARCH=lib /* here I include the necessary MPTCP modules */
3. make library ARCH=lib /* the file liblinux.so is created */
2. export DCE_PATH=$HOME/mptcp
3. cd ns-3-dce
4. ./waf configure --with-ns3=$HOME/dce/build --enable-kernel-stack=$HOME/mptcp/arch --prefix=$HOME/dce/build
5. ./waf build
6. ./waf --run dce-iperf-mptcp /* which gives me the following errors */
lawrence@lawrence:~/ns-3-dce$ ./waf --run dce-iperf-mptcp
Waf: Entering directory `/home/lawrence/ns-3-dce/build'
[ 10/367] lib/pkgconfig/libns3-dev-netlink-debug.pc: -> build/lib/pkgconfig/libns3-dev-netlink-debug.pc
[116/367] lib/pkgconfig/libns3-dev-dce-debug.pc: -> build/lib/pkgconfig/libns3-dev-dce-debug.pc
Waf: Leaving directory `/home/lawrence/ns-3-dce/build'
'build' finished successfully (0.218s)
msg="Oops. Can't find initialization function", file=../model/kernel-socket-fd-factory.cc, line=575
terminate called without an active exception
Command
['/home/lawrence/ns-3-dce/build/bin/dce-iperf-mptcp'] terminated with
signal SIGIOT. Run it under a debugger to get more information (./waf
--run <program> --command-template="gdb --args %s <args>").
A gdb backtrace gives the following :
lawrence@lawrence:~/ns-3-dce$ ./waf --run dce-iperf-mptcp --command-template="gdb --args %s"
Waf: Entering directory `/home/lawrence/ns-3-dce/build'
[ 10/367] lib/pkgconfig/libns3-dev-netlink-debug.pc: -> build/lib/pkgconfig/libns3-dev-netlink-debug.pc
[116/367] lib/pkgconfig/libns3-dev-dce-debug.pc: -> build/lib/pkgconfig/libns3-dev-dce-debug.pc
Waf: Leaving directory `/home/lawrence/ns-3-dce/build'
'build' finished successfully (0.212s)
GNU gdb (Ubuntu 7.7.1-0ubuntu5~14.04.2) 7.7.1
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <
http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<
http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<
http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /home/lawrence/ns-3-dce/build/bin/dce-iperf-mptcp...done.
(gdb) run
Starting program: /home/lawrence/ns-3-dce/build/bin/dce-iperf-mptcp
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
msg="Oops. Can't find initialization function", file=../model/kernel-socket-fd-factory.cc, line=575
terminate called without an active exception
Program received signal SIGABRT, Aborted.
0x00007ffff3c91c37 in __GI_raise (sig=sig@entry=6)
at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
56 ../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt
#0 0x00007ffff3c91c37 in __GI_raise (sig=sig@entry=6)
at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1 0x00007ffff3c95028 in __GI_abort () at abort.c:89
#2 0x00007ffff44b4535 in __gnu_cxx::__verbose_terminate_handler() ()
from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#3 0x00007ffff44b26d6 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#4 0x00007ffff44b2703 in std::terminate() ()
from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#5 0x00007ffff7b40b1e in ns3::KernelSocketFdFactory::InitializeStack (
this=0x643ed0) at ../model/kernel-socket-fd-factory.cc:575
#6 0x00007ffff7b4d4cd in ns3::LinuxSocketFdFactory::InitializeStack (
this=0x643ed0) at ../model/linux-socket-fd-factory.cc:156
#7
0x00007ffff7b4de6b in ns3::EventImpl* ns3::MakeEvent<void
(ns3::LinuxSocketFdFactory::*)(), ns3::LinuxSocketFdFactory*>(void
(ns3::LinuxSocketFdFactory::*)(),
ns3::LinuxSocketFdFactory*)::EventMemberImpl0::Notify() (this=0x644240)
at /home/lawrence/dce/build/include/ns3.25/ns3/make-event.h:323
#8 0x00007ffff7373801 in ns3::EventImpl::Invoke (this=0x644240)
at ../src/core/model/event-impl.cc:51
#9 0x00007ffff7b3fc3c in ns3::KernelSocketFdFactory::ScheduleTaskTrampoline (
context=0x644240) at ../model/kernel-socket-fd-factory.cc:488
#10 0x00007ffff7ac34f4 in ns3::TaskManager::Trampoline (context=0x6445a0)
at ../model/task-manager.cc:274
#11 0x00007ffff7abcde9 in ns3::UcontextFiberManager::Trampoline (a0=32767,
---Type <return> to continue, or q <return> to quit---
a1=-139709264, a2=0, a3=6571424) at ../model/ucontext-fiber-manager.cc:199
#12 0x00007ffff3ca4800 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#13 0x0000000000000000 in ?? ()
(gdb)
What is the initialisation function ?