mirror of
				https://source.denx.de/u-boot/u-boot.git
				synced 2025-10-31 00:11:51 +01:00 
			
		
		
		
	These types are problematic because they are typically declared in a non-standard way in U-Boot. For example, U-Boot uses 'long long' for int64_t even on a 64-bit machine whereas stdint.h uses 'long'. Similarly, U-Boot always uses 'long' for intptr_t whereas stdint.h mostly uses 'int'. This simple test script runs a few toolchains on a few archs to check for warnings. Signed-off-by: Simon Glass <sjg@chromium.org>
		
			
				
	
	
		
			59 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/bash
 | |
| 
 | |
| # Test script to check uintptr_t and 64-bit types for warnings
 | |
| #
 | |
| # It builds a few boards with different toolchains. If there are no warnings
 | |
| # then all is well.
 | |
| #
 | |
| # Usage:
 | |
| #
 | |
| # Make sure that your toolchains are correct at the bottom of this file
 | |
| #
 | |
| # Then:
 | |
| #	./test/stdint/test-includes.sh
 | |
| 
 | |
| out=/tmp/test-includes.tmp
 | |
| 
 | |
| try_test() {
 | |
| 	local board=$1
 | |
| 	local arch=$2
 | |
| 	local soc=$3
 | |
| 	local gcc=$4
 | |
| 	local flags="$5"
 | |
| 
 | |
| 	echo $@
 | |
| 	if ! which ${gcc} >/dev/null 2>&1; then
 | |
| 		echo "Not found: ${gcc}"
 | |
| 		return
 | |
| 	fi
 | |
| 
 | |
| 	rm -rf ${out}
 | |
| 	mkdir -p ${out}
 | |
| 	touch ${out}/config.h
 | |
| 	mkdir -p ${out}/generated
 | |
| 	touch ${out}/generated/generic-asm-offsets.h
 | |
| 	mkdir -p ${out}/include/asm
 | |
| 	ln -s $(pwd)/arch/${arch}/include/asm/arch-${soc} \
 | |
| 			${out}/include/asm/arch
 | |
| 
 | |
| 	cmd="${gcc} -c -D__KERNEL__ ${flags} \
 | |
| 		-fno-builtin -ffreestanding \
 | |
| 		-Iarch/${arch}/include \
 | |
| 		-Iinclude \
 | |
| 		-I${out} -I${out}/include \
 | |
| 		-include configs/${board}.h test/stdint/int-types.c \
 | |
| 		-o /dev/null"
 | |
| 	$cmd
 | |
| }
 | |
| 
 | |
| # Run a test with and without CONFIG_USE_STDINT
 | |
| try_both() {
 | |
| 	try_test $@
 | |
| 	try_test $@ -DCONFIG_USE_STDINT
 | |
| }
 | |
| 
 | |
| # board arch soc path-to-gcc
 | |
| try_both sandbox sandbox - gcc
 | |
| try_both coreboot x86 - x86_64-linux-gnu-gcc
 | |
| try_both seaboard arm tegra20 /opt/linaro/gcc-linaro-arm-linux-gnueabihf-4.8-2013.08_linux/bin/arm-linux-gnueabihf-gcc
 |