--- configure.ac.dist 2015-12-09 09:10:25.740408191 +0100 +++ configure.ac.dist 2015-12-09 10:30:02.307126162 +0100 @@ -100,23 +100,30 @@ dnl check for getopt in standard library dnl AC_CHECK_FUNCS(getopt_long , , [LIBOBJS="$LIBOBJS getopt.o getopt1.o"] ) AC_CHECK_FUNCS(getopt_long, [], []) -AC_CHECK_SIZEOF(void*,1) - asm_optimisation=no case "$host_cpu" in x86_64) - if test $ac_cv_sizeof_voidp = 4 ; then - # This must be a 32 bit user space running on 64 bit kernel so treat - # this as ia32. - cpu_ia32=true - AC_DEFINE(FLAC__CPU_IA32) - AH_TEMPLATE(FLAC__CPU_IA32, [define if building for ia32/i386]) - else - # x86_64 user space and kernel. - cpu_x86_64=true - AC_DEFINE(FLAC__CPU_X86_64) - AH_TEMPLATE(FLAC__CPU_X86_64, [define if building for x86_64]) - fi + AC_COMPILE_IFELSE( + AC_LANG_PROGRAM([], [[{ + #if ( defined __ILP32__ and defined __x86_64__ ) or defined __x86_64__ + return 0 + #else + #error "neither x32 nor amd64 binary build" + #fi + }]] + ), [ + # This must be a 32 bit user space running on 64 bit kernel so treat + # this as ia32. + cpu_ia32=true + AC_DEFINE(FLAC__CPU_IA32) + AH_TEMPLATE(FLAC__CPU_IA32, [define if building for ia32/i386]) + ], [ + # either x86_64 or x32 user space and kernel. + cpu_x86_64=true + AC_DEFINE(FLAC__CPU_X86_64) + AH_TEMPLATE(FLAC__CPU_X86_64, [define if building for x86_64]) + ] + ) asm_optimisation=$asm_opt ;; i*86)