BXZERO undefined in libbigloo_s-4.6a.so with recent bignumber changes
Joseph Donaldson <[email protected]> Sun, 15 Sep 2024 18:01:47 +0000 (UTC)
| Newsgroups | gmane.lisp.scheme.bigloo |
|---|---|
| Message-ID | <[email protected]> |
------=_Part_8229151_1931656855.1726423307558 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Hello, Manuel, With recent bignumber changes, I am seeing BXZERO undefined errors when com= piling bdb when configured to build the full bee.=C2=A0 The error is: Linking... /usr/bin/ld: /home/jwd/bigloo_srcs/bigloo-1/lib/bigloo/4.6a/libbigloo_s-4.6= a.so: undefined reference to `BXZERO' From what I have seen, this is due to differences in the generic and gmp im= plementations of bignumbers. The generic implementation defines and exports= the functions BXZERO, BXPOSITIVE, and BXNEGATIVE. The gmp implementation d= oes not. However, when compiling the runtime library with BGL_BOOT=3D1, it = appears we are mixing the 2 implementations, resulting in unsafe/rsa.scm be= ing miscompiled. It rends up eferencing the function BXZERO (due to extern = definitions in bigloo_bignumber.h) which is not defined for the GMP bignumb= er implementation. I am not sure why this does not show up elsewhere but it= does surface when compiling bdb. I have not been able to find any easy wor= karounds. My guess is that the 2 implementations need to be reworked a bit = to have equivalent interfaces, i.e., both export BXZERO, BXPOSITIVE, and BX= NEGATIVE or not, but maybe, there is a better way that I have not thought o= f. Thanks,=C2=A0Joseph Donaldson=C2=A0 =C2=A0=20 ------=_Part_8229151_1931656855.1726423307558 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable <html><head></head><body><div class=3D"yahoo-style-wrap" style=3D"font-fami= ly:Helvetica Neue, Helvetica, Arial, sans-serif;font-size:13px;"><div dir= =3D"ltr" data-setdir=3D"false">Hello, Manuel,</div><div dir=3D"ltr" data-se= tdir=3D"false"><br></div><div dir=3D"ltr" data-setdir=3D"false">With recent= bignumber changes, I am seeing BXZERO undefined errors when compiling bdb = when configured to build the full bee. The error is:<br></div><div di= r=3D"ltr" data-setdir=3D"false"><br></div><div dir=3D"ltr" data-setdir=3D"f= alse"><div><blockquote>Linking...<br></blockquote><blockquote>/usr/bin/ld: = /home/jwd/bigloo_srcs/bigloo-1/lib/bigloo/4.6a/libbigloo_s-4.6a.so: undefin= ed reference to `BXZERO'<br><br></blockquote><br></div>From what I have see= n, this is due to differences in the generic and gmp implementations of big= numbers. The generic implementation defines and exports the functions BXZER= O, BXPOSITIVE, and BXNEGATIVE. The gmp implementation does not. However, wh= en compiling the runtime library with BGL_BOOT=3D1, it appears we are mixin= g the 2 implementations, resulting in unsafe/rsa.scm being miscompiled. It = rends up eferencing the function BXZERO (due to extern definitions in biglo= o_bignumber.h) which is not defined for the GMP bignumber implementation. I= am not sure why this does not show up elsewhere but it does surface when c= ompiling bdb. I have not been able to find any easy workarounds. My guess i= s that the 2 implementations need to be reworked a bit to have equivalent i= nterfaces, i.e., both export BXZERO, BXPOSITIVE, and BXNEGATIVE or not, but= maybe, there is a better way that I have not thought of.</div><div dir=3D"= ltr" data-setdir=3D"false"><br></div><div dir=3D"ltr" data-setdir=3D"false"= >Thanks, </div><div dir=3D"ltr" data-setdir=3D"false">Joseph Donaldson= <br></div></div></body></html> ------=_Part_8229151_1931656855.1726423307558--