ronald@UCDAVIS.EDU (05/29/89)
Here are some patches to make libg++ 1.35.0 compile on under System V. libg++ was compiled by g++ 1.35.0, configured as 'i386v' with my COFF patches. All tests compiled! (with a little filename munging along the way, this is a *lot* better than the 1.34.0 release) These tests fail under i386: tBitString tComplex tFile tFix tFix16 tFix24 tRandom tRational tgwrapper twrapper tCurses More details on the failures in another message. -- Ronald Cole | uucp: cvms!ronald voice: +1 916 895 8321 Senior Software Engineer | internet: csusac!cvms!ronald@ucdavis.edu CVM Systems +---------------------------------------------------- "No sex, please, we're software engineers." - Michael Swaine ---------------------------- starts here ------------------------------- diff -rc2 libg++-1.35.0/g++-include/BitSet.h libg++/g++-include/BitSet.h *** libg++-1.35.0/g++-include/BitSet.h Sun May 7 08:08:54 1989 --- libg++/g++-include/BitSet.h Sun May 28 13:33:31 1989 *************** *** 366,370 **** inline void BitSet::clear() { ! if (rep->len > 0) bzero(rep->s, rep->sz * sizeof(short)); rep->len = rep->virt = 0; } --- 366,375 ---- inline void BitSet::clear() { ! if (rep->len > 0) ! #if defined(i386) ! memset(rep->s, 0, rep->sz * sizeof(short)); ! #else ! bzero(rep->s, rep->sz * sizeof(short)); ! #endif rep->len = rep->virt = 0; } diff -rc2 libg++-1.35.0/g++-include/MPlex.ccP libg++/g++-include/MPlex.ccP *** libg++-1.35.0/g++-include/MPlex.ccP Sat May 13 03:01:39 1989 --- libg++/g++-include/MPlex.ccP Sun May 28 13:35:25 1989 *************** *** 38,42 **** --- 38,46 ---- unsigned msize = (top - base)/_MAP_BITS + 1; map = (unsigned long *) (new long[msize]); + #if defined(i386) + memset((void*)map, 0, msize * sizeof(long)); + #else bzero((void*)map, msize * sizeof(long)); + #endif } *************** *** 69,73 **** --- 73,81 ---- top = base + s; unused = 0; + #if defined(i386) + memset((void*)map, 0, ((top - base)/_MAP_BITS + 1) * sizeof(long)); + #else bzero((void*)map, ((top - base)/_MAP_BITS + 1) * sizeof(long)); + #endif } diff -rc2 libg++-1.35.0/g++-include/Obstack.h libg++/g++-include/Obstack.h *** libg++-1.35.0/g++-include/Obstack.h Sun May 7 08:09:51 1989 --- libg++/g++-include/Obstack.h Sun May 28 13:37:08 1989 *************** *** 127,131 **** --- 127,135 ---- if (nextfree+size > chunklimit) newchunk(size); + #if defined(i386) + memcpy(nextfree, data, size); + #else bcopy(data, nextfree, size); + #endif nextfree += size; } *************** *** 135,139 **** --- 139,147 ---- if (nextfree+size+1 > chunklimit) newchunk(size+1); + #if defined(i386) + memcpy(nextfree, data, size); + #else bcopy(data, nextfree, size); + #endif nextfree += size; *(nextfree)++ = terminator; diff -rc2 libg++-1.35.0/g++-include/RPlex.ccP libg++/g++-include/RPlex.ccP *** libg++-1.35.0/g++-include/RPlex.ccP Sun May 7 08:21:33 1989 --- libg++/g++-include/RPlex.ccP Sun May 28 13:38:55 1989 *************** *** 269,273 **** --- 269,277 ---- maxch *= 2; <T>IChunk** newch = new _<T>IChunk_ptr [maxch]; + #if defined(i386) + memcpy(newch, chunks, fch * sizeof(_<T>IChunk_ptr)); + #else bcopy(chunks, newch, fch * sizeof(_<T>IChunk_ptr)); + #endif delete chunks; chunks = newch; *************** *** 311,315 **** --- 315,323 ---- maxch *= 2; <T>IChunk** newch = new _<T>IChunk_ptr [maxch]; + #if defined(i386) + memcpy(&(newch[lch]), chunks, lch * sizeof(_<T>IChunk_ptr)); + #else bcopy(chunks, &(newch[lch]), lch * sizeof(_<T>IChunk_ptr)); + #endif delete chunks; chunks = newch; diff -rc2 libg++-1.35.0/g++-include/ctype.h libg++/g++-include/ctype.h *** libg++-1.35.0/g++-include/ctype.h Sun May 7 08:10:34 1989 --- libg++/g++-include/ctype.h Sun May 28 13:41:01 1989 *************** *** 14,37 **** static const int _P = 020; static const int _C = 040; static const int _X = 0100; static const int _B = 0200; ! extern char _ctype_[]; ! inline int isalpha(char c) { return ((_ctype_+1)[c]&(_U|_L)); } ! inline int isupper(char c) { return ((_ctype_+1)[c]&_U); } ! inline int islower(char c) { return ((_ctype_+1)[c]&_L); } ! inline int isdigit(char c) { return ((_ctype_+1)[c]&_N); } ! inline int isxdigit(char c) { return ((_ctype_+1)[c]&_X); } ! inline int isspace(char c) { return ((_ctype_+1)[c]&_S); } ! inline int ispunct(char c) { return ((_ctype_+1)[c]&_P); } ! inline int isalnum(char c) { return ((_ctype_+1)[c]&(_U|_L|_N)); } ! inline int isprint(char c) { return ((_ctype_+1)[c]&(_P|_U|_L|_N|_B)); } ! inline int isgraph(char c) { return ((_ctype_+1)[c]&(_P|_U|_L|_N)); } ! inline int iscntrl(char c) { return ((_ctype_+1)[c]&_C); } inline int isascii(char c) { return ((unsigned)(c)<=0177); } inline int toupper(char c) { return ((c)-'a'+'A'); } inline int tolower(char c) { return ((c)-'A'+'a'); } ! inline int toascii(char c) { return ((c)&0177); } #endif _ctype_h --- 14,60 ---- static const int _P = 020; static const int _C = 040; + #if defined(i386) + static const int _B = 0100; + static const int _X = 0200; + #else static const int _X = 0100; static const int _B = 0200; + #endif + + #if defined(i386) + #define CTYPE _ctype + #else + #define CTYPE _ctype_ + #endif ! extern char CTYPE[]; ! inline int isalpha(char c) { return ((CTYPE+1)[c]&(_U|_L)); } ! inline int isupper(char c) { return ((CTYPE+1)[c]&_U); } ! inline int islower(char c) { return ((CTYPE+1)[c]&_L); } ! inline int isdigit(char c) { return ((CTYPE+1)[c]&_N); } ! inline int isxdigit(char c) { return ((CTYPE+1)[c]&_X); } ! inline int isspace(char c) { return ((CTYPE+1)[c]&_S); } ! inline int ispunct(char c) { return ((CTYPE+1)[c]&_P); } ! inline int isalnum(char c) { return ((CTYPE+1)[c]&(_U|_L|_N)); } ! inline int isprint(char c) { return ((CTYPE+1)[c]&(_P|_U|_L|_N|_B)); } ! inline int isgraph(char c) { return ((CTYPE+1)[c]&(_P|_U|_L|_N)); } ! inline int iscntrl(char c) { return ((CTYPE+1)[c]&_C); } inline int isascii(char c) { return ((unsigned)(c)<=0177); } + inline int toascii(char c) { return ((c)&0177); } + #if defined(i386) + inline int _toupper(char c) { return ((CTYPE+258)[c]); } + inline int _tolower(char c) { return ((CTYPE+258)[c]); } + + extern "C" { + + int toupper(int); + int tolower(int); + + } + #else inline int toupper(char c) { return ((c)-'a'+'A'); } inline int tolower(char c) { return ((c)-'A'+'a'); } ! #endif #endif _ctype_h diff -rc2 libg++-1.35.0/g++-include/stdio.h libg++/g++-include/stdio.h *** libg++-1.35.0/g++-include/stdio.h Sun May 7 05:30:07 1989 --- libg++/g++-include/stdio.h Sun May 28 13:47:20 1989 *************** *** 55,59 **** /* check and possibly comment out the following */ ! #ifndef USG #define HAVE_BUFSIZ #endif --- 55,61 ---- /* check and possibly comment out the following */ ! #if defined(i386) ! #define DOES_8TH_BIT ! #else #define HAVE_BUFSIZ #endif *************** *** 66,71 **** --- 68,78 ---- extern struct _iobuf { int _cnt; + # ifdef DOES_8TH_BIT + unsigned char* _ptr; + unsigned char* _base; + # else char* _ptr; char* _base; + # endif # ifdef HAVE_BUFSIZ int _bufsiz; *************** *** 86,92 **** --- 93,105 ---- #define _IOEOF 00020 #define _IOERR 00040 + #if defined(i386) + #define _IOLBF 00100 + #define _IORW 00200 + #define _IOSTRG 00400 + #else #define _IOSTRG 00100 #define _IOLBF 00200 #define _IORW 00400 + #endif #define _IOAPPEND 01000 *************** *** 101,108 **** #define stderr (&_iob[2]) #define getc(p) (--(p)->_cnt>=0?(int)(*(unsigned char*)(p)->_ptr++):_filbuf(p)) #define putc(x,p) (--(p)->_cnt>=0? ((int)((unsigned char)((*(p)->_ptr++=(unsigned)(x))))):_flsbuf((unsigned)(x),p)) - #define clearerr(p) ((p)->_flag &= ~(_IOERR|_IOEOF)) #define getchar() getc(stdin) #define putchar(x) putc(x,stdout) --- 114,127 ---- #define stderr (&_iob[2]) + #ifdef DOES_8TH_BIT + #define getc(p) (--(p)->_cnt>=0?(int)*(p)->_ptr++:_filbuf(p)) + #define putc(x,p) (--(p)->_cnt>=0? (int)(*(p)->_ptr++=(unsigned char)(x)):_flsbuf((unsigned char)(x),(p))) + #define clearerr(p) ((void)((p)->_flag &= ~(_IOERR | _IOEOF))) + #else #define getc(p) (--(p)->_cnt>=0?(int)(*(unsigned char*)(p)->_ptr++):_filbuf(p)) #define putc(x,p) (--(p)->_cnt>=0? ((int)((unsigned char)((*(p)->_ptr++=(unsigned)(x))))):_flsbuf((unsigned)(x),p)) #define clearerr(p) ((p)->_flag &= ~(_IOERR|_IOEOF)) + #endif + #define getchar() getc(stdin) #define putchar(x) putc(x,stdout) diff -rc2 libg++-1.35.0/libconfig.h libg++/libconfig.h *** libg++-1.35.0/libconfig.h Sun May 7 04:52:16 1989 --- libg++/libconfig.h Sun May 28 13:30:51 1989 *************** *** 80,84 **** #ifdef USG #define bzero(src, len) memset((src), 0, (len)) ! #define bcopy(src, dest, len) memcopy((dest), (src), (len)) #define bcmp(s1,s2,n) memcmp((s1),(s2),(n)) #endif --- 80,84 ---- #ifdef USG #define bzero(src, len) memset((src), 0, (len)) ! #define bcopy(src, dest, len) memcpy((dest), (src), (len)) #define bcmp(s1,s2,n) memcmp((s1),(s2),(n)) #endif diff -rc2 libg++-1.35.0/src/File.cc libg++/src/File.cc *** libg++-1.35.0/src/File.cc Sun May 7 05:32:18 1989 --- libg++/src/File.cc Sun May 28 13:30:54 1989 *************** *** 27,31 **** --- 27,33 ---- extern "C" { + #ifndef USG #include <sys/file.h> // needed to determine values of O_RDONLY... + #endif #ifndef sun diff -rc2 libg++-1.35.0/src/Makefile libg++/src/Makefile *** libg++-1.35.0/src/Makefile Sat May 13 10:35:23 1989 --- libg++/src/Makefile Sun May 28 13:30:55 1989 *************** *** 1,3 **** ! # Makefile for g++ library version 1.34.0 # Copyright (C) 1988 Free Software Foundation --- 1,3 ---- ! # Makefile for g++ library version 1.35.0 # Copyright (C) 1988 Free Software Foundation *************** *** 42,45 **** --- 42,46 ---- # gcc flags for c files CFLAGS= -g -O -I$I + #CFLAGS= -g -O -I$I -DUSG # g++ files should have extension .cc *************** *** 116,117 **** --- 117,119 ---- Fix24.cc: $I/Fix24.h $I/File.h CursesWindow.o: $I/curses.h $I/CursesWindow.h + $(GXX) $(GFLAGS) -c $< diff -rc2 libg++-1.35.0/src/Obstack.cc libg++/src/Obstack.cc *** libg++-1.35.0/src/Obstack.cc Thu Mar 30 02:59:52 1989 --- libg++/src/Obstack.cc Sun May 28 13:30:57 1989 *************** *** 24,27 **** --- 24,28 ---- #include <builtin.h> #include <Obstack.h> + #include "libconfig.h" Obstack::Obstack(int size = 4092, int alignment = 4) ---------------------------- ends here -------------------------------