FERRAMENTAS LINUX: Os "interface Stubs" do Clang foram mesclados ara oferecer bibliotecas de interface para os objetos compartilhados ELF

terça-feira, 18 de junho de 2019

Os "interface Stubs" do Clang foram mesclados ara oferecer bibliotecas de interface para os objetos compartilhados ELF



Confira !!



Além do Clang-Scan-Deps para serem serem mesclados há alguns dias, outro novo recurso para o Clang do LLVM é chamado de Clang Interface Stubs e traz um conceito do Windows / macOS para os sistemas Linux / ELF.

Clang Interface Stubs permite gerar arquivos stub / bibliotecas contendo as informações mínimas necessárias para construir contra essa biblioteca. Os Clubs Interface Stubs podem ser usados ​​para limitar o acesso aos sistemas internos de uma biblioteca ou dividir as dependências de construção, graças à abordagem mínima.

De volta do correio do RFC alguns meses atrás, a ferramenta "clang-ifso" como era chamada na época explica, "Em plataformas como Darwin e Windows, existem arquivos de interface de biblioteca que aparecem para o vinculador em tempo de compilação como apenas outro arquivo de biblioteca, mas são apenas listagens vazias de símbolos para funções de interface que foram destinadas à exposição pelo gravador da biblioteca. Essas interfaces de biblioteca podem ser usadas para limitar o acesso a internals de uma biblioteca no tempo de compilação estático e podem ser usadas para acelerar o tempo de link no caso de vinculação com bibliotecas dinâmicas extremamente grandes. Além de fornecer uma exposição API mais controlada e reduzir o uso de memória na vinculação, há também o benefício de ter um tamanho de distribuição muito menor para SDKs de desenvolvimento (no caso de um SDK com aplicativos criados e vinculados a um PC mas depois implantado para rodar em um dispositivo totalmente diferente). Finalmente, Essas bibliotecas de interface podem, em muitos casos, ser usadas para quebrar também as dependências de compilação, se puderem ser armazenadas em cache ou geradas rapidamente de alguma forma antes de criar todas as bibliotecas diferentes em uma compilação. clang-ifso é uma ferramenta que pretende trazer o conceito de bibliotecas de interface para objetos compartilhados ELF. Nós o chamamos ifso como uma abreviação de InterFace-Shared-Object: como em, pretendemos suportar o ELF produzindo um .so que se pareça com um arquivo .so regular para o linker, mas tem a maioria do .text e outros conteúdos removidos e tem apenas os símbolos de interface da API pretendidos preenchidos."

Agora, para a versão LLVM / Clang 9.0 que será lançada por volta de setembro, este suporte IFSO / Interface Stubs inicial está disponível . Será interessante ver onde esse suporte leva.

Fonte

Até a próxima !1

Nenhum comentário:

Postar um comentário