From: Ileana Dumitrescu Date: Wed, 3 Dec 2025 16:57:53 +0000 (+0200) Subject: Add testing for slimcc compiler X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=74bc6f5229b7891e6db6a8cf5ed548064d91d79b;p=thirdparty%2Flibtool.git Add testing for slimcc compiler New compiler support testing for Slimcc, which is based on existing link order testing. See https://debbugs.gnu.org/cgi/bugreport.cgi?bug=79216 --- diff --git a/Makefile.am b/Makefile.am index ccca7dcb1..21fb56d52 100644 --- a/Makefile.am +++ b/Makefile.am @@ -679,6 +679,7 @@ TESTSUITE_AT = tests/testsuite.at \ tests/inherited_flags.at \ tests/link-order.at \ tests/link-order2.at \ + tests/slimcc.at \ tests/fail.at \ tests/shlibpath.at \ tests/runpath-in-lalib.at \ diff --git a/tests/slimcc.at b/tests/slimcc.at new file mode 100644 index 000000000..968c19bd4 --- /dev/null +++ b/tests/slimcc.at @@ -0,0 +1,101 @@ +# slimcc.at - Link order check for the slimcc compiler -*- Autotest -*- +# +# Copyright (C) 2025 Free Software Foundation, Inc. +# +# This file is part of GNU Libtool. +# +# GNU Libtool is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of +# the License, or (at your option) any later version. +# +# GNU Libtool is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Libtool. If not, see . +#### + + +AT_SETUP([Link order slimcc test]) +AT_KEYWORDS([slimcc]) +eval `$LIBTOOL --config | $EGREP '^(hardcode_direct|hardcode_direct_absolute|shrext_cmds)='` +LDFLAGS="$LDFLAGS -no-undefined" + +module=no +eval shared_ext=\"$shrext_cmds\" + +AT_CHECK([$LIBTOOL --config | $EGREP '^CC=slimcc' || exit 77], 1) + +prefix_old=`pwd`/old +prefix_new=`pwd`/new +mkdir src $prefix_old $prefix_new $prefix_old/lib $prefix_new/lib + +AT_DATA(src/c.c, +[[int c = 1; +]]) + +$LIBTOOL --mode=compile $CC $CPPFLAGS $CFLAGS -c src/c.c -o src/c.lo +$LIBTOOL --mode=link $CC $CFLAGS $LDFLAGS -o src/libcee.la src/c.lo -rpath $prefix_old/lib +$LIBTOOL --mode=install cp src/libcee.la $prefix_old/lib/libcee.la + +for i in old new; do + rm -rf src + mkdir src + + cat >src/a_$i.c <src/b_$i.c <src/main_$i.c <