Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 1/2] package/sngrep: add libgcrypt missing dependencies
@ 2017-05-20 16:27 Romain Naour
  2017-05-20 16:27 ` [Buildroot] [PATCH 2/2] package/sngrep: fix static build with gnutls Romain Naour
  2017-05-23 14:19 ` [Buildroot] [PATCH 1/2] package/sngrep: add libgcrypt missing dependencies Thomas Petazzoni
  0 siblings, 2 replies; 12+ messages in thread
From: Romain Naour @ 2017-05-20 16:27 UTC (permalink / raw)
  To: buildroot

Even if libgcrypt is selected at Kconfig level, it's missing from
Makefile level.

Fixes:
http://autobuild.buildroot.net/results/36c/36c28e7e49b31ed2398a67db2e9b08e3aad5a3ee

Signed-off-by: Romain Naour <romain.naour@gmail.com>
Cc: Adam Duskett <aduskett@gmail.com>
---
 package/sngrep/sngrep.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package/sngrep/sngrep.mk b/package/sngrep/sngrep.mk
index 74b05b1..7ae271f 100644
--- a/package/sngrep/sngrep.mk
+++ b/package/sngrep/sngrep.mk
@@ -23,7 +23,7 @@ SNGREP_DEPENDENCIES += openssl
 SNGREP_CONF_OPTS += --with-openssl --without-gnutls
 # gnutls support also requires libgcrypt
 else ifeq ($(BR2_PACKAGE_GNUTLS)$(BR2_PACKAGE_LIBGCRYPT),yy)
-SNGREP_DEPENDENCIES += gnutls
+SNGREP_DEPENDENCIES += gnutls libgcrypt
 SNGREP_CONF_OPTS += --with-gnutls --without-openssl
 else
 SNGREP_CONF_OPTS += --without-gnutls --without-openssl
-- 
2.9.4

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [Buildroot] [PATCH 2/2] package/sngrep: fix static build with gnutls
  2017-05-20 16:27 [Buildroot] [PATCH 1/2] package/sngrep: add libgcrypt missing dependencies Romain Naour
