Don't use CPP in Configurations/unix-Makefile.tmpl
authorRichard Levitte <levitte@openssl.org>
Wed, 4 Apr 2018 13:23:30 +0000 (15:23 +0200)
committerRichard Levitte <levitte@openssl.org>
Wed, 4 Apr 2018 14:44:45 +0000 (16:44 +0200)
We started using $(CPP) instead of $(CC) -E, with the assumption that
CPP would be predefined.  This is, however, not always true, and
rather depends on the 'make' implementation.  Furthermore, on
platforms where CPP=cpp or something else other than '$(CC) -E',
there's a risk that it won't understand machine specific flags that we
pass to it.  So it turns out that trying to use $(CPP) was a mistake,
and we therefore revert that use back to using $(CC) -E directly.

Fixes #5867

Note: this affects config targets that use Alpha, ARM, IA64, MIPS,
s390x or SPARC assembler modules.

Reviewed-by: Andy Polyakov <appro@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/5872)

Configurations/unix-Makefile.tmpl

index cc66abe..caf2783 100644 (file)
@@ -954,7 +954,7 @@ EOF
           }
           return <<"EOF";
 $args{src}: $args{generator}->[0] $deps
-       \$(CPP) $incs $cppflags $args{generator}->[0] | \\
+       \$(CC) $incs $cppflags -E $args{generator}->[0] | \\
        \$(PERL) -ne '/^#(line)?\\s*[0-9]+/ or print' > \$@
 EOF
       }
@@ -1012,7 +1012,7 @@ EOF
           $recipe .= <<"EOF";
 $obj$objext: $deps
        ( trap "rm -f \$@.*" INT 0; \\
-         \$(CPP) $incs $cmdflags $srcs | \\
+         \$(CC) $incs $cmdflags -E $srcs | \\
          \$(PERL) -ne '/^#(line)?\\s*[0-9]+/ or print' > \$@.s && \\
          $cmd $cmdflags -c -o \$\@ \$@.s )
 EOF