diff options
94 files changed, 262 insertions, 93 deletions
diff --git a/COPYING.SLIBTOOL b/COPYING.SLIBTOOL index 131c254..52d577a 100644 --- a/COPYING.SLIBTOOL +++ b/COPYING.SLIBTOOL @@ -2,7 +2,7 @@ /* */ /* slibtool: a strong libtool implementation, written in C */ /* */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -2,7 +2,7 @@ ##################################################################### ## slibtool: a strong libtool implementation, written in C ## -## Copyright (C) 2016--2024 SysDeer Technologies, LLC ## +## Copyright (C) 2016--2025 SysDeer Technologies, LLC ## ## Released under the Standard MIT License; see COPYING.SLIBTOOL. ## ##################################################################### diff --git a/aux/slibtool.sh b/aux/slibtool.sh index 0bde87d..078e77f 100755 --- a/aux/slibtool.sh +++ b/aux/slibtool.sh @@ -2,7 +2,7 @@ ##################################################################### ## slibtool: a strong libtool implementation, written in C ## -## Copyright (C) 2016--2024 SysDeer Technologies, LLC ## +## Copyright (C) 2016--2025 SysDeer Technologies, LLC ## ## Released under the Standard MIT License; see COPYING.SLIBTOOL. ## ##################################################################### @@ -11,7 +11,7 @@ ## ---------------------------------------------------------- ## ## This script only exists to satisfy build-time requirements in ## ## projects that directly invoke the generated libtool script at ## -## configure time (bad practice to beging with, should never be ## +## configure time (bad practice to begin with, should never be ## ## necessary in the first place). ## ## ## ## By default, slibtool.sh is _NOT_ copied to a project's build ## diff --git a/include/slibtool/slibtool.h b/include/slibtool/slibtool.h index 9336728..0642e9c 100644 --- a/include/slibtool/slibtool.h +++ b/include/slibtool/slibtool.h @@ -89,6 +89,7 @@ extern "C" { #define SLBT_DRIVER_PREFER_SHARED SLBT_DRIVER_XFLAG(0x100000) #define SLBT_DRIVER_PREFER_STATIC SLBT_DRIVER_XFLAG(0x200000) +#define SLBT_DRIVER_PREFER_SLTDL SLBT_DRIVER_XFLAG(0x400000) #define SLBT_DRIVER_STOOLIE_COPY SLBT_DRIVER_XFLAG(0x01000000) #define SLBT_DRIVER_STOOLIE_FORCE SLBT_DRIVER_XFLAG(0x02000000) diff --git a/m4/slibtool.m4 b/m4/slibtool.m4 index b1ed75b..b0219ea 100644 --- a/m4/slibtool.m4 +++ b/m4/slibtool.m4 @@ -2,7 +2,7 @@ # # # slibtool.m4: native slibtool integration for autoconf-based projects # # # -# Copyright (C) 2016--2024 SysDeer Technologies, LLC # +# Copyright (C) 2016--2025 SysDeer Technologies, LLC # # # # Permission is hereby granted, free of charge, to any person obtaining # # a copy of this software and associated documentation files (the # @@ -253,6 +253,12 @@ slibtool_set_flavor() ;; esac + case "_${slibtool_prefer_sltdl:-}" in + '_yes') + SLIBTOOL="${SLIBTOOL} --prefer-sltdl" + ;; + esac + # drop-in replacement enable_shared=${slibtool_enable_shared} enable_static=${slibtool_enable_static} @@ -448,6 +454,7 @@ AC_DEFUN([SLIBTOOL_INIT],[ AC_BEFORE([SLIBTOOL_LANG]) AC_REQUIRE([SLIBTOOL_PREREQ]) AC_REQUIRE([_SLIBTOOL_DEFAULTS]) +AC_REQUIRE([_SLIBTOOL_SLTDL_OPTION]) AC_REQUIRE([_SLIBTOOL_SET_FLAVOR]) AC_REQUIRE([_SLIBTOOL_ARGUMENT_HANDLING]) diff --git a/m4/sltdl.m4 b/m4/sltdl.m4 new file mode 100644 index 0000000..4d15333 --- /dev/null +++ b/m4/sltdl.m4 @@ -0,0 +1,39 @@ +############################################################################### +# # +# sltdl.m4: native libsltdl integration for autoconf-based projects # +# # +# Copyright (C) 2016--2025 SysDeer Technologies, LLC # +# # +# Permission is hereby granted, free of charge, to any person obtaining # +# a copy of this software and associated documentation files (the # +# "Software"), to deal in the Software without restriction, including # +# without limitation the rights to use, copy, modify, merge, publish, # +# distribute, sublicense, and/or sell copies of the Software, and to # +# permit persons to whom the Software is furnished to do so, subject to # +# the following conditions: # +# # +# The above copyright notice and this permission notice shall be included # +# in all copies or substantial portions of the Software. # +# # +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS # +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF # +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. # +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY # +# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, # +# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE # +# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # +# # +############################################################################### + + + +# __SLIBTOOL_SLTDL_OPTION +# ------------------ +AC_DEFUN([_SLIBTOOL_SLTDL_OPTION],[ +AC_BEFORE([$0],[SLIBTOOL_INIT]) +AC_BEFORE([$0],[_SLIBTOOL_ARGUMENT_HANDLING]) + +# slibtool: sltdl option +# --------------------------------- +slibtool_prefer_sltdl='yes' +]) diff --git a/m4/sysltdl.m4 b/m4/sysltdl.m4 new file mode 100644 index 0000000..baeb847 --- /dev/null +++ b/m4/sysltdl.m4 @@ -0,0 +1,39 @@ +############################################################################### +# # +# sysltdl.m4: system libltdl integration for autoconf-based projects # +# # +# Copyright (C) 2016--2025 SysDeer Technologies, LLC # +# # +# Permission is hereby granted, free of charge, to any person obtaining # +# a copy of this software and associated documentation files (the # +# "Software"), to deal in the Software without restriction, including # +# without limitation the rights to use, copy, modify, merge, publish, # +# distribute, sublicense, and/or sell copies of the Software, and to # +# permit persons to whom the Software is furnished to do so, subject to # +# the following conditions: # +# # +# The above copyright notice and this permission notice shall be included # +# in all copies or substantial portions of the Software. # +# # +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS # +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF # +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. # +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY # +# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, # +# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE # +# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # +# # +############################################################################### + + + +# __SLIBTOOL_SLTDL_OPTION +# ------------------ +AC_DEFUN([_SLIBTOOL_SLTDL_OPTION],[ +AC_BEFORE([$0],[SLIBTOOL_INIT]) +AC_BEFORE([$0],[_SLIBTOOL_ARGUMENT_HANDLING]) + +# slibtool: sltdl option +# --------------------------------- +slibtool_prefer_sltdl='no' +]) diff --git a/project/extras.mk b/project/extras.mk index a254d9c..2679189 100644 --- a/project/extras.mk +++ b/project/extras.mk @@ -107,6 +107,8 @@ install-slibtoolize: mkdir -p $(DESTDIR)$(DATADIR)/$(PACKAGE) cp -p $(SOURCE_DIR)/m4/slibtool.m4 $(DESTDIR)$(DATADIR)/$(PACKAGE) + cp -p $(SOURCE_DIR)/m4/sysltdl.m4 $(DESTDIR)$(DATADIR)/$(PACKAGE) + cp -p $(SOURCE_DIR)/m4/sltdl.m4 $(DESTDIR)$(DATADIR)/$(PACKAGE) cp -p $(SOURCE_DIR)/aux/ltmain.sh $(DESTDIR)$(DATADIR)/$(PACKAGE) cp -p $(SOURCE_DIR)/aux/slibtool.sh $(DESTDIR)$(DATADIR)/$(PACKAGE) cp -p $(SOURCE_DIR)/aux/ar-lib $(DESTDIR)$(DATADIR)/$(PACKAGE) diff --git a/src/arbits/output/slbt_au_output_arname.c b/src/arbits/output/slbt_au_output_arname.c index 28e081d..6d345d2 100644 --- a/src/arbits/output/slbt_au_output_arname.c +++ b/src/arbits/output/slbt_au_output_arname.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/arbits/output/slbt_au_output_dlsyms.c b/src/arbits/output/slbt_au_output_dlsyms.c index 512f60f..93a71af 100644 --- a/src/arbits/output/slbt_au_output_dlsyms.c +++ b/src/arbits/output/slbt_au_output_dlsyms.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/arbits/output/slbt_au_output_mapfile.c b/src/arbits/output/slbt_au_output_mapfile.c index fb470df..5171a7b 100644 --- a/src/arbits/output/slbt_au_output_mapfile.c +++ b/src/arbits/output/slbt_au_output_mapfile.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/arbits/output/slbt_au_output_members.c b/src/arbits/output/slbt_au_output_members.c index 88937b0..d1c1351 100644 --- a/src/arbits/output/slbt_au_output_members.c +++ b/src/arbits/output/slbt_au_output_members.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/arbits/output/slbt_au_output_symbols.c b/src/arbits/output/slbt_au_output_symbols.c index 950cde8..b2d6280 100644 --- a/src/arbits/output/slbt_au_output_symbols.c +++ b/src/arbits/output/slbt_au_output_symbols.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/arbits/slbt_archive_ctx.c b/src/arbits/slbt_archive_ctx.c index 575374c..d1ea8f5 100644 --- a/src/arbits/slbt_archive_ctx.c +++ b/src/arbits/slbt_archive_ctx.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/arbits/slbt_archive_dlsyms.c b/src/arbits/slbt_archive_dlsyms.c index ed07602..400f3a2 100644 --- a/src/arbits/slbt_archive_dlsyms.c +++ b/src/arbits/slbt_archive_dlsyms.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/arbits/slbt_archive_mapfile.c b/src/arbits/slbt_archive_mapfile.c index 18f94dc..f9ec15a 100644 --- a/src/arbits/slbt_archive_mapfile.c +++ b/src/arbits/slbt_archive_mapfile.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/arbits/slbt_archive_mapstrv.c b/src/arbits/slbt_archive_mapstrv.c index e97db76..f8075ef 100644 --- a/src/arbits/slbt_archive_mapstrv.c +++ b/src/arbits/slbt_archive_mapstrv.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/arbits/slbt_archive_merge.c b/src/arbits/slbt_archive_merge.c index 5ace063..e62ba12 100644 --- a/src/arbits/slbt_archive_merge.c +++ b/src/arbits/slbt_archive_merge.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/arbits/slbt_archive_meta.c b/src/arbits/slbt_archive_meta.c index 8ef816c..499bfaf 100644 --- a/src/arbits/slbt_archive_meta.c +++ b/src/arbits/slbt_archive_meta.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/arbits/slbt_archive_store.c b/src/arbits/slbt_archive_store.c index e303cb7..31bbbe0 100644 --- a/src/arbits/slbt_archive_store.c +++ b/src/arbits/slbt_archive_store.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/arbits/slbt_archive_symfile.c b/src/arbits/slbt_archive_symfile.c index 49d2ff0..59961ec 100644 --- a/src/arbits/slbt_archive_symfile.c +++ b/src/arbits/slbt_archive_symfile.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/arbits/slbt_archive_syminfo.c b/src/arbits/slbt_archive_syminfo.c index 09c90a8..27f94bb 100644 --- a/src/arbits/slbt_archive_syminfo.c +++ b/src/arbits/slbt_archive_syminfo.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/arbits/slbt_armap_bsd_32.c b/src/arbits/slbt_armap_bsd_32.c index ee94b70..2f63e56 100644 --- a/src/arbits/slbt_armap_bsd_32.c +++ b/src/arbits/slbt_armap_bsd_32.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/arbits/slbt_armap_bsd_64.c b/src/arbits/slbt_armap_bsd_64.c index 8f214b9..1590a0e 100644 --- a/src/arbits/slbt_armap_bsd_64.c +++ b/src/arbits/slbt_armap_bsd_64.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/arbits/slbt_armap_sysv_32.c b/src/arbits/slbt_armap_sysv_32.c index bc5a0d5..52ac7c7 100644 --- a/src/arbits/slbt_armap_sysv_32.c +++ b/src/arbits/slbt_armap_sysv_32.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/arbits/slbt_armap_sysv_64.c b/src/arbits/slbt_armap_sysv_64.c index 961ee20..c92c4a7 100644 --- a/src/arbits/slbt_armap_sysv_64.c +++ b/src/arbits/slbt_armap_sysv_64.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/driver/slbt_amain.c b/src/driver/slbt_amain.c index a9cc118..cf86ad0 100644 --- a/src/driver/slbt_amain.c +++ b/src/driver/slbt_amain.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ @@ -157,10 +157,13 @@ int slbt_main(char ** argv, char ** envp, const struct slbt_fd_ctx * fdctx) /* slibtoolize (stoolie) mode */ if (!(strcmp(program,"stoolie"))) - flags |= SLBT_DRIVER_MODE_STOOLIE; + flags |= SLBT_DRIVER_MODE_STOOLIE | SLBT_DRIVER_PREFER_SLTDL; else if (!(strcmp(program,"slibtoolize"))) - flags |= SLBT_DRIVER_MODE_STOOLIE; + flags |= SLBT_DRIVER_MODE_STOOLIE | SLBT_DRIVER_PREFER_SLTDL; + + else if (!(strcmp(program,"libtoolize"))) + flags |= SLBT_DRIVER_MODE_STOOLIE | SLBT_DRIVER_PREFER_SLTDL; /* debug */ if (!(strcmp(program,"dlibtool"))) diff --git a/src/driver/slbt_driver_ctx.c b/src/driver/slbt_driver_ctx.c index 09adb68..5bde077 100644 --- a/src/driver/slbt_driver_ctx.c +++ b/src/driver/slbt_driver_ctx.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ @@ -810,6 +810,10 @@ int slbt_lib_get_driver_ctx( cctx.drvflags |= SLBT_DRIVER_NO_UNDEFINED; break; + case TAG_PREFER_SLTDL: + cctx.drvflags |= SLBT_DRIVER_PREFER_SLTDL; + break; + case TAG_MODULE: cctx.drvflags |= SLBT_DRIVER_MODULE; break; diff --git a/src/driver/slbt_link_params.c b/src/driver/slbt_link_params.c index f76a225..d4cf728 100644 --- a/src/driver/slbt_link_params.c +++ b/src/driver/slbt_link_params.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/driver/slbt_split_argv.c b/src/driver/slbt_split_argv.c index f9828f1..acf8da9 100644 --- a/src/driver/slbt_split_argv.c +++ b/src/driver/slbt_split_argv.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/driver/slbt_symlist_ctx.c b/src/driver/slbt_symlist_ctx.c index 7c8171c..b509a62 100644 --- a/src/driver/slbt_symlist_ctx.c +++ b/src/driver/slbt_symlist_ctx.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/driver/slbt_txtfile_ctx.c b/src/driver/slbt_txtfile_ctx.c index 53cce0f..e3154c9 100644 --- a/src/driver/slbt_txtfile_ctx.c +++ b/src/driver/slbt_txtfile_ctx.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/driver/slbt_version_info.c b/src/driver/slbt_version_info.c index c21863e..72ce911 100644 --- a/src/driver/slbt_version_info.c +++ b/src/driver/slbt_version_info.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/fallback/slbt_archive_import_mri.c b/src/fallback/slbt_archive_import_mri.c index 320d6d1..de31ef4 100644 --- a/src/fallback/slbt_archive_import_mri.c +++ b/src/fallback/slbt_archive_import_mri.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/host/slbt_host_flavor.c b/src/host/slbt_host_flavor.c index ab7040e..b972f5a 100644 --- a/src/host/slbt_host_flavor.c +++ b/src/host/slbt_host_flavor.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/host/slbt_host_params.c b/src/host/slbt_host_params.c index 6191ea5..16ef7c7 100644 --- a/src/host/slbt_host_params.c +++ b/src/host/slbt_host_params.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/internal/argv/argv.h b/src/internal/argv/argv.h index 0b9def7..7fdb64a 100644 --- a/src/internal/argv/argv.h +++ b/src/internal/argv/argv.h @@ -1,6 +1,6 @@ /****************************************************************************/ /* argv.h: a thread-safe argument vector parser and usage screen generator */ -/* Copyright (C) 2015--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2015--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /****************************************************************************/ diff --git a/src/internal/slibtool_ar_impl.h b/src/internal/slibtool_ar_impl.h index 57ff1cc..d665bf1 100644 --- a/src/internal/slibtool_ar_impl.h +++ b/src/internal/slibtool_ar_impl.h @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/internal/slibtool_coff_impl.c b/src/internal/slibtool_coff_impl.c index ac6a2fd..df0b062 100644 --- a/src/internal/slibtool_coff_impl.c +++ b/src/internal/slibtool_coff_impl.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/internal/slibtool_dprintf_impl.c b/src/internal/slibtool_dprintf_impl.c index 58c7eed..cc9c29b 100644 --- a/src/internal/slibtool_dprintf_impl.c +++ b/src/internal/slibtool_dprintf_impl.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/internal/slibtool_driver_impl.h b/src/internal/slibtool_driver_impl.h index 7b6114d..26a9095 100644 --- a/src/internal/slibtool_driver_impl.h +++ b/src/internal/slibtool_driver_impl.h @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ @@ -90,6 +90,7 @@ enum app_tags { TAG_DISABLE_STATIC, TAG_DISABLE_SHARED, TAG_NO_UNDEFINED, + TAG_PREFER_SLTDL, TAG_MODULE, TAG_AVOID_VERSION, TAG_COMPILER_FLAG, @@ -125,6 +126,7 @@ enum app_tags { TAG_STLE_WARNINGS, TAG_STLE_NO_WARNINGS, TAG_STLE_LTDL, + TAG_STLE_SYSTEM_LTDL, }; struct slbt_split_vector { @@ -209,6 +211,7 @@ struct slbt_exec_ctx_impl { char * args; char * shadow; char * dsoprefix; + char * lsltdl; size_t size; size_t exts; int fdwrapper; diff --git a/src/internal/slibtool_errinfo_impl.c b/src/internal/slibtool_errinfo_impl.c index 6501d84..843cf97 100644 --- a/src/internal/slibtool_errinfo_impl.c +++ b/src/internal/slibtool_errinfo_impl.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/internal/slibtool_errinfo_impl.h b/src/internal/slibtool_errinfo_impl.h index fa185c8..11c1d59 100644 --- a/src/internal/slibtool_errinfo_impl.h +++ b/src/internal/slibtool_errinfo_impl.h @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/internal/slibtool_lconf_impl.c b/src/internal/slibtool_lconf_impl.c index 7f43034..1b48c76 100644 --- a/src/internal/slibtool_lconf_impl.c +++ b/src/internal/slibtool_lconf_impl.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/internal/slibtool_libmeta_impl.c b/src/internal/slibtool_libmeta_impl.c index 17e090c..7b6fadc 100644 --- a/src/internal/slibtool_libmeta_impl.c +++ b/src/internal/slibtool_libmeta_impl.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/internal/slibtool_m4fake_impl.c b/src/internal/slibtool_m4fake_impl.c index 3bab8c8..b70a92f 100644 --- a/src/internal/slibtool_m4fake_impl.c +++ b/src/internal/slibtool_m4fake_impl.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/internal/slibtool_mapfile_impl.c b/src/internal/slibtool_mapfile_impl.c index 5a4fcff..6d5bd6a 100644 --- a/src/internal/slibtool_mapfile_impl.c +++ b/src/internal/slibtool_mapfile_impl.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/internal/slibtool_mkdir_impl.h b/src/internal/slibtool_mkdir_impl.h index 41943f1..056060d 100644 --- a/src/internal/slibtool_mkdir_impl.h +++ b/src/internal/slibtool_mkdir_impl.h @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/internal/slibtool_mkvars_impl.c b/src/internal/slibtool_mkvars_impl.c index 5245034..2de2c76 100644 --- a/src/internal/slibtool_mkvars_impl.c +++ b/src/internal/slibtool_mkvars_impl.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/internal/slibtool_objlist_impl.c b/src/internal/slibtool_objlist_impl.c index 9f25529..6012d6d 100644 --- a/src/internal/slibtool_objlist_impl.c +++ b/src/internal/slibtool_objlist_impl.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/internal/slibtool_objmeta_impl.c b/src/internal/slibtool_objmeta_impl.c index 768cc96..1350f06 100644 --- a/src/internal/slibtool_objmeta_impl.c +++ b/src/internal/slibtool_objmeta_impl.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/internal/slibtool_pecoff_impl.c b/src/internal/slibtool_pecoff_impl.c index 590fafc..2848075 100644 --- a/src/internal/slibtool_pecoff_impl.c +++ b/src/internal/slibtool_pecoff_impl.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/internal/slibtool_readlink_impl.h b/src/internal/slibtool_readlink_impl.h index 378ed5c..9ebd7cd 100644 --- a/src/internal/slibtool_readlink_impl.h +++ b/src/internal/slibtool_readlink_impl.h @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/internal/slibtool_realpath_impl.c b/src/internal/slibtool_realpath_impl.c index 63fc3c4..f40d289 100644 --- a/src/internal/slibtool_realpath_impl.c +++ b/src/internal/slibtool_realpath_impl.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/internal/slibtool_snprintf_impl.c b/src/internal/slibtool_snprintf_impl.c index 84e01f0..ef5e6de 100644 --- a/src/internal/slibtool_snprintf_impl.c +++ b/src/internal/slibtool_snprintf_impl.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/internal/slibtool_spawn_impl.h b/src/internal/slibtool_spawn_impl.h index aa4ea35..bdcc7c9 100644 --- a/src/internal/slibtool_spawn_impl.h +++ b/src/internal/slibtool_spawn_impl.h @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/internal/slibtool_stoolie_impl.h b/src/internal/slibtool_stoolie_impl.h index 43d70a5..ac6ac12 100644 --- a/src/internal/slibtool_stoolie_impl.h +++ b/src/internal/slibtool_stoolie_impl.h @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/internal/slibtool_symlink_impl.c b/src/internal/slibtool_symlink_impl.c index bb117e2..addead7 100644 --- a/src/internal/slibtool_symlink_impl.c +++ b/src/internal/slibtool_symlink_impl.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/internal/slibtool_tmpfile_impl.c b/src/internal/slibtool_tmpfile_impl.c index 3ed7d3a..0f5c9de 100644 --- a/src/internal/slibtool_tmpfile_impl.c +++ b/src/internal/slibtool_tmpfile_impl.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/internal/slibtool_txtline_impl.c b/src/internal/slibtool_txtline_impl.c index 4c8f2ad..f42c89d 100644 --- a/src/internal/slibtool_txtline_impl.c +++ b/src/internal/slibtool_txtline_impl.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/logic/linkcmd/slbt_linkcmd_archive.c b/src/logic/linkcmd/slbt_linkcmd_archive.c index b7c090b..55e9ba7 100644 --- a/src/logic/linkcmd/slbt_linkcmd_archive.c +++ b/src/logic/linkcmd/slbt_linkcmd_archive.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/logic/linkcmd/slbt_linkcmd_argv.c b/src/logic/linkcmd/slbt_linkcmd_argv.c index 013317f..b5865da 100644 --- a/src/logic/linkcmd/slbt_linkcmd_argv.c +++ b/src/logic/linkcmd/slbt_linkcmd_argv.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ @@ -1027,6 +1027,22 @@ slbt_hidden int slbt_exec_link_finalize_argument_vector( } } + /* replace -lltdl with -lsltdl as needed */ + if (dctx->cctx->drvflags & SLBT_DRIVER_PREFER_SLTDL) { + struct slbt_exec_ctx_impl * ictx; + + ictx = slbt_get_exec_ictx(ectx); + + for (src=ectx->argv; *src; src++) + if ((src[0][0] == '-') && (src[0][1] == 'l')) + if ((src[0][2] == 'l') + && (src[0][3] == 't') + && (src[0][4] == 'd') + && (src[0][5] == 'l')) + if (!src[0][6]) + *src = ictx->lsltdl; + } + /* properly null-terminate argv, accounting for redundant -l arguments */ *dst = 0; diff --git a/src/logic/linkcmd/slbt_linkcmd_deps.c b/src/logic/linkcmd/slbt_linkcmd_deps.c index 19ed716..30dd040 100644 --- a/src/logic/linkcmd/slbt_linkcmd_deps.c +++ b/src/logic/linkcmd/slbt_linkcmd_deps.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/logic/linkcmd/slbt_linkcmd_dsolib.c b/src/logic/linkcmd/slbt_linkcmd_dsolib.c index cca6aac..2386bad 100644 --- a/src/logic/linkcmd/slbt_linkcmd_dsolib.c +++ b/src/logic/linkcmd/slbt_linkcmd_dsolib.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/logic/linkcmd/slbt_linkcmd_executable.c b/src/logic/linkcmd/slbt_linkcmd_executable.c index 936bc02..ee66061 100644 --- a/src/logic/linkcmd/slbt_linkcmd_executable.c +++ b/src/logic/linkcmd/slbt_linkcmd_executable.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/logic/linkcmd/slbt_linkcmd_host.c b/src/logic/linkcmd/slbt_linkcmd_host.c index c3d51f8..304ad5d 100644 --- a/src/logic/linkcmd/slbt_linkcmd_host.c +++ b/src/logic/linkcmd/slbt_linkcmd_host.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/logic/linkcmd/slbt_linkcmd_implib.c b/src/logic/linkcmd/slbt_linkcmd_implib.c index b2c0375..b7403a8 100644 --- a/src/logic/linkcmd/slbt_linkcmd_implib.c +++ b/src/logic/linkcmd/slbt_linkcmd_implib.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/logic/slbt_exec_ar.c b/src/logic/slbt_exec_ar.c index ba56f5b..50ff864 100644 --- a/src/logic/slbt_exec_ar.c +++ b/src/logic/slbt_exec_ar.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/logic/slbt_exec_compile.c b/src/logic/slbt_exec_compile.c index 47d8e72..930876d 100644 --- a/src/logic/slbt_exec_compile.c +++ b/src/logic/slbt_exec_compile.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/logic/slbt_exec_ctx.c b/src/logic/slbt_exec_ctx.c index 223be17..9d39144 100644 --- a/src/logic/slbt_exec_ctx.c +++ b/src/logic/slbt_exec_ctx.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ @@ -131,6 +131,9 @@ static struct slbt_exec_ctx_impl * slbt_exec_ctx_alloc( size += exts * SLBT_ECTX_LIB_EXTRAS; } + /* -lsltdl (--prefer-sltdl impl.) */ + size += 8; + /* string buffers: args, shadow */ if (!(args = malloc(size))) return 0; @@ -629,6 +632,11 @@ int slbt_ectx_get_exec_ctx( } + /* -lsltdl (--prefer-sltdl impl.) */ + ictx->lsltdl = ch; + strcpy(ch,"-lsltdl"); + ch += 8; + /* dlopen, dlpreopen */ if ((dlopenv = idctx->dlopenv), (dlactxv = ictx->dlactxv)) { if (slbt_ar_get_varchive_ctx(dctx,dlactxv) < 0) diff --git a/src/logic/slbt_exec_execute.c b/src/logic/slbt_exec_execute.c index 7f9389b..6892af6 100644 --- a/src/logic/slbt_exec_execute.c +++ b/src/logic/slbt_exec_execute.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/logic/slbt_exec_install.c b/src/logic/slbt_exec_install.c index 228d2ff..bd85465 100644 --- a/src/logic/slbt_exec_install.c +++ b/src/logic/slbt_exec_install.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/logic/slbt_exec_link.c b/src/logic/slbt_exec_link.c index 50709d3..f6a0bc1 100644 --- a/src/logic/slbt_exec_link.c +++ b/src/logic/slbt_exec_link.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/logic/slbt_exec_stoolie.c b/src/logic/slbt_exec_stoolie.c index 779146a..84d8b23 100644 --- a/src/logic/slbt_exec_stoolie.c +++ b/src/logic/slbt_exec_stoolie.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ @@ -87,13 +87,18 @@ static int slbt_exec_stoolie_perform_actions( char m4dir [PATH_MAX]; char auxdir[PATH_MAX]; char slibm4[PATH_MAX]; + char sltdl [PATH_MAX]; + char m4ltdl[PATH_MAX]; char ltmain[PATH_MAX]; char arlib [PATH_MAX]; bool fslibm4; + bool fsltdl; bool fltmain; ictx = slbt_get_stoolie_ictx(stctx); + fsltdl = (dctx->cctx->drvflags & SLBT_DRIVER_PREFER_SLTDL); + /* source files */ if (slbt_snprintf( slibm4,sizeof(slibm4),"%s/%s", @@ -102,6 +107,12 @@ static int slbt_exec_stoolie_perform_actions( return SLBT_BUFFER_ERROR(dctx); if (slbt_snprintf( + sltdl,sizeof(sltdl),"%s/%s", + SLBT_PACKAGE_DATADIR, + fsltdl ? "sltdl.m4" : "sysltdl.m4") < 0) + return SLBT_BUFFER_ERROR(dctx); + + if (slbt_snprintf( ltmain,sizeof(ltmain),"%s/%s", SLBT_PACKAGE_DATADIR, "ltmain.sh") < 0) @@ -119,6 +130,10 @@ static int slbt_exec_stoolie_perform_actions( if (slbt_exec_stoolie_remove_file(dctx,ictx->fdm4,"slibtool.m4") < 0) return SLBT_NESTED_ERROR(dctx); + if (ictx->fdm4 >= 0) + if (slbt_exec_stoolie_remove_file(dctx,ictx->fdm4,"sltdl.m4") < 0) + return SLBT_NESTED_ERROR(dctx); + if (slbt_exec_stoolie_remove_file(dctx,ictx->fdaux,"ltmain.sh") < 0) return SLBT_NESTED_ERROR(dctx); @@ -158,8 +173,16 @@ static int slbt_exec_stoolie_perform_actions( if (slbt_realpath(ictx->fdm4,".",0,m4dir,sizeof(m4dir)) < 0) return SLBT_SYSTEM_ERROR(dctx,0); + if (slbt_snprintf( + m4ltdl,sizeof(m4ltdl),"%s/%s", + m4dir,"sltdl.m4") < 0) + return SLBT_BUFFER_ERROR(dctx); + if (slbt_util_copy_file(ectx,slibm4,m4dir) < 0) return SLBT_NESTED_ERROR(dctx); + + if (slbt_util_copy_file(ectx,sltdl,m4ltdl) < 0) + return SLBT_NESTED_ERROR(dctx); } if (fltmain) { @@ -174,7 +197,7 @@ static int slbt_exec_stoolie_perform_actions( } } else { /* default to symlinks */ - if (fslibm4) + if (fslibm4) { if (slbt_create_symlink_ex( dctx,ectx, ictx->fdm4, @@ -183,6 +206,15 @@ static int slbt_exec_stoolie_perform_actions( SLBT_SYMLINK_LITERAL) < 0) return SLBT_NESTED_ERROR(dctx); + if (slbt_create_symlink_ex( + dctx,ectx, + ictx->fdm4, + sltdl, + "sltdl.m4", + SLBT_SYMLINK_LITERAL) < 0) + return SLBT_NESTED_ERROR(dctx); + } + if (fltmain) { if (slbt_create_symlink_ex( dctx,ectx, @@ -311,6 +343,10 @@ int slbt_exec_stoolie(const struct slbt_driver_ctx * dctx) ictx->cctx.drvflags &= ~(uint64_t)SLBT_DRIVER_SILENT; ictx->cctx.drvflags |= SLBT_DRIVER_VERBOSE; break; + + case TAG_STLE_SYSTEM_LTDL: + ictx->cctx.drvflags &= ~(uint64_t)SLBT_DRIVER_PREFER_SLTDL; + break; } if (entry->fval) { diff --git a/src/logic/slbt_exec_uninstall.c b/src/logic/slbt_exec_uninstall.c index 98bd85b..04ae645 100644 --- a/src/logic/slbt_exec_uninstall.c +++ b/src/logic/slbt_exec_uninstall.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/output/slbt_output_config.c b/src/output/slbt_output_config.c index 0442884..4c502d8 100644 --- a/src/output/slbt_output_config.c +++ b/src/output/slbt_output_config.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/output/slbt_output_error.c b/src/output/slbt_output_error.c index 4077497..940af3f 100644 --- a/src/output/slbt_output_error.c +++ b/src/output/slbt_output_error.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/output/slbt_output_exec.c b/src/output/slbt_output_exec.c index 9c88bac..cd2ed25 100644 --- a/src/output/slbt_output_exec.c +++ b/src/output/slbt_output_exec.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/output/slbt_output_fdcwd.c b/src/output/slbt_output_fdcwd.c index 4b5c54d..e40df9b 100644 --- a/src/output/slbt_output_fdcwd.c +++ b/src/output/slbt_output_fdcwd.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/output/slbt_output_features.c b/src/output/slbt_output_features.c index a6a5a20..0052531 100644 --- a/src/output/slbt_output_features.c +++ b/src/output/slbt_output_features.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/output/slbt_output_info.c b/src/output/slbt_output_info.c index 583906f..b0367e1 100644 --- a/src/output/slbt_output_info.c +++ b/src/output/slbt_output_info.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/output/slbt_output_machine.c b/src/output/slbt_output_machine.c index ad98066..e8ca346 100644 --- a/src/output/slbt_output_machine.c +++ b/src/output/slbt_output_machine.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/output/slbt_output_mapfile.c b/src/output/slbt_output_mapfile.c index 166b1f4..106b34e 100644 --- a/src/output/slbt_output_mapfile.c +++ b/src/output/slbt_output_mapfile.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/skin/slbt_skin_default.c b/src/skin/slbt_skin_default.c index 8ae0833..6a2ab6a 100644 --- a/src/skin/slbt_skin_default.c +++ b/src/skin/slbt_skin_default.c @@ -333,6 +333,12 @@ const slbt_hidden struct argv_option slbt_default_options[] = { "statically link libtool libraries " "[currently a no-op]"}, + {"prefer-sltdl", 0,TAG_PREFER_SLTDL,ARGV_OPTARG_NONE, + 0,0,0, + "prefer the use of libsltdl over the system's " + "ltdl library, specifically by substituting " + "-lltdl linker arguments with -lsltdl ones."}, + {"Wc", 0,TAG_COMPILER_FLAG,ARGV_OPTARG_REQUIRED, ARGV_OPTION_HYBRID_ONLY|ARGV_OPTION_HYBRID_COMMA, 0,"<flag>[,<flag]...", diff --git a/src/skin/slbt_skin_stoolie.c b/src/skin/slbt_skin_stoolie.c index e058fed..3140d22 100644 --- a/src/skin/slbt_skin_stoolie.c +++ b/src/skin/slbt_skin_stoolie.c @@ -52,7 +52,12 @@ const slbt_hidden struct argv_option slbt_stoolie_options[] = { "install [s]ltdl sources to %s; this option " "provided is provided for the purpose of backward " "compatibility, and is currently a no-op, thereby " - "deferring -lltdl to the system install library."}, + "deferring -lltdl to the system installed library."}, + + {"system-ltdl",0,TAG_STLE_SYSTEM_LTDL,ARGV_OPTARG_NONE,0,0,0, + "Do not enforce the use of libsltdl. " + "Without this option, --prefer-sltdl will be added to " + "slibtool's configured arguments."}, {0,0,0,0,0,0,0,0} }; diff --git a/src/slibtool.c b/src/slibtool.c index 33904d1..6ef0945 100644 --- a/src/slibtool.c +++ b/src/slibtool.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/stoolie/slbt_stoolie_ctx.c b/src/stoolie/slbt_stoolie_ctx.c index 3457fbe..7899b3c 100644 --- a/src/stoolie/slbt_stoolie_ctx.c +++ b/src/stoolie/slbt_stoolie_ctx.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/util/slbt_archive_import.c b/src/util/slbt_archive_import.c index 11b68de..e683148 100644 --- a/src/util/slbt_archive_import.c +++ b/src/util/slbt_archive_import.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/util/slbt_copy_file.c b/src/util/slbt_copy_file.c index 23d8cc3..0e64ad7 100644 --- a/src/util/slbt_copy_file.c +++ b/src/util/slbt_copy_file.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/util/slbt_create_mapfile.c b/src/util/slbt_create_mapfile.c index 8c03920..9a8dfc4 100644 --- a/src/util/slbt_create_mapfile.c +++ b/src/util/slbt_create_mapfile.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/util/slbt_create_symfile.c b/src/util/slbt_create_symfile.c index 8c9b4be..4dd1a90 100644 --- a/src/util/slbt_create_symfile.c +++ b/src/util/slbt_create_symfile.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/util/slbt_dump_machine.c b/src/util/slbt_dump_machine.c index 1b42211..beffb47 100644 --- a/src/util/slbt_dump_machine.c +++ b/src/util/slbt_dump_machine.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/util/slbt_map_input.c b/src/util/slbt_map_input.c index d99b4ba..5b681c9 100644 --- a/src/util/slbt_map_input.c +++ b/src/util/slbt_map_input.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2015--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2015--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ diff --git a/src/util/slbt_realpath.c b/src/util/slbt_realpath.c index 823f3a0..cba5ac4 100644 --- a/src/util/slbt_realpath.c +++ b/src/util/slbt_realpath.c @@ -1,6 +1,6 @@ /*******************************************************************/ /* slibtool: a strong libtool implementation, written in C */ -/* Copyright (C) 2016--2024 SysDeer Technologies, LLC */ +/* Copyright (C) 2016--2025 SysDeer Technologies, LLC */ /* Released under the Standard MIT License; see COPYING.SLIBTOOL. */ /*******************************************************************/ |