Subject: pkg/21932: pkgsrc should support CPUFLAGS from /etc/mk.conf
To: None <gnats-bugs@gnats.netbsd.org>
From: None <fair@netbsd.org>
List: netbsd-bugs
Date: 06/19/2003 10:56:03
>Number: 21932
>Category: pkg
>Synopsis: pkgsrc should support CPUFLAGS from /etc/mk.conf
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: pkg-manager
>State: open
>Class: change-request
>Submitter-Id: net
>Arrival-Date: Thu Jun 19 17:57:02 UTC 2003
>Closed-Date:
>Last-Modified:
>Originator: Erik E. Fair
>Release: NetBSD-current
>Organization:
The NetBSD Project
>Environment:
>Description:
NetBSD sets its compilers to deliver maximum binary compatability
across the series of platforms that share a CPU, e.g. all NetBSD/alpha
systems have compilers that will compile to the 21064, the first alpha.
This is great for an initial install, and for installations that have
a wide range of a given family of systems which share binaries on NFS.
This practice also means we can support the widest range of systems
with one binary release per platform.
However, this practice also means that NetBSD does not take advantage
of performance enhancing improvements in the instruction sets of later
models of the Alpha, e.g. the 21164a, which has the BWX instructions.
In short, on single systems, we often do not perform as well as we
could. GCC 3.3 promises to make this disparity worse, by providing
more complete support for instruction sheduling, and CPU-specific
instruction generation.
In order to make it easier to compile CPU-specific binaries, Jason
Thorpe recently added CPUFLAGS to the /usr/share/mk/* files, as
distinct from CFLAGS, so that they can be easily included without
stomping on other things that are added to CFLAGS (e.g. optimization
flags).
I think that pkgsrc should support this also, to the extent that it
is possible to do within the confines of third-party supplied "make"
procedures which may or may not actually involve BSD make(1); it is
especially important that those third party applications which we
support perform as well as they can on the user's chosen platform when
the user chooses to optimize for that platform.
>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted: