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)
 
