Park Nan Kyoung on Fri, 23 Jul 1999 14:48:51 +0900


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: compiling with g++ on Solaris


unsubscrible nkpark@oberon.postech.ac.kr

Igor Schein wrote:

> Hi,
>
> I compiled pari-2.0.16 with g++ 2.91.66 ( part of egcs-1.1.2 )
> on Solaris.  2 patches are needed.  The first one fixes
> the error with prototyping, which gcc lets go, but g++
> picks up (maybe it makes sense to eventually put it in paridecl.h?):
>
> --- src/basemath/buch1.c~       Tue Jun 29 08:10:55 1999
> +++ src/basemath/buch1.c        Thu Jul 22 16:01:58 1999
> @@ -30,7 +30,7 @@
>  static GEN  **powsubfactorbase, subfactorbase,Disc,sqrtD,isqrtD;
>
>  GEN buchquad(GEN D, double c, double c2, long RELSUP0, long flag, long prec);
> -GEN roots_to_pol_intern(GEN L, GEN a, long v, long plus);
> +GEN roots_to_pol_intern(GEN L, GEN a, long v, int plus);
>
>  GEN
>  quadclassunit0(GEN x, long flag, GEN data, long prec)
> --- src/modules/stark.c~        Tue Jun 29 08:11:52 1999
> +++ src/modules/stark.c Thu Jul 22 16:21:09 1999
> @@ -11,7 +11,7 @@
>
>  #define EXTRA_PREC (DEFAULTPREC-1)
>
> -GEN roots_to_pol_intern(GEN L, GEN a, long v, long plus);
> +GEN roots_to_pol_intern(GEN L, GEN a, long v, int plus);
>  static int*** computean(GEN dtcr,  long nmax, long prec);
>
>  /********************************************************************/
>
> The second one changes all occurences of variables 'new' and 'class' into
> their french translations ( my arbirary choice ), because they're C++
> keywords and offend the compiler:
>
> --- src/language/es.c.orig      Tue Jun 29 11:07:33 1999
> +++ src/language/es.c   Thu Jul 22 14:49:12 1999
> @@ -1844,16 +1844,16 @@
>  pariFILE *
>  newfile(FILE *f, char *name, int type)
>  {
> -  pariFILE *new = (pariFILE*) gpmalloc(strlen(name) + 1 + sizeof(pariFILE));
> -  new->type = type;
> -  new->name = strcpy((char*)(new+1), name);
> -  new->file = f;
> -  new->prev = last_file;
> -  new->next = NULL;
> -  if (last_file) last_file->next = new;
> +  pariFILE *nouveau = (pariFILE*) gpmalloc(strlen(name) + 1 + sizeof(pariFILE));
> +  nouveau->type = type;
> +  nouveau->name = strcpy((char*)(nouveau+1), name);
> +  nouveau->file = f;
> +  nouveau->prev = last_file;
> +  nouveau->next = NULL;
> +  if (last_file) last_file->next = nouveau;
>    if (DEBUGFILES)
>      fprintferr("I/O: opening file %s (code %d) \n",name,type);
> -  return last_file = new;
> +  return last_file = nouveau;
>  }
>
>  static void
> @@ -2088,22 +2088,22 @@
>  void
>  gp_expand_path(char *v)
>  {
> -  char **new, **old, *s;
> +  char **nouveau, **old, *s;
>    int i, n = 0;
>
>    v = pari_strdup(v);
>    for (s=v; *s; s++)
>      if (*s == PATH_SEPARATOR) { *s = 0; n++; }
> -  new = (char**) gpmalloc((n + 2)*sizeof(char *));
> +  nouveau = (char**) gpmalloc((n + 2)*sizeof(char *));
>
>    for (s=v, i=0; i<=n; i++)
>    {
>      char *end = s + strlen(s), *f = end;
>      while (f > s && *--f == '/') *f = 0;
> -    new[i] = expand_tilde(s);
> +    nouveau[i] = expand_tilde(s);
>      s = end + 1; /* next PATH component */
>    }
> -  new[i] = NULL; old = dir_list; dir_list = new;
> +  nouveau[i] = NULL; old = dir_list; dir_list = nouveau;
>    if (old)
>    {
>      for ( ; *old; old++) free(*old);
> --- src/gp/gp.c.orig    Tue Jun 29 11:12:49 1999
> +++ src/gp/gp.c Thu Jul 22 14:51:28 1999
> @@ -276,15 +276,15 @@
>  {
>    if (*v)
>    {
> -    long new = get_int(v,0);
> -    if (*n == new) return gnil;
> -    if (new > Max || new < Min)
> +    long nouveau = get_int(v,0);
> +    if (*n == nouveau) return gnil;
> +    if (nouveau > Max || nouveau < Min)
>      {
>        sprintf(thestring, "default: incorrect value for %s [%ld-%ld]:",
>               s, Min, Max);
>        err(talker2, thestring, v,v);
>      }
> -    *n = new;
> +    *n = nouveau;
>    }
>    switch(flag)
>    {
> @@ -507,18 +507,18 @@
>  static GEN
>  sd_histsize(char *v, int flag)
>  {
> -  long new = histsize;
> -  GEN r = sd_numeric(v,flag,"histsize",&new, 1,
> +  long nouveau = histsize;
> +  GEN r = sd_numeric(v,flag,"histsize",&nouveau, 1,
>                       (VERYBIGINT / sizeof(long)) - 1,NULL);
> -  if (new != histsize)
> +  if (nouveau != histsize)
>    {
> -    long i = new*sizeof(GEN);
> +    long i = nouveau*sizeof(GEN);
>      GEN *gg = (GEN *) gpmalloc(i); memset(gg,0,i);
>
>      if (tglobal)
>      {
> -      long k = (tglobal-1) % new;
> -      long kmin = k - min(new,histsize), j = k;
> +      long k = (tglobal-1) % nouveau;
> +      long kmin = k - min(nouveau,histsize), j = k;
>
>        i = (tglobal-1) % histsize;
>        while (k > kmin)
> @@ -526,7 +526,7 @@
>         gg[j] = hist[i];
>         hist[i] = NULL;
>         if (!i) i = histsize;
> -       if (!j) j = new;
> +       if (!j) j = nouveau;
>         i--; j--; k--;
>        }
>        while (hist[i])
> @@ -536,7 +536,7 @@
>         i--;
>        }
>      }
> -    free((void*)hist); hist=gg; histsize=new;
> +    free((void*)hist); hist=gg; histsize=nouveau;
>    }
>    return r;
>  }
> @@ -574,16 +574,16 @@
>  static GEN
>  sd_parisize(char *v, int flag)
>  {
> -  long new = parisize;
> -  GEN r = sd_numeric(v,flag,"parisize",&new, 10000,VERYBIGINT,NULL);
> -  if (new != parisize)
> +  long nouveau = parisize;
> +  GEN r = sd_numeric(v,flag,"parisize",&nouveau, 10000,VERYBIGINT,NULL);
> +  if (nouveau != parisize)
>    {
>      if (flag != d_INITRC)
>      {
> -      parisize = allocatemoremem(new);
> +      parisize = allocatemoremem(nouveau);
>        longjmp(local_environnement[bufindex], 0);
>      }
> -    parisize = new;
> +    parisize = nouveau;
>    }
>    return r;
>  }
> @@ -591,16 +591,16 @@
>  static GEN
>  sd_primelimit(char *v, int flag)
>  {
> -  long new = primelimit;
> -  GEN r = sd_numeric(v,flag,"primelimit",&new, 0,VERYBIGINT,NULL);
> -  if (new != primelimit)
> +  long nouveau = primelimit;
> +  GEN r = sd_numeric(v,flag,"primelimit",&nouveau, 0,VERYBIGINT,NULL);
> +  if (nouveau != primelimit)
>    {
>      if (flag != d_INITRC)
>      {
> -      byteptr ptr = initprimes(new);
> +      byteptr ptr = initprimes(nouveau);
>        free(diffptr); diffptr = ptr;
>      }
> -    primelimit = new;
> +    primelimit = nouveau;
>    }
>    return r;
>  }
> @@ -1627,9 +1627,9 @@
>        len = *ptlbuf - (s - *ptbuf);
>        if (len < 512)
>        {
> -       long new = *ptlbuf << 1, l = s - *ptbuf;
> +       long nouveau = *ptlbuf << 1, l = s - *ptbuf;
>         len += *ptlbuf;
> -       fix_buffer(new, ptbuf, ptlbuf);
> +       fix_buffer(nouveau, ptbuf, ptlbuf);
>         s = *ptbuf + l;
>        }
>      }
> @@ -1689,10 +1689,10 @@
>         s1 += 4;
>         if (find == fnum-1)
>         {
> -         long new = fnum << 1;
> -         flist = (char**)gprealloc(flist, new*sizeof(char*),
> +         long nouveau = fnum << 1;
> +         flist = (char**)gprealloc(flist, nouveau*sizeof(char*),
>                                           fnum*sizeof(char*));
> -         fnum = new;
> +         fnum = nouveau;
>         }
>         flist[find++] = s2 = gpmalloc(strlen(s1) + 1);
>         if (*s1 == '"') (void)readstring(s1, s2, NULL);
> --- src/modules/stark.c~        Tue Jun 29 08:11:52 1999
> +++ src/modules/stark.c Thu Jul 22 15:01:04 1999
> @@ -628,7 +628,7 @@
>    long av = avma, av2, G, ms, j, i, nz, zcard, q, l, N;
>    GEN chi, nc, dc, p1, cond0, cond1, elts, Msign, umod2, lambda, nf;
>    GEN sg, p2, chib, diff, vt, z, idg, mu, idh, zid, zstruc, zgen, zchi;
> -  GEN allclass, class, bnr, beta, s, tr, p3, den, muslambda, pi;
> +  GEN allclass, classe, bnr, beta, s, tr, p3, den, muslambda, pi;
>
>    chi   = (GEN)datachi[8];
>    /* trivial case */
> @@ -717,8 +717,8 @@
>      for (j = 1; j <= ms; j++)
>        if (gcmp1((GEN)p2[j])) p1 = element_mul(nf, p1, (GEN)elts[j]);
>
> -    class = isprincipalray(bnr, p1);
> -    zchi[i] = (long)ComputeImagebyChar(chi, class, 0);
> +    classe = isprincipalray(bnr, p1);
> +    zchi[i] = (long)ComputeImagebyChar(chi, classe, 0);
>      zgen[i] = (long)p1;
>    }
>
> @@ -772,8 +772,8 @@
>      avma = av2;
>    }
>
> -  class = isprincipalray(bnr, idh);
> -  s = gmul(s, ComputeImagebyChar(chi, class, 0));
> +  classe = isprincipalray(bnr, idh);
> +  s = gmul(s, ComputeImagebyChar(chi, classe, 0));
>    s = gdiv(s, gsqrt(nc, prec));
>
>    p1 = gsubgs(gabs(s, prec), 1);
>
> Igor