Re: [PATCH] Support new egcs/pgcc -mpentium(pro) options

Matthias Andree (mandree@sx1.hrz.uni-dortmund.de)
Sun, 13 Dec 1998 13:36:51 +0100 (MET)


On Sun, 13 Dec 1998, Andi Kleen wrote:

> Suggested options for PPro/egcs 1.1:
>
> -O2 -march=pentiumpro -mpentiumpro -fno-gcse

Euhm, read the docs. -march=pentiumpro IMPLIES -mpentiumpro, that is why
I haven't put that in as well. I did not know about the no-gcse thing,
however.

> and remove the -malign-* options, because egcs does now a better job
> at that. -fno-gcse is needed to prevent code bloat and excessive spill
> code on x86 (the global CSE pass does not seem to be well tuned for
> register starved machines like the x86 yet). Also it is less risky, because
> GCSE does a lot of code movement, which might uncover locking bugs (this
> applies if you want a working kernel, if you want to uncover bugs it looks
> different ;)

Besides the -fno-gcse, you should really have a closer look at my patch.
These -malign/-m options are only used if enabled in the config and
should default to off...

> The problem is that gcc 2.7.2 does not understand these new options,
> so the Makefiles have to know which compiler version is being used.

...to circumvent this.

> Now using a CONFIG_* option to select the kernel compiler is rather
> ugly, because the kernel makefile could just check for that itself. For

That would prevent the user from deciding for himself IF he wants to use
these new options.

> that something like autoconf would be needed to determine the characteristics
> of the compilation host (not of the target, because the kernel might be
> cross compiled).

Surely, the thing that matters is the compiling host. If the host does
not support a target feature, we can't have it.

> Alternatives are cheap hacks like:
>
> Makefile.pre
>
> #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 8)

Am I missing something here? How can a Makefile know about the compiler?

I am just wondering if this construct can be used to pass the compiler
version to the *config scripts which then could disable the new -m
directives in turn.

> ifdef CONFIG_M686
> # the bug of -fno-strength-reduce is fixed in 2.7.x minor releases,
> # so in theory we could test for that too.

I don't care for 2.6 and older gcc any more. 2.7.2.x are stable.

-- 
Matthias Andree
                                   --- How to obtain PGP public key
<mandree@dosis.uni-dortmund.de>    <<< /finger/ this
<m_andree@line.org>                <<< mail, subject "SEND PGP-PUBLIC-KEY"

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/