40 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
		
		
			
		
	
	
			40 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Configures the BPF SDK environment
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if [ -z "$bpf_sdk" ]; then
							 | 
						||
| 
								 | 
							
								  bpf_sdk=.
							 | 
						||
| 
								 | 
							
								fi
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Ensure the sdk is installed
							 | 
						||
| 
								 | 
							
								"$bpf_sdk"/scripts/install.sh
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Use the SDK's version of llvm to build the compiler-builtins for BPF
							 | 
						||
| 
								 | 
							
								export CC="$bpf_sdk/dependencies/llvm-native/bin/clang"
							 | 
						||
| 
								 | 
							
								export AR="$bpf_sdk/dependencies/llvm-native/bin/llvm-ar"
							 | 
						||
| 
								 | 
							
								export OBJDUMP="$bpf_sdk/dependencies/llvm-native/bin/llvm-objdump"
							 | 
						||
| 
								 | 
							
								export OBJCOPY="$bpf_sdk/dependencies/llvm-native/bin/llvm-objcopy"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Use the SDK's version of Rust to build for BPF
							 | 
						||
| 
								 | 
							
								export RUSTUP_TOOLCHAIN=bpf
							 | 
						||
| 
								 | 
							
								export RUSTFLAGS="
							 | 
						||
| 
								 | 
							
								    -C lto=no \
							 | 
						||
| 
								 | 
							
								    -C opt-level=2 \
							 | 
						||
| 
								 | 
							
								    -C link-arg=-z -C link-arg=notext \
							 | 
						||
| 
								 | 
							
								    -C link-arg=-T$bpf_sdk/rust/bpf.ld \
							 | 
						||
| 
								 | 
							
								    -C link-arg=--Bdynamic \
							 | 
						||
| 
								 | 
							
								    -C link-arg=-shared \
							 | 
						||
| 
								 | 
							
								    -C link-arg=--entry=entrypoint \
							 | 
						||
| 
								 | 
							
								    -C link-arg=-no-threads \
							 | 
						||
| 
								 | 
							
								    -C linker=$bpf_sdk/dependencies/llvm-native/bin/ld.lld"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# CARGO may be set if run from within cargo, causing
							 | 
						||
| 
								 | 
							
								# incompatibilities between cargo and xargo versions
							 | 
						||
| 
								 | 
							
								unset CARGO
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export XARGO="$bpf_sdk"/dependencies/bin/xargo
							 | 
						||
| 
								 | 
							
								export XARGO_TARGET=bpfel-unknown-unknown
							 | 
						||
| 
								 | 
							
								export XARGO_HOME="$bpf_sdk/dependencies/xargo"
							 | 
						||
| 
								 | 
							
								export XARGO_RUST_SRC="$bpf_sdk/dependencies/rust-bpf-sysroot/src"
							 | 
						||
| 
								 | 
							
								export RUST_COMPILER_RT_ROOT="$bpf_sdk/dependencies/rust-bpf-sysroot/src/compiler-rt"
							 |