mapbox / mapbox/cpp

Docs on enabling LTO (-flto) with clang++

Aberta
#22 4 comentários 1 reação 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Linguagem predominante
Sem dados de linguagem
Estrelas
110
Forks
17
Métricas de merge de PRs
Nenhum PR com merge em 30d

Descrição

Getting Link Time optimization working takes certain combinations of modern tools and build settings. It would be great to have some general docs on this so that LTO is demystified and more commonly used.

Doc should cover:

Linux details
  • upgraded binutils gold (can be installed via mason)
  • at least clang++ 3.9.1 via mason
  • llvm-ar and llvm-ranlib on path (and set in environment AR=/path/to/llvm-ar RANLIB=/path/to/llvm-ranlib)
  • -flto in the CXXFLAGS
OS X details
  • Apple built in compiler or clang++ via mason
  • -flto in the CXXFLAGS and LDFLAGS
Troubleshooting:

This error indicates that the linker does not understand the LTO format. This will happen on linux if you've not installed binutils from mason.

file.o: file not recognized: File format not recognized
clang-5.0: error: linker command failed with exit code 1 (use -v to see invocation)

Refs https://github.com/mapbox/spatial-algorithms/pull/10

Guia de contribuição

Abrir o guia de contribuição

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.

Direção de pesquisa

Comece com a checklist da issue e o pull request referenciado de spatial-algorithms. Verifique os requisitos da toolchain para Linux e OS X, as flags, as variáveis de ambiente e as orientações sobre erros do linker; a documentação estará concluída quando abranger cada detalhe de configuração e solução de problemas listado.

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

Avaliação

Stack de tecnologia
cpp
Domínio
build-system, documentation
Tipo de issue
Documentação
Dificuldade
3/5
Tempo estimado
1-2 dias
Status de atividade
Estagnada
Clareza
Razoavelmente clara
Facilidade para iniciantes
45/100

Receba novas issues na sua caixa de entrada

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