[dpdk-dev] Compiling DPDK is not working on Red Hat 6.7
2016-07-13 06:01, Raslan Darawsheh: > It seems that the patch fixed the issue. Thanks, I've sent the patches: http://dpdk.org/ml/archives/dev/2016-July/043917.html > -Original Message- > From: Thomas Monjalon [mailto:thomas.monjalon at 6wind.com] > 2016-07-12 11:35, Raslan Darawsheh: > > I think the option is there as you see: > > > [...] > > -Wl,--as-needed -Wl,-lrt -Wl,-lm |...] -Wl,-lrte_eal > [...] > > eal_timer.c:(.text+0x152): undefined reference to `clock_gettime' > > I suspect we need -lrt after -lrte_eal. Do you know where the flag -lrt is set? Is it in your environment LDFLAGS? (it is my guess for the fix).
[dpdk-dev] Compiling DPDK is not working on Red Hat 6.7
It seems that the patch fixed the issue. Kindest regards Raslan Darawsheh -Original Message- From: Thomas Monjalon [mailto:thomas.monja...@6wind.com] Sent: Tuesday, July 12, 2016 3:16 PM To: Raslan Darawsheh Cc: dev at dpdk.org; Christian Ehrhardt Subject: Re: [dpdk-dev] Compiling DPDK is not working on Red Hat 6.7 Hi, 2016-07-12 11:35, Raslan Darawsheh: > I think the option is there as you see: > [...] > -Wl,--as-needed -Wl,-lrt -Wl,-lm |...] -Wl,-lrte_eal [...] > eal_timer.c:(.text+0x152): undefined reference to `clock_gettime' I suspect we need -lrt after -lrte_eal. Please could you try the following patch? --- a/mk/rte.app.mk +++ b/mk/rte.app.mk @@ -176,6 +176,8 @@ ifeq ($(RTE_DEVEL_BUILD)$(CONFIG_RTE_BUILD_SHARED_LIB),yy) LDFLAGS += -rpath=$(RTE_SDK_BIN)/lib endif +MAPFLAGS = -Map=$@.map --cref + .PHONY: all all: install @@ -190,15 +192,13 @@ build: _postbuild exe2cmd = $(strip $(call dotfile,$(patsubst %,%.cmd,$(1 ifeq ($(LINK_USING_CC),1) -override EXTRA_LDFLAGS := $(call linkerprefix,$(EXTRA_LDFLAGS)) -O_TO_EXE = $(CC) $(CFLAGS) \ - $(call linkerprefix,$(LDLIBS)) \ - $(call linkerprefix,$(LDFLAGS)) $(LDFLAGS_$(@)) $(EXTRA_LDFLAGS) \ - -Wl,-Map=$(@).map,--cref -o $@ $(OBJS-y) +O_TO_EXE = $(CC) -o $@ $(CFLAGS) $(OBJS-y) $(call linkerprefix, \ + $(LDLIBS) $(LDFLAGS) $(LDFLAGS_$(@)) $(EXTRA_LDFLAGS) \ + $(MAPFLAGS)) else -O_TO_EXE = $(LD) $(LDLIBS) \ - $(LDFLAGS) $(LDFLAGS_$(@)) $(EXTRA_LDFLAGS) \ - -Map=$(@).map --cref -o $@ $(OBJS-y) +O_TO_EXE = $(LD) -o $@ $(OBJS-y) + $(LDLIBS) $(LDFLAGS) $(LDFLAGS_$(@)) $(EXTRA_LDFLAGS) \ + $(MAPFLAGS) endif O_TO_EXE_STR = $(subst ','\'',$(O_TO_EXE)) #'# fix syntax highlight O_TO_EXE_DISP = $(if $(V),"$(O_TO_EXE_STR)"," LD $(@)")
[dpdk-dev] Compiling DPDK is not working on Red Hat 6.7
Hi, 2016-07-12 11:35, Raslan Darawsheh: > I think the option is there as you see: > [...] > -Wl,--as-needed -Wl,-lrt -Wl,-lm |...] -Wl,-lrte_eal [...] > eal_timer.c:(.text+0x152): undefined reference to `clock_gettime' I suspect we need -lrt after -lrte_eal. Please could you try the following patch? --- a/mk/rte.app.mk +++ b/mk/rte.app.mk @@ -176,6 +176,8 @@ ifeq ($(RTE_DEVEL_BUILD)$(CONFIG_RTE_BUILD_SHARED_LIB),yy) LDFLAGS += -rpath=$(RTE_SDK_BIN)/lib endif +MAPFLAGS = -Map=$@.map --cref + .PHONY: all all: install @@ -190,15 +192,13 @@ build: _postbuild exe2cmd = $(strip $(call dotfile,$(patsubst %,%.cmd,$(1 ifeq ($(LINK_USING_CC),1) -override EXTRA_LDFLAGS := $(call linkerprefix,$(EXTRA_LDFLAGS)) -O_TO_EXE = $(CC) $(CFLAGS) \ - $(call linkerprefix,$(LDLIBS)) \ - $(call linkerprefix,$(LDFLAGS)) $(LDFLAGS_$(@)) $(EXTRA_LDFLAGS) \ - -Wl,-Map=$(@).map,--cref -o $@ $(OBJS-y) +O_TO_EXE = $(CC) -o $@ $(CFLAGS) $(OBJS-y) $(call linkerprefix, \ + $(LDLIBS) $(LDFLAGS) $(LDFLAGS_$(@)) $(EXTRA_LDFLAGS) \ + $(MAPFLAGS)) else -O_TO_EXE = $(LD) $(LDLIBS) \ - $(LDFLAGS) $(LDFLAGS_$(@)) $(EXTRA_LDFLAGS) \ - -Map=$(@).map --cref -o $@ $(OBJS-y) +O_TO_EXE = $(LD) -o $@ $(OBJS-y) + $(LDLIBS) $(LDFLAGS) $(LDFLAGS_$(@)) $(EXTRA_LDFLAGS) \ + $(MAPFLAGS) endif O_TO_EXE_STR = $(subst ','\'',$(O_TO_EXE)) #'# fix syntax highlight O_TO_EXE_DISP = $(if $(V),"$(O_TO_EXE_STR)"," LD $(@)")
[dpdk-dev] Compiling DPDK is not working on Red Hat 6.7
Hi, checking "man clock_gettime" I see: "Link with -lrt (only for glibc versions before 2.17)." RH 6.7 is at glibc 2.12, I haven't check the build, but you might easily run the make with V=1 and see the call. Check if it contains -lrt for the linking step. Christian Ehrhardt Software Engineer, Ubuntu Server Canonical Ltd On Tue, Jul 12, 2016 at 12:02 PM, Raslan Darawsheh wrote: > Hi, > > When trying to compile DPDK on Red Hat Enterprise Linux Server release 6.7 > (Santiago) it fails to compile. > > This is the compilation error that is being seen: > LD test > /download/dpdk/x86_64-native-linuxapp-gcc/lib/librte_eal.a(eal_timer.o): > In function `get_tsc_freq': > eal_timer.c:(.text+0x152): undefined reference to `clock_gettime' > eal_timer.c:(.text+0x190): undefined reference to `clock_gettime' > /download/dpdk/x86_64-native-linuxapp-gcc/lib/librte_eal.a(eal_alarm.o): > In function `rte_eal_alarm_set': > eal_alarm.c:(.text+0x382): undefined reference to `clock_gettime' > /download/dpdk/x86_64-native-linuxapp-gcc/lib/librte_eal.a(eal_alarm.o): > In function `eal_alarm_callback': > eal_alarm.c:(.text+0x5e2): undefined reference to `clock_gettime' > collect2: ld returned 1 exit status > make[5]: *** [test] Error 1 > make[4]: *** [test] Error 2 > make[3]: *** [app] Error 2 > make[2]: *** [all] Error 2 > make[1]: *** [pre_install] Error 2 > make: *** [install] Error 2 > > Kindest regards > Raslan Darawsheh >
[dpdk-dev] Compiling DPDK is not working on Red Hat 6.7
I think the option is there as you see: == Build app/test gcc -m64 -pthread -march=native -DRTE_MACHINE_CPUFLAG_SSE -DRTE_MACHINE_CPUFLAG_SSE2 -DRTE_MACHINE_CPUFLAG_SSE3 -DRTE_MACHINE_CPUFLAG_SSSE3 -DRTE_MACHINE_CPUFLAG_SSE4_1 -DRTE_MACHINE_CPUFLAG_SSE4_2 -DRTE_MACHINE_CPUFLAG_AES -DRTE_MACHINE_CPUFLAG_PCLMULQDQ -DRTE_MACHINE_CPUFLAG_AVX -I/tmp/dpdk/x86_64-native-linuxapp-gcc/include -include /tmp/dpdk/x86_64-native-linuxapp-gcc/include/rte_config.h -O3 -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wold-style-definition -Wpointer-arith -Wcast-align -Wnested-externs -Wcast-qual -Wformat-nonliteral -Wformat-security -Wundef -Wwrite-strings -Werror -Wno-missing-field-initializers -Wno-uninitialized -D_GNU_SOURCE -Wl,-Map=test.map,--cref -o test commands.o test.o resource.o test_resource.o test_resource_c.res.o test_prefetch.o test_byteorder.o test_per_lcore.o test_atomic.o test_malloc.o test_cycles.o test_spinlock.o test_memory.o test_memzone.o test_ring.o test_ring_perf.o test_pmd_perf.o test_rwlock.o test_timer.o test_timer_perf.o test_timer_racecond.o test_mempool.o test_mempool_perf.o test_mbuf.o test_logs.o test_memcpy.o test_memcpy_perf.o test_hash.o test_thash.o test_hash_perf.o test_hash_functions.o test_hash_scaling.o test_hash_multiwriter.o test_debug.o test_errno.o test_tailq.o test_string_fns.o test_cpuflags.o test_mp_secondary.o test_eal_flags.o test_eal_fs.o test_alarm.o test_interrupts.o test_version.o test_func_reentrancy.o test_cmdline.o test_cmdline_num.o test_cmdline_etheraddr.o test_cmdline_portlist.o test_cmdline_ipaddr.o test_cmdline_cirbuf.o test_cmdline_string.o test_cmdline_lib.o test_red.o test_sched.o test_meter.o test_kni.o test_power.o test_power_acpi_cpufreq.o test_power_kvm_vm.o test_common.o test_distributor.o test_distributor_perf.o test_reorder.o test_devargs.o virtual_pmd.o packet_burst_generator.o test_acl.o test_link_bonding.o test_link_bonding_mode4.o test_link_bonding_rssconf.o test_pmd_ring.o test_pmd_ring_perf.o test_kvargs.o -Wl,-export-dynamic -Wl,-export-dynamic -Wl,-export-dynamic -L/tmp/dpdk/x86_64-native-linuxapp-gcc/lib -Wl,--as-needed -Wl,-lrt -Wl,-lm -L/tmp/dpdk/x86_64-native-linuxapp-gcc/lib -Wl,-lrte_kni -Wl,-lrte_port -Wl,-lrte_pdump -Wl,-lrte_distributor -Wl,-lrte_reorder -Wl,-lrte_ip_frag -Wl,-lrte_meter -Wl,-lrte_sched -Wl,--whole-archive -Wl,-lrte_acl -Wl,--no-whole-archive -Wl,-lrte_jobstats -Wl,-lrte_power -Wl,--whole-archive -Wl,-lrte_timer -Wl,-lrte_hash -Wl,-lrte_vhost -Wl,-lrte_kvargs -Wl,-lrte_mbuf -Wl,-lethdev -Wl,-lrte_mempool -Wl,-lrte_ring -Wl,-lrte_eal -Wl,-lrte_cmdline -Wl,-lrte_cfgfile -Wl,-lrte_pmd_bond -Wl,-lrte_pmd_af_packet -Wl,-lrte_pmd_cxgbe -Wl,-lrte_pmd_e1000 -Wl,-lrte_pmd_ena -Wl,-lrte_pmd_enic -Wl,-lrte_pmd_fm10k -Wl,-lrte_pmd_ixgbe -Wl,-lrte_pmd_mlx5 -Wl,-libverbs -Wl,-lrte_pmd_null -Wl,-lrte_pmd_ring -Wl,-lrte_pmd_virtio -Wl,-lrte_pmd_vhost -Wl,-lrte_pmd_vmxnet3_uio -Wl,--no-whole-archive -Wl,-ldl /tmp/dpdk/x86_64-native-linuxapp-gcc/lib/librte_eal.a(eal_timer.o): In function `get_tsc_freq': eal_timer.c:(.text+0x152): undefined reference to `clock_gettime' eal_timer.c:(.text+0x190): undefined reference to `clock_gettime' /tmp/dpdk/x86_64-native-linuxapp-gcc/lib/librte_eal.a(eal_alarm.o): In function `rte_eal_alarm_set': eal_alarm.c:(.text+0x382): undefined reference to `clock_gettime' /tmp/dpdk/x86_64-native-linuxapp-gcc/lib/librte_eal.a(eal_alarm.o): In function `eal_alarm_callback': eal_alarm.c:(.text+0x5e2): undefined reference to `clock_gettime' collect2: ld returned 1 exit status make[5]: *** [test] Error 1 make[4]: *** [test] Error 2 make[3]: *** [app] Error 2 make[2]: *** [all] Error 2 make[1]: *** [pre_install] Error 2 make: *** [install] Error 2 but kindest regards Raslan Darawsheh From: Christian Ehrhardt [mailto:christian.ehrha...@canonical.com] Sent: Tuesday, July 12, 2016 1:10 PM To: Raslan Darawsheh Cc: dev at dpdk.org Subject: Re: [dpdk-dev] Compiling DPDK is not working on Red Hat 6.7 Hi, checking "man clock_gettime" I see: "Link with -lrt (only for glibc versions before 2.17)." RH 6.7 is at glibc 2.12, I haven't check the build, but you might easily run the make with V=1 and see the call. Check if it contains -lrt for the linking step. Christian Ehrhardt Software Engineer, Ubuntu Server Canonical Ltd On Tue, Jul 12, 2016 at 12:02 PM, Raslan Darawsheh mailto:rasland at mellanox.com>> wrote: Hi, When trying to compile DPDK on Red Hat Enterprise Linux Server release 6.7 (Santiago) it fails to compile. This is the compilation error that is being seen: LD test /download/dpdk/x86_64-native-linuxapp-gcc/lib/librte_eal.a(eal_timer.o): In function `get_tsc_freq': eal_timer.c:(.text+0x152): undefined reference to `clock_gettime' eal_timer.c:(.text+0x190): undefined reference to `clock_gettime' /download/dpdk/x86_64-native-linuxapp-gcc/lib/librte_eal.a(eal_alarm.o): In function `rte_eal_alarm_set'
[dpdk-dev] Compiling DPDK is not working on Red Hat 6.7
Hi, When trying to compile DPDK on Red Hat Enterprise Linux Server release 6.7 (Santiago) it fails to compile. This is the compilation error that is being seen: LD test /download/dpdk/x86_64-native-linuxapp-gcc/lib/librte_eal.a(eal_timer.o): In function `get_tsc_freq': eal_timer.c:(.text+0x152): undefined reference to `clock_gettime' eal_timer.c:(.text+0x190): undefined reference to `clock_gettime' /download/dpdk/x86_64-native-linuxapp-gcc/lib/librte_eal.a(eal_alarm.o): In function `rte_eal_alarm_set': eal_alarm.c:(.text+0x382): undefined reference to `clock_gettime' /download/dpdk/x86_64-native-linuxapp-gcc/lib/librte_eal.a(eal_alarm.o): In function `eal_alarm_callback': eal_alarm.c:(.text+0x5e2): undefined reference to `clock_gettime' collect2: ld returned 1 exit status make[5]: *** [test] Error 1 make[4]: *** [test] Error 2 make[3]: *** [app] Error 2 make[2]: *** [all] Error 2 make[1]: *** [pre_install] Error 2 make: *** [install] Error 2 Kindest regards Raslan Darawsheh