mirror of
https://github.com/RPCSX/llvm.git
synced 2024-12-13 14:46:53 +00:00
f5d5db71df
Darwin added support in its Xcode 8.0 tools (released in the beta) for universal files where offsets and sizes for the objects are 64-bits to allow support for objects contained in universal files to be larger then 4gb. The change is very straight forward. There is a new magic number that differs by one bit, much like the 64-bit Mach-O files. Then there is a new structure that follow the fat_header that has the same layout but with the offset and size fields using 64-bit values instead of 32-bit values. rdar://26899493 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273207 91177308-0d34-0410-b5e6-96231b3b80d8
71 lines
3.5 KiB
Plaintext
71 lines
3.5 KiB
Plaintext
RUN: llvm-nm -arch all %p/Inputs/macho-universal.x86_64.i386 \
|
|
RUN: | FileCheck %s -check-prefix CHECK-OBJ
|
|
RUN: llvm-nm -arch all %p/Inputs/macho-universal64.x86_64.i386 \
|
|
RUN: | FileCheck %s -check-prefix CHECK-64-OBJ
|
|
RUN: llvm-nm -arch x86_64 %p/Inputs/macho-universal.x86_64.i386 \
|
|
RUN: | FileCheck %s -check-prefix CHECK-OBJ-x86_64
|
|
RUN: not llvm-nm -arch armv7m %p/Inputs/macho-universal.x86_64.i386 2>&1 \
|
|
RUN: | FileCheck %s -check-prefix CHECK-OBJ-armv7m
|
|
RUN: not llvm-nm -arch foobar %p/Inputs/macho-universal.x86_64.i386 2>&1 \
|
|
RUN: | FileCheck %s -check-prefix CHECK-OBJ-foobar
|
|
RUN: llvm-nm -arch all %p/Inputs/macho-universal-archive.x86_64.i386 \
|
|
RUN: | FileCheck %s -check-prefix CHECK-AR
|
|
RUN: llvm-nm -arch all %p/Inputs/macho-universal64-archive.x86_64.i386 \
|
|
RUN: | FileCheck %s -check-prefix CHECK-64-AR
|
|
RUN: llvm-nm -arch i386 %p/Inputs/macho-universal-archive.x86_64.i386 \
|
|
RUN: | FileCheck %s -check-prefix CHECK-AR-i386
|
|
RUN: llvm-nm -o -arch all %p/Inputs/macho-universal-archive.x86_64.i386 \
|
|
RUN: | FileCheck %s -check-prefix CHECK-AR-o
|
|
|
|
CHECK-OBJ: macho-universal.x86_64.i386 (for architecture x86_64):
|
|
CHECK-OBJ: 0000000100000f60 T _main
|
|
CHECK-OBJ: macho-universal.x86_64.i386 (for architecture i386):
|
|
CHECK-OBJ: 00001fa0 T _main
|
|
|
|
CHECK-64-OBJ: macho-universal64.x86_64.i386 (for architecture x86_64):
|
|
CHECK-64-OBJ: 0000000100000f60 T _main
|
|
CHECK-64-OBJ: macho-universal64.x86_64.i386 (for architecture i386):
|
|
CHECK-64-OBJ: 00001fa0 T _main
|
|
|
|
CHECK-OBJ-x86_64: 0000000100000000 T __mh_execute_header
|
|
CHECK-OBJ-x86_64: 0000000100000f60 T _main
|
|
CHECK-OBJ-x86_64: U dyld_stub_binder
|
|
|
|
CHECK-OBJ-armv7m-NOT: Unknown architecture named
|
|
CHECK-OBJ-armv7m: does not contain architecture
|
|
|
|
CHECK-OBJ-foobar: Unknown architecture named
|
|
CHECK-OBJ-foobar: does not contain architecture
|
|
|
|
CHECK-AR: macho-universal-archive.x86_64.i386(hello.o) (for architecture x86_64):
|
|
CHECK-AR: 0000000000000068 s EH_frame0
|
|
CHECK-AR: 000000000000003b s L_.str
|
|
CHECK-AR: 0000000000000000 T _main
|
|
CHECK-AR: 0000000000000080 S _main.eh
|
|
CHECK-AR: U _printf
|
|
CHECK-AR: macho-universal-archive.x86_64.i386(foo.o) (for architecture i386):
|
|
CHECK-AR: 00000008 D _bar
|
|
CHECK-AR: 00000000 T _foo
|
|
|
|
CHECK-64-AR: macho-universal64-archive.x86_64.i386(foo.o) (for architecture i386):
|
|
CHECK-64-AR: 00000008 D _bar
|
|
CHECK-64-AR: 00000000 T _foo
|
|
CHECK-64-AR: macho-universal64-archive.x86_64.i386(hello.o) (for architecture x86_64):
|
|
CHECK-64-AR: 0000000000000068 s EH_frame0
|
|
CHECK-64-AR: 000000000000003b s L_.str
|
|
CHECK-64-AR: 0000000000000000 T _main
|
|
CHECK-64-AR: 0000000000000080 S _main.eh
|
|
CHECK-64-AR: U _printf
|
|
|
|
CHECK-AR-i386: macho-universal-archive.x86_64.i386(foo.o):
|
|
CHECK-AR-i386: 00000008 D _bar
|
|
CHECK-AR-i386: 00000000 T _foo
|
|
|
|
CHECK-AR-o: (for architecture x86_64):{{.*}}/macho-universal-archive.x86_64.i386:hello.o: 0000000000000068 s EH_frame0
|
|
CHECK-AR-o: (for architecture x86_64):{{.*}}/macho-universal-archive.x86_64.i386:hello.o: 000000000000003b s L_.str
|
|
CHECK-AR-o: (for architecture x86_64):{{.*}}/macho-universal-archive.x86_64.i386:hello.o: 0000000000000000 T _main
|
|
CHECK-AR-o: (for architecture x86_64):{{.*}}/macho-universal-archive.x86_64.i386:hello.o: 0000000000000080 S _main.eh
|
|
CHECK-AR-o: (for architecture x86_64):{{.*}}/macho-universal-archive.x86_64.i386:hello.o: U _printf
|
|
CHECK-AR-o: (for architecture i386):{{.*}}/macho-universal-archive.x86_64.i386:foo.o: 00000008 D _bar
|
|
CHECK-AR-o: (for architecture i386):{{.*}}/macho-universal-archive.x86_64.i386:foo.o: 00000000 T _foo
|