]> git.saurik.com Git - apple/ld64.git/commitdiff
ld64-85.tar.gz developer-tools-31 v85
authorApple <opensource@apple.com>
Tue, 15 Jul 2008 00:01:50 +0000 (00:01 +0000)
committerApple <opensource@apple.com>
Tue, 15 Jul 2008 00:01:50 +0000 (00:01 +0000)
629 files changed:
APPLE_LICENSE [changed mode: 0755->0644]
ChangeLog [changed mode: 0755->0644]
doc/man/man1/ld.1 [changed mode: 0755->0644]
doc/man/man1/ld64.1 [changed mode: 0755->0644]
doc/man/man1/rebase.1 [changed mode: 0755->0644]
ld64.xcodeproj/project.pbxproj [changed mode: 0755->0644]
src/Architectures.hpp [changed mode: 0755->0644]
src/ArchiveReader.hpp [changed mode: 0755->0644]
src/ExecutableFile.h [changed mode: 0755->0644]
src/FileAbstraction.hpp [changed mode: 0755->0644]
src/LTOReader.hpp [changed mode: 0755->0644]
src/MachOFileAbstraction.hpp [changed mode: 0755->0644]
src/MachOReaderDylib.hpp [changed mode: 0755->0644]
src/MachOReaderRelocatable.hpp [changed mode: 0755->0644]
src/MachOWriterExecutable.hpp [changed mode: 0755->0644]
src/ObjectDump.cpp [changed mode: 0755->0644]
src/ObjectFile.h [changed mode: 0755->0644]
src/OpaqueSection.hpp [changed mode: 0755->0644]
src/Options.cpp [changed mode: 0755->0644]
src/Options.h [changed mode: 0755->0644]
src/SectCreate.h [changed mode: 0755->0644]
src/debugline.c [changed mode: 0755->0644]
src/debugline.h [changed mode: 0755->0644]
src/dwarf2.h [changed mode: 0755->0644]
src/ld.cpp [changed mode: 0755->0644]
src/machochecker.cpp [changed mode: 0755->0644]
src/rebase.cpp [changed mode: 0755->0644]
unit-tests/README [changed mode: 0755->0644]
unit-tests/include/common.makefile [changed mode: 0755->0644]
unit-tests/include/test.h [changed mode: 0755->0644]
unit-tests/run-all-unit-tests
unit-tests/src/Makefile [changed mode: 0755->0644]
unit-tests/src/results-to-xml.cpp [changed mode: 0755->0644]
unit-tests/src/xmlparser/xmlparser.1 [changed mode: 0755->0644]
unit-tests/src/xmlparser/xmlparser.m [changed mode: 0755->0644]
unit-tests/src/xmlparser/xmlparser.xcodeproj/project.pbxproj [changed mode: 0755->0644]
unit-tests/src/xmlparser/xmlparser_Prefix.pch [changed mode: 0755->0644]
unit-tests/test-cases/16-byte-alignment/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/16-byte-alignment/comment.txt [changed mode: 0755->0644]
unit-tests/test-cases/16-byte-alignment/tl_test2.c [changed mode: 0755->0644]
unit-tests/test-cases/absolute-symbol/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/absolute-symbol/abs.s [changed mode: 0755->0644]
unit-tests/test-cases/absolute-symbol/main.c [changed mode: 0755->0644]
unit-tests/test-cases/alias-command-line/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/alias-command-line/aliases.s [changed mode: 0755->0644]
unit-tests/test-cases/alias-command-line/aliases.txt [changed mode: 0755->0644]
unit-tests/test-cases/alias-objects/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/alias-objects/aliases.s [changed mode: 0755->0644]
unit-tests/test-cases/align-modulus/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/align-modulus/align.s [changed mode: 0755->0644]
unit-tests/test-cases/align-modulus/comment.txt [changed mode: 0755->0644]
unit-tests/test-cases/align-modulus/foo.c [changed mode: 0755->0644]
unit-tests/test-cases/align-modulus/foo.exp [changed mode: 0755->0644]
unit-tests/test-cases/allow-stack-execute/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/allow-stack-execute/comment.txt [changed mode: 0755->0644]
unit-tests/test-cases/allow-stack-execute/foo.c [changed mode: 0755->0644]
unit-tests/test-cases/allowable-client/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/allowable-client/bar.c [changed mode: 0755->0644]
unit-tests/test-cases/allowable-client/baz.c [changed mode: 0755->0644]
unit-tests/test-cases/allowable-client/comment.txt [changed mode: 0755->0644]
unit-tests/test-cases/allowable-client/foo.c [changed mode: 0755->0644]
unit-tests/test-cases/allowable-client/main.c [changed mode: 0755->0644]
unit-tests/test-cases/archive-ObjC/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/archive-ObjC/bar.c [changed mode: 0755->0644]
unit-tests/test-cases/archive-ObjC/baz.m [changed mode: 0755->0644]
unit-tests/test-cases/archive-ObjC/foo.m [changed mode: 0755->0644]
unit-tests/test-cases/archive-ObjC/main.c [changed mode: 0755->0644]
unit-tests/test-cases/archive-basic/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/archive-basic/bar.c [changed mode: 0755->0644]
unit-tests/test-cases/archive-basic/comment.txt [changed mode: 0755->0644]
unit-tests/test-cases/archive-basic/foo.c [changed mode: 0755->0644]
unit-tests/test-cases/archive-basic/main.c [changed mode: 0755->0644]
unit-tests/test-cases/archive-duplicate/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/archive-duplicate/bar.c [changed mode: 0755->0644]
unit-tests/test-cases/archive-duplicate/foo.c [changed mode: 0755->0644]
unit-tests/test-cases/archive-duplicate/main.c [changed mode: 0755->0644]
unit-tests/test-cases/archive-weak/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/archive-weak/bar.c [changed mode: 0755->0644]
unit-tests/test-cases/archive-weak/baz.c [changed mode: 0755->0644]
unit-tests/test-cases/archive-weak/comment.txt [changed mode: 0755->0644]
unit-tests/test-cases/archive-weak/foo.c [changed mode: 0755->0644]
unit-tests/test-cases/archive-weak/main.c [changed mode: 0755->0644]
unit-tests/test-cases/auto-arch/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/auto-arch/hello.c [changed mode: 0755->0644]
unit-tests/test-cases/blank-stubs/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/blank-stubs/comment.txt [changed mode: 0755->0644]
unit-tests/test-cases/blank-stubs/foo.c [changed mode: 0755->0644]
unit-tests/test-cases/blank-stubs/main.c [changed mode: 0755->0644]
unit-tests/test-cases/branch-islands/Makefile [new file with mode: 0644]
unit-tests/test-cases/branch-islands/extra.c [new file with mode: 0644]
unit-tests/test-cases/branch-islands/hello.c [new file with mode: 0644]
unit-tests/test-cases/branch-islands/space.s [new file with mode: 0644]
unit-tests/test-cases/bundle_loader/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/bundle_loader/bar.c [changed mode: 0755->0644]
unit-tests/test-cases/bundle_loader/bundle.c [changed mode: 0755->0644]
unit-tests/test-cases/bundle_loader/main.c [changed mode: 0755->0644]
unit-tests/test-cases/cfstring-coalesce/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/cfstring-coalesce/bar.c [changed mode: 0755->0644]
unit-tests/test-cases/cfstring-coalesce/foo.c [changed mode: 0755->0644]
unit-tests/test-cases/cfstring-utf16/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/cfstring-utf16/bar.m [changed mode: 0755->0644]
unit-tests/test-cases/cfstring-utf16/foo.m [changed mode: 0755->0644]
unit-tests/test-cases/commons-alignment/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/commons-alignment/foo.s [changed mode: 0755->0644]
unit-tests/test-cases/commons-coalesced-dead_strip/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/commons-coalesced-dead_strip/a.c [changed mode: 0755->0644]
unit-tests/test-cases/commons-coalesced-dead_strip/b.c [changed mode: 0755->0644]
unit-tests/test-cases/commons-coalesced-dead_strip/c.c [changed mode: 0755->0644]
unit-tests/test-cases/commons-coalesced-dead_strip/c.h [changed mode: 0755->0644]
unit-tests/test-cases/commons-mixed/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/commons-mixed/bar.c [changed mode: 0755->0644]
unit-tests/test-cases/commons-mixed/foo.c [changed mode: 0755->0644]
unit-tests/test-cases/commons-order/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/commons-order/bar.c [changed mode: 0755->0644]
unit-tests/test-cases/commons-order/baz.c [changed mode: 0755->0644]
unit-tests/test-cases/commons-order/expected.order [changed mode: 0755->0644]
unit-tests/test-cases/commons-order/foo.c [changed mode: 0755->0644]
unit-tests/test-cases/commons-order/main.c [changed mode: 0755->0644]
unit-tests/test-cases/cpu-sub-types-preference/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/cpu-sub-types-preference/foo.c [changed mode: 0755->0644]
unit-tests/test-cases/cpu-sub-types/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/cpu-sub-types/comment.txt [changed mode: 0755->0644]
unit-tests/test-cases/cpu-sub-types/foo.c [changed mode: 0755->0644]
unit-tests/test-cases/cpu-sub-types/main.c [changed mode: 0755->0644]
unit-tests/test-cases/dead_strip-archive-global/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/dead_strip-archive-global/foo.c [changed mode: 0755->0644]
unit-tests/test-cases/dead_strip-archive-global/main.c [changed mode: 0755->0644]
unit-tests/test-cases/dead_strip-archive/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/dead_strip-archive/comment.txt [changed mode: 0755->0644]
unit-tests/test-cases/dead_strip-archive/foo.c [changed mode: 0755->0644]
unit-tests/test-cases/dead_strip-archive/main.c [changed mode: 0755->0644]
unit-tests/test-cases/dead_strip-init-archive/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/dead_strip-init-archive/bar.c [changed mode: 0755->0644]
unit-tests/test-cases/dead_strip-init-archive/foo.c [changed mode: 0755->0644]
unit-tests/test-cases/dead_strip/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/dead_strip/comment.txt [changed mode: 0755->0644]
unit-tests/test-cases/dead_strip/deadwood.c [changed mode: 0755->0644]
unit-tests/test-cases/dead_strip/main.c [changed mode: 0755->0644]
unit-tests/test-cases/dead_strip/main.exp [changed mode: 0755->0644]
unit-tests/test-cases/dead_strip_dylibs/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/dead_strip_dylibs/bar.c [changed mode: 0755->0644]
unit-tests/test-cases/dead_strip_dylibs/baz.c [changed mode: 0755->0644]
unit-tests/test-cases/dead_strip_dylibs/foo.c [changed mode: 0755->0644]
unit-tests/test-cases/dead_strip_dylibs/main.c [changed mode: 0755->0644]
unit-tests/test-cases/dead_strip_section_attribute/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/dead_strip_section_attribute/comment.txt [changed mode: 0755->0644]
unit-tests/test-cases/dead_strip_section_attribute/main.c [changed mode: 0755->0644]
unit-tests/test-cases/dtrace-static-probes-coalescing/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/dtrace-static-probes-coalescing/Number.d [changed mode: 0755->0644]
unit-tests/test-cases/dtrace-static-probes-coalescing/a.cxx [changed mode: 0755->0644]
unit-tests/test-cases/dtrace-static-probes-coalescing/header.h [changed mode: 0755->0644]
unit-tests/test-cases/dtrace-static-probes-coalescing/x.cxx [changed mode: 0755->0644]
unit-tests/test-cases/dtrace-static-probes/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/dtrace-static-probes/bar.d [changed mode: 0755->0644]
unit-tests/test-cases/dtrace-static-probes/comment.txt [changed mode: 0755->0644]
unit-tests/test-cases/dtrace-static-probes/foo.d [changed mode: 0755->0644]
unit-tests/test-cases/dtrace-static-probes/main.c [changed mode: 0755->0644]
unit-tests/test-cases/dwarf-archive-all_load/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/dwarf-archive-all_load/bar.c [changed mode: 0755->0644]
unit-tests/test-cases/dwarf-archive-all_load/baz.c [changed mode: 0755->0644]
unit-tests/test-cases/dwarf-archive-all_load/comment.txt [changed mode: 0755->0644]
unit-tests/test-cases/dwarf-archive-all_load/expected-stabs [changed mode: 0755->0644]
unit-tests/test-cases/dwarf-archive-all_load/foo.c [changed mode: 0755->0644]
unit-tests/test-cases/dwarf-debug-notes-r/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/dwarf-debug-notes-r/bar.cxx [changed mode: 0755->0644]
unit-tests/test-cases/dwarf-debug-notes-r/comment.txt [changed mode: 0755->0644]
unit-tests/test-cases/dwarf-debug-notes-r/expected-stabs [changed mode: 0755->0644]
unit-tests/test-cases/dwarf-debug-notes-r/foo.cxx [changed mode: 0755->0644]
unit-tests/test-cases/dwarf-debug-notes-r/main.cxx [changed mode: 0755->0644]
unit-tests/test-cases/dwarf-debug-notes/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/dwarf-debug-notes/comment.txt [changed mode: 0755->0644]
unit-tests/test-cases/dwarf-debug-notes/expected-stabs [changed mode: 0755->0644]
unit-tests/test-cases/dwarf-debug-notes/header.h [changed mode: 0755->0644]
unit-tests/test-cases/dwarf-debug-notes/hello.cxx [changed mode: 0755->0644]
unit-tests/test-cases/dwarf-debug-notes/other.cxx [changed mode: 0755->0644]
unit-tests/test-cases/dwarf-ignore/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/dwarf-ignore/comment.txt [changed mode: 0755->0644]
unit-tests/test-cases/dwarf-ignore/hello.c [changed mode: 0755->0644]
unit-tests/test-cases/dwarf-strip/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/dwarf-strip/comment.txt [changed mode: 0755->0644]
unit-tests/test-cases/dwarf-strip/hello.c [changed mode: 0755->0644]
unit-tests/test-cases/dylib-aliases/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/dylib-aliases/bar.c [changed mode: 0755->0644]
unit-tests/test-cases/dylib-aliases/foo.c [changed mode: 0755->0644]
unit-tests/test-cases/dylib-aliases/main.c [changed mode: 0755->0644]
unit-tests/test-cases/dylib-re-export-cycle/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/dylib-re-export-cycle/bar.c [changed mode: 0755->0644]
unit-tests/test-cases/dylib-re-export-cycle/foo.c [changed mode: 0755->0644]
unit-tests/test-cases/dylib-re-export-cycle/main.c [changed mode: 0755->0644]
unit-tests/test-cases/dylib_file-missing/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/dylib_file-missing/bar.c [changed mode: 0755->0644]
unit-tests/test-cases/dylib_file-missing/foo.c [changed mode: 0755->0644]
unit-tests/test-cases/dylib_file-missing/main.c [changed mode: 0755->0644]
unit-tests/test-cases/dylib_file/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/dylib_file/bar.c [changed mode: 0755->0644]
unit-tests/test-cases/dylib_file/comment.txt [changed mode: 0755->0644]
unit-tests/test-cases/dylib_file/foo.c [changed mode: 0755->0644]
unit-tests/test-cases/dylib_file/main.c [changed mode: 0755->0644]
unit-tests/test-cases/dylib_init/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/dylib_init/foo.c [changed mode: 0755->0644]
unit-tests/test-cases/eh-coalescing-r/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/eh-coalescing-r/bar.cxx [changed mode: 0755->0644]
unit-tests/test-cases/eh-coalescing-r/foo.cxx [changed mode: 0755->0644]
unit-tests/test-cases/eh-coalescing-r/func.h [changed mode: 0755->0644]
unit-tests/test-cases/eh-coalescing/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/eh-coalescing/bar.cxx [changed mode: 0755->0644]
unit-tests/test-cases/eh-coalescing/foo.cxx [changed mode: 0755->0644]
unit-tests/test-cases/eh-coalescing/foo2.cxx [changed mode: 0755->0644]
unit-tests/test-cases/eh-coalescing/func.h [changed mode: 0755->0644]
unit-tests/test-cases/eh-strip-test/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/eh-strip-test/comment.txt [changed mode: 0755->0644]
unit-tests/test-cases/eh-strip-test/main.cxx [changed mode: 0755->0644]
unit-tests/test-cases/eh_frame/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/eh_frame/bar.cxx [changed mode: 0755->0644]
unit-tests/test-cases/eh_frame/foo.cxx [changed mode: 0755->0644]
unit-tests/test-cases/empty-object/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/empty-object/main.c [changed mode: 0755->0644]
unit-tests/test-cases/end-label/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/end-label/bar.s [changed mode: 0755->0644]
unit-tests/test-cases/end-label/foo.s [changed mode: 0755->0644]
unit-tests/test-cases/exported-symbols-wildcards-dead_strip/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/exported-symbols-wildcards-dead_strip/foo.c [changed mode: 0755->0644]
unit-tests/test-cases/exported-symbols-wildcards/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/exported-symbols-wildcards/expect1 [changed mode: 0755->0644]
unit-tests/test-cases/exported-symbols-wildcards/expect2 [changed mode: 0755->0644]
unit-tests/test-cases/exported-symbols-wildcards/expect3 [changed mode: 0755->0644]
unit-tests/test-cases/exported-symbols-wildcards/expect4 [changed mode: 0755->0644]
unit-tests/test-cases/exported-symbols-wildcards/expect5 [changed mode: 0755->0644]
unit-tests/test-cases/exported-symbols-wildcards/expect6 [changed mode: 0755->0644]
unit-tests/test-cases/exported-symbols-wildcards/expect7 [changed mode: 0755->0644]
unit-tests/test-cases/exported-symbols-wildcards/expect8 [changed mode: 0755->0644]
unit-tests/test-cases/exported-symbols-wildcards/foo.c [changed mode: 0755->0644]
unit-tests/test-cases/exported-symbols-wildcards/list5 [changed mode: 0755->0644]
unit-tests/test-cases/exported_symbols_list-eol/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/exported_symbols_list-eol/expected.nm [changed mode: 0755->0644]
unit-tests/test-cases/exported_symbols_list-eol/test.c [changed mode: 0755->0644]
unit-tests/test-cases/exported_symbols_list-eol/test.exp [changed mode: 0755->0644]
unit-tests/test-cases/exported_symbols_list-hidden/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/exported_symbols_list-hidden/test.c [changed mode: 0755->0644]
unit-tests/test-cases/exported_symbols_list-hidden/test.exp [changed mode: 0755->0644]
unit-tests/test-cases/exported_symbols_list-r/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/exported_symbols_list-r/test-bad.exp [changed mode: 0755->0644]
unit-tests/test-cases/exported_symbols_list-r/test.c [changed mode: 0755->0644]
unit-tests/test-cases/exported_symbols_list-r/test.exp [changed mode: 0755->0644]
unit-tests/test-cases/external-reloc-sorting/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/external-reloc-sorting/foo.c [changed mode: 0755->0644]
unit-tests/test-cases/external-reloc-sorting/main.c [changed mode: 0755->0644]
unit-tests/test-cases/filelist/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/filelist/comment.txt [changed mode: 0755->0644]
unit-tests/test-cases/filelist/hello.c [changed mode: 0755->0644]
unit-tests/test-cases/flat-dylib/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/flat-dylib/main.c [changed mode: 0755->0644]
unit-tests/test-cases/flat-indirect-undefines/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/flat-indirect-undefines/bar.c [changed mode: 0755->0644]
unit-tests/test-cases/flat-indirect-undefines/foo.c [changed mode: 0755->0644]
unit-tests/test-cases/flat-indirect-undefines/main.c [changed mode: 0755->0644]
unit-tests/test-cases/flat-main/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/flat-main/main.c [changed mode: 0755->0644]
unit-tests/test-cases/got-elimination/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/got-elimination/bar.c [changed mode: 0755->0644]
unit-tests/test-cases/got-elimination/foo.c [changed mode: 0755->0644]
unit-tests/test-cases/header-pad/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/header-pad/comment.txt [changed mode: 0755->0644]
unit-tests/test-cases/header-pad/hello.c [changed mode: 0755->0644]
unit-tests/test-cases/hello-world/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/hello-world/comment.txt [changed mode: 0755->0644]
unit-tests/test-cases/hello-world/hello.c [changed mode: 0755->0644]
unit-tests/test-cases/implicit-common2/Makefile.newtest [changed mode: 0755->0644]
unit-tests/test-cases/implicit-common2/a.c [changed mode: 0755->0644]
unit-tests/test-cases/implicit-common2/comment.txt [changed mode: 0755->0644]
unit-tests/test-cases/implicit-common2/test.c [changed mode: 0755->0644]
unit-tests/test-cases/implicit-common3/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/implicit-common3/a.c [changed mode: 0755->0644]
unit-tests/test-cases/implicit-common3/comment.txt [changed mode: 0755->0644]
unit-tests/test-cases/implicit-common3/test.c [changed mode: 0755->0644]
unit-tests/test-cases/implicit-common4/Makefile.newtest [changed mode: 0755->0644]
unit-tests/test-cases/implicit-common4/a.c [changed mode: 0755->0644]
unit-tests/test-cases/implicit-common4/comment.txt [changed mode: 0755->0644]
unit-tests/test-cases/implicit-common4/test.c [changed mode: 0755->0644]
unit-tests/test-cases/implicit-common5/Makefile.newtest [changed mode: 0755->0644]
unit-tests/test-cases/implicit-common5/a.c [changed mode: 0755->0644]
unit-tests/test-cases/implicit-common5/comment.txt [changed mode: 0755->0644]
unit-tests/test-cases/implicit-common5/test.c [changed mode: 0755->0644]
unit-tests/test-cases/implicit_dylib/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/implicit_dylib/bar.c [changed mode: 0755->0644]
unit-tests/test-cases/implicit_dylib/foo.c [changed mode: 0755->0644]
unit-tests/test-cases/implicit_dylib/main.c [changed mode: 0755->0644]
unit-tests/test-cases/indirect-dylib/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/indirect-dylib/bar.c [changed mode: 0755->0644]
unit-tests/test-cases/indirect-dylib/comment.txt [changed mode: 0755->0644]
unit-tests/test-cases/indirect-dylib/foo.c [changed mode: 0755->0644]
unit-tests/test-cases/indirect-dylib/main.c [changed mode: 0755->0644]
unit-tests/test-cases/indirect-path-search/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/indirect-path-search/bar.c [changed mode: 0755->0644]
unit-tests/test-cases/indirect-path-search/baz.c [changed mode: 0755->0644]
unit-tests/test-cases/indirect-path-search/foo.c [changed mode: 0755->0644]
unit-tests/test-cases/indirect-path-search/main.c [changed mode: 0755->0644]
unit-tests/test-cases/interposable_list/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/interposable_list/test.c [changed mode: 0755->0644]
unit-tests/test-cases/interposable_list/test.exp [changed mode: 0755->0644]
unit-tests/test-cases/large-data/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/large-data/test1.c [changed mode: 0755->0644]
unit-tests/test-cases/large-data/test2.c [changed mode: 0755->0644]
unit-tests/test-cases/large-data/test3.c [changed mode: 0755->0644]
unit-tests/test-cases/large-data/test4.c [changed mode: 0755->0644]
unit-tests/test-cases/late-link-error/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/late-link-error/comment.txt [changed mode: 0755->0644]
unit-tests/test-cases/late-link-error/link_error.s [changed mode: 0755->0644]
unit-tests/test-cases/lazy-dylib-objc/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/lazy-dylib-objc/foo.h [changed mode: 0755->0644]
unit-tests/test-cases/lazy-dylib-objc/foo.m [changed mode: 0755->0644]
unit-tests/test-cases/lazy-dylib-objc/main.m [changed mode: 0755->0644]
unit-tests/test-cases/lazy-dylib/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/lazy-dylib/bad.c [changed mode: 0755->0644]
unit-tests/test-cases/lazy-dylib/bad2.c [changed mode: 0755->0644]
unit-tests/test-cases/lazy-dylib/foo.c [changed mode: 0755->0644]
unit-tests/test-cases/lazy-dylib/main.c [changed mode: 0755->0644]
unit-tests/test-cases/literals-coalesce-alignment/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/literals-coalesce-alignment/cstring-align-0.s [changed mode: 0755->0644]
unit-tests/test-cases/literals-coalesce-alignment/cstring-align-3.s [changed mode: 0755->0644]
unit-tests/test-cases/literals-coalesce-alignment2/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/literals-coalesce-alignment2/comment.txt [changed mode: 0755->0644]
unit-tests/test-cases/literals-coalesce-alignment2/cstring-align-0.s [changed mode: 0755->0644]
unit-tests/test-cases/literals-coalesce-alignment2/cstring-align-3.s [changed mode: 0755->0644]
unit-tests/test-cases/literals-coalesce-alignment3/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/literals-coalesce-alignment3/comment.txt [changed mode: 0755->0644]
unit-tests/test-cases/literals-coalesce-alignment3/cstring-align-0.s [changed mode: 0755->0644]
unit-tests/test-cases/literals-coalesce-alignment3/cstring-align-3.s [changed mode: 0755->0644]
unit-tests/test-cases/literals-coalesce/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/literals-coalesce/literals.s [changed mode: 0755->0644]
unit-tests/test-cases/literals-coalesce2/Makefile.newtest [changed mode: 0755->0644]
unit-tests/test-cases/literals-coalesce2/comment.txt [changed mode: 0755->0644]
unit-tests/test-cases/literals-coalesce2/literals.s [changed mode: 0755->0644]
unit-tests/test-cases/llvm-integration/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/llvm-integration/a.c [changed mode: 0755->0644]
unit-tests/test-cases/llvm-integration/a1.c [changed mode: 0755->0644]
unit-tests/test-cases/llvm-integration/a10.c [changed mode: 0755->0644]
unit-tests/test-cases/llvm-integration/a11.c [changed mode: 0755->0644]
unit-tests/test-cases/llvm-integration/a12.c [changed mode: 0755->0644]
unit-tests/test-cases/llvm-integration/a12.h [changed mode: 0755->0644]
unit-tests/test-cases/llvm-integration/a13.cc [changed mode: 0755->0644]
unit-tests/test-cases/llvm-integration/a13.h [changed mode: 0755->0644]
unit-tests/test-cases/llvm-integration/a14.c [changed mode: 0755->0644]
unit-tests/test-cases/llvm-integration/a15.c [changed mode: 0755->0644]
unit-tests/test-cases/llvm-integration/a17.c [changed mode: 0755->0644]
unit-tests/test-cases/llvm-integration/a18.c [changed mode: 0755->0644]
unit-tests/test-cases/llvm-integration/a2.c [changed mode: 0755->0644]
unit-tests/test-cases/llvm-integration/a20.c [changed mode: 0755->0644]
unit-tests/test-cases/llvm-integration/a3.c [changed mode: 0755->0644]
unit-tests/test-cases/llvm-integration/a4.c [changed mode: 0755->0644]
unit-tests/test-cases/llvm-integration/a5.c [changed mode: 0755->0644]
unit-tests/test-cases/llvm-integration/a6.c [changed mode: 0755->0644]
unit-tests/test-cases/llvm-integration/a7.c [changed mode: 0755->0644]
unit-tests/test-cases/llvm-integration/a8.c [changed mode: 0755->0644]
unit-tests/test-cases/llvm-integration/a9.c [changed mode: 0755->0644]
unit-tests/test-cases/llvm-integration/a9.list [changed mode: 0755->0644]
unit-tests/test-cases/llvm-integration/b.c [changed mode: 0755->0644]
unit-tests/test-cases/llvm-integration/b1.c [changed mode: 0755->0644]
unit-tests/test-cases/llvm-integration/b10.c [changed mode: 0755->0644]
unit-tests/test-cases/llvm-integration/b10.h [changed mode: 0755->0644]
unit-tests/test-cases/llvm-integration/b14.c [changed mode: 0755->0644]
unit-tests/test-cases/llvm-integration/b15.c [changed mode: 0755->0644]
unit-tests/test-cases/llvm-integration/b17.c [changed mode: 0755->0644]
unit-tests/test-cases/llvm-integration/b2.c [changed mode: 0755->0644]
unit-tests/test-cases/llvm-integration/b20.c [changed mode: 0755->0644]
unit-tests/test-cases/llvm-integration/b3.c [changed mode: 0755->0644]
unit-tests/test-cases/llvm-integration/b4.c [changed mode: 0755->0644]
unit-tests/test-cases/llvm-integration/b5.c [changed mode: 0755->0644]
unit-tests/test-cases/llvm-integration/b7.c [changed mode: 0755->0644]
unit-tests/test-cases/llvm-integration/c15.c [changed mode: 0755->0644]
unit-tests/test-cases/llvm-integration/main.c [changed mode: 0755->0644]
unit-tests/test-cases/llvm-integration/main1.c [changed mode: 0755->0644]
unit-tests/test-cases/llvm-integration/main10.c [changed mode: 0755->0644]
unit-tests/test-cases/llvm-integration/main11.c [changed mode: 0755->0644]
unit-tests/test-cases/llvm-integration/main12.c [changed mode: 0755->0644]
unit-tests/test-cases/llvm-integration/main13.cc [changed mode: 0755->0644]
unit-tests/test-cases/llvm-integration/main16.c [changed mode: 0755->0644]
unit-tests/test-cases/llvm-integration/main19.c [changed mode: 0755->0644]
unit-tests/test-cases/llvm-integration/main2.c [changed mode: 0755->0644]
unit-tests/test-cases/llvm-integration/main20.c [changed mode: 0755->0644]
unit-tests/test-cases/llvm-integration/main3.c [changed mode: 0755->0644]
unit-tests/test-cases/llvm-integration/main4.c [changed mode: 0755->0644]
unit-tests/test-cases/llvm-integration/main5.c [changed mode: 0755->0644]
unit-tests/test-cases/llvm-integration/main6.c [changed mode: 0755->0644]
unit-tests/test-cases/llvm-integration/main7.c [changed mode: 0755->0644]
unit-tests/test-cases/llvm-integration/main8.c [changed mode: 0755->0644]
unit-tests/test-cases/llvm-integration/main9.c [changed mode: 0755->0644]
unit-tests/test-cases/loader_path/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/loader_path/bar.c [changed mode: 0755->0644]
unit-tests/test-cases/loader_path/foo.c [changed mode: 0755->0644]
unit-tests/test-cases/loader_path/main.c [changed mode: 0755->0644]
unit-tests/test-cases/local-symbol-partial-stripping/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/local-symbol-partial-stripping/a.expect [changed mode: 0755->0644]
unit-tests/test-cases/local-symbol-partial-stripping/a.list [changed mode: 0755->0644]
unit-tests/test-cases/local-symbol-partial-stripping/b.expect [changed mode: 0755->0644]
unit-tests/test-cases/local-symbol-partial-stripping/b.list [changed mode: 0755->0644]
unit-tests/test-cases/local-symbol-partial-stripping/c.list [changed mode: 0755->0644]
unit-tests/test-cases/local-symbol-partial-stripping/foo.c [changed mode: 0755->0644]
unit-tests/test-cases/local-symbol-partial-stripping/main.c [changed mode: 0755->0644]
unit-tests/test-cases/main-stripped/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/main-stripped/main.c [changed mode: 0755->0644]
unit-tests/test-cases/main-stripped/main.exp [changed mode: 0755->0644]
unit-tests/test-cases/missing-option-args/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/missing-option-args/comment.txt [changed mode: 0755->0644]
unit-tests/test-cases/multiple-entry-points/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/multiple-entry-points/comment.txt [changed mode: 0755->0644]
unit-tests/test-cases/multiple-entry-points/test.s [changed mode: 0755->0644]
unit-tests/test-cases/no-dynamic-common/Makefile.newtest [changed mode: 0755->0644]
unit-tests/test-cases/no-dynamic-common/a.c [changed mode: 0755->0644]
unit-tests/test-cases/no-dynamic-common/comment.txt [changed mode: 0755->0644]
unit-tests/test-cases/no-dynamic-common/test.c [changed mode: 0755->0644]
unit-tests/test-cases/no-uuid/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/no-uuid/bar.c [changed mode: 0755->0644]
unit-tests/test-cases/no-uuid/comment.txt [changed mode: 0755->0644]
unit-tests/test-cases/no-uuid/foo.c [changed mode: 0755->0644]
unit-tests/test-cases/non-lazy-r/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/non-lazy-r/foo.c [changed mode: 0755->0644]
unit-tests/test-cases/non-lazy-r/other.c [changed mode: 0755->0644]
unit-tests/test-cases/objc-category-debug-notes/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/objc-category-debug-notes/test.m [changed mode: 0755->0644]
unit-tests/test-cases/objc-exported_symbols_list/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/objc-exported_symbols_list/foo.exp [changed mode: 0755->0644]
unit-tests/test-cases/objc-exported_symbols_list/foo.m [changed mode: 0755->0644]
unit-tests/test-cases/objc-gc-checks/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/objc-gc-checks/bar.m [changed mode: 0755->0644]
unit-tests/test-cases/objc-gc-checks/comment.txt [changed mode: 0755->0644]
unit-tests/test-cases/objc-gc-checks/foo.m [changed mode: 0755->0644]
unit-tests/test-cases/objc-gc-checks/runtime.c [changed mode: 0755->0644]
unit-tests/test-cases/objc-literal-pointers/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/objc-literal-pointers/test.m [changed mode: 0755->0644]
unit-tests/test-cases/objc-references/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/objc-references/comment.txt [changed mode: 0755->0644]
unit-tests/test-cases/objc-references/test.m [changed mode: 0755->0644]
unit-tests/test-cases/objc-selector-coalescing/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/objc-selector-coalescing/main.m [changed mode: 0755->0644]
unit-tests/test-cases/objc-selector-coalescing/other.m [changed mode: 0755->0644]
unit-tests/test-cases/operator-new/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/operator-new/main.cxx [changed mode: 0755->0644]
unit-tests/test-cases/order_file-ans/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/order_file-ans/main.cxx [changed mode: 0755->0644]
unit-tests/test-cases/order_file-ans/main.expected [changed mode: 0755->0644]
unit-tests/test-cases/order_file-ans/main.order [changed mode: 0755->0644]
unit-tests/test-cases/order_file/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/order_file/extra.s [changed mode: 0755->0644]
unit-tests/test-cases/order_file/main.c [changed mode: 0755->0644]
unit-tests/test-cases/order_file/main1.expected [changed mode: 0755->0644]
unit-tests/test-cases/order_file/main1.order [changed mode: 0755->0644]
unit-tests/test-cases/order_file/main2.expected [changed mode: 0755->0644]
unit-tests/test-cases/order_file/main2.order [changed mode: 0755->0644]
unit-tests/test-cases/order_file/main3.expected [changed mode: 0755->0644]
unit-tests/test-cases/order_file/main3.order [changed mode: 0755->0644]
unit-tests/test-cases/prebound-main/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/prebound-main/main.c [changed mode: 0755->0644]
unit-tests/test-cases/prebound-split-seg/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/prebound-split-seg/address_table [changed mode: 0755->0644]
unit-tests/test-cases/prebound-split-seg/bar.c [changed mode: 0755->0644]
unit-tests/test-cases/private-non-lazy/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/private-non-lazy/bar.c [changed mode: 0755->0644]
unit-tests/test-cases/private-non-lazy/comment.txt [changed mode: 0755->0644]
unit-tests/test-cases/private-non-lazy/foo.c [changed mode: 0755->0644]
unit-tests/test-cases/private-non-lazy/hello.c [changed mode: 0755->0644]
unit-tests/test-cases/re-export-cases/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/re-export-cases/bar.c [changed mode: 0755->0644]
unit-tests/test-cases/re-export-cases/baz.c [changed mode: 0755->0644]
unit-tests/test-cases/re-export-cases/foo.c [changed mode: 0755->0644]
unit-tests/test-cases/re-export-flag/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/re-export-flag/bar.c [changed mode: 0755->0644]
unit-tests/test-cases/re-export-flag/foo.c [changed mode: 0755->0644]
unit-tests/test-cases/re-export-optimizations/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/re-export-optimizations/bar.c [changed mode: 0755->0644]
unit-tests/test-cases/re-export-optimizations/foo.c [changed mode: 0755->0644]
unit-tests/test-cases/re-export-optimizations/main.c [changed mode: 0755->0644]
unit-tests/test-cases/re-export-relative-paths/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/re-export-relative-paths/bar.c [changed mode: 0755->0644]
unit-tests/test-cases/re-export-relative-paths/foo.c [changed mode: 0755->0644]
unit-tests/test-cases/re-export-relative-paths/main.c [changed mode: 0755->0644]
unit-tests/test-cases/re-export-relative-paths/wrap.c [changed mode: 0755->0644]
unit-tests/test-cases/read-only-relocs/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/read-only-relocs/foo.c [changed mode: 0755->0644]
unit-tests/test-cases/read-only-relocs/test.c [changed mode: 0755->0644]
unit-tests/test-cases/rebase-basic/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/rebase-basic/bar.m [changed mode: 0755->0644]
unit-tests/test-cases/rebase-basic/comment.txt [changed mode: 0755->0644]
unit-tests/test-cases/rebase-basic/foo.c [changed mode: 0755->0644]
unit-tests/test-cases/relocs-asm/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/relocs-asm/comment.txt [changed mode: 0755->0644]
unit-tests/test-cases/relocs-asm/relocs-asm.s [changed mode: 0755->0644]
unit-tests/test-cases/relocs-c/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/relocs-c/test.c [changed mode: 0755->0644]
unit-tests/test-cases/relocs-c2/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/relocs-c2/comment.txt [changed mode: 0755->0644]
unit-tests/test-cases/relocs-c2/test.c [changed mode: 0755->0644]
unit-tests/test-cases/relocs-literals/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/relocs-literals/test.c [changed mode: 0755->0644]
unit-tests/test-cases/relocs-literals2/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/relocs-literals2/test.c [changed mode: 0755->0644]
unit-tests/test-cases/relocs-literals3/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/relocs-literals3/comment.txt [changed mode: 0755->0644]
unit-tests/test-cases/relocs-literals3/test.c [changed mode: 0755->0644]
unit-tests/test-cases/relocs-objc/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/relocs-objc/comment.txt [changed mode: 0755->0644]
unit-tests/test-cases/relocs-objc/test.m [changed mode: 0755->0644]
unit-tests/test-cases/segment-order/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/segment-order/expected.order [changed mode: 0755->0644]
unit-tests/test-cases/segment-order/main.c [changed mode: 0755->0644]
unit-tests/test-cases/segment-order/segJJJ.s [changed mode: 0755->0644]
unit-tests/test-cases/segment-order/segKKK.s [changed mode: 0755->0644]
unit-tests/test-cases/segment-order/segLLL.s [changed mode: 0755->0644]
unit-tests/test-cases/slow-x86-stubs/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/slow-x86-stubs/hello.c [changed mode: 0755->0644]
unit-tests/test-cases/special-labels/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/special-labels/extra.s [changed mode: 0755->0644]
unit-tests/test-cases/special-labels/main.c [changed mode: 0755->0644]
unit-tests/test-cases/stabs-coalesce/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/stabs-coalesce/comment.txt [changed mode: 0755->0644]
unit-tests/test-cases/stabs-coalesce/header.h [changed mode: 0755->0644]
unit-tests/test-cases/stabs-coalesce/hello.cxx [changed mode: 0755->0644]
unit-tests/test-cases/stabs-coalesce/other.cxx [changed mode: 0755->0644]
unit-tests/test-cases/stabs-directory-slash/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/stabs-directory-slash/main.c [changed mode: 0755->0644]
unit-tests/test-cases/stack_addr_no_size/Makefile.newtest [changed mode: 0755->0644]
unit-tests/test-cases/stack_addr_no_size/comment.txt [changed mode: 0755->0644]
unit-tests/test-cases/stack_addr_no_size/main.c [changed mode: 0755->0644]
unit-tests/test-cases/stack_addr_size/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/stack_addr_size/comment.txt [changed mode: 0755->0644]
unit-tests/test-cases/stack_addr_size/main.c [changed mode: 0755->0644]
unit-tests/test-cases/stack_size_no_addr/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/stack_size_no_addr/comment.txt [changed mode: 0755->0644]
unit-tests/test-cases/stack_size_no_addr/main.c [changed mode: 0755->0644]
unit-tests/test-cases/static-executable/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/static-executable/test.c [changed mode: 0755->0644]
unit-tests/test-cases/static-strip/Makefile.newtest [changed mode: 0755->0644]
unit-tests/test-cases/static-strip/comment.txt [changed mode: 0755->0644]
unit-tests/test-cases/static-strip/test.c [changed mode: 0755->0644]
unit-tests/test-cases/strip-test2/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/strip-test2/comment.txt [changed mode: 0755->0644]
unit-tests/test-cases/strip-test2/main.cxx [changed mode: 0755->0644]
unit-tests/test-cases/strip-test3/Makefile.newtest [changed mode: 0755->0644]
unit-tests/test-cases/strip-test3/comment.txt [changed mode: 0755->0644]
unit-tests/test-cases/strip-test3/main.cxx [changed mode: 0755->0644]
unit-tests/test-cases/strip_local/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/strip_local/foo.c [changed mode: 0755->0644]
unit-tests/test-cases/strip_local/hello.c [changed mode: 0755->0644]
unit-tests/test-cases/stripped-indirect-symbol-table/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/stripped-indirect-symbol-table/a.c [changed mode: 0755->0644]
unit-tests/test-cases/stripped-indirect-symbol-table/b.c [changed mode: 0755->0644]
unit-tests/test-cases/stripped-indirect-symbol-table/c.c [changed mode: 0755->0644]
unit-tests/test-cases/stripped-indirect-symbol-table/func.c [changed mode: 0755->0644]
unit-tests/test-cases/stripped-indirect-symbol-table/strip.list [changed mode: 0755->0644]
unit-tests/test-cases/stub-generation-weak/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/stub-generation-weak/foo.c [changed mode: 0755->0644]
unit-tests/test-cases/stub-generation-weak/main.c [changed mode: 0755->0644]
unit-tests/test-cases/stub-generation/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/stub-generation/test.c [changed mode: 0755->0644]
unit-tests/test-cases/switch-jump-table/Makefile [new file with mode: 0644]
unit-tests/test-cases/switch-jump-table/interpose.exp [new file with mode: 0644]
unit-tests/test-cases/switch-jump-table/main.c [new file with mode: 0644]
unit-tests/test-cases/switch-jump-table/switch.s [new file with mode: 0644]
unit-tests/test-cases/symbol-moving/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/symbol-moving/aaa.c [changed mode: 0755->0644]
unit-tests/test-cases/symbol-moving/anotb.c [changed mode: 0755->0644]
unit-tests/test-cases/symbol-moving/bar.c [changed mode: 0755->0644]
unit-tests/test-cases/symbol-moving/bbb.c [changed mode: 0755->0644]
unit-tests/test-cases/symbol-moving/bnota.c [changed mode: 0755->0644]
unit-tests/test-cases/symbol-moving/foo.c [changed mode: 0755->0644]
unit-tests/test-cases/symbol-moving/main.c [changed mode: 0755->0644]
unit-tests/test-cases/tentative-and-archive/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/tentative-and-archive/foo.c [changed mode: 0755->0644]
unit-tests/test-cases/tentative-and-archive/main.c [changed mode: 0755->0644]
unit-tests/test-cases/tentative-and-dylib/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/tentative-and-dylib/bar.c [changed mode: 0755->0644]
unit-tests/test-cases/tentative-and-dylib/foo.c [changed mode: 0755->0644]
unit-tests/test-cases/tentative-and-dylib/main.c [changed mode: 0755->0644]
unit-tests/test-cases/tentative-to-real-hidden/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/tentative-to-real-hidden/test.c [changed mode: 0755->0644]
unit-tests/test-cases/tentative-to-real/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/tentative-to-real/comment.txt [changed mode: 0755->0644]
unit-tests/test-cases/tentative-to-real/test.c [changed mode: 0755->0644]
unit-tests/test-cases/thumb-blx/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/thumb-blx/test.c [changed mode: 0755->0644]
unit-tests/test-cases/undefined-dynamic-lookup/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/undefined-dynamic-lookup/main.c [changed mode: 0755->0644]
unit-tests/test-cases/visibility-warning-dylib-v-archive/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/visibility-warning-dylib-v-archive/bar.c [changed mode: 0755->0644]
unit-tests/test-cases/visibility-warning-dylib-v-archive/foo.c [changed mode: 0755->0644]
unit-tests/test-cases/visibility-warning-dylib-v-archive/main.c [changed mode: 0755->0644]
unit-tests/test-cases/visibility-warning/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/visibility-warning/foo.c [changed mode: 0755->0644]
unit-tests/test-cases/visibility-warning/foo_hidden.c [changed mode: 0755->0644]
unit-tests/test-cases/visibility-warning/foo_weak.c [changed mode: 0755->0644]
unit-tests/test-cases/visibility-warning/foo_weak_hidden.c [changed mode: 0755->0644]
unit-tests/test-cases/weak-def-ordinal/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/weak-def-ordinal/bar.c [changed mode: 0755->0644]
unit-tests/test-cases/weak-def-ordinal/foo.c [changed mode: 0755->0644]
unit-tests/test-cases/weak-def-ordinal/main.c [changed mode: 0755->0644]
unit-tests/test-cases/weak_dylib/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/weak_dylib/bar.c [changed mode: 0755->0644]
unit-tests/test-cases/weak_dylib/bar.h [changed mode: 0755->0644]
unit-tests/test-cases/weak_dylib/foo.c [changed mode: 0755->0644]
unit-tests/test-cases/weak_dylib/foo.h [changed mode: 0755->0644]
unit-tests/test-cases/weak_dylib/main.c [changed mode: 0755->0644]
unit-tests/test-cases/weak_import/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/weak_import/foo.c [changed mode: 0755->0644]
unit-tests/test-cases/weak_import/foo.h [changed mode: 0755->0644]
unit-tests/test-cases/weak_import/main.c [changed mode: 0755->0644]
unit-tests/test-cases/weak_import2/Makefile.newtest [changed mode: 0755->0644]
unit-tests/test-cases/weak_import2/comment.txt [changed mode: 0755->0644]
unit-tests/test-cases/weak_import2/foo.c [changed mode: 0755->0644]
unit-tests/test-cases/weak_import2/foo.h [changed mode: 0755->0644]
unit-tests/test-cases/weak_import2/foo1.c [changed mode: 0755->0644]
unit-tests/test-cases/weak_import2/main.c [changed mode: 0755->0644]
unit-tests/test-cases/weak_import3/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/weak_import3/comment.txt [changed mode: 0755->0644]
unit-tests/test-cases/weak_import3/foo.c [changed mode: 0755->0644]
unit-tests/test-cases/weak_import3/foo.h [changed mode: 0755->0644]
unit-tests/test-cases/weak_import3/foo1.c [changed mode: 0755->0644]
unit-tests/test-cases/weak_import3/main.c [changed mode: 0755->0644]
unit-tests/test-cases/why_live/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/why_live/bar.c [changed mode: 0755->0644]
unit-tests/test-cases/why_live/foo.c [changed mode: 0755->0644]
unit-tests/test-cases/why_live/main.c [changed mode: 0755->0644]
unit-tests/test-cases/zero-fill/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/zero-fill/test.c [changed mode: 0755->0644]
unit-tests/test-cases/zero-fill2/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/zero-fill2/comment.txt [changed mode: 0755->0644]
unit-tests/test-cases/zero-fill2/test.c [changed mode: 0755->0644]
unit-tests/test-cases/zero-fill3/Makefile [changed mode: 0755->0644]
unit-tests/test-cases/zero-fill3/comment.txt [changed mode: 0755->0644]
unit-tests/test-cases/zero-fill3/test.c [changed mode: 0755->0644]

