Arm64 stubs alignment is 2, not 4.
authorPete Cooper <peter_cooper@apple.com>
Thu, 11 Aug 2016 20:18:05 +0000 (20:18 +0000)
committerPete Cooper <peter_cooper@apple.com>
Thu, 11 Aug 2016 20:18:05 +0000 (20:18 +0000)
This matches the behaviour of ld64 when looking at the alignment of the stubs section in the final image.

llvm-svn: 278398

lld/lib/ReaderWriter/MachO/ArchHandler_arm64.cpp
lld/test/mach-o/hello-world-arm64.yaml

index a61f6aa..fb748e2 100644 (file)
@@ -275,8 +275,8 @@ const ArchHandler::StubInfo ArchHandler_arm64::_sStubInfo = {
   // GOT pointer to dyld_stub_binder
   { Reference::KindArch::AArch64, pointer64, 0, 0 },
 
-  // arm64 code alignment 2^2
-  2,
+  // arm64 code alignment 2^1
+  1,
 
   // Stub size and code
   12,
index 75ac4f7..9d60027 100644 (file)
@@ -92,3 +92,10 @@ undefined-symbols:
 # CHECK:       (undefined) external _fprintf (from libSystem)
 # CHECK:       (undefined) external dyld_stub_binder (from libSystem)
 # CHECK:       {{[0-9a-f]+}} (__TEXT,__text) external _main
+
+# CHECK-PRIVATE-HEADER: sectname __stubs
+# CHECK-PRIVATE-HEADER-NEXT:  segname __TEXT
+# CHECK-PRIVATE-HEADER-NEXT:     addr 
+# CHECK-PRIVATE-HEADER-NEXT:     size 
+# CHECK-PRIVATE-HEADER-NEXT:   offset 
+# CHECK-PRIVATE-HEADER-NEXT:    align 2^1 (2)