[all-commits] [llvm/llvm-project] 38d3c6: [AIX] support 64bit global symbol table for big ar...
diggerlin via All-commits
all-commits at lists.llvm.org
Thu May 18 07:55:22 PDT 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 38d3c6cb9b9dc67a8a5460aa241824be3240b81e
https://github.com/llvm/llvm-project/commit/38d3c6cb9b9dc67a8a5460aa241824be3240b81e
Author: zhijian <zhijian at ca.ibm.com>
Date: 2023-05-18 (Thu, 18 May 2023)
Changed paths:
M llvm/include/llvm/Object/Archive.h
M llvm/lib/Object/Archive.cpp
M llvm/lib/Object/ArchiveWriter.cpp
A llvm/test/Object/Inputs/bitcode-sym32.ll
A llvm/test/Object/Inputs/bitcode-sym64.ll
A llvm/test/Object/bigarchive-malformed-global-symbol-table
A llvm/test/Object/bigarchive-malformed-header.test
A llvm/test/Object/bigarchive-symboltable.test
R llvm/test/tools/llvm-ar/malformed-global-symbol-table-bigarchive.test
Log Message:
-----------
[AIX] support 64bit global symbol table for big archive
Summary:
In big archive , there is 32bit global symbol table and 64 bit global symbol table. llvm-ar only support 32bit global symbol table this moment, we need to support the 64 bit global symbol table.
https://www.ibm.com/docs/en/aix/7.2?topic=formats-ar-file-format-big
Global Symbol Tables
Immediately following the member table, the archive file contains two global symbol tables. The first global symbol table locates 32-bit file members that define global symbols; the second global symbol table does the same for 64-bit file members. If the archive has no 32-bit or 64-bit file members, the respective global symbol table is omitted. The strip command can be used to delete one or both global symbol tables from the archive. The fl_gstoff field in the fixed-length header contains the offset to the 32-bit global symbol table, and the fl_gst64off contains the offset to the 64-bit global symbol table.
Reviewers: James Henderson,Stephen Peckham
Differential Revision: https://reviews.llvm.org/D142479
More information about the All-commits
mailing list