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
