Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 19 Aug 2016 16:07:01 +0100
From:      Matthew Seaman <matthew@FreeBSD.org>
To:        freebsd-ports@freebsd.org
Subject:   Re: how did BSD libc make binary compatibility promise beetween freebsd version?
Message-ID:  <d738ed56-25c7-755c-706c-7ea45496fbc5@FreeBSD.org>
In-Reply-To: <CAOmy0w%2BVhaT5TVe%2BhFP04MkJj8X0OUo57OVOe7KQbzYGP7ZWBw@mail.gmail.com>
References:  <CAOmy0w%2BVhaT5TVe%2BhFP04MkJj8X0OUo57OVOe7KQbzYGP7ZWBw@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--ef5d6kfuknjbIIV5TP6xF2gCvOJNx72QB
Content-Type: multipart/mixed; boundary="SNc1tvOMSbaPGbh6KC8WFrU9C5hDkdO0p"
From: Matthew Seaman <matthew@FreeBSD.org>
To: freebsd-ports@freebsd.org
Message-ID: <d738ed56-25c7-755c-706c-7ea45496fbc5@FreeBSD.org>
Subject: Re: how did BSD libc make binary compatibility promise beetween
 freebsd version?
References: <CAOmy0w+VhaT5TVe+hFP04MkJj8X0OUo57OVOe7KQbzYGP7ZWBw@mail.gmail.com>
In-Reply-To: <CAOmy0w+VhaT5TVe+hFP04MkJj8X0OUo57OVOe7KQbzYGP7ZWBw@mail.gmail.com>

--SNc1tvOMSbaPGbh6KC8WFrU9C5hDkdO0p
Content-Type: text/plain; charset=windows-1252
Content-Transfer-Encoding: quoted-printable

On 19/08/2016 15:39, kang joni wrote:
> As the title suggest, I usually compile my linux code from old debian
> squeeze to run for either centos 6 or debian wheezy and these distros
> later version and adjusting some app rpath and clang libc++ runtime
> libs to point local relative file path via origin method. Is there any
> easy guideline to follow when working on bsd libc version? I feels do
> not like on how libc emulation method as it seems complex
> configuration fine tuning for starter BSD like me.

FreeBSD promises /forward/ ABI compatibility for the whole of one major
version's lifetime.  That means that if you want to run your application
on a mixture of 10.1, 10.2 and 10.3 machines, then you should compile it
under 10.1.

This is modified by the use of versioned symbols in recent releases:
effectively libc contains multiple copies of certain symbols where there
have been ABI-breaking changes, so you can run something compiled for
10.1 on an 11.0 system and dynamically link against the
same copy of libc.  The use of versioned symbols applies to the most
important shared libraries provided by the base system, but not all, and
it doesn't apply to any shared libraries provided from the ports as far
as I am aware.  So while it will normally 'just work' for safeties' sake
you'll still need to test cross compatibility and may still need to
install compat libraries or compile code separately for each different
major OS version.

See: https://people.freebsd.org/~deischen/symver/freebsd_versioning.txt
for a much fuller explanation of symbol versioning.

	Cheers,

	Matthew


--SNc1tvOMSbaPGbh6KC8WFrU9C5hDkdO0p--

--ef5d6kfuknjbIIV5TP6xF2gCvOJNx72QB
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQJ8BAEBCgBmBQJXtyCcXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w
ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXQ2NTNBNjhCOTEzQTRFNkNGM0UxRTEzMjZC
QjIzQUY1MThFMUE0MDEzAAoJELsjr1GOGkAT900P/2EYmElBMjihOKibn55Sph+R
z3AT0iAJXkUIMjLxgKLmUcV4U+Y4jJXotdJjEraSMKuk+4oYX6s1bnPs91z971qz
uuF9XE01IDGL5s+EegdSuHkyzjCrWs92DYiZ4HDGVNc4Chk6hsRsfd++KXfiqVaS
bObJ57+1wvYQG6tBgszU7dRhRWdJbNGohKp0xeMHctzgBoLw4L+OulVo/zi72+KF
3s+L517oRp9wwfFTu6lhE1IN2qUVQplzwsiD6ShWucEA7SoLmxEtkX7QheQcZ95H
tXqus3evfmdqsRM6eyAouX9MkC6pE107V9ZekBtw1xRQzl246R5vtZwTi2a0IPK4
Rb+P6DT+xflWi5DBfMMkY3GeEFsDGS9ojcAtPbnGJTF/AT7DBDbD+tZJHt2kNZPI
5Mnh3DXwiqFsE5JBhmbSCwQqj+a+Wrz+Er8H0JUrWs0Rrp99lG+anP7zLnKbqGXp
MTjZjdzA+TsmX8CBXUA2V046GO5l9wcLOTY6mh3jS/NntlwWCq36sIa5Iu1DYqFt
aNBmOxv+DjP08EUZ/XWRwhBEnpNR6YRrgpy4B8agHjAE6z7m72Z1FSigmN/pfoGN
19CFioChEf3DOOvdLLUVSvY8gjCoI7YGEzh5eCnT1ApJo+gXy+4CAeKoKJizX0aV
ilzwxn6cgvVQmOQEAFm7
=WW3L
-----END PGP SIGNATURE-----

--ef5d6kfuknjbIIV5TP6xF2gCvOJNx72QB--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?d738ed56-25c7-755c-706c-7ea45496fbc5>