mirror of https://github.com/vitalif/e2fsprogs
113 lines
2.2 KiB
Bash
113 lines
2.2 KiB
Bash
![]() |
#!/bin/sh
|
||
|
|
||
|
ASM_TYPES=/usr/include/asm/types.h
|
||
|
|
||
|
if test ! -f $ASM_TYPES
|
||
|
then
|
||
|
echo "" > asm_types.h
|
||
|
echo "No asm_types file found"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
cat > /tmp/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
|
||
|
|
||
|
gcc -E $ASM_TYPES | sed -f /tmp/sed.script | grep ^# > asm_types.h
|
||
|
|
||
|
cp asm_types.h asm_types.c
|
||
|
|
||
|
cat >> asm_types.c <<EOF
|
||
|
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
|
||
|
|
||
|
cc -o asm_types asm_types.c
|
||
|
if ! ./asm_types
|
||
|
then
|
||
|
echo "Problem detected with asm_types.h"
|
||
|
echo "" > asm_types.h
|
||
|
fi
|
||
|
rm asm_types.c asm_types
|
||
|
|