Skip to content

Dpdk build getting failed due to issue in rpath #3

Description

@sudeep-nutanix

Getting following error while building librte_eal for dpdk -

Error: Linker flag rpath (build-time rpath) is not allowed, unless it is a placeholder for INSTALL_RPATH (:*). Please fix the build script for this package.

cc -o lib/librte_eal.so.21.0 lib/librte_eal.a.p/librte_eal_common_eal_common_bus.c.o lib/librte_eal.a.p/librte_eal_common_eal_common_cpuflags.c.o lib/librte_eal.a.p/librte_eal_common_eal_c ommon_class.c.o lib/librte_eal.a.p/librte_eal_common_eal_common_config.c.o lib/librte_eal.a.p/librte_eal_common_eal_common_debug.c.o lib/librte_eal.a.p/librte_eal_common_eal_common_devargs.c.o lib/librte_ eal.a.p/librte_eal_common_eal_common_dev.c.o lib/librte_eal.a.p/librte_eal_common_eal_common_errno.c.o lib/librte_eal.a.p/librte_eal_common_eal_common_fbarray.c.o lib/librte_eal.a.p/librte_eal_common_eal_ common_hexdump.c.o lib/librte_eal.a.p/librte_eal_common_eal_common_hypervisor.c.o lib/librte_eal.a.p/librte_eal_common_eal_common_launch.c.o lib/librte_eal.a.p/librte_eal_common_eal_common_lcore.c.o lib/l ibrte_eal.a.p/librte_eal_common_eal_common_log.c.o lib/librte_eal.a.p/librte_eal_common_eal_common_mcfg.c.o lib/librte_eal.a.p/librte_eal_common_eal_common_memalloc.c.o lib/librte_eal.a.p/librte_eal_commo n_eal_common_memory.c.o lib/librte_eal.a.p/librte_eal_common_eal_common_memzone.c.o lib/librte_eal.a.p/librte_eal_common_eal_common_options.c.o lib/librte_eal.a.p/librte_eal_common_eal_common_proc.c.o lib /librte_eal.a.p/librte_eal_common_eal_common_string_fns.c.o lib/librte_eal.a.p/librte_eal_common_eal_common_tailqs.c.o lib/librte_eal.a.p/librte_eal_common_eal_common_thread.c.o lib/librte_eal.a.p/librte_ eal_common_eal_common_timer.c.o lib/librte_eal.a.p/librte_eal_common_eal_common_trace.c.o lib/librte_eal.a.p/librte_eal_common_eal_common_trace_ctf.c.o lib/librte_eal.a.p/librte_eal_common_eal_common_trac e_points.c.o lib/librte_eal.a.p/librte_eal_common_eal_common_trace_utils.c.o lib/librte_eal.a.p/librte_eal_common_eal_common_uuid.c.o lib/librte_eal.a.p/librte_eal_common_hotplug_mp.c.o lib/librte_eal.a.p /librte_eal_common_malloc_elem.c.o lib/librte_eal.a.p/librte_eal_common_malloc_heap.c.o lib/librte_eal.a.p/librte_eal_common_malloc_mp.c.o lib/librte_eal.a.p/librte_eal_common_rte_keepalive.c.o lib/librte _eal.a.p/librte_eal_common_rte_malloc.c.o lib/librte_eal.a.p/librte_eal_common_rte_random.c.o lib/librte_eal.a.p/librte_eal_common_rte_reciprocal.c.o lib/librte_eal.a.p/librte_eal_common_rte_service.c.o l ib/librte_eal.a.p/librte_eal_common_eal_common_dynmem.c.o lib/librte_eal.a.p/librte_eal_unix_eal_file.c.o lib/librte_eal.a.p/librte_eal_unix_eal_unix_memory.c.o lib/librte_eal.a.p/librte_eal_unix_eal_unix _timer.c.o lib/librte_eal.a.p/librte_eal_linux_eal.c.o lib/librte_eal.a.p/librte_eal_linux_eal_alarm.c.o lib/librte_eal.a.p/librte_eal_linux_eal_cpuflags.c.o lib/librte_eal.a.p/librte_eal_linux_eal_debug. c.o lib/librte_eal.a.p/librte_eal_linux_eal_dev.c.o lib/librte_eal.a.p/librte_eal_linux_eal_hugepage_info.c.o lib/librte_eal.a.p/librte_eal_linux_eal_interrupts.c.o lib/librte_eal.a.p/librte_eal_linux_eal _lcore.c.o lib/librte_eal.a.p/librte_eal_linux_eal_log.c.o lib/librte_eal.a.p/librte_eal_linux_eal_memalloc.c.o lib/librte_eal.a.p/librte_eal_linux_eal_memory.c.o lib/librte_eal.a.p/librte_eal_linux_eal_t hread.c.o lib/librte_eal.a.p/librte_eal_linux_eal_timer.c.o lib/librte_eal.a.p/librte_eal_linux_eal_vfio.c.o lib/librte_eal.a.p/librte_eal_linux_eal_vfio_mp_sync.c.o lib/librte_eal.a.p/librte_eal_x86_rte_ cpuflags.c.o lib/librte_eal.a.p/librte_eal_x86_rte_cycles.c.o lib/librte_eal.a.p/librte_eal_x86_rte_hypervisor.c.o lib/librte_eal.a.p/librte_eal_x86_rte_spinlock.c.o -Wl,--as-needed -Wl,--no-undefined -Wl ,-O1 -shared -fPIC -Wl,--start-group -Wl,-soname,librte_eal.so.21 -Wl,--no-as-needed -pthread -lm -ldl -Wl,-L/thirdparty/spdk-21.01.1/dpdk/config/../../../build/lib,-lnuma '-Wl,-rpath,$ORIGIN/' -Wl,-rpath -link,/thirdparty/spdk-21.01.1/dpdk/build-tmp/lib lib/librte_kvargs.so.21.0 lib/librte_telemetry.so.21.0 -Wl,--end-group -Wl,--version-script=/thirdparty/spdk-21.01.1/dpdk/lib/librte_eal/version.map Error: Linker flag rpath (build-time rpath) is not allowed, unless it is a placeholder for INSTALL_RPATH (:*). Please fix the build script for this package.

