All of lore.kernel.org
 help / color / mirror / Atom feed
* Undefined reference to symbol while compiling DPPD-PROX
@ 2022-04-28  6:32 Avijit  Pandey
  2022-04-28 15:13 ` Stephen Hemminger
  0 siblings, 1 reply; 3+ messages in thread
From: Avijit  Pandey @ 2022-04-28  6:32 UTC (permalink / raw)
  To: dev

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

I have OS: Ubuntu 20.04 with kernel: 5.4.0-42-generic

Built DPDK from the following steps:

cd /opt
export RTE_SDK="/opt/dpdk"
export RTE_TARGET="x86_64-native-linuxapp-gcc"
export PKG_CONFIG_PATH="/usr/local/lib/x86_64-linux-gnu/pkgconfig"
git clone https://github.com/DPDK/dpdk.git
git clone http://dpdk.org/git/dpdk-kmods
cd dpdk/
git checkout v20.11
cp -r /opt/dpdk-kmods/linux/igb_uio/ /opt/dpdk/kernel/linux/
cat <<EOF >/opt/dpdk/kernel/linux/igb_uio/meson.build
# SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2017 Intel Corporation

mkfile = custom_target('igb_uio_makefile',
        output: 'Makefile',
        command: ['touch', '@OUTPUT@'])

custom_target('igb_uio',
        input: ['igb_uio.c', 'Kbuild'],
        output: 'igb_uio.ko',
        command: ['make', '-C', kernel_dir + '/build',
                'M=' + meson.current_build_dir(),
                'src=' + meson.current_source_dir(),
                'EXTRA_CFLAGS=-I' + meson.current_source_dir() +
                        '/../../../lib/librte_eal/include',
                'modules'],
        depends: mkfile,
        install: true,
        install_dir: kernel_dir + '/extra/dpdk',
        build_by_default: get_option('enable_kmods'))
EOF
meson setup ${RTE_SDK} ${RTE_TARGET}
meson -Dexamples=all build
cd build
ninja
ninja install
ldconfig -v
cd /opt/dpdk/kernel/linux/igb_uio
make -j 4


Building DPPD-PROX via below steps:

git clone https://github.com/opnfv/samplevnf.git
cd samplevnf/VNFs/DPPD-PROX
meson build
ninja -C build

Facing error on the task: handle_fm.c on running that command ninja -C build

Error:
[108/108] Linking target prox.

FAILED: prox

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

/usr/bin/ld: prox@exe/handle_fm.c.o: undefined reference to symbol 'dlsym@@GLIBC_2.2.5'

/usr/bin/ld: /usr/local/lib/x86_64-linux-gnu/libdl.so.2: error adding symbols: DSO missing from command line

collect2: error: ld returned 1 exit status

ninja: build stopped: subcommand failed.



How do I proceed in this?

[-- Attachment #2: Type: text/html, Size: 13800 bytes --]

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

* Re: Undefined reference to symbol while compiling DPPD-PROX
  2022-04-28  6:32 Undefined reference to symbol while compiling DPPD-PROX Avijit  Pandey
@ 2022-04-28 15:13 ` Stephen Hemminger
  2022-05-24  6:29   ` Avijit  Pandey
  0 siblings, 1 reply; 3+ messages in thread
From: Stephen Hemminger @ 2022-04-28 15:13 UTC (permalink / raw)
  To: Avijit  Pandey; +Cc: dev

On Thu, 28 Apr 2022 06:32:14 +0000
"Avijit  Pandey" <Avijit@voereir.com> wrote:

> I have OS: Ubuntu 20.04 with kernel: 5.4.0-42-generic
> 
> Built DPDK from the following steps:
> 
> cd /opt
> export RTE_SDK="/opt/dpdk"
> export RTE_TARGET="x86_64-native-linuxapp-gcc"
> export PKG_CONFIG_PATH="/usr/local/lib/x86_64-linux-gnu/pkgconfig"
> git clone https://github.com/DPDK/dpdk.git
> git clone http://dpdk.org/git/dpdk-kmods
> cd dpdk/
> git checkout v20.11
> cp -r /opt/dpdk-kmods/linux/igb_uio/ /opt/dpdk/kernel/linux/
> cat <<EOF >/opt/dpdk/kernel/linux/igb_uio/meson.build
> # SPDX-License-Identifier: BSD-3-Clause
> # Copyright(c) 2017 Intel Corporation
> 
> mkfile = custom_target('igb_uio_makefile',
>         output: 'Makefile',
>         command: ['touch', '@OUTPUT@'])
> 
> custom_target('igb_uio',
>         input: ['igb_uio.c', 'Kbuild'],
>         output: 'igb_uio.ko',
>         command: ['make', '-C', kernel_dir + '/build',
>                 'M=' + meson.current_build_dir(),
>                 'src=' + meson.current_source_dir(),
>                 'EXTRA_CFLAGS=-I' + meson.current_source_dir() +
>                         '/../../../lib/librte_eal/include',
>                 'modules'],
>         depends: mkfile,
>         install: true,
>         install_dir: kernel_dir + '/extra/dpdk',
>         build_by_default: get_option('enable_kmods'))
> EOF
> meson setup ${RTE_SDK} ${RTE_TARGET}
> meson -Dexamples=all build
> cd build
> ninja
> ninja install
> ldconfig -v
> cd /opt/dpdk/kernel/linux/igb_uio
> make -j 4
> 
> 
> Building DPPD-PROX via below steps:
> 
> git clone https://github.com/opnfv/samplevnf.git
> cd samplevnf/VNFs/DPPD-PROX
> meson build
> ninja -C build
> 
> Facing error on the task: handle_fm.c on running that command ninja -C build
> 
> Error:
> [108/108] Linking target prox.
> 
> FAILED: prox
> 
> 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/lib
 rte_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_pc
 i.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
> 
> /usr/bin/ld: prox@exe/handle_fm.c.o: undefined reference to symbol 'dlsym@@GLIBC_2.2.5'
> 
> /usr/bin/ld: /usr/local/lib/x86_64-linux-gnu/libdl.so.2: error adding symbols: DSO missing from command line
> 
> collect2: error: ld returned 1 exit status
> 
> ninja: build stopped: subcommand failed.
> 
> 
> 
> How do I proceed in this?

Looks like compile line in PROX is missing -ldl


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

* Re: Undefined reference to symbol while compiling DPPD-PROX
  2022-04-28 15:13 ` Stephen Hemminger
