Don't use CPP in Configurations/unix-Makefile.tmpl
authorRichard Levitte <levitte@openssl.org>
Wed, 4 Apr 2018 13:28:19 +0000 (15:28 +0200)
committerRichard Levitte <levitte@openssl.org>
Wed, 4 Apr 2018 14:45:51 +0000 (16:45 +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/5871)

Configurations/unix-Makefile.tmpl

index 40cf2c3..1bfaa97 100644 (file)
@@ -848,7 +848,7 @@ EOF
           $recipe .= <<"EOF";
 $obj$objext: $deps
        ( trap "rm -f \$@.*" INT 0; \\
-         \$(CPP) $incs \$(CFLAGS) $ecflags $srcs | \\
+         \$(CC) $incs \$(CFLAGS) $ecflags -E $srcs | \\
          \$(PERL) -ne '/^#(line)?\\s*[0-9]+/ or print' > \$@.s && \\
          \$(CC) \$(CFLAGS) $ecflags -c -o \$\@ \$@.s )
 EOF