Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork112
take off every zig
ziglang/zig-bootstrap
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
The purpose of this project is to start with minimum system dependencies andend with a fully operational Zig compiler for any target.
This repository copies sources from upstream. Patches listed below. Use gitto find and inspect the patch diffs.
- LLVM, LLD, Clang 21.1.0
- zlib 1.3.1
- zstd 1.5.2
- zig 0.16.0-dev.1354+94e98bfe8
For other versions, check the git tags of this repository.
- all: Deleted unused files.
- LLVM: Support .lib extension for static zstd.
- LLVM: Portable handling of .def linker flag
- LLVM: Don't pass -static when building executables.
- Clang: Ignore the examples directory
- Clang: Disable building of libclang-cpp.so.
- Clang: remove
nvptx-archandamdgpu-archsymlinks - LLD: Added additional include directory to Zig's libunwind.
- LLD: Respect
LLD_BUILD_TOOLS=OFF - LLD: Skip building docs
- zlib: Delete the ability to build a shared library.
- C++ compiler capable of building LLVM, Clang, and LLD from source (GCC 5.1+or Clang)
- On some systems, static libstdc++/libc++ may need to be installed
- CMake 3.19 or later
- make, ninja, or any other build system supported by CMake
- POSIX system (bash, mkdir, cd)
- Python 3
./build <arch>-<os>-<abi> <mcpu>All parameters are required:
<arch>-<os>-<abi>: Replace with one of the Supported Targets below, or usenativefor the<arch>value (e.g.native-linux-gnu) to use the nativearchitecture.<mcpu>: Replace with a-mcpuparameter of Zig.baselineis recommendedand means it will target a generic CPU for the target.nativemeans itwill target the native CPU. See the Zig documentation for more details.
Please be aware of the following two CMake environment variables that cansignificantly affect how long it takes to build:
CMAKE_GENERATORcan be used to select a different generator instead of thedefault. For example,CMAKE_GENERATOR=Ninja.CMAKE_BUILD_PARALLEL_LEVELcan be used to introduce parallelism to buildsystems (such as make) which do not default to parallel builds. This optionis irrelevant when using Ninja.
When it succeeds, output can be found inout/zig-<target>-<cpu>/.
Bootstrapping on Windows with MSVC is also possible viabuild.bat, whichtakes the same arguments asbuild above.
This script requires that the "C++ CMake tools for Windows" component beinstalled via the Visual Studio installer.
The script must be run within theDeveloper Command Prompt for VS 2019 shell:
build.bat <arch>-<os>-<abi> <mcpu>To build for x86 Windows, run the script within thex86 Native Tools Command Prompt for VS 2019.
If you try a "not tested" one and find a problem please file an issue,and a pull request linking to the issue in the table.
If you try a "not tested" one and find that it works, please file a pull requestchanging the status to "OK".
If you try an "OK" one and it does not work, please check if there is an existingissue, and if not, file an issue.
Note: Generally, for Linux targets, we prefer the musl libc builds over theglibc builds here, because musl builds end up producing a static binary, whichis more portable across Linux distributions.
| Target | Status |
|---|---|
aarch64-freebsd-none | OK |
arm-freebsd-eabihf | OK |
powerpc64-freebsd-none | OK |
powerpc64le-freebsd-none | OK |
riscv64-freebsd-none | OK |
x86_64-freebsd-none | OK |
| Target | Status |
|---|---|
aarch64-linux-gnu | OK |
aarch64-linux-musl | OK |
aarch64_be-linux-gnu | OK |
aarch64_be-linux-musl | OK |
arm-linux-gnueabi | OK |
arm-linux-gnueabihf | OK |
arm-linux-musleabi | OK |
arm-linux-musleabihf | OK |
armeb-linux-gnueabi | OK |
armeb-linux-gnueabihf | OK |
armeb-linux-musleabi | OK |
armeb-linux-musleabihf | OK |
hexagon-linux-musl | #215 |
loongarch64-linux-gnu | OK |
loongarch64-linux-gnusf | OK |
loongarch64-linux-musl | OK |
loongarch64-linux-muslsf | OK |
mips-linux-gnueabi | OK |
mips-linux-gnueabihf | OK |
mips-linux-musleabi | OK |
mips-linux-musleabihf | OK |
mips64-linux-gnuabi64 | OK |
mips64-linux-gnuabin32 | OK |
mips64-linux-muslabi64 | OK |
mips64-linux-muslabin32 | OK |
mips64el-linux-gnuabi64 | OK |
mips64el-linux-gnuabin32 | #214 |
mips64el-linux-muslabi64 | OK |
mips64el-linux-muslabin32 | OK |
mipsel-linux-gnueabi | OK |
mipsel-linux-gnueabihf | OK |
mipsel-linux-musleabi | OK |
mipsel-linux-musleabihf | OK |
powerpc-linux-gnueabi | OK |
powerpc-linux-gnueabihf | OK |
powerpc-linux-musleabi | OK |
powerpc-linux-musleabihf | OK |
powerpc64-linux-gnu | OK |
powerpc64-linux-musl | OK |
powerpc64le-linux-gnu | OK |
powerpc64le-linux-musl | OK |
riscv32-linux-gnu | OK |
riscv32-linux-musl | OK |
riscv64-linux-gnu | OK |
riscv64-linux-musl | OK |
s390x-linux-gnu | OK |
s390x-linux-musl | OK |
sparc-linux-gnu | #117 |
sparc64-linux-gnu | #172 |
thumb-linux-musleabi | OK |
thumb-linux-musleabihf | OK |
thumbeb-linux-musleabi | OK |
thumbeb-linux-musleabihf | OK |
x86-linux-gnu | OK |
x86-linux-musl | OK |
x86_64-linux-gnu | OK |
x86_64-linux-gnux32 | OK |
x86_64-linux-musl | OK |
x86_64-linux-muslx32 | OK |
| Target | Status |
|---|---|
aarch64-macos-none | OK |
x86_64-macos-none | OK |
| Target | Status |
|---|---|
aarch64-netbsd-none | OK |
aarch64_be-netbsd-none | OK |
arm-netbsd-eabi | OK |
arm-netbsd-eabihf | OK |
armeb-netbsd-eabi | OK |
armeb-netbsd-eabihf | OK |
mips-netbsd-eabi | OK |
mips-netbsd-eabihf | OK |
mipsel-netbsd-eabi | OK |
mipsel-netbsd-eabihf | OK |
powerpc-netbsd-eabi | OK |
powerpc-netbsd-eabihf | OK |
riscv32-netbsd-none | #233 |
riscv64-netbsd-none | #234 |
sparc-netbsd-none | #230 |
sparc64-netbsd-none | #231 |
x86-netbsd-none | OK |
x86_64-netbsd-none | OK |
| Target | Status |
|---|---|
aarch64-windows-gnu | OK |
thumb-windows-gnu | OK |
x86-windows-gnu | OK |
x86_64-windows-gnu | OK |
About
take off every zig
Resources
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Sponsor this project
Uh oh!
There was an error while loading.Please reload this page.