darlinghq / darling

Darwin/macOS emulation layer for Linux

Home Page:http://www.darlinghq.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Build failing because undefined reference to `percpu_base`

MagicalTux opened this issue · comments

Build Log
What is the build error?

bash-5.2# ninja -j1
[2/26420] Linking CXX shared library src/external/darlingserver/duct-tape/libdarlingserver_duct_tape.so
FAILED: src/external/darlingserver/duct-tape/libdarlingserver_duct_tape.so 
: && /usr/bin/clang++ -fPIC -pipe -Wall -I/pkg/main/sys-libs.libcxxabi.dev/include/c++/v1/ -I/pkg/main/x11-base.xorg-proto.dev.linux.amd64/include -I/pkg/main/x11-libs.libFS.dev.linux.amd64/include -I/pkg/main/x11-libs.libICE.dev.linux.amd64/include -I/pkg/main/x11-libs.libSM.dev.linux.amd64/include -I/pkg/main/x11-libs.libX11.dev.linux.amd64/include -I/pkg/main/x11-libs.libXScrnSaver.dev.linux.amd64/include -I/pkg/main/x11-libs.libXau.dev.linux.amd64/include -I/pkg/main/x11-libs.libXaw.dev.linux.amd64/include -I/pkg/main/x11-libs.libXcomposite.dev.linux.amd64/include -I/pkg/main/x11-libs.libXcursor.dev.linux.amd64/include -I/pkg/main/x11-libs.libXdamage.dev.linux.amd64/include -I/pkg/main/x11-libs.libXdmcp.dev.linux.amd64/include -I/pkg/main/x11-libs.libXext.dev.linux.amd64/include -I/pkg/main/x11-libs.libXfixes.dev.linux.amd64/include -I/pkg/main/x11-libs.libXfont2.dev.linux.amd64/include -I/pkg/main/x11-libs.libXft.dev.linux.amd64/include -I/pkg/main/x11-libs.libXi.dev.linux.amd64/include -I/pkg/main/x11-libs.libXinerama.dev.linux.amd64/include -I/pkg/main/x11-libs.libXmu.dev.linux.amd64/include -I/pkg/main/x11-libs.libXpm.dev.linux.amd64/include -I/pkg/main/x11-libs.libXpresent.dev.linux.amd64/include -I/pkg/main/x11-libs.libXrandr.dev.linux.amd64/include -I/pkg/main/x11-libs.libXrender.dev.linux.amd64/include -I/pkg/main/x11-libs.libXres.dev.linux.amd64/include -I/pkg/main/x11-libs.libXt.dev.linux.amd64/include -I/pkg/main/x11-libs.libXtst.dev.linux.amd64/include -I/pkg/main/x11-libs.libXv.dev.linux.amd64/include -I/pkg/main/x11-libs.libXvMC.dev.linux.amd64/include -I/pkg/main/x11-libs.libXxf86dga.dev.linux.amd64/include -I/pkg/main/x11-libs.libXxf86vm.dev.linux.amd64/include -I/pkg/main/x11-libs.libdmx.dev.linux.amd64/include -I/pkg/main/x11-libs.libdrm.dev.linux.amd64/include -I/pkg/main/x11-libs.libfontenc.dev.linux.amd64/include -I/pkg/main/x11-libs.libnotify.dev.linux.amd64/include -I/pkg/main/x11-libs.libpciaccess.dev.linux.amd64/include -I/pkg/main/x11-libs.libva.dev.linux.amd64/include -I/pkg/main/x11-libs.libvdpau.dev.linux.amd64/include -I/pkg/main/x11-libs.libwnck.dev.linux.amd64/include -I/pkg/main/x11-libs.libxcb.dev.linux.amd64/include -I/pkg/main/x11-libs.libxcvt.dev.linux.amd64/include -I/pkg/main/x11-libs.libxkbcommon.dev.linux.amd64/include -I/pkg/main/x11-libs.libxkbfile.dev.linux.amd64/include -I/pkg/main/x11-libs.libxklavier.dev.linux.amd64/include -I/pkg/main/x11-libs.libxshmfence.dev.linux.amd64/include -I/pkg/main/media-libs.freetype.dev.linux.amd64/include -I/pkg/main/media-libs.libpng.dev.linux.amd64/include -I/pkg/main/media-libs.tiff.dev.linux.amd64/include -I/pkg/main/media-libs.libjpeg-turbo.dev.linux.amd64/include -I/pkg/main/media-libs.giflib.dev.linux.amd64/include -I/pkg/main/media-libs.libglvnd.dev.linux.amd64/include -I/pkg/main/media-sound.pulseaudio.dev.linux.amd64/include -I/pkg/main/dev-libs.libbsd.dev.linux.amd64/include -I/pkg/main/app-crypt.libmd.dev.linux.amd64/include -I/pkg/main/sys-libs.libcxxabi.dev.linux.amd64/include -I/pkg/main/sys-libs.zlib.core.1.2.13.linux.amd64/include -O2 -Wno-nullability-completeness -Wno-deprecated-declarations -Wno-availability -Wno-expansion-to-defined -Wno-elaborated-enum-base -Wno-undef-prefix -O3 -DNDEBUG  -L/pkg/main/x11-libs.libFS.libs.linux.amd64/lib64 -L/pkg/main/x11-libs.libICE.libs.linux.amd64/lib64 -L/pkg/main/x11-libs.libSM.libs.linux.amd64/lib64 -L/pkg/main/x11-libs.libX11.libs.linux.amd64/lib64 -L/pkg/main/x11-libs.libXScrnSaver.libs.linux.amd64/lib64 -L/pkg/main/x11-libs.libXau.libs.linux.amd64/lib64 -L/pkg/main/x11-libs.libXaw.libs.linux.amd64/lib64 -L/pkg/main/x11-libs.libXcomposite.libs.linux.amd64/lib64 -L/pkg/main/x11-libs.libXcursor.libs.linux.amd64/lib64 -L/pkg/main/x11-libs.libXdamage.libs.linux.amd64/lib64 -L/pkg/main/x11-libs.libXdmcp.libs.linux.amd64/lib64 -L/pkg/main/x11-libs.libXext.libs.linux.amd64/lib64 -L/pkg/main/x11-libs.libXfixes.libs.linux.amd64/lib64 -L/pkg/main/x11-libs.libXfont2.libs.linux.amd64/lib64 -L/pkg/main/x11-libs.libXft.libs.linux.amd64/lib64 -L/pkg/main/x11-libs.libXi.libs.linux.amd64/lib64 -L/pkg/main/x11-libs.libXinerama.libs.linux.amd64/lib64 -L/pkg/main/x11-libs.libXmu.libs.linux.amd64/lib64 -L/pkg/main/x11-libs.libXpm.libs.linux.amd64/lib64 -L/pkg/main/x11-libs.libXpresent.libs.linux.amd64/lib64 -L/pkg/main/x11-libs.libXrandr.libs.linux.amd64/lib64 -L/pkg/main/x11-libs.libXrender.libs.linux.amd64/lib64 -L/pkg/main/x11-libs.libXres.libs.linux.amd64/lib64 -L/pkg/main/x11-libs.libXt.libs.linux.amd64/lib64 -L/pkg/main/x11-libs.libXtst.libs.linux.amd64/lib64 -L/pkg/main/x11-libs.libXv.libs.linux.amd64/lib64 -L/pkg/main/x11-libs.libXvMC.libs.linux.amd64/lib64 -L/pkg/main/x11-libs.libXxf86dga.libs.linux.amd64/lib64 -L/pkg/main/x11-libs.libXxf86vm.libs.linux.amd64/lib64 -L/pkg/main/x11-libs.libdmx.libs.linux.amd64/lib64 -L/pkg/main/x11-libs.libdrm.libs.linux.amd64/lib64 -L/pkg/main/x11-libs.libfontenc.libs.linux.amd64/lib64 -L/pkg/main/x11-libs.libnotify.libs.linux.amd64/lib64 -L/pkg/main/x11-libs.libpciaccess.libs.linux.amd64/lib64 -L/pkg/main/x11-libs.libva.libs.linux.amd64/lib64 -L/pkg/main/x11-libs.libva-intel-driver.libs.linux.amd64/lib64 -L/pkg/main/x11-libs.libvdpau.libs.linux.amd64/lib64 -L/pkg/main/x11-libs.libvdpau-va-gl.libs.linux.amd64/lib64 -L/pkg/main/x11-libs.libwnck.libs.linux.amd64/lib64 -L/pkg/main/x11-libs.libxcb.libs.linux.amd64/lib64 -L/pkg/main/x11-libs.libxcvt.libs.linux.amd64/lib64 -L/pkg/main/x11-libs.libxkbcommon.libs.linux.amd64/lib64 -L/pkg/main/x11-libs.libxkbfile.libs.linux.amd64/lib64 -L/pkg/main/x11-libs.libxklavier.libs.linux.amd64/lib64 -L/pkg/main/x11-libs.libxshmfence.libs.linux.amd64/lib64 -L/pkg/main/media-libs.freetype.libs.linux.amd64/lib64 -L/pkg/main/media-libs.libpng.libs.linux.amd64/lib64 -L/pkg/main/media-libs.tiff.libs.linux.amd64/lib64 -L/pkg/main/media-libs.libjpeg-turbo.libs.linux.amd64/lib64 -L/pkg/main/media-libs.giflib.libs.linux.amd64/lib64 -L/pkg/main/media-libs.libglvnd.libs.linux.amd64/lib64 -L/pkg/main/media-sound.pulseaudio.libs.linux.amd64/lib64 -L/pkg/main/dev-libs.libbsd.libs.linux.amd64/lib64 -L/pkg/main/app-crypt.libmd.libs.linux.amd64/lib64 -L/pkg/main/sys-libs.libcxxabi.libs.linux.amd64/lib64 -L/pkg/main/sys-libs.zlib.core.1.2.13.linux.amd64/lib -shared -Wl,-soname,libdarlingserver_duct_tape.so -o src/external/darlingserver/duct-tape/libdarlingserver_duct_tape.so src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/src/init.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/src/misc.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/src/stubs.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/src/locks.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/src/memory.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/src/task.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/src/thread.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/src/timer.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/src/traps.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/src/host.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/src/processor.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/src/kqchan.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/src/semaphore.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/src/psynch.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/src/condvar.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/src/debug.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/libkern/os/refcnt.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/libkern/gen/OSAtomicOperations.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/libkern/c++/priority_queue.cpp.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/kern/ipc_clock.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/kern/ipc_host.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/kern/ipc_kobject.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/kern/ipc_mig.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/kern/ipc_misc.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/kern/ipc_sync.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/kern/ipc_tt.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/kern/turnstile.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/kern/waitq.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/kern/clock.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/kern/ltable.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/kern/mpsc_queue.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/kern/thread_call.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/kern/mk_timer.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/kern/host.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/kern/host_notify.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/kern/timer_call.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/kern/clock_oldops.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/kern/sync_sema.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/kern/sync_lock.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/kern/syscall_emulation.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/kern/ux_handler.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/kern/exception.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/kern/task_ident.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/ipc/ipc_entry.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/ipc/ipc_hash.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/ipc/ipc_importance.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/ipc/ipc_init.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/ipc/ipc_kmsg.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/ipc/ipc_mqueue.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/ipc/ipc_notify.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/ipc/ipc_object.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/ipc/ipc_port.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/ipc/ipc_pset.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/ipc/ipc_right.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/ipc/ipc_space.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/ipc/ipc_table.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/ipc/ipc_voucher.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/ipc/mach_debug.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/ipc/mach_kernelrpc.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/ipc/mach_msg.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/ipc/mach_port.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/ipc/mig_log.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/ipc/ipc_eventlink.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/i386/rtclock.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/prng/prng_random.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/vm/vm32_user.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/mach/clock_priv_server.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/mach/clock_reply_user.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/mach/clock_server.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/mach/exc_user.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/mach/exc_server.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/mach/host_priv_server.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/mach/host_security_server.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/mach/lock_set_server.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/mach/mach_exc_server.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/mach/mach_exc_user.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/mach/mach_host_server.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/mach/mach_port_server.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/mach/mach_vm_server.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/mach/mach_voucher_attr_control_server.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/mach/mach_voucher_server.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/mach/memory_entry_server.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/mach/notify_user.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/mach/processor_server.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/mach/processor_set_server.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/mach/restartable_server.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/mach/task_server.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/mach/thread_act_server.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/mach/mach_eventlink_server.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/mach/vm32_map_server.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/device/device_server.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/UserNotification/UNDReplyServer.c.o src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/pthread/kern_synch.c.o  -Wl,-rpath,/build/darling-0.1.20231017/temp/src/libsimple-linux  src/libsimple-linux/liblibsimple_darlingserver.so && :
/usr/bin/ld.bfd: src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/kern/host.c.o: in function `get_sched_statistics':
host.c:(.text.get_sched_statistics+0x2c): undefined reference to `percpu_base'
/usr/bin/ld.bfd: src/external/darlingserver/duct-tape/CMakeFiles/darlingserver_duct_tape.dir/xnu/osfmk/kern/host.c.o: relocation R_X86_64_PC32 against undefined hidden symbol `percpu_base' can not be used when making a shared object
/usr/bin/ld.bfd: final link failed: bad value
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.

System Information
What system are you building with?

Software Version
Clang 17.0.2
CMake 3.27.3
Linux Kernel 6.4.8
Darling fbcd182

Build script: https://github.com/AzusaOS/azusa-opensource-recipes/blob/master/app-emulation/darling/darling-0.1.20231017.sh

I tried looking around in files like src/external/darlingserver/duct-tape/xnu/osfmk/kern/host.c and src/external/darlingserver/duct-tape/xnu/osfmk/kern/percpu.h but couldn't understand where percpu_base is supposed to come from

I was able to get src/external/darlingserver/duct-tape/libdarlingserver_duct_tape.so to build by removing the following line from src/external/darlingserver/duct-tape/xnu/osfmk/kern/percpu.h:

#pragma GCC visibility push(hidden)

(and the associated pop)

I'm guessing this is not the proper way to get things working, so I'm wondering what's missing. Any help welcome.

We don't even use that function (get_sched_statistics). The problem was that the library was being built as a shared library, but it needs to be a static library (so that LD only pulls-in the functions we need). This should be fixed with the latest commit to master (I also corrected a few other libraries that you were probably going to run into issues with).

I'm guessing your docmake function/command sets BUILD_SHARED_LIBS=ON?

Ah yes, docmake will pass a number of options by default including -DBUILD_SHARED_LIBS=ON - forcing back to OFF solves the build, until a bit further:

[16/23588] Building C object src/external/corecrypto/CMakeFiles/corecrypto_obj.dir/src/ccmd2.c.o
FAILED: src/external/corecrypto/CMakeFiles/corecrypto_obj.dir/src/ccmd2.c.o 
/usr/bin/ccache /usr/bin/clang -DDARLING -DDARWIN -DDEBUG -DPLATFORM_MacOSX -DTARGET_OS_MAC=1 -D_DARWIN_C_SOURCE -D_FILE_OFFSET_BITS=64 -D_LIBC_NO_FEATURE_VERIFICATION -D_POSIX_C_SOURCE -D__APPLE__ -D__DYNAMIC__ -D__MACH__ -I/build/darling-0.1.20231017/work/darling-fbcd182dfbadab5076b6a41c21688d9c53a29cc4/src/external/libcxx/include -I/build/darling-0.1.20231017/temp/src/include -I/build/darling-0.1.20231017/work/darling-fbcd182dfbadab5076b6a41c21688d9c53a29cc4/src/include -I/build/darling-0.1.20231017/work/darling-fbcd182dfbadab5076b6a41c21688d9c53a29cc4/basic-headers -I/build/darling-0.1.20231017/work/darling-fbcd182dfbadab5076b6a41c21688d9c53a29cc4/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include -I/build/darling-0.1.20231017/temp/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include -I/build/darling-0.1.20231017/work/darling-fbcd182dfbadab5076b6a41c21688d9c53a29cc4/framework-include -I/build/darling-0.1.20231017/work/darling-fbcd182dfbadab5076b6a41c21688d9c53a29cc4/framework-private-include -I/build/darling-0.1.20231017/work/darling-fbcd182dfbadab5076b6a41c21688d9c53a29cc4/src/external/lkm/include -I/build/darling-0.1.20231017/work/darling-fbcd182dfbadab5076b6a41c21688d9c53a29cc4/src/libDiagnosticMessagesClient/include -I/build/darling-0.1.20231017/work/darling-fbcd182dfbadab5076b6a41c21688d9c53a29cc4/src/libMobileGestalt/include -I/build/darling-0.1.20231017/work/darling-fbcd182dfbadab5076b6a41c21688d9c53a29cc4/src/lib/include -I/build/darling-0.1.20231017/work/darling-fbcd182dfbadab5076b6a41c21688d9c53a29cc4/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/libxml2 -I/build/darling-0.1.20231017/temp/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/libxml2 -I/build/darling-0.1.20231017/work/darling-fbcd182dfbadab5076b6a41c21688d9c53a29cc4/src/external/corecrypto/include -isystem /pkg/main/sys-devel.clang.libs.17.0.3.linux.amd64/lib64/clang/17/include -pipe -Wall -I/pkg/main/sys-libs.libcxxabi.dev/include/c++/v1/ -I/pkg/main/x11-base.xorg-proto.dev.linux.amd64/include -I/pkg/main/x11-libs.libFS.dev.linux.amd64/include -I/pkg/main/x11-libs.libICE.dev.linux.amd64/include -I/pkg/main/x11-libs.libSM.dev.linux.amd64/include -I/pkg/main/x11-libs.libX11.dev.linux.amd64/include -I/pkg/main/x11-libs.libXScrnSaver.dev.linux.amd64/include -I/pkg/main/x11-libs.libXau.dev.linux.amd64/include -I/pkg/main/x11-libs.libXaw.dev.linux.amd64/include -I/pkg/main/x11-libs.libXcomposite.dev.linux.amd64/include -I/pkg/main/x11-libs.libXcursor.dev.linux.amd64/include -I/pkg/main/x11-libs.libXdamage.dev.linux.amd64/include -I/pkg/main/x11-libs.libXdmcp.dev.linux.amd64/include -I/pkg/main/x11-libs.libXext.dev.linux.amd64/include -I/pkg/main/x11-libs.libXfixes.dev.linux.amd64/include -I/pkg/main/x11-libs.libXfont2.dev.linux.amd64/include -I/pkg/main/x11-libs.libXft.dev.linux.amd64/include -I/pkg/main/x11-libs.libXi.dev.linux.amd64/include -I/pkg/main/x11-libs.libXinerama.dev.linux.amd64/include -I/pkg/main/x11-libs.libXmu.dev.linux.amd64/include -I/pkg/main/x11-libs.libXpm.dev.linux.amd64/include -I/pkg/main/x11-libs.libXpresent.dev.linux.amd64/include -I/pkg/main/x11-libs.libXrandr.dev.linux.amd64/include -I/pkg/main/x11-libs.libXrender.dev.linux.amd64/include -I/pkg/main/x11-libs.libXres.dev.linux.amd64/include -I/pkg/main/x11-libs.libXt.dev.linux.amd64/include -I/pkg/main/x11-libs.libXtst.dev.linux.amd64/include -I/pkg/main/x11-libs.libXv.dev.linux.amd64/include -I/pkg/main/x11-libs.libXvMC.dev.linux.amd64/include -I/pkg/main/x11-libs.libXxf86dga.dev.linux.amd64/include -I/pkg/main/x11-libs.libXxf86vm.dev.linux.amd64/include -I/pkg/main/x11-libs.libdmx.dev.linux.amd64/include -I/pkg/main/x11-libs.libdrm.dev.linux.amd64/include -I/pkg/main/x11-libs.libfontenc.dev.linux.amd64/include -I/pkg/main/x11-libs.libnotify.dev.linux.amd64/include -I/pkg/main/x11-libs.libpciaccess.dev.linux.amd64/include -I/pkg/main/x11-libs.libva.dev.linux.amd64/include -I/pkg/main/x11-libs.libvdpau.dev.linux.amd64/include -I/pkg/main/x11-libs.libwnck.dev.linux.amd64/include -I/pkg/main/x11-libs.libxcb.dev.linux.amd64/include -I/pkg/main/x11-libs.libxcvt.dev.linux.amd64/include -I/pkg/main/x11-libs.libxkbcommon.dev.linux.amd64/include -I/pkg/main/x11-libs.libxkbfile.dev.linux.amd64/include -I/pkg/main/x11-libs.libxklavier.dev.linux.amd64/include -I/pkg/main/x11-libs.libxshmfence.dev.linux.amd64/include -I/pkg/main/media-libs.freetype.dev.linux.amd64/include -I/pkg/main/media-libs.libpng.dev.linux.amd64/include -I/pkg/main/media-libs.tiff.dev.linux.amd64/include -I/pkg/main/media-libs.libjpeg-turbo.dev.linux.amd64/include -I/pkg/main/media-libs.giflib.dev.linux.amd64/include -I/pkg/main/media-libs.libglvnd.dev.linux.amd64/include -I/pkg/main/media-sound.pulseaudio.dev.linux.amd64/include -I/pkg/main/dev-libs.libbsd.dev.linux.amd64/include -I/pkg/main/app-crypt.libmd.dev.linux.amd64/include -I/pkg/main/sys-libs.libcxxabi.dev.linux.amd64/include -I/pkg/main/sys-libs.zlib.core.1.2.13.linux.amd64/include -pipe -Wall -I/pkg/main/sys-libs.libcxxabi.dev/include/c++/v1/ -I/pkg/main/x11-base.xorg-proto.dev.linux.amd64/include -I/pkg/main/x11-libs.libFS.dev.linux.amd64/include -I/pkg/main/x11-libs.libICE.dev.linux.amd64/include -I/pkg/main/x11-libs.libSM.dev.linux.amd64/include -I/pkg/main/x11-libs.libX11.dev.linux.amd64/include -I/pkg/main/x11-libs.libXScrnSaver.dev.linux.amd64/include -I/pkg/main/x11-libs.libXau.dev.linux.amd64/include -I/pkg/main/x11-libs.libXaw.dev.linux.amd64/include -I/pkg/main/x11-libs.libXcomposite.dev.linux.amd64/include -I/pkg/main/x11-libs.libXcursor.dev.linux.amd64/include -I/pkg/main/x11-libs.libXdamage.dev.linux.amd64/include -I/pkg/main/x11-libs.libXdmcp.dev.linux.amd64/include -I/pkg/main/x11-libs.libXext.dev.linux.amd64/include -I/pkg/main/x11-libs.libXfixes.dev.linux.amd64/include -I/pkg/main/x11-libs.libXfont2.dev.linux.amd64/include -I/pkg/main/x11-libs.libXft.dev.linux.amd64/include -I/pkg/main/x11-libs.libXi.dev.linux.amd64/include -I/pkg/main/x11-libs.libXinerama.dev.linux.amd64/include -I/pkg/main/x11-libs.libXmu.dev.linux.amd64/include -I/pkg/main/x11-libs.libXpm.dev.linux.amd64/include -I/pkg/main/x11-libs.libXpresent.dev.linux.amd64/include -I/pkg/main/x11-libs.libXrandr.dev.linux.amd64/include -I/pkg/main/x11-libs.libXrender.dev.linux.amd64/include -I/pkg/main/x11-libs.libXres.dev.linux.amd64/include -I/pkg/main/x11-libs.libXt.dev.linux.amd64/include -I/pkg/main/x11-libs.libXtst.dev.linux.amd64/include -I/pkg/main/x11-libs.libXv.dev.linux.amd64/include -I/pkg/main/x11-libs.libXvMC.dev.linux.amd64/include -I/pkg/main/x11-libs.libXxf86dga.dev.linux.amd64/include -I/pkg/main/x11-libs.libXxf86vm.dev.linux.amd64/include -I/pkg/main/x11-libs.libdmx.dev.linux.amd64/include -I/pkg/main/x11-libs.libdrm.dev.linux.amd64/include -I/pkg/main/x11-libs.libfontenc.dev.linux.amd64/include -I/pkg/main/x11-libs.libnotify.dev.linux.amd64/include -I/pkg/main/x11-libs.libpciaccess.dev.linux.amd64/include -I/pkg/main/x11-libs.libva.dev.linux.amd64/include -I/pkg/main/x11-libs.libvdpau.dev.linux.amd64/include -I/pkg/main/x11-libs.libwnck.dev.linux.amd64/include -I/pkg/main/x11-libs.libxcb.dev.linux.amd64/include -I/pkg/main/x11-libs.libxcvt.dev.linux.amd64/include -I/pkg/main/x11-libs.libxkbcommon.dev.linux.amd64/include -I/pkg/main/x11-libs.libxkbfile.dev.linux.amd64/include -I/pkg/main/x11-libs.libxklavier.dev.linux.amd64/include -I/pkg/main/x11-libs.libxshmfence.dev.linux.amd64/include -I/pkg/main/media-libs.freetype.dev.linux.amd64/include -I/pkg/main/media-libs.libpng.dev.linux.amd64/include -I/pkg/main/media-libs.tiff.dev.linux.amd64/include -I/pkg/main/media-libs.libjpeg-turbo.dev.linux.amd64/include -I/pkg/main/media-libs.giflib.dev.linux.amd64/include -I/pkg/main/media-libs.libglvnd.dev.linux.amd64/include -I/pkg/main/media-sound.pulseaudio.dev.linux.amd64/include -I/pkg/main/dev-libs.libbsd.dev.linux.amd64/include -I/pkg/main/app-crypt.libmd.dev.linux.amd64/include -I/pkg/main/sys-libs.libcxxabi.dev.linux.amd64/include -I/pkg/main/sys-libs.zlib.core.1.2.13.linux.amd64/include -O2 -Wno-nullability-completeness -Wno-deprecated-declarations -Wno-availability -Wno-expansion-to-defined -Wno-elaborated-enum-base -Wno-undef-prefix -mmacosx-version-min=11.0 -O3 -DNDEBUG   -target x86_64-apple-darwin20  -B /build/darling-0.1.20231017/temp/src/external/cctools-port/cctools/misc/ -arch x86_64 -Wno-return-type -Werror -Wno-error=cpp -nostdinc -MD -MT src/external/corecrypto/CMakeFiles/corecrypto_obj.dir/src/ccmd2.c.o -MF src/external/corecrypto/CMakeFiles/corecrypto_obj.dir/src/ccmd2.c.o.d -o src/external/corecrypto/CMakeFiles/corecrypto_obj.dir/src/ccmd2.c.o -c /build/darling-0.1.20231017/work/darling-fbcd182dfbadab5076b6a41c21688d9c53a29cc4/src/external/corecrypto/src/ccmd2.c
/build/darling-0.1.20231017/work/darling-fbcd182dfbadab5076b6a41c21688d9c53a29cc4/src/external/corecrypto/src/ccmd2.c:193:25: error: unused variable 'state' [-Werror,-Wunused-variable]
  193 |         struct ccdigest_state* state = ccdigest_state(di, ctx);
      |                                ^~~~~
1 error generated.
ninja: build stopped: subcommand failed.

Is there any way to disable -Werror?

Edit: I'll just remove -Werror and continue building for now.

sed -i '/-Werror/d' src/external/corecrypto/CMakeLists.txt

Final note to say I managed to get darling built. Thanks for the help.

Thanks for pointing out that stray -Werror in corecrypto; it's gone now. I thought we had gotten rid of all our uses of -Werror.