home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD2.mdf / gnu / djgpp / src / libgplus.5 / libgplus / readme.386 < prev    next >
Encoding:
Internet Message Format  |  1993-06-22  |  17.7 KB

  1. Return-Path: ljo@vger.EEAP.CWRU.Edu
  2. Return-Path: <ljo@vger.EEAP.CWRU.Edu>
  3. Received: from vger.EEAP.CWRU.Edu by cygnus.com (4.1/SMI-4.1)
  4.     id AA12995; Sat, 12 Jun 93 07:05:29 PDT
  5. Received:  by vger.EEAP.CWRU.Edu (4.1/CWRU-1.4-client)
  6.     id AA04326; Sat, 12 Jun 93 09:29:22 EDT (from ljo for ljo@r2d2.EEAP.CWRU.Edu)
  7. Message-Id: <9306121329.AA04326@vger.EEAP.CWRU.Edu>
  8. Date: Sat, 12 Jun 93 09:29:22 EDT
  9. From: L Jonas Olsson <ljo@vger.EEAP.CWRU.Edu>
  10. To: bothner@cygnus.com
  11. Cc: ljo@vger.EEAP.CWRU.Edu, ats@bsd386.first.gmd.de
  12. Subject: libg++-2.3.90, complete 386BSD diffs
  13.  
  14.  
  15.  
  16. Hej Per,
  17.  Here are the complete diffs to make libg++-2.3.90 on 386BSD-0.1.
  18. I made it with gcc-2.4.3 snapshot 930604, and it passes all tests.
  19. (that's something new for 386BSD!)
  20.  
  21.  The diffs fixes:
  22.  
  23. - libg++/g++-include/grp.h, libg++/g++-include/memory.h,
  24.   libg++/g++-include/signal.h, libg++/g++-include/stdio.h,
  25.   libg++/g++-include/sys/socket.h, libg++/g++-include/sys/wait.h,
  26.   libg++/g++-include/time.h, libg++/g++-include/unistd.h.
  27.   Made compatible with 386BSD's include files
  28. - libg++/iostream/procbuf.C. Made vfork compatible with 386BSD.
  29. - libg++/iostream/stdio/stdio.h. NET-2 has a special way of
  30.   typedef'ing size_t.
  31. - libg++/src/Complex.h, libg++/src/Complex.cc. Moved the
  32.   multiplication operator into the .cc file. Having it inline
  33.   made tComplex fail.
  34. - libg++/utils/gen-params. For 386BSD we define ${macro_prefix}USE_PROTOS.
  35.   The way it's done is ugly, how should it be done?
  36.  
  37. I think that even though the include file diffs are long they should
  38. be included, as they will not break anything and the number of 386BSD
  39. users is pretty high. The include file diffs are basically the same
  40. as for libg++-2.2 and 2.3.
  41.  
  42. If you still think that the include file diffs are to long, an alternative
  43. could be to include the complete diff file (after some modifications perhaps)
  44. in the distribution. Or in worst case have it be a separate file on prep.
  45.  
  46. Jonas Olsson
  47. ljo@po.cwru.edu
  48.  
  49. diff -rc libg++-2.3.90/libg++/g++-include/grp.h libg++-2.3.90.new/libg++/g++-include/grp.h
  50. *** libg++-2.3.90/libg++/g++-include/grp.h    Wed Nov 18 00:47:13 1992
  51. --- libg++-2.3.90.new/libg++/g++-include/grp.h    Thu Jun 10 23:30:39 1993
  52. ***************
  53. *** 28,34 ****
  54.   extern struct group* fgetgrent(FILE*);
  55.   extern struct group* getgrgid(int);
  56.   extern struct group* getgrnam(const char*);
  57. ! #ifdef __OSF1__
  58.   extern int         setgrent();
  59.   #else
  60.   extern void          setgrent();
  61. --- 28,34 ----
  62.   extern struct group* fgetgrent(FILE*);
  63.   extern struct group* getgrgid(int);
  64.   extern struct group* getgrnam(const char*);
  65. ! #if defined(__OSF1__) || defined (__386BSD__)
  66.   extern int         setgrent();
  67.   #else
  68.   extern void          setgrent();
  69. diff -rc libg++-2.3.90/libg++/g++-include/memory.h libg++-2.3.90.new/libg++/g++-include/memory.h
  70. *** libg++-2.3.90/libg++/g++-include/memory.h    Wed Nov 18 00:47:14 1992
  71. --- libg++-2.3.90.new/libg++/g++-include/memory.h    Thu Jun 10 23:30:39 1993
  72. ***************
  73. *** 15,21 ****
  74.   void*     memmove _G_ARGS((void*, const void*, _G_size_t));
  75.   void*     memset _G_ARGS((void*, int, _G_size_t));
  76.   int       ffs _G_ARGS((int));
  77. ! #ifdef __OSF1__
  78.   int      getpagesize _G_ARGS((void));
  79.   #else
  80.   _G_size_t    getpagesize _G_ARGS((void));
  81. --- 15,21 ----
  82.   void*     memmove _G_ARGS((void*, const void*, _G_size_t));
  83.   void*     memset _G_ARGS((void*, int, _G_size_t));
  84.   int       ffs _G_ARGS((int));
  85. ! #if defined(__OSF1__) || defined(__386BSD__)
  86.   int      getpagesize _G_ARGS((void));
  87.   #else
  88.   _G_size_t    getpagesize _G_ARGS((void));
  89. diff -rc libg++-2.3.90/libg++/g++-include/signal.h libg++-2.3.90.new/libg++/g++-include/signal.h
  90. *** libg++-2.3.90/libg++/g++-include/signal.h    Wed Aug 12 03:44:52 1992
  91. --- libg++-2.3.90.new/libg++/g++-include/signal.h    Thu Jun 10 23:30:39 1993
  92. ***************
  93. *** 45,51 ****
  94.   extern SSignalHandler ssignal _G_ARGS((int sig, SSignalHandler action));
  95.   extern int           gsignal  _G_ARGS((int sig));
  96.   extern int           kill  _G_ARGS((_G_pid_t pid, int sig));
  97. ! extern int           killpg _G_ARGS((int, int));
  98.   extern int           siginterrupt _G_ARGS((int, int));
  99.   extern void         psignal _G_ARGS((unsigned, const char*));
  100.   
  101. --- 45,55 ----
  102.   extern SSignalHandler ssignal _G_ARGS((int sig, SSignalHandler action));
  103.   extern int           gsignal  _G_ARGS((int sig));
  104.   extern int           kill  _G_ARGS((_G_pid_t pid, int sig));
  105. ! #ifndef __386BSD__
  106. ! extern int           killpg _G_ARGS((short int, int));
  107. ! #else
  108. ! extern int           killpg _G_ARGS((_G_pid_t, int));
  109. ! #endif
  110.   extern int           siginterrupt _G_ARGS((int, int));
  111.   extern void         psignal _G_ARGS((unsigned, const char*));
  112.   
  113. diff -rc libg++-2.3.90/libg++/g++-include/stdio.h libg++-2.3.90.new/libg++/g++-include/stdio.h
  114. *** libg++-2.3.90/libg++/g++-include/stdio.h    Fri Apr 16 19:21:13 1993
  115. --- libg++-2.3.90.new/libg++/g++-include/stdio.h    Thu Jun 10 23:30:40 1993
  116. ***************
  117. *** 115,121 ****
  118. --- 115,125 ----
  119.   FILE*  fdopen(int, const char*);
  120.   int    fflush(FILE*);
  121.   int    fgetc(FILE*);
  122. + #ifndef __386BSD__
  123.   char*  fgets _G_ARGS((char*, int, FILE *));
  124. + #else
  125. + char*  fgets _G_ARGS((char*, _G_size_t, FILE *));
  126. + #endif
  127.   FILE*  fopen(const char*, const char*);
  128.   int    fprintf(FILE*, const char* ...);
  129.   int    fputc(int, FILE*);
  130. diff -rc libg++-2.3.90/libg++/g++-include/sys/socket.h libg++-2.3.90.new/libg++/g++-include/sys/socket.h
  131. *** libg++-2.3.90/libg++/g++-include/sys/socket.h    Thu Nov 12 18:55:19 1992
  132. --- libg++-2.3.90.new/libg++/g++-include/sys/socket.h    Thu Jun 10 23:30:40 1993
  133. ***************
  134. *** 19,29 ****
  135.   #define __libgxx_sys_socket_h 1
  136.   
  137.   // void* in select, since different systems use int* or fd_set*
  138.   int       select _G_ARGS((int, void*, void*, void*, struct timeval*));
  139.   
  140. - int       accept _G_ARGS((int, struct sockaddr*, int*));
  141.   int       bind _G_ARGS((int, const void*, int));
  142.   int       connect _G_ARGS((int, struct sockaddr*, int));
  143.   int       getsockname _G_ARGS((int, struct sockaddr*, int*));
  144.   int       getpeername _G_ARGS((int, struct sockaddr*, int*));
  145.   int       getsockopt(int, int, int, void*, int*);
  146. --- 19,36 ----
  147.   #define __libgxx_sys_socket_h 1
  148.   
  149.   // void* in select, since different systems use int* or fd_set*
  150. + int       accept _G_ARGS((int, struct sockaddr*, int*));
  151. + #ifndef __386BSD__
  152.   int       select _G_ARGS((int, void*, void*, void*, struct timeval*));
  153.   
  154.   int       bind _G_ARGS((int, const void*, int));
  155.   int       connect _G_ARGS((int, struct sockaddr*, int));
  156. + #else
  157. + int       select _G_ARGS((int, struct fd_set*, struct fd_set*, struct fd_set*, struct timeval*));
  158. + int       bind _G_ARGS((int, const struct sockaddr *, int));
  159. + int       connect _G_ARGS((int, const struct sockaddr*, int));
  160. + #endif
  161.   int       getsockname _G_ARGS((int, struct sockaddr*, int*));
  162.   int       getpeername _G_ARGS((int, struct sockaddr*, int*));
  163.   int       getsockopt(int, int, int, void*, int*);
  164. ***************
  165. *** 32,48 ****
  166.   int       rcmd _G_ARGS((char**, int, const char*, const char*, const char*, int*));
  167.   #endif
  168.   int       recv(int, void*, int, int);
  169. - int       recvfrom _G_ARGS((int, void*, int, int, void*, int *));
  170.   int       recvmsg(int, struct msghdr*, int);
  171.   int       rexec(char**, int, const char*, const char*, const char*, int*);
  172.   int       rresvport(int*);
  173.   int       send _G_ARGS((int, const void*, int, int));
  174. - int       sendto _G_ARGS((int, const void*, int, int, void*, int));
  175.   int       sendmsg _G_ARGS((int, const struct msghdr*, int));
  176. - int       setsockopt _G_ARGS((int, int, int, const char*, int));
  177.   int       shutdown(int, int);
  178.   int       socket(int, int, int);
  179.   int       socketpair(int, int, int, int sv[2]);
  180.   #endif
  181.   }
  182.   
  183. --- 39,62 ----
  184.   int       rcmd _G_ARGS((char**, int, const char*, const char*, const char*, int*));
  185.   #endif
  186.   int       recv(int, void*, int, int);
  187.   int       recvmsg(int, struct msghdr*, int);
  188.   int       rexec(char**, int, const char*, const char*, const char*, int*);
  189.   int       rresvport(int*);
  190.   int       send _G_ARGS((int, const void*, int, int));
  191.   int       sendmsg _G_ARGS((int, const struct msghdr*, int));
  192.   int       shutdown(int, int);
  193.   int       socket(int, int, int);
  194.   int       socketpair(int, int, int, int sv[2]);
  195. + #ifndef __386BSD__
  196. + int       recvfrom _G_ARGS((int, void*, int, int, void*, int *));
  197. + int       sendto _G_ARGS((int, const void*, int, int, void*, int));
  198. + int       setsockopt _G_ARGS((int, int, int, const char*, int));
  199. + #else
  200. + int       recvfrom _G_ARGS((int, void*, int, int, struct sockaddr*, int *));
  201. + int       sendto _G_ARGS((int, const void*, int, int, const struct sockaddr*, int));
  202. + int       setsockopt _G_ARGS((int, int, int, const void*, int));
  203. + #endif
  204.   #endif
  205.   }
  206.   
  207. diff -rc libg++-2.3.90/libg++/g++-include/sys/wait.h libg++-2.3.90.new/libg++/g++-include/sys/wait.h
  208. *** libg++-2.3.90/libg++/g++-include/sys/wait.h    Thu Jun  4 02:23:06 1992
  209. --- libg++-2.3.90.new/libg++/g++-include/sys/wait.h    Thu Jun 10 23:30:40 1993
  210. ***************
  211. *** 31,37 ****
  212. --- 31,41 ----
  213.   extern _G_pid_t wait _G_ARGS((int*));
  214.   extern _G_pid_t waitpid _G_ARGS((_G_pid_t, int*, int));
  215.   extern _G_pid_t wait3 _G_ARGS((int*, int options, struct rusage*));
  216. + #ifndef __386BSD__
  217.   extern _G_pid_t wait4 _G_ARGS((int, int*, int, struct rusage*));
  218. + #else
  219. + extern _G_pid_t wait4 _G_ARGS((_G_pid_t, int*, int, struct rusage*));
  220. + #endif
  221.   #endif
  222.   }
  223.   
  224. diff -rc libg++-2.3.90/libg++/g++-include/time.h libg++-2.3.90.new/libg++/g++-include/time.h
  225. *** libg++-2.3.90/libg++/g++-include/time.h    Mon May  3 17:35:18 1993
  226. --- libg++-2.3.90.new/libg++/g++-include/time.h    Thu Jun 10 23:30:40 1993
  227. ***************
  228. *** 95,102 ****
  229.   #endif
  230.   _G_time_t      time(_G_time_t*);
  231.   unsigned  ualarm(unsigned, unsigned);
  232. ! unsigned  usleep(unsigned);
  233. ! void      profil _G_ARGS((unsigned short*, _G_size_t, unsigned int, unsigned));
  234.   
  235.   #endif
  236.   }
  237. --- 95,107 ----
  238.   #endif
  239.   _G_time_t      time(_G_time_t*);
  240.   unsigned  ualarm(unsigned, unsigned);
  241. ! #ifndef __386BSD__
  242. ! unsigned   usleep(unsigned);
  243. ! void       profil _G_ARGS((unsigned short*, _G_size_t, unsigned int, unsigned));
  244. ! #else
  245. ! void      usleep(unsigned);
  246. ! int       profil _G_ARGS((char*, int, int, int));
  247. ! #endif
  248.   
  249.   #endif
  250.   }
  251. diff -rc libg++-2.3.90/libg++/g++-include/unistd.h libg++-2.3.90.new/libg++/g++-include/unistd.h
  252. *** libg++-2.3.90/libg++/g++-include/unistd.h    Sun May 30 19:50:01 1993
  253. --- libg++-2.3.90.new/libg++/g++-include/unistd.h    Thu Jun 10 23:30:41 1993
  254. ***************
  255. *** 65,71 ****
  256. --- 65,75 ----
  257.   #endif
  258.   
  259.   extern unsigned alarm _G_ARGS((unsigned));
  260. + #ifndef __386BSD__
  261.   extern int      brk _G_ARGS((void*));
  262. + #else
  263. + extern char*    brk _G_ARGS((const char*));
  264. + #endif
  265.   extern int      chdir _G_ARGS((const char*));
  266.   extern int      chmod  _G_ARGS((const char*, _G_mode_t));
  267.   extern int      chown (const char*, _G_uid_t, _G_gid_t);
  268. ***************
  269. *** 73,87 ****
  270. --- 77,103 ----
  271.   extern char*    crypt _G_ARGS((const char*, const char*));
  272.   extern int      dup _G_ARGS((int));
  273.   extern int      dup2 _G_ARGS((int, int));
  274. + #ifndef __386BSD__
  275.   extern void    encrypt _G_ARGS((char*, int));
  276. + #else
  277. + extern int    encrypt _G_ARGS((char*, int));
  278. + #endif
  279.   extern int      execl (const char*, const char *, ...);
  280.   extern int      execle (const char*, const char *, ...);
  281.   extern int      execlp (const char*, const char*, ...);
  282. + #ifndef __386BSD__
  283.   extern int      exect _G_ARGS((const char*,  const char**,  char**));
  284.   extern int      execv _G_ARGS((const char*,  const char * const *));
  285.   extern int      execve _G_ARGS((const char*, const char * const *, const char * const *));
  286.   extern int      execvp _G_ARGS((const char*,  const char * const *));
  287.   extern int      fchown (int, _G_uid_t, _G_gid_t);
  288. + #else
  289. + extern int      exect _G_ARGS((const char*,  char * const*, char * const *));
  290. + extern int      execv _G_ARGS((const char*, char * const *));
  291. + extern int      execve _G_ARGS((const char*, char * const *, char * const *));
  292. + extern int      execvp _G_ARGS((const char*,  char * const *));
  293. + extern int      fchown (int, int, int);
  294. + #endif
  295.   extern _G_pid_t fork _G_ARGS((void));
  296.   extern int      fsync _G_ARGS((int));
  297.   extern int      ftruncate _G_ARGS((int, _G_off_t));
  298. ***************
  299. *** 88,94 ****
  300. --- 104,114 ----
  301.   extern char*    getcwd _G_ARGS((char*, _G_size_t));
  302.   extern int      getdomainname _G_ARGS((char*, int));
  303.   extern int      getdtablesize _G_ARGS((void));
  304. + #ifndef __386BSD__
  305.   extern int      getgroups _G_ARGS((int, _G_gid_t*));
  306. + #else
  307. + extern int      getgroups _G_ARGS((int, int*));
  308. + #endif
  309.   extern _G_uid_t geteuid _G_ARGS((void));
  310.   extern _G_gid_t getegid _G_ARGS((void));
  311.   extern _G_gid_t getgid _G_ARGS((void));
  312. ***************
  313. *** 100,106 ****
  314. --- 120,130 ----
  315.   extern char*    getlogin _G_ARGS((void));
  316.   extern char*    getpass _G_ARGS((const char*));
  317.   extern _G_uid_t getuid _G_ARGS((void));
  318. + #ifndef __386BSD__
  319.   extern int      ioctl (int, int, ... );
  320. + #else
  321. + extern int      ioctl (int, unsigned long, ... );
  322. + #endif
  323.   extern int      isatty _G_ARGS((int));
  324.   extern int      link _G_ARGS((const char*, const char*));
  325.   extern int    lockf _G_ARGS((int, int, long));
  326. ***************
  327. *** 112,118 ****
  328.   extern int      readlink _G_ARGS((const char*, char*, int));
  329.   extern int      rename _G_ARGS((const char*, const char*));
  330.   extern int      rmdir _G_ARGS((const char*)); 
  331. ! #ifdef __OSF1__
  332.   extern char*    sbrk _G_ARGS((int));
  333.   #else
  334.   extern void*    sbrk _G_ARGS((int)); 
  335. --- 136,142 ----
  336.   extern int      readlink _G_ARGS((const char*, char*, int));
  337.   extern int      rename _G_ARGS((const char*, const char*));
  338.   extern int      rmdir _G_ARGS((const char*)); 
  339. ! #if defined( __OSF1__ ) || defined (__386BSD__)
  340.   extern char*    sbrk _G_ARGS((int));
  341.   #else
  342.   extern void*    sbrk _G_ARGS((int)); 
  343. ***************
  344. *** 124,131 ****
  345. --- 148,160 ----
  346.   extern _G_pid_t setpgrp _G_ARGS((void));
  347.   extern _G_pid_t setsid _G_ARGS((void));
  348.   #else
  349. + #ifndef __386BSD__
  350.   extern _G_pid_t setpgrp _G_ARGS((_G_pid_t, _G_pid_t));
  351. + #else
  352. + extern _G_pid_t setsid _G_ARGS((void));
  353. + extern int      setpgrp _G_ARGS((_G_pid_t, _G_pid_t));
  354.   #endif
  355. + #endif
  356.   extern int      setregid _G_ARGS((int, int));
  357.   extern int      setreuid _G_ARGS((int, int));
  358.   extern int      setuid (_G_uid_t);
  359. ***************
  360. *** 138,144 ****
  361. --- 167,177 ----
  362.   extern int      ttyslot _G_ARGS((void));
  363.   //extern int   umask _G_ARGS((int)); /* commented out for now; wrong for SunOs4.1 */
  364.   extern int      unlink _G_ARGS((const char*));
  365. + #ifndef __386BSD__
  366.   extern _G_pid_t vfork _G_ARGS((void));
  367. + #else
  368. + extern int      vfork _G_ARGS((void));
  369. + #endif
  370.   extern int      vadvise _G_ARGS((int));
  371.   extern int      vhangup _G_ARGS((void));
  372.   extern _G_off_t lseek _G_ARGS((int, long, int));
  373. diff -rc libg++-2.3.90/libg++/iostream/procbuf.C libg++-2.3.90.new/libg++/iostream/procbuf.C
  374. *** libg++-2.3.90/libg++/iostream/procbuf.C    Fri May 28 18:58:04 1993
  375. --- libg++-2.3.90.new/libg++/iostream/procbuf.C    Thu Jun 10 23:30:41 1993
  376. ***************
  377. *** 25,31 ****
  378. --- 25,35 ----
  379.   
  380.   #ifndef FORK
  381.   #define FORK vfork
  382. + #ifndef __386BSD__
  383.   extern "C" _G_pid_t vfork(void);
  384. + #else
  385. + extern "C" int vfork(void);
  386. + #endif
  387.   #endif
  388.   
  389.   procbuf::procbuf(const char *command, int mode) : filebuf()
  390. diff -rc libg++-2.3.90/libg++/iostream/stdio/stdio.h libg++-2.3.90.new/libg++/iostream/stdio/stdio.h
  391. *** libg++-2.3.90/libg++/iostream/stdio/stdio.h    Fri May 28 19:06:42 1993
  392. --- libg++-2.3.90.new/libg++/iostream/stdio/stdio.h    Thu Jun 10 23:30:41 1993
  393. ***************
  394. *** 49,58 ****
  395.   #include <stdarg.h>
  396.   #endif
  397.   
  398.    /* define size_t.  Crud in case <sys/types.h> has defined it. */
  399.   #if !defined(_SIZE_T) && !defined(_T_SIZE_) && !defined(_T_SIZE)
  400.   #if !defined(__SIZE_T) && !defined(_SIZE_T_) && !defined(___int_size_t_h)
  401. ! #if !defined(_GCC_SIZE_T) && !defined(_SIZET_)
  402.   #define _SIZE_T
  403.   #define _T_SIZE_
  404.   #define _T_SIZE
  405. --- 49,66 ----
  406.   #include <stdarg.h>
  407.   #endif
  408.   
  409. + #ifdef __386BSD__
  410. + #include <machine/ansi.h>
  411. + #ifdef    _SIZE_T_
  412. + typedef    _SIZE_T_    size_t;
  413. + #undef    _SIZE_T_
  414. + #endif
  415. + #endif
  416.    /* define size_t.  Crud in case <sys/types.h> has defined it. */
  417.   #if !defined(_SIZE_T) && !defined(_T_SIZE_) && !defined(_T_SIZE)
  418.   #if !defined(__SIZE_T) && !defined(_SIZE_T_) && !defined(___int_size_t_h)
  419. ! #if !defined(_GCC_SIZE_T) && !defined(_SIZET_) && !defined(_ANSI_H_)
  420.   #define _SIZE_T
  421.   #define _T_SIZE_
  422.   #define _T_SIZE
  423. diff -rc libg++-2.3.90/libg++/src/Complex.cc libg++-2.3.90.new/libg++/src/Complex.cc
  424. *** libg++-2.3.90/libg++/src/Complex.cc    Tue Jun  1 19:17:26 1993
  425. --- libg++-2.3.90.new/libg++/src/Complex.cc    Thu Jun 10 23:30:42 1993
  426. ***************
  427. *** 254,256 ****
  428. --- 254,262 ----
  429.     return s;
  430.   }
  431.    
  432. + Complex  operator * (const Complex& x, const Complex& y)
  433. + {
  434. +   return Complex(x.real() * y.real() - x.imag() * y.imag(), 
  435. +                  x.real() * y.imag() + x.imag() * y.real());
  436. + }
  437. diff -rc libg++-2.3.90/libg++/src/Complex.h libg++-2.3.90.new/libg++/src/Complex.h
  438. *** libg++-2.3.90/libg++/src/Complex.h    Tue Jun  1 19:17:30 1993
  439. --- libg++-2.3.90.new/libg++/src/Complex.h    Thu Jun 10 23:30:42 1993
  440. ***************
  441. *** 227,238 ****
  442.     return Complex(x - y.real(), -y.imag());
  443.   }
  444.   
  445. - inline Complex  operator * (const Complex& x, const Complex& y)
  446. - {
  447. -   return Complex(x.real() * y.real() - x.imag() * y.imag(), 
  448. -                  x.real() * y.imag() + x.imag() * y.real());
  449. - }
  450.   inline Complex  operator * (const Complex& x, double y)
  451.   {
  452.     return Complex(x.real() * y, x.imag() * y);
  453. --- 227,232 ----
  454. diff -rc libg++-2.3.90/libg++/utils/gen-params libg++-2.3.90.new/libg++/utils/gen-params
  455. *** libg++-2.3.90/libg++/utils/gen-params    Tue Jun  1 19:58:41 1993
  456. --- libg++-2.3.90.new/libg++/utils/gen-params    Fri Jun 11 23:51:34 1993
  457. ***************
  458. *** 310,315 ****
  459. --- 310,328 ----
  460.   #define ${macro_prefix}NULL ${NULL-0 /* default */}
  461.   !EOF!
  462.   
  463. + cat >dummy.c <<!EOF!
  464. + #if !defined (__386BSD__)
  465. + this should fail
  466. + #endif
  467. + main()
  468. + {}
  469. + !EOF!
  470. + if ${CC} -c dummy.c >/dev/null 2>&1 ; then
  471. +   echo "#define ${macro_prefix}USE_PROTOS"
  472. + else
  473. +   echo "/* #define ${macro_prefix}USE_PROTOS */"
  474. + fi
  475.   
  476.   cat <<!EOF!
  477.   #ifdef ${macro_prefix}USE_PROTOS
  478.