tech-pkg archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
changing the default i386 compilation target? sse2?
Recently a lot of rusty packages got marked as not building on i386
because (if I followed) upstream insists on sse2.
With x86_64, lots of extensions are always present, and are thus part of
the base compiler target.
With i386, I believe NetBSD targets i486, and thus no sse2.
While I think it's useful for pkgsrc to work on i386 in general, I am
not sure if anyone is using an actual i486, or any hardware that is pre
sse2. I would not have said this 10 years ago.
I note that mk/atomic.mk has:
.if ${MACHINE_ARCH} == "i386"
. if empty(CFLAGS:M*march=*)
CFLAGS+= -march=i586
. endif
.endif
which is basically saying that if a package is marked for atomic
operations, it won't run on a true i486. I have not seen any
complaints.
I therefore wonder:
Do any actual people use pkgsrc (2024Q4 or later) on a i386 cpu that
lacks pentium stuff and sse2?
Should pkgsrc say that i386 means to compile for sse2, so that default
binary packages won't work on i486 (that nobody uses)? (As I
understand it, sse2 arrived with Pentium 4, so ~all "i586" and various
"i686" processors lack sse2.)
Should we have a mk/sse2.mk that flips this on, even if it isn't in
general? That's an icky name so maybe some other way, but the point
is a declarative way to enable sse2 use and avoid a general failure,
making the failing case just on the very old hardware.
(Perhaps NetBSD should change i386 to mean sse2 or later, but that's
for another list, and having found that there are i686 w/o sse2, seems
premature; maybe in 2030.)
Home |
Main Index |
Thread Index |
Old Index