OrangeC icon indicating copy to clipboard operation
OrangeC copied to clipboard

Linux version of Orange C

Open yh15kla9 opened this issue 7 months ago • 6 comments

I wrote Linux version of Orange C, not Linux support, because what I'm proposing is a version of Orange C running on Linux but still generates binaries for Windows. This is known as a cross-compiler. Something like that is useful. Imagine that you want to compile some 32 bit Windows programs on Linux. Instead of having to install the bloated MinGW-w64 cross-compiler, you can have the small and lightweight Orange C does the job for you.

yh15kla9 avatar May 29 '25 10:05 yh15kla9

That's going to be part of any theoretical #278 implementation IMHO. Requires some support all-around. I'd say this is a duplicate.

chuggafan avatar May 29 '25 12:05 chuggafan

so we are slowly making progress... orange C compiles on linux with a linux compiler but at present there are issues where it doesn't work properly. For cross-compiler purposes the big one is that omake needs massaging but I think @chuggafan has made considerable progress on that. Beyond that there are still some things that aren't fully supported because of platform incompatibilities (read windows dependencies) HOWEVER now that we have c++17 support we can rewrite all the file system operations in a more generic way and that will take care of most of the problems we have with portability.

For cross-compiler support I don't see a need to adjust much else although I don't know if we want to adjust the install directories to do something more usual for linux than to have its own directory, for example.

LADSoft avatar May 29 '25 16:05 LADSoft

I will admit the "Considerable" progress is mostly just the bare basics. My changeover to using the mkfifo base is nigh-nonfunctional, not that the other solution for jobservers was that functional otherwise.

I was planning on emailing the debian-toolchain mailing group at some point to figure out what their "preferred standard directories" would be, I think it would be something like: /usr/include/x86-orangec-win32/ or something for the headers, /lib/<possibly x86-orangec-win32> for the libraries and /bin/ for the executables.

chuggafan avatar May 29 '25 21:05 chuggafan