Hi,

The following tiny patch allows GCC to be built with the
"--no-builtin-rules" GNU make flag.  It replaces two usages of the
automatic variable $* within the body of an explicit rule.  Using $*
inside the body of an explicit rule should be avoided[0] and, as in
this scenario, may break an otherwise fine Makefile under the
--no-builtin-rules flag.

>From what I inferred from the make manual[0], $* is functionally
equivalent to $(basename $@) in this case.  This patch therefore
replaces $* with $(basename $@).  I tested this patch by successfully
performing a 3-stage bootstrap and a non-bootstrap build with and
without the --no-builtin-rules flag.  Without the patch, the build
would fail during the compilation of libgcc/morestack.S under the
--no-builtin-rules flag.

This patch is interesting because the --no-builtin-rules flag may
significantly shorten rebuild times.  For example, on my machine an
idempotent rebuild of the (non-bootstrapped) compiler takes 2s with
the flag versus 2.6s without.  Similarly, a rebuild after changing a
single source file takes 20s versus 22s.  This patch lets you
seamlessly build and rebuild the compiler under the --no-builtin-rules
flag without having to worry about possible build errors.

[0]: 
http://www.gnu.org/software/make/manual/html_node/Automatic-Variables.html#Automatic-Variables

Reply via email to