lkml.org 
[lkml]   [2018]   [Sep]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Date
    Subject[PATCH 3.16 124/131] x86/tools: Fix gcc-7 warning in relocs.c
    3.16.59-rc1 review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Markus Trippelsdorf <markus@trippelsdorf.de>

    commit 7ebb916782949621ff6819acf373a06902df7679 upstream.

    gcc-7 warns:

    In file included from arch/x86/tools/relocs_64.c:17:0:
    arch/x86/tools/relocs.c: In function ‘process_64’:
    arch/x86/tools/relocs.c:953:2: warning: argument 1 null where non-null expected [-Wnonnull]
    qsort(r->offset, r->count, sizeof(r->offset[0]), cmp_relocs);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    In file included from arch/x86/tools/relocs.h:6:0,
    from arch/x86/tools/relocs_64.c:1:
    /usr/include/stdlib.h:741:13: note: in a call to function ‘qsort’ declared here
    extern void qsort

    This happens because relocs16 is not used for ELF_BITS == 64,
    so there is no point in trying to sort it.

    Make the sort_relocs(&relocs16) call 32bit only.

    Signed-off-by: Markus Trippelsdorf <markus@trippelsdorf.de>
    Link: http://lkml.kernel.org/r/20161215124513.GA289@x4
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    [bwh: Backported to 3.16: Also make sort_relocs(&relocs64) conditional,
    which was done upstream in commit 6d24c5f72dfb "x86-64: Handle PC-relative
    relocations on per-CPU data".]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    ---
    --- a/arch/x86/tools/relocs.c
    +++ b/arch/x86/tools/relocs.c
    @@ -984,9 +984,12 @@ static void emit_relocs(int as_text, int
    die("Segment relocations found but --realmode not specified\n");

    /* Order the relocations for more efficient processing */
    - sort_relocs(&relocs16);
    sort_relocs(&relocs32);
    +#if ELF_BITS == 64
    sort_relocs(&relocs64);
    +#else
    + sort_relocs(&relocs16);
    +#endif

    /* Print the relocations */
    if (as_text) {
    \
     
     \ /
      Last update: 2018-09-30 00:00    [W:4.577 / U:0.292 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site