Patchwork [v2,1/1] ngrep: fix static linking issue with libpcre

login
register
mail settings
Submitter Romain Naour
Date Oct. 9, 2013, 9:54 p.m.
Message ID <5255D08E.3000307@openwide.fr>
Download mbox | patch
Permalink /patch/282081/
State Superseded
Headers show

Comments

Romain Naour - Oct. 9, 2013, 9:54 p.m.
Adding -lpcre in LDFLAGS place the library before object files:
gcc ... -lpcre -L .../sysroot/usr/lib -s -o ngrep ngrep.o -lpcap

Makefile.in is patched to use @LIBS@ for adding -lpcre in the right place.

Fixes:
http://autobuild.buildroot.net/results/684/684a3bed28d13ef5e5156257aade3b9aff32f180

Signed-off-by: Romain Naour <romain.naour@openwide.fr>
---
 package/ngrep/ngrep-1.45-Makefile.in.patch | 23 +++++++++++++++++++++++
 package/ngrep/ngrep.mk                     |  2 +-
 2 files changed, 24 insertions(+), 1 deletion(-)
 create mode 100644 package/ngrep/ngrep-1.45-Makefile.in.patch
Thomas Petazzoni - Nov. 1, 2013, 4:59 p.m.
Dear Romain Naour,

On Wed, 09 Oct 2013 23:54:22 +0200, Romain Naour wrote:
> 
> Adding -lpcre in LDFLAGS place the library before object files:
> gcc ... -lpcre -L .../sysroot/usr/lib -s -o ngrep ngrep.o -lpcap
> 
> Makefile.in is patched to use @LIBS@ for adding -lpcre in the right place.
> 
> Fixes:
> http://autobuild.buildroot.net/results/684/684a3bed28d13ef5e5156257aade3b9aff32f180
> 
> Signed-off-by: Romain Naour <romain.naour@openwide.fr>

Thanks, but this patch no longer applies on top of master, and more
importantly, the ngrep-1.45-Makefile.in.patch doesn't apply to the
ngrep sources. Could you rename the ngrep patches to use numbers, i.e
ngrep-01-<foo>.patch, and use a more descriptive name than
ngrep-1.45-Makefile.in.patch?

(Should be done in two patches: one renaming the existing patches, one
adding the pcre static link fix).

Thanks a lot!

Thomas
Romain Naour - Nov. 2, 2013, 3:46 p.m.
Le 01/11/2013 17:59, Thomas Petazzoni a écrit :
> Dear Romain Naour,
>
> On Wed, 09 Oct 2013 23:54:22 +0200, Romain Naour wrote:
>> Adding -lpcre in LDFLAGS place the library before object files:
>> gcc ... -lpcre -L .../sysroot/usr/lib -s -o ngrep ngrep.o -lpcap
>>
>> Makefile.in is patched to use @LIBS@ for adding -lpcre in the right place.
>>
>> Fixes:
>> http://autobuild.buildroot.net/results/684/684a3bed28d13ef5e5156257aade3b9aff32f180
>>
>> Signed-off-by: Romain Naour <romain.naour@openwide.fr>
> Thanks, but this patch no longer applies on top of master, and more
> importantly, the ngrep-1.45-Makefile.in.patch doesn't apply to the
> ngrep sources. Could you rename the ngrep patches to use numbers, i.e
> ngrep-01-<foo>.patch, and use a more descriptive name than
> ngrep-1.45-Makefile.in.patch?
>
> (Should be done in two patches: one renaming the existing patches, one
> adding the pcre static link fix).
>
> Thanks a lot!
>
> Thomas
Hi Thomas,

Ok, I'll send two patches to fix this issue.

Best regards,
Romain

Patch

diff --git a/package/ngrep/ngrep-1.45-Makefile.in.patch b/package/ngrep/ngrep-1.45-Makefile.in.patch
new file mode 100644
index 0000000..698e001
--- /dev/null
+++ b/package/ngrep/ngrep-1.45-Makefile.in.patch
@@ -0,0 +1,23 @@ 
+Use LIBS for adding libraries.
+
+Signed-off-by: Romain Naour <romain.naour@openwide.fr>
+---
+ Makefile.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index 2ae4506..3eefc0a 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -11,7 +11,7 @@ CFLAGS=@CFLAGS@ -D@OS@ @DEFS@ @EXTRA_DEFINES@
+ INCLUDES=-I@srcdir@ @PCAP_INCLUDE@ @EXTRA_INCLUDES@
+
+ LDFLAGS=@LDFLAGS@ @PCAP_LINK@
+-LIBS=-lpcap @EXTRA_LIBS@
++LIBS=@LIBS@ @EXTRA_LIBS@
+
+ STRIPFLAG=@STRIPFLAG@
+
+--
+1.8.4
+
diff --git a/package/ngrep/ngrep.mk b/package/ngrep/ngrep.mk
index 99b8f46..0dc6a36 100644
--- a/package/ngrep/ngrep.mk
+++ b/package/ngrep/ngrep.mk
@@ -8,7 +8,7 @@  NGREP_VERSION = 1.45
 NGREP_SOURCE = ngrep-$(NGREP_VERSION).tar.bz2
 NGREP_SITE = http://downloads.sourceforge.net/project/ngrep/ngrep/$(NGREP_VERSION)
 NGREP_INSTALL_STAGING = YES
-NGREP_CONF_ENV = LDFLAGS="-lpcre"
+NGREP_CONF_ENV = LIBS="-lpcre"
 NGREP_CONF_OPT =  \
 	--with-pcap-includes=$(STAGING_DIR)/usr/include \
 	--enable-pcre \