Patchwork Fix build on OpenBSD with BSD userland emu and smartcard NSS enabled

login
register
mail settings
Submitter Brad
Date Aug. 22, 2011, 8:39 p.m.
Message ID <20110822203958.GA1151@rox.home.comstyle.com>
Download mbox | patch
Permalink /patch/110988/
State New
Headers show

Comments

Brad - Aug. 22, 2011, 8:39 p.m.
Fix build on OpenBSD with BSD userland emu and smartcard NSS enabled.

The first issue is the hard coded POSIX Real Time extensions library in the
libcacard/Makefile. From looking at the code it doesn't seem this is necessary
anyway. Robert Relyea seems to think it most likely isn't necessary.

The second issue was the missing exclusion of the BSD userland binary
builds from the addition of this Makefile target for the smartcard NSS
code which breaks the builds if smartcard NSS support is enabled.


pastebin clip of the build failure..

http://pastebin.com/raw.php?i=BLCKd3s6


Signed-off-by: Brad Smith <brad@comstyle.com>

---
 Makefile.target    |    4 +++-
 libcacard/Makefile |    4 ++--
 2 files changed, 5 insertions(+), 3 deletions(-)
Blue Swirl - Aug. 27, 2011, 5:52 p.m.
Thanks, applied.

On Mon, Aug 22, 2011 at 8:39 PM, Brad <brad@comstyle.com> wrote:
> Fix build on OpenBSD with BSD userland emu and smartcard NSS enabled.
>
> The first issue is the hard coded POSIX Real Time extensions library in the
> libcacard/Makefile. From looking at the code it doesn't seem this is necessary
> anyway. Robert Relyea seems to think it most likely isn't necessary.
>
> The second issue was the missing exclusion of the BSD userland binary
> builds from the addition of this Makefile target for the smartcard NSS
> code which breaks the builds if smartcard NSS support is enabled.
>
>
> pastebin clip of the build failure..
>
> http://pastebin.com/raw.php?i=BLCKd3s6
>
>
> Signed-off-by: Brad Smith <brad@comstyle.com>
>
> ---
>  Makefile.target    |    4 +++-
>  libcacard/Makefile |    4 ++--
>  2 files changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/Makefile.target b/Makefile.target
> index e280bf6..07af4d4 100644
> --- a/Makefile.target
> +++ b/Makefile.target
> @@ -387,9 +387,11 @@ obj-y += $(addprefix $(HWDIR)/, $(hw-obj-y))
>  endif # CONFIG_SOFTMMU
>
>  ifndef CONFIG_LINUX_USER
> +ifndef CONFIG_BSD_USER
>  # libcacard needs qemu-thread support, and besides is only needed by devices
> -# so not requires with linux-user targets
> +# so not requires with linux-user / bsd-user targets
>  obj-$(CONFIG_SMARTCARD_NSS) += $(addprefix ../libcacard/, $(libcacard-y))
> +endif # CONFIG_BSD_USER
>  endif # CONFIG_LINUX_USER
>
>  obj-y += $(addprefix ../, $(trace-obj-y))
> diff --git a/libcacard/Makefile b/libcacard/Makefile
> index bd7b3e6..81d9eb5 100644
> --- a/libcacard/Makefile
> +++ b/libcacard/Makefile
> @@ -20,7 +20,7 @@ QEMU_CFLAGS+=$(GLIB_CFLAGS)
>  libcacard.lib-y=$(addsuffix .lo,$(basename $(libcacard-y)))
>
>  vscclient: $(libcacard-y) $(QEMU_OBJS) vscclient.o
> -       $(call quiet-command,$(CC) -o $@ $^ $(libcacard_libs) $(LIBS) -lrt,"  LINK  $@")
> +       $(call quiet-command,$(CC) -o $@ $^ $(libcacard_libs) $(LIBS),"  LINK  $@")
>
>  clean:
>        rm -f *.o */*.o *.d */*.d *.a */*.a *~ */*~ vscclient *.lo .libs/* *.la *.pc
> @@ -39,7 +39,7 @@ install-libcacard:
>        @echo "libtool is missing, please install and rerun configure"; exit 1
>  else
>  libcacard.la: $(libcacard.lib-y) $(QEMU_OBJS_LIB)
> -       $(call quiet-command,$(LIBTOOL) --mode=link --quiet --tag=CC $(CC) -rpath $(libdir) -o $@ $^ $(libcacard_libs) -lrt,"  lt LINK $@")
> +       $(call quiet-command,$(LIBTOOL) --mode=link --quiet --tag=CC $(CC) -rpath $(libdir) -o $@ $^ $(libcacard_libs),"  lt LINK $@")
>
>  libcacard.pc: $(libcacard_srcpath)/libcacard.pc.in
>        sed -e 's|@LIBDIR@|$(libdir)|' \
> --
> 1.7.6
>
>
> --
> This message has been scanned for viruses and
> dangerous content by MailScanner, and is
> believed to be clean.
>
>
>

Patch

diff --git a/Makefile.target b/Makefile.target
index e280bf6..07af4d4 100644
--- a/Makefile.target
+++ b/Makefile.target
@@ -387,9 +387,11 @@  obj-y += $(addprefix $(HWDIR)/, $(hw-obj-y))
 endif # CONFIG_SOFTMMU
 
 ifndef CONFIG_LINUX_USER
+ifndef CONFIG_BSD_USER
 # libcacard needs qemu-thread support, and besides is only needed by devices
-# so not requires with linux-user targets
+# so not requires with linux-user / bsd-user targets
 obj-$(CONFIG_SMARTCARD_NSS) += $(addprefix ../libcacard/, $(libcacard-y))
+endif # CONFIG_BSD_USER
 endif # CONFIG_LINUX_USER
 
 obj-y += $(addprefix ../, $(trace-obj-y))
diff --git a/libcacard/Makefile b/libcacard/Makefile
index bd7b3e6..81d9eb5 100644
--- a/libcacard/Makefile
+++ b/libcacard/Makefile
@@ -20,7 +20,7 @@  QEMU_CFLAGS+=$(GLIB_CFLAGS)
 libcacard.lib-y=$(addsuffix .lo,$(basename $(libcacard-y)))
 
 vscclient: $(libcacard-y) $(QEMU_OBJS) vscclient.o
-	$(call quiet-command,$(CC) -o $@ $^ $(libcacard_libs) $(LIBS) -lrt,"  LINK  $@")
+	$(call quiet-command,$(CC) -o $@ $^ $(libcacard_libs) $(LIBS),"  LINK  $@")
 
 clean:
 	rm -f *.o */*.o *.d */*.d *.a */*.a *~ */*~ vscclient *.lo .libs/* *.la *.pc
@@ -39,7 +39,7 @@  install-libcacard:
 	@echo "libtool is missing, please install and rerun configure"; exit 1
 else
 libcacard.la: $(libcacard.lib-y) $(QEMU_OBJS_LIB)
-	$(call quiet-command,$(LIBTOOL) --mode=link --quiet --tag=CC $(CC) -rpath $(libdir) -o $@ $^ $(libcacard_libs) -lrt,"  lt LINK $@")
+	$(call quiet-command,$(LIBTOOL) --mode=link --quiet --tag=CC $(CC) -rpath $(libdir) -o $@ $^ $(libcacard_libs),"  lt LINK $@")
 
 libcacard.pc: $(libcacard_srcpath)/libcacard.pc.in
 	sed -e 's|@LIBDIR@|$(libdir)|' \