Xref: utzoo gnu.gcc:569 gnu.g++:199 Path: utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!apple!ames!elroy!ucla-cs!uci-ics!schmidt From: schmidt@ics.uci.edu (Doug Schmidt) Newsgroups: gnu.gcc,gnu.g++ Subject: Re: GPERF 1.7 now available Message-ID: <16122@paris.ics.uci.edu> Date: 30 May 89 03:52:13 GMT References: <16099@paris.ics.uci.edu> Sender: news@paris.ics.uci.edu Reply-To: Doug Schmidt Distribution: gnu Organization: University of California at Irvine: ICS Dept. Lines: 106 In article tale@pawl.rpi.edu writes: ++ This is what I got as I tried to build it. I'm using G++ 1.35.1- and ++ everything was fine up to ... ++ ++ Script started on Mon May 29 21:33:34 1989 ++ /appl/life1/gnu/g++/libg++/gperf ++ imagine:gnu (1) make ++ (cd src; make; mv gperf ..) ++ g++ -v -g -O -fmemoize-lookups -fsave-memoized -fchar-charconst -finline-functions -fstrength-reduce -c readline.cc ++ g++ version 1.35.1- ++ /appl/life1/gnu/lib/gcc-cpp -+ -v -undef -D__GNU__ -D__GNUG__ -D__cplusplus -Dmc68000 -Dsun -Dunix -D__mc68000__ -D__sun__ -D__unix__ -D__OPTIMIZE__ -Dmc68020 readline.cc /tmp/cca14064.cpp ++ GNU CPP version 1.35 ++ /appl/life1/gnu/lib/gcc-cc1plus /tmp/cca14064.cpp -quiet -dumpbase readline.cc -fmemoize-lookups -fsave-memoized -fchar-charconst -finline-functions -fstrength-reduce -opt -version -G -o /tmp/cca14064.s ++ GNU C++ version 1.35.1- (68k, MIT syntax) compiled by GNU C version 1.35. ++ In method struct Read_Line *Read_Line::Read_Line (struct _iobuf * (= ( & _iob )), int (= 1024 )): ++ readline.cc:57: no member function `Read_Line::op$new_expr' ++ make[1]: *** Error 1 ++ mv: gperf: Cannot access: No such file or directory ++ make: *** Error 1 (ignored) ++ (cd tests; make GPERF=../gperf) ++ performing some tests of the perfect hash generator ++ gcc -c -O test.c ++ ../gperf -p -o c.gperf > cinset.c ++ /bin/sh: ../gperf: not found ++ make[1]: *** Error 1 ++ make: *** Error 1 (ignored) ++ ++ script done on Mon May 29 21:34:05 1989 Sigh. I'm afraid that my version of GNU G++ is more recent than g++ 1.35.1-. Michael fixed a bug with declaring `global operator new' as a class friend, but it looks like this fix didn't make it into your G++ version (if you check out gperf's ChangeLog you'll see this global operator new feature has been included/removed/included several times recently). If you don't feel like installing a new GNU G++ here are some patches to the G++ version of GPERF that fix the problem. Alternatively, you can get the C version of gperf (that should work fine either with GCC or your friendly neighborhood cc compiler). Sorry for the inconvenience! Doug ---------------------------------------- *** readline.cc~ Thu May 25 14:17:44 1989 --- readline.cc Mon May 29 20:45:50 1989 *************** *** 27,33 **** strings are allocated. */ static inline void * ! operator new (long size) { char *temp; --- 27,33 ---- strings are allocated. */ static inline void * ! new_string (long size) { char *temp; *************** *** 83,89 **** c = (chunks * chunk_size + bufptr - buf) + 1; ! if (ptr = new char[c]) { for (*(ptr += (c - 1)) = '\0'; bufptr != buf; *--ptr = *--bufptr) --- 83,89 ---- c = (chunks * chunk_size + bufptr - buf) + 1; ! if (ptr = new_string (c)) { for (*(ptr += (c - 1)) = '\0'; bufptr != buf; *--ptr = *--bufptr) *** readline.h~ Thu May 25 14:00:38 1989 --- readline.h Mon May 29 20:44:40 1989 *************** *** 29,35 **** class Read_Line { ! friend void *operator new (long size); private: char *readln_aux (int chunks); FILE *fp; /* FILE pointer to the input stream. */ --- 29,35 ---- class Read_Line { ! friend void *new_string (long size); private: char *readln_aux (int chunks); FILE *fp; /* FILE pointer to the input stream. */ -- On a clear day, under blue skies, there is no need to seek. And asking about Buddha +------------------------+ Is like proclaiming innocence, | schmidt@ics.uci.edu | With loot in your pocket. | office: (714) 856-4043 |