All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 0/4] make vm-build-freebsd fixes
@ 2024-02-06  0:21 Ilya Leoshkevich
  2024-02-06  0:22 ` [PATCH v3 1/4] tests/vm: Set UseDNS=no in the sshd configuration Ilya Leoshkevich
                   ` (4 more replies)
  0 siblings, 5 replies; 9+ messages in thread
From: Ilya Leoshkevich @ 2024-02-06  0:21 UTC (permalink / raw)
  To: Paolo Bonzini, Alex Bennée, Ed Maste, Li-Wen Hsu, Warner Losh
  Cc: Marc-André Lureau, Daniel P. Berrangé,
	Thomas Huth, Philippe Mathieu-Daudé,
	Wainer dos Santos Moschetta, Beraldo Leal, Kyle Evans,
	qemu-devel, Ilya Leoshkevich

v2: https://lists.gnu.org/archive/html/qemu-devel/2024-02/msg00890.html
v2 -> v3: Structure the meson check similar to have_asan_fiber;
          Reduce the context size a little (Philippe).

v1: https://lists.gnu.org/archive/html/qemu-devel/2024-01/msg05155.html
v1 -> v2: Link with libinotify instead of disabling the inotify
          support (Daniel).
          Use a bit more context lines in order to prevent the
          incorrect application of the test patch.

Hi,

I needed to verify that my qemu-user changes didn't break BSD, and
Daniel Berrange suggested vm-build-freebsd on IRC. I had several
problems with it, which this series resolves.

Best regards,
Ilya

Ilya Leoshkevich (4):
  tests/vm: Set UseDNS=no in the sshd configuration
  tests/vm/freebsd: Reload the sshd configuration
  test-util-filemonitor: Adapt to the FreeBSD inotify rename semantics
  meson: Link with libinotify on FreeBSD

 meson.build                        | 23 +++++++++++++++++++----
 tests/unit/test-util-filemonitor.c |  8 ++++++++
 tests/vm/basevm.py                 |  2 ++
 tests/vm/freebsd                   |  1 +
 util/meson.build                   |  6 +++++-
 5 files changed, 35 insertions(+), 5 deletions(-)

-- 
2.43.0



^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH v3 1/4] tests/vm: Set UseDNS=no in the sshd configuration
  2024-02-06  0:21 [PATCH v3 0/4] make vm-build-freebsd fixes Ilya Leoshkevich
@ 2024-02-06  0:22 ` Ilya Leoshkevich
  2024-02-06  0:22 ` [PATCH v3 2/4] tests/vm/freebsd: Reload " Ilya Leoshkevich
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 9+ messages in thread
From: Ilya Leoshkevich @ 2024-02-06  0:22 UTC (permalink / raw)
  To: Paolo Bonzini, Alex Bennée, Ed Maste, Li-Wen Hsu, Warner Losh
  Cc: Marc-André Lureau, Daniel P. Berrangé,
	Thomas Huth, Philippe Mathieu-Daudé,
	Wainer dos Santos Moschetta, Beraldo Leal, Kyle Evans,
	qemu-devel, Ilya Leoshkevich

make vm-build-freebsd sometimes fails with "Connection timed out during
banner exchange". The client strace shows:

    13:59:30 write(3, "SSH-2.0-OpenSSH_9.3\r\n", 21) = 21
    13:59:30 getpid()                       = 252655
    13:59:30 poll([{fd=3, events=POLLIN}], 1, 5000) = 1 ([{fd=3, revents=POLLIN}])
    13:59:32 read(3, "S", 1)                = 1
    13:59:32 poll([{fd=3, events=POLLIN}], 1, 3625) = 1 ([{fd=3, revents=POLLIN}])
    13:59:32 read(3, "S", 1)                = 1
    13:59:32 poll([{fd=3, events=POLLIN}], 1, 3625) = 1 ([{fd=3, revents=POLLIN}])
    13:59:32 read(3, "H", 1)                = 1

There is a 2s delay during connection, and ConnectTimeout is set to 1.
Raising it makes the issue go away, but we can do better. The server
truss shows:

    888: 27.811414714 socket(PF_INET,SOCK_DGRAM|SOCK_CLOEXEC,0) = 5 (0x5)
    888: 27.811765030 connect(5,{ AF_INET 10.0.2.3:53 },16) = 0 (0x0)
    888: 27.812166941 sendto(5,"\^Z/\^A\0\0\^A\0\0\0\0\0\0\^A2"...,39,0,NULL,0) = 39 (0x27)
    888: 29.363970743 poll({ 5/POLLRDNORM },1,5000) = 1 (0x1)

So the delay is due to a DNS query. Disable DNS queries in the server
config.

Reviewed-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
---
 tests/vm/basevm.py | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/tests/vm/basevm.py b/tests/vm/basevm.py
index 61725b83254..c0d62c08031 100644
--- a/tests/vm/basevm.py
+++ b/tests/vm/basevm.py
@@ -406,40 +406,42 @@ def console_send(self, command):
             vm.console_socket.send(char.encode("utf-8"))
             time.sleep(0.01)
 
     def console_wait_send(self, wait, command):
         self.console_wait(wait)
         self.console_send(command)
 
     def console_ssh_init(self, prompt, user, pw):
         sshkey_cmd = "echo '%s' > .ssh/authorized_keys\n" \
                      % self._config['ssh_pub_key'].rstrip()
         self.console_wait_send("login:",    "%s\n" % user)
         self.console_wait_send("Password:", "%s\n" % pw)
         self.console_wait_send(prompt,      "mkdir .ssh\n")
         self.console_wait_send(prompt,      sshkey_cmd)
         self.console_wait_send(prompt,      "chmod 755 .ssh\n")
         self.console_wait_send(prompt,      "chmod 644 .ssh/authorized_keys\n")
 
     def console_sshd_config(self, prompt):
         self.console_wait(prompt)
         self.console_send("echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config\n")
+        self.console_wait(prompt)
+        self.console_send("echo 'UseDNS no' >> /etc/ssh/sshd_config\n")
         for var in self.envvars:
             self.console_wait(prompt)
             self.console_send("echo 'AcceptEnv %s' >> /etc/ssh/sshd_config\n" % var)
 
     def print_step(self, text):
         sys.stderr.write("### %s ...\n" % text)
 
     def wait_ssh(self, wait_root=False, seconds=300, cmd="exit 0"):
         # Allow more time for VM to boot under TCG.
         if not kvm_available(self.arch):
             seconds *= self.tcg_timeout_multiplier
         starttime = datetime.datetime.now()
         endtime = starttime + datetime.timedelta(seconds=seconds)
         cmd_success = False
         while datetime.datetime.now() < endtime:
             if wait_root and self.ssh_root(cmd) == 0:
                 cmd_success = True
                 break
             elif self.ssh(cmd) == 0:
                 cmd_success = True
-- 
2.43.0



