The following reply was made to PR preprocessor/5899; it has been noted by GNATS. From: Andreas Schwab To: Neil Booth Cc: neil@gcc.gnu.org, gcc-bugs@gcc.gnu.org, gcc-prs@gcc.gnu.org, gcc-gnats@gcc.gnu.org Subject: Re: preprocessor/5899: -M disables -dM Date: Sat, 09 Mar 2002 21:50:56 +0100 Neil Booth writes: |> Andreas Schwab wrote:- |> |> > IMHO neither -dM nor -M produce "normal output", so it would not |> > contradict the docs to output both. |> |> Sure, but it wasn't mentioned that it outputs to two streams |> simultaneously. 2.95 didn't. |> |> > Both 2.95 and 3.0.4 behave as expected by glibc. |> |> What is "expected by glibc"? It's not what you posted, since 2.95.4 |> didn't support -MF. glibc uses the equivalent functionality provided by SUNPRO_DEPENDENCIES: # Generate the list of SYS_* macros for the system calls (__NR_* macros). $(objpfx)syscall-%.h $(objpfx)syscall-%.d: ../sysdeps/unix/sysv/linux/sys/syscall.h rm -f $(@:.h=.d)-t { \ echo '/* Generated at libc build time from kernel syscall list. */';\ echo ''; \ echo '#ifndef _SYSCALL_H'; \ echo '# error "Never use directly; include instead."'; \ echo '#endif'; \ echo ''; \ SUNPRO_DEPENDENCIES='$(@:.h=.d)-t $@' \ $(CC) -E -x c $(sysincludes) $< -D_LIBC -dM | \ sed -n 's@^#define __NR_\([^ ]*\) .*$$@#define SYS_\1 __NR_\1@p'; \ } > $(@:.d=.h).new mv -f $(@:.d=.h).new $(@:.d=.h) sed < $(@:.h=.d)-t > $(@:.h=.d)-t2 \ -e 's,$(subst .,\.,$@),$(patsubst $(objpfx)%,$$(objpfx)%,\ $(@:.d=.h) $(@:.h=.d)),' rm -f $(@:.h=.d)-t mv -f $(@:.h=.d)-t2 $(@:.h=.d) Andreas. -- Andreas Schwab, SuSE Labs, schwab@suse.de SuSE GmbH, Deutschherrnstr. 15-19, D-90429 Nürnberg Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different."