On Thu, May 26, 2011 at 10:16:15AM -0400, b. f. wrote: > Matthias Apitz: > ... > > I'm running -CURRENT on my laptop (r220692 from ~mid of April) and > > /usr/ports from CVS from the same day; I want from time to time (let's > > says once a week) SVN update my kernel and userland; I know that these > > two should be in sync, but what about the ports? I have installed around > > 1200 ports I'm used to use. Is there any special note in /usr/src/UPDATING > > when the ABI changes and would break the compiled ports? > > There is a lot of relevant information in UPDATING, but this file > doesn't focus on ports, and some changes that affect ports aren't > mentioned. You can find some workarounds or IGNORE settings in > individual port Makefiles based upon OSVERSION, some open PRs which > describe known problems (and, occasionally, solutions), and a partial > list of problems at: > > http://wiki.freebsd.org/PortsBrokenOnCurrent > > (but this last listing is somewhat incomplete and out-of-date). You > can also find build logs at: > > http://pointyhat.freebsd.org/errorlogs/ > > Efforts to find and fix these problems will accelerate after the > slush/freeze that will precede the release of FreeBSD 9. [With the re hat on] The policy that we are trying to follow with regard to the userland ABI in the project is that - the libraries that already provide symbol versioning shall not break ABI backward-compatibility under any circumstances. The list of such libraries includes libc, libpthread, libm and libstdc++. There are other libraries that also implement symbol versioning, but they are supplied by third parties, and we rely on the upstream projects to not break the guarantee (mostly). - for not versioned libraries, it is a developer responsibility to bump .so major version upon ABI breakage. Sure, there is much more to the system ABI besides ABI provided by the system libraries, e.g. the list of available binaries etc. But this should cover 98% of the all the needs of the typical application. What you cannot rely on when using HEAD, is the ability to partially upgrade the ports installed. The reason is mostly in the need of bump for the non-versioned libraries. But again, the basic C runtime is versioned and should provide enough stability.
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:14 UTC