^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH v3 2/4] tests/vm/freebsd: Reload the sshd configuration
  2024-02-06  0:21 [PATCH v3 0/4] make vm-build-freebsd fixes Ilya Leoshkevich
  2024-02-06  0:22 ` [PATCH v3 1/4] tests/vm: Set UseDNS=no in the sshd configuration Ilya Leoshkevich
@ 2024-02-06  0:22 ` Ilya Leoshkevich
  2024-02-06  0:22 ` [PATCH v3 3/4] test-util-filemonitor: Adapt to the FreeBSD inotify rename semantics Ilya Leoshkevich
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 9+ messages in thread
From: Ilya Leoshkevich @ 2024-02-06  0:22 UTC (permalink / raw)
  To: Paolo Bonzini, Alex Bennée, Ed Maste, Li-Wen Hsu, Warner Losh
  Cc: Marc-André Lureau, Daniel P. Berrangé,
	Thomas Huth, Philippe Mathieu-Daudé,
	Wainer dos Santos Moschetta, Beraldo Leal, Kyle Evans,
	qemu-devel, Ilya Leoshkevich

After console_sshd_config(), the SSH server needs to be nudged to pick
up the new configs. The scripts for the other BSD flavors already do
this with a reboot, but a simple reload is sufficient.

Reviewed-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
---
 tests/vm/freebsd | 1 +
 1 file changed, 1 insertion(+)

diff --git a/tests/vm/freebsd b/tests/vm/freebsd
index b581bd17fb7..1247f40a385 100755
--- a/tests/vm/freebsd
+++ b/tests/vm/freebsd
@@ -91,40 +91,41 @@ class FreeBSDVM(basevm.BaseVM):
         self.console_wait_send("Use an empty password", "\n")
         self.console_wait_send("Use a random password", "\n")
         self.console_wait("Enter password:")
         self.console_send("%s\n" % self._config["guest_pass"])
         self.console_wait("Enter password again:")
         self.console_send("%s\n" % self._config["guest_pass"])
         self.console_wait_send("Lock out",              "\n")
         self.console_wait_send("OK",                    "yes\n")
         self.console_wait_send("Add another user",      "no\n")
         self.console_wait_send("~ #", "exit\n")
 
         # setup qemu user
         prompt = "$"
         self.console_ssh_init(prompt, self._config["guest_user"], self._config["guest_pass"])
         self.console_wait_send(prompt, "exit\n")
 
         # setup root user
         prompt = "root@freebsd:~ #"
         self.console_ssh_init(prompt, "root", self._config["root_pass"])
         self.console_sshd_config(prompt)
+        self.console_wait_send(prompt, "service sshd reload\n")
 
         # setup virtio-blk #1 (tarfile)
         self.console_wait(prompt)
         self.console_send("echo 'chmod 666 /dev/vtbd1' >> /etc/rc.local\n")
 
         pkgs = self.get_qemu_packages_from_lcitool_json()
         self.print_step("Installing packages")
         self.ssh_root_check("pkg install -y %s\n" % " ".join(pkgs))
 
         # shutdown
         self.ssh_root(self.poweroff)
         self.wait()
 
         if os.path.exists(img):
             os.remove(img)
         os.rename(img_tmp, img)
         self.print_step("All done")
 
 if __name__ == "__main__":
     sys.exit(basevm.main(FreeBSDVM, config=FREEBSD_CONFIG))
-- 
2.43.0



^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH v3 3/4] test-util-filemonitor: Adapt to the FreeBSD inotify rename semantics
  2024-02-06  0:21 [PATCH v3 0/4] make vm-build-freebsd fixes Ilya Leoshkevich
  2024-02-06  0:22 ` [PATCH v3 1/4] tests/vm: Set UseDNS=no in the sshd configuration Ilya Leoshkevich
  2024-02-06  0:22 ` [PATCH v3 2/4] tests/vm/freebsd: Reload " Ilya Leoshkevich
@ 2024-02-06  0:22 ` Ilya Leoshkevich
  2024-02-06  0:22 ` [PATCH v3 4/4] meson: Link with libinotify on FreeBSD Ilya Leoshkevich
  2024-02-07 15:02 ` [PATCH v3 0/4] make vm-build-freebsd fixes Alex Bennée
  4 siblings, 0 replies; 9+ messages in thread
From: Ilya Leoshkevich @ 2024-02-06  0:22 UTC (permalink / raw)
  To: Paolo Bonzini, Alex Bennée, Ed Maste, Li-Wen Hsu, Warner Losh
  Cc: Marc-André Lureau, Daniel P. Berrangé,
	Thomas Huth, Philippe Mathieu-Daudé,
	Wainer dos Santos Moschetta, Beraldo Leal, Kyle Evans,
	qemu-devel, Ilya Leoshkevich

Unlike on Linux, on FreeBSD renaming a file when the destination
already exists results in an IN_DELETE event for that existing file:

    $ FILEMONITOR_DEBUG=1 build/tests/unit/test-util-filemonitor
    Rename /tmp/test-util-filemonitor-K13LI2/fish/one.txt -> /tmp/test-util-filemonitor-K13LI2/two.txt
    Event id=200000000 event=2 file=one.txt
    Queue event id 200000000 event 2 file one.txt
    Queue event id 100000000 event 2 file two.txt
    Queue event id 100000002 event 2 file two.txt
    Queue event id 100000000 event 0 file two.txt
    Queue event id 100000002 event 0 file two.txt
    Event id=100000000 event=0 file=two.txt
    Expected event 0 but got 2

This difference in behavior is not expected to break the real users, so
teach the test to accept it.

Suggested-by: Daniel P. Berrange <berrange@redhat.com>
Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
---
 tests/unit/test-util-filemonitor.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/tests/unit/test-util-filemonitor.c b/tests/unit/test-util-filemonitor.c
