flag to tell ports that you are only building for yourself
Anonymous
swell.k at gmail.com
Mon Jun 28 03:41:46 UTC 2010
Eitan Adler <lists at eitanadler.com> writes:
> I'd like to add a flag to tell ports that you are building only for
> yourself that and optimizations that typically are not enabled could
> be turned on.
There is already MACHINE_CPU. Depending on CPUTYPE it's set to supported
SIMD instructions. But it doesn't recognize CPUTYPE=native currently.
Until conf/112997 is resolved you can add smth like this to make.conf
CPUTYPE ?= native
MACHINE_CPU != echo ${MACHINE_ARCH}; ${CC} -E -dM -v -march=${CPUTYPE} - </dev/null 2>&1 \
| awk '/SSE|MMX/ && !/MATH/ { FS="__"; gsub("_",".",$$2); print tolower($$2) }'
Then you can start adding in your port (ex. for multimedia/mplayer)
.if ${MACHINE_CPU:Mssse3}
CONFIGURE_ARGS += --enable-ssse3
.else
CONFIGURE_ARGS += --disable-ssse3
.endif
> The first two that come to mind are -mtune=native and -march=native.
_CPUCFLAGS are set by CPUTYPE.
$ make -V CPUTYPE
native
$ make -V _CPUCFLAGS
-march=native
$ make -V MACHINE_CPU
amd64 sse4.1 mmx sse2 ssse3 sse sse3 amd64 sse2 sse mmx
Besides, gcc(1) says
-march=cpu-type
Generate instructions for the machine type cpu-type. The choices
for cpu-type are the same as for -mtune. Moreover, specifying
-march=cpu-type implies -mtune=cpu-type.
-mcpu=cpu-type
A deprecated synonym for -mtune.
So, you don't need -mtune and -mcpu.
> Ports would be able to add more flags as needed. This could allow
> ports to optimize themselves to the architecture they on without
> losing the ability to cross build or have build clusters.
Any case where it would be useful besides -march/-mtune/-mmmx/-msse*?
More information about the freebsd-ports
mailing list