saprykin / plibsys

Highly portable C system library: threads and synchronization primitives, sockets (TCP, UDP, SCTP), IPv4 and IPv6, IPC, hash functions (MD5, SHA-1, SHA-2, SHA-3, GOST), binary trees (RB, AVL) and more. Native code performance.
MIT License
684 stars 75 forks source link

Port to AmigaOS #59

Closed saprykin closed 6 years ago

saprykin commented 6 years ago

In recent years AmigaOS received quite a lot of development and improvements, thus it should be possible to make a port for it. A brief look confirms that, aside from some tricky parts, it should be straight forward.

Available development tools:

There is also an option to build a cross-toolchain for AmigaOS.

In general, everything is there. But some things need to be overcome: mostly IPC-related stuff, as you need to do mote management for global semaphores and shared memory. Also work with shared libraries may not be that smooth. But still, should be possible to implement with some trade-offs.

saprykin commented 6 years ago

Both library and tests are compilable. Either using cross-compiler (GCC 4.2.9) or natively on AmigaOS (using SDK). All the development for AmigaOS is going on in a separate branch amigaos.

saprykin commented 6 years ago

Update on the port:

Also a problem with pthreads implementation (supplied by SDK) was revealed. It seems there is a bug or improper implementation of TLS destructors. Thus, own threading subsystem based on the native AmigaOS calls was implemented.

saprykin commented 6 years ago

Update on the port: problems with library loader are resolved. The reason was path conversion absence from UNIX-style path to native Amiga path. Now we have our own path translation routine.

saprykin commented 6 years ago

The last issues have been resolved. The port looks goods and passes all the tests.