> echo > x1.c > echo > x2.c > gcc -combine -MM x1.c x2.c cc1: error: too many filenames given. Type cc1 --help for usage > gcc -combine -MM -save-temps x1.c x2.c i686-apple-darwin9-gcc-4.2.1: internal gcc abort in main, at /var/tmp/gcc_42/gcc_42-5564~1/src/gcc/gcc.c:6967 >gcc -v -combine -MM x1.c x2.c Using built-in specs. Target: i686-apple-darwin9 Configured with: /var/tmp/gcc_42/gcc_42-5564~1/src/configure --disable-checking --enable-werror --prefix=/usr --mandir=/usr/share/man --enable-languages=c,objc,c++,obj-c++ --program-transform-name=/^[cg][^.-]*$/s/$/-4.2/ --with-gxx-include-dir=/usr/include/c++/4.0.0 --with-slibdir=/usr/lib --build=i686-apple-darwin9 --host=i686-apple-darwin9 --target=i686-apple-darwin9 Thread model: posix gcc version 4.2.1 (Apple Inc. build 5564) /usr/libexec/gcc/i686-apple-darwin9/4.2.1/cc1 -E -quiet -v -MM -D__DYNAMIC__ x1.c x2.c -fPIC -mmacosx-version-min=10.5.5 -mtune=core2 ignoring nonexistent directory "/usr/lib/gcc/i686-apple-darwin9/4.2.1/../../../../i686-apple-darwin9/include" #include "..." search starts here: #include <...> search starts here: /usr/local/include /usr/lib/gcc/i686-apple-darwin9/4.2.1/include /usr/include /System/Library/Frameworks (framework directory) /Library/Frameworks (framework directory) End of search list. cc1: error: too many filenames given. Type cc1 --help for usage
This is not really a bug. I don't think -MM is intended to work with -combine. This restriction should be documented, though.
(In reply to comment #1) > This is not really a bug. I don't think -MM is intended to work > with -combine. -combine's existing documentation would make it seem that gcc should call cc1 multiple times, once for each file, because it's in a situation where the underlying processor does not support multiple files at a time. This would be analogous to -combine being automatically disabled when a language other than C is being compiled.
-combine has been removed from GCC 4.6 in favor of LTO, closing as WONTFIX.