In the last couple of weeks we worked very hard on our brand new LIBC Next release. And now we are proud to present it to the public.
Our work on the Qt 5 port made several changes to kLIBC necessary, so we decided to fork kLIBC. As you can see, our Qt 5 port also has synergies for other vital OS/2 libraries.
LIBC Next (or LIBCn, for short) is an attempt to provide an implementation of the C runtime library which is suitable for porting Unix and Linux applications to the OS/2 operating system using the GCC compiler. LIBC Next is heavily based on the kLIBC project. Look at the original kLIBC home page for more information. We imported the original kLIBC source code version 0.6.6 (wthout the history) to our new repository. We will sync with the kLIBC periodically, if there are important changes.
A fork with a separate repository became necessary because the ongoing OS/2 development directed by bitwise works mostly uses the GCC compiler which requires kLIBC, but the original kLIBC project is not actively maintained anymore. As we at bitwise works work on our numerous projects, we find bugs in kLIBC and missing features that we want to implement. And although we usually submit all our patches to the kLIBC maintainer, new kLIBC versions are released very rarely and some of our patches are rejected. Since almost all our applications depend on kLIBC, we simply cannot wait that long. Therefore we have to make our own binary releases of this library from time to time.
LIBC Next uses its own DLL name and versioning scheme in order to clearly distinguish from kLIBC as required by its maintainer. It is, however, fully backward compatible with the original kLIBC library version 0.6.6 (both ABI- and API-wise) and may be used as a drop-in replacement. Compatibility with earlier kLIBC releases is as good as that of kLIBC version 0.6.6 itself.
Note that we also have a project named LIBCx where we attempted to apply our fixes and improvements without forking kLIBC (mostly because kLIBC is a rather complex library all other libraries depend on and therefore it must be rock solid, any patch to it is potentially dangerous). However, some fixes and improvements are simply impossible to be implemented within a separate library so there have been still patches to the original kLIBC code that we need to deploy.
The general plan for LIBC Next is to eventually incorporate all LIBCx code into this repository. And then merge it all with the original kLIBC project if it ever gets resurrected.
We want to thank Knut St. Osmundsen (aka Bird) for his effortful support of OS/2 software throughout many years and especially for his work on the kLIBC project where LIBC Next is based upon.
We invite everyone to read the impressive changelog, to see what we added and or modified in LIBC Next compared to kLIBC.