@ 2017-05-20 16:27 ` Romain Naour
  2017-05-23 14:27   ` Thomas Petazzoni
  2017-05-23 14:19 ` [Buildroot] [PATCH 1/2] package/sngrep: add libgcrypt missing dependencies Thomas Petazzoni
  1 sibling, 1 reply; 12+ messages in thread
From: Romain Naour @ 2017-05-20 16:27 UTC (permalink / raw)
  To: buildroot

Fixes:
http://autobuild.buildroot.net/results/f7f/f7fb42d3742f6f01000a0d181e0c785640284405

Signed-off-by: Romain Naour <romain.naour@gmail.com>
Cc: Adam Duskett <aduskett@gmail.com>
---
 ...re.ac-switch-to-pkg-config-to-find-gnutls.patch | 60 +++++++++++++++++++
 ...e-libgcrypt-config-to-link-with-gpg-error.patch | 69 ++++++++++++++++++++++
 package/sngrep/sngrep.mk                           |  3 +-
 3 files changed, 131 insertions(+), 1 deletion(-)
 create mode 100644 package/sngrep/0003-configure.ac-switch-to-pkg-config-to-find-gnutls.patch
 create mode 100644 package/sngrep/0004-use-libgcrypt-config-to-link-with-gpg-error.patch

diff --git a/package/sngrep/0003-configure.ac-switch-to-pkg-config-to-find-gnutls.patch b/package/sngrep/0003-configure.ac-switch-to-pkg-config-to-find-gnutls.patch
new file mode 100644
index 0000000..67b21a2
--- /dev/null
+++ b/package/sngrep/0003-configure.ac-switch-to-pkg-config-to-find-gnutls.patch
@@ -0,0 +1,60 @@
+From b0428b0279b03d88520b79b651f692d9aea65f8c Mon Sep 17 00:00:00 2001
+From: Romain Naour <romain.naour@gmail.com>
+Date: Sat, 20 May 2017 15:00:16 +0200
+Subject: [PATCH] configure.ac: switch to pkg-config to find gnutls.
+
+Like for openssl in patch [1] and for the same reason,
+use pkg-config to find gnutls.
+
+gnutls can be linked with :
+    -lintl -lgmp -lunistring -lhogweed -lnettle -ltasn1 -lz
+
+Fixes:
+http://autobuild.buildroot.net/results/f7f/f7fb42d3742f6f01000a0d181e0c785640284405
+
+Upstream: pending [2]
+
+[1] 2563b016ae16cb8cd39d7181917699ae82772296
+[2] https://github.com/irontec/sngrep/pull/188
+
+Signed-off-by: Romain Naour <romain.naour@gmail.com>
+---
+ configure.ac    | 5 +++++
+ src/Makefile.am | 2 ++
+ 2 files changed, 7 insertions(+)
+
+diff --git a/configure.ac b/configure.ac
+index 0255ad2..09271b2 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -106,9 +106,14 @@ AC_ARG_WITH([gnutls],
+ )
+ 
+ AS_IF([test "x$WITH_GNUTLS" == "xyes"], [
++
++    m4_ifdef([PKG_CHECK_MODULES], [
++        PKG_CHECK_MODULES([LIBGNUTLS], [gnutls])
++    ], [
+ 	AC_CHECK_LIB([gnutls], [gnutls_init], [], [
+ 	    AC_MSG_ERROR([ You need to have gnutls installed to compile sngrep])
+ 	])
++    ])
+ 
+ 	AC_CHECK_LIB([gcrypt], [gcry_md_map_name], [], [
+ 	    AC_MSG_ERROR([ You need to have libgcrypt installed to compile sngrep])
+diff --git a/src/Makefile.am b/src/Makefile.am
+index 3a471b7..e5b34fe 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -8,6 +8,8 @@ sngrep_SOURCES+=capture_eep.c
+ endif
+ if WITH_GNUTLS
+ sngrep_SOURCES+=capture_gnutls.c
++sngrep_CFLAGS+=$(LIBGNUTLS_CFLAGS)
++sngrep_LDADD+=$(LIBGNUTLS_LIBS)
+ endif
+ if WITH_OPENSSL
+ sngrep_SOURCES+=capture_openssl.c
+-- 
+2.9.4
+
diff --git a/package/sngrep/0004-use-libgcrypt-config-to-link-with-gpg-error.patch b/package/sngrep/0004-use-libgcrypt-config-to-link-with-gpg-error.patch
new file mode 100644
index 0000000..92dc8d1
--- /dev/null
+++ b/package/sngrep/0004-use-libgcrypt-config-to-link-with-gpg-error.patch
@@ -0,0 +1,69 @@
+From 654379f683bf846ace0b69a1e78864ba24462f78 Mon Sep 17 00:00:00 2001
+From: Romain Naour <romain.naour@gmail.com>
+Date: Sat, 20 May 2017 17:00:56 +0200
+Subject: [PATCH] use libgcrypt-config to link with gpg-error
+
+gcrypt is linked with libgpg-error, use libgcrypt-config to find
+this dependency. (libgcrypt doesn't provide a .pc file)
+
+libgcrypt-config --libs
+[...] -lgcrypt -lgpg-error
+
+Upstream: pending [1]
+
+[1] https://github.com/irontec/sngrep/pull/188
+
+Signed-off-by: Romain Naour <romain.naour@gmail.com>
+---
+ configure.ac    | 18 +++++++++++++++---
+ src/Makefile.am |  4 ++--
+ 2 files changed, 17 insertions(+), 5 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 09271b2..fe28cef 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -115,10 +115,22 @@ AS_IF([test "x$WITH_GNUTLS" == "xyes"], [
+ 	])
+     ])
+ 
+-	AC_CHECK_LIB([gcrypt], [gcry_md_map_name], [], [
+-	    AC_MSG_ERROR([ You need to have libgcrypt installed to compile sngrep])
+-	])
++	AC_PATH_PROG([LIBGCRYPT_CONFIG],[libgcrypt-config],[no])
++	if test "x${LIBGCRYPT_CONFIG}" = "xno"; then
++	    AC_MSG_FAILURE([libgcrypt-config not found in PATH])
++	fi
++	AC_CHECK_LIB(
++		[gcrypt],
++		[gcry_md_map_name],
++		[LIBGCRYPT_CFLAGS="`${LIBGCRYPT_CONFIG} --cflags`"
++		LIBGCRYPT_LIBS="`${LIBGCRYPT_CONFIG} --libs`"
++		],
++		[AC_MSG_ERROR([ You need to have libgcrypt installed to compile sngrep])],
++		[`${LIBGCRYPT_CONFIG} --libs --cflags`]
++		)
+ 	AC_DEFINE([WITH_GNUTLS],[],[Compile With GnuTLS compatibility])
++	AC_SUBST(LIBGCRYPT_CFLAGS)
++	AC_SUBST(LIBGCRYPT_LIBS)
+ ], [])
+ 
+ ####
+diff --git a/src/Makefile.am b/src/Makefile.am
+index e5b34fe..b338273 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -8,8 +8,8 @@ sngrep_SOURCES+=capture_eep.c
+ endif
+ if WITH_GNUTLS
+ sngrep_SOURCES+=capture_gnutls.c
+-sngrep_CFLAGS+=$(LIBGNUTLS_CFLAGS)
+-sngrep_LDADD+=$(LIBGNUTLS_LIBS)
++sngrep_CFLAGS+=$(LIBGNUTLS_CFLAGS) $(LIBGCRYPT_CFLAGS)
++sngrep_LDADD+=$(LIBGNUTLS_LIBS) $(LIBGCRYPT_LIBS)
+ endif
+ if WITH_OPENSSL
+ sngrep_SOURCES+=capture_openssl.c
+-- 
+2.9.4
+
diff --git a/package/sngrep/sngrep.mk b/package/sngrep/sngrep.mk
index 7ae271f..809c5db 100644
--- a/package/sngrep/sngrep.mk
+++ b/package/sngrep/sngrep.mk
@@ -12,7 +12,8 @@ SNGREP_AUTORECONF = YES
 SNGREP_DEPENDENCIES = libpcap ncurses host-pkgconf
 
 SNGREP_CONF_ENV += \
-	$(if $(BR2_STATIC_LIBS),LIBS="`$(STAGING_DIR)/usr/bin/pcap-config --static --libs`")
+	$(if $(BR2_STATIC_LIBS),LIBS="`$(STAGING_DIR)/usr/bin/pcap-config --static --libs`") \
+	LIBGCRYPT_CONFIG=$(STAGING_DIR)/usr/bin/libgcrypt-config
 
 # our ncurses wchar support is not properly detected
 SNGREP_CONF_OPTS += --disable-unicode
-- 
2.9.4

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [Buildroot] [PATCH 1/2] package/sngrep: add libgcrypt missing dependencies
  2017-05-20 16:27 [Buildroot] [PATCH 1/2] package/sngrep: add libgcrypt missing dependencies Romain Naour
  2017-05-20 16:27 ` [Buildroot] [PATCH 2/2] package/sngrep: fix static build with gnutls Romain Naour
