llvm-project/lld/test/mach-o
Pete Cooper ebecd6c543 Fix EHFrame processing to add implicit references when needed.
The current code for processCIE and processFDE returns out if it sees
any references.  The problem with this is that some references could be
explicit in the binary, while others are implicit as they can be
inferred from the content of the EHFrame itself.

This change walks the references we have against the references we
need, and verifies that all explicit references are in the correct place,
and generates any missing implicit ones.

Reviewed by Lang Hames and Nick Kledzik.

Differential Revision: http://reviews.llvm.org/D15439

llvm-svn: 263590
2016-03-15 21:33:10 +00:00
..
Inputs Generate version min load commands when the platform is unknown. 2016-02-04 02:16:08 +00:00
PIE.yaml Delete unnecessary generality in loadFile. 2015-04-24 15:51:45 +00:00
align_text.yaml Use arithmetic type to represent alignments (not in log2) everywhere. 2015-03-26 02:20:25 +00:00
arm-interworking-movw.yaml Fix handling of mach header and DSO handle symbols. 2016-02-02 21:37:15 +00:00
arm-interworking.yaml [MachO] Use llvm-readobj in lieu of macho-dump. 2015-09-22 17:31:01 +00:00
arm-shims.yaml [MachO] Use llvm-readobj in lieu of macho-dump. 2015-09-22 17:31:01 +00:00
arm-subsections-via-symbols.yaml Remove trailing whitespace characters. 2015-04-27 17:18:04 +00:00
arm64-reloc-negDelta32-fixup.yaml Fix offset in test case. NFC 2016-01-07 21:12:30 +00:00
arm64-relocs-errors-delta64-offset.yaml Verify that macho-o delta64 relocs have the same offset. 2015-12-10 18:48:52 +00:00
arm64-section-order.yaml Sort sections in relocatable files. 2016-01-04 22:29:36 +00:00
cstring-sections.yaml Delete unnecessary generality in loadFile. 2015-04-24 15:51:45 +00:00
data-in-code-load-command.yaml Add cmdline options for LC_DATA_IN_CODE load command. 2016-02-09 02:10:39 +00:00
data-only-dylib.yaml Remove trailing whitespace characters. 2015-04-27 17:18:04 +00:00
dead-strip-globals.yaml Add support for export_dynamic cmdline option and behaviour. 2016-01-22 21:13:24 +00:00
demangle.yaml Remove trailing whitespace characters. 2015-04-27 17:18:04 +00:00
dependency_info.yaml lld/test/mach-o/dependency_info.yaml: Forgot to remove XFAIL:win32. 2016-02-09 07:44:10 +00:00
do-not-emit-unwind-fde-arm64.yaml Fix EHFrame processing to add implicit references when needed. 2016-03-15 21:33:10 +00:00
dso_handle.yaml [mach-o] Support linker synthesized mach_header symbols. 2014-11-12 22:21:56 +00:00
dylib-install-names.yaml [macho] Minor install_name fixes 2014-12-20 09:22:56 +00:00
eh-frame-relocs-arm64.yaml Fix EHFrame processing to add implicit references when needed. 2016-03-15 21:33:10 +00:00
error-simulator-vs-macosx.yaml Check for mismatched arch and OS when linking MachO files. 2016-01-14 23:25:06 +00:00
exe-offsets.yaml [mach-o] zero-fill sections have no file offset 2014-11-18 00:30:29 +00:00
exe-segment-overlap.yaml [mach-o] Support data-only dylibs 2014-10-24 22:19:22 +00:00
executable-exports.yaml [LLD][MachO] Fix a FIXME: Subtract base address from atom address when building 2015-09-21 22:06:02 +00:00
exported_symbols_list-dylib.yaml Remove trailing whitespace characters. 2015-04-27 17:18:04 +00:00
exported_symbols_list-obj.yaml Remove trailing whitespace characters. 2015-04-27 17:18:04 +00:00
exported_symbols_list-undef.yaml Remove trailing whitespace characters. 2015-04-27 17:18:04 +00:00
fat-archive.yaml Remove trailing whitespace characters. 2015-04-27 17:18:04 +00:00
filelist.yaml [mach-o] Support -filelist option in darwin driver 2014-08-15 19:53:41 +00:00
flat_namespace_undef_error.yaml [lld][MachO] Initial implementation of -flat_namespace and -undefined. 2015-09-28 20:25:14 +00:00
flat_namespace_undef_suppress.yaml [lld][MachO] Initial implementation of -flat_namespace and -undefined. 2015-09-28 20:25:14 +00:00
force_load-dylib.yaml Remove trailing whitespace characters. 2015-04-27 17:18:04 +00:00
force_load-x86_64.yaml Remove trailing whitespace characters. 2015-04-27 17:18:04 +00:00
framework-user-paths.yaml Remove trailing whitespace characters. 2015-04-27 17:18:04 +00:00
function-starts-load-command.yaml Generate LC_FUNCTION_STARTS load command. 2016-02-09 01:38:13 +00:00
gcc_except_tab-got-arm64.yaml Don't bypass the GOT for delta32toGOT references. 2015-12-09 00:46:02 +00:00
got-order.yaml Remove trailing whitespace characters. 2015-04-27 17:18:04 +00:00
hello-world-arm64.yaml Update for llvm change. 2015-07-06 19:21:08 +00:00
hello-world-armv6.yaml Delete unnecessary generality in loadFile. 2015-04-24 15:51:45 +00:00
hello-world-armv7.yaml Update for llvm change. 2015-07-06 19:21:08 +00:00
hello-world-x86.yaml Remove trailing whitespace characters. 2015-04-27 17:18:04 +00:00
hello-world-x86_64.yaml __mh_execute_header atoms should be global and never dead strippped. 2016-02-02 22:19:01 +00:00
image-base.yaml [MachO] Use llvm-readobj in lieu of macho-dump. 2015-09-22 17:31:01 +00:00
infer-arch.yaml Remove trailing whitespace characters. 2015-04-27 17:18:04 +00:00
interposing-section.yaml Remove trailing whitespace characters. 2015-04-27 17:18:04 +00:00
keep_private_externs.yaml Remove trailing whitespace characters. 2015-04-27 17:18:04 +00:00
lazy-bind-x86_64.yaml Use __nl_symbol_ptr instead of __got in the stubs pass on x86 archs. 2016-02-09 20:11:17 +00:00
lib-search-paths.yaml Subclass InputGraph to get darwin linker library semantics 2014-10-21 21:14:11 +00:00
library-order.yaml Remove trailing whitespace characters. 2015-04-27 17:18:04 +00:00
library-rescan.yaml Remove trailing whitespace characters. 2015-04-27 17:18:04 +00:00
libresolve-bizarre-root-override.yaml [mach-o] Add support for upward linking 2014-10-16 19:31:28 +00:00
libresolve-multiple-syslibroots.yaml [mach-o] Support -filelist option in darwin driver 2014-08-15 19:53:41 +00:00
libresolve-one-syslibroot.yaml [mach-o] Support -filelist option in darwin driver 2014-08-15 19:53:41 +00:00
libresolve-simple.yaml [mach-o] Support -filelist option in darwin driver 2014-08-15 19:53:41 +00:00
libresolve-user-paths.yaml [mach-o] Support -filelist option in darwin driver 2014-08-15 19:53:41 +00:00
libresolve-z.yaml [mach-o] Support -filelist option in darwin driver 2014-08-15 19:53:41 +00:00
linker-as-ld.yaml Delete unnecessary generality in loadFile. 2015-04-24 15:51:45 +00:00
lit.local.cfg [mach-o] add representation for LC_ID_DYLIB to MachONormalizedFile 2014-07-01 08:15:41 +00:00
mach_header-cpusubtype.yaml Set CPU_SUBTYPE_LIB64 in mach_header. 2016-02-04 20:43:43 +00:00
mh_bundle_header.yaml We should never dead strip mach header symbols. 2016-02-09 01:34:13 +00:00
mh_dylib_header.yaml [mach-o] Support linker synthesized mach_header symbols. 2014-11-12 22:21:56 +00:00
objc-category-list-atom.yaml Atomize the ObjC category list section. 2016-02-01 19:10:10 +00:00
objc-image-info-host-vs-simulator.yaml Set the objc constraint on the context based on the parsed files. 2016-01-19 19:46:41 +00:00
objc-image-info-invalid-size.yaml Remove unnecessary extra linked file in RUN line. NFC. 2016-01-15 23:25:40 +00:00
objc-image-info-invalid-version.yaml Check that the objc image info version is exactly 0 2016-01-15 23:25:37 +00:00
objc-image-info-mismatched-swift-version.yaml Add checking of differing swift versions in input files. 2016-01-16 00:07:22 +00:00
objc-image-info-pass-output.yaml Add an ObjCPass to the MachO linker. 2016-01-19 21:54:21 +00:00
objc-image-info-simulator-vs-host.yaml Set the objc constraint on the context based on the parsed files. 2016-01-19 19:46:41 +00:00
objc-image-info-unsupported-gc.yaml Give error on binaries containing GC objc image infos. 2016-01-16 00:57:07 +00:00
objc_export_list.yaml Remove trailing whitespace characters. 2015-04-27 17:18:04 +00:00
order_file-basic.yaml [mach-o] Add support for -order_file option 2014-11-07 21:01:21 +00:00
parse-aliases.yaml Remove trailing whitespace characters. 2015-04-27 17:18:04 +00:00
parse-arm-relocs.yaml Remove trailing whitespace characters. 2015-04-27 17:18:04 +00:00
parse-cfstring32.yaml [mach-o] add parsing of x86 relocations 2014-07-02 23:52:22 +00:00
parse-cfstring64.yaml Remove trailing whitespace characters. 2015-04-27 17:18:04 +00:00
parse-compact-unwind32.yaml [mach-o] Refactor sections -> atoms to be table driven. 2014-06-03 23:36:50 +00:00
parse-compact-unwind64.yaml [mach-0] Add support for parsing compact unwind info section 2014-05-29 23:50:48 +00:00
parse-data-in-code-armv7.yaml Remove trailing whitespace characters. 2015-04-27 17:18:04 +00:00
parse-data-in-code-x86.yaml [mach-o] Add support for LC_DATA_IN_CODE 2014-07-24 23:06:56 +00:00
parse-data-relocs-arm64.yaml Fix MachO arm64 delta32ToGOT reloc encoding in -r. 2016-01-06 20:53:19 +00:00
parse-data-relocs-x86_64.yaml Only emit files with subsections_via_symbols if all inputs had that set. 2016-01-16 01:09:23 +00:00
parse-data.yaml [mach-o] Refactor sections -> atoms to be table driven. 2014-06-03 23:36:50 +00:00
parse-eh-frame-relocs-x86_64.yaml [LLD] Make sure MachO FDEs read their augmentation data strings from the right 2015-05-16 00:08:02 +00:00
parse-eh-frame-x86-anon.yaml Remove trailing whitespace characters. 2015-04-27 17:18:04 +00:00
parse-eh-frame-x86-labeled.yaml Remove trailing whitespace characters. 2015-04-27 17:18:04 +00:00
parse-eh-frame.yaml [mach-o] avoid overly clever std::find_if 2014-10-15 20:26:24 +00:00
parse-function.yaml Remove trailing whitespace characters. 2015-04-27 17:18:04 +00:00
parse-initializers32.yaml [mach-o] Add support for initializers and terminators in object files 2014-05-27 23:20:52 +00:00
parse-initializers64.yaml Remove trailing whitespace characters. 2015-04-27 17:18:04 +00:00
parse-literals-error.yaml Remove trailing whitespace characters. 2015-04-27 17:18:04 +00:00
parse-literals.yaml Remove trailing whitespace characters. 2015-04-27 17:18:04 +00:00
parse-non-lazy-pointers.yaml [mach-o] add parsing of x86 relocations 2014-07-02 23:52:22 +00:00
parse-relocs-x86.yaml Remove trailing whitespace characters. 2015-04-27 17:18:04 +00:00
parse-section-no-symbol.yaml [mach-o] don't assume all sections have symbols 2014-06-25 10:59:37 +00:00
parse-tentative-defs.yaml YAML: Do not use 2^x notation to represent alignments. 2015-03-25 22:06:04 +00:00
parse-text-relocs-arm64.yaml [mach-o] Add support for arm64 (AAarch64) 2014-09-09 23:52:59 +00:00
parse-text-relocs-x86_64.yaml [LLD] Add support for MachO ripRel32MinusNAnon relocations. 2015-05-13 00:29:43 +00:00
parse-tlv-relocs-x86-64.yaml [lld] Add MachO thread-local storage support. 2015-06-23 20:35:31 +00:00
re-exported-dylib-ordinal.yaml Delete unnecessary generality in loadFile. 2015-04-24 15:51:45 +00:00
rpath.yaml [lld][MachO] Make sure LC_RPATH command size is a multiple of the pointer size. 2015-10-29 16:50:26 +00:00
run-tlv-pass-x86-64.yaml [lld][MachO] Recognize __thread_bss sections as zero-fill and set all the 2015-12-11 23:25:09 +00:00
sdk-version-error.yaml Add support for -sdk_version cmdline option. 2016-02-03 23:39:05 +00:00
sectalign.yaml Remove trailing whitespace characters. 2015-04-27 17:18:04 +00:00
sectattrs.yaml Set S_ATTR_SOME_INSTRUCTIONS on __text section. 2016-02-04 02:23:34 +00:00
sectcreate.yaml [lld][Darwin] Add support for the -sectcreate option. 2015-10-24 08:20:51 +00:00
seg-protection-arm64.yaml Set max segment protection level. 2016-02-06 00:51:16 +00:00
seg-protection-x86_64.yaml Set max segment protection level. 2016-02-06 00:51:16 +00:00
source-version.yaml Add test missed from r259746 2016-02-04 02:50:07 +00:00
stack-size.yaml [lld] Make the MachO -stack_size default '0', add a test case. 2015-05-22 00:25:34 +00:00
subsections-via-symbols-default.yaml MachoFile should default to using subsections_via_symbols. 2016-02-01 22:24:44 +00:00
twolevel_namespace_undef_dynamic_lookup.yaml [lld][MachO] Fix a think-o to get the twolevel/dynamic_lookup test passing. 2015-09-28 20:52:21 +00:00
twolevel_namespace_undef_warning_suppress.yaml [lld][MachO] Initial implementation of -flat_namespace and -undefined. 2015-09-28 20:25:14 +00:00
unwind-info-simple-arm64.yaml Don't bypass the GOT for delta32toGOT references. 2015-12-09 00:46:02 +00:00
unwind-info-simple-x86_64.yaml Remove out of bounds reloc from reduced file. 2016-01-15 17:25:12 +00:00
upward-dylib-load-command.yaml Remove trailing whitespace characters. 2015-04-27 17:18:04 +00:00
upward-dylib-paths.yaml [mach-o] Add support for upward linking 2014-10-16 19:31:28 +00:00
usage.yaml [mach-o] Fix so no options causes usage message to be printed 2014-09-09 00:45:35 +00:00
use-simple-dylib.yaml Delete unnecessary generality in loadFile. 2015-04-24 15:51:45 +00:00
version-min-load-command-object.yaml Generate version min load commands when the platform is unknown. 2016-02-04 02:16:08 +00:00
version-min-load-command.yaml Add support for -sdk_version cmdline option. 2016-02-03 23:39:05 +00:00
write-final-sections.yaml [lld][MachO] Prune unused EH frames. 2015-10-23 05:39:16 +00:00
wrong-arch-error.yaml Delete unnecessary generality in loadFile. 2015-04-24 15:51:45 +00:00