[kaffe] Re: Kaffe ieee754_scalb - uClibc status
Peter S. Mazinger
ps.m at gmx.net
Tue Oct 18 15:53:55 PDT 2005
On Tue, 18 Oct 2005, Gustavo Guillermo Pérez wrote:
> Hello list, here the update info abour building kaffe on uClibc.
> 1)I'm not going to use X and awt.
> 2)Do not want native language support.
> 3)kaffe 1.1.6 and CVS, are the same proccess
> 4)uClibc version 0.9.28 (cvs snapshot)
>
> ISSUE:
> Kaffe still not want to load shared libraries as many other programs do on
> uClibc then, the use of --enable-static --with-staticlib is mandatory.
Use gentoo, there this issue is solved ;)
It is caused by old configure scripts that need patching so that they
correctly recognise shared lib support in uClibc.
Signs for incorrect recognition when running configure:
a. shared lib support is disabled although you used --enabled-shared
b. dependancy : unknown
The above sentences about static are incorrect, I have built kaffe w/
shared lib support, both 1.1.5 and .6 in a gentoo env.
> You still need jikes, build them static on libc env and copy to chrooted env,
> if you just will use the jre and not javac, you'll not need anymore jikes you
> can delete them after kaffe build.
>
> My Configure line:
> ./configure --prefix=/usr/local/kaffe --without-esd
> --without-classpath-gtk-awt --without-alsa --disable-nls --enable-static
> --with-staticlib --enable-gmp
>
> It will produce at time of linking:
>
> gcc -g -O2 -Wall -W -Wextra -pthread -o kaffe-bin main.o
> version.o .libs/kaffe-binS.o
> -Wl,--export-dynamic ../../libraries/clib/native/.libs/libnative.a ../../libraries/clib/net/.libs/libnet.a ../../libraries/clib/io/.libs/libio.a ../../libraries/clib/nio/.libs/libnio.a /usr/lib/libiconv.so ../../libraries/clib/zip/.libs/libzip.a
> -lz ../../libraries/clib/management/.libs/libmanagement.a ../../libraries/clib/security/.libs/libsecurity.a /var/tmp/kaffe-1.1.6/work/kaffe-1.1.6/kaffe/kaffevm/.libs/libkaffevm.a ../../kaffe/kaffevm/.libs/libkaffevm.a
> -ldl -lm ../../replace/.libs/libreplace.a
> ../../libraries/clib/native/.libs/libnative.a(e_scalb.o): In function
> `__ieee754_scalb':
> /var/tmp/kaffe-1.1.6/work/kaffe-1.1.6/libraries/clib/fdlibm/e_scalb.c:43:
> undefined reference to `KaffeMath_isnan'
> /var/tmp/kaffe-1.1.6/work/kaffe-1.1.6/libraries/clib/fdlibm/e_scalb.c:43:
> undefined reference to `KaffeMath_isnan'
> collect2: ld returned 1 exit status
>
> In the file: namespace.h (generated by build_mathnamespace)
> #define isnan KaffeMath_isnan
> #define finite KaffeMath_finite
I had only the first one missing and removed #define isnan ... from
namespace.h (I am using the full susv3 patches from bugs.uclibc.org
though, so my libm is different from upstream)
Peter
>
> This two definitions isnan and finite, does not appears in the code :(
> But isnan and finite are being used on __ieee754_scalb
> We can enable the special definition _SCALB_INT just for uclibc (remember this
> is a special build).
> apply this temporary patch over libraries/clib/fdlibm/e_scalb.c (we use the
> alternative definitions)
> ---------------------------------
> --- /d/uLinuxTS3/GUS/kaffe-1.1.6/work/kaffe-1.1.6/libraries/clib/fdlibm/e_scalb.c
> 2005-04-22 12:03:49.000000000 -0500
> +++ /mnt/GUS/kaffe20051017/kaffe/libraries/clib/fdlibm/e_scalb.c 2005-10-17
> 22:55:31.000000000 -0500
> @@ -21,6 +21,10 @@
>
> #ifndef _DOUBLE_IS_32BITS
>
> +#ifdef __UCLIBC__
> +#define _SCALB_INT 1
> +#endif
> +
> #ifdef _SCALB_INT
> #ifdef __STDC__
> double __ieee754_scalb(double x, int fn)
> ---------------------------------
>
> Kaffe still build proper on uClibc and works faster and good as expected for
> me.
> :) please if you see something helpful, let me know.
>
--
Peter S. Mazinger <ps dot m at gmx dot net> ID: 0xA5F059F2
Key fingerprint = 92A4 31E1 56BC 3D5A 2D08 BB6E C389 975E A5F0 59F2
More information about the kaffe
mailing list