./devel/slibtool, Surrogate libtool implementation, written in C

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 0.5.34, Package name: slibtool-0.5.34, Maintainer: wiedi

slibtool is an independent reimplementation of the widely used libtool,
written in C. slibtool is designed to be a clean, fast, easy-to-use
libtool drop-in replacement, and is accordingly aimed at package authors,
distro developers, and system integrators. slibtool maintains compatibility
with libtool in nearly every aspect of the tool's functionality as well as
semantics, leaving out (or turning into a no-op) only a small number of
features that are no longer needed on modern systems.


Required to build:
[pkgtools/cwrappers]

Master sites:

Filesize: 96.636 KB

Version history: (Expand)


CVS history: (Expand)


   2024-07-04 23:30:48 by Aleksey Cheusov | Files touched by this commit (1)
Log message:
Fix build failure on Linux: USE_TOOLS += m4
   2023-08-02 18:30:56 by Nia Alarie | Files touched by this commit (1)
Log message:
slibtool: Define _NETBSD_SOURCE on NetBSD.

On older releases, this is required for O_NOFOLLOW to be defined.
On newer releases, the XOPEN_SOURCE setting still seems too low.
   2023-07-16 21:17:02 by Sebastian Wiedenroth | Files touched by this commit (3) | Package updated
Log message:
slibtool: update to 0.5.34

0.5.34:

This is the last patch release in the 0.5.x series. As of this release,
there are no known problems pertaining to slibtool's core functionality
or compatibility with the historic libtool implementation. Outstanding
features that are not covered by this release are the internal
implementation of archive merging (as opposed to using ar(1) and MRI
scripts), as well as the internal implementation, integration, and
support of -dlpreopen.

Included with this release is also m4/slibtool.m4, which by now has
been tested against, and may be successfully used with legacy autoconf
versions (such as 2.64), as well as more recent ones (2.69 or later).
A new invocation mode, --mode=slibtoolize (or the slibtoolize symlink)
is currently under development, and will be included with the next
release.

- driver: slbt_get_driver_ctx(): properly record the envp parameter.
- driver api: slbt_get_flavor_settings(): initial implementation.
- driver: added explicit --sysroot support.
- link mode: set the -soname linker flag alongside the -avoid-version argument.
- link mode: slbt_exec_link_create_executable(): enclose $DL_PATH in quotes.
- link mode: slbt_exec_link_create_executable(): replace backtick with $().
- link mode: -module without -rpath is an executable, not a dynamic library.
- link mode: legacy libtool compatibility: support linking against -module libs.
- link mode: slbt_exec_link(): properly support non-default shared-object suffix.
- link mode: slbt_exec_link_create_archive(): eliminate the libfoo.a symlink.
- link mode: static-only libfoo.la: account for non-default shared-object suffix.
- link mode: always create libfoo.so.def.{host|flavor} and related tags.
- link mode: PE targets: -release: fix names used for and in import libraries.
- link mode: slbt_exec_link_create_executable(): place .exe.wrapper under .libs/.
- install mode: driver: added (referential) --sysroot support.
- install mode: slbt_exec_install_entry: properly handle fussix flavors.
- install mode: libfoo.la and ibfoo.so.def.host: properly handle -release.
- install mode: slbt_exec_install_entry(): remove dead code.
- install mode: libfoo.la installation: early detect static-only operation mode.
- uninstall mode: driver: added (referential) --sysroot support.
- heuristics: slbt_get_lconf_flags(): added missing 'else' in if-then block.
- heuristics: slbt_get_lconf_flags(): enhanced the string-scanning logic.
- library: replace all uses of open() with openat().
- library: replace all uses of chmod() with fchmodat().
- library: replace all uses of unlink() with unlinkat().
- library: replace all uses of rmdir() with unlinkat().
- library: replace all uses of rename() with renameat().
- library: replace all uses of symlink() with symlinkat().
- library: replace all uses of [slbt_]readlink() with [slbt_]readlinkat().
- library: replace all uses of stat() and lstat() with fstatat() counterparts.
- library: replace all uses of getcwd() with slbt_realpath().
- library: eliminate use of the external environ variable.

0.5.33:

This patch release provides several bug fixes and improvements, as well as
added support for the NO_COLOR environment variable.

- driver: always respect the NO_COLOR envvar & SLBT_DRIVER_ANNOTATE_NEVER flag.
- driver: a heuristics-based -disable-shared now overrides --tag=disable-static.
- driver: --tag=disable-shared now overrides a heuristics-based -disable-static.
- link mode: always include deplib dirs in ldpathenv.
- link mode: enclose vnames in wrapper script in braces.
- link mode: always include explicit -L dirs in ldpathenv.
- link mode: shared: use .deps of a static-only .la input argument as needed.
- link mode: require dependency list to be present for all .la input arguments.
- execute mode: fix NULL ptr deref with only one argument.
- execute mode: handle relative -L pathnames & cwd-relative wrapper scripts.
- install mode: slbt_exec_install(): added legacy shtool support.
- install mode: account for a libfoo.a that was created with -disable-static.
- install mode: always respect the SLBT_DRIVER_ANNOTATE_NEVER flag.
- uninstall mode: always respect the SLBT_DRIVER_ANNOTATE_NEVER flag.
- argv.h: tty colors: added argv_usage_plain().

