Subject: pkg/21932: pkgsrc should support CPUFLAGS from /etc/mk.conf
To: None <>
From: None <>
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
>Originator:     Erik E. Fair
>Release:        NetBSD-current
The NetBSD Project
	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

	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.