index a22de275955..02e67fc96ac 100644
--- a/tests/unit/test-util-filemonitor.c
+++ b/tests/unit/test-util-filemonitor.c
@@ -343,40 +343,48 @@ test_file_monitor_events(void)
           .filesrc = "fish/", .watchid = &watch4 },
         { .type = QFILE_MONITOR_TEST_OP_ADD_WATCH,
           .filesrc = "fish/one.txt", .watchid = &watch5 },
         { .type = QFILE_MONITOR_TEST_OP_CREATE,
           .filesrc = "fish/one.txt", },
         { .type = QFILE_MONITOR_TEST_OP_EVENT,
           .filesrc = "one.txt", .watchid = &watch4,
           .eventid = QFILE_MONITOR_EVENT_CREATED },
         { .type = QFILE_MONITOR_TEST_OP_EVENT,
           .filesrc = "one.txt", .watchid = &watch5,
           .eventid = QFILE_MONITOR_EVENT_CREATED },
 
 
         { .type = QFILE_MONITOR_TEST_OP_DEL_WATCH,
           .filesrc = "fish/one.txt", .watchid = &watch5 },
         { .type = QFILE_MONITOR_TEST_OP_RENAME,
           .filesrc = "fish/one.txt", .filedst = "two.txt", },
         { .type = QFILE_MONITOR_TEST_OP_EVENT,
           .filesrc = "one.txt", .watchid = &watch4,
           .eventid = QFILE_MONITOR_EVENT_DELETED },
+#ifdef __FreeBSD__
+        { .type = QFILE_MONITOR_TEST_OP_EVENT,
+          .filesrc = "two.txt", .watchid = &watch0,
+          .eventid = QFILE_MONITOR_EVENT_DELETED },
+        { .type = QFILE_MONITOR_TEST_OP_EVENT,
+          .filesrc = "two.txt", .watchid = &watch2,
+          .eventid = QFILE_MONITOR_EVENT_DELETED },
+#endif
         { .type = QFILE_MONITOR_TEST_OP_EVENT,
           .filesrc = "two.txt", .watchid = &watch0,
           .eventid = QFILE_MONITOR_EVENT_CREATED },
         { .type = QFILE_MONITOR_TEST_OP_EVENT,
           .filesrc = "two.txt", .watchid = &watch2,
           .eventid = QFILE_MONITOR_EVENT_CREATED },
 
 
         { .type = QFILE_MONITOR_TEST_OP_RMDIR,
           .filesrc = "fish", },
         { .type = QFILE_MONITOR_TEST_OP_EVENT,
           .filesrc = "", .watchid = &watch4,
           .eventid = QFILE_MONITOR_EVENT_IGNORED,
           .swapnext = true },
         { .type = QFILE_MONITOR_TEST_OP_EVENT,
           .filesrc = "fish", .watchid = &watch0,
           .eventid = QFILE_MONITOR_EVENT_DELETED },
         { .type = QFILE_MONITOR_TEST_OP_DEL_WATCH,
           .filesrc = "fish", .watchid = &watch4 },
 
-- 
2.43.0



^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH v3 4/4] meson: Link with libinotify on FreeBSD
  2024-02-06  0:21 [PATCH v3 0/4] make vm-build-freebsd fixes Ilya Leoshkevich
                   ` (2 preceding siblings ...)
  2024-02-06  0:22 ` [PATCH v3 3/4] test-util-filemonitor: Adapt to the FreeBSD inotify rename semantics Ilya Leoshkevich
