SBCL 2.3.11 (and many older versions) don't build on Freebsd 14.

Bug #2046966 reported by David J. Fiander
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
SBCL
Fix Released
Undecided
Unassigned

Bug Description

When I try to build SBCL on FreeBSD 14, it fails to compile src/runtime/bsd-os.c:

bsd-os.c:290:50: error: incompatible function pointer types passing '__siginfohandler_t *' (aka 'void (*)(int, struct __siginfo *, void *)') to parameter of type 'interrupt_handler_t' (aka 'void (*)(int, struct __siginfo *, struct __ucontext *)') [-Wincompatible-function-pointer-types]
                                                 (__siginfohandler_t *)
                                                 ^~~~~~~~~~~~~~~~~~~~~~
./interrupt.h:124:64: note: passing argument to parameter 'handler' here
extern void ll_install_handler(int signal, interrupt_handler_t handler);

I'm not sure why there's an explicit cast to (__siginfohandler_t *) on line 290 of bsd-os.c, because it's calling ll_install_handler(), which is an internal SBCL runtime function that just takes an interrupt_handler_t as an argument. Removing the FreeBSD-specific conditional code compiles clean and passes all the tests.

Revision history for this message
Stas Boukarev (stassats) wrote :

Can you create a patch?

Revision history for this message
Douglas Katzman (dougk) wrote :
Stas Boukarev (stassats)
Changed in sbcl:
status: New → Fix Committed
Changed in sbcl:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.