On Mon, 12 Jun 2006, Glen Kriekenbeck wrote:

Hi all,

I'm working with an ISV who asks:

We notice that the system calls are coded differently in the 32 and 64
bit versions of the OS. The 32 version uses sysenter which the 64 uses
syscall. There also seem to be 2 different 32-bit versions in the
/usr/lib/libc: in libc_hwcap1.so.1 and libc_hwcap2.so.1

Not to forget the "generic" libc (which uses lcall $0x27,0 in S10 FCS and int 0x91 in later S10 updates and in OpenSolaris/Nevada).


Is this expected to remain the same going forward? I read in some
forum that there may be plans to consolidate the 2 32 bit versions. Is
this true? If so, what is the consolidated solution and when can we
expect it? Will it be patched in Sol 10 or will it only be available
in Sol 11?

Is such a change in the works?  I'd appreciate a pointer to any further 
information about this.

Thanks!
glen

The libc_hwcap mechanism is already in Solaris 10 (x86 and amd64).

Whether the SPARC and x86 mechanisms (libc_psr and libc_hwcap) will eventually be merged into one 'common' method for "optimally targeting the host CPU" hasn't shown clearly in my palantir yet...

Why should we "consolidate" the three versions ? They're built from the same source - just using different compiler optimization switches, and a different set of syscall stubs. The whole _point_ of libc_hwcap is to optimize _all of_ libc to a given processor's capabilities, not just the method used for performing syscalls.

As said, the source is, apart from the (macroized) syscall, identical for all x86 libc versions anyway. It's just the build mechanism which creates the "tailored" variants.

FrankH.
_______________________________________________
opensolaris-code mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/opensolaris-code

Reply via email to