@ 2024-02-06  0:22 ` Ilya Leoshkevich
  2024-02-06  9:02   ` Thomas Huth
  2024-02-07 15:02 ` [PATCH v3 0/4] make vm-build-freebsd fixes Alex Bennée
  4 siblings, 1 reply; 9+ messages in thread
From: Ilya Leoshkevich @ 2024-02-06  0:22 UTC (permalink / raw)
  To: Paolo Bonzini, Alex Bennée, Ed Maste, Li-Wen Hsu, Warner Losh
  Cc: Marc-André Lureau, Daniel P. Berrangé,
	Thomas Huth, Philippe Mathieu-Daudé,
	Wainer dos Santos Moschetta, Beraldo Leal, Kyle Evans,
	qemu-devel, Ilya Leoshkevich

make vm-build-freebsd fails with:

    ld: error: undefined symbol: inotify_init1
    >>> referenced by filemonitor-inotify.c:183 (../src/util/filemonitor-inotify.c:183)
    >>>               util_filemonitor-inotify.c.o:(qemu_file_monitor_new) in archive libqemuutil.a

On FreeBSD the inotify functions are defined in libinotify.so. Add it
to the dependencies.

Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
---
 meson.build      | 23 +++++++++++++++++++----
 util/meson.build |  6 +++++-
 2 files changed, 24 insertions(+), 5 deletions(-)

diff --git a/meson.build b/meson.build
index b5d6dc94a83..e5d6f2d057e 100644
--- a/meson.build
+++ b/meson.build
@@ -2367,60 +2367,72 @@ if rbd.found()
 endif
 if rdma.found()
   config_host_data.set('HAVE_IBV_ADVISE_MR',
                        cc.has_function('ibv_advise_mr',
                                        dependencies: rdma,
                                        prefix: '#include <infiniband/verbs.h>'))
 endif
 
 have_asan_fiber = false
 if get_option('sanitizers') and \
    not cc.has_function('__sanitizer_start_switch_fiber',
                          args: '-fsanitize=address',
                          prefix: '#include <sanitizer/asan_interface.h>')
   warning('Missing ASAN due to missing fiber annotation interface')
   warning('Without code annotation, the report may be inferior.')
 else
   have_asan_fiber = true
 endif
 config_host_data.set('CONFIG_ASAN_IFACE_FIBER', have_asan_fiber)
 
+have_inotify_init = cc.has_header_symbol('sys/inotify.h', 'inotify_init')
+have_inotify_init1 = cc.has_header_symbol('sys/inotify.h', 'inotify_init1')
+inotify = not_found
+if (have_inotify_init or have_inotify_init1) and host_os == 'freebsd'
+  # libinotify-kqueue
+  inotify = cc.find_library('inotify')
+  if have_inotify_init
+    have_inotify_init = inotify.found()
+  endif
+  if have_inotify_init1
+    have_inotify_init1 = inotify.found()
+  endif
+endif
+config_host_data.set('CONFIG_INOTIFY', have_inotify_init)
+config_host_data.set('CONFIG_INOTIFY1', have_inotify_init1)
+
 # has_header_symbol
 config_host_data.set('CONFIG_BLKZONED',
                      cc.has_header_symbol('linux/blkzoned.h', 'BLKOPENZONE'))
 config_host_data.set('CONFIG_EPOLL_CREATE1',
                      cc.has_header_symbol('sys/epoll.h', 'epoll_create1'))
 config_host_data.set('CONFIG_FALLOCATE_PUNCH_HOLE',
                      cc.has_header_symbol('linux/falloc.h', 'FALLOC_FL_PUNCH_HOLE') and
                      cc.has_header_symbol('linux/falloc.h', 'FALLOC_FL_KEEP_SIZE'))
 config_host_data.set('CONFIG_FALLOCATE_ZERO_RANGE',
                      cc.has_header_symbol('linux/falloc.h', 'FALLOC_FL_ZERO_RANGE'))
 config_host_data.set('CONFIG_FIEMAP',
                      cc.has_header('linux/fiemap.h') and
                      cc.has_header_symbol('linux/fs.h', 'FS_IOC_FIEMAP'))
 config_host_data.set('CONFIG_GETRANDOM',
                      cc.has_function('getrandom') and
                      cc.has_header_symbol('sys/random.h', 'GRND_NONBLOCK'))
-config_host_data.set('CONFIG_INOTIFY',
-                     cc.has_header_symbol('sys/inotify.h', 'inotify_init'))
-config_host_data.set('CONFIG_INOTIFY1',
-                     cc.has_header_symbol('sys/inotify.h', 'inotify_init1'))
 config_host_data.set('CONFIG_PRCTL_PR_SET_TIMERSLACK',
                      cc.has_header_symbol('sys/prctl.h', 'PR_SET_TIMERSLACK'))
 config_host_data.set('CONFIG_RTNETLINK',
                      cc.has_header_symbol('linux/rtnetlink.h', 'IFLA_PROTO_DOWN'))
 config_host_data.set('CONFIG_SYSMACROS',
                      cc.has_header_symbol('sys/sysmacros.h', 'makedev'))
 config_host_data.set('HAVE_OPTRESET',
                      cc.has_header_symbol('getopt.h', 'optreset'))
 config_host_data.set('HAVE_IPPROTO_MPTCP',
                      cc.has_header_symbol('netinet/in.h', 'IPPROTO_MPTCP'))
 
 # has_member
 config_host_data.set('HAVE_SIGEV_NOTIFY_THREAD_ID',
                      cc.has_member('struct sigevent', 'sigev_notify_thread_id',
                                    prefix: '#include <signal.h>'))
 config_host_data.set('HAVE_STRUCT_STAT_ST_ATIM',
                      cc.has_member('struct stat', 'st_atim',
                                    prefix: '#include <sys/stat.h>'))
 config_host_data.set('HAVE_BLK_ZONE_REP_CAPACITY',
                      cc.has_member('struct blk_zone', 'capacity',
@@ -4390,40 +4402,43 @@ if host_os == 'windows'
 endif
 summary_info += {'seccomp support':   seccomp}
 summary_info += {'GlusterFS support': glusterfs}
 summary_info += {'hv-balloon support': hv_balloon}
 summary_info += {'TPM support':       have_tpm}
 summary_info += {'libssh support':    libssh}
 summary_info += {'lzo support':       lzo}
 summary_info += {'snappy support':    snappy}
 summary_info += {'bzip2 support':     libbzip2}
 summary_info += {'lzfse support':     liblzfse}
 summary_info += {'zstd support':      zstd}
 summary_info += {'NUMA host support': numa}
 summary_info += {'capstone':          capstone}
 summary_info += {'libpmem support':   libpmem}
 summary_info += {'libdaxctl support': libdaxctl}
 summary_info += {'libudev':           libudev}
 # Dummy dependency, keep .found()
 summary_info += {'FUSE lseek':        fuse_lseek.found()}
 summary_info += {'selinux':           selinux}
 summary_info += {'libdw':             libdw}
+if host_os == 'freebsd'
+  summary_info += {'libinotify-kqueue': inotify}
+endif
 summary(summary_info, bool_yn: true, section: 'Dependencies')
 
 if host_arch == 'unknown'
   message()
   warning('UNSUPPORTED HOST CPU')
   message()
   message('Support for CPU host architecture ' + cpu + ' is not currently')
   message('maintained. The QEMU project does not guarantee that QEMU will')
   message('compile or work on this host CPU. You can help by volunteering')
   message('to maintain it and providing a build host for our continuous')
   message('integration setup.')
   if get_option('tcg').allowed() and target_dirs.length() > 0
     message()
     message('configure has succeeded and you can continue to build, but')
     message('QEMU will use a slow interpreter to emulate the target CPU.')
   endif
 endif
 
 if not supported_oses.contains(host_os)
   message()
diff --git a/util/meson.build b/util/meson.build
index af3bf5692d8..0ef9886be04 100644
--- a/util/meson.build
+++ b/util/meson.build
@@ -87,40 +87,44 @@ if have_block or have_ga
   util_ss.add(files('thread-pool.c', 'qemu-timer.c'))
   util_ss.add(files('qemu-sockets.c'))
 endif
 if have_block
   util_ss.add(files('aio-wait.c'))
   util_ss.add(files('buffer.c'))
   util_ss.add(files('bufferiszero.c'))
   util_ss.add(files('hbitmap.c'))
   util_ss.add(files('hexdump.c'))
   util_ss.add(files('iova-tree.c'))
   util_ss.add(files('iov.c', 'uri.c'))
   util_ss.add(files('nvdimm-utils.c'))
   util_ss.add(files('block-helpers.c'))
   util_ss.add(files('qemu-coroutine-sleep.c'))
   util_ss.add(files('qemu-co-shared-resource.c'))
   util_ss.add(files('qemu-co-timeout.c'))
   util_ss.add(files('readline.c'))
   util_ss.add(files('throttle.c'))
   util_ss.add(files('timed-average.c'))
   if config_host_data.get('CONFIG_INOTIFY1')
-    util_ss.add(files('filemonitor-inotify.c'))
+    freebsd_dep = []
+    if host_os == 'freebsd'
+      freebsd_dep = inotify
+    endif
+    util_ss.add(files('filemonitor-inotify.c'), freebsd_dep)
   else
     util_ss.add(files('filemonitor-stub.c'))
   endif
   if host_os == 'linux'
     util_ss.add(files('vhost-user-server.c'), vhost_user)
     util_ss.add(files('vfio-helpers.c'))
     util_ss.add(files('chardev_open.c'))
   endif
 endif
 
 if cpu == 'aarch64'
   util_ss.add(files('cpuinfo-aarch64.c'))
 elif cpu in ['x86', 'x86_64']
   util_ss.add(files('cpuinfo-i386.c'))
 elif cpu == 'loongarch64'
   util_ss.add(files('cpuinfo-loongarch.c'))
 elif cpu in ['ppc', 'ppc64']
   util_ss.add(files('cpuinfo-ppc.c'))
 endif
-- 
2.43.0



^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH v3 4/4] meson: Link with libinotify on FreeBSD
  2024-02-06  0:22 ` [PATCH v3 4/4] meson: Link with libinotify on FreeBSD Ilya Leoshkevich
