[bug #24251] Random error including rebuilt makefiles
Update of bug #24251 (project make): Privacy: Private = Public Open/Closed:Open = Closed ___ Reply to this item at: http://savannah.gnu.org/bugs/?24251 ___ Message sent via/by Savannah http://savannah.gnu.org/ ___ Bug-make mailing list Bug-make@gnu.org http://lists.gnu.org/mailman/listinfo/bug-make
[bug #24251] Random error including rebuilt makefiles
Follow-up Comment #2, bug #24251 (project make): I don't think this is a duplicate of https://savannah.gnu.org/bugs/?102 This issue isn't about these minor warnings in the output makefile:10: ecos/include/pkgconf/ecos.mak: No such file or directory makefile:11: sub/makefile: No such file or directory This issue is that although make will sometimes build an included makefile it will then ignore the contents of the included makefile. ___ Reply to this item at: http://savannah.gnu.org/bugs/?24251 ___ Message sent via/by Savannah http://savannah.gnu.org/ ___ Bug-make mailing list Bug-make@gnu.org http://lists.gnu.org/mailman/listinfo/bug-make
[bug #24251] Random error including rebuilt makefiles
Follow-up Comment #3, bug #24251 (project make): I reproduced the behavior you saw without svn by replacing the end of the makefile with: $(ECOS_MAKE) : $(ECOS_DIR) $(ECOS_DIR) : mkdir -p $(ECOS_DIR)/include/pkgconf/ { echo 'ECOS_GLOBAL_CFLAGS = -mcpu=arm7tdmi -Wall -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -Woverloaded-virtual -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions -finit-priority'; echo 'ECOS_GLOBAL_LDFLAGS = -mcpu=arm7tdmi -Wl,--gc-sections -Wl,-static -g -nostdlib'; echo 'ECOS_COMMAND_PREFIX = arm-elf-'; } $(ECOS_MAKE) Looking at the manual, After all makefiles have been checked, if any have actually been changed, `make' starts with a clean slate and reads all the makefiles over again. That suggests that it should re-evaluate all these variables. But using make --debug=all suggests that make isn't restarting. Looking at the source code, it seems to be checking whether the modification time on the makefile has changed: if (file-updated g-changed mtime != file-mtime_before_update) { /* Updating was done. If this is a makefile and just_print_flag or question_flag is set (meaning -n or -q was given and this file was specified as a command-line target), don't change STATUS. If STATUS is changed, we will get re-exec'd, and enter an infinite loop. */ But makefile doesn't give a rule for updating $(ECOS_MAKE). It just says that it depends on $(ECOS_DIR). Telling make that it needn't do anything to update $(ECOS_MAKE) once it's updated $(ECOS_DIR), by changing: $(ECOS_MAKE) : $(ECOS_DIR) To: $(ECOS_MAKE) : $(ECOS_DIR); Fixes the problem. ___ Reply to this item at: http://savannah.gnu.org/bugs/?24251 ___ Message sent via/by Savannah http://savannah.gnu.org/ ___ Bug-make mailing list Bug-make@gnu.org http://lists.gnu.org/mailman/listinfo/bug-make
[bug #24251] Random error including rebuilt makefiles
Follow-up Comment #4, bug #24251 (project make): Thanks Martin for your assistance, adding the semi-colon after the prerequisite fixes my problem. I'm not sure I understand the difference, I expect a pre-requisite to be completely built before it is included, but I'll worry about my lack of understanding later. To make administrators, If the lack of the semi-colon was an error in my makefile, then this bug can be closed and sorry for the inconvenience. Even if there is still a bug in make, the severity of this bug can be lowered since there's a work-around (at least for me). ___ Reply to this item at: http://savannah.gnu.org/bugs/?24251 ___ Message sent via/by Savannah http://savannah.gnu.org/ ___ Bug-make mailing list Bug-make@gnu.org http://lists.gnu.org/mailman/listinfo/bug-make
[bug #24251] Random error including rebuilt makefiles
URL: http://savannah.gnu.org/bugs/?24251 Summary: Random error including rebuilt makefiles Project: make Submitted by: None Submitted on: Fri 12 Sep 2008 03:07:19 PM UTC Severity: 3 - Normal Item Group: Bug Status: None Privacy: Public Assigned to: None Open/Closed: Open Discussion Lock: Any Component Version: 3.81 Operating System: Any Fixed Release: None ___ Details: I'm trying to automatically build (checkout from svn) an included makefile. The build always succeeds, but the variables set in the included makefile don't always get set. I can make it work by building and including a file I don't care for, but that doesn't seem like a proper solution. (see example) The same problem occurs with both make 3.79.1 on a Linux machine and make 3.81 on Cygwin/XP machine. Am I expecting more from make than I should be? I'm attaching a log showing a trimmed down version of the makefile and the included makefile along with results showing the inconsistent behaviour. Unfortunately you won't be able to access my svn repository, but hopefully you'll be able to recreate the problem some other way. The $(SUB_CMD_PREFIX) variable defined in $(SUB_MAKE) is always set successfully, but the $(ECOS_COMMAND_PREFIX) defined in $(ECOS_MAKE) is only set if $(SUB_MAKE) also needs to be built. i.e. there seems to be a race condition rather than waiting for the dependency to complete. Sorry that this is a duplicate of http://savannah.gnu.org/support/index.php?106466, but I haven't received any response there. ___ File Attachments: --- Date: Fri 12 Sep 2008 03:07:19 PM UTC Name: make.log Size: 2kB By: None log of session showing makefile, usage results and version info http://savannah.gnu.org/bugs/download.php?file_id=16470 ___ Reply to this item at: http://savannah.gnu.org/bugs/?24251 ___ Message sent via/by Savannah http://savannah.gnu.org/ ___ Bug-make mailing list Bug-make@gnu.org http://lists.gnu.org/mailman/listinfo/bug-make
[bug #24251] Random error including rebuilt makefiles
Follow-up Comment #1, bug #24251 (project make): Looks like https://savannah.gnu.org/bugs/?102 to me. ___ Reply to this item at: http://savannah.gnu.org/bugs/?24251 ___ Message sent via/by Savannah http://savannah.gnu.org/ ___ Bug-make mailing list Bug-make@gnu.org http://lists.gnu.org/mailman/listinfo/bug-make