3 ASM_TYPES=/usr/include/asm/types.h
5 if test ! -f $ASM_TYPES
8 echo "No asm_types file found"
12 cat > /tmp/sed.script << "EOF"
16 s/typedef \(.*\) __u\([1-9]*\);/#define __U\2_TYPEDEF \1/
17 s/typedef \(.*\) __s\([1-9]*\);/#define __S\2_TYPEDEF \1/
20 gcc -E $ASM_TYPES | sed -f /tmp/sed.script | grep ^# > asm_types.h
22 cp asm_types.h asm_types.c
24 cat >> asm_types.c <<EOF
25 main(int argc, char **argv)
28 if (sizeof(__U8_TYPEDEF) != 1) {
29 printf("Sizeof(__U8__TYPEDEF) is %d should be 1\n",
30 sizeof(__U8_TYPEDEF));
34 #warning __U8_TYPEDEF not defined
37 if (sizeof(__S8_TYPEDEF) != 1) {
38 printf("Sizeof(_S8__TYPEDEF) is %d should be 1\n",
39 sizeof(__S8_TYPEDEF));
43 #warning __S8_TYPEDEF not defined
46 if (sizeof(__U16_TYPEDEF) != 2) {
47 printf("Sizeof(__U16__TYPEDEF) is %d should be 2\n",
48 sizeof(__U16_TYPEDEF));
52 #warning __U16_TYPEDEF not defined
55 if (sizeof(__S16_TYPEDEF) != 2) {
56 printf("Sizeof(__S16__TYPEDEF) is %d should be 2\n",
57 sizeof(__S16_TYPEDEF));
61 #warning __S16_TYPEDEF not defined
65 if (sizeof(__U32_TYPEDEF) != 4) {
66 printf("Sizeof(__U32__TYPEDEF) is %d should be 4\n",
67 sizeof(__U32_TYPEDEF));
71 #warning __U32_TYPEDEF not defined
74 if (sizeof(__S32_TYPEDEF) != 4) {
75 printf("Sizeof(__S32__TYPEDEF) is %d should be 4\n",
76 sizeof(__S32_TYPEDEF));
80 #warning __S32_TYPEDEF not defined
84 if (sizeof(__U64_TYPEDEF) != 8) {
85 printf("Sizeof(__U64__TYPEDEF) is %d should be 8\n",
86 sizeof(__U64_TYPEDEF));
90 #warning __U64_TYPEDEF not defined
93 if (sizeof(__S64_TYPEDEF) != 8) {
94 printf("Sizeof(__S64__TYPEDEF) is %d should be 8\n",
95 sizeof(__S64_TYPEDEF));
99 #warning __S64_TYPEDEF not defined
105 cc -o asm_types asm_types.c
108 echo "Problem detected with asm_types.h"
109 echo "" > asm_types.h
111 rm asm_types.c asm_types