[PATCH] D27042: lld: Default image base address to 0x400000

Ed Maste via llvm-commits llvm-commits at lists.llvm.org
Wed Nov 23 06:17:21 PST 2016


emaste created this revision.
emaste added reviewers: ruiu, rafael.
emaste added a subscriber: llvm-commits.
Herald added subscribers: nemanjai, aemerson.

Align to the least common multiple of the large page size (known as a superpage or huge page) available on common platforms. Non-PAE x86 supports 4MB pages and x86-64 and arm64 support 2MB pages. FreeBSD automatically promotes large, superpage-aligned allocations, and this default image base address is consistent with GNU ld and gold.

Test updates are incomplete. I started with a sed replacement to update some of them, and am iterating through the remaining failures. Some tests need more investigation e.g. ELF/aarch64-prel32.s is producing a relocation out of range error.

Assuming there are no objections to this change in principle I will continue with the test updates.


https://reviews.llvm.org/D27042

Files:
  ELF/Target.h
  test/ELF/Inputs/wrap.s
  test/ELF/aarch64-abs16.s
  test/ELF/aarch64-abs32.s
  test/ELF/aarch64-condb-reloc.s
  test/ELF/aarch64-copy.s
  test/ELF/aarch64-copy2.s
  test/ELF/aarch64-data-relocs.s
  test/ELF/aarch64-gnu-ifunc.s
  test/ELF/aarch64-prel16.s
  test/ELF/aarch64-prel32.s
  test/ELF/aarch64-relocs.s
  test/ELF/aarch64-tls-gdie.s
  test/ELF/aarch64-tls-gdle.s
  test/ELF/aarch64-tls-ie.s
  test/ELF/aarch64-tls-iele.s
  test/ELF/aarch64-tls-le.s
  test/ELF/aarch64-tls-pie.s
  test/ELF/aarch64-tls-static.s
  test/ELF/aarch64-tstbr14-reloc.s
  test/ELF/aarch64-undefined-weak.s
  test/ELF/allow-multiple-definition.s
  test/ELF/arm-blx.s
  test/ELF/arm-branch-error.s
  test/ELF/arm-branch.s
  test/ELF/arm-copy.s
  test/ELF/arm-data-relocs.s
  test/ELF/arm-exidx-canunwind.s
  test/ELF/arm-exidx-gc.s
  test/ELF/arm-exidx-order.s
  test/ELF/arm-fpic-got.s
  test/ELF/arm-gnu-ifunc.s
  test/ELF/arm-gotoff.s
  test/ELF/arm-mov-relocs.s
  test/ELF/arm-plt-reloc.s
  test/ELF/arm-static-defines.s
  test/ELF/arm-target2.s
  test/ELF/arm-thumb-blx.s
  test/ELF/arm-thumb-branch-error.s
  test/ELF/arm-thumb-branch.s
  test/ELF/arm-thumb-no-undefined-thunk.s
  test/ELF/arm-thumb-plt-reloc.s
  test/ELF/arm-thumb-undefined-weak.s
  test/ELF/arm-tls-ldm32.s
  test/ELF/arm-tls-le32.s
  test/ELF/arm-tls-norelax-gd-ie.s
  test/ELF/arm-tls-norelax-gd-le.s
  test/ELF/arm-tls-norelax-ie-le.s
  test/ELF/arm-tls-norelax-ld-le.s
  test/ELF/arm-undefined-weak.s
  test/ELF/avoid-empty-program-headers.s
  test/ELF/basic-aarch64.s
  test/ELF/basic-mips.s
  test/ELF/basic.s
  test/ELF/basic32.s
  test/ELF/basic64be.s
  test/ELF/bss.s
  test/ELF/common.s
  test/ELF/discard-locals.s
  test/ELF/dynamic-list.s
  test/ELF/dynamic-reloc-index.s
  test/ELF/dynamic-reloc.s
  test/ELF/eh-frame-hdr-abs-fde.s
  test/ELF/eh-frame-hdr-icf.s
  test/ELF/eh-frame-hdr.s
  test/ELF/ehframe-relocation.s
  test/ELF/end-update.s
  test/ELF/end.s
  test/ELF/entry.s
  test/ELF/gc-sections-implicit-addend.s
  test/ELF/gdb-index.s
  test/ELF/gnu-ifunc-gotpcrel.s
  test/ELF/gnu-ifunc-i386.s
  test/ELF/gnu-ifunc.s
  test/ELF/got-aarch64.s
  test/ELF/got-i386.s
  test/ELF/got.s
  test/ELF/gotpc-relax-nopic.s
  test/ELF/gotpc-relax.s
  test/ELF/init-fini.s
  test/ELF/linkerscript/align.s
  test/ELF/linkerscript/define.s
  test/ELF/linkerscript/locationcounter.s
  test/ELF/linkerscript/page-size.s
  test/ELF/linkerscript/symbols-synthetic.s
  test/ELF/local-got.s
  test/ELF/local.s
  test/ELF/merge.s
  test/ELF/mips-26-mask.s
  test/ELF/mips-26.s
  test/ELF/mips-64-disp.s
  test/ELF/mips-64-got.s
  test/ELF/mips-64-gprel-so.s
  test/ELF/mips-64-rels.s
  test/ELF/mips-call-hilo.s
  test/ELF/mips-call16.s
  test/ELF/mips-dynamic.s
  test/ELF/mips-got-hilo.s
  test/ELF/mips-got-redundant.s
  test/ELF/mips-got-relocs.s
  test/ELF/mips-got16.s
  test/ELF/mips-gp-disp.s
  test/ELF/mips-gp-local.s
  test/ELF/mips-gprel32-relocs-gp0.s
  test/ELF/mips-gprel32-relocs.s
  test/ELF/mips-higher-highest.s
  test/ELF/mips-hilo-gp-disp.s
  test/ELF/mips-hilo-hi-only.s
  test/ELF/mips-hilo.s
  test/ELF/mips-n32-rels.s
  test/ELF/mips-npic-call-pic.s
  test/ELF/mips-pc-relocs.s
  test/ELF/mips-plt-r6.s
  test/ELF/mips-tls-64.s
  test/ELF/mips-tls-hilo.s
  test/ELF/mips-tls.s
  test/ELF/mips-xgot-order.s
  test/ELF/no-inhibit-exec.s
  test/ELF/noplt-pie.s
  test/ELF/openbsd-randomize.s
  test/ELF/plt-aarch64.s
  test/ELF/plt-i686.s
  test/ELF/plt.s
  test/ELF/ppc-relocs.s
  test/ELF/ppc64-shared-rel-toc.s
  test/ELF/pre_init_fini_array.s
  test/ELF/pre_init_fini_array_missing.s
  test/ELF/progname.s
  test/ELF/program-header-layout.s
  test/ELF/relocatable.s
  test/ELF/relocation-common.s
  test/ELF/relocation-copy-flags.s
  test/ELF/relocation-copy-i686.s
  test/ELF/relocation-copy.s
  test/ELF/relocation-i686.s
  test/ELF/relocation-local.s
  test/ELF/relocation-size-shared.s
  test/ELF/relocation-size.s
  test/ELF/relocation-undefined-weak.s
  test/ELF/relocation.s
  test/ELF/relro.s
  test/ELF/resolution.s
  test/ELF/shared.s
  test/ELF/startstop-gccollect.s
  test/ELF/startstop-shared2.s
  test/ELF/string-gc.s
  test/ELF/string-table.s
  test/ELF/symbol-ordering-file.s
  test/ELF/symbol-override.s
  test/ELF/symbols.s
  test/ELF/tls-got.s
  test/ELF/tls-i686.s
  test/ELF/tls-offset.s
  test/ELF/tls-opt-gdie.s
  test/ELF/tls-opt-gdiele-i686.s
  test/ELF/tls-opt-i686.s
  test/ELF/tls-opt-iele-i686-nopic.s
  test/ELF/tls-opt-local.s
  test/ELF/tls-opt.s
  test/ELF/tls.s
  test/ELF/undef-with-plt-addr-i686.s
  test/ELF/undef-with-plt-addr.s
  test/ELF/verdef-defaultver.s
  test/ELF/verdef.s
  test/ELF/verneed.s
  test/ELF/version-script.s
  test/ELF/weak-undef-shared.s
  test/ELF/wrap.s
  test/ELF/x86-64-tls-pie.s

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D27042.79061.patch
Type: text/x-patch
Size: 249990 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20161123/a0d68dab/attachment-0001.bin>


More information about the llvm-commits mailing list