fixed bug #1370179 - endianness problem with FIX_ENDIAN_INT32_INPLACE

git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@4444 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
kichik 2005-12-15 18:53:38 +00:00
parent 2822e9a3ab
commit 47b2ca9bcb

View file

@ -210,6 +210,36 @@ if conf.CheckPThread():
makensis_env.Append(LINKFLAGS = '-pthread')
conf.Finish()
#
# GCC doesn't define __BIG_ENDIAN__ or __LITTLE_ENDIAN__, so manually check
# for the endianess and define __BIG_ENDIAN__ if needed.
#
def check_big_endian(ctx):
ctx.Message('Checking for __BIG_ENDIAN__... ')
test = """
int main() {
#ifdef __BIG_ENDIAN__
// already defined, no need to define again
return 0;
#else
int i = 1;
char *c = (char *) &i;
return c[0] != 1;
#endif
}
"""
result = not ctx.TryRun(test, '.c')[0]
ctx.Result(result)
return result
conf = defenv.Configure(custom_tests = { 'CheckBigEndian' : check_big_endian })
if conf.CheckBigEndian():
makensis_env.Append(CPPFLAGS = ['__BIG_ENDIAN__'])
conf.Finish()
### return
Return('stub_env makensis_env plugin_env util_env cp_util_env')