Make ANSI Common Lisp available on Haiku (again)

That hacky patch for arith-slow.pure.lisp should really only be necessary for testing threads. As you pointed out, once threading is enabled the tests for arith-slow.pure.lisp fail very early on, unfortunately. That patch was to let tests run a little further to see if only that particular test was not working properly in threaded mode. In non-threaded mode, that patch should not be necessary at all and the tests should run okay but you will have a non-threaded build of sbcl in that case. If the non-threaded build is failing at some part, that might be due to some other feature in later versions of sbcl that got turned on that is finicky on Haiku (perhaps simd or perhaps one of the compression options?). I believe I was able to get that to build and test successfully but with many features disabled (including threads) albeit with a far less featured non-threaded sbcl build.

Great news on getting what looks like the start of threading support in upstream for Haiku. One thing I noticed is that pthread_getattr_np is not implemented but it looks like this might be available in Haiku? Not sure if enabling it would help. I wish I could provide some more suggestions or guidance but this is where I ended up getting stuck as it was unclear if there some other bits in the runtime that might need patching to work with Haiku or if the way threading works in sbcl was triggering some conditions in Haiku itself.

OK, understand.

My concern is that after applying threading patch, this error shows up in different places regardless of the options and their combinations I build SBCL: with or without threads, core compressions or simd.

Great, I will take a look at it.

Built sbcl 2.2.11 and 2.3.11:

~/Desktop> ls -al /boot/home/haikuports/packages/sbcl-2.2.11-1-x86_64.hpkg
-rw-r--r-- 1 user root 11863865 Dec 22 15:05 /boot/home/haikuports/packages/sbcl-2.2.11-1-x86_64.hpkg
-rw-r--r-- 1 user root 12330348 Dec 24 03:23 /boot/home/haikuports/packages/sbcl-2.3.11-1-x86_64.hpkg

I can test sbcl 2.4.11 if that is going to become the new Haiku port. :smirk:

1 Like

Hi @cocobean, thank you for your interest. The available version SBCL 2.4.11 does not contain recent Haiku fixes and particularly fails building.

You can instead grab the most recent version from git master https://github.com/sbcl/sbcl. You can compile SBCL with CLIPS from Depot with the following command:

cd contrib/asdf && sh pull-asdf.sh
SBCL_CONTRIB_BLOCKLIST=" sb-bsd-sockets sb-simple-streams" sh make.sh --xc-host='clisp -norc' --with-sb-core-compression --with-sb-simd-pack --with-sb-thread

I tested by running included tests. The reality is there are several different errors. Many of them seem to be caused by threads + garbage collection. Sometimes the runtime fails after reporting successful test. Sometimes a test seems to succeed one run but fails next time.

I suspect the wrong inclusion of header files for signal and error constants in contrib/sb-posix/constants.lisp. Also, it is interesting to investigate the build log related to Grovel. Grovel is used to generate Common Lisp code from C header files. This log contains a list of expected but not found declaration of constants and functions, most probably because of wrong / incomplete list of header files provided. In my case, this list is:

