On Mon, Nov 02, 2015 at 08:10:25AM +0100, Thomas Monjalon wrote: > 2015-11-02 00:05, Ferruh Yigit: > > On Mon, Nov 02, 2015 at 12:24:51AM +0100, Thomas Monjalon wrote: > > > > ifeq ($(LINK_USING_CC),1) > > > > # Override the definition of LD here, since we're linking with CC > > > > LD := $(CC) $(CPU_CFLAGS) > > > > -O_TO_S = $(LD) $(call linkerprefix,$(CPU_LDFLAGS)) \ > > > > +O_TO_S = $(LD) $(call linkerprefix,$(SHARED_LDFLAGS)) \ > > > > -shared $(OBJS) -o $(RTE_OUTPUT)/lib/$(LIB_ONE) > > > > else > > > > -O_TO_S = $(LD) $(CPU_LDFLAGS) \ > > > > +O_TO_S = $(LD) $(SHARED_LDFLAGS) \ > > > > -shared $(OBJS) -o $(RTE_OUTPUT)/lib/$(LIB_ONE) > > > > endif > > > > > > Why do you remove CPU_LDFLAGS? > > > > CPU_LDFLAGS shared by other libraries and confilicts with this usage. > > Sorry I don't understand. > CPU_LDFLAGS is -melf_i386 for Intel 32-bit. > Why removing it for combined library? What is the conflict?
When combined shared option enabled, CPP_LDFLAGS will be processed and other libraries CPU_LDFLAGS value will contain this value, and generate an compilation eroor like following: " gcc -m64 -Wl,--version-script=./lib/libdpdk.map -Wl,--version-script=/root/dpdk/lib/librte_eal/linuxapp/eal/rte_eal_version.map -shared <objs> -Wl,-soname,librte_eal.so.2.1 -o librte_eal.so.2.1 /usr/bin/ld: cannot open linker script file ./lib/libdpdk.map: No such file or directory collect2: error: ld returned 1 exit status " That is why I have created a new variable, and CPU_LDFLAGS was empty, but with double check what CPU_LDFLAGS is, it should stay there, I will update the patch, at worst I can add a new flag instead of replacing CPU_LDFLAGS Regards, ferruh