Module Name:    src
Committed By:   rillig
Date:           Mon Feb  7 22:43:50 UTC 2022

Modified Files:
        src/distrib/sets/lists/tests: mi
        src/usr.bin/make/unit-tests: Makefile
Added Files:
        src/usr.bin/make/unit-tests: suff-use.exp suff-use.mk

Log Message:
tests/make: demonstrate combination of .USE with transformation rule

Reported in 2003 in PR toolchain/20993.  Linking a transformation rule
with .USE or .USEBEFORE node makes the transformation rule fail.


To generate a diff of this commit:
cvs rdiff -u -r1.1185 -r1.1186 src/distrib/sets/lists/tests/mi
cvs rdiff -u -r1.302 -r1.303 src/usr.bin/make/unit-tests/Makefile
cvs rdiff -u -r0 -r1.1 src/usr.bin/make/unit-tests/suff-use.exp \
    src/usr.bin/make/unit-tests/suff-use.mk

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/distrib/sets/lists/tests/mi
diff -u src/distrib/sets/lists/tests/mi:1.1185 src/distrib/sets/lists/tests/mi:1.1186
--- src/distrib/sets/lists/tests/mi:1.1185	Sun Jan 23 18:00:53 2022
+++ src/distrib/sets/lists/tests/mi	Mon Feb  7 22:43:50 2022
@@ -1,4 +1,4 @@
-# $NetBSD: mi,v 1.1185 2022/01/23 18:00:53 rillig Exp $
+# $NetBSD: mi,v 1.1186 2022/02/07 22:43:50 rillig Exp $
 #
 # Note: don't delete entries from here - mark them as "obsolete" instead.
 #
@@ -5917,6 +5917,8 @@
 ./usr/tests/usr.bin/make/unit-tests/suff-transform-expand.mk			tests-usr.bin-tests	compattestfile,atf
 ./usr/tests/usr.bin/make/unit-tests/suff-transform-select.exp			tests-usr.bin-tests	compattestfile,atf
 ./usr/tests/usr.bin/make/unit-tests/suff-transform-select.mk			tests-usr.bin-tests	compattestfile,atf
+./usr/tests/usr.bin/make/unit-tests/suff-use.exp				tests-usr.bin-tests	compattestfile,atf
+./usr/tests/usr.bin/make/unit-tests/suff-use.mk					tests-usr.bin-tests	compattestfile,atf
 ./usr/tests/usr.bin/make/unit-tests/suffixes.exp				tests-obsolete		obsolete
 ./usr/tests/usr.bin/make/unit-tests/suffixes.mk					tests-obsolete		obsolete
 ./usr/tests/usr.bin/make/unit-tests/sunshcmd.exp				tests-usr.bin-tests	compattestfile,atf

Index: src/usr.bin/make/unit-tests/Makefile
diff -u src/usr.bin/make/unit-tests/Makefile:1.302 src/usr.bin/make/unit-tests/Makefile:1.303
--- src/usr.bin/make/unit-tests/Makefile:1.302	Thu Jan 27 21:50:50 2022
+++ src/usr.bin/make/unit-tests/Makefile	Mon Feb  7 22:43:50 2022
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.302 2022/01/27 21:50:50 sjg Exp $
+# $NetBSD: Makefile,v 1.303 2022/02/07 22:43:50 rillig Exp $
 #
 # Unit tests for make(1)
 #
@@ -314,6 +314,7 @@ TESTS+=		suff-transform-debug
 TESTS+=		suff-transform-endless
 TESTS+=		suff-transform-expand
 TESTS+=		suff-transform-select
+TESTS+=		suff-use
 TESTS+=		sunshcmd
 TESTS+=		ternary
 TESTS+=		unexport

Added files:

Index: src/usr.bin/make/unit-tests/suff-use.exp
diff -u /dev/null src/usr.bin/make/unit-tests/suff-use.exp:1.1
--- /dev/null	Mon Feb  7 22:43:50 2022
+++ src/usr.bin/make/unit-tests/suff-use.exp	Mon Feb  7 22:43:50 2022
@@ -0,0 +1,7 @@
+: 'Making demo.c out of nothing'
+make: don't know how to make demo.o (continuing)
+`all' not remade because of errors.
+
+Stop.
+make: stopped in unit-tests
+exit status 1
Index: src/usr.bin/make/unit-tests/suff-use.mk
diff -u /dev/null src/usr.bin/make/unit-tests/suff-use.mk:1.1
--- /dev/null	Mon Feb  7 22:43:50 2022
+++ src/usr.bin/make/unit-tests/suff-use.mk	Mon Feb  7 22:43:50 2022
@@ -0,0 +1,50 @@
+# $NetBSD: suff-use.mk,v 1.1 2022/02/07 22:43:50 rillig Exp $
+#
+# This test combines a .USE node with suffix rules, trying to add an
+# additional command before and after successful compilation of a .c file.
+#
+# History:
+#	bin/make-2001.11.12.21.58.18-plain
+#	| : 'Making demo.c out of nothing'
+#	| make: don't know how to make demo.o. Stop
+#	|
+#	| make: stopped in /home/rillig/proj/make-archive
+#	| exit status 2
+#	bin/make-2007.10.11.21.19.28-plain
+#
+#	bin/make-2014.08.23.15.05.40-plain
+#	| : 'Making demo.c out of nothing'
+#	| : 'Compiling demo.c to demo.o'
+#	| exit status 0
+#	bin/make-2014.09.05.06.57.20-plain
+#
+#	bin/make-2014.09.07.20.55.34-plain
+#	| : 'Making demo.c out of nothing'
+#	| make: don't know how to make demo.o. Stop
+#	|
+#	| make: stopped in /home/rillig/proj/make-archive
+#	| exit status 2
+#	...
+#
+# See also:
+#	https://gnats.netbsd.org/20993
+
+
+.SUFFIXES: .c .o
+
+all: demo.o
+
+.c.o:
+	: 'Compiling ${.IMPSRC} to ${.TARGET}'
+
+demo.c:
+	: 'Making ${.TARGET} out of nothing'
+
+using-before: .USEBEFORE
+	: 'Before making ${.TARGET} from ${.ALLSRCS}'
+
+using-after: .USE
+	: 'After making ${.TARGET} from ${.ALLSRCS}'
+
+# expect: make: don't know how to make demo.o (continuing)
+.c.o: using-before using-after

Reply via email to