Karim BELABAS on Sat, 15 Mar 2003 11:02:28 +0100 (MET)


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

Re: CVS build fails on Solaris gcc


On Mon, 3 Mar 2003, Ilya Zakharevich wrote:
> kernel.o: In function `divll':
> kernel.o(.text+0x5c): undefined reference to `hiremainder'
> kernel.o(.text+0x60): undefined reference to `hiremainder'
> kernel.o(.text+0x7c): undefined reference to `hiremainder'

It was due to an unfortunate oversight: some (old) non-inline assembler code
was surrounded by #ifndef __GNUC__ [ Thx for the tip, Igor! ], since with gcc
we use a (better) inline assembler.

But my recent kernel patches (uniform interface for all kernels) require that
the corresponding symbols be properly defined in the library, in case
somebody compiles with a different compiler. In fact, compiling with a
non-gcc compiler then linking with a gcc-compiled libpari failed on many
architecture.

I did not detect your problem on my machine (gcc-2.95.*) because __GNUC__ was
not passed to cpp when preprocessing .S files. It breaks with gcc3.

I have removed the spurious conditional inclusion, so it should work now.

    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]