Article View: gnu.gcc.bug
Article #5934inconsistent headers on MIPS
From: Jim Van Zandt
Date: Fri, 31 Jan 1997 00:00
Date: Fri, 31 Jan 1997 00:00
1049 lines
9229 bytes
9229 bytes
On "IRIX bmd1 5.3 11091811 IP19 mips", gcc warns that float.h and
limits.h both define DBL_MAX.
Compiling this program:
#include <float.h>
#include <limits.h>
#include <stdio.h>
main(){printf("hello, world\n");}
generates these warnings:
gcc -o try try.c
In file included from /usr/gnu/lib/gcc-lib/mips-sgi-irix5.3/2.7.2.1/include/limits.h:119,
from /usr/gnu/lib/gcc-lib/mips-sgi-irix5.3/2.7.2.1/include/syslimits.h:7,
from /usr/gnu/lib/gcc-lib/mips-sgi-irix5.3/2.7.2.1/include/limits.h:11,
from try.c:2:
/usr/include/limits.h:152: warning: `DBL_MAX' redefined
/usr/gnu/lib/gcc-lib/mips-sgi-irix5.3/2.7.2.1/include/float.h:63: warning: this is the location of the previous definition
/usr/include/limits.h:153: warning: `DBL_MIN' redefined
/usr/gnu/lib/gcc-lib/mips-sgi-irix5.3/2.7.2.1/include/float.h:54: warning: this is the location of the previous definition
/usr/include/limits.h:156: warning: `FLT_MAX' redefined
/usr/gnu/lib/gcc-lib/mips-sgi-irix5.3/2.7.2.1/include/float.h:35: warning: this is the location of the previous definition
/usr/include/limits.h:157: warning: `FLT_MIN' redefined
/usr/gnu/lib/gcc-lib/mips-sgi-irix5.3/2.7.2.1/include/float.h:26: warning: this is the location of the previous definition
Compilation finished at Fri Jan 31 08:19:25
This is my version of gcc:
$gcc -v
Reading specs from /usr/gnu/lib/gcc-lib/mips-sgi-irix5.3/2.7.2.1/specs
gcc version 2.7.2.1
This is how I configured it:
tar -xzf ../pub/gcc-2.7.2.1*
tar -xzf ../pub/g77*
mv g77*/* gcc-2.7.2.1
cd gcc
patch -p1 -s <f/gbe/2.7.2.diff
./configure --prefix=/usr/gnu --with-gnu-as --with-stabs
make LANGUAGES=c
make stage1
make CC="stage1/xgcc -Bstage1/" CFLAGS="-g -O2"
make install CC="stage2/xgcc -Bstage2/" CFLAGS="-g -O"
This change to a gcc header file eliminates the warning:
--- lib/gcc-lib/mips-sgi-irix5.3/2.7.2.1/include/limits.h.orig Fri Jan 31 08:27:58 1997
+++ lib/gcc-lib/mips-sgi-irix5.3/2.7.2.1/include/limits.h Fri Jan 31 08:21:54 1997
@@ -109,6 +109,11 @@
#else /* not _GCC_LIMITS_H_ */
#ifdef _GCC_NEXT_LIMITS_H
+ /* eliminate "warning: `DBL_MAX' redefined" */
+#undef DBL_MAX
+#undef DBL_MIN
+#undef FLT_MAX
+#undef FLT_MIN
#include_next <limits.h> /* recurse down to the real one */
#endif
The preprocessor output is shown below.
- Jim Van Zandt
$gcc -E try.c
# 1 "try.c"
# 1 "/usr/gnu/lib/gcc-lib/mips-sgi-irix5.3/2.7.2.1/include/float.h" 1 3
# 1 "try.c" 2
# 1 "/usr/gnu/lib/gcc-lib/mips-sgi-irix5.3/2.7.2.1/include/limits.h" 1 3
# 1 "/usr/gnu/lib/gcc-lib/mips-sgi-irix5.3/2.7.2.1/include/syslimits.h" 1 3
# 1 "/usr/gnu/lib/gcc-lib/mips-sgi-irix5.3/2.7.2.1/include/limits.h" 1 3
# 109 "/usr/gnu/lib/gcc-lib/mips-sgi-irix5.3/2.7.2.1/include/limits.h" 3
# 1 "/usr/include/limits.h" 1 3
#ident "$Revision: 7.27 $"
# 1 "/usr/include/sgidefs.h" 1 3
#ident "$Revision: 1.5 $"
typedef int __int32_t;
typedef unsigned __uint32_t;
typedef long long __int64_t;
typedef unsigned long long __uint64_t;
# 151 "/usr/include/sgidefs.h" 3
typedef __int32_t __psint_t;
typedef __uint32_t __psunsigned_t;
typedef __int32_t __scint_t;
typedef __uint32_t __scunsigned_t;
# 28 "/usr/include/limits.h" 2 3
typedef union _h_val {
unsigned long i[2];
double d;
} _h_val;
extern const _h_val __huge_val;
# 117 "/usr/gnu/lib/gcc-lib/mips-sgi-irix5.3/2.7.2.1/include/limits.h" 2 3
# 7 "/usr/gnu/lib/gcc-lib/mips-sgi-irix5.3/2.7.2.1/include/syslimits.h" 2 3
# 11 "/usr/gnu/lib/gcc-lib/mips-sgi-irix5.3/2.7.2.1/include/limits.h" 2 3
# 120 "/usr/gnu/lib/gcc-lib/mips-sgi-irix5.3/2.7.2.1/include/limits.h" 3
# 2 "try.c" 2
# 1 "/usr/include/stdio.h" 1 3
#ident "$Revision: 1.49 $"
typedef unsigned int size_t;
typedef long fpos_t;
# 83 "/usr/include/stdio.h" 3
typedef struct
__file_s
{
int _cnt;
unsigned char *_ptr;
unsigned char *_base;
unsigned char _flag;
unsigned char _file;
} FILE;
extern FILE __iob[100 ];
extern FILE *_lastbuf;
extern unsigned char *_bufendtab[];
extern unsigned char _sibuf[], _sobuf[];
extern int remove(const char *);
extern int rename(const char *, const char *);
extern FILE *tmpfile(void);
extern char *tmpnam(char *);
extern int fclose(FILE *);
extern int fflush(FILE *);
extern FILE *fopen(const char *, const char *);
extern FILE *freopen(const char *, const char *, FILE *);
extern void setbuf(FILE *, char *);
extern int setvbuf(FILE *, char *, int, size_t);
extern int fprintf(FILE *, const char *, ...);
extern int fscanf(FILE *, const char *, ...);
extern int printf(const char *, ...);
extern int scanf(const char *, ...);
extern int sprintf(char *, const char *, ...);
extern int sscanf(const char *, const char *, ...);
extern int vfprintf(FILE *, const char *, char *);
extern int vprintf(const char *, char *);
extern int vsprintf(char *, const char *, char *);
extern int fgetc(FILE *);
extern char *fgets(char *, int, FILE *);
extern int fputc(int, FILE *);
extern int fputs(const char *, FILE *);
extern int getc(FILE *);
extern int getchar(void);
extern char *gets(char *);
extern int putc(int, FILE *);
extern int putchar(int);
extern int puts(const char *);
extern int ungetc(int, FILE *);
extern size_t fread(void *, size_t, size_t, FILE *);
#pragma int_to_unsigned fread
extern size_t fwrite(const void *, size_t, size_t, FILE *);
#pragma int_to_unsigned fwrite
extern int fgetpos(FILE *, fpos_t *);
extern int fseek(FILE *, long, int);
extern int fsetpos(FILE *, const fpos_t *);
extern long ftell(FILE *);
extern void rewind(FILE *);
extern void clearerr(FILE *);
extern int feof(FILE *);
extern int ferror(FILE *);
extern void perror(const char *);
extern int __filbuf(FILE *);
extern int __flsbuf(int, FILE *);
extern FILE *fdopen(int, const char *);
extern char *ctermid(char *);
extern int fileno(FILE *);
extern FILE *popen(const char *, const char *);
extern int pclose(FILE *);
extern char *cuserid(char *);
extern char *tempnam(const char *, const char *);
extern int getw(FILE *);
extern int putw(int, FILE *);
extern int system(const char *);
extern char *mktemp(char *);
extern int mkstemp(char *);
extern int setbuffer(FILE *, char *, int);
extern int setlinebuf(FILE *);
extern int __semputc(int, FILE *);
extern int __semgetc(FILE *);
extern int __us_rsthread_stdio;
char *ctermid_r(char *);
void flockfile(FILE *);
int ftrylockfile(FILE *);
void funlockfile(FILE *);
int getc_unlocked(FILE *);
int putc_unlocked(int, FILE *);
int getchar_unlocked(void);
int putchar_unlocked(int);
# 315 "/usr/include/stdio.h" 3
# 3 "try.c" 2
main(){printf("hello, world\n");}
Technical Details
Message-ID:
<199701311356.IAA09151@mbunix.mitre.org>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailShow Full Headers
Complete Article Headers
X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 113d02,2b309866fd0b004c,start X-Google-Attributes: gid113d02,public From: jrv@mbunix.mitre.org (Jim Van Zandt) Subject: inconsistent headers on MIPS Date: 1997/01/31 Message-ID: <199701311356.IAA09151@mbunix.mitre.org> X-Deja-AN: 213449873 sender: bug-gcc-request@prep.ai.mit.edu x-gateway: relay2.UU.NET from bug-gcc to gnu.gcc.bug; Fri, 31 Jan 1997 08:57:24 EST newsgroups: gnu.gcc.bug