Boost logo

Boost :

Subject: Re: [boost] [context review]
From: Giovanni Piero Deretta (gpderetta_at_[hidden])
Date: 2011-03-25 09:22:32


On Fri, Mar 25, 2011 at 1:04 PM, Thomas Klimpel
>>
>> I think this is still the official SYSV i386 abi document:
>>
>>   http://www.sco.com/developers/devspecs/abi386-4.pdf
>>
>> but it doesn't mention SSE at all, so it can be complete. Do you have
>> any other reference?
>
> What do you mean by "official SYSV i386 abi document"? I would think that the compiler vendors are more or less free to use whatever abi they deem appropriate. Of course they will try to be reasonable abi compatible with other compilers and between different releases of the same compiler. Perhaps compiler vendors in 1997 (the date from the linked document) tried to follow the linked document more or less, but I can't believe that this should be still true today, more than ten years later.
>
> So I fail to see the relevance of the linked paper and I think that referring to it is even slightly dangerous, because it seems to imply that there actually exists such a thing as an official SYSV i386 abi document.
>
>
> (Background: I regularly test the numeric_bindings library on different target platforms. It's pretty safe to use the fortran compiler from the same vendor and release as the c++ compiler, but there can occasionally be issues when mixing compilers from different versions or vendors. This is the reason why I don't believe that there should really exist an official i386 abi document.)
>

The key is SYSV; that ABI is not the official i386 abi for all
platforms, but for a vendor-agreed ABI for System V derived unices
(today that would be Solaris, mostly) on that architecture. Other
unix-like operating systems (mostly Linux and BSD derived systems)
usually followed the same API for compatiblity.

With time it should have been expanded with support for additional
functionality (MMX and SSE), and these extensions must be documented
somewhere but I quick search doesn't find anything relevant. May be
the unwritten convention is just to do what what the Linux ABI (mostly
as defined by GCC) does.

-- 
gpd

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk