From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Monjalon Subject: Re: [PATCH 01/15 v2] makefiles: Fixed -share command line option error Date: Fri, 18 Apr 2014 13:23:19 +0200 Message-ID: <465940823.XQ0HDUOTVm@xps13> References: <1397585169-14537-2-git-send-email-nhorman@tuxdriver.com> <1397656304-468-1-git-send-email-nhorman@tuxdriver.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7Bit Cc: dev-VfR2kkLFssw@public.gmane.org To: Neil Horman Return-path: In-Reply-To: <1397656304-468-1-git-send-email-nhorman-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org> List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces-VfR2kkLFssw@public.gmane.org Sender: "dev" Hi Neil, 2014-04-16 09:51, Neil Horman: > The shared libraries built with the current makefile set produce static > libraries rather than actual shared objects. This is due to several missing > options that are required to correctly build shared objects using ld, as > well as a mis-specified -share option (which should be -shared). Switching > to the use of CC rather than LD and fixing the -shared option corrects > these problems and builds the DSOs correctly. > > Signed-off-by: Neil Horman [...] > --- a/mk/rte.lib.mk > +++ b/mk/rte.lib.mk [...] > +ifeq ($(LINK_USING_CC),1) > +# Override the definition of LD here, since we're linking with CC > +LD := $(CC) > +endif [...] > -O_TO_S = $(LD) $(CPU_LDFLAGS) -z muldefs -share $(OBJS-y) -o $(LIB) > +O_TO_S = $(LD) $(CPU_LDFLAGS) -z muldefs -shared $(OBJS-y) -o $(LIB) I think that CPU_LDFLAGS should be prefixed with -Wl, in case of CC linking. So blindly assigning CC to LD variable seems a bad idea. Other makefiles have different O_TO_S commands depending of LINK_USING_CC. > --- a/mk/rte.sharelib.mk > +++ b/mk/rte.sharelib.mk [...] > -O_TO_S = $(LD) $(CPU_LDFLAGS) -share $(OBJS) -o $(RTE_OUTPUT)/lib/$(LIB_ONE) > +O_TO_S = $(LD) $(CPU_LDFLAGS) -shared $(OBJS) -o $(RTE_OUTPUT)/lib/$(LIB_ONE) Why not using CC here whether LINK_USING_CC is enabled? Feel free to send a v3 ;) -- Thomas