mk: fix -share option error
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 <nhorman@tuxdriver.com>
This commit is contained in:
parent
894fd42e7f
commit
d82493c881
@ -59,6 +59,11 @@ build: _postbuild
|
||||
|
||||
exe2cmd = $(strip $(call dotfile,$(patsubst %,%.cmd,$(1))))
|
||||
|
||||
ifeq ($(LINK_USING_CC),1)
|
||||
# Override the definition of LD here, since we're linking with CC
|
||||
LD := $(CC)
|
||||
endif
|
||||
|
||||
O_TO_A = $(AR) crus $(LIB) $(OBJS-y)
|
||||
O_TO_A_STR = $(subst ','\'',$(O_TO_A)) #'# fix syntax highlight
|
||||
O_TO_A_DISP = $(if $(V),"$(O_TO_A_STR)"," AR $(@)")
|
||||
@ -68,7 +73,7 @@ O_TO_A_DO = @set -e; \
|
||||
$(O_TO_A) && \
|
||||
echo $(O_TO_A_CMD) > $(call exe2cmd,$(@))
|
||||
|
||||
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)
|
||||
O_TO_S_STR = $(subst ','\'',$(O_TO_S)) #'# fix syntax highlight
|
||||
O_TO_S_DISP = $(if $(V),"$(O_TO_S_STR)"," LD $(@)")
|
||||
O_TO_S_DO = @set -e; \
|
||||
@ -84,7 +89,7 @@ O_TO_C_DO = @set -e; \
|
||||
$(lib_dir) \
|
||||
$(copy_obj)
|
||||
else
|
||||
O_TO_C = $(LD) -z muldefs -share $(OBJS-y) -o $(LIB_ONE)
|
||||
O_TO_C = $(LD) -z muldefs -shared $(OBJS-y) -o $(LIB_ONE)
|
||||
O_TO_C_STR = $(subst ','\'',$(O_TO_C)) #'# fix syntax highlight
|
||||
O_TO_C_DISP = $(if $(V),"$(O_TO_C_STR)"," LD_C $(@)")
|
||||
O_TO_C_DO = @set -e; \
|
||||
|
@ -45,7 +45,7 @@ sharelib: $(LIB_ONE) FORCE
|
||||
|
||||
OBJS = $(wildcard $(RTE_OUTPUT)/build/lib/*.o)
|
||||
|
||||
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)
|
||||
O_TO_S_STR = $(subst ','\'',$(O_TO_S)) #'# fix syntax highlight
|
||||
O_TO_S_DISP = $(if $(V),"$(O_TO_S_STR)"," LD $(@)")
|
||||
O_TO_S_CMD = "cmd_$@ = $(O_TO_S_STR)"
|
||||
|
Loading…
Reference in New Issue
Block a user