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 1/1] package/botan: fix build with -latomic
Date: Fri, 19 Feb 2021 22:35:48 +0100	[thread overview]
Message-ID: <20210219213548.GF2276@scaer> (raw)
In-Reply-To: <20210219193824.2573501-1-fontaine.fabrice@gmail.com>

Fabrice, All,

On 2021-02-19 20:38 +0100, Fabrice Fontaine spake thusly:
> Static build with toolchains needing -latomic (e.g sparc) is broken
> since version 2.17.0 and
> https://github.com/randombit/botan/commit/88af81b88976d9a1293280f68df597220ab42767
> 
> Fixes:
>  - http://autobuild.buildroot.org/results/5c03ee53a34a3cdb409cffcda76e5cc2c723778b
> 
> Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>

Applied to master, thanks.

Regards,
Yann E. MORIN.

> ---
>  ...roup-l-flags-from-LDFLAGS-to-the-end.patch | 75 +++++++++++++++++++
>  package/botan/botan.mk                        |  5 +-
>  2 files changed, 76 insertions(+), 4 deletions(-)
>  create mode 100644 package/botan/0001-Add--extra-libs-option-and-group-l-flags-from-LDFLAGS-to-the-end.patch
> 
> diff --git a/package/botan/0001-Add--extra-libs-option-and-group-l-flags-from-LDFLAGS-to-the-end.patch b/package/botan/0001-Add--extra-libs-option-and-group-l-flags-from-LDFLAGS-to-the-end.patch
> new file mode 100644
> index 0000000000..8aa5c68652
> --- /dev/null
> +++ b/package/botan/0001-Add--extra-libs-option-and-group-l-flags-from-LDFLAGS-to-the-end.patch
> @@ -0,0 +1,75 @@
> +From af63fe89228172e5a395f7e6491fae3bfa9da4b1 Mon Sep 17 00:00:00 2001
> +From: Jack Lloyd <jack@randombit.net>
> +Date: Mon, 15 Feb 2021 15:01:38 -0500
> +Subject: [PATCH] Add --extra-libs option and group -l flags from LDFLAGS to
> + the end
> +
> +Ref #2622
> +
> +[Retrieved from:
> +https://github.com/randombit/botan/commit/af63fe89228172e5a395f7e6491fae3bfa9da4b1]
> +Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
> +---
> + configure.py               | 14 ++++++++++++++
> + src/build-data/makefile.in |  2 +-
> + 2 files changed, 15 insertions(+), 1 deletion(-)
> +
> +diff --git a/configure.py b/configure.py
> +index 73fc0271e9..865a6c8e62 100755
> +--- a/configure.py
> ++++ b/configure.py
> +@@ -333,6 +333,9 @@ def process_command_line(args): # pylint: disable=too-many-locals,too-many-state
> +     target_group.add_option('--ldflags', metavar='FLAGS',
> +                             help='set linker flags', default=None)
> + 
> ++    target_group.add_option('--extra-libs', metavar='LIBS',
> ++                            help='specify extra libraries to link against', default='')
> ++
> +     target_group.add_option('--ar-command', dest='ar_command', metavar='AR', default=None,
> +                             help='set path to static archive creator')
> + 
> +@@ -2020,6 +2023,12 @@ def choose_cxx_exe():
> +         else:
> +             return '%s %s' % (options.compiler_cache, cxx)
> + 
> ++    def extra_libs(libs, cc):
> ++        if libs is None:
> ++            return ''
> ++
> ++        return ' '.join([(cc.add_lib_option % lib) for lib in libs.split(',')])
> ++
> +     variables = {
> +         'version_major':  Version.major(),
> +         'version_minor':  Version.minor(),
> +@@ -2149,6 +2158,7 @@ def choose_cxx_exe():
> +         'cc_sysroot': sysroot_option(),
> +         'cc_compile_flags': options.cxxflags or cc.cc_compile_flags(options),
> +         'ldflags': options.ldflags or '',
> ++        'extra_libs': extra_libs(options.extra_libs, cc),
> +         'cc_warning_flags': cc.cc_warning_flags(options),
> +         'output_to_exe': cc.output_to_exe,
> +         'cc_macro': cc.macro_name,
> +@@ -3029,6 +3039,10 @@ def canonicalize_build_targets(options):
> +     if options.build_fuzzers == 'libfuzzer' and options.fuzzer_lib is None:
> +         options.fuzzer_lib = 'Fuzzer'
> + 
> ++    if options.ldflags is not None:
> ++        libs = [m.group(1) for m in re.finditer(r'-l([a-z0-9]+)', options.ldflags)]
> ++        options.extra_libs += ','.join(libs)
> ++
> + # Checks user options for consistency
> + # This method DOES NOT change options on behalf of the user but explains
> + # why the given configuration does not work.
> +diff --git a/src/build-data/makefile.in b/src/build-data/makefile.in
> +index 4692d00f71..82f6576650 100644
> +--- a/src/build-data/makefile.in
> ++++ b/src/build-data/makefile.in
> +@@ -20,7 +20,7 @@ LDFLAGS        = %{ldflags}
> + EXE_LINK_CMD   = %{exe_link_cmd}
> + 
> + LIB_LINKS_TO   = %{external_link_cmd} %{link_to}
> +-EXE_LINKS_TO   = %{link_to_botan} $(LIB_LINKS_TO)
> ++EXE_LINKS_TO   = %{link_to_botan} $(LIB_LINKS_TO) %{extra_libs}
> + 
> + BUILD_FLAGS    = $(ABI_FLAGS) $(LANG_FLAGS) $(CXXFLAGS) $(WARN_FLAGS)
> + 
> diff --git a/package/botan/botan.mk b/package/botan/botan.mk
> index f809aa2e0d..c3af4a45d8 100644
> --- a/package/botan/botan.mk
> +++ b/package/botan/botan.mk
> @@ -18,14 +18,11 @@ BOTAN_CONF_OPTS = \
>  	--os=linux \
>  	--cc=gcc \
>  	--cc-bin="$(TARGET_CXX)" \
> -	--ldflags="$(BOTAN_LDFLAGS)" \
>  	--prefix=/usr \
>  	--without-documentation
>  
> -BOTAN_LDFLAGS = $(TARGET_LDFLAGS)
> -
>  ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y)
> -BOTAN_LDFLAGS += -latomic
> +BOTAN_CONF_OPTS += --extra-libs=atomic
>  endif
>  
>  ifeq ($(BR2_SHARED_LIBS),y)
> -- 
> 2.30.0
> 
> _______________________________________________
> 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-19 21:35 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-19 19:38 [Buildroot] [PATCH 1/1] package/botan: fix build with -latomic Fabrice Fontaine
2021-02-19 21:35 ` Yann E. MORIN [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=20210219213548.GF2276@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.