diff mbox

libfreefare: Fix build on static

Message ID 1386267434-7144-1-git-send-email-Vincent.Riera@imgtec.com
State Rejected
Headers show

Commit Message

Vicente Olivert Riera Dec. 5, 2013, 6:17 p.m. UTC
This patch makes this package building correctly on static.

Fixes:

   http://autobuild.buildroot.net/results/f09/f09d515f0e7b6d78010f1ce624336ceaef624989/

Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
---
 .../libfreefare-001-fix-static-build.patch         |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)
 create mode 100644 package/libfreefare/libfreefare-001-fix-static-build.patch

Comments

Yann E. MORIN Dec. 5, 2013, 6:51 p.m. UTC | #1
Vicente, All,

On 2013-12-05 18:17 +0000, Vicente Olivert Riera spake thusly:
> This patch makes this package building correctly on static.
> 
> Fixes:
> 
>    http://autobuild.buildroot.net/results/f09/f09d515f0e7b6d78010f1ce624336ceaef624989/
> 
> Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
> ---
>  .../libfreefare-001-fix-static-build.patch         |   10 ++++++++++
>  1 files changed, 10 insertions(+), 0 deletions(-)
>  create mode 100644 package/libfreefare/libfreefare-001-fix-static-build.patch
> 
> diff --git a/package/libfreefare/libfreefare-001-fix-static-build.patch b/package/libfreefare/libfreefare-001-fix-static-build.patch
> new file mode 100644
> index 0000000..31dfa30
> --- /dev/null
> +++ b/package/libfreefare/libfreefare-001-fix-static-build.patch
> @@ -0,0 +1,10 @@
> +--- libfreefare-0.3.4/examples/Makefile.am.orig	2013-12-05 17:08:16.058185440 +0000
> ++++ libfreefare-0.3.4/examples/Makefile.am	2013-12-05 17:14:02.270548090 +0000
> +@@ -2,6 +2,7 @@
> + 
> + AM_CFLAGS = -I. -I$(top_srcdir)/libfreefare @LIBNFC_CFLAGS@
> + AM_LDFLAGS = @LIBNFC_LIBS@
> ++LIBS = -lcrypto -lz

Note that libfreefare itself does not use libz, but libcrypto does.

The reason why -lz is missing is because libfreefare uses AC_CHECK_LIB
to check for libcrypto, when it should use PKG_CHECK_MODULES (which
correctly has" Libs.private: -ldl -lz )

So, if a fix was to be bopushed upstream, it would be to fix libfreefare
to use PKG_CHECK_MODULES, not this.

> + bin_PROGRAMS = mifare-classic-format \
> + 	       mifare-classic-write-ndef \

Regards,
Yann E. MORIN.
Yann E. MORIN Dec. 5, 2013, 8:03 p.m. UTC | #2
Vicente, All,

On 2013-12-05 19:51 +0100, Yann E. MORIN spake thusly:
> On 2013-12-05 18:17 +0000, Vicente Olivert Riera spake thusly:
> > This patch makes this package building correctly on static.
> > 
> > Fixes:
> > 
> >    http://autobuild.buildroot.net/results/f09/f09d515f0e7b6d78010f1ce624336ceaef624989/
> > 
> > Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
> > ---
> >  .../libfreefare-001-fix-static-build.patch         |   10 ++++++++++
> >  1 files changed, 10 insertions(+), 0 deletions(-)
> >  create mode 100644 package/libfreefare/libfreefare-001-fix-static-build.patch
> > 
> > diff --git a/package/libfreefare/libfreefare-001-fix-static-build.patch b/package/libfreefare/libfreefare-001-fix-static-build.patch
> > new file mode 100644
> > index 0000000..31dfa30
> > --- /dev/null
> > +++ b/package/libfreefare/libfreefare-001-fix-static-build.patch
> > @@ -0,0 +1,10 @@
> > +--- libfreefare-0.3.4/examples/Makefile.am.orig	2013-12-05 17:08:16.058185440 +0000
> > ++++ libfreefare-0.3.4/examples/Makefile.am	2013-12-05 17:14:02.270548090 +0000
> > +@@ -2,6 +2,7 @@
> > + 
> > + AM_CFLAGS = -I. -I$(top_srcdir)/libfreefare @LIBNFC_CFLAGS@
> > + AM_LDFLAGS = @LIBNFC_LIBS@
> > ++LIBS = -lcrypto -lz
> 
> Note that libfreefare itself does not use libz, but libcrypto does.
> 
> The reason why -lz is missing is because libfreefare uses AC_CHECK_LIB
> to check for libcrypto, when it should use PKG_CHECK_MODULES (which
> correctly has" Libs.private: -ldl -lz )

Gah. No, it does not. I was looking at my host's libcrypto.pc. The one
we install is missing -lz. So it should be fixed.

Regards,
Yann E. MORIN.
Peter Korsgaard Jan. 9, 2014, 10:27 a.m. UTC | #3
>>>>> "Vicente" == Vicente Olivert Riera <Vincent.Riera@imgtec.com> writes:

 > This patch makes this package building correctly on static.
 > Fixes:

 >    http://autobuild.buildroot.net/results/f09/f09d515f0e7b6d78010f1ce624336ceaef624989/

 > Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
 > ---
 >  .../libfreefare-001-fix-static-build.patch         |   10 ++++++++++
 >  1 files changed, 10 insertions(+), 0 deletions(-)
 >  create mode 100644 package/libfreefare/libfreefare-001-fix-static-build.patch

 > diff --git a/package/libfreefare/libfreefare-001-fix-static-build.patch b/package/libfreefare/libfreefare-001-fix-static-build.patch
 > new file mode 100644
 > index 0000000..31dfa30
 > --- /dev/null
 > +++ b/package/libfreefare/libfreefare-001-fix-static-build.patch
 > @@ -0,0 +1,10 @@
 > +--- libfreefare-0.3.4/examples/Makefile.am.orig	2013-12-05 17:08:16.058185440 +0000
 > ++++ libfreefare-0.3.4/examples/Makefile.am	2013-12-05 17:14:02.270548090 +0000
 > +@@ -2,6 +2,7 @@
 > + 
 > + AM_CFLAGS = -I. -I$(top_srcdir)/libfreefare @LIBNFC_CFLAGS@
 > + AM_LDFLAGS = @LIBNFC_LIBS@
 > ++LIBS = -lcrypto -lz

Thanks, but it's nicer to just pass LIBS= to configure instead of
patching the Makefile.am (and running autoreconf).

As far as I can see from the autobuild error (and local testing), it's
only missing -lz, so I left out -lcrypto.
diff mbox

Patch

diff --git a/package/libfreefare/libfreefare-001-fix-static-build.patch b/package/libfreefare/libfreefare-001-fix-static-build.patch
new file mode 100644
index 0000000..31dfa30
--- /dev/null
+++ b/package/libfreefare/libfreefare-001-fix-static-build.patch
@@ -0,0 +1,10 @@ 
+--- libfreefare-0.3.4/examples/Makefile.am.orig	2013-12-05 17:08:16.058185440 +0000
++++ libfreefare-0.3.4/examples/Makefile.am	2013-12-05 17:14:02.270548090 +0000
+@@ -2,6 +2,7 @@
+ 
+ AM_CFLAGS = -I. -I$(top_srcdir)/libfreefare @LIBNFC_CFLAGS@
+ AM_LDFLAGS = @LIBNFC_LIBS@
++LIBS = -lcrypto -lz
+ 
+ bin_PROGRAMS = mifare-classic-format \
+ 	       mifare-classic-write-ndef \