On Thu, 25 Mar 2021, cretin1997 via oi-dev wrote:

The current crt headers of FreeBASIC is exclusively based on Linux: 
https://github.com/freebasic/fbc/tree/master/inc/crt

In order to build GTK based FreeBASIC application, one has to have a working 
crt headers set, too. There is no such thing for OpenIndiana. I and other 
FreeBASIC users decided to just copy the Linux crt headers and modify them to 
use with OpenIndiana. The result is we could build the application successfully 
but unfortunately this application can't run. I think there could be two 
potential problems:

First, it could be my removing of --export-dynamic caused the FreeBASIC 
compiler to generate a not working shared library.

This seems like the most unlikely cause. :-)

Second, it could be the Linux crt headers are incompatible with OpenIndiana, 
the C standard functions are the same but the platform specific details 
(#define bla bla) are different, so the application could be compiled, but it 
used the wrong details so it can't run.

This is exceedingly likely. Although Linux is originally modelled on SunOS (a clone of Unix), it did not directly copy it. The GNU libc (much of what you call a "CRT") is independent of Linux, so it also makes its own decisions.

From looking at the translated ".bi" files (e.g.
https://github.com/freebasic/fbc/blob/master/inc/crt/io.bi), there are many arbitrary constant values which were translated from system headers. An API may be the "same" (be compliant to a standard) even if the integer values representing it are different.

At the top of the referenced header I see "io -- header translated with help of SWIG FB wrapper".

It seems that the methodology used to create this files needs to be replicated in order to produce similar files for Illumos.

Please note that the application could be launched, but it just sit there idle and doesn't print any output on the terminal. I have to use Ctrl+C to cancel it.

This is not surprising. What means "start" in Linux may very well mean "stop" in Illumos.

It does not appear that the git structure of the FreeBASIC files is designed to support porting since it does not even mention that these files are translations of Linux/glibc header content.

Python does similar things, but it is designed for porting.

Bob
--
Bob Friesenhahn
[email protected], http://www.simplesystems.org/users/bfriesen/
GraphicsMagick Maintainer,    http://www.GraphicsMagick.org/
Public Key,     http://www.simplesystems.org/users/bfriesen/public-key.txt

_______________________________________________
oi-dev mailing list
[email protected]
https://openindiana.org/mailman/listinfo/oi-dev

Reply via email to