@ 2017-05-23 14:19 ` Thomas Petazzoni
  2017-05-23 21:09   ` Romain Naour
  1 sibling, 1 reply; 12+ messages in thread
From: Thomas Petazzoni @ 2017-05-23 14:19 UTC (permalink / raw)
  To: buildroot

Hello,

On Sat, 20 May 2017 18:27:50 +0200, Romain Naour wrote:
> Even if libgcrypt is selected at Kconfig level, it's missing from
> Makefile level.
> 
> Fixes:
> http://autobuild.buildroot.net/results/36c/36c28e7e49b31ed2398a67db2e9b08e3aad5a3ee

Could you explain how this build failure apparently related to ncurses
has something to do with the gnutls/libgcrypt issue ?

The patch itself looks good, but the relation with this particular
build failure isn't really clear. Could you clarify?

Thanks!

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Buildroot] [PATCH 2/2] package/sngrep: fix static build with gnutls
  2017-05-20 16:27 ` [Buildroot] [PATCH 2/2] package/sngrep: fix static build with gnutls Romain Naour
@ 2017-05-23 14:27   ` Thomas Petazzoni
  2017-05-23 21:20     ` Romain Naour
  0 siblings, 1 reply; 12+ messages in thread
From: Thomas Petazzoni @ 2017-05-23 14:27 UTC (permalink / raw)
  To: buildroot

Hello,

On Sat, 20 May 2017 18:27:51 +0200, Romain Naour wrote:

> diff --git a/package/sngrep/0003-configure.ac-switch-to-pkg-config-to-find-gnutls.patch b/package/sngrep/0003-configure.ac-switch-to-pkg-config-to-find-gnutls.patch
> new file mode 100644
> index 0000000..67b21a2
> --- /dev/null
> +++ b/package/sngrep/0003-configure.ac-switch-to-pkg-config-to-find-gnutls.patch
> @@ -0,0 +1,60 @@
> +From b0428b0279b03d88520b79b651f692d9aea65f8c Mon Sep 17 00:00:00 2001
> +From: Romain Naour <romain.naour@gmail.com>
> +Date: Sat, 20 May 2017 15:00:16 +0200
> +Subject: [PATCH] configure.ac: switch to pkg-config to find gnutls.

This patch looks good, but the description could use some improvement.

> +Like for openssl in patch [1] and for the same reason,
> +use pkg-config to find gnutls.
> +
> +gnutls can be linked with :
> +    -lintl -lgmp -lunistring -lhogweed -lnettle -ltasn1 -lz

And ?

> ++	AC_PATH_PROG([LIBGCRYPT_CONFIG],[libgcrypt-config],[no])
> ++	if test "x${LIBGCRYPT_CONFIG}" = "xno"; then
> ++	    AC_MSG_FAILURE([libgcrypt-config not found in PATH])

Use AC_MSG_ERROR() here.

> ++	fi
> ++	AC_CHECK_LIB(
> ++		[gcrypt],
> ++		[gcry_md_map_name],
> ++		[LIBGCRYPT_CFLAGS="`${LIBGCRYPT_CONFIG} --cflags`"
> ++		LIBGCRYPT_LIBS="`${LIBGCRYPT_CONFIG} --libs`"
> ++		],
> ++		[AC_MSG_ERROR([ You need to have libgcrypt installed to compile sngrep])],
> ++		[`${LIBGCRYPT_CONFIG} --libs --cflags`]
> ++		)

I don't understand what you're doing here. What about instead:

 - If LIBGCRYPT_CONFIG != no, use it to assign LIBGCRYPT_{CFLAGS,LIBS}

 - If LIBGCRYPT_CONFIG == no, fall back to AC_CHECK_LIB

What do you think ?

Thanks,

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Buildroot] [PATCH 1/2] package/sngrep: add libgcrypt missing dependencies
  2017-05-23 14:19 ` [Buildroot] [PATCH 1/2] package/sngrep: add libgcrypt missing dependencies Thomas Petazzoni
