mirror of
https://github.com/qemu/qemu.git
synced 2024-11-30 23:33:51 +08:00
1f37280b37
The net/af-xdp.c code is enabled when the libxdp library is present,
however, it also has direct API calls to bpf_xdp_query_id &
bpf_xdp_detach which are provided by the libbpf library.
As a result if building with --disable-libbpf, but libxdp gets
auto-detected, we'll fail to link QEMU
/usr/bin/ld: libcommon.a.p/net_af-xdp.c.o: undefined reference to symbol 'bpf_xdp_query_id@@LIBBPF_0.7.0'
There are two bugs here
* Since we have direct libbpf API calls, when building
net/af-xdp.c, we must tell meson that libbpf is a
dependancy, so that we directly link to it, rather
than relying on indirect linkage.
* When must skip probing for libxdp at all, when libbpf
is not found, raising an error if --enable-libxdp was
given explicitly.
Fixes: cb039ef3d9
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
71 lines
1.6 KiB
Meson
71 lines
1.6 KiB
Meson
system_ss.add(files(
|
|
'announce.c',
|
|
'checksum.c',
|
|
'dump.c',
|
|
'eth.c',
|
|
'filter-buffer.c',
|
|
'filter-mirror.c',
|
|
'filter.c',
|
|
'hub.c',
|
|
'net-hmp-cmds.c',
|
|
'net.c',
|
|
'queue.c',
|
|
'socket.c',
|
|
'stream.c',
|
|
'dgram.c',
|
|
'util.c',
|
|
))
|
|
|
|
if get_option('replication').allowed() or \
|
|
get_option('colo_proxy').allowed()
|
|
system_ss.add(files('colo-compare.c'))
|
|
system_ss.add(files('colo.c'))
|
|
else
|
|
system_ss.add(files('colo-stubs.c'))
|
|
endif
|
|
|
|
if get_option('colo_proxy').allowed()
|
|
system_ss.add(files('filter-rewriter.c'))
|
|
endif
|
|
|
|
system_ss.add(when: 'CONFIG_TCG', if_true: files('filter-replay.c'))
|
|
|
|
if have_l2tpv3
|
|
system_ss.add(files('l2tpv3.c'))
|
|
endif
|
|
system_ss.add(when: slirp, if_true: files('slirp.c'))
|
|
system_ss.add(when: vde, if_true: files('vde.c'))
|
|
if have_netmap
|
|
system_ss.add(files('netmap.c'))
|
|
endif
|
|
|
|
system_ss.add(when: [libxdp, libbpf], if_true: files('af-xdp.c'))
|
|
|
|
if have_vhost_net_user
|
|
system_ss.add(when: 'CONFIG_VIRTIO_NET', if_true: files('vhost-user.c'), if_false: files('vhost-user-stub.c'))
|
|
endif
|
|
|
|
if host_os == 'windows'
|
|
system_ss.add(files('tap-win32.c'))
|
|
elif host_os == 'linux'
|
|
system_ss.add(files('tap.c', 'tap-linux.c'))
|
|
elif host_os in bsd_oses
|
|
system_ss.add(files('tap.c', 'tap-bsd.c'))
|
|
elif host_os == 'sunos'
|
|
system_ss.add(files('tap.c', 'tap-solaris.c'))
|
|
else
|
|
system_ss.add(files('tap.c', 'tap-stub.c'))
|
|
endif
|
|
if have_vhost_net_vdpa
|
|
system_ss.add(when: 'CONFIG_VIRTIO_NET', if_true: files('vhost-vdpa.c'), if_false: files('vhost-vdpa-stub.c'))
|
|
endif
|
|
|
|
vmnet_files = files(
|
|
'vmnet-common.m',
|
|
'vmnet-bridged.m',
|
|
'vmnet-host.c',
|
|
'vmnet-shared.c'
|
|
)
|
|
system_ss.add(when: vmnet, if_true: vmnet_files)
|
|
subdir('can')
|