+ 21.6 Strings library, Null-terminated sequence utilities: <cctype>, <cwctype>,...
[lightlibc++.git] / README
blob9410d2ee50f9fd1272332e630830010c619fb034
1          lightlibc++
2          ===========
4 Contents:
5 1. What is this?
6 2. What requirements?
7 3. How do I use it?
8 4. How do I test it?
11 1. What is this?
12 ================
14 This is a C++ standard library, that is supposed to support the ISO/IEC C++
15 ISO/IEC 14882:2003 and the ISO/IEC C++ [TODO: 1x] standards. It is written to
16 be portable. It is supposed to be especially usable in hobby operating systems
17 environments.
19 2. What requirements
20 ====================
22 A C library is required and the in libc.README documentated changes have to be
23 made.
25 3. How do I use it?
26 ===================
28 lightlibc++ comes with a Makefile for a gcc-based host-environment, so that you
29 can compile the code and run the testsuite for the library on your host
30 platform. If you choose to use lightlibc++ in your own hobby operating system
31 make sure that you have a working libc. Apart from that the only thing you have
32 to do is write a Makefile, that builds the library for your operating system.
33 You might want to have a look at the Makefile provided for compilation and
34 testing on the host operating system.
35 Apart from that you can use the following defines to configure the library:
37 * _LIGHTLIBCPP_CPP03
38   The library uses only C++03 language features and provides everything it can
39   with these features (including C++10 library stuff)
40 * _LIGHTLIBCPP_CPP03_STRICT
41   The library uses only C++03 language features and provides only the C++03
42   standard library stuff
43 * _LIGHTLIBCPP_CPP10
44   The library uses C++10 language features and provides the full C++03 and
45   C++10 library
46 * _LIGHTLIBCPP_CPP10_STRICT
47   The library uses C++10 language features and provides the full C++10 library
48   and marks deprecated stuff from C++03 accordingly
49 * _LIGHTLIBCPP_CPP10_NO_RVALUE_REFERENCES
50   The library does not use rvalue references
51 * _LIGHTLIBCPP_CPP10_NO_VARIADIC_TEMPLATES
52   The library does not use variadic templates
53 * _LIGHTLIBCPP_CPP10_DEFAULT_DELETE_FUNCTIONS
54   The library does not use defaulted/deleted functions
55 * _LIGHTLIBCPP_NO_EXCEPTIONS
56   The library does not use exceptions
57 * _LIGHTLIBCPP_NO_RTTI
58   The library does not use rtti
60 The
61 * _LIGHTLIBCPP_CPP03 and _LIGHTLIBCPP_CPP10
62 * _LIGHTLIBCPP_NO_EXCEPTIONS
63 * _LIGHTLIBCPP_NO_RTTI
64 defines are automatically defined in lightlibc++/compiler.hpp for g++ according
65 to the -fno-exceptions, -fno-rtti (gcc 4.3 or later only), -std=c++98 and
66 -std=c++0x compiler switches.
68 The
69 * _LIGHTLIBCPP_CPP10_NO_VARIADIC_TEMPLATES
70 * _LIGHTLIBCPP_CPP10_NO_DEFAULT_DELETE_FUNCTIONS
71 * _LIGHTLIBCPP_CPP10_NO_RVALUE_REFERENCES
72 defines are automatically defined in lightlibc++/compiler.hpp for g++ according
73 to the gcc version.
76 4. How do I test it?
77 ====================
79 The supplied Makefile comes with an 'all-host' target which will build the
80 library on the host platform (gcc required), an 'testcases-host' target which
81 will build and execute the testcases on the host platform.