@ 2017-05-23 21:09   ` Romain Naour
  2017-05-24  6:44     ` Thomas Petazzoni
  0 siblings, 1 reply; 12+ messages in thread
From: Romain Naour @ 2017-05-23 21:09 UTC (permalink / raw)
  To: buildroot

Le 23/05/2017 ? 16:19, Thomas Petazzoni a ?crit :
> Hello,
> 
> On Sat, 20 May 2017 18:27:50 +0200, Romain Naour wrote:
>> Even if libgcrypt is selected at Kconfig level, it's missing from
>> Makefile level.
>>
>> Fixes:
>> http://autobuild.buildroot.net/results/36c/36c28e7e49b31ed2398a67db2e9b08e3aad5a3ee
> 
> Could you explain how this build failure apparently related to ncurses
> has something to do with the gnutls/libgcrypt issue ?
> 
> The patch itself looks good, but the relation with this particular
> build failure isn't really clear. Could you clarify?

Sorry,

I was looking for this kind of build failure with a glibc based system:

checking for ncurses.h... yes
checking for initscr in -lncurses... yes
checking for new_panel in -lpanel... yes
checking for new_form in -lform... yes
checking for new_item in -lmenu... yes
checking for gnutls_init in -lgnutls... yes
checking for gcry_md_map_name in -lgcrypt... no
configure: error:  You need to have libgcrypt installed to compile sngrep

I just read what I wanted to read in the autobuilder reference...

It's weird that the autobuilder didn't catch it.

Best regards,
Romain

