| 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