From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-0.6 required=5.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED,DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,HTML_MESSAGE,MAILING_LIST_MULTI, URIBL_SBL_A autolearn=ham autolearn_force=no version=3.4.4 Received: from tb-ob1.topicbox.com (tb-ob1.topicbox.com [64.147.108.173]) by inbox.vuxu.org (Postfix) with ESMTP id 754E62BA09 for ; Sun, 29 Sep 2024 20:28:07 +0200 (CEST) Received: from tb-mx1.topicbox.com (tb-mx1.nyi.icgroup.com [10.90.30.61]) by tb-ob1.topicbox.com (Postfix) with ESMTP id 9D8602543C for ; Sun, 29 Sep 2024 14:28:06 -0400 (EDT) (envelope-from bounce.mM7094879799212154dff5c6b4.r81958daa-7202-11ef-bbf2-18142b2d11b0@illumos.bounce.topicbox.com) Received: by tb-mx1.topicbox.com (Postfix, from userid 1132) id 98AD822AA042; Sun, 29 Sep 2024 14:28:06 -0400 (EDT) ARC-Authentication-Results: i=2; topicbox.com; arc=pass; dkim=pass (2048-bit rsa key sha256) header.d=gmail.com header.i=@gmail.com header.b=TfxxGdKL header.a=rsa-sha256 header.s=20230601 x-bits=2048; dmarc=pass policy.published-domain-policy=none policy.published-subdomain-policy=quarantine policy.applied-disposition=none policy.evaluated-disposition=none (p=none,sp=quarantine,d=none,d.eval=none) policy.policy-from=p header.from=gmail.com; spf=pass smtp.mailfrom=peter.tribble@gmail.com smtp.helo=mail-oi1-f175.google.com; x-internal-arc=fail (as.1.topicbox.com=pass, ams.1.topicbox.com=fail (message has been altered)) (Message modified while forwarding at Topicbox) ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d= topicbox.com; h=mime-version:references:in-reply-to:from:date :message-id:subject:to:content-type:list-help:list-id:list-post :list-subscribe:reply-to:content-transfer-encoding :list-unsubscribe; s=sysmsg-1; t=1727634486; bh=/6RdvrMeXAY0S9d5 1htVsDdgWBp+Zt38sNQ+PnAjA+w=; b=iXig//rWDG7wePQztkMJ6M6CGWY+8DD9 uqOHgqiVRzRr0Kn6OjrObp8QP8cviW6qu0VKosaHdWCo/KcxXz2MfTKV99C10RzV QFBaASLjNoNl1NwlBCUvoGvQGlR3JE4qEMqX0CUBe/qvDT9nh/lQntWyGMU/ik9+ aIfq261uPCs= ARC-Seal: i=2; a=rsa-sha256; cv=pass; d=topicbox.com; s=sysmsg-1; t= 1727634486; b=F+qblsOGQuHJPGkDZbULFxrYE+lV/PElJLCowtKUFRR/CzTVJG +hkhoqVGzI35/UDJxpHXOiranDC5cNbpwYzz10zIl//w1uD+LRm77VI5l5QXhlSZ uK/Pe7aILpRcplsen8MNeTJGiKZkwiFzeFUBNqIvqxzCzJUo69AKh9yQk= Authentication-Results: topicbox.com; arc=pass; dkim=pass (2048-bit rsa key sha256) header.d=gmail.com header.i=@gmail.com header.b=TfxxGdKL header.a=rsa-sha256 header.s=20230601 x-bits=2048; dmarc=pass policy.published-domain-policy=none policy.published-subdomain-policy=quarantine policy.applied-disposition=none policy.evaluated-disposition=none (p=none,sp=quarantine,d=none,d.eval=none) policy.policy-from=p header.from=gmail.com; spf=pass smtp.mailfrom=peter.tribble@gmail.com smtp.helo=mail-oi1-f175.google.com; x-internal-arc=fail (as.1.topicbox.com=pass, ams.1.topicbox.com=fail (message has been altered)) (Message modified while forwarding at Topicbox) X-Received-Authentication-Results: tb-mx1.topicbox.com; arc=none (no signatures found); bimi=skipped (DMARC Policy is not at enforcement); dkim=pass (2048-bit rsa key sha256) header.d=gmail.com header.i=@gmail.com header.b=TfxxGdKL header.a=rsa-sha256 header.s=20230601 x-bits=2048; dmarc=pass policy.published-domain-policy=none policy.published-subdomain-policy=quarantine policy.applied-disposition=none policy.evaluated-disposition=none (p=none,sp=quarantine,d=none,d.eval=none) policy.policy-from=p header.from=gmail.com; iprev=pass smtp.remote-ip=209.85.167.175 (mail-oi1-f175.google.com); spf=pass smtp.mailfrom=peter.tribble@gmail.com smtp.helo=mail-oi1-f175.google.com; x-aligned-from=pass (Address match); x-google-dkim=pass (2048-bit rsa key) header.d=1e100.net header.i=@1e100.net header.b=QGj6Pp2y; x-me-sender=none; x-ptr=pass smtp.helo=mail-oi1-f175.google.com policy.ptr=mail-oi1-f175.google.com; x-return-mx=pass header.domain=gmail.com policy.is_org=yes (MX Records found: alt1.gmail-smtp-in.l.google.com,alt3.gmail-smtp-in.l.google.com,alt4.gmail-smtp-in.l.google.com,alt2.gmail-smtp-in.l.google.com,gmail-smtp-in.l.google.com); x-return-mx=pass smtp.domain=gmail.com policy.is_org=yes (MX Records found: alt1.gmail-smtp-in.l.google.com,alt3.gmail-smtp-in.l.google.com,alt4.gmail-smtp-in.l.google.com,alt2.gmail-smtp-in.l.google.com,gmail-smtp-in.l.google.com); x-tls=pass smtp.version=TLSv1.2 smtp.cipher=ECDHE-RSA-AES256-GCM-SHA384 smtp.bits=256/256; x-vs=clean score=-51 state=0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=lists.illumos.org; h= mime-version:references:in-reply-to:from:date:message-id:subject :to:content-type:list-help:list-id:list-post:list-subscribe :reply-to:content-transfer-encoding:list-unsubscribe; s=dkim-1; t=1727634486; x=1727720886; bh=BaT1iLvVdRMASSmF6K+m8Kcc/zODLWbp uQJ9FoCL6aU=; b=Owz3wYGZ9S7+l809/axKUPlTe2KUDujQd4v4i4JyBB8sGbE/ XwKJoimQ7iyOiTctY+NJx5IoiW1z69wPkbdH+ZfLVp9ZdDYG8QWuRdDog3E2frbs gRz3H0BW9Z/kgC0AEti8d2Q+YDgqCmlWtcYSaTwlsgXFQ41vxaBhZZpJsio= Received: from tb-mx1.topicbox.com (localhost.local [127.0.0.1]) by tb-mx1.topicbox.com (Postfix) with ESMTP id AD85622A908E for ; Sun, 29 Sep 2024 14:26:04 -0400 (EDT) (envelope-from peter.tribble@gmail.com) Received: from tb-mx1.topicbox.com (localhost [127.0.0.1]) by tb-mx1.topicbox.com (Authentication Milter) with ESMTP id D0F4689AFD6; Sun, 29 Sep 2024 14:26:04 -0400 ARC-Seal: i=1; a=rsa-sha256; cv=none; d=topicbox.com; s=arcseal; t= 1727634364; b=UaM9vlMrAAycQPfSGuD+gT5yTwT9FBvHf1S1klRUIM+A17IVaR hp3SjBl5MHP65k6RHpuMbfxERFmE25WrdMDJ68KXITsn7LRKL+l6Tfv4jREXHuxf Y1WZSD6hLTxG4u0X54GQ/eLnXIU0dEu5HHAStpf+QdhA8oFEQP+ocTCkiy5OKS/y PvwqtVHvM5mA7+7QFaM3bEdb0/twSNR1+p/+tO9DqSAXdOzTjPLWYONrrTEDN5Il KSh9GIKW0fL315Zz/dH5D4mdtdrRRkK7710luhLuJipM55sLCAnzFEmc8p33fgGp jHX0yneZy/YomENmSmc25Wh1P2zctKcbHFzQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d= topicbox.com; h=mime-version:references:in-reply-to:from:date :message-id:subject:to:content-type; s=arcseal; t=1727634364; bh=Tt7hYhTj4zuAOCIiDCnHwVXc7CPzqPVepH1DM/4tP+g=; b=y9W4/2EhVKXW TymMV3XqdBJDk5uBwcVHW2l17MztzsPPfDiCkg6erw82g4AsGpocKdYqsfGBgtCR MPEnormAli65owTH1TWOkE6pBn61PCQnALELO9hxtBn4v3sDTd3dCBqvDW3GIjt6 JxBnB7lfPjWZRh846qbuEIsaFts/QcV0NSr8wUW6XOoCCCyi+B42DwO/IbvjeGoa xD40JdySv0pyiMTfKFJ/21ZsHfFKdUt4ZTuR9suS4fzLvzim6FIT4cVtoidDSGPa lTxSfe6XyC+P+7tRMCpnaVmTcDZ/7sNOus2pkr0XBDf9EAwQPA2Yxp5QfCP5dHdD ElTF1CX7Nw== ARC-Authentication-Results: i=1; tb-mx1.topicbox.com; arc=none (no signatures found); bimi=skipped (DMARC Policy is not at enforcement); dkim=pass (2048-bit rsa key sha256) header.d=gmail.com header.i=@gmail.com header.b=TfxxGdKL header.a=rsa-sha256 header.s=20230601 x-bits=2048; dmarc=pass policy.published-domain-policy=none policy.published-subdomain-policy=quarantine policy.applied-disposition=none policy.evaluated-disposition=none (p=none,sp=quarantine,d=none,d.eval=none) policy.policy-from=p header.from=gmail.com; iprev=pass smtp.remote-ip=209.85.167.175 (mail-oi1-f175.google.com); spf=pass smtp.mailfrom=peter.tribble@gmail.com smtp.helo=mail-oi1-f175.google.com; x-aligned-from=pass (Address match); x-google-dkim=pass (2048-bit rsa key) header.d=1e100.net header.i=@1e100.net header.b=QGj6Pp2y; x-me-sender=none; x-ptr=pass smtp.helo=mail-oi1-f175.google.com policy.ptr=mail-oi1-f175.google.com; x-return-mx=pass header.domain=gmail.com policy.is_org=yes (MX Records found: alt1.gmail-smtp-in.l.google.com,alt3.gmail-smtp-in.l.google.com,alt4.gmail-smtp-in.l.google.com,alt2.gmail-smtp-in.l.google.com,gmail-smtp-in.l.google.com); x-return-mx=pass smtp.domain=gmail.com policy.is_org=yes (MX Records found: alt1.gmail-smtp-in.l.google.com,alt3.gmail-smtp-in.l.google.com,alt4.gmail-smtp-in.l.google.com,alt2.gmail-smtp-in.l.google.com,gmail-smtp-in.l.google.com); x-tls=pass smtp.version=TLSv1.2 smtp.cipher=ECDHE-RSA-AES256-GCM-SHA384 smtp.bits=256/256; x-vs=clean score=-51 state=0 X-ME-VSCause: gggruggvucftvghtrhhoucdtuddrgeeftddrvddufedguddviecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpggftfghnshhusghstghrihgsvgdp uffrtefokffrpgfnqfghnecuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivg hnthhsucdlqddutddtmdenogfuuhhsphgvtghtffhomhgrihhnucdlgeelmdenucfjughr peggfhgjhfffkffuvfgtsegrtderredttdejnecuhfhrohhmpefrvghtvghrucfvrhhisg gslhgvuceophgvthgvrhdrthhrihgssghlvgesghhmrghilhdrtghomheqnecuggftrfgr thhtvghrnhepgfdvgeevveduuedvfefhledtfeevfeejvdejheekuddugeekfeevveehhf dvueegnecuffhomhgrihhnpehpvghtvghrthhrihgssghlvgdrtghordhukhdpsghlohhg shhpohhtrdgtohhmnecukfhppedvtdelrdekhedrudeijedrudejheenucevlhhushhtvg hrufhiiigvpedtnecurfgrrhgrmhepihhnvghtpedvtdelrdekhedrudeijedrudejhedp hhgvlhhopehmrghilhdqohhiuddqfhdujeehrdhgohhoghhlvgdrtghomhdpmhgrihhlfh hrohhmpeeophgvthgvrhdrthhrihgssghlvgesghhmrghilhdrtghomheqpdhnsggprhgt phhtthhopedupdhrtghpthhtohepoeguihhstghushhssehlihhsthhsrdhilhhluhhmoh hsrdhorhhgqe X-ME-VSScore: -51 X-ME-VSCategory: clean Received-SPF: pass (gmail.com ... _spf.google.com: Sender is authorized to use 'peter.tribble@gmail.com' in 'mfrom' identity (mechanism 'include:_netblocks.google.com' matched)) receiver=tb-mx1.topicbox.com; identity=mailfrom; envelope-from="peter.tribble@gmail.com"; helo=mail-oi1-f175.google.com; client-ip=209.85.167.175 Received: from mail-oi1-f175.google.com (mail-oi1-f175.google.com [209.85.167.175]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by tb-mx1.topicbox.com (Postfix) with ESMTPS for ; Sun, 29 Sep 2024 14:26:03 -0400 (EDT) (envelope-from peter.tribble@gmail.com) Received: by mail-oi1-f175.google.com with SMTP id 5614622812f47-3e399ca48f3so745012b6e.3 for ; Sun, 29 Sep 2024 11:26:03 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1727634363; x=1728239163; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=Tt7hYhTj4zuAOCIiDCnHwVXc7CPzqPVepH1DM/4tP+g=; b=QGj6Pp2ynpatspb1X5lVizcsoxXrBIxHaUEePcMdAY9jdEZd+nitAEX6hjSn6dFBPR GqjxmSoug0+ea8H4gwyZ3yJYTSDckDBD6zHNqyhQEBml1fB7WZEYqTZksyaRhV57lCxF VzzShb269Jh5Xy1nmgfWiguOm43FFJdXTBxPc34ep0118zGrLEPIhk6cWdjgrM7IsAis 2cv+EBo+DyzcDg9PcHXa7byXAeVzl2S2caneyhzOAP76jhlRT/2qAxYZckwYLrT1FH12 Ey925eer9bv6SYQaJEUzanLrLkPFiND6W/iVFIQvifGMavSWYIuX5M7/+T557VtrRhZC aSrg== X-Gm-Message-State: AOJu0Yz/qBpii/gWIT3odFtOrAkkzkkkrffL3E5a4vSGyfMnySRGbeRf XVpjx5hxlFd6OS8bdUU2GYSMe3PPJc+KgzIJhI8LXw8KObmHZepI7Dq6nFwxRiNzUaSZCa7uNyE V20QScD43sqoYSkp40mxdiww5o5OAuA4= X-Google-Smtp-Source: AGHT+IEAmFeQSqg0DwfFLrgyvf3GxA76I+d750u7TcwSU4g7/Lp4gDOiKvIPOC/gjxS8CLKhjHZbU89YG9iXWrKZPRY= X-Received: by 2002:a05:6808:bcf:b0:3e0:4618:834a with SMTP id 5614622812f47-3e3939e1a48mr5267629b6e.43.1727634362632; Sun, 29 Sep 2024 11:26:02 -0700 (PDT) MIME-Version: 1.0 References: <17275947840.7AEf7cFfe.949140@composer.illumos.topicbox.com> In-Reply-To: <17275947840.7AEf7cFfe.949140@composer.illumos.topicbox.com> From: Peter Tribble Date: Sun, 29 Sep 2024 19:25:51 +0100 Message-ID: Subject: Re: [discuss] Binary compatibility between Illumos distributions To: illumos-discuss Content-Type: multipart/alternative; boundary=0000000000007c94770623463892 Topicbox-Policy-Reasoning: allow: sender is a member Topicbox-Message-UUID: 4d61886e-7e90-11ef-8628-e88da611c322 Archived-At: =?UTF-8?B?PGh0dHBzOi8vaWxsdW1vcy50b3BpY2JveC5jb20vZ3JvdXBz?= =?UTF-8?B?L2Rpc2N1c3MvVGU2MTRkYmE1YzlkOTQ5YmEtTTcwOTQ4Nzk3OTkyMTIxNTRk?= =?UTF-8?B?ZmY1YzZiND4=?= List-Help: List-Id: "illumos-discuss" List-Post: List-Software: Topicbox v0 List-Subscribe: Precedence: list Reply-To: illumos-discuss Content-Transfer-Encoding: 7bit List-Unsubscribe: , Topicbox-Delivery-ID: 2:illumos:a9ae1d0a-2aea-11e7-965f-d98f9f16e227:81958daa-7202-11ef-bbf2-18142b2d11b0:M7094879799212154dff5c6b4:1:tGGbMr_jA0dW_QqYPi1ng-SqOhA2E5Dtr6OC78hhkus --0000000000007c94770623463892 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On Sun, Sep 29, 2024 at 8:26=E2=80=AFAM Sad Clouds wrote: > Hi, if somebody is building binaries for Illumos x86_64 platform, is there > a good binary compatibility between various Illumos distributions? > It's fairly good, with severe limitations. > I know they may use different packaging systems for additional software, > but if we assume the binaries are only linked with the base OS libraries > That's the first catch. Many applications end up being linked with libraries that have a relatively poor history of compatibility. And different distributions may be shipping all sorts of different versions. For example openssl might be 1.1.1 or 3.0 or 3.1 or 3.2. Interestingly, while getting worse over time this is starting to become less of an issue with runtimes like go and rust where you often end with applications that are more self-contained. > and built with the system compiler, > That's the second catch. Different distributions have different compilers, and may link against libgcc_s and libcstd++. The basic advice there is that the binary is only guaranteed to run on a system with an equal or newer version of the gcc runtime (and clang may introduce other interesting constraints). There's an additional issue with OpenIndiana which ships multiple versions of the gcc runtime, hidden away. > then can the same set of binaries be safely distributed for different > distributions? > Again, within limitations. And there's a third catch; there's a theoretical possibility that binaries built on an LX distribution might detect the presence of extra functionailty and implement behaviour based on that. In Tribblix I simply avoid this being an issue by building all applications on vanilla Tribblix rather than OmniTribblix, but the fact that the pkgsrc binaries are built on SmartOS and work everywhere indicates that this isn't much of a practical issue, and is a demonstration that compatibility does work (note that pkgsrc ships its own compilers and 3rd-party libraries, so avoiding the first two catches above). > Also, Solaris used to have very good ABI backward compatibility, however > Illumos distributions don't seem to use major/minor version numbers, but > instead use a date string, or some unique release number. So how does one > track incompatible ABI changes, etc? > What incompatible ABI changes? The versioning of libc (which is the primary interfaces of interest - there are relatively rare changes to libsocket and libnsl, but the same rules apply) can be seen in the source at usr/src/lib/libc/port/mapfile-vers so you can work out from the history there which interfaces were introduced in which commits. You can see the versioning history using 'pvs -vs'. Run it on libc and you'll basically see the same output as the mapfile-vers file in the source. Run it on any other object and you'll be able to see exactly which symbols are required, and which library version they correspond to. For example, on my system running 'pvs -vs' on bash and the highest version of libc that it requires is: libc.so.1 (ILLUMOS_0.29): getrandom; So that my copy of bash will run on any illumos distribution that has version 0.29 of libc (which according to the git history came in with issue 9971 in December 2018). So, in this way, you can identify what the oldest compatible distribution version is. OK it may be stated in the release notes, but ideally it would need to be > scripted, i.e. make file or config script would parse the OS version from > the uname command and adjust the build variables. Is there some common > versioning scheme across all Illumos distributions, maybe via a different > command or version file in /etc? > So basically, not from anything other than the versioning of libc.so. Ultimately, the solution is to find something adequately old and build on that. I'm using an old box with Tribblix m29 on it to generate my java builds, for example. But java is extremely precise and conservative in which library calls it uses. Other software (*cough* autoconf *cough*) may try and enable any functionality it finds on the build system. --=20 -Peter Tribble http://www.petertribble.co.uk/ - http://ptribble.blogspot.com/ ------------------------------------------ illumos: illumos-discuss Permalink: https://illumos.topicbox.com/groups/discuss/Te614dba5c9d949ba-M7= 094879799212154dff5c6b4 Delivery options: https://illumos.topicbox.com/groups/discuss/subscription --0000000000007c94770623463892 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable


