Subject: [dtn-users] Building ION-DTN 3.0.0 in Ubuntu 12.04

From: anirup dutta <[email-masked]>
Date: Fri, 18 May 2012 12:48:15 -0500

I have been trying to build ION-DTN in Ubuntu 12.04 but I have been
unsuccessful.I am able to build the subsystems ici,dgr and ltp but I fail
at bp.
I haven't changed the makefile much from the default except that I have
kept OPT = /usr/local and platform as i86-redhat.(I see that the makefile
inside the i86-redhat uses the -Dlinux preprocessor which should be same
for Ubuntu as well).
Is there any modification that I need to make in the makefile to build it
in Ubuntu ?

I am pasting the error below

./lib/libbpP.so: undefined reference to `bp_release_delivery'
./lib/libbpP.so: undefined reference to `bp_receive'
./lib/libbpP.so: undefined reference to `bp_open'
collect2: ld returned 1 exit status
gmake[1]: *** [bpclock] Error 1

However I can see that bp_release_delivery,bp_receive and bp_open are
defined in the libbp.c file inside the library folder.

I don't have much experience in building from sources in Linux.So if I
asked something lame, sorry about it.

Any kind of help would be appreciated.

Thanking You,

-- 
ANIRUP DUTTA

---

From: "Burleigh, Scott C (313B)" <[email-masked]>
Date: Fri, 18 May 2012 18:14:13 +0000

Anirup, in general you'll probably have better luck posting questions on ION to one of the ION mailing lists, maybe [email-masked]<mailto:[email-masked]>.  In this particular case, I think you've run up against a difference in linkers that the BP i86-redhat/Makefile doesn't properly account for: your Ubuntu 12.04 seems to be trying to resolve references in libbpP.so itself rather than waiting until that library is linked into an executable.  We ran into the same thing in Windows, in the i86-mingw/Makefile for BP: instead of building separate libbp.dll and libbpP.dll libraries we had to combine the libbp.o and libbpP.o object files into a single libbp.dll library.  I should have retrofitted this change into i86-redhat as well, but I haven't gotten around to that yet.

In the near term you could make that change yourself.  Alternatively, is there some reason you can't simply use the top-level Makefile?  The low-level Makefiles are vestiges of an older development model; most current maintenance attention goes into that top-level Makefile, including (I think) a solution to this problem.

Scott

From: [email-masked] [mailto:[email-masked]] On Behalf Of anirup dutta
Sent: Friday, May 18, 2012 10:48 AM
To: [email-masked]
Subject: [dtn-users] Building ION-DTN 3.0.0 in Ubuntu 12.04

I have been trying to build ION-DTN in Ubuntu 12.04 but I have been unsuccessful.I am able to build the subsystems ici,dgr and ltp but I fail at bp.
I haven't changed the makefile much from the default except that I have kept OPT = /usr/local and platform as i86-redhat.(I see that the makefile inside the i86-redhat uses the -Dlinux preprocessor which should be same for Ubuntu as well).
Is there any modification that I need to make in the makefile to build it in Ubuntu ?

However I can see that bp_release_delivery,bp_receive and bp_open are defined in the libbp.c file inside the library folder.

I don't have much experience in building from sources in Linux.So if I asked something lame, sorry about it.

Thanking You,

--
ANIRUP DUTTA