[dpdk-dev] [PATCH] Don't combine '-r' and '--export-dynamic' linker options
Thomas Monjalon
thomas at monjalon.net
Thu Dec 12 17:05:16 CET 2019
25/10/2019 03:20, Rafael Ávila de Espíndola:
> 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 drops $(LDFLAGS) when using -r. With this patch I can build
> dpdk with lld.
[...]
> -PMDINFO_LD = $(CROSS)ld $(LDFLAGS) -r -o $@.o $@.pmd.o $@
> +PMDINFO_LD = $(CROSS)ld -r -o $@.o $@.pmd.o $@
Dealing with compiler bugs is really annoying.
I'm afraid removing LDFLAGS may break in some environments.
Could you just filter-out some incompatible options?
And what about meson? Is there some similar issue?
More information about the dev
mailing list