@ 2024-02-06  9:02   ` Thomas Huth
  0 siblings, 0 replies; 9+ messages in thread
From: Thomas Huth @ 2024-02-06  9:02 UTC (permalink / raw)
  To: Ilya Leoshkevich, Paolo Bonzini, Alex Bennée, Ed Maste,
	Li-Wen Hsu, Warner Losh
  Cc: Marc-André Lureau, Daniel P. Berrangé,
	Philippe Mathieu-Daudé,
	Wainer dos Santos Moschetta, Beraldo Leal, Kyle Evans,
	qemu-devel

On 06/02/2024 01.22, Ilya Leoshkevich wrote:
> make vm-build-freebsd fails with:
> 
>      ld: error: undefined symbol: inotify_init1
>      >>> referenced by filemonitor-inotify.c:183 (../src/util/filemonitor-inotify.c:183)
>      >>>               util_filemonitor-inotify.c.o:(qemu_file_monitor_new) in archive libqemuutil.a
> 
> On FreeBSD the inotify functions are defined in libinotify.so. Add it
> to the dependencies.
> 
> Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
> ---
>   meson.build      | 23 +++++++++++++++++++----
>   util/meson.build |  6 +++++-
>   2 files changed, 24 insertions(+), 5 deletions(-)

Reviewed-by: Thomas Huth <thuth@redhat.com>



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v3 0/4] make vm-build-freebsd fixes
  2024-02-06  0:21 [PATCH v3 0/4] make vm-build-freebsd fixes Ilya Leoshkevich
                   ` (3 preceding siblings ...)
  2024-02-06  0:22 ` [PATCH v3 4/4] meson: Link with libinotify on FreeBSD Ilya Leoshkevich
@ 2024-02-07 15:02 ` Alex Bennée
  2024-02-07 16:15   ` Ilya Leoshkevich
  4 siblings, 1 reply; 9+ messages in thread
From: Alex Bennée @ 2024-02-07 15:02 UTC (permalink / raw)
  To: Ilya Leoshkevich
  Cc: Paolo Bonzini, Ed Maste, Li-Wen Hsu, Warner Losh,
	Marc-André Lureau, Daniel P. Berrangé,
	Thomas Huth, Philippe Mathieu-Daudé,
	Wainer dos Santos Moschetta, Beraldo Leal, Kyle Evans,
	qemu-devel

Ilya Leoshkevich <iii@linux.ibm.com> writes:

> v2: https://lists.gnu.org/archive/html/qemu-devel/2024-02/msg00890.html
> v2 -> v3: Structure the meson check similar to have_asan_fiber;
>           Reduce the context size a little (Philippe).
>
> v1: https://lists.gnu.org/archive/html/qemu-devel/2024-01/msg05155.html
> v1 -> v2: Link with libinotify instead of disabling the inotify
>           support (Daniel).
>           Use a bit more context lines in order to prevent the
>           incorrect application of the test patch.
>
> Hi,
>
> I needed to verify that my qemu-user changes didn't break BSD, and
> Daniel Berrange suggested vm-build-freebsd on IRC. I had several
> problems with it, which this series resolves.

Queued to testing/next, thanks.

-- 
Alex Bennée
Virtualisation Tech Lead @ Linaro


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v3 0/4] make vm-build-freebsd fixes
  2024-02-07 15:02 ` [PATCH v3 0/4] make vm-build-freebsd fixes Alex Bennée
