Wireshark mailing list archives

Re: Building Wireshark on SuSE 11.4 fails, configure does not find pcap functions.


From: Anders Broman <anders.broman () ericsson com>
Date: Thu, 12 Oct 2017 10:25:58 +0000



-----Original Message-----
From: Wireshark-dev [mailto:wireshark-dev-bounces () wireshark org] On Behalf Of Guy Harris
Sent: den 12 oktober 2017 10:39
To: Developer support list for Wireshark <wireshark-dev () wireshark org>
Subject: Re: [Wireshark-dev] Building Wireshark on SuSE 11.4 fails, configure does not find pcap functions.

On Oct 12, 2017, at 12:09 AM, Anders Broman <anders.broman () ericsson com> wrote:

-----Original Message-----
From: Wireshark-dev [mailto:wireshark-dev-bounces () wireshark org] On Behalf Of Guy Harris
Sent: den 11 oktober 2017 22:00
To: Developer support list for Wireshark <wireshark-dev () wireshark org>
Subject: Re: [Wireshark-dev] Building Wireshark on SuSE 11.4 fails, configure does not find pcap functions.

On Oct 11, 2017, at 4:24 AM, Anders Broman <anders.broman () ericsson com> wrote:

Looking in configure.log

What's the full config.log file?

Included the log file.

OK, so the configure script is not finding pcap_findalldevs(), and, as a result, isn't bothering to look for 
pcap_datalink_name_to_val() and is just assuming it's not present.

From looking at my collection of CVS/git trees for various libpcap release branches, pcap_datalink_name_to_val() first 
appeared in libpcap 0.8, and pcap_findalldevs() first >appeared in libpcap 0.7, so, assuming a normal libpcap (rather 
than a libpcap that somebody upstream decided to tweak), the configure script is making a reasonable >assumption.

The build log seems to suggest that pcap_datalink_name_to_val() is declared in pcap.h - and the version of the 
libpcap-devel package is "0.9.8-50.10.1", so *perhaps* it's >based on libpcap 0.9.8 - or perhaps something newer 
(Debian tends, or at least has tended, to call their libpcap "0.8", although it's currently based on a much more 
recent >libpcap; I guess that's just the shared library version number, for binary compatibility).  If it's based on 
0.9.8, or a later release, it *should* have pcap_findalldevs() *and* >pcap_datalink_name_to_val().

The command used by the configure script to compile the test-for-pcap_findalldevs() program is

      gcc -std=gnu99 -o conftest -I/usr/include/pcap -Wall 
        -Wextra -Wendif-labels -Wpointer-arith -Wformat-security -fwrapv
        -fno-strict-overflow -fno-delete-null-pointer-checks -Wvla -Waddress
        -Wattributes -Wdiv-by-zero -Wignored-qualifiers -Wpragmas
        -Wno-overlength-strings -Wno-long-long -Wc++-compat -Wshadow
        -Wno-pointer-sign -Wold-style-definition -Wstrict-prototypes
        -Werror=implicit -fvisibility=hidden -g -O2 -D_FORTIFY_SOURCE=2
        -Wl,--as-needed conftest.c -lm

Notably absent from that command is the flag "-lpcap"; the absence of that flag might explain why it got the error

Comparing with configure.log  of Ubuntu 14.04 building the same version -lpcap is set.

configure:50315: checking whether pcap_findalldevs is present and usable
configure:50336: gcc -std=gnu99 -o conftest  -Wall -Wextra -Wendif-labels -Wpointer-arith -Wformat-security -fwrapv 
-fno-strict-overflow -fno-delete-null-pointer-checks -Wvla -Waddress -Wattributes -Wdiv-by-zero -Wignored-qualifiers 
-Wpragmas -Wno-overlength-strings -Wno-long-long -Wc++-compat -Wshadow -Wno-pointer-sign -Wold-style-definition 
-Wstrict-prototypes -Wlogical-op -Wjump-misses-init -Werror=implicit -fexcess-precision=fast -fvisibility=hidden -g -O2 
-D_FORTIFY_SOURCE=2  -Wl,--as-needed  conftest.c -L/usr/lib/x86_64-linux-gnu  -lpcap -lm  >&5
conftest.c:52:11: warning: function declaration isn't a prototype [-Wstrict-prototypes]
       int main()
        undefined reference to `pcap_findalldevs'

I'm not sure why.  On the failing system there is an old version of autoconf and friends:
ericsson@BuildWireShark3:~/ewireshark/trunk> autoconf --version
autoconf (GNU Autoconf) 2.64
Copyright (C) 2009 Free Software Foundation, Inc.


If something's stored in the garage, you won't find it if you don't look in the garage....

In fact, the only place where it *does* appear to link with libpcap is the test for pcap_open_live().

A quick test of the configure script from a reasonably recent pull of the master branch shows it linking with -lpcap 
in all the tests for various pcap functions, so I'm not sure >why it wouldn't be doing so with your configure script.

Is this a built from a git checkout or from a release tarball?  If it's from a git checkout, what happens if you do a 
"make maintainer-clean", a "./autogen.sh", and then a >"./configure"?

It's from an svn clone of the old svn repo kept up to date with the latest git version. I did check a fresh svn 
checkout. I could try to build the standard Wireshark
From trunk.

Regards
Anders 


___________________________________________________________________________
Sent via:    Wireshark-dev mailing list <wireshark-dev () wireshark org>
Archives:    https://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://www.wireshark.org/mailman/options/wireshark-dev
             mailto:wireshark-dev-request () wireshark org?subject=unsubscribe
___________________________________________________________________________
Sent via:    Wireshark-dev mailing list <wireshark-dev () wireshark org>
Archives:    https://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://www.wireshark.org/mailman/options/wireshark-dev
             mailto:wireshark-dev-request () wireshark org?subject=unsubscribe

Current thread: