On Sun, 23 Feb 2020 15:07:40 +0300 Vadim Zhukov wrote: > вс, 23 февр. 2020 г. в 10:19, Jeremie Courreges-Anglas > <j...@wxcvbn.org>: > > > > On Sat, Feb 22 2020, Charlene Wendling <juliana...@posteo.jp> wrote: > > > On Sun, 16 Feb 2020 08:04:12 +0100 > > > Jeremie Courreges-Anglas wrote: > > > > > >> On Sat, Feb 15 2020, Kurt Mosiejczuk <k...@cranky.work> wrote: > > >> > http://build-failures.rhaalovely.net/sparc64/2020-02-11/geo/spatialite/gis.log > > >> > http://build-failures.rhaalovely.net/powerpc/2020-01-27/geo/spatialite/gis.log > > >> > > > >> > ok to mark this BROKEN-sparc64/BROKEN-powerpc ? > > >> > > >> libtool strips -lrasterlite from the command line arguments, this > > >> looks wrong. > > >> > > >> Also "-lstdc++ -lestdc++", boo. > > > > > > So i studied the issue and found it, the applied code is not what > > > libtool's debug message and manpage say it is. > > > > > > The second splice() tries to substitute stdc++ with estdc++, it is > > > not needed, because anyway orderedlibs seems always unique (i > > > tried by building stuff and using Data::Dumper). > > > > > > As such, the conditional can be removed entirely, since we just > > > want to strip stdc++ from orderedlibs when estdc++ is present. > > > > > > This fixes geo/spatialite/gis on macppc and sparc64. > > > > > > The below diff against libtool survived a sparc64 bulk. I've built > > > cad/magic and devel/openmpi among other ports using ports-gcc as > > > COMPILER, without issues on amd64. > > > > > > Comments/feedback are welcome, > > > > We should put -lestdc++ in the latest location of -lestdc++ > > and -lstdc++. The order of libraries matters at least for static > > linking, and I believe the intent of the code is correct. Please > > see below, > > > > > Charlène. > > > > > > > > > Index: Link.pm > > > =================================================================== > > > RCS file: /cvs/src/usr.bin/libtool/LT/Mode/Link.pm,v > > > retrieving revision 1.36 > > > diff -u -p -r1.36 Link.pm > > > --- Link.pm 23 Jul 2017 09:48:53 -0000 1.36 > > > +++ Link.pm 22 Feb 2020 14:34:51 -0000 > > > @@ -832,14 +832,7 @@ sub common1 > > > my $is = $tiedlibs->indexof("stdc++"); > > > if (defined($ie) and defined($is)) { > > > tsay {"stripping stdc++ from orderedlibs due to > > > having estdc++ already; ie=$ie, is=$is"}; > > > - # check what library comes later > > > - if ($ie < $is) { > > > - splice(@$orderedlibs, $ie, 1); > > > > After this, estdc++ has been removed and $is is now off by one > > > > > - splice(@$orderedlibs, $is, 1, "estdc++"); > > > > So here we fail to replace "stdc++" with "estdc++", instead we > > overwrite the next value with "estdc++". > > > > This is consistent with "-lstdc++ -lestdc++" appearing in > > > > > > http://build-failures.rhaalovely.net/sparc64/2020-02-11/geo/spatialite/gis.log > > > > and -lrasterlite being absent from the linking command line. Diff > > below. > > > > > - $ie = $is; > > > - } else { > > > - splice(@$orderedlibs, $is, 1); > > > - } > > > + splice(@$orderedlibs, $is, 1); > > > } > > > tsay {"staticlibs = \n", join("\n", @$staticlibs)}; > > > tsay {"orderedlibs = @$orderedlibs"}; > > > > > > First clobber "stdc++" with "estdc++" then remove the original > > "estdc++", this way the indexes stay consistent. This fixes > > geo/spatialite/gis on sparc64. > > > > Do you want to put this in another bulk? ok? > > > > > > Index: LT/Mode/Link.pm > > =================================================================== > > RCS file: /d/cvs/src/usr.bin/libtool/LT/Mode/Link.pm,v > > retrieving revision 1.36 > > diff -u -p -r1.36 Link.pm > > --- LT/Mode/Link.pm 23 Jul 2017 09:48:53 -0000 1.36 > > +++ LT/Mode/Link.pm 23 Feb 2020 07:08:59 -0000 > > @@ -834,8 +834,8 @@ sub common1 > > tsay {"stripping stdc++ from orderedlibs due to > > having estdc++ already; ie=$ie, is=$is"}; > > # check what library comes later > > if ($ie < $is) { > > - splice(@$orderedlibs, $ie, 1); > > splice(@$orderedlibs, $is, 1, "estdc++"); > > + splice(@$orderedlibs, $ie, 1); > > $ie = $is; > > } else { > > splice(@$orderedlibs, $is, 1); > > I've just checked the fix with test program, it does the job. The > patch looks like OK, but definitely needs to be run through the bulk > build.
I tested it on macppc just in case, it indeed works. Thanks for correcting this. I guess it's up to Kurt now ^^