[fpc-devel]Porting the compiler to a generic Unix platform

KJK::Hyperion noog at libero.it
Fri Jan 24 00:37:38 CET 2003


Hi all

A short premise: I've decided to start a port of FreePascal out of 
desperation. I'm writing an Unix from the ground up, and I've discovered 
that 99% of the software written in C sucks. C runtimes suck. GNU software, 
without exception, sucks. The Microsoft Visual C++ Runtime sucks. There's 
certainly more than this, but I've had enough of it. Autoconf and automakes 
are lies. The ISO C standard is a pathetic lie. Everyone's idea of 
"portability" is "it runs on Linux, and since I've used vaguely POSIXish 
stuff, maybe also on Unix, but I didn't bother checking, and everyone that 
doesn't suck uses Linux anyway". Microsoft's runtime, though free from 
byzantine build systems, is horribly patched-together. There's no place for 
a pedantically X/Open-conforming Unix like mine aims to be. I've seen, so 
far, no C software that is *portable*, just *widely ported*

But I need something to test-run my syscalls (I forgot to mention that I 
don't need a kernel - I will use Windows NT's). And if it isn't going to be 
a C runtime, let it be a Pascal runtime, then. So, here I am

The scenario, technically, is:
  - no C runtime. This is the sole reason I'm here. If you have a lot of 
code that depends on a C runtime, please tell me. I don't want any more 
surprises
  - potentially, all of the system calls defined by the Single Unix 
Specification. I'm making a non-portable statement here, since the SUS 
doesn't make any distinction between library and system calls. But some 
functions (open, kill, etc.) are undoubtably system calls, and I'm 
referring to those
  - PE executable format, since all of this is going to run under Windows. 
If you're aware of any limitation of PE as opposed to ELF that could cause 
trouble, please let me know

And what I want to know is:
  - exactly, what do I need to compile the compiler. I have GCC and 
binutils, both Win32 and Cygwin, installed. I have a Bourne shell (both 
MinGW and Cygwin), and bash. If I need something else, *anything else*, 
tell me. I'm on dialup and I don't like remaining inactive for a whole 
afternoon just because I miss a single tool that I won't be able to 
download in ten hours. "Whooops, and *of course* you need that, but you 
probably already know it". No. I'm ignorant and I'm asking
  - exactly, what functions should a System unit implement that aren't 
already implemented in the Unix template (yes, I've tried a port before)
  - if there's already an Unix port exclusively based on system calls (I 
recall something like that existed), and what's its current status, and if 
I can talk to the maintainer
  - what version should I get so that you'll accept my patches, should I 
choose to release them
  - if the porting guide is *still* only in TeX format, and if someone can 
compile it into HTML for me, or tell me what do I need

Any kind of help, or pointers to the right 
people/URLs/readmes/documentation is welcome. Remember that I'm completely 
ignorant of any unwritten rules of Unix, compilers, language runtimes, and 
of any build system ever existed

Thanks in advance




More information about the fpc-devel mailing list