Karim BELABAS on Tue, 4 Mar 2003 16:51:28 +0100 (MET) |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: linker warning |
On Tue, 4 Mar 2003, Bill Allombert wrote: > On Sun, Mar 02, 2003 at 08:33:01PM +0100, Karim BELABAS wrote: >> I also have removed some of the code duplication, but didn't dare merging the >> sparcv7 assembler yet, since I cannot test it. > > You can test it by using Configure --kernel=sparcv7-none. > > > 4) These global symbols are still being defined and included in libpari in > > case one uses different compilers when compiling the library and applications > > [ a bad idea, but... ]. It's the level0 kernel's job to define them, and it > > did that [ without using them, in some cases ]. > > Where ? I cannot find them. In one of the various level0.* files. > > These symbols were mistakenly redefined in kernel/none/mp.c and > > kernel/gmp/mp.c. Hence the linker's warning: two global symbols with the > > same name had been defined, one through direct assembly with 'as', the other > > through gcc's compilation of mp.c. > > Maybe i am confused, but what happens with kernel=none ? In this case, hiremainder and overflow are defined in src/kernel/none/level0.c, by way of including src/kernel/none/level0.h, with the right set of #define. It's a terrible mess. I started to rationalize this by removing the worst hacks first (sparc). I'm not claiming the current situation is satisfactory. All the more as it seems I've forgotten a case, and hiremainder may not be defined [ cf Ilya's and Igor's bug reports ]. Also, sparcv8_super division is currently broken when cc = gcc, because it accesses an irrelevant global 'hiremainder' variable, I'm working on it. Karim. -- Karim Belabas Tel: (+33) (0)1 69 15 57 48 Dép. de Mathématiques, Bât. 425 Fax: (+33) (0)1 69 15 60 19 Université Paris-Sud http://www.math.u-psud.fr/~belabas/ F-91405 Orsay (France) http://www.parigp-home.de/ [PARI/GP]