|
Description
|
In addition to that noted in 6330877 the following files gain new HWCAP tags as a result of using the snv_24 /usr/ccs/bin/as for 32 bit objects on x86 (ie i386 subdirs). We are not currently using /usr/ccs/bin/as for amd64 objects so no impact was seen there.
I ran two builds on my workspace that has the fix for 6330877 in it.
One with the /usr/ccs/bin/as from snv_14 and one with as from snv_24.
I did the checks on the proto area so that we see the real files in
/lib/libc rather than what we see at runtime due to the lofs mount.
It looks like some other things are impacted, disturbingly libc seems to
be impacted. We also have this new CX8 tag we never had before.
kernel/unix is impacted as well but thats okay since nobody is checking
him :-)
I probably wouldn't worry about crt1.o and friends now saying they need
an FPU since I believe all x86 systems we support require a hardware
FPU.
snv_14: ./platform/i86pc/kernel/unix: ELF 32-bit LSB executable 80386 Version 1, dynamically linked, not stripped, no debugging information available
snv_24: ./platform/i86pc/kernel/unix: ELF 32-bit LSB executable 80386 Version 1 [PAUSE SSE2 SSE FXSR SEP CX8 TSC FPU], dynamically linked, not stripped, no debugging information available
snv_14: ./lib/libc.so.1: ELF 32-bit LSB dynamic lib 80386 Version 1, dynamically linked, not stripped, no debugging information available
snv_24: ./lib/libc.so.1: ELF 32-bit LSB dynamic lib 80386 Version 1 [SSE CX8 FPU], dynamically linked, not stripped, no debugging information available
snv_14: ./usr/lib/libc.so.1: ELF 32-bit LSB dynamic lib 80386 Version 1, dynamically linked, not stripped, no debugging information available
snv_24: ./usr/lib/libc.so.1: ELF 32-bit LSB dynamic lib 80386 Version 1 [SSE CX8 FPU], dynamically linked, not stripped, no debugging information available
snv_14: ./usr/lib/libc/libc_hwcap1.so.1: ELF 32-bit LSB dynamic lib 80386 Version 1 [SSE MMX CMOV SEP FPU], dynamically linked, not stripped, no debugging information available
snv_24: ./usr/lib/libc/libc_hwcap1.so.1: ELF 32-bit LSB dynamic lib 80386 Version 1 [SSE MMX CMOV SEP CX8 FPU], dynamically linked, not stripped, no debugging information available
snv_14: ./usr/lib/libc/libc_hwcap2.so.1: ELF 32-bit LSB dynamic lib 80386 Version 1 [SSE2 SSE MMX CMOV AMD_SYSC FPU], dynamically linked, not stripped, no debugging information available
snv_24: ./usr/lib/libc/libc_hwcap2.so.1: ELF 32-bit LSB dynamic lib 80386 Version 1 [SSE2 SSE MMX CMOV AMD_SYSC CX8 FPU], dynamically linked, not stripped, no debugging information available
snv_14: ./usr/lib/libp/libc.so.1: ELF 32-bit LSB dynamic lib 80386 Version 1, dynamically linked, not stripped, no debugging information available
snv_24: ./usr/lib/libp/libc.so.1: ELF 32-bit LSB dynamic lib 80386 Version 1 [SSE CX8 FPU], dynamically linked, not stripped, no debugging information available
snv_14: ./usr/lib/crt1.o: ELF 32-bit LSB relocatable 80386 Version 1
snv_24: ./usr/lib/crt1.o: ELF 32-bit LSB relocatable 80386 Version 1 [FPU]
If we only support CPUs that have SSE an CX8 then there is nothing to worry about here with the libc changes it is just tagging officially what we already know. However I'm not sure if we support CPUs in 32 bit mode that don't have SSE - we certainly support ones that don't have MMX or SSE2.
As far as I can tell anything from Intel newer than a Pentium III has SSE and from AMD anything newer than an Athlon 4. However we do support processors other than those made by Intel and AMD, in particular stuff from VIA.
We won't boot if the machine doesn't support cmpxng8.
Pentium III included SSE support.
Modern Via cpus support SSE:
small% psrinfo -vp
The physical processor has 1 virtual processor (0)
x86 (CentaurHauls family 6 model 9 step 5 clock 1000 MHz)
VIA Nehemiah
small% isainfo -v
32-bit i386 applications
sse fxsr mmx cmov cx8 tsc fpu
small%
Pentium and Pentium II cpus do not support SSE and to my knowledge we haven't formally EOF'ed those cpus.
Jurgen Keil < xxxxx@xxxxx.de> reported tripping over the libc.so problem on a Pentium II-based system.
He also reports:
It seems it is libc/i386/fp/fpcw.s which is now flagged with "SSE":
usr/src/lib/libc/i386/pics/fpcw.o: ELF 32-bit LSB relocatable 80386 Version 1 [SSE FPU]
An old S10 /usr/ccs/bin/as (or the one from snv_22) doesn't mark
this object with "SSE".
|