; Note: Building "sb-posix"
STYLE-WARNING: Couldn't grovel for SIGEMT (unknown to the C compiler).
STYLE-WARNING: Couldn't grovel for SIGPWR (unknown to the C compiler).
STYLE-WARNING: Couldn't grovel for ENOTBLK (unknown to the C compiler).
STYLE-WARNING: Couldn't grovel for ECHRNG (unknown to the C compiler).
STYLE-WARNING: Couldn't grovel for EL2NSYNC (unknown to the C compiler).
STYLE-WARNING: Couldn't grovel for EL3HLT (unknown to the C compiler).
STYLE-WARNING: Couldn't grovel for EL3RST (unknown to the C compiler).
STYLE-WARNING: Couldn't grovel for ELNRNG (unknown to the C compiler).
STYLE-WARNING: Couldn't grovel for EUNATCH (unknown to the C compiler).
STYLE-WARNING: Couldn't grovel for ENOCSI (unknown to the C compiler).
STYLE-WARNING: Couldn't grovel for EL2HLT (unknown to the C compiler).
STYLE-WARNING: Couldn't grovel for EBADE (unknown to the C compiler).
STYLE-WARNING: Couldn't grovel for EBADR (unknown to the C compiler).
STYLE-WARNING: Couldn't grovel for EXFULL (unknown to the C compiler).
STYLE-WARNING: Couldn't grovel for ENOANO (unknown to the C compiler).
STYLE-WARNING: Couldn't grovel for EBADRQC (unknown to the C compiler).
STYLE-WARNING: Couldn't grovel for EBADSLT (unknown to the C compiler).
STYLE-WARNING: Couldn't grovel for EDEADLOCK (unknown to the C compiler).
STYLE-WARNING: Couldn't grovel for EBFONT (unknown to the C compiler).
STYLE-WARNING: Couldn't grovel for ENONET (unknown to the C compiler).
STYLE-WARNING: Couldn't grovel for ENOPKG (unknown to the C compiler).
STYLE-WARNING: Couldn't grovel for EREMOTE (unknown to the C compiler).
STYLE-WARNING: Couldn't grovel for EADV (unknown to the C compiler).
STYLE-WARNING: Couldn't grovel for ESRMNT (unknown to the C compiler).
STYLE-WARNING: Couldn't grovel for ECOMM (unknown to the C compiler).
STYLE-WARNING: Couldn't grovel for EDOTDOT (unknown to the C compiler).
STYLE-WARNING: Couldn't grovel for ENOTUNIQ (unknown to the C compiler).
STYLE-WARNING: Couldn't grovel for EBADFD (unknown to the C compiler).
STYLE-WARNING: Couldn't grovel for EREMCHG (unknown to the C compiler).
STYLE-WARNING: Couldn't grovel for ELIBACC (unknown to the C compiler).
STYLE-WARNING: Couldn't grovel for ELIBBAD (unknown to the C compiler).
STYLE-WARNING: Couldn't grovel for ELIBSCN (unknown to the C compiler).
STYLE-WARNING: Couldn't grovel for ELIBMAX (unknown to the C compiler).
STYLE-WARNING: Couldn't grovel for ELIBEXEC (unknown to the C compiler).
STYLE-WARNING: Couldn't grovel for ERESTART (unknown to the C compiler).
STYLE-WARNING: Couldn't grovel for ESTRPIPE (unknown to the C compiler).
STYLE-WARNING: Couldn't grovel for EUSERS (unknown to the C compiler).
STYLE-WARNING: Couldn't grovel for ESOCKTNOSUPPORT (unknown to the C compiler).
STYLE-WARNING: Couldn't grovel for ETOOMANYREFS (unknown to the C compiler).
STYLE-WARNING: Couldn't grovel for EUCLEAN (unknown to the C compiler).
STYLE-WARNING: Couldn't grovel for ENOTNAM (unknown to the C compiler).
STYLE-WARNING: Couldn't grovel for ENAVAIL (unknown to the C compiler).
STYLE-WARNING: Couldn't grovel for EREMOTEIO (unknown to the C compiler).
STYLE-WARNING: Couldn't grovel for ENOMEDIUM (unknown to the C compiler).
STYLE-WARNING: Couldn't grovel for EMEDIUMTYPE (unknown to the C compiler).
STYLE-WARNING: Couldn't grovel for S_IFWHT (unknown to the C compiler).
STYLE-WARNING: Couldn't grovel for MCL_CURRENT (unknown to the C compiler).
STYLE-WARNING: Couldn't grovel for MCL_FUTURE (unknown to the C compiler).
STYLE-WARNING: Couldn't grovel for O_ASYNC (unknown to the C compiler).
STYLE-WARNING: Couldn't grovel for O_LARGEFILE (unknown to the C compiler).
STYLE-WARNING: Couldn't grovel for F_GETOWN (unknown to the C compiler).
STYLE-WARNING: Couldn't grovel for F_SETOWN (unknown to the C compiler).
STYLE-WARNING: Didn't find definition for "fdatasync"
STYLE-WARNING: Didn't find definition for "setfsuid"
STYLE-WARNING: Didn't find definition for "setresuid"
STYLE-WARNING: Didn't find definition for "setfsgid"
STYLE-WARNING: Didn't find definition for "setresgid"
STYLE-WARNING: Didn't find definition for "mlockall"
STYLE-WARNING: Didn't find definition for "munlockall"

