Add few docs and implementation of strcpy and strcat.
Summary:
This patch illustrates some of the features like modularity we want
in the new libc. Few other ideas like different kinds of testing, redirectors
etc are not yet present.
Reviewers: dlj, hfinkel, theraven, jfb, alexshap, jdoerfert
Subscribers: mgorny, dexonsmith, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D67867
llvm-svn: 373764
diff --git a/libc/docs/build_system.rst b/libc/docs/build_system.rst
new file mode 100644
index 0000000..f34ffe0
--- /dev/null
+++ b/libc/docs/build_system.rst
@@ -0,0 +1,24 @@
+LLVM libc build rules
+=====================
+
+At the cost of verbosity, we want to keep the build system of LLVM libc
+as simple as possible. We also want to be highly modular with our build
+targets. This makes picking and choosing desired pieces a straighforward
+task.
+
+Targets for entrypoints
+-----------------------
+
+Every entrypoint in LLVM-libc has its own build target. This target is listed
+using the ``add_entrypoint_object`` rule. This rule generates a single object
+file containing the implementation of the entrypoint.
+
+Targets for entrypoint libraries
+--------------------------------
+
+Standards like POSIX require that a libc provide certain library files like
+``libc.a``, ``libm.a``, etc. The targets for such library files are listed in
+the ``lib`` directory as ``add_entrypoint_library`` targets. An
+``add_entrypoint_library`` target takes a list of ``add_entrypoint_object``
+targets and produces a static library containing the object files corresponding
+to the ``add_entrypoint_targets``.