mk: fix link of combined shared library using CC
If we set EXTRA_CFLAGS=-O0, build fails with following error: /usr/bin/ld: test: hidden symbol `mknod' in /usr/lib64/libc_nonshared.a(mknod.oS) is referenced by DSO Fix: link combined shared lib using CC if LINK_USING_CC is enabled. Signed-off-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com> Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com> [Thomas: remove change to rte.lib.mk] Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
This commit is contained in:
parent
944088c2ab
commit
815cfb7925
@ -29,6 +29,8 @@
|
||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
include $(RTE_SDK)/mk/internal/rte.build-pre.mk
|
||||
|
||||
# VPATH contains at least SRCDIR
|
||||
VPATH += $(SRCDIR)
|
||||
|
||||
@ -45,7 +47,15 @@ sharelib: $(LIB_ONE) FORCE
|
||||
|
||||
OBJS = $(wildcard $(RTE_OUTPUT)/build/lib/*.o)
|
||||
|
||||
O_TO_S = $(LD) $(LDFLAGS) -shared $(OBJS) -o $(RTE_OUTPUT)/lib/$(LIB_ONE)
|
||||
ifeq ($(LINK_USING_CC),1)
|
||||
# Override the definition of LD here, since we're linking with CC
|
||||
LD := $(CC) $(CPU_CFLAGS)
|
||||
LD_MULDEFS := $(call linkerprefix,-z$(comma)muldefs)
|
||||
CPU_LDFLAGS := $(call linkerprefix,$(CPU_LDFLAGS))
|
||||
endif
|
||||
|
||||
O_TO_S = $(LD) $(CPU_LDFLAGS) $(LD_MULDEFS) -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