[llvm] r314000 - llvm-ar: Don't add an unnecessary alignment in gnu mode.
Rafael Espindola via llvm-commits
llvm-commits at lists.llvm.org
Fri Sep 22 11:16:13 PDT 2017
Author: rafael
Date: Fri Sep 22 11:16:13 2017
New Revision: 314000
URL: http://llvm.org/viewvc/llvm-project?rev=314000&view=rev
Log:
llvm-ar: Don't add an unnecessary alignment in gnu mode.
This is mostly for getting stricter testing in preparation for future
changes.
Modified:
llvm/trunk/lib/Object/ArchiveWriter.cpp
llvm/trunk/test/Object/archive-symtab.test
Modified: llvm/trunk/lib/Object/ArchiveWriter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Object/ArchiveWriter.cpp?rev=314000&r1=313999&r2=314000&view=diff
==============================================================================
--- llvm/trunk/lib/Object/ArchiveWriter.cpp (original)
+++ llvm/trunk/lib/Object/ArchiveWriter.cpp Fri Sep 22 11:16:13 2017
@@ -351,7 +351,8 @@ writeSymbolTable(raw_fd_ostream &Out, ob
// ld64 requires the next member header to start at an offset that is
// 4 bytes aligned.
- unsigned Pad = OffsetToAlignment(Out.tell(), 4);
+ unsigned Alignment = isBSDLike(Kind) ? 4 : 2;
+ unsigned Pad = OffsetToAlignment(Out.tell(), Alignment);
while (Pad--)
Out.write(uint8_t(0));
Modified: llvm/trunk/test/Object/archive-symtab.test
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Object/archive-symtab.test?rev=314000&r1=313999&r2=314000&view=diff
==============================================================================
--- llvm/trunk/test/Object/archive-symtab.test (original)
+++ llvm/trunk/test/Object/archive-symtab.test Fri Sep 22 11:16:13 2017
@@ -122,3 +122,11 @@ RUN: llvm-ar --format=bsd rcsU %t.a %p/I
RUN: FileCheck --check-prefix=MACHO-SYMTAB-ALIGN %s < %t.a
MACHO-SYMTAB-ALIGN: !<arch>
MACHO-SYMTAB-ALIGN-NEXT: #1/12 {{..........}} 0 0 0 36 `
+
+With a gnu symbol table we only align to two
+8 + 60 + 14 = 82
+RUN: rm -f %t.a
+RUN: llvm-ar --format=gnu rcsD %t.a %p/Inputs/trivial-object-test.macho-x86-64
+RUN: FileCheck --check-prefix=GNU-SYMTAB-ALIGN %s < %t.a
+GNU-SYMTAB-ALIGN: !<arch>
+GNU-SYMTAB-ALIGN-NEXT: / 0 0 0 0 14 `
More information about the llvm-commits
mailing list