I use it for the OS3 port of NetSurf. The alternatives would never have worked.
Using ixemul should still work, even if the last working m68k versions (47.x/48.x) are more than 25 years old by now. Just don't try to use the newer versions from Bernd Rösch, they are broken in several ways. I used ixemul for my AmigaOS 3.9/m68k port of OWB.
Why does it need to be reimplemented? Couldn't you just release it under a similar licence as the rest of newlib then others could update it without having to start from scratch.
My AmigaOS 4.x port of newlib was contract work for Hyperion, and the only one I was payed for completely. Hyperion has an exclusive licence for my AmigaOS 4.x parts of newlib. Hyperion could release it as open source, unfortunately I can't.
The benefits of using a portable multi-platform C library like newlib, in which at least 99% of the code is system independent and worked on by developers of other systems as well, compared to AmigaOS-only C libraries like clib2 or clib4 with only a single developer working on it should be obvious.
The question is.. you have great skills and deep knowledge of AmigaOS internals, so I wonder why you don't join Andrea and others developers to build an open source alternative to all this mess?
The question is.. you have great skills and deep knowledge of AmigaOS internals, so I wonder why you don't join Andrea and others developers to build an open source alternative to all this mess?
Re-implementing an AmigaOS 4.x port of newlib: Not possible for me because of my contract and NDA with Hyperion.
clib2/clib4: Doesn't make any sense for me, clib2 was completely replaced by newlib (or at least should have been, according to my newlib contract). Fixing the most serious bugs in clib2 and adding missing features, instead of porting newlib, would have been an option about 20 years ago, but the developer of clib2 rejected any improvements I suggested. In the end I never used clib2 for any of my AmigaOS 4.x software, but ported and used libnix instead for all of my early AmigaOS 4.x software, before I did the newlib port.
I use it for the OS3 port of NetSurf. The alternatives would never have worked.
Using ixemul should still work, even if the last working m68k versions (47.x/48.x) are more than 25 years old by now. Just don't try to use the newer versions from Bernd Rösch, they are broken in several ways. I used ixemul for my AmigaOS 3.9/m68k port of OWB.
Yes, it quite possibly would have done, but that's a horrid horrid piece of software I'd rather not touch with a barge pole.
libnix is more sane but IIRC is missing quite a bit of stuff.
clib2 is preferable to both, especially as it's not trying to be UNIX.
Re-implementing an AmigaOS 4.x port of newlib: Not possible for me because of my contract and NDA with Hyperion.
clib2/clib4: Doesn't make any sense for me, clib2 was completely replaced by newlib (or at least should have been, according to my newlib contract). Fixing the most serious bugs in clib2 and adding missing features, instead of porting newlib, would have been an option about 20 years ago, but the developer of clib2 rejected any improvements I suggested. In the end I never used clib2 for any of my AmigaOS 4.x software, but ported and used libnix instead for all of my early AmigaOS 4.x software, before I did the newlib port.
As we already in situation where we are, at least your valuable knowledge may help us to improve clib4, even if you at least will point out us what and how to change to make be more or less on good. Currently all we need is to deal with slow console IO, slow file IO and slow formatting strings. Maybe you can remember your ideas what you point out on clbi2 back them and which were rejected, etc. Any help need it. Just starting now to replace everything in core of clib4 on newlib's code will be too much for Andrea's wish and time that for sure.
@kas1e If you insist on using a crap single-system C library instead of something much better and multi-platform (doesn't have to be newlib, there are others, but less advanced ones, as well) at least merge clib4 with the AROS C library to get a few more developers on board.
Just browsed the clib4 sources a bit, and there is still a lot, way too much, crap from clib2 remaining. Very simple example: https://github.com/AmigaLabs/clib4/blob/master/library/stdio/lock.c Just replacing the old, and probably only used for the AmigaOS 1.x-3.x compatibility of clib2, semaphores (based on Forbid()/Permit()!) by OS4 mutexes (based on atomic increment/decrement instructions) should result in a noticeable speed improvement.
libnix is more sane but IIRC is missing quite a bit of stuff.
clib2 is preferable to both, especially as it's not trying to be UNIX.
Gunther's libnix doesn't try to be UNIX/POSIX compatible either. Only ixemul did try that, incl. functions like (ix_)vfork(|2|_setup_child)(), etc. A vfork() implementation is partially possible on AmigaOS, with several restrictions, but implementing a fork() function is impossible on any version of AmigaOS. libnix is a very simple and limited C library, enough for most native AmigaOS software, but not usable for porting UNIX software to AmigaOS.