| 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]