From: Pedro Alves Date: Thu, 7 Jan 2010 03:33:32 +0000 (-0500) Subject: Make 64 bit compilation on 32 bit compiler possible X-Git-Tag: v0.1~23 X-Git-Url: https://git.lttng.org./?a=commitdiff_plain;h=8c98245fd779d9aa1ae9b33524bc504f91d5dcae;p=ust.git Make 64 bit compilation on 32 bit compiler possible This patch is to be able to build ust with `i686-unknown-pc-gnu-gcc -m64', that is, 32-bit compiler, 64-bit multilib. --- diff --git a/configure.ac b/configure.ac index b0320b0..73e95bb 100644 --- a/configure.ac +++ b/configure.ac @@ -64,12 +64,38 @@ AC_CHECK_LIB([urcu-bp], [synchronize_rcu], [], [AC_MSG_ERROR([Cannot find liburc AC_CHECK_HEADERS([kcompat.h], [], [AC_MSG_ERROR([Cannot find kcompat headers (kcompat.h). Use [CFLAGS]=-Idir to specify their location.])]) +# Check for various supplementary host information (beyond the +# triplet) which might affect the library format choices. E.g., we +# can be building with `i686-unknown-linux-gnu-gcc -m64' + +case "${host}" in +changequote(,)dnl + i[34567]86-*-linux*) +changequote([,])dnl + AC_CACHE_CHECK([if building for x86-64], [ust_cv_i386_is_x86_64], + [save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $CFLAGS" + AC_EGREP_CPP([got it], [ +#if __x86_64__ +got it +#endif + ], [ust_cv_i386_is_x86_64=yes], + [ust_cv_i386_is_x86_64=no]) + CPPFLAGS="$save_CPPFLAGS"]) + ;; +esac + AC_MSG_CHECKING([library format for the host system]) case $host_cpu in - i386) LIBFORMAT="elf32-i386" ;; - i486) LIBFORMAT="elf32-i386" ;; - i586) LIBFORMAT="elf32-i386" ;; - i686) LIBFORMAT="elf32-i386" ;; +changequote(,)dnl + i[3456]86) +changequote([,])dnl + if test "$ust_cv_i386_is_x86_64" = yes ; then + LIBFORMAT="elf64-x86-64" + else + LIBFORMAT="elf32-i386" + fi + ;; x86_64) LIBFORMAT="elf64-x86-64" ;; ppc) LIBFORMAT="elf32-powerpc" ;; ppc64) LIBFORMAT="elf64-powerpc" ;;