OK thanks for the info. Maybe ABI was the wrong word to use, I guess I was 
referring to a mixture of ABI and API changes that may occur during OS major 
version upgrade. To give you a specific example, some of the software I work on 
is using thread affinity APIs to bind threads to specific CPUs. Solaris < 11.2 
and Illumos only support processor_bind()which has a limitation where a thread 
can be bound to only one CPU, where Solaris >= 11.2 also supports 
processor_affinity() where a thread can be bound to multiple CPUs. I quite 
dislike GNU autoconf scripts and tend to extract OS name and major/minor 
version via uname commands in a makefile and then expose various C macros to 
work around API differences. So for OS name, Illumos reports SUNOS which is 
good, but then major/minor versions could be anything that a particular distro 
decided to use. Since they all fork their OS code from Illumos, I was looking 
for some common version number to identify which Illumos release their build 
was based on. For example, /etc/illumos-release file or something similar. In 
the future, if Illumos happens to implement processor_affinity() or some other 
new feature, it can cut down on the number of OS version probes one has to make.
------------------------------------------
illumos: illumos-discuss
Permalink: 
https://illumos.topicbox.com/groups/discuss/Te614dba5c9d949ba-M97e4498022e542b5ef540560
Delivery options: https://illumos.topicbox.com/groups/discuss/subscription

Reply via email to