> I read http://www.freepascal.org/wiki/index.php/OS_aware_RTL > > and wonder when {$FPC_USE_LIBC} is set and how the decision is made?
For *nix the main advantage of syscalls is that the avg small binary holds better in time, not in the least the compiler itself. Also crosscompiling these basic binaries doesn't require the libraries of the target. I recently cleanup a system that was constantly upgraded, and found '98-'99 FPC binaries that were still working on Sarge. For large binaries using lots of libraries (like lazarus) it is less useful, since they link to libc anyway. Note that using libc has some advantages too, I list some in http://www.stack.nl/~marcov/unixrtl.pdf which was the original design doc for the Unix reform. The most commonly expected one, a size advantage is not true however. FPC syscall binaries are smaller than their corresponding libc linked one. This probably because dynlinking forces some rather large tables into the binary, and the actual syscall using code is very small. The decision to base Darwin on libc was Jonas'. It seems to work, but there was never a competing syscall solution (that might also have worked). _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal