This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Update for AC_PROG_STDC_CC fix



Per Alex's message, the right thing to do is to put a copy of AM_PROG_CC_STDC
into acinclude.m4, fix it, and run aclocal.m4 to propagage the changes into
aclocal.m4.

Here's the patch to do this.  As with the previous patch, I'll hold off
installing until I hear from one of the gdb maintainers.

	* acinclude.m4 (AM_PROG_CC_STDC): New macro to override the broken
	one in automake.  Uses -Ae, not -Aa to put HP compiler into ANSI
	with extensions mode.
	* aclocal.m4: Rebuilt.

Index: acinclude.m4
===================================================================
RCS file: /cvs/src/src/gdb/acinclude.m4,v
retrieving revision 1.2
diff -c -3 -p -r1.2 acinclude.m4
*** acinclude.m4	2000/09/12 04:23:30	1.2
--- acinclude.m4	2001/12/18 17:44:13
*************** dnl CY_GNU_GETTEXT into aclocal.m4.
*** 866,868 ****
--- 866,954 ----
  ifelse(yes,no,[
  AC_DEFUN([CY_GNU_GETTEXT],)
  ])
+ 
+ # @defmac AC_PROG_CC_STDC
+ # @maindex PROG_CC_STDC
+ # @ovindex CC
+ # If the C compiler in not in ANSI C mode by default, try to add an option
+ # to output variable @code{CC} to make it so.  This macro tries various
+ # options that select ANSI C on some system or another.  It considers the
+ # compiler to be in ANSI C mode if it handles function prototypes correctly.
+ #
+ # If you use this macro, you should check after calling it whether the C
+ # compiler has been set to accept ANSI C; if not, the shell variable
+ # @code{am_cv_prog_cc_stdc} is set to @samp{no}.  If you wrote your source
+ # code in ANSI C, you can make an un-ANSIfied copy of it by using the
+ # program @code{ansi2knr}, which comes with Ghostscript.
+ # @end defmac
+ 
+ AC_DEFUN(AM_PROG_CC_STDC,
+ [AC_REQUIRE([AC_PROG_CC])
+ AC_BEFORE([$0], [AC_C_INLINE])
+ AC_BEFORE([$0], [AC_C_CONST])
+ dnl Force this before AC_PROG_CPP.  Some cpp's, eg on HPUX, require
+ dnl a magic option to avoid problems with ANSI preprocessor commands
+ dnl like #elif.
+ dnl FIXME: can't do this because then AC_AIX won't work due to a
+ dnl circular dependency.
+ dnl AC_BEFORE([$0], [AC_PROG_CPP])
+ AC_MSG_CHECKING(for ${CC-cc} option to accept ANSI C)
+ AC_CACHE_VAL(am_cv_prog_cc_stdc,
+ [am_cv_prog_cc_stdc=no
+ ac_save_CC="$CC"
+ # Don't try gcc -ansi; that turns off useful extensions and
+ # breaks some systems' header files.
+ # AIX			-qlanglvl=ansi
+ # Ultrix and OSF/1	-std1
+ # HP-UX			-Ae -D_HPUX_SOURCE
+ # SVR4			-Xc -D__EXTENSIONS__
+ for ac_arg in "" -qlanglvl=ansi -std1 "-Ae -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+ do
+   CC="$ac_save_CC $ac_arg"
+   AC_TRY_COMPILE(
+ [#include <stdarg.h>
+ #include <stdio.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ /* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
+ struct buf { int x; };
+ FILE * (*rcsopen) (struct buf *, struct stat *, int);
+ static char *e (p, i)
+      char **p;
+      int i;
+ {
+   return p[i];
+ }
+ static char *f (char * (*g) (char **, int), char **p, ...)
+ {
+   char *s;
+   va_list v;
+   va_start (v,p);
+   s = g (p, va_arg (v,int));
+   va_end (v);
+   return s;
+ }
+ int test (int i, double x);
+ struct s1 {int (*f) (int a);};
+ struct s2 {int (*f) (double a);};
+ int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+ int argc;
+ char **argv;
+ ], [
+ return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
+ ],
+ [am_cv_prog_cc_stdc="$ac_arg"; break])
+ done
+ CC="$ac_save_CC"
+ ])
+ if test -z "$am_cv_prog_cc_stdc"; then
+   AC_MSG_RESULT([none needed])
+ else
+   AC_MSG_RESULT($am_cv_prog_cc_stdc)
+ fi
+ case "x$am_cv_prog_cc_stdc" in
+   x|xno) ;;
+   *) CC="$CC $am_cv_prog_cc_stdc" ;;
+ esac
+ ])
+ 



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]