0.5.32:

This patch release provides several bug fixes as well as the new (or proper)
implementation of previously missing features.

- driver: added -Xlinker support.
- driver: support -static-libtool-libs (currently as a no-op).
- driver: slbt_init_flavor_settings(): properly handle the -shrext argument.
- driver: --version: update the git repository reference to the https variant.
- link mode: check for and properly support -version-info with -release.
- link mode: .def file name: added proper -release support.
- link mode: slbt_exec_link(): record the -shrext argument for the install step.
- install mode: support wrapping of /path/to/sh /path/to/install-sh.
- install mode: slbt_exec_install_entry(): added -shrext support.
- uninstall mode: remove hard-coded shell logic, revisit later as needed.
- heuristics: support finding arbitrarily named scripts up the build tree.
- heuristics: added (annotated) trace output.
- heuristics: slbt_lconf_open(): added (annotated) trace_result().
- output: print out the recorded not-found path.
- output: added slbt_output_fdcwd().
- internals: error tracing: record the not-found path upon ENOENT as needed.
- library: compile & link modes: properly record the not-found path upon error.
- helper api: added slbt_realpath().
- build system: ccenv_{tool|attr}_epilog(): properly handle long output strings.
- project: added BUGS and a note on where to report bugs and issues.
- project: config.project: update $mb_pkgrep to the https variant.

0.5.31:

This patch release fixes a regression in the 0.5.29 release,
specifically in the implementation of the -module semantics,
as well as a latent bug in the algorithm for finding a build
project's generated libtool script.

- link mode: properly handle .la targets built with -module.
- libtool finder: exit loop upon reaching the root directory.

0.5.30:

This patch release fixes sed usage ('\s' vs '[[:space:]]') in
slibtool's own build system. Release immediately in order to
prevent build errors in strict build environments.

- build system: ccenv_output_defs(): use conformant sed construct.

0.5.29:

This patch release provides a few important additions and bug fixes,
as well as several improvements in slibtool's own build system. In
addition, it denotes the (semantic) transition from midipix.org
to foss21.org.

- driver: added F77 support.
- driver: added -XCClinker support.
- driver: added FC support.
- driver: host flavors: added suffixed suffixes support.
- driver: --heuristics: respect explicit --disable-shared and/or -static.
- driver: resolve conflicting and/or incompatible command-line arguments.
- driver, link mode: properly implement the -module semantics.
- driver, compile & link mode: support arbitrary & known compiler wrappers.
- link mode: host flavors: properly support suffixed suffixes.
- install mode: host flavors: properly support suffixed suffixes.

0.5.28:

This patch release allows the enhanced target-ar logic that was
introduced in the previous patch release to properly work on legacy
systems with a tricky posix_spawnp() implementation.

- driver: enhanced target-ar logic: accommodate legacy systems.

0.5.27:

This patch release provides an important enhancement with respect to the
identification of the ar tool to be invoked in slibtool's link mode. More
specifically, rather than relying on the presence of <target>-ar, slibtool
will now attempt to invoke, as needed, several alternate ar tools in the
following order: <target>-ar, <target>-<compiler>-ar, and, in \ 
the case
of the native target, also <compiler>-ar and ar.

- driver: slbt_init_host_params(): enhance the target-ar related logic.

0.5.26:

This patch release follows significant improvements in, as well as additions
to slibtool's functionality. Most notably, with the additions of --heuristics
and the rlibtool convenience symlink, slibtool may now automagically operate
in the exact same mode (static only, shared only, or both) as the generated
libtool script for which it serves as a surrogate.

- utility: --heuristics support: added the 'rlibtool' convenience symlink.
- utility: convenience symlinks: added rclibtool, rdlibtool, and rdclibtool.
- link mode: properly handle local archives.
- link mode: remove placeholder arguments.
- link mode: remove redundant -l arguments.
- link mode: remove redundant -L arguments.
- compile mode: remove placeholder arguments.
- driver: added --heuristics support.
- driver: slbt_get_driver_ctx(): support stack-based argv.
- driver: output error vector upon post-argv-parsing failures.
- driver: execution context: added slbt_reset_argvector().
- driver: properly normalize --library-path=<path> arguments.
- internals: slbt_mkdir() now uses the context's fdcwd.
- internals: slbt_adjust_linker_argument() now uses the context's fdcwd.
- internals: -shared/-static heuristics: added slbt_get_lconf_flags().
   2021-10-26 12:20:11 by Nia Alarie | Files touched by this commit (3016)
Log message:
archivers: Replace RMD160 checksums with BLAKE2s checksums

All checksums have been double-checked against existing RMD160 and
SHA512 hashes

Could not be committed due to merge conflict:
devel/py-traitlets/distinfo

The following distfiles were unfetchable (note: some may be only fetched
conditionally):

./devel/pvs/distinfo pvs-3.2-solaris.tgz
./devel/eclipse/distinfo eclipse-sourceBuild-srcIncluded-3.0.1.zip
   2021-10-07 15:44:44 by Nia Alarie | Files touched by this commit (3017)
