=== modified file 'configure' --- configure 2009-03-13 15:35:56 +0000 +++ configure 2009-03-18 23:54:23 +0000 @@ -541,6 +541,18 @@ rm -f $TMPC $TMPE done +# check for sys/personality.h +header=sys/personality.h +cat > $TMPC << EOF +#include <$header> +int main(void) { return PER_LINUX_32BIT; } +EOF +if $cc $TMPC -o $TMPE > /dev/null 2>&1; then + header_def=`echo "$header" | tr '[:lower:]./-' '[:upper:]___'` + echo "#define HAVE_$header_def 1" >> $config_h +fi +rm -f $TMPC $TMPE + # build tree in object directory if source path is different from current one if test "$source_path_used" = "yes" ; then case $source_path in === modified file 'src/cpuinfo-common.c' --- src/cpuinfo-common.c 2009-03-12 23:58:25 +0000 +++ src/cpuinfo-common.c 2009-03-18 23:40:25 +0000 @@ -219,6 +219,11 @@ // Returns 1 if CPU supports the specified feature int cpuinfo_has_feature(struct cpuinfo *cip, int feature) { +#ifdef HAVE_SYS_PERSONALITY_H + if((feature == CPUINFO_FEATURE_64BIT) && (personality(0xffffffff) & PER_MASK) == PER_LINUX32) + return false; +#endif + return cpuinfo_arch_has_feature(cip, feature); } === modified file 'src/sysdeps.h' --- src/sysdeps.h 2007-05-14 14:10:46 +0000 +++ src/sysdeps.h 2009-03-18 23:22:49 +0000 @@ -36,6 +36,10 @@ #include <sys/types.h> #endif +#ifdef HAVE_SYS_PERSONALITY_H +#include <sys/personality.h> +#endif + // Private interface specification #ifdef HAVE_VISIBILITY_ATTRIBUTE #define attribute_hidden __attribute__((visibility("hidden")))