Patchwork configure: fix libsmartcard_nss compile check

login
register
mail settings
Submitter Alexander Graf
Date July 9, 2012, 12:06 p.m.
Message ID <1341835600-2620-1-git-send-email-agraf@suse.de>
Download mbox | patch
Permalink /patch/169836/
State New
Headers show

Comments

Alexander Graf - July 9, 2012, 12:06 p.m.
When just calling ./configure on my box, I always ran into the same issue:

In file included from /usr/include/nss3/pkcs11t.h:1780,
                 from /usr/include/nss3/keythi.h:41,
                 from /usr/include/nss3/keyt.h:41,
                 from /usr/include/nss3/pk11pub.h:43,
                 from libcacard/vcard_emul_nss.c:21:
/usr/include/nss3/pkcs11n.h:365:26: error: "__GNUC_MINOR" is not defined

This is a bug in nss3. But why didn't configure bail out of the feature
if it doesn't even compile? Because this really is just a warning, not an
error. But configure builds its test program without -Werror, while we do
build our sources with -Werror by default.

Force the check to also use -Werror. This fixes the default build for me again.

Signed-off-by: Alexander Graf <agraf@suse.de>
---
 configure |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)
Andreas Färber - July 9, 2012, 1:26 p.m.
Am 09.07.2012 14:06, schrieb Alexander Graf:
> When just calling ./configure on my box, I always ran into the same issue:
> 
> In file included from /usr/include/nss3/pkcs11t.h:1780,
>                  from /usr/include/nss3/keythi.h:41,
>                  from /usr/include/nss3/keyt.h:41,
>                  from /usr/include/nss3/pk11pub.h:43,
>                  from libcacard/vcard_emul_nss.c:21:
> /usr/include/nss3/pkcs11n.h:365:26: error: "__GNUC_MINOR" is not defined
> 
> This is a bug in nss3. But why didn't configure bail out of the feature
> if it doesn't even compile? Because this really is just a warning, not an
> error. But configure builds its test program without -Werror, while we do
> build our sources with -Werror by default.
> 
> Force the check to also use -Werror. This fixes the default build for me again.
> 
> Signed-off-by: Alexander Graf <agraf@suse.de>
> ---
>  configure |    4 ++++
>  1 files changed, 4 insertions(+), 0 deletions(-)
> 
> diff --git a/configure b/configure
> index 9f071b7..d28a909 100755
> --- a/configure
> +++ b/configure
> @@ -2642,6 +2642,10 @@ EOF
>          smartcard_cflags="-I\$(SRC_PATH)/libcacard"
>          libcacard_libs="$($pkg_config --libs nss 2>/dev/null) $glib_libs"
>          libcacard_cflags="$($pkg_config --cflags nss 2>/dev/null) $glib_cflags"
> +        # nss < 3.13.3 has a nasty warning that can trigger compile failures
> +        # with -Werror. Unfortunately, we don't know if -Werror is goint to

"going"

> +        # be used here yet, so let's just assume it to be safe.

Maybe you can just temporarily supply it to compile_prog below then?

Andreas

> +        libcacard_cflags="$libcacard_cflags -Werror"
>          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"
>
Gerd Hoffmann - July 9, 2012, 1:29 p.m.
On 07/09/12 14:06, Alexander Graf wrote:
> When just calling ./configure on my box, I always ran into the same issue:
> 
> In file included from /usr/include/nss3/pkcs11t.h:1780,
>                  from /usr/include/nss3/keythi.h:41,
>                  from /usr/include/nss3/keyt.h:41,
>                  from /usr/include/nss3/pk11pub.h:43,
>                  from libcacard/vcard_emul_nss.c:21:
> /usr/include/nss3/pkcs11n.h:365:26: error: "__GNUC_MINOR" is not defined
> 
> This is a bug in nss3. But why didn't configure bail out of the feature
> if it doesn't even compile? Because this really is just a warning, not an
> error. But configure builds its test program without -Werror, while we do
> build our sources with -Werror by default.
> 
> Force the check to also use -Werror. This fixes the default build for me again.

Good idea, but shouldn't we do that
  (a) for all compile tests and
  (b) only with --enable-werror

?

cheers,
  Gerd
Alexander Graf - July 9, 2012, 1:30 p.m.
On 09.07.2012, at 15:29, Gerd Hoffmann wrote:

> On 07/09/12 14:06, Alexander Graf wrote:
>> When just calling ./configure on my box, I always ran into the same issue:
>> 
>> In file included from /usr/include/nss3/pkcs11t.h:1780,
>>                 from /usr/include/nss3/keythi.h:41,
>>                 from /usr/include/nss3/keyt.h:41,
>>                 from /usr/include/nss3/pk11pub.h:43,
>>                 from libcacard/vcard_emul_nss.c:21:
>> /usr/include/nss3/pkcs11n.h:365:26: error: "__GNUC_MINOR" is not defined
>> 
>> This is a bug in nss3. But why didn't configure bail out of the feature
>> if it doesn't even compile? Because this really is just a warning, not an
>> error. But configure builds its test program without -Werror, while we do
>> build our sources with -Werror by default.
>> 
>> Force the check to also use -Werror. This fixes the default build for me again.
> 
> Good idea, but shouldn't we do that
>  (a) for all compile tests and
>  (b) only with --enable-werror

Yeah, my configure foo wasn't good enough to figure out when exactly -Werror is passed in. At the point in time when the smartcard check is done, neither $werror nor $QEMU_CFLAGS have been set.


Alex

Patch

diff --git a/configure b/configure
index 9f071b7..d28a909 100755
--- a/configure
+++ b/configure
@@ -2642,6 +2642,10 @@  EOF
         smartcard_cflags="-I\$(SRC_PATH)/libcacard"
         libcacard_libs="$($pkg_config --libs nss 2>/dev/null) $glib_libs"
         libcacard_cflags="$($pkg_config --cflags nss 2>/dev/null) $glib_cflags"
+        # nss < 3.13.3 has a nasty warning that can trigger compile failures
+        # with -Werror. Unfortunately, we don't know if -Werror is goint to
+        # be used here yet, so let's just assume it to be safe.
+        libcacard_cflags="$libcacard_cflags -Werror"
         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"