Hi George,
On Sun, Aug 17, 2025 at 12:06:50AM -0400, George Koehler wrote: > On Fri, 15 Aug 2025 22:25:52 +0000 > Lloyd <[email protected]> wrote: > > > The Makefile was passing the -shrext flag to GNU libtool to create shared > > libraries with a custom extension. The libtool from base was silently > > ignoring this flag as opposed to erroring out as I would have expected. > > I try adding -shrext to OpenBSD libtool. I'm not sure if my diff is > correct. Later, I will try linking some things with it, but those > things don't use -shrext. > --gkoehler Your changes make sense to me and I've tested your diff in a few bulk without spotting any regression. Time to put this in? (ok jca@) > Index: LT/Mode/Link.pm > =================================================================== > RCS file: /cvs/src/usr.bin/libtool/LT/Mode/Link.pm,v > diff -u -p -r1.38 Link.pm > --- LT/Mode/Link.pm 8 Jul 2023 08:15:32 -0000 1.38 > +++ LT/Mode/Link.pm 17 Aug 2025 03:55:47 -0000 > @@ -150,7 +150,7 @@ sub run($class, $ltprog, $gp, $ltconfig) > > # XXX options ignored: bindir, dlopen, dlpreopen, no-fast-install, > # no-install, no-undefined, precious-files-regex, > - # shrext, thread-safe, prefer-pic, prefer-non-pic, > + # thread-safe, prefer-pic, prefer-non-pic, > # static-libtool-libs > > my @RPopts = $gp->rpath; # -rpath options > @@ -245,8 +245,9 @@ sub run($class, $ltprog, $gp, $ltconfig) > $outfile =~ s/\.a$/.la/; > } > (my $libname = $ofile) =~ s/\.l?a$//; # remove extension > + my $shrext = $gp->shrext // '.so'; > my $staticlib = $libname.'.a'; > - my $sharedlib = $libname.'.so'; > + my $sharedlib = $libname.$shrext; > my $sharedlib_symlink; > > if ($gp->static || $gp->all_static) { > @@ -277,7 +278,7 @@ sub run($class, $ltprog, $gp, $ltconfig) > } > if (defined $gp->release) { > $sharedlib_symlink = $sharedlib; > - $sharedlib = $libname.'-'.$gp->release.'.so'; > + $sharedlib = $libname.'-'.$gp->release.$shrext; > } > if ($gp->avoid_version || > (defined $gp->release && !$gp->version_info)) { > -- jca
