All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH 1/1] package/cc-tool: link with libatomic when needed
Date: Sat, 29 Jul 2017 22:44:13 +0200	[thread overview]
Message-ID: <20170729224413.55980d76@windsurf.lan> (raw)
In-Reply-To: <20170729203220.20024-1-bernd.kuhls@t-online.de>

Hello,

On Sat, 29 Jul 2017 22:32:20 +0200, Bernd Kuhls wrote:
> Detecting the boost program_options library is broken:
> 
> checking for the Boost program_options library... no
> configure: error: cannot find the flags to link with Boost program_options
> 
> config.log shows the reason, libatomic is missing:
> 
> conftest.o: In function `boost::detail::sp_counted_base::release()':
> conftest.cpp:(.text._ZN5boost6detail15sp_counted_base7releaseEv[_ZN5boost6detail15sp_counted_base7releaseEv]+0xc):
>  undefined reference to `__atomic_fetch_sub_4'
> conftest.cpp:(.text._ZN5boost6detail15sp_counted_base7releaseEv[_ZN5boost6detail15sp_counted_base7releaseEv]+0x38):
>  undefined reference to `__atomic_fetch_sub_4'
> /home/buildroot/br4/output/host/sparc-buildroot-linux-uclibc/sysroot/usr/lib/libboost_program_options.so:
>  undefined reference to `__atomic_fetch_add_4'
> 
> Please note that using LIBS=-latomic is not enough, although it fixes
> the configure check the bug reoccurs when linking cc-tool:
> 
>   CXXLD    cc-tool
> src/application/cc_flasher.o: In function `boost::detail::sp_counted_base::weak_release()':
> cc_flasher.cpp:(.text._ZN5boost6detail15sp_counted_base12weak_releaseEv[_ZN5boost6detail15sp_counted_base12weak_releaseEv]+0xc):
>  undefined reference to `__atomic_fetch_sub_4'
> 
> We need to add -latomic to CXXFLAGS to both fix configure and linking.
> 
> Fixes
> http://autobuild.buildroot.net/results/596/596f97364bb2c7598b0646da8160939356f0d2c6/
> 
> Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
> ---
>  package/cc-tool/cc-tool.mk | 4 ++++
>  1 file changed, 4 insertions(+)

To be honest, this is not the ideal solution. Indeed, it's not cc-tool
itself that needs libatomic, but the libboost_program_options library.
So the dynamic linking situation would better be solved by having
libboost_program_options linked against libatomic. However, this
wouldn't solve the static linking situation. And since cc-tool doesn't
use pkg-config to detect boost, we're pretty much out of luck.

So, I've applied your patch, even if not ideal.

Thanks!

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

      reply	other threads:[~2017-07-29 20:44 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-07-29 20:32 [Buildroot] [PATCH 1/1] package/cc-tool: link with libatomic when needed Bernd Kuhls
2017-07-29 20:44 ` Thomas Petazzoni [this message]

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=20170729224413.55980d76@windsurf.lan \
    --to=thomas.petazzoni@free-electrons.com \
    --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.