Bill Allombert on Wed, 11 Dec 2002 12:42:23 +0100 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: conflicting declarations |
On Tue, Dec 10, 2002 at 08:39:19PM -0500, Michael Somos wrote: > pari-dev, > I got the latest CVS and encountered this problem : > > ========================================================================== > Shall we try to build pari 2.2.5 (development CHANGES-) now (y/n)? [n] > Ok. Type "cd Osolaris-sparcv9.dbg; make install" when you are ready > Bye ! > danube:/tmp/local/pari> cd Osolaris-sparcv9.dbg > danube:/tmp/local/pari/Osolaris-sparcv9.dbg> date;make install;date > Tue Dec 10 20:28:27 EST 2002 > /usr/ccs/bin/as -P -I. -D__GNUC__ -T -o kernel.o ../src/kernel/sparcv8/level0_sp > arcv8_micro.S > cat ../src/kernel/sparcv8/level0.h ../src/kernel/none/level1.h > pariinl.h > /usr/local/bin/gcc -c -DMEMSTEP=1048576 -g -Wall -Wno-implicit -DBOTH_GNUPLOT > _AND_X11 -I. -I../src/headers -o mp.o ../src/kernel/none/mp.c > ../src/kernel/none/mp.c:25: conflicting declarations of `overflow' > pariinl.h:59: `overflow' previously declared here > ../src/kernel/none/mp.c:26: conflicting declarations of `hiremainder' > pariinl.h:58: `hiremainder' previously declared here > make: *** [mp.o] Error 1 My fault. I have commit the patch for darwin/ANSI C without testing sparc. The problem is a bit strange: in src/kernel/sparcv8/level0.h there is #else /* ASMINLINE */ register ulong hiremainder __asm__("%g5"); register ulong overflow __asm__("%g6"); So hiremainder and overflow are neither static nor extern, they live in registers and are shared by every files. I suppose level0.h n this case need to define REGISTER_HIREMAINDER and REGISTER_OVERFLOW and then adding #ifndef REGISTER_HIREMAINDER ulong hiremainder in mp.c Anyone has a better idea ? Cheers, Bill.