[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