lkml.org 
[lkml]   [2017]   [Nov]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Date
    SubjectRe: [PATCH v2 08/18] arm64: don't disable ADR_PREL_PG_HI21* with ARM64_ERRATUM_843419
    On 16 November 2017 at 21:37, Sami Tolvanen <samitolvanen@google.com> wrote:
    > On Thu, Nov 16, 2017 at 04:34:03PM +0000, Ard Biesheuvel wrote:
    >> You still have not explained to us how GOLD avoids the erratum.
    >
    > Sorry, I didn't realize you were asking that. If gold spots erratum
    > sequences, looks like it creates stubs to break them up:
    >
    > https://sourceware.org/git/?p=binutils-gdb.git;a=blob;f=gold/aarch64.cc#l8396
    >
    > It also attempts to optimize the code by replacing adrps in these
    > sequences with adr where possible, but otherwise doesn't appear to
    > touch them:
    >
    > https://sourceware.org/git/?p=binutils-gdb.git;a=blob;f=gold/aarch64.cc#l2053
    >

    OK, so my concern here is that this code probably only operates on
    fully linked binaries, and not partially linked object files like
    kernel modules. The same applies to ld.bfd, which is why we need to
    use the large module instead of a code model that may emit adrp
    instructions..

    What is preventing us from using the large model with clang? I know it
    uses movk/movz pairs rather than literals, but this shouldn't matter
    for modules, given that we support static ELF relocations.
    \
     
     \ /
      Last update: 2017-11-17 17:18    [W:8.795 / U:0.184 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site