X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=config%2Fparse-types.sh;h=24d2a990edb90def984b38c9edd14becc59f0abc;hb=05a458b3552fda8f104bf8d5298692a974ab3f8e;hp=0887054451936df3b83fd3174399fd6c5c80be88;hpb=318824c1bb7b73edfe66ae4976676c37eacd0c58;p=tools%2Fe2fsprogs.git diff --git a/config/parse-types.sh b/config/parse-types.sh index 0887054..24d2a99 100755 --- a/config/parse-types.sh +++ b/config/parse-types.sh @@ -16,8 +16,15 @@ if test -z "$CPP"; then CPP="$CC -E" fi -echo '#include ' | $CPP - | \ - sed -f sed.script | grep '^#' > asm_types.h +/bin/echo -n "checking for __uNN types... " +# can't check [ -f /usr/include/asm/types.h ] directly, since +# the include path might be different if cross-compiling +if echo '#include ' | $CPP - 2> parse-types.log | \ + sed -f sed.script | grep '^#' > asm_types.h; then + echo "using " +else + echo "using generic types" +fi rm sed.script @@ -26,93 +33,95 @@ cp asm_types.h asm_types.c cat >> asm_types.c < #include -main(int argc, char **argv) +int 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)); + (int) sizeof(__U8_TYPEDEF)); exit(1); } -#else +#elif defined(__linux__) #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)); + (int) sizeof(__S8_TYPEDEF)); exit(1); } -#else +#elif defined(__linux__) #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)); + (int) sizeof(__U16_TYPEDEF)); exit(1); } -#else +#elif defined(__linux__) #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)); + (int) sizeof(__S16_TYPEDEF)); exit(1); } -#else +#elif defined(__linux__) #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)); + (int) sizeof(__U32_TYPEDEF)); exit(1); } -#else +#elif defined(__linux__) #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)); + (int) sizeof(__S32_TYPEDEF)); exit(1); } -#else +#elif defined(__linux__) #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)); + (int) sizeof(__U64_TYPEDEF)); exit(1); } -#else +#elif defined(__linux__) #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)); + (int) sizeof(__S64_TYPEDEF)); exit(1); } -#else +#elif defined(__linux__) #warning __S64_TYPEDEF not defined #endif - exit(0); + return 0; } EOF ${BUILD_CC-${CC-gcc}} -o asm_types asm_types.c if ./asm_types then - /bin/true + true else - echo "Problem detected with asm_types.h" - echo "" > asm_types.h + if [ "${CROSS_COMPILE}" != "1" ]; then + echo "Problem detected with asm_types.h" + echo "" > asm_types.h + fi fi rm asm_types.c asm_types