Log message:
devel: Remove SHA1 hashes for distfiles
   2018-10-11 22:03:45 by Sebastian Wiedenroth | Files touched by this commit (3) | Package updated
Log message:
slibtool: update to 0.5.25

Changelog:

	0.5.25:

	This patch release follows several important enhancements in slibtool's
	functionality, including proper support of explicit .a and .so input
	arguments in link mode, and use of validly alternate (non-)pic objects.
	With respect to compiler and target flavors, slibtool now accommodates
	clang's debated approach towards the -fPIC switch in always-pic targets.
	Last but not least, and following much discussion and consideration of
	the various trade-offs, this release redefines _XOPEN_SOURCE to 700. With
	that said, slibtool could still be easily built on older systems for as
	long as they provide openat, faccessat, and (the soon-to-be-used) fexecve.

	- driver: added --tag=RC support.
	- driver: added --windres support.
	- driver: use a compiler --target argument also as a tool argument.
	- driver: if no --tag had been defined in compile mode, set --tag to CC.
	- link mode: properly handle explicit archive input arguments.
	- link mode: properly handle external archives and libraries.
	- link mode: process dependencies also for non-pic .la args.
	- link mode: support validly alternate (non-)pic objects.
	- target flavors: accommodate conceptually challenged, PICky targets.
	- target flavors: flavor detection: associate -windows- with mingw.
	- target flavors: further eliminate compiler -dumpmachine invocations.

	0.5.24:

	This patch release explicitly requests definition of AT_FDCWD via definition
	of _POSIX_C_SOURCE in translation units that refer to it.

	0.5.23:

	This patch releases fixes a couple of minor issues in slibtool's own build
	system.

	build system: all-shared front-end variant: fix ordering of -l$(PACKAGE).
	build system: all-shared binary: added missing build-dep on $(SHARED_SOLINK).

	0.5.22:

	This patch release explicitly requests the openat() interface via definition
	of _POSIX_C_SOURCE in translation units that need it.

	0.5.21:

	This patch release follows important enhancements in slibtool's library
	interfaces and API contract. In particular, slibtool now no longer uses
	streams, but rather pure file descriptors. In addition, i/o operations
	now robustly handle interruption by signals, and thus do not depend on
	the underlying system calls being restartable. Last but not least,
	slibtool now installs a pkgconfig configuration file when applicable.

	- argv.h: output usage and errors using [argv_]dprintf rather than fprint.
	- argv.h: argv_get(): be consistent between forward decl. and impl.
	- argv.h: move definition of struct argv_meta_impl to the implementation block.
	- internals: added slbt_mapped_readline().
	- internals: added slbt_map_file(), slbt_unmap_file().
	- internals: added slbt_dprintf(), a signal-resilient dprintf implementation.
	- driver: argv usage and error output: use the signal-resilient slbt_dprintf().
	- driver: support alternate fd's for input/output/error/log.
	- driver: slbt_init_host_params(): propagate failure of <compiler> \ 
-dumpmachine.
	- driver: slbt_init_host_params(): do not set fnative when !fdumpmachine.
	- driver: struct slbt_fd_ctx: added .fdcwd and .fddst.
	- library: invocations of openat() now use the context's fdcwd.
	- project: added initial pkgconfig support.

	0.5.20:

	This patch release includes several important bug fixes pertaining to both
	the link and compile mode, as well as the addition of a compatible --features
	output.

	- driver: added slbt_output_features(), providing compatible --features output.
	- driver: compatibility: have -{shared|static} imply -disable-{static|shared}.
	- link mode: properly handle the combination of -release and -version-info.
	- link mode: slbt_exec_link_create_dep_file(): record top-level -L arguments.
	- link mode: --disable-{shared|static}: use differently-named placeholders.
   2018-06-12 14:04:24 by Sebastian Wiedenroth | Files touched by this commit (2) | Package updated
Log message:
slibtool: update to 0.5.19

Changes:
	This patch release includes several improvements in the driver logic,
	as well as one important fix to the compile mode logic.

	- driver: support -export-dynamic.
	- driver: allow flavor-based use of native tools (ar,ranlib,etc.)
	- driver: slbt_init_host_params(): improve native target detection logic.
	- driver: -shrext support: only use the extension portion of the extension.
	- compile mode: gnu libtool compatibility: do not add -c to compiler arguments.
   2018-02-09 22:49:45 by Sebastian Wiedenroth | Files touched by this commit (2) | Package updated
Log message:
slibtool: update to 0.5.18

Changelog:
  This patch release includes several important fixes to the link mode
  and driver logic. In addition, it adds mdso support to midipix targets,
  as well as updates slibtool's own build system.

  - link mode: re-implemented slbt_exec_link_finalize_argument_vector().
  - link mode: import library generation: added mdso support.
  - link mode: use -fpic objects with -disable-static.
  - driver: added --mdso and --implib support.
  - driver: added initial -dlpreopen support.
  - driver: support -thread-safe more elegantly.
  - driver: properly handle -thread-safe (no-op, compatibility).