I believe this is due to an incompatibility with the linker but I couldn't find any such error on the internet. Can anyone please explain how to resolve this or even what this error means?

GCC version: 7.3.0

meson version: 0.58.1

ninja version: 1.10.0

OS version: CentOS Linux release 7.9.2009 (Core)

Activity

  1. jimharris commented on Jun 21, 2021

    @jimharris
    Member

    Hi,

    Can you provide exact reproduction steps, including whether you are building DPDK directly via DPDK repository, or indirectly via the DPDK submodule in SPDK?

    And which versions of SPDK/DPDK?

    Thanks,

    Jim

  2. sudeep-nutanix commented on Jun 22, 2021

    @sudeep-nutanix
    Author

    Hi Jim,

    I built DPDK submodule via SPDK. I used the following set of commands inside spdk

    ./configure --disable-unit-tests --disable-tests --disable-examples --with-fuse --with-nvme-cuse
    make
    

    Spdk version - 21.01.1

    Dpdk version - 21.0

    Also, this error didn't pop when I used another compiler version -(clang or gcc-4.8.5). I suspect the problem is with the linker. I am using the following linker - GNU gold (version 2.27-27.base.el7) 1.12

  3. jimharris commented on Jun 22, 2021

    @jimharris
    Member

    Can you try building DPDK standalone (i.e. not via SPDK's submodule) with the gold linker using instructions at https://doc.dpdk.org/guides/linux_gsg/build_dpdk.html?

  4. added a commit that references this issue on Dec 23, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions