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

Rafael EspĂ­ndola via llvm-commits llvm-commits at lists.llvm.org
Wed Nov 23 06:19:37 PST 2016


I would have a small preference for 2MB on X86_64 and 4MB on x86 (if
anyone cares about x86).

Rui, what do you think?

Cheers,
Rafael


On 23 November 2016 at 09:17, Ed Maste <emaste at freebsd.org> wrote:
> 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
>


More information about the llvm-commits mailing list