Thread View: gnu.gcc.bug
1 messages
1 total messages
Started by Howard Weiss
Wed, 15 Apr 1992 06:55
Re: GCC 2.1 on ISC UNIX
Author: Howard Weiss
Date: Wed, 15 Apr 1992 06:55
Date: Wed, 15 Apr 1992 06:55
1975 lines
20757 bytes
20757 bytes
> No one can tell what is happening unless you follow the instructions
> under "how to report a bug" and send us the CPP-processed input file.
Sorry about that!
Lets try again.... I have compiled GCC 2.1 on a Gateway 2000 386/25
running Interactive UNIX version 2.2 (SysV r3.2). The compilation was
accomplished using "configure --host=i386-isc --target=i386-isc". The
only change I made to the Makefile was to remove any use of the POSIX
libraries on loading the first generation of the code (compiling with
the native C compiler) because I am running a older version of the
compiler and I do not have the posix libs (libposix.a). I have
attached to this message a copy of the Makefile that was used to
compile the ntp code using GCC 1.39 on this same machine with same
version of the operating system. I have also attached the output of
the preprocessor using the -E switch. In compiling the ntp code -
consisting of ntp.c and ntpsubs.c - ntp.c compiles succesfully, but I
get the following message when compiling ntpsubs.c:
gcc: Internal compiler error: program cc1 got fatal signal 6.
Since my first (incomplete) message, I have found that if I compile
ntpsubs.c with the "-msoft-float" switch, I do not get the fatal
signal, the code compiles, and runs!
Howard Weiss
------------------------------------------
#######
##### Makefile I Used to build the code with gcc - only using ntp rules
#######
#
# $Source: /usr/users/louie/ntp/RCS/Makefile,v $ $Revision: 3.4.1.7 $ $Date: 89/05/18 12:43:32 $
#
# $Log: Makefile,v $
# Revision 3.4.1.7 89/05/18 12:43:32 louie
# Add preliminary support of NeXT machine, new floating point bug work-around
# and reference clock support.
#
# Revision 3.4.1.6 89/05/03 15:08:06 louie
# In the Makefile, remove references to the readclock.c module.
#
# Revision 3.4.1.5 89/04/10 15:54:19 louie
# Add dependency for ntpd.o on ntp.h so things sorta work even without doing a
# "make depend". Trash "ci" rule.
#
# Revision 3.4.1.4 89/04/07 18:04:14 louie
# Add definition of NOSWAP for Ultrix systems.
#
# Revision 3.4.1.3 89/03/29 12:21:27 louie
# Don't bother to create the Version file for the distribution any longer.
# Define SUN_FLT_BUG rather than just 'sun' to get the a fix for a floating
# point problem in ntpsubs; apparantly the DECSTATION 3100 also has the
# same problem.
#
# Revision 3.4.1.2 89/03/22 18:25:14 louie
# patch3: Use new and improved RCS headers.
#
# Revision 3.4.1.1 89/03/20 00:01:24 louie
# patch1: Add LIBS macro to Makefile directives which link ntp, ntpdc, ntpd and
# patch1: test programs.
# patch1:
# patch1: Add symbolic version identifier to Makefile install targets for
# patch1: proper directory name.
#
# Revision 3.4 89/03/17 18:36:37 louie
# Latest test release.
#
# Revision 3.3.1.1 89/03/17 18:21:17 louie
# Install new binaries only if they differ.
#
# Revision 3.3 89/03/15 14:19:08 louie
# New baseline for next release.
#
# Revision 3.2.1.2 89/03/15 13:42:36 louie
# Updated distribution directory.
#
# Revision 3.2.1.1 89/03/10 11:23:21 louie
# Repair a bunch of typos in the Makefile
#
# Revision 3.2 89/03/07 18:19:37 louie
# New version of UNIX NTP daemon and software based on the 6 March 1989
# draft of the new NTP specification.
#
# Revision 3.1.1.1 89/02/15 09:09:47 louie
# Applied fixes from bug reports. Makefile now runs the ntest program to
# verify that certain arithmetic operations are done correctly on the
# host that the code is being compiled on.
#
#
#
DESTDIR=
INCPATH=
LDFLAGS=
BINDIR=/usr/local/etc
LINKDIR=/etc
LIBS=-linet
VERS=3.4
#CC=gcc -g -W -Wall
CC=gcc -g -W
INSTALL= install -c
#
# FEATURES include:
# DEBUG - include DEBUG code
# BROADCAST_NTP - experimental support for broadcast NTP
# XADJTIME2 - experimental support for second-order clock adjustment
# system call.
# SETTICKADJ - attempt to modify kernel's `tickadj' variable at run time.
# REFCLOCK - define if you have a reference clock attached to your
# machine. (untested by UMD)
# PSTI - define along with REFCLOCK if you have a PSTI clock attached
# that you'd like to use a a reference clock.
# XTAL=0 - for line freq clock, or
# XTAL=1 for crystal controlled clock (default)
# LOG_NTP=foo - to change the syslog facility. You could specify
# something like -DLOG_NTP=LOG_LOCAL3 to log into the
# LOG_LOCAL3 syslog facility
# NOSWAP - allow use of plock() to prevent swapping
#
#FEATURES= -DBROADCAST_NTP -DSETTICKADJ -DDEBUG
#FEATURES= -DSETTICKADJ -DDEBUG -DREFCLOCK -DPSTI
FEATURES= -DSETTICKADJ -DDEBUG -DREFCLOCK -DNO_ASM #no_asm for ISC
# for 4.3 BSD
DEFINES=
# for Sun
#DEFINES= -DSUN_FLT_BUG
# for Ultrix 2.0/2.2
# don't forget to fix the broken definition of inet_addr in netdb.h
# it should be declared as a u_long not a in_addr (the doc is wrong also)
# VAX_COMPILER_FLT_BUG is defined for pcc which doesn't know how to
# convert an unsigned long into a float/double
#DEFINES= -DVAX_COMPILER_FLT_BUG -DNOSWAP
#
# for a NeXT system, define these pre-processor symbols.
#DEFINES=-DSUN_FLT_BUG -DGENERIC_UNS_BUG
CFLAGS= -O ${DEFINES} ${FEATURES} ${INCPATH}
#
# Header files
#
HDRS= ntp.h patchlevel.h
# Source files
#
NTPDSRC= ntpd.c ntpsubs.c ntp_proto.c ntp_sock.c ntp_adjust.c read_local.c \
read_psti.c
SRCS= ntp.c ntpdc.c ${NTPDSRC}
# Object files
#
NTPDOBJ= ntpd.o ntpsubs.o ntp_proto.o ntp_sock.o ntp_adjust.o read_local.o \
read_psti.o
OBJS= ntp.o ntpdc.o ${NTPDOBJ}
DIST= README Makefile man ${SRCS} ${HDRS} ntp.conf test.c extract.pl stat.pl
PROGS= ntp ntpd ntpdc ntest
all: ${PROGS}
@./ntest
ntp: ntp.o ntpsubs.o
${CC} ${LDFLAGS} -o ntp ntp.o ntpsubs.o ${LIBS}
ntpd: ${NTPDOBJ}
${CC} ${LDFLAGS} -o ntpd ${NTPDOBJ} ${LIBS}
ntpdc: ntpdc.o
${CC} ${LDFLAGS} -o ntpdc ntpdc.o ${LIBS}
ntest: test.o ntpsubs.o
${CC} ${LDFLAGS} -o ntest test.o ntpsubs.o ${LIBS}
sock_test: ntp_sock.c
${CC} ${LDFLAGS} -DTEST -o sock_test ntp_sock.c ${LIBS}
${OBJS}: ntp.h Makefile
ntpd.o: patchlevel.h
install: ${DESTDIR}${BINDIR}/ntpd ${DESTDIR}${BINDIR}/ntp ${DESTDIR}${BINDIR}/ntpdc ntest
@./ntest
#
# If you don't want a symlink to the daemon, comment out the next line
# make ${MFLAGS} DESTDIR=${DESTDIR} install-link
${DESTDIR}${BINDIR}/ntpd: ntpd
${INSTALL} ntpd ${DESTDIR}${BINDIR}/ntpd
${DESTDIR}${BINDIR}/ntp: ntp
${INSTALL} ntp ${DESTDIR}${BINDIR}/ntp
${DESTDIR}${BINDIR}/ntpdc: ntpdc
${INSTALL} ntpdc ${DESTDIR}${BINDIR}/ntpdc
install-man:
cd man; make ${MFLAGS} DESTDIR=${DESTDIR} install
install-link:
rm -f ${BINDIR}/${LINKDIR}/ntpd
ln -s ${BINDIR}/ntpd ${DESTDIR}/${LINKDIR}/ntpd
print:
enscript -2r -p - Makefile ${HDRS} ${SRCS} | qpr -q lps40
clean:
@rm -f *.o *~ core ${PROGS} ntp.tar ntest sock_test
cd man; make ${MFLAGS} DESTDIR=${DESTDIR} clean
lint:
lint -bac ${DEFINES} ${NTPDSRC}
dist: ntp.tar.Z
mv ntp.tar.Z /usr/ftp/pub/ntp.${VERS}/ntp.tar.Z
test-dist: ntp.tar.Z
mv ntp.tar.Z /usr/ftp/pub/ntp.${VERS}/ntp-test.tar.Z
ntp.tar.Z: ${DIST}
rm -f ntp.tar ntp.tar.Z
tar cf ntp.tar ${DIST}
compress ntp.tar
depend:
mkdep $(CFLAGS) $(SRCS)
# DO NOT DELETE THIS LINE -- mkdep uses it.
# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
--------------------------------------------------------------------
/***********************************************************************/
/* Output from gcc 2.1 using the above makefile compilation args */
/* Used -E option. */
/***********************************************************************/
# 1 "ntpsubs.c"
static char *RCSid = "$Source: /usr/users/louie/ntp/RCS/ntpsubs.c,v $ $Revision: 3.4.1.3 $ $Date: 89/05/18 18:33:50 $";
# 1 "/usr/include/stdio.h" 1 3
#ident "@(#)stdio.h 2.3 - 88/05/27"
typedef struct {
int _cnt;
unsigned char *_ptr;
unsigned char *_base;
char _flag;
char _file;
} FILE;
extern FILE _iob[60 ];
extern FILE *fopen(), *fdopen(), *freopen(), *popen(), *tmpfile();
extern long ftell();
extern void rewind(), setbuf();
extern char *ctermid(), *cuserid(), *fgets(), *gets(), *tempnam(), *tmpnam();
extern int fclose(), fflush(), fread(), fwrite(), fseek(), fgetc(),
getw(), pclose(), printf(), fprintf(), sprintf(),
vprintf(), vfprintf(), vsprintf(), fputc(), putw(),
puts(), fputs(), scanf(), fscanf(), sscanf(),
setvbuf(), system(), ungetc();
extern unsigned char *_bufendtab[];
# 45 "ntpsubs.c" 2
# 1 "/usr/include/sys/types.h" 1 3
#ident "@(#)types.h 2.13 - 89/07/14"
typedef struct { int r[1]; } * physadr;
typedef long daddr_t;
typedef char * caddr_t;
typedef unsigned char unchar;
typedef unsigned short ushort;
typedef unsigned int uint;
typedef unsigned long ulong;
typedef ushort ino_t;
typedef short cnt_t;
typedef long time_t;
typedef int label_t[6];
typedef short dev_t;
typedef long off_t;
typedef unsigned long paddr_t;
typedef int key_t;
typedef unsigned char use_t;
typedef short sysid_t;
typedef short index_t;
typedef short lock_t;
typedef unsigned int size_t;
typedef ushort sel_t;
# 58 "/usr/include/sys/types.h" 3
typedef char * faddr_t;
# 82 "/usr/include/sys/types.h" 3
# 46 "ntpsubs.c" 2
# 1 "/usr/include/sys/param.h" 1 3
#ident "@(#)param.h 2.3 - 88/05/27"
# 1 "/usr/include/sys/fs/s5param.h" 1
#ident "@(#)s5param.h 2.3 - 88/05/27"
# 39 "/usr/include/sys/fs/s5param.h"
# 69 "/usr/include/sys/fs/s5param.h"
# 84 "/usr/include/sys/fs/s5param.h"
# 21 "/usr/include/sys/param.h" 2 3
# 47 "ntpsubs.c" 2
# 1 "/usr/include/sys/time.h" 1 3
#ident "@(#)time.h 1.1 - 88/04/18"
struct timeval {
long tv_sec;
long tv_usec;
};
struct timezone {
int tz_minuteswest;
int tz_dsttime;
};
struct itimerval {
struct timeval it_interval;
struct timeval it_value;
};
# 1 "/usr/include/time.h" 1 3
#ident "@(#)time.h 2.3 - 88/05/27"
struct tm {
int tm_sec;
int tm_min;
int tm_hour;
int tm_mday;
int tm_mon;
int tm_year;
int tm_wday;
int tm_yday;
int tm_isdst;
};
extern struct tm *gmtime(), *localtime();
extern char *ctime(), *asctime();
int cftime(), ascftime();
extern void tzset();
extern long timezone, altzone;
extern int daylight;
extern char *tzname[];
# 58 "/usr/include/sys/time.h" 2 3
# 48 "ntpsubs.c" 2
# 1 "/usr/include/sys/uio.h" 1 3
#ident "@(#)uio.h 1.2 - 88/04/07"
struct iovec {
caddr_t iov_base;
int iov_len;
};
struct uio {
struct iovec *uio_iov;
int uio_iovcnt;
off_t uio_offset;
int uio_segflg;
int uio_resid;
};
enum uio_rw { UIO_READ, UIO_WRITE };
# 49 "ntpsubs.c" 2
# 1 "/usr/include/sys/socket.h" 1 3
# 1 "/usr/include/sys/bsdtypes.h" 1 3
#ident "@(#)bsdtypes.h 1.6 - 89/05/05"
typedef unsigned char u_char;
typedef unsigned short u_short;
typedef unsigned int u_int;
typedef unsigned long u_long;
typedef unsigned short uid_t;
typedef unsigned short gid_t;
typedef unsigned long t_time;
typedef long fd_mask;
typedef struct fd_set {
fd_mask fds_bits[(((256 )+(( (sizeof(fd_mask) * 8 ) )-1))/( (sizeof(fd_mask) * 8 ) )) ];
} fd_set;
# 9 "/usr/include/sys/socket.h" 2 3
#ident "@(#)socket.h 1.1 - 88/04/06"
struct linger {
int l_onoff;
int l_linger;
};
struct sockaddr {
u_short sa_family;
char sa_data[14];
};
struct sockproto {
u_short sp_family;
u_short sp_protocol;
};
struct msghdr {
caddr_t msg_name;
int msg_namelen;
struct iovec *msg_iov;
int msg_iovlen;
caddr_t msg_accrights;
int msg_accrightslen;
};
# 50 "ntpsubs.c" 2
# 1 "/usr/include/netinet/in.h" 1 3
#ident "@(#)in.h 2.1 - 89/04/21"
struct in_addr {
u_long s_addr;
};
struct sockaddr_in {
short sin_family;
u_short sin_port;
struct in_addr sin_addr;
char sin_zero[8];
};
# 121 "/usr/include/netinet/in.h" 3
# 184 "/usr/include/netinet/in.h" 3
u_short ntohs(), htons();
u_long ntohl(), htonl();
struct inetopt {
short len;
ushort name;
ushort level;
short fill;
union inetoptval {
short sval;
int ival;
long lval;
caddr_t *cval;
unchar vval[1];
} value;
};
# 51 "ntpsubs.c" 2
# 1 "/usr/include/arpa/inet.h" 1 3
#ident "@(#)inet.h 2.1 - 89/04/21"
unsigned long inet_addr();
char *inet_ntoa();
struct in_addr inet_makeaddr();
unsigned long inet_network();
# 52 "ntpsubs.c" 2
# 1 "/usr/include/errno.h" 1 3
#ident "@(#)errno.h 2.3 - 88/05/27"
# 1 "/usr/include/sys/errno.h" 1 3
#ident "@(#)errno.h 2.11 - 89/06/09"
extern int errno;
# 14 "/usr/include/errno.h" 2 3
extern int errno;
# 53 "ntpsubs.c" 2
# 1 "/usr/include/syslog.h" 1 3
#ident "@(#)syslog.h 1.1 - 89/04/21"
# 54 "ntpsubs.c" 2
# 1 "ntp.h" 1
struct intf {
int fd;
char *name;
struct sockaddr_in sin;
struct sockaddr_in bcast;
struct sockaddr_in mask;
int uses;
int if_flags;
};
extern struct intf addrs[];
extern int nintf;
struct list {
struct ntp_peer *head;
struct ntp_peer *tail;
int members;
};
struct l_fixedpt {
u_long int_part;
u_long fraction;
};
struct s_fixedpt {
u_short int_part;
u_short fraction;
};
struct ntpdata {
u_char status;
u_char stratum;
u_char ppoll;
int precision:8;
struct s_fixedpt distance;
struct s_fixedpt dispersion;
u_long refid;
struct l_fixedpt reftime;
struct l_fixedpt org;
struct l_fixedpt rec;
struct l_fixedpt xmt;
};
struct ntp_peer {
struct ntp_peer *next, *prev;
struct sockaddr_in src;
int flags;
int sock;
u_char leap;
u_char hmode;
u_char stratum;
u_char ppoll;
u_char hpoll;
short precision;
struct s_fixedpt distance;
struct s_fixedpt dispersion;
u_long refid;
struct l_fixedpt reftime;
struct l_fixedpt org;
struct l_fixedpt rec;
struct l_fixedpt xmt;
u_long reach;
u_long valid;
u_long timer;
long stopwatch;
struct filter {
short samples;
double offset[8 ];
double delay[8 ];
} filter;
double estdelay;
double estoffset;
double estdisp;
u_long pkt_sent;
u_long pkt_rcvd;
u_long pkt_dropped;
};
struct sysdata {
u_char leap;
u_char stratum;
short precision;
struct s_fixedpt distance;
struct s_fixedpt dispersion;
u_long refid;
struct l_fixedpt reftime;
int hold;
struct ntp_peer *peer;
int maxpeers;
u_char filler;
};
struct clockinfo {
u_long net_address;
u_long my_address;
u_short port;
u_short flags;
u_long pkt_sent;
u_long pkt_rcvd;
u_long pkt_dropped;
u_long timer;
u_char leap;
u_char stratum;
u_char ppoll;
int precision:8;
u_char hpoll;
u_char filler1;
u_short reach;
long estdisp;
long estdelay;
long estoffset;
u_long refid;
struct l_fixedpt reftime;
struct info_filter {
short index;
short filler;
long offset[8 ];
long delay[8 ];
} info_filter;
};
struct ntpinfo {
u_char version;
u_char type;
u_char count;
u_char seq;
u_char npkts;
u_char peers;
u_char fill3;
u_char fill4;
};
# 56 "ntpsubs.c" 2
extern int errno;
double
ul_fixed_to_double(t)
struct l_fixedpt *t;
{
double a, b;
# 85 "ntpsubs.c"
a = (unsigned long) ntohl(t->fraction);
a = a / (4.294967296e9);
b = (unsigned long) ntohl(t->int_part);
return (a + b);
}
# 136 "ntpsubs.c"
double
s_fixed_to_double(t)
struct s_fixedpt *t;
{
double a;
if (ntohs(t->int_part) & 0x8000) {
a = ntohs(~t->fraction & 0xFFFF);
a = a / 65536.0;
a += ntohs(~t->int_part & 0xFFFF);
a = -a;
} else {
a = ntohs(t->fraction);
a = a / 65536.0;
a += ntohs(t->int_part);
}
return (a);
}
void
double_to_l_fixed(t, value)
struct l_fixedpt *t;
double value;
{
double temp;
if (value >= (double) 0.0) {
t->int_part = value;
temp = value - t->int_part;
temp *= 4.294967296e9;
t->fraction = temp;
t->int_part = htonl(t->int_part);
t->fraction = htonl(t->fraction);
} else {
value = -value;
t->int_part = value;
temp = value - t->int_part;
temp *= 4.294967296e9;
t->fraction = temp;
t->int_part = htonl(~t->int_part);
t->fraction = htonl(~t->fraction);
}
}
void
double_to_s_fixed(t, value)
struct s_fixedpt *t;
double value;
{
double temp;
if (value >= (double) 0.0) {
t->int_part = value;
temp = value - t->int_part;
temp *= 65536.0;
t->fraction = temp;
t->int_part = htons(t->int_part);
t->fraction = htons(t->fraction);
} else {
value = -value;
t->int_part = value;
temp = value - t->int_part;
temp *= 65536.0;
t->fraction = temp;
t->int_part = htons(~t->int_part);
t->fraction = htons(~t->fraction);
}
}
# 227 "ntpsubs.c"
tstamp(stampp, tvp)
struct l_fixedpt *stampp;
struct timeval *tvp;
{
stampp->int_part = ntohl((u_long) (2208988800 + tvp->tv_sec));
stampp->fraction = ntohl((u_long) ((float) tvp->tv_usec * 4294.967295));
}
char *
ntoa (in_addr)
struct in_addr in_addr;
{
static int i = 0;
static char bufs[8][20];
unsigned char *p = (unsigned char *) &in_addr.s_addr;
i = (i + 1) % (sizeof bufs / sizeof bufs[0]);
sprintf (bufs[i], "%d.%d.%d.%d", p[0], p[1], p[2], p[3]);
return bufs[i];
}
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads