* Rebase patches to Buildroot 2021.02-rc3 * Update Buildroot to 2021.02-rc3 * Declare Kernel headers to be Linux version 5.10 (since they are, and new Buildroot knows about 5.10)
76 lines
2.9 KiB
Diff
76 lines
2.9 KiB
Diff
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)
|
|
|