old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
index 3f83489..c152946
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,53 @@
 
------ Tagged ld64-84.1.2
+----- Tagged ld64-85
+
+2008-04-29     Nick Kledzik    <kledzik@apple.com>
+
+       * ld64.xcodeproj/project.pbxproj: <llvm-c/lto.h> is moving from /usr/local/include to /Developer/usr/local/include
+
+
+2008-04-29     Nick Kledzik    <kledzik@apple.com>
+
+       <rdar://problem/5829579> ld doesn't honor "rightmost" -syslibroot argument
+       * src/Options.cpp: if last -syslibroot is /, then ignore all syslibroots
+
+
+2008-04-29     Nick Kledzik    <kledzik@apple.com>
+       
+       <rdar://problem/5866582> GLRendererFloat has bad __eh_frame section caused by mixing llvm-gcc and gcc object files
+       * src/MachOReaderRelocatable.hpp: make all atoms in __eh_frame section have 1-byte alignment
+       * src/MachOWriterExecutable.hpp: make __eh_frame section have pointer sized alignment
+
+
+2008-04-17     Nick Kledzik    <kledzik@apple.com>
+
+       * src/MachOReaderRelocatable.hpp: better cpu subtype support
+
+
+2008-04-14     Nick Kledzik    <kledzik@apple.com>
+       
+       <rdar://problem/5733759> ld64 has bad ARM branch island check
+       * src/MachOWriterExecutable.hpp: in addBranchIslands() don't force large arm programs to fail
+       
+
+2008-04-10     Nick Kledzik    <kledzik@apple.com>
+
+       * src/MachOWriterExecutable.hpp: fix stubs used with lazy dylibs
+       
+
+----- Tagged ld64-84.4
+
+2008-04-10     Nick Kledzik    <kledzik@apple.com>
+
+       <rdar://problem/5847206> SPEC2000/eon built with -mdynamic-no-pic won't run
+       * src/Architectures.hpp: added arm::kReadOnlyPointer
+       * src/MachOReaderRelocatable.hpp: generate arm::kReadOnlyPointer
+       * src/MachOWriterExecutable.hpp: use arm::kReadOnlyPointer
+       * src/machochecker.cpp: allow MH_PIE bit
+       * unit-tests/test-cases/switch-jump-table: added test cases
+       
+
+----- Tagged ld64-84.3
 
 2008-04-09     Nick Kledzik    <kledzik@apple.com>
        
