[patch] Compile fix for 64-bit HPUX

Randolph Chung
2006-03-26T08:15:34Z

[-- Attachment #1: Type: text/plain, Size: 880 bytes --]

On 64-bit HPUX, gdb fails to compile with -Werror because of an
incorrect iconv() prototype. gdb's configure script checks for this, but
because the configure script test is compiled without -Werror even when
-Werror is enabled, the test doesn't detect the condition properly. The
attached patch forces this test to use the value of WERROR_CFLAGS so
that the check uses the same flags that will be used to build gdb.

tbh I think this is really a hack and we should somehow make all the
autoconf test use the -Werror flag when running the compile tests, but
it's not obvious to me how I can do this without redoing a lot of the
Makefile logic (for example, why do we use a separate WERROR_CFLAGS and
not just append the -Werror into CFLAGS?)...

Anyway, is this ok? Tested on hppa64-hp-hpux11.11; may also help other
archs that need ICONV_CONST to be defined.

randolph

[-- Attachment #2: hp64comp.diff --]
[-- Type: text/x-patch, Size: 1096 bytes --]

2006-03-26 Randolph Chung <tausq@debian.org>

* acinclude.m4 (ICONV_CONST): Compile test with -Werror if enabled.

Index: acinclude.m4
===================================================================
RCS file: /cvs/src/src/gdb/acinclude.m4,v
retrieving revision 1.13
diff -u -p -r1.13 acinclude.m4
--- acinclude.m4 17 Dec 2005 22:33:59 -0000 1.13
+++ acinclude.m4 26 Mar 2006 08:07:55 -0000
@@ -892,6 +892,8 @@ AC_DEFUN([AM_ICONV],
if test "$am_cv_func_iconv" = yes; then
AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.])
AC_MSG_CHECKING([for iconv declaration])
+ oldcflags="${CFLAGS-}"
+ CFLAGS="${CFLAGS-} $WERROR_CFLAGS"
AC_CACHE_VAL(am_cv_proto_iconv, [
AC_TRY_COMPILE([
#include <stdlib.h>
@@ -910,6 +912,7 @@ size_t iconv();
am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
AC_MSG_RESULT([$]{ac_t:-
}[$]am_cv_proto_iconv)
+ CFLAGS=$oldcflags
AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1,
[Define as const if the declaration of iconv() needs const.])
fi