1#!/bin/sh 2 3cat > sed.script << "EOF" 4/^#/d 5/^$/d 6s/__extension__ // 7s/typedef \(.*\) __u\([1-9]*\);/#define __U\2_TYPEDEF \1/ 8s/typedef \(.*\) __s\([1-9]*\);/#define __S\2_TYPEDEF \1/ 9EOF 10 11echo '#include <asm/types.h>' | ${CPP-${CC-gcc} -E} - | \ 12 sed -f sed.script | grep ^# > asm_types.h 13 14rm sed.script 15 16cp asm_types.h asm_types.c 17 18cat >> asm_types.c <<EOF 19#include <stdio.h> 20#include <stdlib.h> 21main(int argc, char **argv) 22{ 23#ifdef __U8_TYPEDEF 24 if (sizeof(__U8_TYPEDEF) != 1) { 25 printf("Sizeof(__U8__TYPEDEF) is %d should be 1\n", 26 sizeof(__U8_TYPEDEF)); 27 exit(1); 28 } 29#else 30#warning __U8_TYPEDEF not defined 31#endif 32#ifdef __S8_TYPEDEF 33 if (sizeof(__S8_TYPEDEF) != 1) { 34 printf("Sizeof(_S8__TYPEDEF) is %d should be 1\n", 35 sizeof(__S8_TYPEDEF)); 36 exit(1); 37 } 38#else 39#warning __S8_TYPEDEF not defined 40#endif 41#ifdef __U16_TYPEDEF 42 if (sizeof(__U16_TYPEDEF) != 2) { 43 printf("Sizeof(__U16__TYPEDEF) is %d should be 2\n", 44 sizeof(__U16_TYPEDEF)); 45 exit(1); 46 } 47#else 48#warning __U16_TYPEDEF not defined 49#endif 50#ifdef __S16_TYPEDEF 51 if (sizeof(__S16_TYPEDEF) != 2) { 52 printf("Sizeof(__S16__TYPEDEF) is %d should be 2\n", 53 sizeof(__S16_TYPEDEF)); 54 exit(1); 55 } 56#else 57#warning __S16_TYPEDEF not defined 58#endif 59 60#ifdef __U32_TYPEDEF 61 if (sizeof(__U32_TYPEDEF) != 4) { 62 printf("Sizeof(__U32__TYPEDEF) is %d should be 4\n", 63 sizeof(__U32_TYPEDEF)); 64 exit(1); 65 } 66#else 67#warning __U32_TYPEDEF not defined 68#endif 69#ifdef __S32_TYPEDEF 70 if (sizeof(__S32_TYPEDEF) != 4) { 71 printf("Sizeof(__S32__TYPEDEF) is %d should be 4\n", 72 sizeof(__S32_TYPEDEF)); 73 exit(1); 74 } 75#else 76#warning __S32_TYPEDEF not defined 77#endif 78 79#ifdef __U64_TYPEDEF 80 if (sizeof(__U64_TYPEDEF) != 8) { 81 printf("Sizeof(__U64__TYPEDEF) is %d should be 8\n", 82 sizeof(__U64_TYPEDEF)); 83 exit(1); 84 } 85#else 86#warning __U64_TYPEDEF not defined 87#endif 88#ifdef __S64_TYPEDEF 89 if (sizeof(__S64_TYPEDEF) != 8) { 90 printf("Sizeof(__S64__TYPEDEF) is %d should be 8\n", 91 sizeof(__S64_TYPEDEF)); 92 exit(1); 93 } 94#else 95#warning __S64_TYPEDEF not defined 96#endif 97 exit(0); 98} 99EOF 100 101${BUILD_CC-${CC-gcc}} -o asm_types asm_types.c 102if ! ./asm_types 103then 104 echo "Problem detected with asm_types.h" 105 echo "" > asm_types.h 106fi 107rm asm_types.c asm_types 108 109