5a352a3a98
Running ld with -r switches the linker to a very special mode where
some other linker options don't make sense.
In particular, -export-dynamic normally requires that all global
symbols be included in the dynamic symbol table, but a .o file doesn't
even have a dynamic symbol table.
When given both options it looks like the gnu linker just ignores
-export-dynamic.
Unfortunately some versions of lld (https://lld.llvm.org/) have a bug
that causes it to try to create a dynamic symbol table in the output
.o file and ends up corrupting it
(https://bugs.llvm.org/show_bug.cgi?id=43552). Current (git) version
of lld now issues an error.
This patch filters out -export-dynamic from $(LDFLAGS) when using
-r. With this patch I can build dpdk with lld.
Fixes:
|
||
---|---|---|
.. | ||
arch | ||
exec-env | ||
internal | ||
machine | ||
target/generic | ||
toolchain | ||
rte.app.mk | ||
rte.bsdmodule.mk | ||
rte.combinedlib.mk | ||
rte.cpuflags.mk | ||
rte.extapp.mk | ||
rte.extlib.mk | ||
rte.extobj.mk | ||
rte.extshared.mk | ||
rte.extsubdir.mk | ||
rte.gnuconfigure.mk | ||
rte.helper.mk | ||
rte.hostapp.mk | ||
rte.hostlib.mk | ||
rte.install.mk | ||
rte.lib.mk | ||
rte.module.mk | ||
rte.obj.mk | ||
rte.sdkbuild.mk | ||
rte.sdkconfig.mk | ||
rte.sdkdepdirs.mk | ||
rte.sdkdoc.mk | ||
rte.sdkexamples.mk | ||
rte.sdkgcov.mk | ||
rte.sdkinstall.mk | ||
rte.sdkroot.mk | ||
rte.sdktest.mk | ||
rte.shared.mk | ||
rte.subdir.mk | ||
rte.vars.mk |