All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rafael Avila de Espindola <espindola@scylladb.com>
To: dev@dpdk.org
Cc: Thomas Monjalon <thomas@monjalon.net>
Subject: Re: [dpdk-dev] [PATCH] Don't combine '-r' and '--export-dynamic' linker options
Date: Fri, 06 Dec 2019 14:51:03 -0800	[thread overview]
Message-ID: <87sglxukyw.fsf@espindo.la> (raw)
In-Reply-To: <20191025012013.118919-1-espindola@scylladb.com>

Hi Thomas,

Are you the right maintainer fer reviewing this patch?

Thanks,
Rafael

Rafael Ávila de Espíndola <espindola@scylladb.com> writes:

> 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.
>
> Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com>
> ---
>  mk/internal/rte.compile-pre.mk | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/mk/internal/rte.compile-pre.mk b/mk/internal/rte.compile-pre.mk
> index 0cf3791b4..6cd7e559a 100644
> --- a/mk/internal/rte.compile-pre.mk
> +++ b/mk/internal/rte.compile-pre.mk
> @@ -61,7 +61,7 @@ CHECK_EXPERIMENTAL = $(EXPERIMENTAL_CHECK) $(SRCDIR)/$(EXPORT_MAP) $@
>  
>  PMDINFO_GEN = $(RTE_SDK_BIN)/app/dpdk-pmdinfogen $@ $@.pmd.c
>  PMDINFO_CC = $(CC) $(CPPFLAGS) $(CFLAGS) $(EXTRA_CFLAGS) -c -o $@.pmd.o $@.pmd.c
> -PMDINFO_LD = $(CROSS)ld $(LDFLAGS) -r -o $@.o $@.pmd.o $@
> +PMDINFO_LD = $(CROSS)ld -r -o $@.o $@.pmd.o $@
>  PMDINFO_TO_O = if grep -q 'RTE_PMD_REGISTER_.*(.*)' $<; then \
>  	echo "$(if $V,$(PMDINFO_GEN),  PMDINFO $@.pmd.c)" && \
>  	$(PMDINFO_GEN) && \
> -- 
> 2.21.0

  reply	other threads:[~2019-12-09  9:25 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-25  1:20 [dpdk-dev] [PATCH] Don't combine '-r' and '--export-dynamic' linker options Rafael Ávila de Espíndola
2019-12-06 22:51 ` Rafael Avila de Espindola [this message]
2019-12-12 16:05 ` Thomas Monjalon
2019-12-12 17:44   ` Rafael Avila de Espindola
2019-12-13 10:07   ` Ray Kinsella

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87sglxukyw.fsf@espindo.la \
    --to=espindola@scylladb.com \
    --cc=dev@dpdk.org \
    --cc=thomas@monjalon.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.