On Sun, Sep 29, 2024= at 8:26 AM Sad Clouds <cryintothebluesky@gmail.com> wrote:
Hi, if somebody is buil= ding binaries for Illumos x86_64 platform, is there a good binary compatibi= lity between various Illumos distributions?
It's fairly good, with severe limitations.
 
I kn= ow they may use different packaging systems for additional software, but if= we assume the binaries are only linked with the base OS libraries

That's the first catch. Many app= lications end up being linked with libraries that have a
re= latively poor history of compatibility. And different distributions may be = shipping all sorts
of different versions. For example opens= sl might be 1.1.1 or 3.0 or 3.1 or 3.2. Interestingly,
whil= e getting worse over time this is starting to become less of an issue with = runtimes
like go and rust where you often end with applicat= ions that are more self-contained.
 
and built with the system c= ompiler,

That's the seco= nd catch. Different distributions have different compilers, and may link
against libgcc_s and libcstd++. The basic advice there is tha= t the binary is only guaranteed
to run on a system with an = equal or newer version of the gcc runtime (and clang may
in= troduce other interesting constraints). There's an additional issue wit= h OpenIndiana
which ships multiple versions of the gcc runt= ime, hidden away.
 
then can the same set of binaries be safely = distributed for different distributions?

Again, within limitations.