> 
> Thanks!
> 
> Thomas
> 

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Buildroot] [PATCH 2/2] package/sngrep: fix static build with gnutls
  2017-05-23 14:27   ` Thomas Petazzoni
@ 2017-05-23 21:20     ` Romain Naour
  2017-05-24  6:47       ` Thomas Petazzoni
  0 siblings, 1 reply; 12+ messages in thread
From: Romain Naour @ 2017-05-23 21:20 UTC (permalink / raw)
  To: buildroot

Le 23/05/2017 ? 16:27, Thomas Petazzoni a ?crit :
> Hello,
> 
> On Sat, 20 May 2017 18:27:51 +0200, Romain Naour wrote:
> 
>> diff --git a/package/sngrep/0003-configure.ac-switch-to-pkg-config-to-find-gnutls.patch b/package/sngrep/0003-configure.ac-switch-to-pkg-config-to-find-gnutls.patch
>> new file mode 100644
>> index 0000000..67b21a2
>> --- /dev/null
>> +++ b/package/sngrep/0003-configure.ac-switch-to-pkg-config-to-find-gnutls.patch
>> @@ -0,0 +1,60 @@
>> +From b0428b0279b03d88520b79b651f692d9aea65f8c Mon Sep 17 00:00:00 2001
>> +From: Romain Naour <romain.naour@gmail.com>
>> +Date: Sat, 20 May 2017 15:00:16 +0200
>> +Subject: [PATCH] configure.ac: switch to pkg-config to find gnutls.
> 
> This patch looks good, but the description could use some improvement.
> 
>> +Like for openssl in patch [1] and for the same reason,
>> +use pkg-config to find gnutls.
>> +
>> +gnutls can be linked with :
>> +    -lintl -lgmp -lunistring -lhogweed -lnettle -ltasn1 -lz
> 
> And ?
> 
>> ++	AC_PATH_PROG([LIBGCRYPT_CONFIG],[libgcrypt-config],[no])
>> ++	if test "x${LIBGCRYPT_CONFIG}" = "xno"; then
>> ++	    AC_MSG_FAILURE([libgcrypt-config not found in PATH])
> 
> Use AC_MSG_ERROR() here.
> 
>> ++	fi
>> ++	AC_CHECK_LIB(
>> ++		[gcrypt],
>> ++		[gcry_md_map_name],
>> ++		[LIBGCRYPT_CFLAGS="`${LIBGCRYPT_CONFIG} --cflags`"
>> ++		LIBGCRYPT_LIBS="`${LIBGCRYPT_CONFIG} --libs`"
>> ++		],
>> ++		[AC_MSG_ERROR([ You need to have libgcrypt installed to compile sngrep])],
>> ++		[`${LIBGCRYPT_CONFIG} --libs --cflags`]
>> ++		)
> 
> I don't understand what you're doing here. What about instead:
> 
>  - If LIBGCRYPT_CONFIG != no, use it to assign LIBGCRYPT_{CFLAGS,LIBS}
> 
>  - If LIBGCRYPT_CONFIG == no, fall back to AC_CHECK_LIB
> 
> What do you think ?

I think this patch is not necessary anymore since gnutls shouldn't be linked
statically, see [1].

The code use __attribute__((constructor)) and __attribute__((destructor)) to
call constructor/desctructor when a shared library is loaded.
Constructor/desctructor are not used when a static library is used (except when
if -Wl,--whole-archive -lgnutls -Wno-whole-archive is used, not tested).

Even if gnutls initialization (_gnutls_global_init()) may be called manually,
the maintainer said it's not supported.

So we should add !BR2_STATIC_LIBS for gnutls package ?
Doing so, it will avoid all static linking issues with gnutls (taskd, ffmpeg,
sngrep...)

Best regards,
Romain

[1]  https://gitlab.com/gnutls/gnutls/issues/203

> 
> Thanks,
> 
> Thomas
> 

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Buildroot] [PATCH 1/2] package/sngrep: add libgcrypt missing dependencies
  2017-05-23 21:09   ` Romain Naour
@ 2017-05-24  6:44     ` Thomas Petazzoni
  2017-05-24 19:41       ` Romain Naour
  0 siblings, 1 reply; 12+ messages in thread
From: Thomas Petazzoni @ 2017-05-24  6:44 UTC (permalink / raw)
  To: buildroot

Hello,

On Tue, 23 May 2017 23:09:19 +0200, Romain Naour wrote:

> I was looking for this kind of build failure with a glibc based system:
> 
> checking for ncurses.h... yes
> checking for initscr in -lncurses... yes
> checking for new_panel in -lpanel... yes
> checking for new_form in -lform... yes
> checking for new_item in -lmenu... yes
> checking for gnutls_init in -lgnutls... yes
> checking for gcry_md_map_name in -lgcrypt... no
> configure: error:  You need to have libgcrypt installed to compile sngrep
> 
> I just read what I wanted to read in the autobuilder reference...
> 
> It's weird that the autobuilder didn't catch it.

