mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-22 07:32:48 +00:00
250bfb1745
Archive files (.a) can have a symbol table indicating which object files in them define which symbols. The purpose of this symbol table is to speed up linking by allowing the linker the read only the .o files it is actually going to use instead of having to parse every object's symbol table. LLVM's archive library currently supports a LLVM specific format for such table. It is hard to see any value in that now that llvm-ld is gone: * System linkers don't use it: GNU ar uses the same plugin as the linker to create archive files with a regular index. The OS X ar creates no symbol table for IL files, I assume the linker just parses all IL files. * It doesn't interact well with archives having both IL and native objects. * We probably don't want to be responsible for yet another archive format variant. This patch then: * Removes support for creating and reading such index from lib/Archive. * Remove llvm-ranlib, since there is nothing left for it to do. We should in the future add support for regular indexes to llvm-ar for both native and IL objects. When we do that, llvm-ranlib should be reimplemented as a symlink to llvm-ar, as it is equivalent to "ar s". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184019 91177308-0d34-0410-b5e6-96231b3b80d8
25 lines
930 B
Plaintext
25 lines
930 B
Plaintext
test/Regression/Archive
|
|
=======================
|
|
|
|
This directory contains various tests of llvm-ar and to ensure
|
|
compatibility reading other ar(1) formats. It also provides a basic
|
|
functionality test for these tools.
|
|
|
|
There are four archives accompanying these tests:
|
|
|
|
GNU.a - constructed on Linux with GNU ar
|
|
MacOSX.a - constructed on Mac OS X with its native BSD4.4 ar
|
|
SVR4.a - constructed on Solaris with /usr/ccs/bin/ar
|
|
xpg4.a - constructed on Solaris with /usr/xpg4/bin/ar
|
|
|
|
Each type of test is run on each of these archive files. These archives each
|
|
contain four members:
|
|
|
|
oddlen - a member with an odd lengthed name and content
|
|
evenlen - a member with an even lengthed name and content
|
|
IsNAN.o - a Linux native binary
|
|
very_long_bytecode_file_name.bc - LLVM bytecode file with really long name
|
|
|
|
These files test different aspects of the archiver that should cause failures
|
|
in llvm-ar if regressions are introduced.
|