And there's a third catch; there's a theoretical possibility tha= t binaries built on an LX
distribution might detect the pre= sence of extra functionailty and implement behaviour
based on that. In= Tribblix I simply avoid this being an issue by building all applications
on vanilla Tribblix rather than OmniTribblix, but the fact t= hat the pkgsrc binaries are built
on SmartOS and work everywhere indic= ates that this isn't much of a practical issue,
and is = a demonstration that compatibility does work (note that pkgsrc ships its ow= n
compilers and 3rd-party libraries, so avoiding the first = two catches above).
 
Also, Solaris used to have very= good ABI backward compatibility, however Illumos distributions don't s= eem to use major/minor version numbers, but instead use a date string, or s= ome unique release number. So how does one track incompatible ABI changes, = etc?

What incompatible ABI c= hanges?

The versioning of libc (which is the primary = interfaces of interest - there are relatively rare
changes to libsocke= t and libnsl, but the same rules apply) can be seen in the source at
<= br />usr/src/lib/libc/port/mapfile-vers

so you can wo= rk out from the history there which interfaces were introduced  in whi= ch
commits.

You can see the versionin= g history using 'pvs -vs'. Run it on libc and you'll basically = see
the same output as the mapfile-vers file in the source.= Run it on any other object
and you'll be able to see e= xactly which symbols are required, and which library version
they correspond to. For example, on my system running 'pvs -vs' o= n bash and the highest
version of libc that it requires is:=

        libc.so.1 (ILLUMOS_0.29):
&nbs= p;               getrandom;

<= /div>
So that my copy of bash will run on any illumos distribution that= has version 0.29 of
libc (which according to the git histo= ry came in with issue 9971 in December 2018).
So, in this w= ay, you can identify what the oldest compatible distribution version is.
= OK it may be stated in the release notes, but ideally it would need to be s= cripted, i.e. make file or config script would parse the OS version from th= e uname command and adjust the build variables. Is there some common versio= ning scheme across all Illumos distributions, maybe via a different command= or version file in /etc?

So basically, not from anything other than the versioning of libc.so.
Ultimately, the solution is to find something adequatel= y old and build on that. I'm using
an old box with Trib= blix m29 on it to generate my java builds, for example. But java is
extremely precise and conservative in which library calls it uses.= Other software
(*cough* autoconf *cough*) may try and enab= le any functionality it finds on the build system.

--
= --0000000000007c94770623463892--