@ 2022-05-24  6:29   ` Avijit  Pandey
  0 siblings, 0 replies; 3+ messages in thread
From: Avijit  Pandey @ 2022-05-24  6:29 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: dev

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

Yes, works.

Made changes into the meson.build as
sed -i "139i deps += [cc.find_library('dl', required: true)]" meson.build


Thanks a lot.
________________________________
From: Stephen Hemminger <stephen@networkplumber.org>
Sent: Thursday, April 28, 2022 8:43 PM
To: Avijit Pandey <Avijit@voereir.com>
Cc: dev@dpdk.org <dev@dpdk.org>
Subject: Re: Undefined reference to symbol while compiling DPPD-PROX

On Thu, 28 Apr 2022 06:32:14 +0000
"Avijit  Pandey" <Avijit@voereir.com> wrote:

> I have OS: Ubuntu 20.04 with kernel: 5.4.0-42-generic
>
> Built DPDK from the following steps:
>
> cd /opt
> export RTE_SDK="/opt/dpdk"
> export RTE_TARGET="x86_64-native-linuxapp-gcc"
> export PKG_CONFIG_PATH="/usr/local/lib/x86_64-linux-gnu/pkgconfig"
> git clone https://github.com/DPDK/dpdk.git
> git clone http://dpdk.org/git/dpdk-kmods
> cd dpdk/
> git checkout v20.11
> cp -r /opt/dpdk-kmods/linux/igb_uio/ /opt/dpdk/kernel/linux/
> cat <<EOF >/opt/dpdk/kernel/linux/igb_uio/meson.build
> # SPDX-License-Identifier: BSD-3-Clause
> # Copyright(c) 2017 Intel Corporation
>
> mkfile = custom_target('igb_uio_makefile',
>         output: 'Makefile',
>         command: ['touch', '@OUTPUT@'])
>
> custom_target('igb_uio',
>         input: ['igb_uio.c', 'Kbuild'],
>         output: 'igb_uio.ko',
>         command: ['make', '-C', kernel_dir + '/build',
>                 'M=' + meson.current_build_dir(),
>                 'src=' + meson.current_source_dir(),
>                 'EXTRA_CFLAGS=-I' + meson.current_source_dir() +
>                         '/../../../lib/librte_eal/include',
>                 'modules'],
>         depends: mkfile,
>         install: true,
>         install_dir: kernel_dir + '/extra/dpdk',
>         build_by_default: get_option('enable_kmods'))
> EOF
> meson setup ${RTE_SDK} ${RTE_TARGET}
> meson -Dexamples=all build
> cd build
> ninja
> ninja install
> ldconfig -v
> cd /opt/dpdk/kernel/linux/igb_uio
> make -j 4
>
>
> Building DPPD-PROX via below steps:
>
> git clone https://github.com/opnfv/samplevnf.git
> cd samplevnf/VNFs/DPPD-PROX
> meson build
> ninja -C build
>
> Facing error on the task: handle_fm.c on running that command ninja -C build
>
> Error:
> [108/108] Linking target prox.
>
> FAILED: prox
>
> 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
>
> /usr/bin/ld: prox@exe/handle_fm.c.o: undefined reference to symbol 'dlsym@@GLIBC_2.2.5'
>
> /usr/bin/ld: /usr/local/lib/x86_64-linux-gnu/libdl.so.2: error adding symbols: DSO missing from command line
>
> collect2: error: ld returned 1 exit status
>
> ninja: build stopped: subcommand failed.
>
>
>
> How do I proceed in this?

Looks like compile line in PROX is missing -ldl


[-- Attachment #2: Type: text/html, Size: 11167 bytes --]

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

end of thread, other threads:[~2022-05-24  6:29 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-04-28  6:32 Undefined reference to symbol while compiling DPPD-PROX Avijit  Pandey
2022-04-28 15:13 ` Stephen Hemminger
2022-05-24  6:29   ` Avijit  Pandey

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.