Skip to content

Files

81 lines (52 loc) · 2.33 KB

build_and_test.rst

File metadata and controls

81 lines (52 loc) · 2.33 KB

Building and Testing the libc

Build modes

The libc can be built and tested in two different modes:

  1. The overlay mode - In this mode, one uses the static archive from LLVM's libc along with the system libc. See :ref:`overlay_mode` for more details on building and using the libc in this mode. You can only run the libc unittests in this mode. To run them, one simply does:

    $> ninja check-libc

    Note that, unittests for only those functions which are part of the overlay static archive will be run with the above command.

  2. The full build mode - In this mode, the libc is used as the only libc for the user's application. See :ref:`fullbuild_mode` for more details on building and using the libc in this mode. Once configured for a full libc build, you can run three kinds of tests:

    1. Unit tests - You can run unittests by the command:

      $> ninja check-libc
    2. Integration tests - You can run integration tests by the command:

      $> ninja libc-integration-tests
    3. API verification test - See :ref:`api_test` for more information about the API test. It can be run by the command:

      $> ninja libc-api-test

Building with VSCode

As a quickstart to using VSCode for development, install the cmake extension and put the following in your settings.json file:

{
  "cmake.sourceDirectory": "${workspaceFolder}/llvm",
  "cmake.configureSettings": {
      "LLVM_ENABLE_PROJECTS" : "libc",
      "LLVM_LIBC_FULL_BUILD" : true,
      "LLVM_ENABLE_SPHINX" : true,
      "LIBC_INCLUDE_DOCS" : true
  }
}

Building with Bazel

  1. To build with Bazel, use the following command:
$> bazel build --config=generic_clang @llvm-project//libc/...
  1. To run the unit tests with bazel, use the following command:
$> bazel test --config=generic_clang @llvm-project//libc/...
  1. The bazel target layout of libc is located at: utils/bazel/llvm-project-overlay/libc/BUILD.bazel.