On 04/11/2007, Casper.Dik at sun.com <Casper.Dik at sun.com> wrote:
>
> >I've been thinking of contributing where I can with new packages.
> >However, I have a few questions about the ground-rules for doing this...
> >
> >1) How should I handle Intel vs. AMD and 32 vs. 64 bit packages?  Must I
> >choose the lowest common denominator, or can I mix and match?
>
> Typically in Solaris, you would ship:
>
>         32 bit libraries in $BASEDIR/lib
>         64 bit libraries in $BASEDIR/amd64
>
> create 32 bit exectuables compiled for the lowest common denominator,
> unless there's a compelling reason to also include 64 bit executables:
>
>         - better performance
>         - need for more than 2 or 3 GB of virtual address space
>
> In Solaris, we employ basically two tricks for 'bitness independene':
>
>         - the binary found in $PATH is a 32 bit launcher program called
>           "isaexec" and the 32 bit binary is in i386 and 64 bit in amd64:
>
>                 $BASEDIR/bin/prog               - isaexec copy/link
>                 $BASEDIR/bin/i386/prog          - 32 bit copy
>                 $BASEDIR/bin/amd64/prog         - 64 bit copy
>
>
> When using things like SSE2 and such, it becomes a bit more difficult, as
> currently don't implement more isa options than:
>
>         amd64 pentium_pro+mmx pentium_pro pentium+mmx pentium i486 i386 i86
>
> (isaexec will, I think, try each of those in turn)

This is the clearest and simplest explanation I've seen in a long time
of how this works. Suddenly, it makes sense.

Thanks!
-- 
Shawn Walker, Software and Systems Analyst
http://binarycrusader.blogspot.com/

"We don't have enough parallel universes to allow all uses of all
junction types--in the absence of quantum computing the combinatorics
are not in our favor..." --Larry Wall

Reply via email to