diff --git a/Toolchain/Stubs/README.md b/Toolchain/Stubs/README.md new file mode 100644 index 0000000000..c5bfe89a57 --- /dev/null +++ b/Toolchain/Stubs/README.md @@ -0,0 +1,21 @@ +# Library stubs + +This directory contains stubs for SerenityOS libraries (LibC, LibM, LibDl, LibPthread) +that are referenced from the LLVM runtime libraries. These are needed by the linker +in order to add the required `DT_NEEDED` entries. + +## Do these need to be updated? + +Generally, no. LLVM does not use the header files to decide which functionality it can +use. After adding a new function to a header, you don't have to worry about LLVM +toolchain builds failing because the symbol is not present in the stubs. + +## How to generate these? + +First, you need to have a working SerenityOS installation that's been built by the +Clang toolchain. Then, using the `llvm-ifs` tool, these libraries need to be converted +into a stripped-down stub form. To do that, run the following command: + +```sh +Toolchain/Local/clang/bin/llvm-ifs --output-format=ELF --output= +``` diff --git a/Toolchain/Stubs/i686clang/libc.so b/Toolchain/Stubs/i686clang/libc.so new file mode 100644 index 0000000000..99d7659f48 Binary files /dev/null and b/Toolchain/Stubs/i686clang/libc.so differ diff --git a/Toolchain/Stubs/i686clang/libdl.so b/Toolchain/Stubs/i686clang/libdl.so new file mode 100644 index 0000000000..ab3b2af601 Binary files /dev/null and b/Toolchain/Stubs/i686clang/libdl.so differ diff --git a/Toolchain/Stubs/i686clang/libm.so b/Toolchain/Stubs/i686clang/libm.so new file mode 100644 index 0000000000..fe2a0a6d56 Binary files /dev/null and b/Toolchain/Stubs/i686clang/libm.so differ diff --git a/Toolchain/Stubs/i686clang/libpthread.so b/Toolchain/Stubs/i686clang/libpthread.so new file mode 100644 index 0000000000..557e7200dc Binary files /dev/null and b/Toolchain/Stubs/i686clang/libpthread.so differ diff --git a/Toolchain/Stubs/x86_64clang/libc.so b/Toolchain/Stubs/x86_64clang/libc.so new file mode 100644 index 0000000000..373cbddcec Binary files /dev/null and b/Toolchain/Stubs/x86_64clang/libc.so differ diff --git a/Toolchain/Stubs/x86_64clang/libdl.so b/Toolchain/Stubs/x86_64clang/libdl.so new file mode 100644 index 0000000000..18638c1063 Binary files /dev/null and b/Toolchain/Stubs/x86_64clang/libdl.so differ diff --git a/Toolchain/Stubs/x86_64clang/libm.so b/Toolchain/Stubs/x86_64clang/libm.so new file mode 100644 index 0000000000..16cc84faef Binary files /dev/null and b/Toolchain/Stubs/x86_64clang/libm.so differ diff --git a/Toolchain/Stubs/x86_64clang/libpthread.so b/Toolchain/Stubs/x86_64clang/libpthread.so new file mode 100644 index 0000000000..cf839e8d80 Binary files /dev/null and b/Toolchain/Stubs/x86_64clang/libpthread.so differ