<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Yes, works.<br>
<br>
Made changes into the meson.build as<br>
<blockquote itemscope="" itemtype="https://schemas.microsoft.com/QuotedText" style="border-left: 3px solid rgb(200, 200, 200); border-top-color: rgb(200, 200, 200); border-right-color: rgb(200, 200, 200); border-bottom-color: rgb(200, 200, 200); padding-left: 1ex; margin-left: 0.8ex; color: rgb(102, 102, 102);">
sed -i "139i deps += [cc.find_library('dl', required: true)]" meson.build<br>
</blockquote>
<br>
<br>
Thanks a lot.</div>
<div id="appendonsend"></div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> Stephen Hemminger <stephen@networkplumber.org><br>
<b>Sent:</b> Thursday, April 28, 2022 8:43 PM<br>
<b>To:</b> Avijit Pandey <Avijit@voereir.com><br>
<b>Cc:</b> dev@dpdk.org <dev@dpdk.org><br>
<b>Subject:</b> Re: Undefined reference to symbol while compiling DPPD-PROX</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText">On Thu, 28 Apr 2022 06:32:14 +0000<br>
"Avijit  Pandey" <Avijit@voereir.com> wrote:<br>
<br>
> I have OS: Ubuntu 20.04 with kernel: 5.4.0-42-generic<br>
> <br>
> Built DPDK from the following steps:<br>
> <br>
> cd /opt<br>
> export RTE_SDK="/opt/dpdk"<br>
> export RTE_TARGET="x86_64-native-linuxapp-gcc"<br>
> export PKG_CONFIG_PATH="/usr/local/lib/x86_64-linux-gnu/pkgconfig"<br>
> git clone <a href="https://github.com/DPDK/dpdk.git">https://github.com/DPDK/dpdk.git</a><br>
> git clone <a href="http://dpdk.org/git/dpdk-kmods">http://dpdk.org/git/dpdk-kmods</a><br>
> cd dpdk/<br>
> git checkout v20.11<br>
> cp -r /opt/dpdk-kmods/linux/igb_uio/ /opt/dpdk/kernel/linux/<br>
> cat <<EOF >/opt/dpdk/kernel/linux/igb_uio/meson.build<br>
> # SPDX-License-Identifier: BSD-3-Clause<br>
> # Copyright(c) 2017 Intel Corporation<br>
> <br>
> mkfile = custom_target('igb_uio_makefile',<br>
>         output: 'Makefile',<br>
>         command: ['touch', '@OUTPUT@'])<br>
> <br>
> custom_target('igb_uio',<br>
>         input: ['igb_uio.c', 'Kbuild'],<br>
>         output: 'igb_uio.ko',<br>
>         command: ['make', '-C', kernel_dir + '/build',<br>
>                 'M=' + meson.current_build_dir(),<br>
>                 'src=' + meson.current_source_dir(),<br>
>                 'EXTRA_CFLAGS=-I' + meson.current_source_dir() +<br>
>                         '/../../../lib/librte_eal/include',<br>
>                 'modules'],<br>
>         depends: mkfile,<br>
>         install: true,<br>
>         install_dir: kernel_dir + '/extra/dpdk',<br>
>         build_by_default: get_option('enable_kmods'))<br>
> EOF<br>
> meson setup ${RTE_SDK} ${RTE_TARGET}<br>
> meson -Dexamples=all build<br>
> cd build<br>
> ninja<br>
> ninja install<br>
> ldconfig -v<br>
> cd /opt/dpdk/kernel/linux/igb_uio<br>
> make -j 4<br>
> <br>
> <br>
> Building DPPD-PROX via below steps:<br>
> <br>
> git clone <a href="https://github.com/opnfv/samplevnf.git">https://github.com/opnfv/samplevnf.git</a><br>
> cd samplevnf/VNFs/DPPD-PROX<br>
> meson build<br>
> ninja -C build<br>
> <br>
> Facing error on the task: handle_fm.c on running that command ninja -C build<br>
> <br>
> Error:<br>
> [108/108] Linking target prox.<br>
> <br>
> FAILED: prox<br>
> <br>
> cc  -o prox 'prox@exe/task_init.c.o' 'prox@exe/handle_aggregator.c.o' 'prox@exe/handle_nop.c.o' 'prox@exe/handle_irq.c.o' 'prox@exe/handle_arp.c.o' 'prox@exe/handle_impair.c.o' 'prox@exe/handle_lat.c.o' 'prox@exe/handle_qos.c.o' 'prox@exe/handle_qinq_decap4.c.o'
 'prox@exe/handle_routing.c.o' 'prox@exe/handle_untag.c.o' 'prox@exe/handle_mplstag.c.o' 'prox@exe/handle_qinq_decap6.c.o' 'prox@exe/rw_reg.c.o' 'prox@exe/handle_lb_qinq.c.o' 'prox@exe/handle_lb_pos.c.o' 'prox@exe/handle_lb_net.c.o' 'prox@exe/handle_qinq_encap4.c.o'
 'prox@exe/handle_qinq_encap6.c.o' 'prox@exe/handle_classify.c.o' 'prox@exe/handle_l2fwd.c.o' 'prox@exe/handle_swap.c.o' 'prox@exe/handle_police.c.o' 'prox@exe/handle_acl.c.o' 'prox@exe/handle_gen.c.o' 'prox@exe/handle_master.c.o' 'prox@exe/packet_utils.c.o'
 'prox@exe/handle_mirror.c.o' 'prox@exe/handle_genl4.c.o' 'prox@exe/handle_ipv6_tunnel.c.o' 'prox@exe/handle_read.c.o' 'prox@exe/handle_cgnat.c.o' 'prox@exe/handle_nat.c.o' 'prox@exe/handle_dump.c.o' 'prox@exe/handle_tsc.c.o' 'prox@exe/handle_fm.c.o' 'prox@exe/handle_lb_5tuple.c.o'
 'prox@exe/handle_blockudp.c.o' 'prox@exe/toeplitz.c.o' 'prox@exe/thread_nop.c.o' 'prox@exe/thread_generic.c.o' 'prox@exe/prox_args.c.o' 'prox@exe/prox_cfg.c.o' 'prox@exe/prox_cksum.c.o' 'prox@exe/prox_port_cfg.c.o' 'prox@exe/cfgfile.c.o' 'prox@exe/clock.c.o'
 'prox@exe/commands.c.o' 'prox@exe/cqm.c.o' 'prox@exe/msr.c.o' 'prox@exe/defaults.c.o' 'prox@exe/display.c.o' 'prox@exe/display_latency.c.o' 'prox@exe/display_latency_distr.c.o' 'prox@exe/display_mempools.c.o' 'prox@exe/display_ports.c.o' 'prox@exe/display_rings.c.o'
 'prox@exe/display_priority.c.o' 'prox@exe/display_pkt_len.c.o' 'prox@exe/display_l4gen.c.o' 'prox@exe/display_tasks.c.o' 'prox@exe/display_irq.c.o' 'prox@exe/log.c.o' 'prox@exe/hash_utils.c.o' 'prox@exe/main.c.o' 'prox@exe/parse_utils.c.o' 'prox@exe/file_utils.c.o'
 'prox@exe/run.c.o' 'prox@exe/input_conn.c.o' 'prox@exe/input_curses.c.o' 'prox@exe/rx_pkt.c.o' 'prox@exe/lconf.c.o' 'prox@exe/tx_pkt.c.o' 'prox@exe/expire_cpe.c.o' 'prox@exe/ip_subnet.c.o' 'prox@exe/stats_port.c.o' 'prox@exe/stats_mempool.c.o' 'prox@exe/stats_ring.c.o'
 'prox@exe/stats_l4gen.c.o' 'prox@exe/stats_latency.c.o' 'prox@exe/stats_global.c.o' 'prox@exe/stats_core.c.o' 'prox@exe/stats_task.c.o' 'prox@exe/stats_prio.c.o' 'prox@exe/stats_irq.c.o' 'prox@exe/cmd_parser.c.o' 'prox@exe/input.c.o' 'prox@exe/prox_shared.c.o'
 'prox@exe/prox_lua_types.c.o' 'prox@exe/genl4_bundle.c.o' 'prox@exe/heap.c.o' 'prox@exe/genl4_stream_tcp.c.o' 'prox@exe/genl4_stream_udp.c.o' 'prox@exe/cdf.c.o' 'prox@exe/stats.c.o' 'prox@exe/stats_cons_log.c.o' 'prox@exe/stats_cons_cli.c.o' 'prox@exe/stats_parser.c.o'
 'prox@exe/hash_set.c.o' 'prox@exe/prox_lua.c.o' 'prox@exe/prox_malloc.c.o' 'prox@exe/prox_ipv6.c.o' 'prox@exe/prox_compat.c.o' 'prox@exe/handle_nsh.c.o' 'prox@exe/handle_pf_acl.c.o' 'prox@exe/thread_pipeline.c.o' 'prox@exe/git_version.c.o' -Wl,--as-needed
 -Wl,--no-undefined -Wl,-O1 -Wl,--as-needed -Wl,--start-group /usr/local/lib/x86_64-linux-gnu/librte_node.so /usr/local/lib/x86_64-linux-gnu/librte_graph.so /usr/local/lib/x86_64-linux-gnu/librte_bpf.so /usr/local/lib/x86_64-linux-gnu/librte_flow_classify.so
 /usr/local/lib/x86_64-linux-gnu/librte_pipeline.so /usr/local/lib/x86_64-linux-gnu/librte_table.so /usr/local/lib/x86_64-linux-gnu/librte_port.so /usr/local/lib/x86_64-linux-gnu/librte_fib.so /usr/local/lib/x86_64-linux-gnu/librte_ipsec.so /usr/local/lib/x86_64-linux-gnu/librte_vhost.so
 /usr/local/lib/x86_64-linux-gnu/librte_stack.so /usr/local/lib/x86_64-linux-gnu/librte_security.so /usr/local/lib/x86_64-linux-gnu/librte_sched.so /usr/local/lib/x86_64-linux-gnu/librte_reorder.so /usr/local/lib/x86_64-linux-gnu/librte_rib.so /usr/local/lib/x86_64-linux-gnu/librte_regexdev.so
 /usr/local/lib/x86_64-linux-gnu/librte_rawdev.so /usr/local/lib/x86_64-linux-gnu/librte_pdump.so /usr/local/lib/x86_64-linux-gnu/librte_power.so /usr/local/lib/x86_64-linux-gnu/librte_member.so /usr/local/lib/x86_64-linux-gnu/librte_lpm.so /usr/local/lib/x86_64-linux-gnu/librte_latencystats.so
 /usr/local/lib/x86_64-linux-gnu/librte_kni.so /usr/local/lib/x86_64-linux-gnu/librte_jobstats.so /usr/local/lib/x86_64-linux-gnu/librte_ip_frag.so /usr/local/lib/x86_64-linux-gnu/librte_gso.so /usr/local/lib/x86_64-linux-gnu/librte_gro.so /usr/local/lib/x86_64-linux-gnu/librte_eventdev.so
 /usr/local/lib/x86_64-linux-gnu/librte_efd.so /usr/local/lib/x86_64-linux-gnu/librte_distributor.so /usr/local/lib/x86_64-linux-gnu/librte_cryptodev.so /usr/local/lib/x86_64-linux-gnu/librte_compressdev.so /usr/local/lib/x86_64-linux-gnu/librte_cfgfile.so
 /usr/local/lib/x86_64-linux-gnu/librte_bitratestats.so /usr/local/lib/x86_64-linux-gnu/librte_bbdev.so /usr/local/lib/x86_64-linux-gnu/librte_acl.so /usr/local/lib/x86_64-linux-gnu/librte_timer.so /usr/local/lib/x86_64-linux-gnu/librte_hash.so /usr/local/lib/x86_64-linux-gnu/librte_metrics.so
 /usr/local/lib/x86_64-linux-gnu/librte_cmdline.so /usr/local/lib/x86_64-linux-gnu/librte_pci.so /usr/local/lib/x86_64-linux-gnu/librte_ethdev.so /usr/local/lib/x86_64-linux-gnu/librte_meter.so /usr/local/lib/x86_64-linux-gnu/librte_net.so /usr/local/lib/x86_64-linux-gnu/librte_mbuf.so
 /usr/local/lib/x86_64-linux-gnu/librte_mempool.so /usr/local/lib/x86_64-linux-gnu/librte_rcu.so /usr/local/lib/x86_64-linux-gnu/librte_ring.so /usr/local/lib/x86_64-linux-gnu/librte_eal.so /usr/local/lib/x86_64-linux-gnu/librte_telemetry.so /usr/local/lib/x86_64-linux-gnu/librte_kvargs.so
 /usr/lib/x86_64-linux-gnu/libbsd.so -Wl,-Bsymbolic-functions -ltinfo -pthread -lpcap -Wl,-Bsymbolic-functions -lncurses -ltinfo -Wl,-Bsymbolic-functions -lncursesw -ltinfo /usr/lib/x86_64-linux-gnu/libedit.so -lm /usr/lib/x86_64-linux-gnu/liblua5.3.so -lrte_bus_vdev
 -lrte_net_ring -Wl,--end-group<br>
> <br>
> /usr/bin/ld: prox@exe/handle_fm.c.o: undefined reference to symbol 'dlsym@@GLIBC_2.2.5'<br>
> <br>
> /usr/bin/ld: /usr/local/lib/x86_64-linux-gnu/libdl.so.2: error adding symbols: DSO missing from command line<br>
> <br>
> collect2: error: ld returned 1 exit status<br>
> <br>
> ninja: build stopped: subcommand failed.<br>
> <br>
> <br>
> <br>
> How do I proceed in this?<br>
<br>
Looks like compile line in PROX is missing -ldl<br>
<br>
</div>
</span></font></div>
</body>
</html>