 1f37280b37
			
		
	
	
		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: cb039ef3d9e3112da01e1ecd9b136ac9809ef733 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')
 |