[lld] r288974 - Use the correct MaxPageSize.
Rui Ueyama via llvm-commits
llvm-commits at lists.llvm.org
Wed Dec 7 12:43:12 PST 2016
Maybe we should rename Target->MaxPageSize Target->DefaultMaxPageSize to
prevent future programmers' errors?
On Wed, Dec 7, 2016 at 12:29 PM, Rafael Espindola via llvm-commits <
llvm-commits at lists.llvm.org> wrote:
> Author: rafael
> Date: Wed Dec 7 14:29:46 2016
> New Revision: 288974
>
> URL: http://llvm.org/viewvc/llvm-project?rev=288974&view=rev
> Log:
> Use the correct MaxPageSize.
>
> Now Target->MaxPageSize is only used as the default value of
> Config->MaxPageSize.
>
> Modified:
> lld/trunk/ELF/Driver.cpp
> lld/trunk/test/ELF/image-base.s
>
> Modified: lld/trunk/ELF/Driver.cpp
> URL: http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/Driver.
> cpp?rev=288974&r1=288973&r2=288974&view=diff
> ============================================================
> ==================
> --- lld/trunk/ELF/Driver.cpp (original)
> +++ lld/trunk/ELF/Driver.cpp Wed Dec 7 14:29:46 2016
> @@ -738,7 +738,7 @@ static uint64_t getImageBase(opt::InputA
> error("-image-base: number expected, but got " + S);
> return 0;
> }
> - if ((V % Target->MaxPageSize) != 0)
> + if ((V % Config->MaxPageSize) != 0)
> warn("-image-base: address isn't multiple of page size: " + S);
> return V;
> }
> @@ -758,6 +758,14 @@ template <class ELFT> void LinkerDriver:
> ELFT::Is64Bits || Config->EMachine == EM_X86_64 ||
> Config->MipsN32Abi;
> Config->Mips64EL =
> (Config->EMachine == EM_MIPS && Config->EKind == ELF64LEKind);
> +
> + // Initialize Config->MaxPageSize. The default value is defined by
> + // each target.
> + Config->MaxPageSize =
> + getZOptionValue(Args, "max-page-size", Target->MaxPageSize);
> + if (!isPowerOf2_64(Config->MaxPageSize))
> + error("max-page-size: value isn't a power of 2");
> +
> Config->ImageBase = getImageBase(Args);
>
> // Default output filename is "a.out" by the Unix tradition.
> @@ -775,13 +783,6 @@ template <class ELFT> void LinkerDriver:
> for (auto *Arg : Args.filtered(OPT_trace_symbol))
> Symtab.trace(Arg->getValue());
>
> - // Initialize Config->MaxPageSize. The default value is defined by
> - // each target.
> - Config->MaxPageSize =
> - getZOptionValue(Args, "max-page-size", Target->MaxPageSize);
> - if (!isPowerOf2_64(Config->MaxPageSize))
> - error("max-page-size: value isn't a power of 2");
> -
> // Add all files to the symbol table. This will add almost all
> // symbols that we need to the symbol table.
> for (InputFile *F : Files)
>
> Modified: lld/trunk/test/ELF/image-base.s
> URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/
> image-base.s?rev=288974&r1=288973&r2=288974&view=diff
> ============================================================
> ==================
> --- lld/trunk/test/ELF/image-base.s (original)
> +++ lld/trunk/test/ELF/image-base.s Wed Dec 7 14:29:46 2016
> @@ -3,6 +3,10 @@
> # RUN: ld.lld -image-base=0x1000000 %t -o %t1
> # RUN: llvm-readobj -program-headers %t1 | FileCheck %s
>
> +# RUN: ld.lld -image-base=0x1000 -z max-page-size=0x2000 %t -o %t1 2>&1 |
> FileCheck --check-prefix=WARN %s
> +# WARN: warning: -image-base: address isn't multiple of page size: 0x1000
> +
> +
> .global _start
> _start:
> nop
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20161207/b39e7673/attachment.html>
More information about the llvm-commits
mailing list