I am not sure if this is critical or not, all them are reported as style warnings, not errors.

EDIT: It seems all these constants / functions are not available in Haiku and optionally needs to be marked #-haiku.

Thanks. I built sbcl 2.4.11. I’ll review the parts you mentioned for further clean up.

ls -al /boot/home/haikuports/packages/sbcl-2.4.11-1-x86_64.hpkg
-rw-r--r-- 1 user root 11810653 Dec 24 04:17 /boot/home/haikuports/packages/sbcl-2.4.11-1-x86_64.hpkg
1 Like

I am unsure the errors in tests are critical. I can see such errors also without stopping the process. More than that, the tests can run for quite long time without failing and threads seem to work in many cases. The memory corruption seems to be related to garbage collector.

On the other hand, sometimes the process stops in SBCL debugger reporting a long list of missing symbols, maybe all C functions involved in runtime.

Of course, the Haiku port needs clean-up and stabilization, but is in rather good condition.

3 Likes

@alpopa there is a PR from today for SBCL from @cocobean , could you have a look at that?

1 Like

I am really waiting for SBCL to integrate my patches. The working recipe of the current stage is available at my desktop. I plan to update SBCL recipe one per month after each upstream release. Unfortunately, the for December the tree is frozen for 2.5.0 release, so BSD Sockets patch I sent will be probably integrated in January. After that I plan to prepare ASDF patch and one more patch that enables _np variants of threading functions.

That being said, I am glad if somebody else is also working on this. Of course I will review the recipe.

1 Like

Thanks in advance, and for the work you are putting into this, much appreciated! :+1:

OK, I see the existing recipe for SBCL 2.2.4 is just bumped to 2.4.11. I did not test the build with this recipe, but overall, I see no reason to merge this one. The release 2.5.0 of SBCL is expected at 29 of December. After that, I will prepare the current recipe.

2 Likes

SBCL 2.5.0 built on Haiku with the patch for bsd.

~/Desktop> ls -al ~/haikuports/packages/sbcl*
-rw-r--r-- 1 user root 11819047 Dec 29 08:31 /boot/home/haikuports/packages/sbcl-2.5.0-1-x86_64.hpkg

Seems I hit a memory corruption during unit tests - this didn’t happen with SBCL 2.4.11.

CORRUPTION WARNING in SBCL pid 8795:
Memory fault at 0x7 (pc=0x20000040, fp=0x49cda87ce8, sp=0x49cda878f8)
The integrity of this image is possibly compromised.
Exiting.
Welcome to LDB, a low-level debugger for the Lisp runtime environment.
ldb>

You can continue from the debugger which will complete the remaining unit tests.

**Finished running tests** .... (109 tests skipped for this combination of platform and features)

I’ll wait until you can review.

1 Like

I believe the memory corruption is since threads support in SBCL, which is enabled in 2.5.0 and disabled in 2.4.11. You can see it by asking:

*features*

in SBCL shell.

They are of course need to be investigated. After release, the repository is again open for patches, so new ones will hopefully be merged in January. I already sent the (corrected) patch for SB-BSD-SOCKETS and prepared the working patch for ASDF (it is a good idea to keep the same version of ASDF module in SBCL on all OSes, and SBCL refrains from upgrading it from upstream).

Next, I plan to play with _np versions of threading functions, and your help @cocobean would be much appreciated here. There are chances that once SBCL on Haiku has _ng threading support, the memory corruption will be less an issue.

Anyway, the memory corruption happens sporadically (but rather regular) and only on intensive testing. Overall, SBCL can spawn multiple threads without failing. So, today I plan to submit the recipe for 2.5.0.

