[HACKERS] [PATCHES] fixes for sparc-solaris (fwd) - Mailing list pgsql-hackers

From Bruce Momjian
Subject [HACKERS] [PATCHES] fixes for sparc-solaris (fwd)
Date
Msg-id c533c1e4dbb33e784bb099e6e3e493da
Whole thread Raw
List pgsql-hackers
Any comments on applying this?  It looks good to me.

Forwarded message:
> From owner-pgsql-patches@hub.org Fri Jun 20 13:30:38 1997
> Date: Fri, 20 Jun 1997 13:07:36 -0400
> From: axafbin@pelf.harvard.edu (Common AXAF Software)
> Message-Id: <199706201707.NAA03377@pelf>
> To: pgsql-patches@postgreSQL.org
> Subject: [PATCHES] fixes for sparc-solaris
> Cc: dj@pelf.harvard.edu
> Sender: owner-pgsql-patches@hub.org
> Precedence: bulk
>
> ============================================================================
>                         POSTGRESQL BUG REPORT TEMPLATE
> ============================================================================
>
>
> Your name        : Diab Jerius
> Your email address    : djerius@cfa.harvard.edu
>
>
> System Configuration
> ---------------------
>   Architecture (example: Intel Pentium)      : Sparc
>
>   Operating System (example: Linux 2.0.26 ELF)     : Solaris 2.5.1
>
>   PostgreSQL version (example: PostgreSQL-6.1)  : PostgreSQL-6.1
>
>   Compiler used (example:  gcc 2.7.2)        : SunOS cc 4.0.1
>
>
> Please enter a FULL description of your problem:
> ------------------------------------------------
>
> Various compile errors concerning overflow due to shifts (<<) and
> masking of chars with constants.  The first set of errors is due to
> the compiler holding the result in a signed int ( e.g. 15 << 27 is
> too big for a signed int, bug fits just fine in an unsigned one)
> while the destination was unsigned.
>
> The second was caused by masking a signed char with a number greater
> than 127; this caused a warning about the result not fitting.
>
> There were various spots where old K&R type prototypes were present
> and overrode true prototypes specified elsewhere.
>
> the sparc_solaris-cc file should have more strict ANSI flags.
>
> There are patches below which fix the above problems.
>
> ----------------------------------------------------------------------
>
>
>
>
>
> If you know how this problem might be fixed, list the solution below:
> ---------------------------------------------------------------------
>
>
> Index: src/backend/catalog/pg_aggregate.c
> Prereq:  1.4
> *** postgresql-v6.1/src/backend/catalog/pg_aggregate.c    Fri Nov  8 00:00:25 1996
> --- postgresql-v6.1-cc-fix/src/backend/catalog/pg_aggregate.c    Thu Jun 19 16:31:24 1997
> ***************
> *** 269,275 ****
>       Oid    transtype;
>       text    *textInitVal;
>       char    *strInitVal, *initVal;
> -     extern char    *textout();
>
>       Assert(PointerIsValid(aggName));
>       Assert(PointerIsValid(isNull));
> --- 269,274 ----
> Index: src/backend/optimizer/geqo/geqo_params.c
> Prereq:  1.2
> *** postgresql-v6.1/src/backend/optimizer/geqo/geqo_params.c    Wed Feb 19 09:52:04 1997
> --- postgresql-v6.1-cc-fix/src/backend/optimizer/geqo/geqo_params.c    Thu Jun 19 16:39:38 1997
> ***************
> *** 22,27 ****
> --- 22,28 ----
>   #include <time.h>
>   #include <math.h>
>   #include <ctype.h>
> + #include <string.h>
>
>   #include "postgres.h"
>   #include "miscadmin.h"
> Index: src/backend/parser/catalog_utils.c
> Prereq:  1.18
> *** postgresql-v6.1/src/backend/parser/catalog_utils.c    Thu May 22 00:00:36 1997
> --- postgresql-v6.1-cc-fix/src/backend/parser/catalog_utils.c    Thu Jun 19 16:40:09 1997
> ***************
> *** 1477,1483 ****
>   void
>   func_error(char *caller, char *funcname, int nargs, Oid *argtypes)
>   {
> -     Type get_id_type();
>       char p[(NAMEDATALEN+2)*MAXFMGRARGS], *ptr;
>       int i;
>
> --- 1477,1482 ----
> Index: src/backend/parser/parser.c
> Prereq:  1.18
> *** postgresql-v6.1/src/backend/parser/parser.c    Fri Feb 14 00:01:45 1997
> --- postgresql-v6.1-cc-fix/src/backend/parser/parser.c    Thu Jun 19 16:40:47 1997
> ***************
> *** 447,453 ****
>           vartype = ((Expr*)target)->typeOid;
>
>       if (basetype != vartype) {
> !         Type tp1, tp2, get_id_type();
>
>           tp1 = get_id_type(basetype);
>           tp2 = get_id_type(vartype);
> --- 447,453 ----
>           vartype = ((Expr*)target)->typeOid;
>
>       if (basetype != vartype) {
> !         Type tp1, tp2;
>
>           tp1 = get_id_type(basetype);
>           tp2 = get_id_type(vartype);
> Index: src/backend/rewrite/rewriteDefine.c
> Prereq:  1.2
> *** postgresql-v6.1/src/backend/rewrite/rewriteDefine.c    Sun Nov 10 00:01:05 1996
> --- postgresql-v6.1-cc-fix/src/backend/rewrite/rewriteDefine.c    Thu Jun 19 16:41:38 1997
> ***************
> *** 192,199 ****
>       Oid event_attype    = 0;
>       char *actionP, *event_qualP;
>
> -     extern Oid att_typeid();
> -
>       if (event_obj->attrs)
>       eslot_string = strVal(lfirst(event_obj->attrs));
>       else
> --- 192,197 ----
> Index: src/backend/storage/buffer/bufmgr.c
> Prereq:  1.13
> *** postgresql-v6.1/src/backend/storage/buffer/bufmgr.c    Fri Apr 18 06:00:56 1997
> --- postgresql-v6.1-cc-fix/src/backend/storage/buffer/bufmgr.c    Thu Jun 19 16:42:18 1997
> ***************
> *** 1131,1137 ****
>   {
>       register int i;
>       int error = 0;
> -     void PrintBufferDescs();
>
>       for (i = 1; i <= NBuffers; i++) {
>       if (BufferIsValid(i)) {
> --- 1131,1136 ----
> Index: src/backend/storage/ipc/sinvaladt.c
> Prereq:  1.3
> *** postgresql-v6.1/src/backend/storage/ipc/sinvaladt.c    Wed Nov  6 06:01:14 1996
> --- postgresql-v6.1-cc-fix/src/backend/storage/ipc/sinvaladt.c    Thu Jun 19 18:50:19 1997
> ***************
> *** 481,492 ****
>   {
>       Offset          offsetToNewData;
>       SISegEntry         *eP, *lastP;
> -     bool            SISegFull();
> -     Offset          SIEntryOffset();
> -     Offset          SIGetStartFreeSpace();
> -     SISegEntry         *SIGetFirstDataEntry();
> -     SISegEntry         *SIGetNextDataEntry();
> -     SISegEntry         *SIGetLastDataEntry();
>
>       if (!SIIncNumEntries(segP, 1))
>       return(false);  /* no space */
> --- 481,486 ----
> ***************
> *** 542,548 ****
>   SIDelDataEntry(SISeg *segP)
>   {
>       SISegEntry         *e1P;
> -     SISegEntry         *SIGetFirstDataEntry();
>
>       if (!SIDecNumEntries(segP, 1))  {
>           /* no entries in buffer */
> --- 536,541 ----
> Index: src/backend/storage/smgr/md.c
> Prereq:  1.13
> *** postgresql-v6.1/src/backend/storage/smgr/md.c    Thu May 22 18:00:55 1997
> --- postgresql-v6.1-cc-fix/src/backend/storage/smgr/md.c    Thu Jun 19 16:43:50 1997
> ***************
> *** 114,120 ****
>   {
>       int fd, vfd;
>       char *path;
> -     extern bool IsBootstrapProcessingMode();
>
>       path = relpath(&(reln->rd_rel->relname.data[0]));
>       fd = FileNameOpenFile(path, O_RDWR|O_CREAT|O_EXCL, 0600);
> --- 114,119 ----
> Index: src/backend/tcop/postgres.c
> Prereq:  1.33
> *** postgresql-v6.1/src/backend/tcop/postgres.c    Thu Apr 24 00:01:21 1997
> --- postgresql-v6.1-cc-fix/src/backend/tcop/postgres.c    Thu Jun 19 17:17:32 1997
> ***************
> *** 54,59 ****
> --- 54,60 ----
>   #include "executor/execdebug.h"
>   #include "executor/executor.h"
>   #include "nodes/relation.h"
> + #include "nodes/print.h"
>
>   #include "optimizer/cost.h"
>   #include "optimizer/planner.h"
> Index: src/backend/tcop/utility.c
> Prereq:  1.17
> *** postgresql-v6.1/src/backend/tcop/utility.c    Thu May 22 00:01:03 1997
> --- postgresql-v6.1-cc-fix/src/backend/tcop/utility.c    Thu Jun 19 16:46:11 1997
> ***************
> *** 476,482 ****
>           {
>               char *viewName = stmt->name;
>               char *ruleName;
> -             extern char *RewriteGetRuleEventRel();
>
>   #ifndef NO_SECURITY
>
> --- 476,481 ----
> ***************
> *** 587,593 ****
>       case T_LoadStmt:
>       {
>           LoadStmt *stmt = (LoadStmt *)parsetree;
> !         FILE *fp, *fopen();
>           char *filename;
>
>           commandTag = "LOAD";
> --- 586,592 ----
>       case T_LoadStmt:
>       {
>           LoadStmt *stmt = (LoadStmt *)parsetree;
> !         FILE *fp;
>           char *filename;
>
>           commandTag = "LOAD";
> Index: src/backend/utils/adt/acl.c
> Prereq:  1.8
> *** postgresql-v6.1/src/backend/utils/adt/acl.c    Wed Nov 20 18:00:59 1996
> --- postgresql-v6.1-cc-fix/src/backend/utils/adt/acl.c    Thu Jun 19 16:46:58 1997
> ***************
> *** 86,92 ****
>   {
>       HeapTuple htp;
>       char name[NAMEDATALEN+1];
> -     extern AclId get_grosysid();
>
>       Assert(s && aip && modechg);
>
> --- 86,91 ----
> Index: src/backend/utils/adt/arrayfuncs.c
> Prereq:  1.10
> *** postgresql-v6.1/src/backend/utils/adt/arrayfuncs.c    Fri Nov  8 06:01:12 1996
> --- postgresql-v6.1-cc-fix/src/backend/utils/adt/arrayfuncs.c    Thu Jun 19 16:47:25 1997
> ***************
> *** 1203,1209 ****
>       int n, *dim, *lb, st_pos, prod[MAXDIM];
>       int span[MAXDIM], dist[MAXDIM], indx[MAXDIM];
>       int i, j, inc;
> !     char *srcPtr, *array_seek();
>
>       n = ARR_NDIM(array); dim = ARR_DIMS(array);
>       lb = ARR_LBOUND(array); srcPtr = ARR_DATA_PTR(array);
> --- 1203,1209 ----
>       int n, *dim, *lb, st_pos, prod[MAXDIM];
>       int span[MAXDIM], dist[MAXDIM], indx[MAXDIM];
>       int i, j, inc;
> !     char *srcPtr;
>
>       n = ARR_NDIM(array); dim = ARR_DIMS(array);
>       lb = ARR_LBOUND(array); srcPtr = ARR_DATA_PTR(array);
> ***************
> *** 1232,1238 ****
>       int span[MAXDIM], dist[MAXDIM], indx[MAXDIM];
>       int i, j, inc, st[MAXDIM], endp[MAXDIM];
>       int count = 0;
> !     char *ptr, *array_seek();
>
>       n = ARR_NDIM(array); dim = ARR_DIMS(array);
>       lb = ARR_LBOUND(array); ptr = ARR_DATA_PTR(array);
> --- 1232,1238 ----
>       int span[MAXDIM], dist[MAXDIM], indx[MAXDIM];
>       int i, j, inc, st[MAXDIM], endp[MAXDIM];
>       int count = 0;
> !     char *ptr;
>
>       n = ARR_NDIM(array); dim = ARR_DIMS(array);
>       lb = ARR_LBOUND(array); ptr = ARR_DATA_PTR(array);
> Index: src/backend/utils/adt/dt.c
> Prereq:  1.24
> *** postgresql-v6.1/src/backend/utils/adt/dt.c    Tue Jun  3 06:01:00 1997
> --- postgresql-v6.1-cc-fix/src/backend/utils/adt/dt.c    Thu Jun 19 15:11:57 1997
> ***************
> *** 1236,1243 ****
>    *****************************************************************************/
>
>   /* definitions for squeezing values into "value" */
> ! #define ABS_SIGNBIT    0200
> ! #define VALMASK        0177
>   #define NEG(n)        ((n)|ABS_SIGNBIT)
>   #define SIGNEDCHAR(c)    ((c)&ABS_SIGNBIT? -((c)&VALMASK): (c))
>   #define FROMVAL(tp)    (-SIGNEDCHAR((tp)->value) * 10)    /* uncompress */
> --- 1236,1243 ----
>    *****************************************************************************/
>
>   /* definitions for squeezing values into "value" */
> ! #define ABS_SIGNBIT    (char) 0200
> ! #define VALMASK        (char) 0177
>   #define NEG(n)        ((n)|ABS_SIGNBIT)
>   #define SIGNEDCHAR(c)    ((c)&ABS_SIGNBIT? -((c)&VALMASK): (c))
>   #define FROMVAL(tp)    (-SIGNEDCHAR((tp)->value) * 10)    /* uncompress */
> Index: src/backend/utils/adt/filename.c
> Prereq:  1.6
> *** postgresql-v6.1/src/backend/utils/adt/filename.c    Fri Feb 14 00:02:24 1997
> --- postgresql-v6.1-cc-fix/src/backend/utils/adt/filename.c    Thu Jun 19 16:48:05 1997
> ***************
> *** 25,31 ****
>   char *
>   filename_in(char *file)
>   {
> !     char *str, *getenv();
>       int ind = 0;
>
>       /*
> --- 25,31 ----
>   char *
>   filename_in(char *file)
>   {
> !     char *str;
>       int ind = 0;
>
>       /*
> Index: src/backend/utils/adt/oid.c
> Prereq:  1.6
> *** postgresql-v6.1/src/backend/utils/adt/oid.c    Sat Mar 15 00:01:42 1997
> --- postgresql-v6.1-cc-fix/src/backend/utils/adt/oid.c    Thu Jun 19 16:48:41 1997
> ***************
> *** 84,98 ****
>
>   Oid oidin(char *s)
>   {
> -     extern int32 int4in();
> -
>       return(int4in(s));
>   }
>
>   char *oidout(Oid o)
>   {
> -     extern char *int4out();
> -
>       return(int4out(o));
>   }
>
> --- 84,94 ----
> Index: src/backend/utils/error/elog.c
> Prereq:  1.15
> *** postgresql-v6.1/src/backend/utils/error/elog.c    Tue Mar 18 18:01:14 1997
> --- postgresql-v6.1-cc-fix/src/backend/utils/error/elog.c    Thu Jun 19 16:49:05 1997
> ***************
> *** 50,56 ****
>   #ifndef PG_STANDALONE
>       extern    FILE    *Pfout;
>   #endif /* !PG_STANDALONE */
> -     time_t    time();
>   #ifdef ELOG_TIMESTAMPS
>       time_t    tim;
>   #endif
> --- 50,55 ----
> Index: src/backend/utils/fmgr/dfmgr.c
> Prereq:  1.6
> *** postgresql-v6.1/src/backend/utils/fmgr/dfmgr.c    Fri Feb 14 00:02:28 1997
> --- postgresql-v6.1-cc-fix/src/backend/utils/fmgr/dfmgr.c    Thu Jun 19 16:49:29 1997
> ***************
> *** 53,59 ****
>       Form_pg_proc procedureStruct;
>       char        *proname;
>       char        *probinattr, *probinstring;
> !     func_ptr    user_fn, handle_load();
>       Relation    rdesc;
>       bool     isnull;
>
> --- 53,59 ----
>       Form_pg_proc procedureStruct;
>       char        *proname;
>       char        *probinattr, *probinstring;
> !     func_ptr    user_fn;
>       Relation    rdesc;
>       bool     isnull;
>
> Index: src/backend/utils/init/postinit.c
> Prereq:  1.8
> *** postgresql-v6.1/src/backend/utils/init/postinit.c    Fri Feb 14 00:02:31 1997
> --- postgresql-v6.1-cc-fix/src/backend/utils/init/postinit.c    Thu Jun 19 16:50:29 1997
> ***************
> *** 354,360 ****
>   void
>   InitCommunication()
>   {
> -     char *getenv();     /* XXX style */
>       char *postid;
>       char *postport;
>       IPCKey      key = 0;
> --- 354,359 ----
> Index: src/backend/utils/sort/psort.c
> Prereq:  1.4
> *** postgresql-v6.1/src/backend/utils/sort/psort.c    Tue May 20 12:01:17 1997
> --- postgresql-v6.1-cc-fix/src/backend/utils/sort/psort.c    Thu Jun 19 16:51:06 1997
> ***************
> *** 525,531 ****
>       register struct    tapelst    *tp;
>       FILE        *file;
>       static    int    tapeinit = 0;
> -     char        *mktemp();
>
>       tp = (struct tapelst *)palloc((unsigned)sizeof (struct tapelst));
>       if (!tapeinit) {
> --- 525,530 ----
> Index: src/include/regex/regex2.h
> Prereq:     8.4
> *** postgresql-v6.1/src/include/regex/regex2.h    Fri Sep 20 01:29:28 1996
> --- postgresql-v6.1-cc-fix/src/include/regex/regex2.h    Thu Jun 19 14:54:51 1997
> ***************
> *** 87,112 ****
>   #define    SOP(op, opnd)    ((op)|(opnd))
>   /* operators               meaning    operand            */
>   /*                        (back, fwd are offsets)    */
> ! #define    OEND    (1<<OPSHIFT)    /* endmarker    -            */
> ! #define    OCHAR    (2<<OPSHIFT)    /* character    unsigned char        */
> ! #define    OBOL    (3<<OPSHIFT)    /* left anchor    -            */
> ! #define    OEOL    (4<<OPSHIFT)    /* right anchor    -            */
> ! #define    OANY    (5<<OPSHIFT)    /* .        -            */
> ! #define    OANYOF    (6<<OPSHIFT)    /* [...]    set number        */
> ! #define    OBACK_    (7<<OPSHIFT)    /* begin \d    paren number        */
> ! #define    O_BACK    (8<<OPSHIFT)    /* end \d    paren number        */
> ! #define    OPLUS_    (9<<OPSHIFT)    /* + prefix    fwd to suffix        */
> ! #define    O_PLUS    (10<<OPSHIFT)    /* + suffix    back to prefix        */
> ! #define    OQUEST_    (11<<OPSHIFT)    /* ? prefix    fwd to suffix        */
> ! #define    O_QUEST    (12<<OPSHIFT)    /* ? suffix    back to prefix        */
> ! #define    OLPAREN    (13<<OPSHIFT)    /* (        fwd to )        */
> ! #define    ORPAREN    (14<<OPSHIFT)    /* )        back to (        */
> ! #define    OCH_    (15<<OPSHIFT)    /* begin choice    fwd to OOR2        */
> ! #define    OOR1    (16<<OPSHIFT)    /* | pt. 1    back to OOR1 or OCH_    */
> ! #define    OOR2    (17<<OPSHIFT)    /* | pt. 2    fwd to OOR2 or O_CH    */
> ! #define    O_CH    (18<<OPSHIFT)    /* end choice    back to OOR1        */
> ! #define    OBOW    (19<<OPSHIFT)    /* begin word    -            */
> ! #define    OEOW    (20<<OPSHIFT)    /* end word    -            */
>
>   /*
>    * Structure for [] character-set representation.  Character sets are
> --- 87,112 ----
>   #define    SOP(op, opnd)    ((op)|(opnd))
>   /* operators               meaning    operand            */
>   /*                        (back, fwd are offsets)    */
> ! #define    OEND    ((size_t)1<<OPSHIFT)    /* endmarker    -            */
> ! #define    OCHAR    ((size_t)2<<OPSHIFT)    /* character    unsigned char        */
> ! #define    OBOL    ((size_t)3<<OPSHIFT)    /* left anchor    -            */
> ! #define    OEOL    ((size_t)4<<OPSHIFT)    /* right anchor    -            */
> ! #define    OANY    ((size_t)5<<OPSHIFT)    /* .        -            */
> ! #define    OANYOF    ((size_t)6<<OPSHIFT)    /* [...]    set number        */
> ! #define    OBACK_    ((size_t)7<<OPSHIFT)    /* begin \d    paren number        */
> ! #define    O_BACK    ((size_t)8<<OPSHIFT)    /* end \d    paren number        */
> ! #define    OPLUS_    ((size_t)9<<OPSHIFT)    /* + prefix    fwd to suffix        */
> ! #define    O_PLUS    ((size_t)10<<OPSHIFT)    /* + suffix    back to prefix        */
> ! #define    OQUEST_    ((size_t)11<<OPSHIFT)    /* ? prefix    fwd to suffix        */
> ! #define    O_QUEST    ((size_t)12<<OPSHIFT)    /* ? suffix    back to prefix        */
> ! #define    OLPAREN    ((size_t)13<<OPSHIFT)    /* (        fwd to )        */
> ! #define    ORPAREN    ((size_t)14<<OPSHIFT)    /* )        back to (        */
> ! #define    OCH_    ((size_t)15<<OPSHIFT)    /* begin choice    fwd to OOR2        */
> ! #define    OOR1    ((size_t)16<<OPSHIFT)    /* | pt. 1    back to OOR1 or OCH_    */
> ! #define    OOR2    ((size_t)17<<OPSHIFT)    /* | pt. 2    fwd to OOR2 or O_CH    */
> ! #define    O_CH    ((size_t)18<<OPSHIFT)    /* end choice    back to OOR1        */
> ! #define    OBOW    ((size_t)19<<OPSHIFT)    /* begin word    -            */
> ! #define    OEOW    ((size_t)20<<OPSHIFT)    /* end word    -            */
>
>   /*
>    * Structure for [] character-set representation.  Character sets are
> Index: src/template/sparc_solaris-cc
> *** postgresql-v6.1/src/template/sparc_solaris-cc    Fri Apr 11 18:02:29 1997
> --- postgresql-v6.1-cc-fix/src/template/sparc_solaris-cc    Thu Jun 19 16:13:48 1997
> ***************
> *** 1,5 ****
>   AROPT:crs
> ! CFLAGS:-I$(SRCDIR)/backend/port/sparc_solaris
>   SHARED_LIB:-K PIC
>   ALL:
>   SRCH_INC:
> --- 1,5 ----
>   AROPT:crs
> ! CFLAGS:-I$(SRCDIR)/backend/port/sparc_solaris -Xa -v
>   SHARED_LIB:-K PIC
>   ALL:
>   SRCH_INC:
>
>


- --
Bruce Momjian
maillist@candle.pha.pa.us

------------------------------

pgsql-hackers by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: [HACKERS] A defect report and a question about money.
Next
From: Bruce Momjian
Date:
Subject: [HACKERS] Re: [QUESTIONS] Problem with Dates in 6.1