George Koehler <kern...@gmail.com> writes:

> On Sat, 19 Feb 2022 12:29:18 +0100
> Omar Polo <o...@openbsd.org> wrote:
>
>> Hello,
>> 
>> please find attached a trivial diff to update lang/sbcl to the latest
>> version, 2.2.1 release the last January 30.
>> 
>> The changelog is here: http://www.sbcl.org/news.html#2.2.1
>> 
>> `make test' seems just like the current version, I'm typing this mail
>> from stumpwm built with sbcl-threads, and I've also tested a couple of
>> other programs that ends up using various libraries from quicklisp with
>> success.
>> 
>> OK/comments?
>
> I have a problem: if devel/capstone/main is installed, then sbcl fails
> to build on powerpc.  This happens with sbcl-2.1.11 or sbcl-2.2.1.
>
> sbcl doesn't depend on capstone, and doesn't need capstone to build
> contrib/sb-capstone, but does try to test sb-capstone during the
> build.  If libcapstone.so is missing, then sbcl skips the test.  If
> libcapstone.so is found, then the test crashes, so the build fails.
> An installed capstone broke sbcl-2.1.11 in the ongoing powerpc bulk;
> I told the bulk to retry sbcl; it succeeded after removing capstone.
>
> contrib might also try to open libmpfr.so (devel/mpfr) and
> libgmp.so (devel/gmp), but both of these are somewhere in sbcl's
> build dependencies.
>
> The fix might be to disable the test, but I have not yet tried this.
> The build failure in sbcl-2.2.1 is,

I can't reproduce the issue on amd64, it builds fine without capstone
and the tests are passing if it's installed.

> Doing 3 pending tests of 3 tests total.
> CORRUPTION WARNING in SBCL pid 41036:
> Memory fault at 0x0 (pc=0xb96bb61c)
> The integrity of this image is possibly compromised.
> Exiting.
>    0: [I*]0x9361bda0 pc=0xb96bb61c {0x50c37288+68a84394} {code_serialno=9970}
>    1: [*] 0x9361bd80 pc=0x50c374b8 {0x50c37288+0230} SB-CAPSTONE::CS-OPEN

could this be an issue in capstone itself on powerpc?
SB-CAPSTONE::CS-OPEN is "just"

(define-alien-routine cs-open int (arch int) (mode (integer 64)) (handle 
unsigned :out))

but I don't know how sbcl calls into c.  To be fair the `integer 64`
looks wrong, cs_open takes an enum as second argument which should be
just an `int' and the fault at 0x0 could be that 32 bits of mode are
read as the next argument which should be a pointer; I'm probably
talking crap tho.  I'll do a build on i386 out of curiosity thought :)

Reply via email to