summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Ameen <alex.ameen.tx@gmail.com>2022-05-08 21:46:30 -0500
committerAlex Ameen <alex.ameen.tx@gmail.com>2022-05-08 21:46:30 -0500
commit1d2577357ee704da2d6d7c7da119ad82ba8ca172 (patch)
tree387f5e800997f780940ec9df581dc0b1809a0117
parentb9ba1b3f0bfe8fec6d197f7260cb95659354ccbd (diff)
downloadlibtool-1d2577357ee704da2d6d7c7da119ad82ba8ca172.tar.gz
libtool: permit compiler libs in shlibs
-rw-r--r--build-aux/ltmain.in9
-rw-r--r--m4/libtool.m42
2 files changed, 10 insertions, 1 deletions
diff --git a/build-aux/ltmain.in b/build-aux/ltmain.in
index a5f21a1d..22500a9d 100644
--- a/build-aux/ltmain.in
+++ b/build-aux/ltmain.in
@@ -5900,6 +5900,15 @@ func_mode_link ()
lib)
# Linking convenience modules into shared libraries is allowed,
# but linking other static libraries is non-portable.
+ case "$deplib" in
+ # Linking certain compiler provided static libraries, while
+ # non-portable, is reasonable safe and practically necessary on
+ # certain platforms.
+ */libgcc*.$libext | */libclang_rt*.$libext)
+ deplibs="$deplib $deplibs"
+ continue
+ ;;
+ esac
case " $dlpreconveniencelibs " in
*" $deplib "*) ;;
*)
diff --git a/m4/libtool.m4 b/m4/libtool.m4
index 79a2451e..ab5af335 100644
--- a/m4/libtool.m4
+++ b/m4/libtool.m4
@@ -7554,7 +7554,7 @@ if AC_TRY_EVAL(ac_compile); then
for p in `eval "$output_verbose_link_cmd"`; do
case $prev$p in
- -L* | -R* | -l*)
+ -L* | -R* | -l* | */clang_rt*.a)
# Some compilers place space between "-{L,R}" and the path.
# Remove the space.
if test x-L = "$p" ||