Allow linking against system mimalloc · Issue #1722 · solvespace/solvespace · GitHub
Skip to content

Allow linking against system mimalloc #1722

Description

@werdahias

I am in the process in updating the debian package, and the only remaining issue is mimalloc. As Debian tries to avoid embedded code copies, when forcing to build against the packaged libmimalloc-dev the build fails:

[ 48%] Linking C executable ../bin/CDemo
cd /build/reproducible-path/solvespace-3.2+ds/obj-x86_64-linux-gnu/exposed && /usr/bin/cmake -E cmake_link_script CMakeFiles/CDemo.dir/link.txt --verbose=1
/usr/bin/x86_64-linux-gnu-ld.bfd: ../bin/libslvs.so.3.2: undefined reference to `mi_heap_new'
/usr/bin/x86_64-linux-gnu-ld.bfd: ../bin/libslvs.so.3.2: undefined reference to `mi_heap_zalloc'
/usr/bin/x86_64-linux-gnu-ld.bfd: ../bin/libslvs.so.3.2: undefined reference to `mi_heap_destroy'
collect2: error: ld returned 1 exit status
/usr/bin/cc -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/solvespace-3.2+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 -ffile-prefix-map=/build/reproducible-path/solvespace-3.2+ds=. -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Werror=switch -O3 -DNDEBUG -Wl,--as-needed -Wl,-z,relro -Wl,--dependency-file=CMakeFiles/CDemo.dir/link.d CMakeFiles/CDemo.dir/CDemo.c.o -o ../bin/CDemo  -Wl,-rpath,/build/reproducible-path/solvespace-3.2+ds/obj-x86_64-linux-gnu/bin ../bin/libslvs.so.3.2
make[3]: *** [exposed/CMakeFiles/CDemo.dir/build.make:105: bin/CDemo] Error 1
make[3]: Leaving directory '/build/reproducible-path/solvespace-3.2+ds/obj-x86_64-linux-gnu'
make[2]: *** [CMakeFiles/Makefile2:332: exposed/CMakeFiles/CDemo.dir/all] Error 2
make[2]: *** Waiting for unfinished jobs....
[ 49%] Linking CXX static library ../bin/libdxfrw.a

This is because the linker expects 2.2.2, and Debian has 3.3.2. Would you consider updating mimalloc to 3.3, and allowing to link the system copy? This would save me a lot of work.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions