Patchwork [2/2] ./configure: add link check for nss-smartcard

login
register
mail settings
Submitter Sergei Trofimovich
Date Jan. 23, 2012, 7:41 a.m.
Message ID <1327304498-11274-2-git-send-email-slyfox@inbox.ru>
Download mbox | patch
Permalink /patch/137290/
State New
Headers show

Comments

Sergei Trofimovich - Jan. 23, 2012, 7:41 a.m.
From: Sergei Trofimovich <slyfox@gentoo.org>

Current './configure --static && make' fails for me:

    LINK  qemu-nbd
    /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lssl3
    /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lsmime3
    /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lnssutil3
    /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lnss3
    /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lplds4
    /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lplc4
    /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lnspr4

My system does not provide static libraries for nss, so
fix autoconfiguration by link checking.

Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
---
 configure |   13 +++++++++----
 1 files changed, 9 insertions(+), 4 deletions(-)
Alon Levy - Jan. 23, 2012, 8:51 a.m.
On Mon, Jan 23, 2012 at 10:41:38AM +0300, Sergei Trofimovich wrote:
> From: Sergei Trofimovich <slyfox@gentoo.org>
> 

Looks good to me.

> Current './configure --static && make' fails for me:
> 
>     LINK  qemu-nbd
>     /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lssl3
>     /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lsmime3
>     /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lnssutil3
>     /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lnss3
>     /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lplds4
>     /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lplc4
>     /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lnspr4
> 
> My system does not provide static libraries for nss, so
> fix autoconfiguration by link checking.
> 
> Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
> ---
>  configure |   13 +++++++++----
>  1 files changed, 9 insertions(+), 4 deletions(-)
> 
> diff --git a/configure b/configure
> index f3dcfba..9ef8422 100755
> --- a/configure
> +++ b/configure
> @@ -2520,11 +2520,16 @@ if test "$smartcard" != "no" ; then
>      smartcard_cflags=""
>      # TODO - what's the minimal nss version we support?
>      if test "$smartcard_nss" != "no"; then
> -        if $pkg_config --atleast-version=3.12.8 nss >/dev/null 2>&1 ; then
> +      cat > $TMPC << EOF
> +#include <pk11pub.h>
> +int main(void) { PK11_FreeSlot(0); return 0; }
> +EOF
> +        smartcard_cflags="-I\$(SRC_PATH)/libcacard"
> +        libcacard_libs=$($pkg_config --libs nss 2>/dev/null)
> +        libcacard_cflags=$($pkg_config --cflags nss 2>/dev/null)
> +        if $pkg_config --atleast-version=3.12.8 nss >/dev/null 2>&1 && \
> +          compile_prog "$smartcard_cflags $libcacard_cflags" "$libcacard_libs"; then
>              smartcard_nss="yes"
> -            smartcard_cflags="-I\$(SRC_PATH)/libcacard"
> -            libcacard_libs=$($pkg_config --libs nss 2>/dev/null)
> -            libcacard_cflags=$($pkg_config --cflags nss 2>/dev/null)
>              QEMU_CFLAGS="$QEMU_CFLAGS $smartcard_cflags $libcacard_cflags"
>              LIBS="$libcacard_libs $LIBS"
>          else
> -- 
> 1.7.3.4
> 
>
Sergei Trofimovich - Jan. 29, 2012, 7:51 a.m.
On Mon, 23 Jan 2012 10:41:38 +0300
Sergei Trofimovich <slyfox@inbox.ru> wrote:

> From: Sergei Trofimovich <slyfox@gentoo.org>
> 
> Current './configure --static && make' fails for me:
> 
>     LINK  qemu-nbd
>     /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lssl3
>     /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lsmime3
>     /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lnssutil3
>     /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lnss3
>     /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lplds4
>     /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lplc4
>     /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lnspr4
> 
> My system does not provide static libraries for nss, so
> fix autoconfiguration by link checking.
> 
> Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
> ---
>  configure |   13 +++++++++----
>  1 files changed, 9 insertions(+), 4 deletions(-)

ping

Patch

diff --git a/configure b/configure
index f3dcfba..9ef8422 100755
--- a/configure
+++ b/configure
@@ -2520,11 +2520,16 @@  if test "$smartcard" != "no" ; then
     smartcard_cflags=""
     # TODO - what's the minimal nss version we support?
     if test "$smartcard_nss" != "no"; then
-        if $pkg_config --atleast-version=3.12.8 nss >/dev/null 2>&1 ; then
+      cat > $TMPC << EOF
+#include <pk11pub.h>
+int main(void) { PK11_FreeSlot(0); return 0; }
+EOF
+        smartcard_cflags="-I\$(SRC_PATH)/libcacard"
+        libcacard_libs=$($pkg_config --libs nss 2>/dev/null)
+        libcacard_cflags=$($pkg_config --cflags nss 2>/dev/null)
+        if $pkg_config --atleast-version=3.12.8 nss >/dev/null 2>&1 && \
+          compile_prog "$smartcard_cflags $libcacard_cflags" "$libcacard_libs"; then
             smartcard_nss="yes"
-            smartcard_cflags="-I\$(SRC_PATH)/libcacard"
-            libcacard_libs=$($pkg_config --libs nss 2>/dev/null)
-            libcacard_cflags=$($pkg_config --cflags nss 2>/dev/null)
             QEMU_CFLAGS="$QEMU_CFLAGS $smartcard_cflags $libcacard_cflags"
             LIBS="$libcacard_libs $LIBS"
         else