Hi,

Given following makefile in empty directory:
#==================
.PHONY: all

all: cap

cap:
    touch $(@)
#==================

Running make 3.81 from command line gives different exit code then 4.0 i.e

make 3.81
/usr/bin/make  -q ; echo $?
1

make 4.0
/opt/make-4.0/bin/make  -q ; echo $?
2


3.81 correctly reports that target is out of date (since there is no cap file in current dir) but make 4.0 reports that there is error but no error message is actually printed.

I traced down this to be a change in remake.c
(Modify the update_status field in struct file to be an enum. git commit 4b81f5ca920d716c08430583f5edb2c125f1f123 )

If I only revert below change in remake.c all works fine (for me that is

@@ -664,7 +666,7 @@ update_file_1 (struct file *file, unsigned int depth)

   if (dep_status != 0)
     {
-      file->update_status = dep_status;
+      file->update_status = us_failed;
       notice_finished_file (file);

Thanks
Krzysztof

_______________________________________________
Bug-make mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/bug-make

Reply via email to