Allow linking against system mimalloc

Aberta
#1,722 6 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
4/5
Tempo estimado
3-5 dias
Facilidade para iniciantes
48/100
Tipo de issue
Funcionalidade
Clareza
Razoavelmente clara
Status de atividade
Pouca atividade
Stack de tecnologia
cmake, cpp
Domínio
build-system

Direção de pesquisa

Start by reading the CMake build configuration for mimalloc and how its dependency is linked into libslvs and CDemo; reproduce the reported Debian build failure with system libmimalloc-dev. Done means the project can use the packaged mimalloc 3.3.2 rather than requiring an embedded copy, and the build links successfully.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

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.

Linguagem predominante
C++
Estrelas
4.2k
Forks
600
Merge médio
9h 37min
PRs com merge (30d)
9

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de solvespace/solvespace

Todas as issues de solvespace/solvespace

Issues semelhantes

Mais issues de C++

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.