bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

ping#2 [PATCH] early check for PowerPC AIX object mode


From: Michael Haubenwallner
Subject: ping#2 [PATCH] early check for PowerPC AIX object mode
Date: Wed, 27 Apr 2016 09:35:17 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.7.0

On 03/17/2016 03:34 PM, Michael Haubenwallner wrote:
> Native PowerPC AIX tools do accept only 32 bit objects by default.
> They either need the -X32_64 commandline flag to accept both, or the
> OBJECT_MODE=64 environment variable to switch to accepting 64 bit
> objects only, while the GNU toolchain ignores both the -X32_64 flag
> and the environment variable.  As this affects the whole toolchain, we
> separately set the gl_cv_powerpc_aix_object_mode configure variable to
> either '32' or '64', or to 'no' when not compiling for PowerPC AIX.
> * m4/gnulib-common.m4 (gl_POWERPC_AIX_OBJECT_MODE): New.
> (gl_PROG_AR_RANLIB): Require gl_POWERPC_AIX_OBJECT_MODE.
> Search for AR and RANLIB accepting the -X32_64 flag when
> gl_cv_powerpc_aix_object_mode != no.
> ---
>  ChangeLog           | 16 ++++++++++++++++
>  m4/gnulib-common.m4 | 36 ++++++++++++++++++++++++++++++++++++
>  2 files changed, 52 insertions(+)
> 
> diff --git a/ChangeLog b/ChangeLog
> index 49180d9..75cc906 100644
> --- a/ChangeLog
> +++ b/ChangeLog
> @@ -1,3 +1,19 @@
> +2016-03-17  Michael Haubenwallner  <address@hidden>
> +
> +     early check for PowerPC AIX object mode
> +
> +     Native PowerPC AIX tools do accept only 32 bit objects by default.
> +     They either need the -X32_64 commandline flag to accept both, or the
> +     OBJECT_MODE=64 environment variable to switch to accepting 64 bit
> +     objects only, while the GNU toolchain ignores both the -X32_64 flag
> +     and the environment variable.  As this affects the whole toolchain, we
> +     separately set the gl_cv_powerpc_aix_object_mode configure variable to
> +     either '32' or '64', or to 'no' when not compiling for PowerPC AIX.
> +     * m4/gnulib-common.m4 (gl_POWERPC_AIX_OBJECT_MODE): New.
> +     (gl_PROG_AR_RANLIB): Require gl_POWERPC_AIX_OBJECT_MODE.
> +     Search for AR and RANLIB accepting the -X32_64 flag when
> +     gl_cv_powerpc_aix_object_mode != no.
> +
>  2016-03-15  Paul Eggert  <address@hidden>
>  
>       time_rz: port to clang -Wunused-const-variable
> diff --git a/m4/gnulib-common.m4 b/m4/gnulib-common.m4
> index f8454c8..727b7d6 100644
> --- a/m4/gnulib-common.m4
> +++ b/m4/gnulib-common.m4
> @@ -245,6 +245,37 @@ AC_DEFUN([gl_PROG_CC_C99],
>      [AC_REQUIRE([AC_PROG_CC_STDC])])
>  ])
>  
> +# gl_POWERPC_AIX_OBJECT_MODE
> +# Determines the current object mode used by the compiler for AIX.
> +AC_DEFUN([gl_POWERPC_AIX_OBJECT_MODE],
> +[
> +  AC_CACHE_CHECK([for PowerPC AIX object mode],
> +    [gl_cv_powerpc_aix_object_mode],
> +    [
> +      dnl like AS_EGREP_CPP but with AS_CASE instead of AS_IF
> +      dnl to run preprocessor once for multiple variants
> +      AC_LANG_PREPROC_REQUIRE()
> +      AC_LANG_CONFTEST([AC_LANG_SOURCE(
> +     [
> +#if defined(_AIX) && defined(_POWER)
> +# if defined(__64BIT__)
> +OBJECT_MODE=64
> +# else
> +OBJECT_MODE=32
> +# endif
> +#else
> +OBJECT_MODE=no
> +#endif
> +     ])])
> +      AS_CASE(
> +     [`(eval "$ac_cpp conftest.$ac_ext") 2>&AS_MESSAGE_LOG_FD`],
> +     [*'OBJECT_MODE=64'*], [gl_cv_powerpc_aix_object_mode=64],
> +     [*'OBJECT_MODE=32'*], [gl_cv_powerpc_aix_object_mode=32],
> +     [gl_cv_powerpc_aix_object_mode=no])
> +      rm -f conftest*
> +    ])
> +])
> +
>  # gl_PROG_AR_RANLIB
>  # Determines the values for AR, ARFLAGS, RANLIB that fit with the compiler.
>  # The user can set the variables AR, ARFLAGS, RANLIB if he wants to override
> @@ -256,6 +287,7 @@ AC_DEFUN([gl_PROG_AR_RANLIB],
>    dnl library formats. In particular, the GNU binutils programs ar and ranlib
>    dnl produce libraries that work only with gcc, not with cc.
>    AC_REQUIRE([AC_PROG_CC])
> +  AC_REQUIRE([gl_POWERPC_AIX_OBJECT_MODE])
>    AC_BEFORE([$0], [AM_PROG_AR])
>    AC_CACHE_CHECK([for Minix Amsterdam compiler], 
> [gl_cv_c_amsterdam_compiler],
>      [
> @@ -278,6 +310,10 @@ Amsterdam
>      if test -z "$ARFLAGS"; then
>        ARFLAGS='-o'
>      fi
> +  elif test $gl_cv_powerpc_aix_object_mode != no; then
> +    dnl PowerPC AIX toolchain accepts only 32 bit objects by default.
> +    AC_CHECK_TOOL([AR], [ar -X32_64], [ar])
> +    AC_CHECK_TOOL([RANLIB], [ranlib -X32_64], [ranlib])
>    else
>      dnl AM_PROG_AR was added in automake v1.11.2.  AM_PROG_AR does not 
> AC_SUBST
>      dnl ARFLAGS variable (it is filed into Makefile.in directly by automake
> 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]