@ 2024-02-07 16:15   ` Ilya Leoshkevich
  2024-02-08 10:29     ` Alex Bennée
  0 siblings, 1 reply; 9+ messages in thread
From: Ilya Leoshkevich @ 2024-02-07 16:15 UTC (permalink / raw)
  To: Alex Bennée
  Cc: Paolo Bonzini, Ed Maste, Li-Wen Hsu, Warner Losh,
	Marc-André Lureau, Daniel P. Berrangé,
	Thomas Huth, Philippe Mathieu-Daudé,
	Wainer dos Santos Moschetta, Beraldo Leal, Kyle Evans,
	qemu-devel

On Wed, 2024-02-07 at 15:02 +0000, Alex Bennée wrote:
> Ilya Leoshkevich <iii@linux.ibm.com> writes:
> 
> > v2:
> > https://lists.gnu.org/archive/html/qemu-devel/2024-02/msg00890.html
> > v2 -> v3: Structure the meson check similar to have_asan_fiber;
> >           Reduce the context size a little (Philippe).
> > 
> > v1:
> > https://lists.gnu.org/archive/html/qemu-devel/2024-01/msg05155.html
> > v1 -> v2: Link with libinotify instead of disabling the inotify
> >           support (Daniel).
> >           Use a bit more context lines in order to prevent the
> >           incorrect application of the test patch.
> > 
> > Hi,
> > 
> > I needed to verify that my qemu-user changes didn't break BSD, and
> > Daniel Berrange suggested vm-build-freebsd on IRC. I had several
> > problems with it, which this series resolves.
> 
> Queued to testing/next, thanks.

