When trying to build with latest libcacard-2.5.1, I hit the
following error:
In file included from hw/usb/ccid-card-passthru.c:12:0:
/usr/include/cacard/vscard_common.h:26:2: error: #warning "Only <libcacard.h> can be included directly" [-Werror=cpp]
#warning "Only <libcacard.h> can be included directly"
While it was fixed in libcacard upstream (so that individual
files can be included directly), it doesn't make much sense.
Let's switch to including the main libcacard.h and also require
at least libcacard-2.5.1 which introduced it. It's available
since late 2015.
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
---
diff to v1:
- Introduce configure change to require newer libcacard version
configure | 2 +-
hw/usb/ccid-card-emulated.c | 5 +----
hw/usb/ccid-card-passthru.c | 2 +-
3 files changed, 3 insertions(+), 6 deletions(-)
diff --git a/configure b/configure
index 4d0e92c96c..0edec24fff 100755
--- a/configure
+++ b/configure
@@ -4440,7 +4440,7 @@ fi
# check for smartcard support
if test "$smartcard" != "no"; then
- if $pkg_config libcacard; then
+ if $pkg_config --atleast-version=2.5.1 libcacard; then
libcacard_cflags=$($pkg_config --cflags libcacard)
libcacard_libs=$($pkg_config --libs libcacard)
smartcard="yes"
diff --git a/hw/usb/ccid-card-emulated.c b/hw/usb/ccid-card-emulated.c
index ea42e4681d..7b538ae6da 100644
--- a/hw/usb/ccid-card-emulated.c
+++ b/hw/usb/ccid-card-emulated.c
@@ -27,10 +27,7 @@
*/
#include "qemu/osdep.h"
-#include <eventt.h>
-#include <vevent.h>
-#include <vreader.h>
-#include <vcard_emul.h>
+#include <cacard/libcacard.h>
#include "qemu/thread.h"
#include "qemu/main-loop.h"
diff --git a/hw/usb/ccid-card-passthru.c b/hw/usb/ccid-card-passthru.c
index b7dd3602dc..982d575edd 100644
--- a/hw/usb/ccid-card-passthru.c
+++ b/hw/usb/ccid-card-passthru.c
@@ -9,7 +9,7 @@
*/
#include "qemu/osdep.h"
-#include <cacard/vscard_common.h>
+#include <cacard/libcacard.h>
#include "chardev/char-fe.h"
#include "qemu/error-report.h"
#include "qemu/sockets.h"
--
2.16.1
Hi On Tue, Apr 3, 2018 at 12:34 PM, Michal Privoznik <mprivozn@redhat.com> wrote: > When trying to build with latest libcacard-2.5.1, I hit the > following error: > > In file included from hw/usb/ccid-card-passthru.c:12:0: > /usr/include/cacard/vscard_common.h:26:2: error: #warning "Only <libcacard.h> can be included directly" [-Werror=cpp] > #warning "Only <libcacard.h> can be included directly" > > While it was fixed in libcacard upstream (so that individual > files can be included directly), it doesn't make much sense. > Let's switch to including the main libcacard.h and also require > at least libcacard-2.5.1 which introduced it. It's available > since late 2015. > > Signed-off-by: Michal Privoznik <mprivozn@redhat.com> > --- > > diff to v1: > - Introduce configure change to require newer libcacard version > > configure | 2 +- > hw/usb/ccid-card-emulated.c | 5 +---- > hw/usb/ccid-card-passthru.c | 2 +- > 3 files changed, 3 insertions(+), 6 deletions(-) > > diff --git a/configure b/configure > index 4d0e92c96c..0edec24fff 100755 > --- a/configure > +++ b/configure > @@ -4440,7 +4440,7 @@ fi > > # check for smartcard support > if test "$smartcard" != "no"; then > - if $pkg_config libcacard; then > + if $pkg_config --atleast-version=2.5.1 libcacard; then > libcacard_cflags=$($pkg_config --cflags libcacard) > libcacard_libs=$($pkg_config --libs libcacard) > smartcard="yes" > diff --git a/hw/usb/ccid-card-emulated.c b/hw/usb/ccid-card-emulated.c > index ea42e4681d..7b538ae6da 100644 > --- a/hw/usb/ccid-card-emulated.c > +++ b/hw/usb/ccid-card-emulated.c > @@ -27,10 +27,7 @@ > */ > > #include "qemu/osdep.h" > -#include <eventt.h> > -#include <vevent.h> > -#include <vreader.h> > -#include <vcard_emul.h> > +#include <cacard/libcacard.h> You should be able to #include <libcacard.h> only > > #include "qemu/thread.h" > #include "qemu/main-loop.h" > diff --git a/hw/usb/ccid-card-passthru.c b/hw/usb/ccid-card-passthru.c > index b7dd3602dc..982d575edd 100644 > --- a/hw/usb/ccid-card-passthru.c > +++ b/hw/usb/ccid-card-passthru.c > @@ -9,7 +9,7 @@ > */ > > #include "qemu/osdep.h" > -#include <cacard/vscard_common.h> > +#include <cacard/libcacard.h> > #include "chardev/char-fe.h" > #include "qemu/error-report.h" > #include "qemu/sockets.h" > -- > 2.16.1 > -- Marc-André Lureau
On 04/03/2018 01:38 PM, Marc-André Lureau wrote: > Hi > > On Tue, Apr 3, 2018 at 12:34 PM, Michal Privoznik <mprivozn@redhat.com> wrote: >> When trying to build with latest libcacard-2.5.1, I hit the >> following error: >> >> In file included from hw/usb/ccid-card-passthru.c:12:0: >> /usr/include/cacard/vscard_common.h:26:2: error: #warning "Only <libcacard.h> can be included directly" [-Werror=cpp] >> #warning "Only <libcacard.h> can be included directly" >> >> While it was fixed in libcacard upstream (so that individual >> files can be included directly), it doesn't make much sense. >> Let's switch to including the main libcacard.h and also require >> at least libcacard-2.5.1 which introduced it. It's available >> since late 2015. >> >> Signed-off-by: Michal Privoznik <mprivozn@redhat.com> >> --- >> >> diff to v1: >> - Introduce configure change to require newer libcacard version >> >> configure | 2 +- >> hw/usb/ccid-card-emulated.c | 5 +---- >> hw/usb/ccid-card-passthru.c | 2 +- >> 3 files changed, 3 insertions(+), 6 deletions(-) >> >> diff --git a/configure b/configure >> index 4d0e92c96c..0edec24fff 100755 >> --- a/configure >> +++ b/configure >> @@ -4440,7 +4440,7 @@ fi >> >> # check for smartcard support >> if test "$smartcard" != "no"; then >> - if $pkg_config libcacard; then >> + if $pkg_config --atleast-version=2.5.1 libcacard; then >> libcacard_cflags=$($pkg_config --cflags libcacard) >> libcacard_libs=$($pkg_config --libs libcacard) >> smartcard="yes" >> diff --git a/hw/usb/ccid-card-emulated.c b/hw/usb/ccid-card-emulated.c >> index ea42e4681d..7b538ae6da 100644 >> --- a/hw/usb/ccid-card-emulated.c >> +++ b/hw/usb/ccid-card-emulated.c >> @@ -27,10 +27,7 @@ >> */ >> >> #include "qemu/osdep.h" >> -#include <eventt.h> >> -#include <vevent.h> >> -#include <vreader.h> >> -#include <vcard_emul.h> >> +#include <cacard/libcacard.h> > > You should be able to #include <libcacard.h> only. Yes, you're right. Do you want me to resend or will you handle this when merging the patch? Thanks, Michal
Hi On Tue, Apr 3, 2018 at 1:48 PM, Michal Privoznik <mprivozn@redhat.com> wrote: > On 04/03/2018 01:38 PM, Marc-André Lureau wrote: >> Hi >> >> On Tue, Apr 3, 2018 at 12:34 PM, Michal Privoznik <mprivozn@redhat.com> wrote: >>> When trying to build with latest libcacard-2.5.1, I hit the >>> following error: >>> >>> In file included from hw/usb/ccid-card-passthru.c:12:0: >>> /usr/include/cacard/vscard_common.h:26:2: error: #warning "Only <libcacard.h> can be included directly" [-Werror=cpp] >>> #warning "Only <libcacard.h> can be included directly" >>> >>> While it was fixed in libcacard upstream (so that individual >>> files can be included directly), it doesn't make much sense. >>> Let's switch to including the main libcacard.h and also require >>> at least libcacard-2.5.1 which introduced it. It's available >>> since late 2015. >>> >>> Signed-off-by: Michal Privoznik <mprivozn@redhat.com> >>> --- >>> >>> diff to v1: >>> - Introduce configure change to require newer libcacard version >>> >>> configure | 2 +- >>> hw/usb/ccid-card-emulated.c | 5 +---- >>> hw/usb/ccid-card-passthru.c | 2 +- >>> 3 files changed, 3 insertions(+), 6 deletions(-) >>> >>> diff --git a/configure b/configure >>> index 4d0e92c96c..0edec24fff 100755 >>> --- a/configure >>> +++ b/configure >>> @@ -4440,7 +4440,7 @@ fi >>> >>> # check for smartcard support >>> if test "$smartcard" != "no"; then >>> - if $pkg_config libcacard; then >>> + if $pkg_config --atleast-version=2.5.1 libcacard; then >>> libcacard_cflags=$($pkg_config --cflags libcacard) >>> libcacard_libs=$($pkg_config --libs libcacard) >>> smartcard="yes" >>> diff --git a/hw/usb/ccid-card-emulated.c b/hw/usb/ccid-card-emulated.c >>> index ea42e4681d..7b538ae6da 100644 >>> --- a/hw/usb/ccid-card-emulated.c >>> +++ b/hw/usb/ccid-card-emulated.c >>> @@ -27,10 +27,7 @@ >>> */ >>> >>> #include "qemu/osdep.h" >>> -#include <eventt.h> >>> -#include <vevent.h> >>> -#include <vreader.h> >>> -#include <vcard_emul.h> >>> +#include <cacard/libcacard.h> >> >> You should be able to #include <libcacard.h> only. > > Yes, you're right. Do you want me to resend or will you handle this when > merging the patch? I'll let Gerd decide: Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> -- Marc-André Lureau
On Tue, Apr 03, 2018 at 12:34:37PM +0200, Michal Privoznik wrote: > When trying to build with latest libcacard-2.5.1, I hit the > following error: > > In file included from hw/usb/ccid-card-passthru.c:12:0: > /usr/include/cacard/vscard_common.h:26:2: error: #warning "Only <libcacard.h> can be included directly" [-Werror=cpp] > #warning "Only <libcacard.h> can be included directly" > > While it was fixed in libcacard upstream (so that individual > files can be included directly), it doesn't make much sense. > Let's switch to including the main libcacard.h and also require > at least libcacard-2.5.1 which introduced it. It's available > since late 2015. Added to usb queue. thanks, Gerd
© 2016 - 2024 Red Hat, Inc.