qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Kamil Rytarowski <n54@gmx.com>
To: Markus Armbruster <armbru@redhat.com>
Cc: peter.maydell@linaro.org, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH] ivshmem-server: Detect and use if there is required -lrt linking
Date: Sun, 21 May 2017 01:05:31 +0200	[thread overview]
Message-ID: <a5bcd9dd-feb8-8083-30de-dec8d7139c96@gmx.com> (raw)
In-Reply-To: <87a86crlg0.fsf@dusky.pond.sub.org>

[-- Attachment #1: Type: text/plain, Size: 3943 bytes --]

Hello,

Excuse me for delay, I missed this mail.

Please see in-line.

On 17.05.2017 09:28, Markus Armbruster wrote:
> Kamil Rytarowski <n54@gmx.com> writes:
> 
>> ivshmem-server makes use of the POSIX shared memory object interfaces.
>> This library is provided on NetBSD in -lrt (POSIX Real-time Library).
>> Add ./configure check if there is needed -lrt linking for shm_open()
>> and if so use it. Introduce new configure generated variable LIBS_SHMLIB.
>>
>> This fixes build issue on NetBSD.
>>
>> Signed-off-by: Kamil Rytarowski <n54@gmx.com>
>> ---
>>  Makefile  |  1 +
>>  configure | 20 ++++++++++++++++++++
>>  2 files changed, 21 insertions(+)
>>
>> diff --git a/Makefile b/Makefile
>> index 31d41a7eae..3248cb53d7 100644
>> --- a/Makefile
>> +++ b/Makefile
>> @@ -473,6 +473,7 @@ ivshmem-client$(EXESUF): $(ivshmem-client-obj-y) $(COMMON_LDADDS)
>>  	$(call LINK, $^)
>>  ivshmem-server$(EXESUF): $(ivshmem-server-obj-y) $(COMMON_LDADDS)
>>  	$(call LINK, $^)
>> +ivshmem-server$(EXESUF): LIBS += $(LIBS_SHMLIB)
>>  
>>  module_block.h: $(SRC_PATH)/scripts/modules/module_block.py config-host.mak
>>  	$(call quiet-command,$(PYTHON) $< $@ \
>> diff --git a/configure b/configure
>> index 7c020c076b..50c3aee746 100755
>> --- a/configure
>> +++ b/configure
>> @@ -179,6 +179,7 @@ audio_pt_int=""
>>  audio_win_int=""
>>  cc_i386=i386-pc-linux-gnu-gcc
>>  libs_qga=""
>> +libs_shmlib=""
>>  debug_info="yes"
>>  stack_protector=""
>>  
>> @@ -4133,6 +4134,24 @@ elif compile_prog "" "$pthread_lib -lrt" ; then
>>    libs_qga="$libs_qga -lrt"
>>  fi
>>  
>> +##########################################
>> +# Do we need librt for shm_open()
>> +cat > $TMPC <<EOF
>> +#include <sys/mman.h>
>> +#include <sys/stat.h>
>> +#include <fcntl.h>
>> +#include <stddef.h>
>> +int main(void) {
>> +  return shm_open(NULL, O_RDWR, 0644);
>> +}
>> +EOF
>> +
>> +if compile_prog "" "" ; then
>> +  :
>> +elif compile_prog "" "-lrt" ; then
>> +  libs_shmlib="$libs_shmlib -lrt"
>> +fi
>> +
>>  if test "$darwin" != "yes" -a "$mingw32" != "yes" -a "$solaris" != yes -a \
>>          "$aix" != "yes" -a "$haiku" != "yes" ; then
>>      libs_softmmu="-lutil $libs_softmmu"
>> @@ -5949,6 +5968,7 @@ echo "EXESUF=$EXESUF" >> $config_host_mak
>>  echo "DSOSUF=$DSOSUF" >> $config_host_mak
>>  echo "LDFLAGS_SHARED=$LDFLAGS_SHARED" >> $config_host_mak
>>  echo "LIBS_QGA+=$libs_qga" >> $config_host_mak
>> +echo "LIBS_SHMLIB+=$libs_shmlib" >> $config_host_mak
>>  echo "TASN1_LIBS=$tasn1_libs" >> $config_host_mak
>>  echo "TASN1_CFLAGS=$tasn1_cflags" >> $config_host_mak
>>  echo "POD2MAN=$POD2MAN" >> $config_host_mak
> 
> We already have a test for -lrt.

Correct.

>  It looks for timer_create() and
> clock_gettime().


timer_create(2) and clock_settime(2) are in libc on NetBSD.

>  If we need -lrt,

We need it just for shm_open(3).

> we add it to LIBS and to LIBS_QGA.
> The latter because we don't use LIBS for qemu-ga:
> 
>     qemu-ga$(EXESUF): LIBS = $(LIBS_QGA)
> 
> This patch adds a second test for -lrt, to look for shm_open().  It adds
> -lrt to new variable LIBS_SHMLIB, which gets used only for
> ivshmem-server:
> 
>     ivshmem-server$(EXESUF): LIBS += $(LIBS_SHMLIB)
> 
> Note that ivshmem-server already uses LIBS.
> 
> Shouldn't we instead widen the existing test for -lrt to cover
> shm_open()?
> 

I will prepare patch in the requested way. I don't have preference.

> Can you confirm that the existing test does not add -lrt to LIBS on
> NetBSD?
> 

config-host.mak:LIBS+=-lm -L/usr/pkg/lib -lgthread-2.0 -pthread
-Wl,-R/usr/pkg/lib -lglib-2.0 -lintl   -lz
config-host.mak:LIBS_QGA+=-lm -L/usr/pkg/lib -lgthread-2.0 -pthread
-Wl,-R/usr/pkg/lib -lglib-2.0 -lintl

> tests/ivshmem-test.c also calls shm_open().  Does it work on NetBSD?
> 

Currently it's disabled, as it requires eventfd() (Linux API).


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

  reply	other threads:[~2017-05-20 23:03 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-05-13  0:46 [Qemu-devel] [PATCH] ivshmem-server: Detect and use if there is required -lrt linking Kamil Rytarowski
2017-05-13 21:09 ` Philippe Mathieu-Daudé
2017-05-17  7:28 ` Markus Armbruster
2017-05-20 23:05   ` Kamil Rytarowski [this message]
2017-05-22  6:28     ` Markus Armbruster
2017-05-22 16:46       ` Kamil Rytarowski
2017-05-23  5:37         ` Markus Armbruster
2017-05-23 14:33           ` Kamil Rytarowski
2017-05-23 15:07             ` Markus Armbruster
2017-05-23 15:08               ` Kamil Rytarowski
2017-05-26  5:40 ` [Qemu-devel] [PATCH] ivshmem-server: ivshmem-clean: Install only when eventfd() is available Kamil Rytarowski
2017-05-26  6:31   ` Marc-André Lureau
2017-05-29  8:57     ` Markus Armbruster
2017-05-30  6:20   ` [Qemu-devel] [PATCH] ivshmem-server: ivshmem-client: Build " Kamil Rytarowski
2017-05-30 12:53     ` Eric Blake
2017-05-30 13:11       ` Kamil Rytarowski
2017-05-30 14:05         ` Eric Blake
2017-05-31 11:11           ` Markus Armbruster
2017-05-31 11:20             ` Kamil Rytarowski
2017-05-31 13:53               ` Markus Armbruster

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=a5bcd9dd-feb8-8083-30de-dec8d7139c96@gmx.com \
    --to=n54@gmx.com \
    --cc=armbru@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).