Skip to content

cirrus tests fail on AMD64 Alpine and AMD64 FreeBSD #275

@zaikunzhang

Description

@zaikunzhang

The cirrus tests is managed by

https://github.com/libprima/prima/blob/main/.cirrus.yml

and the runs can be checked below:

https://cirrus-ci.com/github/libprima/prima/main

Status as of 20260222:

  • All tests pass on Debian and Fedora, including both AMD64 and ARM64.

  • cmake_test_script fails on AMD64 FreeBSD with

    cmake --build . --target tests
    [ 57%] Built target primaf
    [ 65%] Built target primac
    [ 66%] Building C object c/tests/CMakeFiles/data_c_exe.dir/data.c.o
    [ 67%] Linking C executable data_c_exe
    /usr/local/bin/ld: ../libprimac.so: undefined reference to `__gcc_nested_func_ptr_created'
    /usr/local/bin/ld: ../libprimac.so: undefined reference to `__gcc_nested_func_ptr_deleted'
    

    This is probably because "Compiling with -ftrampoline-impl=heap generates calls to __gcc_nested_func_ptr_created and __gcc_nested_func_ptr_deleted in order to allocate and deallocate trampoline space on the executable heap. These functions are implemented in libgcc, and will only be provided on specific targets: x86_64 Darwin, x86_64 and aarch64 Linux." (extracted from gcc 16.0.1 documentation https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#index-ftrampoline-impl) In other words, these functions are not available on FreeBSD. Note that the default compiler on FreeBSD is Clang/LLVM, so we should test FreeBSD with Clang/LLVM instead of gcc, which has been deprecated on FreeBSD since version 10. See https://www.phoronix.com/news/MTE4NDQ, https://unix.stackexchange.com/questions/49906/why-is-freebsd-deprecating-gcc-in-favor-of-clang-llvm.

  • cmake_test_script fails on AMD64 Alpine when testing example_SOLVER_c and SOLVER_data_c (all the Fortran tests succeed).
    The error message is like

    Program received signal SIGABRT, Aborted.
    __restore_sigs (set=set@entry=0x7fffffffd8a0) at ./arch/x86_64/syscall_arch.h:40
    warning: 40	./arch/x86_64/syscall_arch.h: No such file or directory
    

    On the other hand, the test works fine on ARM64 Alpine.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions