mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 10:26:02 +00:00 
			
		
		
		
	gh-84461: Document how to install SDKs manually (GH-93844)
Co-authored-by: Brett Cannon <brett@python.org>
This commit is contained in:
		
							parent
							
								
									50e0866f87
								
							
						
					
					
						commit
						8ba1c7f720
					
				
					 1 changed files with 78 additions and 0 deletions
				
			
		|  | @ -338,3 +338,81 @@ Feature detection flags: | |||
| * ``__wasm_bulk_memory__`` | ||||
| * ``__wasm_atomics__`` | ||||
| * ``__wasm_mutable_globals__`` | ||||
| 
 | ||||
| ## Install SDKs and dependencies manually | ||||
| 
 | ||||
| In some cases (e.g. build bots) you may prefer to install build dependencies | ||||
| directly on the system instead of using the container image. Total disk size | ||||
| of SDKs and cached libraries is about 1.6 GB. | ||||
| 
 | ||||
| ### Install OS dependencies | ||||
| 
 | ||||
| ```shell | ||||
| # Debian/Ubuntu | ||||
| apt update | ||||
| apt install -y git make xz-utils bzip2 curl python3-minimal ccache | ||||
| ``` | ||||
| 
 | ||||
| ```shell | ||||
| # Fedora | ||||
| dnf install -y git make xz bzip2 which ccache | ||||
| ``` | ||||
| 
 | ||||
| ### Install [Emscripten SDK](https://emscripten.org/docs/getting_started/downloads.html) | ||||
| 
 | ||||
| **NOTE**: Follow the on-screen instructions how to add the SDK to ``PATH``. | ||||
| 
 | ||||
| ```shell | ||||
| git clone https://github.com/emscripten-core/emsdk.git /opt/emsdk | ||||
| /opt/emsdk/emsdk install latest | ||||
| /opt/emsdk/emsdk activate latest | ||||
| ``` | ||||
| 
 | ||||
| ### Optionally: pre-build and cache static libraries | ||||
| 
 | ||||
| Emscripten SDK provides static builds of core libraries without PIC | ||||
| (position-independent code). Python builds with ``dlopen`` support require | ||||
| PIC. To populate the build cache, run: | ||||
| 
 | ||||
| ```shell | ||||
| . /opt/emsdk/emsdk_env.sh | ||||
| embuilder build --force zlib bzip2 | ||||
| embuilder build --force --pic \ | ||||
|     zlib bzip2 libc-mt libdlmalloc-mt libsockets-mt \ | ||||
|     libstubs libcompiler_rt libcompiler_rt-mt crtbegin libhtml5 \ | ||||
|     libc++-mt-noexcept libc++abi-mt-noexcept \ | ||||
|     libal libGL-mt libstubs-debug libc-mt-debug | ||||
| ``` | ||||
| 
 | ||||
| ### Install [WASI-SDK](https://github.com/WebAssembly/wasi-sdk) | ||||
| 
 | ||||
| **NOTE**: WASI-SDK's clang may show a warning on Fedora: | ||||
| ``/lib64/libtinfo.so.6: no version information available``, | ||||
| [RHBZ#1875587](https://bugzilla.redhat.com/show_bug.cgi?id=1875587). | ||||
| 
 | ||||
| ```shell | ||||
| export WASI_VERSION=16 | ||||
| export WASI_VERSION_FULL=${WASI_VERSION}.0 | ||||
| curl -sSf -L -O https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_VERSION}/wasi-sdk-${WASI_VERSION_FULL}-linux.tar.gz | ||||
| mkdir -p /opt/wasi-sdk | ||||
| tar --strip-components=1 -C /opt/wasi-sdk -xvf wasi-sdk-${WASI_VERSION_FULL}-linux.tar.gz | ||||
| rm -f wasi-sdk-${WASI_VERSION_FULL}-linux.tar.gz | ||||
| ``` | ||||
| 
 | ||||
| ### Install [wasmtime](https://github.com/bytecodealliance/wasmtime) WASI runtime | ||||
| 
 | ||||
| **NOTE**: wasmtime 0.37 has a bug. Newer versions should be fine again. | ||||
| 
 | ||||
| ```shell | ||||
| curl -sSf -L -o ~/install-wasmtime.sh https://wasmtime.dev/install.sh | ||||
| chmod +x ~/install-wasmtime.sh | ||||
| ~/install-wasmtime.sh --version v0.36.0 | ||||
| ln -srf -t /usr/local/bin/ ~/.wasmtime/bin/wasmtime | ||||
| ``` | ||||
| 
 | ||||
| ### Install [WASIX](https://github.com/singlestore-labs/wasix) | ||||
| 
 | ||||
| ```shell | ||||
| git clone https://github.com/singlestore-labs/wasix.git ~/wasix | ||||
| make install -C ~/wasix | ||||
| ``` | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Christian Heimes
						Christian Heimes