@@ -7,6 +55,15 @@
        * src/ld.cpp: don't create proxy atom when scanning for dylib duplicates
        * unit-tests/test-cases/tentative-and-archive: use -undefined dynamic_lookup
 
+
+----- Tagged ld64-84.2
+
+2008-04-04     Nick Kledzik    <kledzik@apple.com>
+
+       * src/ld.cpp: don't add .eh symbols to symbol table in -r mode
+       * unit-tests/test-cases/eh-coalescing-r: update to test out of order coalescing
+       
+
 ----- Tagged ld64-84.1
 
 2008-03-28     Nick Kledzik    <kledzik@apple.com>
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
index c13038e..5f8cd7f
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                        shellPath = /bin/bash;
-                       shellScript = "if [ -f /usr/local/include/llvm-c/lto.h ]; then\n\techo \"#define LTO_SUPPORT 1\" > ${DERIVED_FILE_DIR}/configure.h\nelse\n\techo \"#undef LTO_SUPPORT\t\" > ${DERIVED_FILE_DIR}/configure.h\nfi\n";
+                       shellScript = "if [ -f /Developer/usr/local/include/llvm-c/lto.h ]; then\n\techo \"#define LTO_SUPPORT 1\" > ${DERIVED_FILE_DIR}/configure.h\nelse\n\techo \"#undef LTO_SUPPORT\t\" > ${DERIVED_FILE_DIR}/configure.h\nfi\n";
                        showEnvVarsInLog = 0;
                };
                F96D5367094A2754008E9EE8 /* ShellScript */ = {
                                GCC_WARN_UNUSED_PARAMETER = NO;
                                GCC_WARN_UNUSED_VALUE = YES;
                                GCC_WARN_UNUSED_VARIABLE = YES;
-                               HEADER_SEARCH_PATHS = "$(DEVELOPER_DIR)/usr/include";
+                               HEADER_SEARCH_PATHS = (
+                                       "$(DEVELOPER_DIR)/usr/local/include",
+                                       "$(DEVELOPER_DIR)/usr/include",
+                               );
                                INSTALL_PATH = /usr/bin;
                                MACOSX_DEPLOYMENT_TARGET = "";
                                OTHER_CPLUSPLUSFLAGS = "$(OTHER_CPLUSPLUSFLAGS)";
+                               OTHER_LDFLAGS = "-Wl,-lazy_library,/Developer/usr/lib/libLTO.dylib";
                                PREBINDING = NO;
                                PRODUCT_NAME = ld;
                                SECTORDER_FLAGS = "";
                                GCC_WARN_UNUSED_PARAMETER = NO;
                                GCC_WARN_UNUSED_VALUE = YES;
                                GCC_WARN_UNUSED_VARIABLE = YES;
-                               HEADER_SEARCH_PATHS = "$(DEVELOPER_DIR)/usr/include";
+                               HEADER_SEARCH_PATHS = (
+                                       "$(DEVELOPER_DIR)/usr/local/include",
+                                       "$(DEVELOPER_DIR)/usr/include",
+                               );
                                INSTALL_PATH = /usr/bin;
                                OTHER_CPLUSPLUSFLAGS = "$(OTHER_CPLUSPLUSFLAGS)";
+                               OTHER_LDFLAGS = "-Wl,-lazy_library,/Developer/usr/lib/libLTO.dylib";
                                PREBINDING = NO;
                                PRODUCT_NAME = ld;
                                SECTORDER_FLAGS = "";
old mode 100755 (executable)
new mode 100644 (file)
index 07f7fbb..2546bfe
@@ -78,8 +78,8 @@ struct arm
 {
        typedef Pointer32<LittleEndian>         P;
        
-       enum ReferenceKinds {  kNoFixUp, kFollowOn, kGroupSubordinate, kPointer, kPointerWeakImport, kPointerDiff,
-              kBranch24, kBranch24WeakImport, kThumbBranch22, kThumbBranch22WeakImport,
+       enum ReferenceKinds {  kNoFixUp, kFollowOn, kGroupSubordinate, kPointer, kPointerWeakImport, kPointerDiff, kReadOnlyPointer,
+                                                       kBranch24, kBranch24WeakImport, kThumbBranch22, kThumbBranch22WeakImport,
                                                        kDtraceProbe, kDtraceProbeSite, kDtraceIsEnabledSite, kDtraceTypeReference  };
 };
 
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
index 466d5df..73c58e2
@@ -140,7 +140,8 @@ Reference<A>::Reference(Kinds kind, const AtomAndOffset& at, const AtomAndOffset
        // - the target kind is not regular (is weak or tentative)
        if ( (kind != A::kNoFixUp) && (kind != A::kFollowOn) && (kind != A::kGroupSubordinate)
                && (toTarget.atom->getScope() != ObjectFile::Atom::scopeTranslationUnit) 
-               && (toTarget.atom->getDefinitionKind() != ObjectFile::Atom::kRegularDefinition) ) {
+               && (toTarget.atom->getDefinitionKind() != ObjectFile::Atom::kRegularDefinition)
+               && (toTarget.atom != at.atom) ) {
                fToTargetName = toTarget.atom->getName();
                //fprintf(stderr, "Reference(): changing to by-name %p %s, target scope=%d, target section=%s\n", toTarget.atom, fToTargetName, toTarget.atom->getScope(), toTarget.atom->getSectionName());
                fToTarget.atom = NULL;
@@ -488,6 +489,9 @@ SymbolAtom<A>::SymbolAtom(Reader<A>& owner, const macho_nlist<P>* symbol, const
                        break;
        }
        
+       // compute alignment
+       fAlignment = ObjectFile::Alignment(fSection->align(), fAddress % (1 << fSection->align()));
+
        // compute whether this atom needs to be in symbol table
        if ( (fSymbol->n_desc() & REFERENCED_DYNAMICALLY) != 0) {
                fSymbolTableInclusion = ObjectFile::Atom::kSymbolTableInAndNeverStrip;
@@ -500,6 +504,8 @@ SymbolAtom<A>::SymbolAtom(Reader<A>& owner, const macho_nlist<P>* symbol, const
                // .eh symbols exist so the linker can associate them with functions
                // removing them from final linked images is a big space savings rdar://problem/4180168
                fSymbolTableInclusion = ObjectFile::Atom::kSymbolTableNotIn;
+               // FDEs and CIEs are always packed together in a final linked image, so ignore section alignment
+               fAlignment = ObjectFile::Alignment(0);
        }
        else if (  fOwner.fOptions.fForFinalLinkedImage 
                        && ((section->flags() & SECTION_TYPE) == S_REGULAR) 
@@ -516,8 +522,6 @@ SymbolAtom<A>::SymbolAtom(Reader<A>& owner, const macho_nlist<P>* symbol, const
        else {
                fSymbolTableInclusion = ObjectFile::Atom::kSymbolTableIn;
        }
-       // compute alignment
-       fAlignment = ObjectFile::Alignment(fSection->align(), fAddress % (1 << fSection->align()));
        
        // work around malformed icc generated .o files  <rdar://problem/5349847>
        // if section starts with a symbol and that symbol address does not match section alignment, then force it to
@@ -2269,6 +2273,7 @@ void Reader<arm>::setCpuConstraint(uint32_t cpusubtype)
                case CPU_SUBTYPE_ARM_V5TEJ:
                case CPU_SUBTYPE_ARM_V6:
                case CPU_SUBTYPE_ARM_XSCALE:
+               case CPU_SUBTYPE_ARM_V7:
                        fCpuConstraint = cpusubtype;
                        break;
                default:
@@ -2322,27 +2327,38 @@ uint32_t Reader<arm>::updateCpuConstraint(uint32_t previous)
                        return fCpuConstraint;
                        break;
                case CPU_SUBTYPE_ARM_V5TEJ:
-                       // v6 and xscale are more constrained than previous file (v5), so use it
+                       // v6, v7, and xscale are more constrained than previous file (v5), so use it
                        if (   (fCpuConstraint == CPU_SUBTYPE_ARM_V6)
+                               || (fCpuConstraint == CPU_SUBTYPE_ARM_V7) 
                                || (fCpuConstraint == CPU_SUBTYPE_ARM_XSCALE) )
                                return fCpuConstraint;
                        break;
                case CPU_SUBTYPE_ARM_V4T:
-                       // v5, v6, and xscale are more constrained than previous file (v4t), so use it
-                       if (   (fCpuConstraint == CPU_SUBTYPE_ARM_V6)
+                       // v5, v6, v7, and xscale are more constrained than previous file (v4t), so use it
+                       if (   (fCpuConstraint == CPU_SUBTYPE_ARM_V7)
+                               || (fCpuConstraint == CPU_SUBTYPE_ARM_V6)
                                || (fCpuConstraint == CPU_SUBTYPE_ARM_V5TEJ)
                                || (fCpuConstraint == CPU_SUBTYPE_ARM_XSCALE) )
                                return fCpuConstraint;
                        break;
                case CPU_SUBTYPE_ARM_V6:
-                       // v6 can run everything except xscale
+                       // v6 can run everything except xscale and v7
                        if ( fCpuConstraint == CPU_SUBTYPE_ARM_XSCALE )
                                throw "can't mix xscale and v6 code";
+                       if ( fCpuConstraint == CPU_SUBTYPE_ARM_V7 )
+                               return fCpuConstraint;
                        break;
                case CPU_SUBTYPE_ARM_XSCALE:
-                       // xscale can run everything except v6
+                       // xscale can run everything except v6 and v7
                        if ( fCpuConstraint == CPU_SUBTYPE_ARM_V6 )
                                throw "can't mix xscale and v6 code";
+                       if ( fCpuConstraint == CPU_SUBTYPE_ARM_V7 )
+                               throw "can't mix xscale and v7 code";
+                       break;
+               case CPU_SUBTYPE_ARM_V7:
+                       // v7 can run everything except xscale
+                       if ( fCpuConstraint == CPU_SUBTYPE_ARM_XSCALE )
+                               throw "can't mix xscale and v7 code";
                        break;
                default:
                        throw "Unhandled ARM cpu subtype!";
@@ -3946,11 +3962,16 @@ bool Reader<arm>::addRelocReference(const macho_section<arm::P>* sect,
                                if ( reloc->r_extern() ) {
                                        if ( weakImport )
                                                makeByNameReference(arm::kPointerWeakImport, srcAddr, targetName, pointerValue);
+                                       else if ( strcmp(sect->segname(), "__TEXT") == 0 ) 
+                                               makeByNameReference(arm::kReadOnlyPointer, srcAddr, targetName, pointerValue);
                                        else
                                                makeByNameReference(arm::kPointer, srcAddr, targetName, pointerValue);
                                }
                                else {
-                                       makeReference(arm::kPointer, srcAddr, pointerValue);
+                                       if ( strcmp(sect->segname(), "__TEXT") == 0 ) 
+                                               makeReference(arm::kReadOnlyPointer, srcAddr, pointerValue);
+                                       else
+                                               makeReference(arm::kPointer, srcAddr, pointerValue);
                                }
                                break;
                                
@@ -3988,7 +4009,10 @@ bool Reader<arm>::addRelocReference(const macho_section<arm::P>* sect,
                                betterDstAddr = LittleEndian::get32(*fixUpPtr);
                                //fprintf(stderr, "scattered pointer reloc: srcAddr=0x%08X, dstAddr=0x%08X, pointer=0x%08X\n", srcAddr, dstAddr, betterDstAddr);
                                // with a scattered relocation we get both the target (sreloc->r_value()) and the target+offset (*fixUpPtr)
-                               makeReferenceWithToBase(arm::kPointer, srcAddr, betterDstAddr, dstAddr);
+                               if ( strcmp(sect->segname(), "__TEXT") == 0 ) 
+                                       makeReferenceWithToBase(arm::kReadOnlyPointer, srcAddr, betterDstAddr, dstAddr);
+                               else
+                                       makeReferenceWithToBase(arm::kPointer, srcAddr, betterDstAddr, dstAddr);
                                break;
                
                        case ARM_RELOC_BR24:
@@ -4511,6 +4535,9 @@ const char* Reference<arm>::getDescription() const
                                                           fromQuotes, this->getFromTargetName(), fromQuotes, fFromTarget.offset );
                        return temp;
                        }
+               case arm::kReadOnlyPointer:
+                       sprintf(temp, "offset 0x%04X, read-only pointer to ", fFixUpOffsetInSrc);
+                       break;
                case arm::kBranch24:
         case arm::kThumbBranch22:
                        sprintf(temp, "offset 0x%04X, pc-rel branch fixup to ", fFixUpOffsetInSrc);
old mode 100755 (executable)
new mode 100644 (file)
index 3c9f792..f983c6c
@@ -1155,7 +1155,7 @@ StubHelperAtom<x86_64>::StubHelperAtom(Writer<x86_64>& writer, ObjectFile::Atom&
        fReferences.push_back(new WriterReference<x86_64>(3, x86_64::kPCRel32, &lazyPointer));
        if ( forLazyDylib ) {
                if ( writer.fDyldLazyDylibHelper == NULL )
-                       throw "symbol dyld_lazy_dylib_stub_binding_helper not defined (usually in crt1.o/dylib1.o/bundle1.o)";
+                       throw "symbol dyld_lazy_dylib_stub_binding_helper not defined (usually in lazydylib1.o)";
                fReferences.push_back(new WriterReference<x86_64>(8, x86_64::kPCRel32, writer.fDyldLazyDylibHelper));
        }
        else {
@@ -1332,7 +1332,7 @@ StubAtom<ppc>::StubAtom(Writer<ppc>& writer, ObjectFile::Atom& target, bool forL
                // for non-prebound ppc, lazy pointer starts out pointing to dyld_stub_binding_helper glue code
                if ( forLazyDylib ) {
                        if ( writer.fDyldLazyDylibHelper == NULL )
-                               throw "symbol dyld_lazy_dylib_stub_binding_helper not defined (usually in crt1.o/dylib1.o/bundle1.o)";
+                               throw "symbol dyld_lazy_dylib_stub_binding_helper not defined (usually in lazydylib1.o)";
                        lp = new LazyPointerAtom<ppc>(writer, *writer.fDyldLazyDylibHelper, *this, forLazyDylib);
                }
                else {
@@ -1362,7 +1362,7 @@ StubAtom<ppc64>::StubAtom(Writer<ppc64>& writer, ObjectFile::Atom& target, bool
        LazyPointerAtom<ppc64>* lp;
        if ( forLazyDylib ) {
                if ( writer.fDyldLazyDylibHelper == NULL )
-                       throw "symbol dyld_lazy_dylib_stub_binding_helper not defined (usually in crt1.o/dylib1.o/bundle1.o)";
+                       throw "symbol dyld_lazy_dylib_stub_binding_helper not defined (usually in lazydylib1.o)";
                lp = new LazyPointerAtom<ppc64>(writer, *writer.fDyldLazyDylibHelper, *this, forLazyDylib);
        }
        else {
@@ -1395,7 +1395,7 @@ StubAtom<x86>::StubAtom(Writer<x86>& writer, ObjectFile::Atom& target, bool forL
                ObjectFile::Atom* helper;
                if ( forLazyDylib ) {
                        if ( writer.fDyldLazyDylibHelper == NULL )
-                               throw "symbol dyld_lazy_dylib_stub_binding_helper not defined (usually in crt1.o/dylib1.o/bundle1.o)";
+                               throw "symbol dyld_lazy_dylib_stub_binding_helper not defined (usually in lazydylib1.o)";
                        helper = writer.fDyldLazyDylibHelper;
                }
                else {
@@ -1441,16 +1441,25 @@ StubAtom<arm>::StubAtom(Writer<arm>& writer, ObjectFile::Atom& target, bool forL
        writer.fAllSynthesizedStubs.push_back(this);
 
        LazyPointerAtom<arm>* lp;
-       if (  fWriter.fOptions.prebind() ) {
+       if (  fWriter.fOptions.prebind() && !forLazyDylib ) {
                // for prebound arm, lazy pointer starts out pointing to target symbol's address
                // if target is a weak definition within this linkage unit or zero if in some dylib
                lp = new LazyPointerAtom<arm>(writer, target, *this, forLazyDylib);
        }
        else {
                // for non-prebound arm, lazy pointer starts out pointing to dyld_stub_binding_helper glue code
-               if ( writer.fDyldHelper == NULL )
-                       throw "symbol dyld_stub_binding_helper not defined (usually in crt1.o/dylib1.o/bundle1.o)";
-               lp = new LazyPointerAtom<arm>(writer, *writer.fDyldHelper, *this, forLazyDylib);
+               ObjectFile::Atom* helper;
+               if ( forLazyDylib ) {
+                       if ( writer.fDyldLazyDylibHelper == NULL )
+                               throw "symbol dyld_lazy_dylib_stub_binding_helper not defined (usually in lazydylib1.o)";
+                       helper = writer.fDyldLazyDylibHelper;
+               }
+               else {
+                       if ( writer.fDyldHelper == NULL )
+                               throw "symbol dyld_stub_binding_helper not defined (usually in crt1.o/dylib1.o/bundle1.o)";
+                       helper = writer.fDyldHelper;
+               }
+               lp = new LazyPointerAtom<arm>(writer, *helper, *this, forLazyDylib);
        }
        if ( pic() )
                fReferences.push_back(new WriterReference<arm>(12, arm::kPointerDiff, lp, 0, this, 12));
@@ -2930,6 +2939,7 @@ uint32_t Writer<arm>::addObjectRelocs(ObjectFile::Atom* atom, ObjectFile::Refere
                        return 0;
 
                case arm::kPointer:
+               case arm::kReadOnlyPointer:
                case arm::kPointerWeakImport:
                        if ( !isExtern && (ref->getTargetOffset() != 0) ) {
                                // use scattered reloc is target offset is non-zero
@@ -3525,6 +3535,22 @@ bool Writer<x86_64>::illegalRelocInFinalLinkedImage(const ObjectFile::Reference&
 template <>
 bool Writer<arm>::illegalRelocInFinalLinkedImage(const ObjectFile::Reference& ref)
 {
+       if ( ref.getKind() == arm::kReadOnlyPointer ) {
+               switch ( ref.getTarget().getDefinitionKind() ) {
+                       case ObjectFile::Atom::kTentativeDefinition:
+                       case ObjectFile::Atom::kRegularDefinition:
+                       case ObjectFile::Atom::kWeakDefinition:
+                               // illegal in dylibs/bundles, until we support TEXT relocs 
+                               return fSlideable;
+                       case ObjectFile::Atom::kExternalDefinition:
+                       case ObjectFile::Atom::kExternalWeakDefinition:
+                               // illegal until we support TEXT relocs
+                               return true;
+                       case ObjectFile::Atom::kAbsoluteSymbol:
+                               // absolute symbbols only allowed in static executables
+                               return ( fOptions.outputKind() != Options::kStaticExecutable);
+               }
+       }
        return false;
 }
 
@@ -3628,9 +3654,51 @@ bool Writer<ppc>::generatesLocalTextReloc(const ObjectFile::Reference& ref, cons
        return false;
 }
 
-template <typename A>
-bool Writer<A>::generatesLocalTextReloc(const ObjectFile::Reference&, const ObjectFile::Atom& atom, SectionInfo* curSection)
+template <>
+bool Writer<arm>::generatesLocalTextReloc(const ObjectFile::Reference& ref, const ObjectFile::Atom& atom, SectionInfo* atomSection)
 {
+       if ( ref.getKind() == arm::kReadOnlyPointer ) {
+               switch ( ref.getTarget().getDefinitionKind() ) {
+                       case ObjectFile::Atom::kTentativeDefinition:
+                       case ObjectFile::Atom::kRegularDefinition:
+                       case ObjectFile::Atom::kWeakDefinition:
+                               // a reference to the absolute address of something in this same linkage unit can be 
+                               // encoded as a local text reloc in a dylib or bundle 
+                               if ( fSlideable ) {
+                                       macho_relocation_info<P> reloc;
+                                       SectionInfo* sectInfo = (SectionInfo*)(ref.getTarget().getSection());
+                                       reloc.set_r_address(this->relocAddressInFinalLinkedImage(atom.getAddress() + ref.getFixUpOffset(), &atom));
+                                       reloc.set_r_symbolnum(sectInfo->getIndex());
+                                       reloc.set_r_pcrel(false);
+                                       reloc.set_r_length();
+                                       reloc.set_r_extern(false);
+                                       reloc.set_r_type(GENERIC_RELOC_VANILLA);
+                                       fInternalRelocs.push_back(reloc);
+                                       atomSection->fHasTextLocalRelocs = true;
+                                       return true;
+                               }
+                               return false;
+                       case ObjectFile::Atom::kExternalDefinition:
+                       case ObjectFile::Atom::kExternalWeakDefinition:
+                       case ObjectFile::Atom::kAbsoluteSymbol:
+                               return false;
+               }
+       }
+       return false;
+}
+
+
+template <>
+bool Writer<x86_64>::generatesLocalTextReloc(const ObjectFile::Reference&, const ObjectFile::Atom& atom, SectionInfo* curSection)
+{
+       // text relocs not supported (usually never needed because of RIP addressing)
+       return false;
+}
+
+template <>
+bool Writer<ppc64>::generatesLocalTextReloc(const ObjectFile::Reference&, const ObjectFile::Atom& atom, SectionInfo* curSection)
+{
+       // text relocs not supported
        return false;
 }
 
@@ -4063,7 +4131,8 @@ void Writer<arm>::addCrossSegmentRef(const ObjectFile::Atom* atom, const ObjectF
                case arm::kNoFixUp:
                case arm::kGroupSubordinate:
                case arm::kPointer:
-    case arm::kPointerWeakImport:
+               case arm::kPointerWeakImport:
+               case arm::kReadOnlyPointer:
                        // ignore
                        break;
                default:
@@ -4600,6 +4669,25 @@ void Writer<arm>::fixUpReferenceFinal(const ObjectFile::Reference* ref, const Ob
                        LittleEndian::set32(*fixUp,
                                (ref->getTarget().getAddress() + ref->getTargetOffset()) - (ref->getFromTarget().getAddress() + ref->getFromTargetOffset()) );
                        break;
+               case arm::kReadOnlyPointer:
+                       switch ( ref->getTarget().getDefinitionKind() ) {
+                               case ObjectFile::Atom::kRegularDefinition:
+                               case ObjectFile::Atom::kWeakDefinition:
+                               case ObjectFile::Atom::kTentativeDefinition:
+                                       // pointer contains target address
+                                       LittleEndian::set32(*fixUp, ref->getTarget().getAddress() + ref->getTargetOffset());
+                                       break;
+                               case ObjectFile::Atom::kExternalDefinition:
+                               case ObjectFile::Atom::kExternalWeakDefinition:
+                                       // external relocation ==> pointer contains addend
+                                       LittleEndian::set32(*fixUp, ref->getTargetOffset());
+                                       break;
+                               case ObjectFile::Atom::kAbsoluteSymbol:
+                                       // pointer contains target address
+                                       LittleEndian::set32(*fixUp, ref->getTarget().getSectionOffset() + ref->getTargetOffset());
+                                       break;
+                       }
+                       break;
                case arm::kBranch24WeakImport:
                case arm::kBranch24:
                        displacement = targetAddr - (inAtom->getAddress() + ref->getFixUpOffset());
@@ -4737,6 +4825,7 @@ void Writer<arm>::fixUpReferenceRelocatable(const ObjectFile::Reference* ref, co
                        // do nothing
                        break;
                case arm::kPointer:
+               case arm::kReadOnlyPointer:
                case arm::kPointerWeakImport:
                        {
                        if ( ((SectionInfo*)inAtom->getSection())->fAllNonLazyPointers ) {
@@ -4891,8 +4980,6 @@ void Writer<arm>::fixUpReferenceRelocatable(const ObjectFile::Reference* ref, co
                case arm::kDtraceTypeReference:
                        // nothing to fix up
                        break;
-               default:
-                       throw "unhandled arm refernce kind";
        }
 }
 
@@ -5753,6 +5840,7 @@ bool Writer<arm>::stubableReference(const ObjectFile::Atom* inAtom, const Object
                case arm::kFollowOn:
                case arm::kGroupSubordinate:
                case arm::kPointer:
+               case arm::kReadOnlyPointer:
                case arm::kPointerWeakImport:
                case arm::kPointerDiff:
                case arm::kDtraceProbe:
@@ -6526,6 +6614,8 @@ void Writer<A>::partitionIntoSections()
                                currentSectionInfo->fAllSelfModifyingStubs = true;
                                currentSectionInfo->fAlignment = 6; // force x86 fast stubs to start on 64-byte boundary
                        }
+                       if ( (strcmp(currentSectionInfo->fSegmentName, "__TEXT") == 0) && (strcmp(currentSectionInfo->fSectionName, "__eh_frame") == 0) )
+                               currentSectionInfo->fAlignment = __builtin_ctz(sizeof(pint_t)); // always start CFI info pointer aligned
                        curSection = atom->getSection();
                        if ( currentSectionInfo->fAllNonLazyPointers || currentSectionInfo->fAllLazyPointers || currentSectionInfo->fAllLazyDylibPointers
                                || currentSectionInfo->fAllStubs || currentSectionInfo->fAllSelfModifyingStubs ) {
@@ -6617,8 +6707,8 @@ bool Writer<x86_64>::addBranchIslands()
 template <>
 bool Writer<arm>::addBranchIslands()
 {
-       if ( fLoadCommandsSegment->fSize > 16000000 )
-               throw "arm branch islands unimplemented"; // FIXME: implement this
+       // arm branch islands not (yet) supported
+       // you can instead compile with -mlong-call
        return false;
 }
 
old mode 100755 (executable)
new mode 100644 (file)
index b104dda..e46cd3d
 #include <fcntl.h>
 
 #include "MachOReaderRelocatable.hpp"
-#include "LTOReader.hpp"
+
+#define LTO_SUPPORT 1
+
+#if LTO_SUPPORT
+       #include "LTOReader.hpp"
+#endif
 
 static bool                    sDumpContent= true;
 static bool                    sDumpStabs      = false;
@@ -401,9 +406,11 @@ static ObjectFile::Reader* createReader(const char* path, const ObjectFile::Read
                return new mach_o::relocatable::Reader<x86_64>::Reader(p, path, 0, options, 0);
        else if ( mach_o::relocatable::Reader<arm>::validFile(p) )
                return new mach_o::relocatable::Reader<arm>::Reader(p, path, 0, options, 0);
+#if LTO_SUPPORT
        if ( lto::Reader::validFile(p, stat_buf.st_size, 0) ) {
                return new lto::Reader(p, stat_buf.st_size, path, 0, options, 0);
        }
+#endif
        
        throwf("not a mach-o object file: %s", path);
 }
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
index e85cf2a..d0a2d15
@@ -2392,6 +2392,14 @@ void Options::buildSearchPaths(int argc, const char* argv[])
                //frameworkPaths.push_back("/Network/Library/Frameworks/");
        }
 
+       // <rdar://problem/5829579> Support for configure based hacks 
+       // if last -syslibroot is /, then ignore all syslibroots
+       if ( fSDKPaths.size() > 0 ) {
+               if ( strcmp(fSDKPaths.back(), "/") == 0 ) {
+                       fSDKPaths.clear();
+               }
+       }
+
        // now merge sdk and library paths to make real search paths
        fLibrarySearchPaths.reserve(libraryPaths.size()*(fSDKPaths.size()+1));
        for (std::vector<const char*>::iterator it = libraryPaths.begin(); it != libraryPaths.end(); it++) {
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
index 49f05c4..be90999
@@ -753,7 +753,17 @@ inline void Linker::addAtom(ObjectFile::Atom& atom)
                        }
                }
                // add to symbol table
-               fGlobalSymbolTable.add(atom);
+               if ( fOptions.outputKind() == Options::kObjectFile ) {
+                       // in ld -r mode don't add .eh symbols to symbol table 
+                       // instead kGroupSubordinate references will keep them paired
+                       // with their functions.
+                       const char* sectionName = atom.getSectionName();
+                       if ( (sectionName != NULL) && (strcmp(sectionName, "__eh_frame") != 0) )
+                               fGlobalSymbolTable.add(atom);
+               }
+               else {
+                       fGlobalSymbolTable.add(atom);
+               }
        }
 
        // record section orders so output file can have same order
old mode 100755 (executable)
new mode 100644 (file)
index b4ccd34..311809b
@@ -239,7 +239,7 @@ void MachOChecker<A>::checkMachHeader()
                throw "sizeofcmds in mach_header is larger than file";
        
        uint32_t flags = fHeader->flags();
-       const uint32_t invalidBits = MH_INCRLINK | MH_LAZY_INIT | 0xFFE00000;
+       const uint32_t invalidBits = MH_INCRLINK | MH_LAZY_INIT | 0xFFC00000;
        if ( flags & invalidBits )
                throw "invalid bits in mach_header flags";
        if ( (flags & MH_NO_REEXPORTED_DYLIBS) && (fHeader->filetype() != MH_DYLIB) ) 
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
index 4ee740337b4f0ea0812e8f9ea4a7cdb50bedb693..e21c2b3611b92c44f0a87008e4e34cbce037737f 100755 (executable)
@@ -14,6 +14,9 @@ cd `echo "$0" | sed 's/run-all-unit-tests/test-cases/'`
 all_archs="x86_64 armv6 thumb ppc ppc64 i386  "
 valid_archs="x86_64 armv6 ppc ppc64 i386  "
 
+# clean first
+../bin/make-recursive.pl clean > /dev/null
+
 mkdir /tmp/$$
 for arch in $all_archs
 do
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
diff --git a/unit-tests/test-cases/branch-islands/Makefile b/unit-tests/test-cases/branch-islands/Makefile
new file mode 100644 (file)
index 0000000..c85f382
--- /dev/null
@@ -0,0 +1,47 @@
+##
+# Copyright (c) 2008 Apple Inc. All rights reserved.
+#
+# @APPLE_LICENSE_HEADER_START@
+# 
+# This file contains Original Code and/or Modifications of Original Code
+# as defined in and that are subject to the Apple Public Source License
+# Version 2.0 (the 'License'). You may not use this file except in
+# compliance with the License. Please obtain a copy of the License at
+# http://www.opensource.apple.com/apsl/ and read it before using this
+# file.
+# 
+# The Original Code and all software distributed under the License are
+# distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+# EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+# INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+# Please see the License for the specific language governing rights and
+# limitations under the License.
+# 
+# @APPLE_LICENSE_HEADER_END@
+##
+TESTROOT = ../..
+include ${TESTROOT}/include/common.makefile
+
+ifeq ($(ARCH),armv6)
+       ARCH_FLAGS = -mlong-branch
+else
+       ARCH_FLAGS = 
+endif
+
+
+
+#
+# Simple test for branch islands
+#
+
+run: all
+
+
+
+all:
+       ${CC} ${CCFLAGS} hello.c space.s extra.c -o hello ${ARCH_FLAGS}
+       ${PASS_IFF_GOOD_MACHO} hello
+
+clean:
+       rm  hello
diff --git a/unit-tests/test-cases/branch-islands/extra.c b/unit-tests/test-cases/branch-islands/extra.c
new file mode 100644 (file)
index 0000000..a1991fe
--- /dev/null
@@ -0,0 +1,8 @@
+#include <stdio.h>
+
+
+void foo()
+{
+       fprintf(stdout, "foo\n");
+}
+
diff --git a/unit-tests/test-cases/branch-islands/hello.c b/unit-tests/test-cases/branch-islands/hello.c
new file mode 100644 (file)
index 0000000..89caa9d
--- /dev/null
@@ -0,0 +1,10 @@
+#include <stdio.h>
+
+extern void foo();
+
+int main()
+{
+       fprintf(stdout, "hello\n");
+    foo();
+}
+
diff --git a/unit-tests/test-cases/branch-islands/space.s b/unit-tests/test-cases/branch-islands/space.s
new file mode 100644 (file)
index 0000000..dd28637
--- /dev/null
@@ -0,0 +1,39 @@
+
+#if __ppc__
+
+    .text
+
+_prejunk:
+    mr  r3,r5
+    mr  r3,r4
+    blr
+
+
+_space1:
+    .space 15*1024*1024 + 2
+    
+    .align 5
+_junk:
+    mr  r3,r5
+    mr  r3,r4
+    blr
+    
+    
+_space2:
+    .space 2*1024*1024
+#endif
+
+
+#if __arm__
+
+
+_space1:
+    .space 32*1024*1024 + 2
+
+
+#endif
+
+
+    .subsections_via_symbols
+    
\ No newline at end of file
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
index ae3b996..3fb8a25
@@ -31,15 +31,17 @@ SHELL = bash # use bash shell so we can redirect just stderr
 #
 #   <rdar://problem/5726215> comdat warnings in ld -r
 #
-
+#  also use -falign-functions to force an out of order coalesing  
+#
 run: all
 
 all:
        ${CXX} ${CCXXFLAGS} foo.cxx -c -o foo.o
-       ${CXX} ${CCXXFLAGS} bar.cxx -c -o bar.o
-       ${LD} -r foo.o bar.o -o foobar.o 2> warnings.log
+       ${CXX} ${CCXXFLAGS} bar.cxx -c -o bar.o -falign-functions=32
+       ${CXX} ${CCXXFLAGS} baz.cxx -c -o baz.o
+       ${LD} -r foo.o bar.o baz.o -o foobarbaz.o 2> warnings.log
        grep warning warnings.log | ${PASS_IFF_EMPTY}
 
 
 clean:
-       rm  foo.o bar.o foobar.o warnings.log
+       rm  foo.o bar.o baz.o foobarbaz.o warnings.log
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
diff --git a/unit-tests/test-cases/switch-jump-table/Makefile b/unit-tests/test-cases/switch-jump-table/Makefile
new file mode 100644 (file)
index 0000000..aacd78d
--- /dev/null
@@ -0,0 +1,56 @@
+##
+# Copyright (c) 2008 Apple Inc. All rights reserved.
+#
+# @APPLE_LICENSE_HEADER_START@
+# 
+# This file contains Original Code and/or Modifications of Original Code
+# as defined in and that are subject to the Apple Public Source License
+# Version 2.0 (the 'License'). You may not use this file except in
+# compliance with the License. Please obtain a copy of the License at
+# http://www.opensource.apple.com/apsl/ and read it before using this
+# file.
+# 
+# The Original Code and all software distributed under the License are
+# distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+# EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+# INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+# Please see the License for the specific language governing rights and
+# limitations under the License.
+# 
+# @APPLE_LICENSE_HEADER_END@
+##
+TESTROOT = ../..
+include ${TESTROOT}/include/common.makefile
+
+#
+# Test that -mdynamic-no-pic jump table in the middle of
+# a function does not  cause relocations.
+#
+# <rdar://problem/5847206> SPEC2000/eon built with -mdynamic-no-pic won't run
+#
+
+run: all
+
+all:
+       # check jump table in a weak function
+       ${CC} ${CCFLAGS} main.c switch.s -o main
+       otool -rv main | grep _foo | ${FAIL_IF_STDIN}
+       otool -rv main | grep _bar | ${FAIL_IF_STDIN}
+       # check jump table in a regular function with -flat_namespace
+       ${CC} ${CCFLAGS} main.c switch.s -o main  -flat_namespace
+       otool -rv main | grep _foo | ${FAIL_IF_STDIN}
+       otool -rv main | grep _bar | ${FAIL_IF_STDIN}
+       # check jump table in a regular function that is interposable
+       ${CC} ${CCFLAGS} main.c switch.s -o main  -Wl,-interposable_list,interpose.exp
+       otool -rv main | grep _foo | ${FAIL_IF_STDIN}
+       otool -rv main | grep _bar | ${FAIL_IF_STDIN}
+       # check jump table with -pie, should have no external and some local relocations
+       ${CC} ${CCFLAGS} main.c switch.s -o main  -Wl,-pie -read_only_relocs suppress
+       otool -rv main | grep "External relocation" | ${FAIL_IF_STDIN}
+       otool -rv main | grep "Local relocation" | ${FAIL_IF_EMPTY}
+       ${PASS_IFF_GOOD_MACHO} main
+
+
+clean:
+       rm -f main
diff --git a/unit-tests/test-cases/switch-jump-table/interpose.exp b/unit-tests/test-cases/switch-jump-table/interpose.exp
new file mode 100644 (file)
index 0000000..b9e50b8
--- /dev/null
@@ -0,0 +1,2 @@
+_foo
+_bar
diff --git a/unit-tests/test-cases/switch-jump-table/main.c b/unit-tests/test-cases/switch-jump-table/main.c
new file mode 100644 (file)
index 0000000..f44b624
--- /dev/null
@@ -0,0 +1,4 @@
+int main()
+{
+       return 0;
+}
\ No newline at end of file
diff --git a/unit-tests/test-cases/switch-jump-table/switch.s b/unit-tests/test-cases/switch-jump-table/switch.s
new file mode 100644 (file)
index 0000000..12b559f
--- /dev/null
@@ -0,0 +1,49 @@
+
+       .section __TEXT,__textcoal_nt,coalesced,pure_instructions
+
+
+
+/* 
+       Simulate a switch statement in a weak function compiled
+       to a jump table
+*/
+       .globl _foo
+       .weak_definition _foo
+_foo:
+       nop
+       nop
+#if __arm__ || __i386__
+       .long   L1
+       .long   L2
+       .long   L3
+#endif
+       nop
+L1: nop
+L2: nop
+L3: nop
+       nop
+       
+       
+/* 
+       Simulate a switch statement in a regular function compiled
+       to a jump table
+*/
+       .text
+       .globl _bar
+_bar: nop
+       nop
+       nop
+       nop
+#if __arm__ || __i386__
+       .long   L5
+       .long   L6
+       .long   L7
+#endif
+       nop
+L5: nop
+L6: nop
+L7: nop
+       nop
+       
+       
+       
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)