Hi Alex,

thanks! But I think Thomas already took it into his tree:

https://lists.gnu.org/archive/html/qemu-devel/2024-02/msg01015.html

Best regards,
Ilya


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v3 0/4] make vm-build-freebsd fixes
  2024-02-07 16:15   ` Ilya Leoshkevich
@ 2024-02-08 10:29     ` Alex Bennée
  0 siblings, 0 replies; 9+ messages in thread
From: Alex Bennée @ 2024-02-08 10:29 UTC (permalink / raw)
  To: Ilya Leoshkevich
  Cc: Paolo Bonzini, Ed Maste, Li-Wen Hsu, Warner Losh,
	Marc-André Lureau, Daniel P. Berrangé,
	Thomas Huth, Philippe Mathieu-Daudé,
	Wainer dos Santos Moschetta, Beraldo Leal, Kyle Evans,
	qemu-devel

Ilya Leoshkevich <iii@linux.ibm.com> writes:

> On Wed, 2024-02-07 at 15:02 +0000, Alex Bennée wrote:
>> Ilya Leoshkevich <iii@linux.ibm.com> writes:
>> 
>> > v2:
>> > https://lists.gnu.org/archive/html/qemu-devel/2024-02/msg00890.html
>> > v2 -> v3: Structure the meson check similar to have_asan_fiber;
>> >           Reduce the context size a little (Philippe).
>> > 
>> > v1:
>> > https://lists.gnu.org/archive/html/qemu-devel/2024-01/msg05155.html
>> > v1 -> v2: Link with libinotify instead of disabling the inotify
>> >           support (Daniel).
>> >           Use a bit more context lines in order to prevent the
>> >           incorrect application of the test patch.
>> > 
>> > Hi,
>> > 
>> > I needed to verify that my qemu-user changes didn't break BSD, and
>> > Daniel Berrange suggested vm-build-freebsd on IRC. I had several
>> > problems with it, which this series resolves.
>> 
>> Queued to testing/next, thanks.
>
> Hi Alex,
>
> thanks! But I think Thomas already took it into his tree:
>
> https://lists.gnu.org/archive/html/qemu-devel/2024-02/msg01015.html

Ahh I missed that Thomas had pulled it. It should all rectify itself
when I create the PR tomorrow.

>
> Best regards,
> Ilya

-- 
Alex Bennée
Virtualisation Tech Lead @ Linaro


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2024-02-08 10:30 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-02-06  0:21 [PATCH v3 0/4] make vm-build-freebsd fixes Ilya Leoshkevich
2024-02-06  0:22 ` [PATCH v3 1/4] tests/vm: Set UseDNS=no in the sshd configuration Ilya Leoshkevich
2024-02-06  0:22 ` [PATCH v3 2/4] tests/vm/freebsd: Reload " Ilya Leoshkevich
2024-02-06  0:22 ` [PATCH v3 3/4] test-util-filemonitor: Adapt to the FreeBSD inotify rename semantics Ilya Leoshkevich
2024-02-06  0:22 ` [PATCH v3 4/4] meson: Link with libinotify on FreeBSD Ilya Leoshkevich
2024-02-06  9:02   ` Thomas Huth
2024-02-07 15:02 ` [PATCH v3 0/4] make vm-build-freebsd fixes Alex Bennée
2024-02-07 16:15   ` Ilya Leoshkevich
2024-02-08 10:29     ` Alex Bennée

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.