# HG changeset patch # User Matti Hamalainen # Date 1455542657 -7200 # Node ID 36552c7d71711c47d23be9783842fc31c84f7036 # Parent 9a0aeb9ce9bafea23c2669613c32597366bd8708# Parent d062312ea8505634a420222a0a8b43b3885ebfbe Merged. diff -r d062312ea850 -r 36552c7d7171 endianchk.c --- a/endianchk.c Mon Feb 15 12:00:32 2016 +0200 +++ b/endianchk.c Mon Feb 15 15:24:17 2016 +0200 @@ -2,11 +2,28 @@ int main(int argc, char *argv[]) { - int val = 1, ret; - char *s = (char *) &val; + int val = 0x01020304, ret; + unsigned char *s = (unsigned char *) &val; + char *name = argv[0]; (void) argc; - (void) argv; - ret = (int)(*s); + + if (sizeof(int) != 4) + { + fprintf(stderr, "%s: sizeof(int) is not 32 bits!\n", name); + return -1; + } + + if (s[0] == 0x01 && s[1] == 0x02 && s[2] == 0x03 && s[3] == 0x04) + ret = 0; + else + if (s[0] == 0x04 && s[1] == 0x03 && s[2] == 0x02 && s[3] == 0x01) + ret = 1; + else + { + fprintf(stderr, "%s: Unsupported endianess.\n", name); + return -2; + } + printf( "#ifndef MY_CONFIG_H\n" "#define MY_CONFIG_H 1\n"