1 Like

As for memory corruption, threads and garbage collection: Of course it may be also a regression. The relevant code is in src/runtime/{thread.c, haiku-os.c}. The threads support patched these files.

The garbage collection related stuff in in src/runtime/{gc.h, cheneygc.c, fullcgc.c, gencgc.c, gc-*.c}. Again, the exact variant of active GC can be consulted in *features*. These files were not affected by Haiku patches, but maybe some sensible changes were introduced between SBCL releases. My guess (I never programmed threads or GC or similar) is to start looking in gc-thread-pool.c. Maybe gc-unit-tests.c could help as well.

I see the function int pthread_getattr_np(pthread_t thread, pthread_attr_t *attr) is available in gnu/pthread.h (not in posix/pthread.h). So, adding this function to SBCL runtime is the matter of including one more header.

@hoanga, @cocobean, can you please review this patch (link available 1 week)?

With this patch, SBCL compiles but apparently it makes no difference.

Compiled fine using CLISP. Can clean out older SBCL recipes.

~/haikuports/dev-lisp/sbcl> ls -al /boot/home/haikuports/packages/sbcl-2.5.0-1-x86_64.hpkg
-rw-r--r-- 1 user root 12633547 Dec 30 05:26 /boot/home/haikuports/packages/sbcl-2.5.0-1-x86_64.hpkg

Needed to re-enable unit testing in recipe:

TEST()

{
    cd tests
    run-tests.sh
}

NOTE: bug during unit testing of arith-slow.pure.lisp

::: Running (LOGAND :COMPLICATED-IDENTITY)
CORRUPTION WARNING in SBCL pid 938 pthread 0x11f1d8e00440:
Memory fault at 0x11a20650678 (pc=0x20101076 [code 0x20100520+0xB56 ID 0x0], fp=0x11a10229f58, sp=0x11a10227ca8) pthread 0x11f1d8e00440
The integrity of this image is possibly compromised.
Exiting.
   0: fp=0x11a10229f58 pc=0x20101076 SB-C::UNWIND
   1: fp=0x11a10229fe0 pc=0x110050658a SB-C::IR1-CONVERT-LET
   2: fp=0x11a1022a090 pc=0x110020bdaa SB-C::IR1-CONVERT
   3: fp=0x11a1022a140 pc=0x1100208fa6 SB-C::IR1-CONVERT-COMMON-FUNCTOID
   4: fp=0x11a1022a1f0 pc=0x110020bd16 SB-C::IR1-CONVERT
   5: fp=0x11a1022a250 pc=0x1100e06b15 SB-C::FILTER-LVAR
   6: fp=0x11a1022a278 pc=0x1100df4eaf SB-C::CONVERT-TYPE-CHECK
   7: fp=0x11a1022a2d0 pc=0x1100dbd6cb SB-C::GENERATE-TYPE-CHECKS
   8: fp=0x11a1022a2e8 pc=0x1100e465fd SB-C::IR1-PHASES
   9: fp=0x11a1022a308 pc=0x1100e05549 SB-C::COMPILE-COMPONENT
  10: fp=0x11a1022a350 pc=0x1100e508df SB-C::%COMPILE
  11: fp=0x11a1022a3f0 pc=0x1100d8a111 (LAMBDA () :IN SB-C::COMPILE-IN-LEXENV)
  12: fp=0x11a1022a4d0 pc=0x1100cf1f2f (FLET SB-C::WITH-IT :IN SB-C::%WITH-COMPILATION-UNIT)
  13: fp=0x11a1022a5b8 pc=0x1100d89858 SB-C::COMPILE-IN-LEXENV
  14: fp=0x11a1022a640 pc=0x1100739c20 COMPILE
  15: fp=0x11a1022a810 pc=0x1104daa1c4 TEST-UTIL::COMPILE-CAPTURING-OUTPUT-AND-CONDITIONS
  16: fp=0x11a1022a900 pc=0x1104dab4ae TEST-UTIL::CHECKED-COMPILE
  17: fp=0x11a1022a970 pc=0x11018f2456 (FLET TEST52WBW::DOIT :IN "/sources/sbcl-sbcl-2.5.0/tests/arith-slow.pure.lisp")
  18: fp=0x11a1022aa60 pc=0x11007c8a62 (FLET SB-UNIX::BODY :IN SB-THREAD::RUN)
  19: fp=0x11a1022ab50 pc=0x11007c9218 (FLET "WITHOUT-INTERRUPTS-BODY-" :IN SB-THREAD::RUN)
  20: fp=0x11a1022aca8 pc=0x11007c8607 (FLET SB-UNIX::BODY :IN SB-THREAD::RUN)
  21: fp=0x11a1022ad98 pc=0x11007c93cd (FLET "WITHOUT-INTERRUPTS-BODY-" :IN SB-THREAD::RUN)
  22: fp=0x11a1022ae88 pc=0x11007c83d9 SB-THREAD::RUN
  23: fp=0x11a1022aec0 pc=0x65e10d121 Foreign function call_into_lisp_
  24: fp=0x11a1022aee0 pc=0x65e0de14a Foreign function funcall1
