Re: Possible bug with Makefile macros spanning many lines on old Mac OS X versions

Peter Dyballa <[email protected]> Sun, 8 Feb 2026 12:58:10 +0100
Newsgroups gmane.comp.gnu.make.bugs
Message-ID <[email protected]>
A bit of repetition first:

	• GCC 15 compilation started with exactly naming /opt/local/bin/gmake as tool to build with.
	
	• Build process stopped in .../gcc15-678e8911/work/build/powerpc-apple-darwin9/libgcc when the symlink "md-unwind-def.h" was missing for source file .../gcc15-678e8911/work/gcc-15.2.0/libgcc/unwind-dw2.c.
	
	• Only three symlinks (out of five) to C header files were created.
	
	• I created manually the two missing symlinks.
	
	• When the build process continued, GMake created another symlink from the same macro, LIBGCC_LINKS, that points to a C source file.


One day or such later in next build stage the same error happened again:

	checking for strub support... yes 
	configure: updating cache ./config.cache
	configure: creating ./config.status
	config.status: creating Makefile
	config.status: creating auto-target.h
	config.status: executing default commands
	gmake[3]: Entering directory '.../gcc15-678e8911/work/build/powerpc-apple-darwin9/libgcc'
	# If this is the top-level multilib, build all the other
	# multilibs.
	ln -s .../gcc15-678e8911/work/gcc-15.2.0/libgcc/gthr-posix.h gthr-default.h
	ln -s .../gcc15-678e8911/work/gcc-15.2.0/libgcc/config/no-unwind.h md-unwind-support.h
	sleep 2
	ln -s .../gcc15-678e8911/work/gcc-15.2.0/libgcc/unwind-generic.h unwind.h
	sleep 2
	DEFINES='' HEADERS='.../gcc15-678e8911/work/gcc-15.2.0/libgcc/config/i386/darwin-lib.h' \
	        .../gcc15-678e8911/work/gcc-15.2.0/libgcc/mkheader.sh > tmp-libgcc_tm.h
	/bin/sh .../gcc15-678e8911/work/gcc-15.2.0/libgcc/../move-if-change tmp-libgcc_tm.h libgcc_tm.h
	echo timestamp > libgcc_tm.stamp
	.../gcc15-678e8911/work/build/./gcc/xgcc -B.../gcc15-678e8911/work/build/./gcc/ -B/opt/local/powerpc-apple-darwin9/bin/ -B/opt/local/powerpc-apple-darwin9/lib/ -isystem /opt/local/powerpc-apple-darwin9/include -isystem /opt/local/powerpc-apple-darwin9/sys-include   -fno-checking -g -O2 -pipe -Os -O2  -g -O2 -pipe -Os -DIN_GCC   -W -Wall -Wno-error=narrowing -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition  -isystem ./include  -mmacosx-version-min=10.5 -Wa,-force_cpusubtype_ALL -fno-common -mlong-double-128 -maltivec -g -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector  -mmacosx-version-min=10.5 -Wa,-force_cpusubtype_ALL -fno-common -mlong-double-128 -maltivec -I. -I. -I../.././gcc -I.../gcc15-678e8911/work/gcc-15.2.0/libgcc -I.../gcc15-678e8911/work/gcc-15.2.0/libgcc/. -I.../gcc15-678e8911/work/gcc-15.2.0/libgcc/../gcc -I.../gcc15-678e8911/work/gcc-15.2.0/libgcc/../include     -o unwind-dw2_s.o -MT unwind-dw2_s.o -MD -MP -MF unwind-dw2_s.dep -DSHARED -fexceptions -c .../gcc15-678e8911/work/gcc-15.2.0/libgcc/unwind-dw2.c
	In file included from .../gcc15-678e8911/work/gcc-15.2.0/libgcc/unwind-dw2.c:38:
	.../gcc15-678e8911/work/gcc-15.2.0/libgcc/unwind-dw2.h:25:10: fatal error: md-unwind-def.h: No such file or directory
	   25 | #include "md-unwind-def.h"
	      |          ^~~~~~~~~~~~~~~~~
	compilation terminated.
	gmake[3]: *** [.../gcc15-678e8911/work/gcc-15.2.0/libgcc/shared-object.mk:17: unwind-dw2_s.o] Error 1

