aboutsummaryrefslogtreecommitdiffstats
path: root/README
blob: 66303d8b579e41345287de21cc2f29799a0ffeda (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
slibc, the Stockholm C Standard Library, is an
implementation of a C standard libray, for POSIX,
just for fun.

slibc does not aim to support C++, or any other
language than C. Furthermore, it does not try
to support older versions of C than C99.


Macro definitions:

	_SLIBC_SOURCE             -- Enable slibc extensions. These extensions
	                               are usually extensions introduced in other
	                               C libraries, but are considered good extensions.
	_SLIBC_SUPPRESS_WARNINGS  -- Suppress all #warning and other warnings, this is
	                               primarily intended to be used when compiling slibc.
	_PORTABLE_SOURCE          -- Unconditionally disable all non-POSIX extensions, and
	                               otherwise help ensure that the source is portable.
	_LIBRARY_HEADER		  -- Alternative to _PORTABLE_SOURCE that should
	                               be used in header files for libraries. This
	                               allows you to be sure that your library is
	                               portable between libc:s, and that sources
	                               using your library does not been to be compiled
	                               with the same libc. It is important to use
	                               this instead of _PORTABLE_SOURCE in library
	                               header files, otherwise the user of the library
	                               cannot fully utilise _PORTABLE_SOURCE.

	See info manual for all definitions.


slibc provides some slibc-specific extensions that
do not require _SLIBC_SOURCE. (They are however
disabled if _PORTABLE_SOURCE is defined.) These
extensions are defined in header files whose
name starts with `slibc-`. Headers starting with
`slibc/` are not extensions, those are internals
that may change at any time.


Writing a C standard library is a massive task.
As I only have x86_64 hardware, I will require
help write the assembly code for other hardware.
I also need help writing the texinfo manual and
example code for functions, help figuring out
the correct feature-test macros for all functions,
their etymology, and in which libc implementions
they appear. Help optimising all functions would
also be appreciated.