summaryrefslogtreecommitdiff
path: root/packages/libc/README
diff options
context:
space:
mode:
Diffstat (limited to 'packages/libc/README')
-rw-r--r--packages/libc/README35
1 files changed, 35 insertions, 0 deletions
diff --git a/packages/libc/README b/packages/libc/README
new file mode 100644
index 0000000000..7bd50afd66
--- /dev/null
+++ b/packages/libc/README
@@ -0,0 +1,35 @@
+This is the FPC translation of the C library header files.
+This unit is meant to
+- Give full access to the GNU libc library functionality.
+- Be compatible to Borland's Libc.pas unit.
+
+There will often exist 2 versions of a function call: one with a
+pointer type argument - this is the straight translation of a libc call.
+One is with a var/const argument, this is a more 'pascal' like call,
+which is usually also the way Borland did it.
+
+Each C header file has been translated to an .inc file.
+The translation of header file xxx.h is named xxxh.inc.
+If macros were converted, they are in a file xxx.inc
+
+All files are included in libc.pp and their origin is noted there.
+
+the file glue.inc is meant to form a bridge between the pascal
+and C types, and to take care of some problems in the ordering
+of the header files.
+
+The translation was done on a SuSE 8.1 machine:
+Kernel version: 2.4.18
+glibc version: 2.3
+
+Note on the Libc errno variable. On recent systems the errno symbol is no
+longer published in libc. It has been replaced by a __errno_location
+pointer, with a macro in the C header files to mask this. The pascal
+Libc files assume this by default. This also means you cannot set the
+errno value directly, you must use the 'seterrno' procedure for that.
+(see errno.inc)
+
+The old mechanism of a published errno libc variable is still available
+by setting the LIBC_OLDERRNO define when compiling the libc units.
+
+Michael.