test failed, expected 104 return code, got 1

@cocobean, I would keep the patchset for recipe as small as possible and always try to send the patches to upstream. The patches included with recipe:

  1. Enables sb-bsd-sockets module,
  2. Fixes asdf module.

I already sent them to SBCL and wait for the feedback. This new patch (enable pthread_getattr_np function) probably makes the difference, but I do not know what it fixes or enables. If you approve it, I will send it as well upstream.

In my testing, tests from the following files fail (did not research if all the tests from each file fail or not):

  • arith-slow.pure.lisp,
  • info.pure.lisp,
  • profile.pure.lisp,
  • symbol.pure.lisp.

The errors are similar to what you pasted above. Additionally, the test :sproof-consing-test from sb-prof.impure.lisp freezes whole OS, after which system needs restarting. Several times the tests crash with popup asking to choose what to do (and I choose Terminare). At the end the report says several dozens of tests are not passed.

I can modify the recipe to re-enable TEST() function, but other than that I would keep it as is for 2.5.0 release. @Begasus, do you think I should modify the recipe?

Nah, PR should be fine once the buildmasters are online, you “can” enable the TEST() case, doesn’t effect the build process as they don’t run the tests (as @jmairboeck already mentioned).
So it’s up to you, you can do this now or at a later stage.

OK, thank you @Begasus. I would leave the recipe 2.5.0 as is. For 2.5.1 (end of January) I can uncomment the TEST() function.

During January, my goal is to upstream all remaining existing patches. Additionally, it is necessary to analyze the failing tests. Maybe some interesting patterns can be found and some more fixes can be prepared.

1 Like

Will do for now, thanks again! I’ve got my hands tied trying to resolve other things atm. :smiley:

1 Like

@alpopa - With pthread patch - it compiled a bit then broke into the LISP debugger:


; wrote /sources/sbcl-sbcl-2.5.0/contrib/sb-simd/../../obj/from-self/contrib/sb-simd/code/define-modify-macros.fasl
; compilation finished in 0:00:00.300
make[1]: Leaving directory '/sources/sbcl-sbcl-2.5.0/contrib/sb-simd'
make MODULE_REQUIRES="" -C asdf
make[1]: Entering directory '/sources/sbcl-sbcl-2.5.0/contrib/asdf'
mkdir -p ../..//obj/sbcl-home/contrib/
../..//src/runtime/sbcl --noinform --core ../..//output/sbcl.core --lose-on-corruption --disable-debugger --no-sysinit --no-userinit --eval '(setf (sb-ext:readtable-base-char-preference *readtable*) :both)' --eval '(compile-file #p"SYS:CONTRIB;ASDF;UIOP.LISP" :print nil :output-file (merge-pathnames (parse-native-namestring "../..//obj/sbcl-home/contrib//uiop.fasl")))' </dev/null
Missing required foreign symbol 'allocation_tracker_sized'
Missing required foreign symbol 'allocation_tracker_counted'
Missing required foreign symbol 'alloc_funinstance'
Missing required foreign symbol 'make_list'
Missing required foreign symbol 'listify_rest_arg'
Missing required foreign symbol 'alloc_list'
Missing required foreign symbol 'alloc'
Missing required foreign symbol 'switch_to_arena'
Missing required foreign symbol 'debug_print'
Missing required foreign symbol 'malloc'
Missing required foreign symbol 'free'
Missing required foreign symbol 'strlen'
Missing required foreign symbol 'next_free_page'
Missing required foreign symbol 'DYNAMIC_SPACE_START'
Missing required foreign symbol 'read_only_space_free_pointer'
Missing required foreign symbol 'READ_ONLY_SPACE_START'
Missing required foreign symbol 'memmove'
Missing required foreign symbol 'os_get_errno'
Missing required foreign symbol 'os_set_errno'
Missing required foreign symbol 'strerror'
Missing required foreign symbol 'ldb_monitor'
Missing required foreign symbol 'arena_bytes_used'
Missing required foreign symbol 'arena_release_memblks'
Missing required foreign symbol 'sbcl_new_arena'
Missing required foreign symbol 'sbcl_delete_arena'
Missing required foreign symbol 'arena_chain'
Missing required foreign symbol 'arena_mprotect'
Missing required foreign symbol 'find_dynspace_to_arena_ptrs'
Missing required foreign symbol 'floor'
Missing required foreign symbol 'floorf'
Missing required foreign symbol 'arch_write_linkage_table_entry'
Missing required foreign symbol 'undefined_alien_address'
Missing required foreign symbol 'alien_linkage_table_n_prelinked'
Missing required foreign symbol 'dladdr'
Missing required foreign symbol 'getenv'
Missing required foreign symbol 'rename'
Missing required foreign symbol 'open'
Missing required foreign symbol 'close'
Missing required foreign symbol 'sb_mkstemp'
Missing required foreign symbol 'access'
Missing required foreign symbol 'isatty'
Missing required foreign symbol 'lseek'
Missing required foreign symbol 'read'
Missing required foreign symbol 'write'
Missing required foreign symbol 'pipe'
Missing required foreign symbol 'mkdir'
Missing required foreign symbol 'getcwd'
Missing required foreign symbol 'dup'
Missing required foreign symbol '_exit'
Missing required foreign symbol 'exit'
Missing required foreign symbol 'getpid'
Missing required foreign symbol 'getuid'
Missing required foreign symbol 'uid_username'
Missing required foreign symbol 'uid_homedir'
Missing required foreign symbol 'user_homedir'
Missing required foreign symbol 'wrapped_readlink'
Missing required foreign symbol 'sb_realpath'
Missing required foreign symbol 'unlink'
Missing required foreign symbol 'gethostname'
Missing required foreign symbol 'setsid'
Missing required foreign symbol 'ioctl'
Missing required foreign symbol 'getrusage'
Missing required foreign symbol 'poll'
Missing required foreign symbol 'select'
Missing required foreign symbol 'stat_wrapper'
Missing required foreign symbol 'lstat_wrapper'
Missing required foreign symbol 'fstat_wrapper'
Missing required foreign symbol 'get_timezone'
Missing required foreign symbol 'sb_nanosleep'
Missing required foreign symbol 'sb_nanosleep_double'
Missing required foreign symbol 'sb_nanosleep_float'
Missing required foreign symbol 'getitimer'
Missing required foreign symbol 'setitimer'
Missing required foreign symbol 'clock_gettime'
Missing required foreign symbol 'gettimeofday'
Missing required foreign symbol 'lisp_init_time'
Missing required foreign symbol 'sb_opendir'
Missing required foreign symbol 'sb_readdir'
Missing required foreign symbol 'sb_closedir'
Missing required foreign symbol 'sb_dirent_name'
Missing required foreign symbol 'lisp_package_vector'
Missing required foreign symbol 'memcpy'
Missing required foreign symbol 'ceil'
Missing required foreign symbol 'ceilf'
Missing required foreign symbol 'trunc'
Missing required foreign symbol 'truncf'
Missing required foreign symbol 'sin'
Missing required foreign symbol 'cos'
Missing required foreign symbol 'tan'
Missing required foreign symbol 'atan'
Missing required foreign symbol 'atan2'
Missing required foreign symbol 'acos'
Missing required foreign symbol 'asin'
Missing required foreign symbol 'cosh'
Missing required foreign symbol 'sinh'
Missing required foreign symbol 'tanh'
Missing required foreign symbol 'asinh'
Missing required foreign symbol 'acosh'
Missing required foreign symbol 'atanh'
Missing required foreign symbol 'hypot'
Missing required foreign symbol 'exp'
Missing required foreign symbol 'log'
Missing required foreign symbol 'log10'
Missing required foreign symbol 'pow'
Missing required foreign symbol 'log1p'
Missing required foreign symbol 'log2'
Missing required foreign symbol 'os_allocate'
Missing required foreign symbol 'os_deallocate'
Missing required foreign symbol 'atomic_bump_static_space_free_ptr'
Missing required foreign symbol 'alloc_code_object'
Missing required foreign symbol 'sb_fileno'
Missing required foreign symbol 'tmpfile'
Missing required foreign symbol 'fclose'
Missing required foreign symbol 'sbcl_runtime'
Missing required foreign symbol 'posix_argv'
Missing required foreign symbol 'core_string'
Missing required foreign symbol 'dlopen'
Missing required foreign symbol 'dlclose'
Missing required foreign symbol 'dlerror'
Missing required foreign symbol 'dlsym'
Missing required foreign symbol 'gc_card_table_nbits'
Missing required foreign symbol 'alloc_profiling'
Missing required foreign symbol 'lisp_gc_strategy_id'
Missing required foreign symbol 'lisp_perfhash_with_options'
Missing required foreign symbol 'compress_vector'
Missing required foreign symbol 'decompress_vector'
Missing required foreign symbol 'compute_udiv_magic32'
Missing required foreign symbol 'callback_wrapper_trampoline'
Missing required foreign symbol 'os_context_pc'
Missing required foreign symbol 'set_os_context_pc'
Missing required foreign symbol 'os_context_register_addr'
Missing required foreign symbol 'os_context_flags_addr'
Missing required foreign symbol 'widetag_lowtag'
Missing required foreign symbol 'arch_get_fp_modes'
Missing required foreign symbol 'arch_set_fp_modes'
Missing required foreign symbol 'memcmp'
Missing required foreign symbol 'unblock_deferrable_signals'
Missing required foreign symbol 'block_deferrable_signals'
Missing required foreign symbol 'pthread_sigmask'
Missing required foreign symbol 'blockable_sigset'
Missing required foreign symbol 'kill'
Missing required foreign symbol 'killpg'
Missing required foreign symbol 'unblock_gc_stop_signal'
Missing required foreign symbol 'install_handler'
Missing required foreign symbol 'install_sig_memory_fault_handler'
Missing required foreign symbol 'siginfo_code'
Missing required foreign symbol 'linkage_table_count'
Missing required foreign symbol 'linkage_space'
Missing required foreign symbol 'elf_linkage_table_count'
Missing required foreign symbol 'text_space_highwatermark'
Missing required foreign symbol 'TEXT_SPACE_START'
Missing required foreign symbol 'elf_linkage_space'
Missing required foreign symbol 'split_ordered_list_find'
Missing required foreign symbol 'finalizer_thread_runflag'
Missing required foreign symbol 'finalizer_thread_wake'
Missing required foreign symbol 'finalizer_thread_wait'
Missing required foreign symbol 'finalizer_thread_stop'
Missing required foreign symbol 'rmdir'
Missing required foreign symbol 'sbcl_runtime_home'
Missing required foreign symbol 'sb_set_os_thread_name'
Missing required foreign symbol 'create_lisp_thread'
Missing required foreign symbol 'pthread_attr_setstack'
Missing required foreign symbol 'thread_control_stack_size'
Missing required foreign symbol 'new_lisp_thread_attr'
Missing required foreign symbol 'free_thread_struct'
Missing required foreign symbol 'pthread_join'
Missing required foreign symbol 'protect_alien_stack_guard_page'
Missing required foreign symbol 'protect_binding_stack_guard_page'
Missing required foreign symbol 'protect_control_stack_guard_page'
Missing required foreign symbol 'alloc_thread_struct'
Missing required foreign symbol 'thread_start_sigset'
Missing required foreign symbol 'sigaddset'
Missing required foreign symbol 'raise'
Missing required foreign symbol 'sb_thread_kill'
Missing required foreign symbol 'thread_yield'
Missing required foreign symbol 'lisp_valid_tagged_pointer_p'
Missing required foreign symbol 'lisp_component_ptr_from_pc'
Missing required foreign symbol 'dynamic_values_bytes'
Missing required foreign symbol 'breakpoint_install'
Missing required foreign symbol 'breakpoint_remove'
Missing required foreign symbol 'breakpoint_do_displaced_inst'
Missing required foreign symbol 'bytes_allocated'
Missing required foreign symbol 'static_space_free_pointer'
Missing required foreign symbol 'primitive_object_size'
Missing required foreign symbol 'collect_garbage'
Missing required foreign symbol 'gc_stop_the_world'
Missing required foreign symbol 'gc_start_the_world'
Missing required foreign symbol 'dynamic_space_size'
Missing required foreign symbol 'release_gc_lock'
Missing required foreign symbol 'try_acquire_gc_lock'
Missing required foreign symbol 'empty_thread_recyclebin'
Missing required foreign symbol 'scrub_control_stack'
Missing required foreign symbol 'bytes_consed_between_gcs'
Missing required foreign symbol 'auto_gc_trigger'
Missing required foreign symbol 'gc_logfile'
Missing required foreign symbol 'ext_find_page_index'
Missing required foreign symbol 'page_table'
Missing required foreign symbol 'gc_card_table_mask'
Missing required foreign symbol 'gc_card_mark'
Missing required foreign symbol 'generations'
Missing required foreign symbol 'generation_average_age'
Missing required foreign symbol 'disable_lossage_handler'
Missing required foreign symbol 'enable_lossage_handler'
Missing required foreign symbol 'sb_unw_get_proc_name'
Missing required foreign symbol 'sb_unw_step'
Missing required foreign symbol 'sb_unw_get_pc'
Missing required foreign symbol 'sb_unw_init'
Missing required foreign symbol 'get_sizeof_unw_cursor'
Missing required foreign symbol 'all_threads'
Missing required foreign symbol 'lisp_startup_options'
Missing required foreign symbol 'internal_errors_enabled'
Missing required foreign symbol 'avx2_supported'
CORRUPTION WARNING in SBCL pid 1211 pthread 0x13ecb49cb40:
Memory fault at 0x7 (pc=0x20000060, fp=0xf86d557ce8, sp=0xf86d5578f8) pthread 0x13ecb49cb40
The integrity of this image is possibly compromised.
Exiting.
Welcome to LDB, a low-level debugger for the Lisp runtime environment.
ldb> exit
Argh! lossage_handler() returned, total confusion..
Makefile:9: recipe for target '../..//obj/sbcl-home/contrib//uiop.fasl' failed
make[1]: *** [../..//obj/sbcl-home/contrib//uiop.fasl] Error 1
make[1]: Target 'all' not remade because of errors.
make[1]: Leaving directory '/sources/sbcl-sbcl-2.5.0/contrib/asdf'
Makefile:38: recipe for target 'asdf.fasl' failed
make: *** [asdf.fasl] Error 2
make: Target 'all' not remade because of errors.
make: Leaving directory '/sources/sbcl-sbcl-2.5.0/contrib'

real    84m9.600s
user    0m29.255s
sys     0m1.398s

When I exited the debugger, it failed to continue build.

1 Like