So in other words, there are no autobuilder reference for the build
failure you are fixing? If so, could you add in the commit log a
minimal defconfig that exhibits the issue?

Thanks!

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Buildroot] [PATCH 2/2] package/sngrep: fix static build with gnutls
  2017-05-23 21:20     ` Romain Naour
@ 2017-05-24  6:47       ` Thomas Petazzoni
  2017-05-24 21:54         ` Romain Naour
  0 siblings, 1 reply; 12+ messages in thread
From: Thomas Petazzoni @ 2017-05-24  6:47 UTC (permalink / raw)
  To: buildroot

Hello,

On Tue, 23 May 2017 23:20:14 +0200, Romain Naour wrote:

> I think this patch is not necessary anymore since gnutls shouldn't be linked
> statically, see [1].
> 
> The code use __attribute__((constructor)) and __attribute__((destructor)) to
> call constructor/desctructor when a shared library is loaded.
> Constructor/desctructor are not used when a static library is used (except when
> if -Wl,--whole-archive -lgnutls -Wno-whole-archive is used, not tested).
> 
> Even if gnutls initialization (_gnutls_global_init()) may be called manually,
> the maintainer said it's not supported.
> 
> So we should add !BR2_STATIC_LIBS for gnutls package ?
> Doing so, it will avoid all static linking issues with gnutls (taskd, ffmpeg,
> sngrep...)

Yes, I believe we should add !BR2_STATIC_LIBS, of course propagated to
all reverse dependencies (but there are not too many of them).

A side question is: is there a way to detect/error out when some code
is using this constructor/destructor mechanism in a way that doesn't
work for static linking? It would be useful to check if other packages
are affected.

Thanks!

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Buildroot] [PATCH 1/2] package/sngrep: add libgcrypt missing dependencies
  2017-05-24  6:44     ` Thomas Petazzoni
@ 2017-05-24 19:41       ` Romain Naour
  0 siblings, 0 replies; 12+ messages in thread
From: Romain Naour @ 2017-05-24 19:41 UTC (permalink / raw)
  To: buildroot

Hi Thomas,

Le 24/05/2017 ? 08:44, Thomas Petazzoni a ?crit :
> Hello,
> 
> On Tue, 23 May 2017 23:09:19 +0200, Romain Naour wrote:
> 
>> I was looking for this kind of build failure with a glibc based system:
>>
>> checking for ncurses.h... yes
>> checking for initscr in -lncurses... yes
>> checking for new_panel in -lpanel... yes
>> checking for new_form in -lform... yes
>> checking for new_item in -lmenu... yes
>> checking for gnutls_init in -lgnutls... yes
>> checking for gcry_md_map_name in -lgcrypt... no
>> configure: error:  You need to have libgcrypt installed to compile sngrep
>>
>> I just read what I wanted to read in the autobuilder reference...
>>
>> It's weird that the autobuilder didn't catch it.
> 
> So in other words, there are no autobuilder reference for the build
> failure you are fixing? If so, could you add in the commit log a
> minimal defconfig that exhibits the issue?

Exactly...

Here the minimal defconfig:

BR2_arm=y
BR2_cortex_a9=y
BR2_ARM_ENABLE_NEON=y
BR2_ARM_ENABLE_VFP=y
BR2_TOOLCHAIN_EXTERNAL=y
BR2_PACKAGE_GNUTLS=y
BR2_PACKAGE_LIBGCRYPT=y
BR2_PACKAGE_SNGREP=y

Best regards,
Romain

> 
> Thanks!
> 
> Thomas
> 

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Buildroot] [PATCH 2/2] package/sngrep: fix static build with gnutls
  2017-05-24  6:47       ` Thomas Petazzoni
@ 2017-05-24 21:54         ` Romain Naour
  2017-05-25  9:02           ` Bernd Kuhls
  0 siblings, 1 reply; 12+ messages in thread
From: Romain Naour @ 2017-05-24 21:54 UTC (permalink / raw)
  To: buildroot

Hi Thomas,

