Yifan Hong | 59c425d | 2021-12-13 20:25:02 -0800 | [diff] [blame] | 1 | # Kleaf - Building Android Kernels with Bazel |
| 2 | |
Ulises Mendez Martinez | f91c18d | 2025-03-25 15:45:49 +0000 | [diff] [blame] | 3 | [TOC] |
Yifan Hong | 59c425d | 2021-12-13 20:25:02 -0800 | [diff] [blame] | 4 | |
Yifan Hong | c099383 | 2024-02-01 16:04:40 -0800 | [diff] [blame] | 5 | ### Getting started |
| 6 | |
Yifan Hong | 59c425d | 2021-12-13 20:25:02 -0800 | [diff] [blame] | 7 | [Introduction to Kleaf](docs/kleaf.md) |
Yifan Hong | a93fd33 | 2021-12-13 16:46:23 -0800 | [diff] [blame] | 8 | |
| 9 | [Building your kernels and drivers with Bazel](docs/impl.md) |
| 10 | |
Yifan Hong | de43670 | 2023-06-06 14:01:04 -0700 | [diff] [blame] | 11 | [Creating distributions](docs/dist.md) |
| 12 | |
Yifan Hong | c099383 | 2024-02-01 16:04:40 -0800 | [diff] [blame] | 13 | [Driver Development Kit (DDK)](docs/ddk/main.md) |
| 14 | |
| 15 | [Cheatsheet](docs/cheatsheet.md) |
| 16 | |
| 17 | ### Configuring your build |
| 18 | |
Yifan Hong | 5541ac82 | 2022-04-14 20:37:03 -0700 | [diff] [blame] | 19 | [`build.sh` build configs](docs/build_configs.md) |
| 20 | |
Yifan Hong | bb0ef45 | 2023-08-08 15:41:26 -0700 | [diff] [blame] | 21 | [Configuring kernel\_build](docs/kernel_config.md) |
Yifan Hong | 12cc881 | 2022-10-26 12:12:20 -0700 | [diff] [blame] | 22 | |
Yifan Hong | c099383 | 2024-02-01 16:04:40 -0800 | [diff] [blame] | 23 | ### ABI monitoring |
| 24 | |
Yifan Hong | 9b95491 | 2022-06-02 15:47:40 -0700 | [diff] [blame] | 25 | [Support ABI monitoring (GKI)](docs/abi.md) |
| 26 | |
| 27 | [Support ABI monitoring (Device)](docs/abi_device.md) |
Yifan Hong | fc48412 | 2022-04-11 18:53:20 -0700 | [diff] [blame] | 28 | |
Yifan Hong | c099383 | 2024-02-01 16:04:40 -0800 | [diff] [blame] | 29 | ### Debugging and testing |
Yifan Hong | 9bb07e8 | 2022-03-29 15:37:24 -0700 | [diff] [blame] | 30 | |
Yifan Hong | a93fd33 | 2021-12-13 16:46:23 -0800 | [diff] [blame] | 31 | [Resolving common errors](docs/errors.md) |
Yifan Hong | 2818401 | 2022-02-03 11:48:27 -0800 | [diff] [blame] | 32 | |
Yifan Hong | 8fc84a8 | 2022-03-28 16:36:36 -0700 | [diff] [blame] | 33 | [Kleaf testing](docs/testing.md) |
Yifan Hong | b3b4746 | 2022-04-13 15:53:23 -0700 | [diff] [blame] | 34 | |
Yifan Hong | c099383 | 2024-02-01 16:04:40 -0800 | [diff] [blame] | 35 | [Debugging Kleaf](docs/debugging.md) |
| 36 | |
Ulises Mendez Martinez | 35c2f67 | 2024-06-07 14:31:16 +0000 | [diff] [blame] | 37 | [Visualizing dependencies](docs/dependencies.md) |
| 38 | |
Yifan Hong | c099383 | 2024-02-01 16:04:40 -0800 | [diff] [blame] | 39 | ### Advanced topics |
| 40 | |
| 41 | [Handling SCM version](docs/scmversion.md) |
| 42 | |
Yifan Hong | ef024d5 | 2022-06-15 14:41:10 -0700 | [diff] [blame] | 43 | [Building against downloaded prebuilts](docs/download_prebuilt.md) |
| 44 | |
HONG Yifan | 52b1f88 | 2024-07-16 18:13:11 -0700 | [diff] [blame] | 45 | [Bzlmod support (also: setting up workspace)](docs/bzlmod.md) |
Yifan Hong | c2a0f69 | 2024-02-01 15:52:00 -0800 | [diff] [blame] | 46 | |
Yifan Hong | 707b393 | 2023-01-10 13:13:47 -0800 | [diff] [blame] | 47 | [Building `compile_commands.json`](docs/compile_commands.md) |
| 48 | |
Yifan Hong | 46779ed | 2023-06-09 13:38:42 -0700 | [diff] [blame] | 49 | [Ensuring hermeticity](docs/hermeticity.md) |
| 50 | |
Ulises Mendez Martinez | 433b321 | 2023-06-02 12:49:59 +0000 | [diff] [blame] | 51 | [Internet Access](docs/network.md) |
| 52 | |
Yifan Hong | 4624cb9 | 2023-06-21 16:17:59 -0700 | [diff] [blame] | 53 | [Toolchain resolution](docs/toolchains.md) |
| 54 | |
Yifan Hong | da329df | 2023-08-08 16:01:43 -0700 | [diff] [blame] | 55 | [Checkpatch](docs/checkpatch.md) |
| 56 | |
Yifan Hong | c099383 | 2024-02-01 16:04:40 -0800 | [diff] [blame] | 57 | [Kleaf Development](docs/kleaf_development.md) |
| 58 | |
Matthias Maennich | bbdd6e8 | 2024-05-14 22:13:22 +0000 | [diff] [blame] | 59 | [Discover newest Kleaf features in Canary](docs/canary.md) |
| 60 | |
Yifan Hong | c099383 | 2024-02-01 16:04:40 -0800 | [diff] [blame] | 61 | ### Configurations in command line |
Yifan Hong | c07e92d | 2022-04-13 22:32:41 -0700 | [diff] [blame] | 62 | |
Yifan Hong | 6ef0ee6 | 2022-04-13 16:15:05 -0700 | [diff] [blame] | 63 | `--config=fast`: [Make local builds faster](docs/fast.md) |
| 64 | |
| 65 | `--config=local`: [Sandboxing](docs/sandbox.md) |
Yifan Hong | 0f81d63 | 2022-04-19 00:22:19 -0700 | [diff] [blame] | 66 | |
Yifan Hong | a254a17 | 2022-12-07 14:30:36 -0800 | [diff] [blame] | 67 | `--config=release`: [Release builds](docs/release.md) |
| 68 | |
Yifan Hong | 0f81d63 | 2022-04-19 00:22:19 -0700 | [diff] [blame] | 69 | `--config=stamp`: [Handling SCM version](docs/scmversion.md) |
Yifan Hong | 7e41c06 | 2022-06-02 16:09:27 -0700 | [diff] [blame] | 70 | |
Matthias Maennich | bbdd6e8 | 2024-05-14 22:13:22 +0000 | [diff] [blame] | 71 | `--config=canary`: [Kleaf Canary Features](docs/canary.md) |
| 72 | |
HONG Yifan | 6830875 | 2024-08-15 13:16:18 -0700 | [diff] [blame] | 73 | `--config=musl`: [Use musl libc for host binaries](docs/musl.md) |
| 74 | |
Yifan Hong | d6d4109 | 2023-02-24 11:33:12 -0800 | [diff] [blame] | 75 | ### Flags |
| 76 | |
Yifan Hong | 71d5cbc | 2023-07-18 20:44:12 -0700 | [diff] [blame] | 77 | For a full list of flags, run |
| 78 | |
| 79 | ```sh |
| 80 | $ tools/bazel help kleaf |
| 81 | ``` |
| 82 | |
Yifan Hong | a254a17 | 2022-12-07 14:30:36 -0800 | [diff] [blame] | 83 | `--gcov`: [Keep GCOV files](docs/gcov.md) |
Yifan Hong | 9a17606 | 2022-06-23 18:01:27 -0700 | [diff] [blame] | 84 | |
| 85 | `--kasan`: [kasan](docs/kasan.md) |
Ulises Mendez Martinez | c2ac77f | 2022-11-15 15:11:36 +0000 | [diff] [blame] | 86 | |
Yifan Hong | a254a17 | 2022-12-07 14:30:36 -0800 | [diff] [blame] | 87 | `--kbuild_symtypes`: [KBUILD\_SYMTYPES](docs/symtypes.md) |
| 88 | |
Yifan Hong | 7395616 | 2022-11-23 18:57:36 -0800 | [diff] [blame] | 89 | `--kgdb`: [GDB scripts](docs/kgdb.md) |
| 90 | |
Yifan Hong | a254a17 | 2022-12-07 14:30:36 -0800 | [diff] [blame] | 91 | `--lto`: [Configure LTO during development](docs/lto.md) |
Ulises Mendez Martinez | 601bc5a | 2022-12-30 16:48:43 +0000 | [diff] [blame] | 92 | |
Yifan Hong | d6d4109 | 2023-02-24 11:33:12 -0800 | [diff] [blame] | 93 | `--notrim`: Disables `TRIM_NONLISTED_KMI` globally. |
| 94 | |
Aleksei Vetrov | e606b2e | 2023-02-20 22:40:27 +0000 | [diff] [blame] | 95 | `--btf_debug_info`: [Enable/disable BTF debug information](docs/btf.md) |
| 96 | |
Ulises Mendez Martinez | 8ffe294 | 2023-05-26 10:02:06 +0000 | [diff] [blame] | 97 | `--gki_build_config_fragment`: |
| 98 | [Supporting GKI\_BUILD\_CONFIG\_FRAGMENT on Kleaf](docs/gki_build_config_fragment.md) |
Ulises Mendez Martinez | 58d2a89 | 2023-04-28 23:38:16 +0000 | [diff] [blame] | 99 | |
Yifan Hong | 1e24279 | 2023-06-22 13:43:28 -0700 | [diff] [blame] | 100 | `--defconfig_fragment`: [Defconfig fragments](docs/kernel_config.md#defconfig-fragments) |
| 101 | |
Yifan Hong | 952024e | 2023-03-01 15:59:39 -0800 | [diff] [blame] | 102 | Other flags for debugging and disabling integrity checks may be found in the |
| 103 | [Debugging Kleaf](docs/debugging.md) page. |
| 104 | |
Yifan Hong | 5bf575c | 2023-01-24 15:54:34 -0800 | [diff] [blame] | 105 | ### References |
| 106 | |
Ulises Mendez Martinez | 8ffe294 | 2023-05-26 10:02:06 +0000 | [diff] [blame] | 107 | [References to Bazel rules and macros for the Android Kernel](docs/api_reference.md) |