All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yann E. MORIN <yann.morin.1998@free.fr>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH] package/dmalloc: Fix for ARC with enabled BR2_SSP_ALL
Date: Wed, 10 Feb 2021 22:45:15 +0100	[thread overview]
Message-ID: <20210210214514.GF1679218@scaer> (raw)
In-Reply-To: <20210209104726.20132-1-kremneva@synopsys.com>

Veronika, All,

+Fabrice, see below...

On 2021-02-09 13:47 +0300, Veronika Kremneva spake thusly:
> When building dmalloc for ARC while having "-fstack-protector-all" option on,
> we are getting the following error:
> ------------------------------->8---------------------------
> >>> dmalloc 5.5.2 Installing to target
> cp -dpf $HOME/buildroot/output/host/arc-buildroot-linux-gnu/sysroot/usr/lib/libdmalloc*.so
> $HOME/buildroot/output/target/usr/lib
> cp -dpf $HOME/buildroot/output/host/arc-buildroot-linux-gnu/sysroot/usr/bin/dmalloc
> $HOME/buildroot/output/target/usr/bin/dmalloc
> ERROR: architecture for "/usr/lib/libdmallocthcxx.so" is "ARCompact", should be "ARCv2"
> ERROR: architecture for "/usr/lib/libdmallocth.so" is "ARCompact", should be "ARCv2"
> ERROR: architecture for "/usr/lib/libdmalloc.so" is "ARCompact", should be "ARCv2"
> ERROR: architecture for "/usr/lib/libdmallocxx.so" is "ARCompact", should be "ARCv2"
> make: *** [$HOME/buildroot/output/build/dmalloc-5.5.2/.stamp_installed] Error 1
> ------------------------------->8---------------------------
> 
> You can observe this error in following builds:
> http://autobuild.buildroot.net/results/57f/57fc51cee4ec9339ea3be23f8c8c9f7ecca1a857/
> http://autobuild.buildroot.net/results/b4d/b4d457369f35e1942c294b0ea3b3cab4cae0d7a3/
> http://autobuild.buildroot.net/results/cfc/cfc111076c955dd5c1125c6e34a161121ea11200/
> http://autobuild.buildroot.net/results/1d0/1d0ffcefbf545d1748e928603fd07c0a8de98eb5/
> 
> In all of those builds architecture "ARCv2" was explicitly chosen during configuration
> yet we are getting this error. As we go deeper we find that the object file that linker
> is trying to process contains no target code thus the default "ARCompact" is being used.
> But why the object file is empty? Went to check link args:
> ------------------------------->8---------------------------
> $HOME/buildroot/output/host/bin/arc-buildroot-linux-gnu-ld: conftest.a(conftest.o):
> relocation R_ARC_32_ME against `__stack_chk_guard' can not be used when making a shared
> object; recompile with -fPIC
> $HOME/buildrootc/output/host/bin/arc-buildroot-linux-gnu-ld: BFD (GNU Binutils) 2.34.50.20200611
> assertion fail elf32-arc.c:1802
> $HOME/buildroot/output/host/bin/arc-buildroot-linux-gnu-ld: unrecognized option '-all'
> $HOME/buildroot/output/host/bin/arc-buildroot-linux-gnu-ld: use the --help option for usage information
> configure:4475: result: $HOME/buildroot/output/host/bin/arc-buildroot-linux-gnu-ld -G -o $@.t
> ------------------------------->8---------------------------
> 
> Looks like we are missing the -fPIC flag in DMALLOC_CFLAGS. As shared libraries should always
> be compiled with "-fPIC" following patch adds this flag to the dmalloc.mk.

While reviewing that patch, I see that Fabrice already sent a similar
patch quite some time ago now:

    https://patchwork.ozlabs.org/project/buildroot/patch/20200601092104.830051-1-fontaine.fabrice at gmail.com/

> Signed-off-by: Veronika Kremneva <kremneva@synopsys.com>
> ---
>  package/dmalloc/dmalloc.mk | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/package/dmalloc/dmalloc.mk b/package/dmalloc/dmalloc.mk
> index 38b2c02027..638fe0fcda 100644
> --- a/package/dmalloc/dmalloc.mk
> +++ b/package/dmalloc/dmalloc.mk
> @@ -16,6 +16,10 @@ DMALLOC_INSTALL_STAGING = YES
>  DMALLOC_CONF_OPTS = --enable-shlib
>  DMALLOC_CFLAGS = $(TARGET_CFLAGS)
>  
> +ifeq ($(BR2_STATIC_LIBS),)
> +DMALLOC_CFLAGS += -fPIC

So, it seems that both of you arrived to a similar conclusion, with a
similar analysis.

I think the change from Fabrice would in the end be better, if it at
least because it drops a bundled patch.

Except for that, I wonder if we care about not adding -fPIC for static
libs. Indeed, the current patch unconditionally adds -fPIC to all
builds, shared and static alike...

Besides, -fPIC is almost innocuous for static builds (maybe a very
slight overhead to resolve or jump to some symbols)...

What's your thoughts, both Veronika and Fabrice?

Regards,
Yann E. MORIN.

> +endif
> +
>  ifeq ($(BR2_INSTALL_LIBSTDCPP),y)
>  DMALLOC_CONF_OPTS += --enable-cxx
>  else
> -- 
> 2.16.2
> 
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

  reply	other threads:[~2021-02-10 21:45 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-09 10:47 [Buildroot] [PATCH] package/dmalloc: Fix for ARC with enabled BR2_SSP_ALL Veronika Kremneva
2021-02-10 21:45 ` Yann E. MORIN [this message]
2021-02-12 20:19   ` Fabrice Fontaine
2021-02-13  8:27     ` Alexey Brodkin
     [not found]       ` <SN1PR12MB2351CE14450D2AF4FA2C36B5CA9D9@SN1PR12MB2351.namprd12.prod.outlook.com>
2021-03-03 12:22         ` Alexey Brodkin
2021-04-16 12:13         ` Veronika Kremneva
2021-04-16 12:42           ` Fabrice Fontaine
2021-05-15 15:12 ` Yann E. MORIN

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=20210210214514.GF1679218@scaer \
    --to=yann.morin.1998@free.fr \
    --cc=buildroot@busybox.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.