Le 24/05/2017 ? 08:47, Thomas Petazzoni a ?crit :
> Hello,
> 
> On Tue, 23 May 2017 23:20:14 +0200, Romain Naour wrote:
> 
>> I think this patch is not necessary anymore since gnutls shouldn't be linked
>> statically, see [1].
>>
>> The code use __attribute__((constructor)) and __attribute__((destructor)) to
>> call constructor/desctructor when a shared library is loaded.
>> Constructor/desctructor are not used when a static library is used (except when
>> if -Wl,--whole-archive -lgnutls -Wno-whole-archive is used, not tested).
>>
>> Even if gnutls initialization (_gnutls_global_init()) may be called manually,
>> the maintainer said it's not supported.
>>
>> So we should add !BR2_STATIC_LIBS for gnutls package ?
>> Doing so, it will avoid all static linking issues with gnutls (taskd, ffmpeg,
>> sngrep...)
> 
> Yes, I believe we should add !BR2_STATIC_LIBS, of course propagated to
> all reverse dependencies (but there are not too many of them).

Ok, I'll do it.

> A side question is: is there a way to detect/error out when some code
> is using this constructor/destructor mechanism in a way that doesn't
> work for static linking? It would be useful to check if other packages
> are affected.

I don't know, I don't think so...

Now the gnutls script warn about static linking:
https://gitlab.com/gnutls/gnutls/commit/6b748886799f88ddee9721dba4fc4d52854832ae

Best regards,
Romain

> 
> Thanks!
> 
> Thomas
> 

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Buildroot] [PATCH 2/2] package/sngrep: fix static build with gnutls
  2017-05-24 21:54         ` Romain Naour
@ 2017-05-25  9:02           ` Bernd Kuhls
  2017-05-25 16:32             ` Romain Naour
  0 siblings, 1 reply; 12+ messages in thread
From: Bernd Kuhls @ 2017-05-25  9:02 UTC (permalink / raw)
  To: buildroot

Am Wed, 24 May 2017 23:54:03 +0200 schrieb Romain Naour:

>> Yes, I believe we should add !BR2_STATIC_LIBS, of course propagated to
>> all reverse dependencies (but there are not too many of them).
> 
> Ok, I'll do it.

Hi,

patch done: http://patchwork.ozlabs.org/patch/766903/

Regards, Bernd

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Buildroot] [PATCH 2/2] package/sngrep: fix static build with gnutls
  2017-05-25  9:02           ` Bernd Kuhls
@ 2017-05-25 16:32             ` Romain Naour
  0 siblings, 0 replies; 12+ messages in thread
From: Romain Naour @ 2017-05-25 16:32 UTC (permalink / raw)
  To: buildroot

Hi Bernd,

Le 25/05/2017 ? 11:02, Bernd Kuhls a ?crit :
> Am Wed, 24 May 2017 23:54:03 +0200 schrieb Romain Naour:
> 
>>> Yes, I believe we should add !BR2_STATIC_LIBS, of course propagated to
>>> all reverse dependencies (but there are not too many of them).
>>
>> Ok, I'll do it.
> 
> Hi,
> 
> patch done: http://patchwork.ozlabs.org/patch/766903/

Thanks for the help!
It was too late to finish my own patch yesterday...

Your patch is almost good but some option comments are missing.

Also, I suggest to add --disable-static in GNUTLS_CONF_OPTS unconditionally to
avoid linking with libgnutls.a even if libgnutls.so is present
(BR2_SHARED_STATIC_LIBS case).

I'll resend an updated version, I'm keeping you as original author.

Best regards,
Romain

> 
> Regards, Bernd
> 
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
> 

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2017-05-25 16:32 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-05-20 16:27 [Buildroot] [PATCH 1/2] package/sngrep: add libgcrypt missing dependencies Romain Naour
2017-05-20 16:27 ` [Buildroot] [PATCH 2/2] package/sngrep: fix static build with gnutls Romain Naour
2017-05-23 14:27   ` Thomas Petazzoni
2017-05-23 21:20     ` Romain Naour
2017-05-24  6:47       ` Thomas Petazzoni
2017-05-24 21:54         ` Romain Naour
2017-05-25  9:02           ` Bernd Kuhls
2017-05-25 16:32             ` Romain Naour
2017-05-23 14:19 ` [Buildroot] [PATCH 1/2] package/sngrep: add libgcrypt missing dependencies Thomas Petazzoni
2017-05-23 21:09   ` Romain Naour
2017-05-24  6:44     ` Thomas Petazzoni
2017-05-24 19:41       ` Romain Naour

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox