[RFC] Use HAVE_LONGLONG instead of __GNUC__ to check for long long support.

Manoj Iyer manjo@austin.ibm.com
Mon Apr 18 22:41:00 GMT 2005


Here is a patch to use HAVE_LONGLONG instead of using __GNUC__ for
checking for long long support in compiler. When using a non-gnu compiler
(xlc), natural64, signed64 and unsigned64 are undefined. Please review
patch and approve for commit.


2005-04-18  Manoj Iyer  <manjo@austin.ibm.com>
	* configure.ac: Added check for long long.
	* config.in: Added define for HAVE_LONGLONG.
	* configure: Regenerated.
	* words.h: Modified logic to check for HAVE_LONGLONG instead of
	__GNUC__, added config.h header file.


diff -Naurp src/sim/ppc/config.in new/src/sim/ppc/config.in
--- src/sim/ppc/config.in	2004-09-24 13:39:41.000000000 -0500
+++ new/src/sim/ppc/config.in	2005-04-18 18:03:37.000000000 -0500
@@ -298,6 +298,9 @@
 /* Define if you have the <locale.h> header file.  */
 #undef HAVE_LOCALE_H

+/* Define if compiler supports long long type. */
+#undef HAVE_LONGLONG
+
 /* Define if you have the <malloc.h> header file.  */
 #undef HAVE_MALLOC_H

diff -Naurp src/sim/ppc/configure.ac new/src/sim/ppc/configure.ac
--- src/sim/ppc/configure.ac	2005-01-12 10:23:21.000000000 -0600
+++ new/src/sim/ppc/configure.ac	2005-04-18 18:01:58.000000000 -0500
@@ -681,6 +681,10 @@ if test $ac_cv_struct_statfs = yes; then
 	    [Define if struct statfs is defined in <sys/mount.h>])
 fi

+dnl check for long long
+AC_CHECK_TYPE(long long,
+   AC_DEFINE(HAVE_LONGLONG, 1, [does compiler supports long long]),)
+
 dnl Figure out if /dev/zero exists or not
 sim_devzero=""
 AC_MSG_CHECKING(for /dev/zero)
diff -Naurp src/sim/ppc/words.h new/src/sim/ppc/words.h
--- src/sim/ppc/words.h	1999-04-15 20:35:12.000000000 -0500
+++ new/src/sim/ppc/words.h	2005-04-18 18:04:40.000000000 -0500
@@ -43,6 +43,10 @@

 */

+/* include configure generated definitions */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif

 /* bit based */
 typedef char natural8;
@@ -57,7 +61,7 @@ typedef unsigned char unsigned8;
 typedef unsigned short unsigned16;
 typedef unsigned long unsigned32;

-#ifdef __GNUC__
+#ifdef HAVE_LONGLONG
 typedef long long natural64;
 typedef signed long long signed64;
 typedef unsigned long long unsigned64;


Thanks
-----
manjo
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ Cogito ergo sum +
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



More information about the Gdb-patches mailing list