| #!/bin/sh |
| |
| cat > sed.script << "EOF" |
| /^#/d |
| /^$/d |
| s/__extension__ // |
| s/typedef \(.*\) __u\([1-9]*\);/#define __U\2_TYPEDEF \1/ |
| s/typedef \(.*\) __s\([1-9]*\);/#define __S\2_TYPEDEF \1/ |
| EOF |
| |
| if test -z "$CC"; then |
| CC=gcc |
| fi |
| |
| if test -z "$CPP"; then |
| CPP="$CC -E" |
| fi |
| |
| echo '#include <asm/types.h>' | $CPP - | \ |
| sed -f sed.script | grep '^#' > asm_types.h |
| |
| rm sed.script |
| |
| cp asm_types.h asm_types.c |
| |
| cat >> asm_types.c <<EOF |
| #include <stdio.h> |
| #include <stdlib.h> |
| main(int argc, char **argv) |
| { |
| #ifdef __U8_TYPEDEF |
| if (sizeof(__U8_TYPEDEF) != 1) { |
| printf("Sizeof(__U8__TYPEDEF) is %d should be 1\n", |
| sizeof(__U8_TYPEDEF)); |
| exit(1); |
| } |
| #else |
| #warning __U8_TYPEDEF not defined |
| #endif |
| #ifdef __S8_TYPEDEF |
| if (sizeof(__S8_TYPEDEF) != 1) { |
| printf("Sizeof(_S8__TYPEDEF) is %d should be 1\n", |
| sizeof(__S8_TYPEDEF)); |
| exit(1); |
| } |
| #else |
| #warning __S8_TYPEDEF not defined |
| #endif |
| #ifdef __U16_TYPEDEF |
| if (sizeof(__U16_TYPEDEF) != 2) { |
| printf("Sizeof(__U16__TYPEDEF) is %d should be 2\n", |
| sizeof(__U16_TYPEDEF)); |
| exit(1); |
| } |
| #else |
| #warning __U16_TYPEDEF not defined |
| #endif |
| #ifdef __S16_TYPEDEF |
| if (sizeof(__S16_TYPEDEF) != 2) { |
| printf("Sizeof(__S16__TYPEDEF) is %d should be 2\n", |
| sizeof(__S16_TYPEDEF)); |
| exit(1); |
| } |
| #else |
| #warning __S16_TYPEDEF not defined |
| #endif |
| |
| #ifdef __U32_TYPEDEF |
| if (sizeof(__U32_TYPEDEF) != 4) { |
| printf("Sizeof(__U32__TYPEDEF) is %d should be 4\n", |
| sizeof(__U32_TYPEDEF)); |
| exit(1); |
| } |
| #else |
| #warning __U32_TYPEDEF not defined |
| #endif |
| #ifdef __S32_TYPEDEF |
| if (sizeof(__S32_TYPEDEF) != 4) { |
| printf("Sizeof(__S32__TYPEDEF) is %d should be 4\n", |
| sizeof(__S32_TYPEDEF)); |
| exit(1); |
| } |
| #else |
| #warning __S32_TYPEDEF not defined |
| #endif |
| |
| #ifdef __U64_TYPEDEF |
| if (sizeof(__U64_TYPEDEF) != 8) { |
| printf("Sizeof(__U64__TYPEDEF) is %d should be 8\n", |
| sizeof(__U64_TYPEDEF)); |
| exit(1); |
| } |
| #else |
| #warning __U64_TYPEDEF not defined |
| #endif |
| #ifdef __S64_TYPEDEF |
| if (sizeof(__S64_TYPEDEF) != 8) { |
| printf("Sizeof(__S64__TYPEDEF) is %d should be 8\n", |
| sizeof(__S64_TYPEDEF)); |
| exit(1); |
| } |
| #else |
| #warning __S64_TYPEDEF not defined |
| #endif |
| exit(0); |
| } |
| EOF |
| |
| ${BUILD_CC-${CC-gcc}} -o asm_types asm_types.c |
| if ./asm_types |
| then |
| true |
| else |
| echo "Problem detected with asm_types.h" |
| echo "" > asm_types.h |
| fi |
| rm asm_types.c asm_types |
| |