Skip to content
  • Rafael Espindola's avatar
    Remove the LLVM specific archive index. · 668c6428
    Rafael Espindola authored
    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".
    
    llvm-svn: 184019
    668c6428
Loading