Bug 198994 - net/ipsumdump 1.85 fails to link on amd64 and i386 10.1Stable
Summary: net/ipsumdump 1.85 fails to link on amd64 and i386 10.1Stable
Status: Closed Unable to Reproduce
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Many People
Assignee: freebsd-ports-bugs (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-03-28 23:10 UTC by dewayne
Modified: 2016-03-03 15:18 UTC (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description dewayne 2015-03-28 23:10:26 UTC
Unfortunately attempting to compile 1.85 on the latest stable 10.1 using both gcc48 on i386 and clang on amd64 resulted in undefined references, per below:


amd64 with clang on 10.1-STABLE FreeBSD 10.1-STABLE #0 r280481M amd64

usr/local/libexec/ccache/c++ -O2 -pipe -g0 -ggdb0 -DSTRIP_FBSDID -march=core-avx-i -fno-strict-aliasing   -o ipsumdump -rdynamic fromdagdump.o fromdevice.o fromdump.o fromipsumdump.o fromnetflowsumdump.o fromnlanrdump.o fromtcpdump.o kernelfilter.o ipsumdumpinfo.o ipsumdump_anno.o ipsumdump_icmp.o ipsumdump_ip.o ipsumdump_link.o ipsumdump_payload.o ipsumdump_tcp.o ipsumdump_udp.o toipsumdump.o todump.o anonipaddr.o changeuid.o classification.o classifier.o counter.o drivermanager.o discard.o fakepcap.o ipfilter.o ipnameinfo.o netmapinfo.o progressbar.o randomsample.o script.o switch.o tee.o timefilter.o timesortedsched.o truncateippayload.o unqueue.o ipsumdump.o sd_elements.o ../libclick-2.1/libsrc/libclick.a `../libclick-2.1/click-buildtool --otherlibs`
fromdevice.o: In function `FromDevice::open_pcap(String, int, bool, ErrorHandler*)':
fromdevice.cc:(.text+0xa77): undefined reference to `pcap_set_tstamp_precision'
fromdevice.o: In function `FromDevice::initialize(ErrorHandler*)':
fromdevice.cc:(.text+0xd9c): undefined reference to `pcap_get_tstamp_precision'
c++: error: linker command failed with exit code 1 (use -v to see invocation)
Makefile:101: recipe for target 'ipsumdump' failed
gmake[2]: *** [ipsumdump] Error 1
gmake[2]: Leaving directory '/var/ports/usr/ports/net/ipsumdump/work/ipsumdump-1.85/src'
Makefile:40: recipe for target 'src' failed
gmake[1]: *** [src] Error 2
gmake[1]: Leaving directory '/var/ports/usr/ports/net/ipsumdump/work/ipsumdump-1.85'
*** Error code 1


And on i386 where I'm using gcc4.8.4_1 on 10.1-STABLE FreeBSD 10.1-STABLE #0 r280481M i386

g++48 -O2 -pipe -g0 -ggdb0 -DSTRIP_FBSDID -march=c3-2 -mtune=c3-2 -fno-strict-aliasing   -o ipsumdump -rdynamic fromdagdump.o fromdevice.o fromdump.o fromipsumdump.o fromnetflowsumdump.o fromnlanrdump.o fromtcpdump.o kernelfilter.o ipsumdumpinfo.o ipsumdump_anno.o ipsumdump_icmp.o ipsumdump_ip.o ipsumdump_link.o ipsumdump_payload.o ipsumdump_tcp.o ipsumdump_udp.o toipsumdump.o todump.o anonipaddr.o changeuid.o classification.o classifier.o counter.o drivermanager.o discard.o fakepcap.o ipfilter.o ipnameinfo.o netmapinfo.o progressbar.o randomsample.o script.o switch.o tee.o timefilter.o timesortedsched.o truncateippayload.o unqueue.o ipsumdump.o sd_elements.o ../libclick-2.1/libsrc/libclick.a `../libclick-2.1/click-buildtool --otherlibs`
fromdevice.o: In function `FromDevice::open_pcap(String, int, bool, ErrorHandler*)':
fromdevice.cc:(.text+0x26b): undefined reference to `pcap_set_tstamp_precision'
fromdevice.o: In function `FromDevice::initialize(ErrorHandler*)':
fromdevice.cc:(.text.unlikely+0x457): undefined reference to `pcap_get_tstamp_precision'
collect2: error: ld returned 1 exit status
Makefile:101: recipe for target 'ipsumdump' failed
gmake[2]: *** [ipsumdump] Error 1
gmake[2]: Leaving directory '/var/ports/usr/ports/net/ipsumdump/work/ipsumdump-1.85/src'
Makefile:40: recipe for target 'src' failed
gmake[1]: *** [src] Error 2
gmake[1]: Leaving directory '/var/ports/usr/ports/net/ipsumdump/work/ipsumdump-1.85'
*** Error code 1



Workaround - reverting to 1.84 :(

svnlite update -r "{2015-03-21}" /usr/ports/net/ipsumdump
Comment 1 Bartek Rutkowski freebsd_committer freebsd_triage 2015-04-03 14:33:32 UTC
Can you try building it on fresh install of 10.1 using latest snapshot of ports via SVN? I've built it on 10.1, 9.3 and 8.4 amd64/i386 and I cant reproduce the issue, it builds just fine:

http://pd.valinor.palantiri.org/data/latest-per-pkg/ipsumdump/1.85/
Comment 2 dewayne 2015-04-06 03:07:52 UTC
(In reply to Bartek Rutkowski from comment #1)
Thank-you for looking into this Bartek.  I downloaded and rebuilt world, and kernel using 10.1 Stable overnight; svn was just updated to/usr/ports but my attempts at building this port continue to fail at the link stage on both: i386 using gcc 4.8.4 and amd64 using the default clang and in both cases with/without ccache. The failure is described above.

I also tried
 make __MAKE_CONF=/dev/null -DBATCH clean deinstall package
with this result 
...
c++ -O2 -pipe -fno-strict-aliasing   -o ipsumdump -rdynamic fromdagdump.o fromdevice.o fromdump.o fromipsumdump.o fromnetflowsumdump.o fromnlanrdump.o fromtcpdump.o kernelfilter.o ipsumdumpinfo.o ipsumdump_anno.o ipsumdump_icmp.o ipsumdump_ip.o ipsumdump_link.o ipsumdump_payload.o ipsumdump_tcp.o ipsumdump_udp.o toipsumdump.o todump.o anonipaddr.o changeuid.o classification.o classifier.o counter.o drivermanager.o discard.o fakepcap.o ipfilter.o ipnameinfo.o netmapinfo.o progressbar.o randomsample.o script.o switch.o tee.o timefilter.o timesortedsched.o truncateippayload.o unqueue.o ipsumdump.o sd_elements.o ../libclick-2.1/libsrc/libclick.a `../libclick-2.1/click-buildtool --otherlibs`
fromdevice.o: In function `FromDevice::open_pcap(String, int, bool, ErrorHandler*)':
/usr/ports/net/ipsumdump/work/ipsumdump-1.85/src/fromdevice.cc:275: undefined reference to `pcap_set_tstamp_precision'
fromdevice.o: In function `FromDevice::initialize(ErrorHandler*)':
/usr/ports/net/ipsumdump/work/ipsumdump-1.85/src/fromdevice.cc:328: undefined reference to `pcap_get_tstamp_precision'
c++: error: linker command failed with exit code 1 (use -v to see invocation)
Comment 3 dewayne 2015-04-17 21:45:50 UTC
(In reply to dewayne from comment #2)
The file fromdevice.cc calls pcap_set_tstamp_precision which is defined in /usr/local/lib/libpcap.so

Adding LDFLAGS+=  -L${LOCALBASE}/lib to /usr/ports/net/ipsumdump/Makefile 
enables a package build.
Comment 4 Kurt Jaeger freebsd_committer freebsd_triage 2016-03-03 15:18:03 UTC
Testbuilds done with or without LDFLAGS definition is fine on 11cur, 10.2a+i, 9.3a. So problem can not be reproduced.