The directory with the missing "md-unwind-def.h" had then:

	  .../gcc15-678e8911/work/build/powerpc-apple-darwin9/libgcc:
	  insgesamt 176
          drwxr-xr-x 2 macports admin   476  8. Feb 10:03 .
	  -rw-r--r-- 1 macports admin   216  8. Feb 10:03 libgcc_tm.h
	  -rw-r--r-- 1 macports admin    10  8. Feb 10:03 libgcc_tm.stamp
	  lrwxr-xr-x 1 macports admin    84  8. Feb 10:03 unwind.h -> .../gcc15-678e8911/work/gcc-15.2.0/libgcc/unwind-generic.h
	  lrwxr-xr-x 1 macports admin    80  8. Feb 10:03 gthr-default.h -> .../gcc15-678e8911/work/gcc-15.2.0/libgcc/gthr-posix.h
	  lrwxr-xr-x 1 macports admin    86  8. Feb 10:03 md-unwind-support.h -> .../gcc15-678e8911/work/gcc-15.2.0/libgcc/config/no-unwind.h
	  -rw-r--r-- 1 macports admin 53886  8. Feb 10:03 config.log
	  -rw-r--r-- 1 macports admin  3174  8. Feb 10:03 auto-target.h
	  -rw-r--r-- 1 macports admin    10  8. Feb 10:03 stamp-h
	  -rw-r--r-- 1 macports admin 40859  8. Feb 10:03 Makefile
	  -rw-r--r-- 1 macports admin  4117  8. Feb 10:03 config.cache
	  -rwxr-xr-x 1 macports admin 37325  8. Feb 10:03 config.status
	  drwxr-xr-x 3 macports admin   102  8. Feb 10:02 ..
	  -rw-r--r-- 1 macports admin     3  8. Feb 10:02 multilib.out

Since configure had already produced a Makefile to build in libgcc I removed the three created symlinks + libgcc_tm.stamp and libgcc_tm.h. Then I invoked "env LANG=C /opt/local/bin/gmake -d" in this directory. On the almost 10,000 lines of GMake output the missing two symlinks to C header files, sfp-machine.h and md-unwind-def.h, are *never* mentioned.


I cannot find the cause why GMake (GNU Make 4.4.1, Built for powerpc-apple-darwin9.8.0) is neglecting the two symlinks, they're not mentioned in debug output, kind of invisible in Makefile, do not need to exist (yet?). Could it be that sfp-machine.h and md-unwind-def.h need to be mentioned as dependants in some other Makefile? Then the question arises: Why only here? I started building GCC 15 on my up-to-day Mac with an intel CPU where all six symlinks where built at once:

	gmake[3]: Entering directory '.../work/build/x86_64-apple-darwin23/libgcc'
	# If this is the top-level multilib, build all the other  
        ln -s .../work/gcc-15.2.0/libgcc/enable-execute-stack-mprotect.c enable-execute-stack.c
	ln -s .../work/gcc-15.2.0/libgcc/unwind-generic.h unwind.h
	ln -s .../work/gcc-15.2.0/libgcc/config/no-unwind.h md-unwind-def.h
	ln -s .../work/gcc-15.2.0/libgcc/config/no-unwind.h md-unwind-support.h
	ln -s .../work/gcc-15.2.0/libgcc/config/i386/sfp-machine.h sfp-machine.h
	ln -s .../work/gcc-15.2.0/libgcc/gthr-posix.h gthr-default.h
	DEFINES='' HEADERS='.../work/gcc-15.2.0/libgcc/config/i386/darwin-lib.h' \
	    .../work/gcc-15.2.0/libgcc/mkheader.sh > tmp-libgcc_tm.h
	# multilibs.


The log file of its debug output is available, the Makefile too and also its corresponding Makefile.in.

--
Greetings

  Pete

Got Mole problems?
Call Avogadro 6.02 x 10^23