Port better to AIX.

* configure.ac (CFLAGS): Append -O if the user did not specify CFLAGS,
we did not already infer an optimization option, and -O works.
AIX xlc needs -O, otherwise garbage collection doesn't work.
* src/lisp.h (ENUM_BF) [__IBMC__]: Make it 'unsigned int' here, too,
to pacify AIX xlc.

Fixes: debbugs:14258
This commit is contained in:
Paul Eggert 2013-04-26 12:31:09 -07:00
parent ff7210d55b
commit f780d632f2
4 changed files with 39 additions and 10 deletions

View file

@ -1,3 +1,10 @@
2013-04-26 Paul Eggert <eggert@cs.ucla.edu>
Port better to AIX (Bug#14258).
* configure.ac (CFLAGS): Append -O if the user did not specify CFLAGS,
we did not already infer an optimization option, and -O works.
AIX xlc needs -O, otherwise garbage collection doesn't work.
2013-04-22 Paul Eggert <eggert@cs.ucla.edu>
* make-dist: Do not distribute admin/unidata/Makefile.

View file

@ -613,10 +613,10 @@ AC_DEFUN([gl_THREADLIB])
dnl Amongst other things, this sets AR and ARFLAGS.
gl_EARLY
# It's helpful to have C macros available to GDB, so prefer -g3 to -g
# if -g3 works and the user does not specify CFLAGS.
# This test must follow gl_EARLY; otherwise AC_LINK_IFELSE complains.
if test "$ac_test_CFLAGS" != set; then
# It's helpful to have C macros available to GDB, so prefer -g3 to -g
# if -g3 works and the user does not specify CFLAGS.
# This test must follow gl_EARLY; otherwise AC_LINK_IFELSE complains.
case $CFLAGS in
'-g')
emacs_g3_CFLAGS='-g3';;
@ -632,13 +632,29 @@ if test "$ac_test_CFLAGS" != set; then
[emacs_cv_prog_cc_g3],
[AC_LINK_IFELSE([AC_LANG_PROGRAM()],
[emacs_cv_prog_cc_g3=yes],
[emacs_cv_prog_cc_g3=no])])
if test $emacs_cv_prog_cc_g3 = yes; then
CFLAGS=$emacs_g3_CFLAGS
else
[emacs_cv_prog_cc_g3=no])])
if test $emacs_cv_prog_cc_g3 != yes; then
CFLAGS=$emacs_save_CFLAGS
fi
fi
case $CFLAGS in
*-O*) ;;
*)
# No optimization flag was inferred for this non-GCC compiler.
# Try -O. This is needed for xlc on AIX; see Bug#14258.
emacs_save_CFLAGS=$CFLAGS
test -z "$CFLAGS" || CFLAGS="$CFLAGS "
CFLAGS=${CFLAGS}-O
AC_CACHE_CHECK([whether $CC accepts -O],
[emacs_cv_prog_cc_o],
[AC_LINK_IFELSE([AC_LANG_PROGRAM()],
[emacs_cv_prog_cc_o=yes],
[emacs_cv_prog_cc_o=no])])
if test $emacs_cv_prog_cc_o != yes; then
CFLAGS=$emacs_save_CFLAGS
fi ;;
esac
fi
AC_ARG_ENABLE([gcc-warnings],

View file

@ -1,3 +1,9 @@
2013-04-26 Paul Eggert <eggert@cs.ucla.edu>
Port better to AIX (Bug#14258).
* lisp.h (ENUM_BF) [__IBMC__]: Make it 'unsigned int' here, too,
to pacify AIX xlc.
2013-04-24 Kenichi Handa <handa@gnu.org>
* coding.c (decode_coding_iso_2022): When an invalid escape

View file

@ -231,9 +231,9 @@ enum enum_USE_LSB_TAG { USE_LSB_TAG = 0 };
#define case_Lisp_Int case Lisp_Int0: case Lisp_Int1
#define LISP_INT_TAG_P(x) (((x) & ~Lisp_Int1) == 0)
/* Stolen from GDB. The only known compiler that doesn't support
enums in bitfields is MSVC. */
#ifdef _MSC_VER
/* Idea stolen from GDB. MSVC doesn't support enums in bitfields,
and xlc complains vociferously about them. */
#if defined _MSC_VER || defined __IBMC__
#define ENUM_BF(TYPE) unsigned int
#else
#define ENUM_BF(TYPE) enum TYPE