The old code does not preprocess assembler files when cgcc is called like this: cgcc -E -o multiboot.asm multiboot.S As the preprocessor is not called, no multiboot.asm is generated, and any further build steps which need it will fail. Fix this by using a new intermediate variable $do_preprocess. Signed-off-by: Stefan Weil <sw@xxxxxxxxxxx> --- This patch allows using cgcc for QEMU builds. I did not run any other tests, so please review carefully. Thanks, Stefan Weil cgcc | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/cgcc b/cgcc index c075e5f..a43e074 100755 --- a/cgcc +++ b/cgcc @@ -10,6 +10,7 @@ my $has_specs = 0; my $gendeps = 0; my $do_check = 0; my $do_compile = 1; +my $do_preprocess = 0; my $gcc_base_dir; my $verbose = 0; @@ -44,8 +45,7 @@ while (@ARGV) { next; } - # If someone adds "-E", don't pre-process twice. - $do_compile = 0 if $_ eq '-E'; + $do_preprocess = 1 if $_ eq '-E'; $verbose = 1 if $_ eq '-v'; @@ -59,6 +59,11 @@ if ($gendeps) { $do_check = 0; } +if ($do_check && $do_preprocess) { + # If someone adds "-E", don't pre-process twice. + $do_compile = 0; +} + if ($do_check) { if (!$has_specs) { $check .= &add_specs ('host_arch_specs'); -- 1.7.10.4 -- To unsubscribe from this list: send the line "unsubscribe linux-sparse" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html