lkml.org 
[lkml]   [2017]   [Jun]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectRe: sparc64 gcc 7.1 compile error
    From
    From: Waldemar Brodkorb <wbx@openadk.org>
    Date: Mon, 5 Jun 2017 11:19:41 +0200

    > I get a compile/linking error with gcc 7.1 when targeting qemu system
    > sparc64.
    >
    > + objects='arch/sparc/kernel/head_64.o init/built-in.o
    > --start-group usr/built-in.o arch/sparc/built-in.o
    > kernel/built-in.o certs/built-in.o mm/built-in.o fs/built-in.o
    > ipc/built-in.o security/built-in.o crypto/built-in.o
    > block/built-in.o lib/lib.a arch/sparc/prom/lib.a
    > arch/sparc/lib/lib.a lib/built-in.o arch/sparc/prom/built-in.o
    > arch/sparc/lib/built-in.o drivers/built-in.o sound/built-in.o
    > firmware/built-in.o net/built-in.o virt/built-in.o
    > --end-group '
    > +
    > /home/wbx/openadk/toolchain_qemu-sparc64_glibc_v9/usr/bin/sparc64-openadk-linux-gnu-ld
    > -m elf64_sparc --build-id -o vmlinux -T
    > ./arch/sparc/kernel/vmlinux.lds arch/sparc/kernel/head_64.o
    > init/built-in.o --start-group usr/built-in.o arch/sparc/built-in.o
    > kernel/built-in.o certs/built-in.o mm/built-in.o fs/built-in.o
    > ipc/built-in.o security/built-in.o crypto/built-in.o
    > block/built-in.o lib/lib.a arch/sparc/prom/lib.a
    > arch/sparc/lib/lib.a lib/built-in.o arch/sparc/prom/built-in.o
    > arch/sparc/lib/built-in.o drivers/built-in.o sound/built-in.o
    > firmware/built-in.o net/built-in.o virt/built-in.o --end-group
    > ipc/built-in.o: In function `mq_attr_ok':
    > mqueue.c:(.text+0x6154): undefined reference to `__multi3'
    >
    > I tried with Linux 4.11.3, Linus master and David Miller's SPARC
    > tree from today with the same result. The failing config is attached.

    GCC seems to be emitting a 128-bit multiply to work out this
    expression in ipc/mqueue.c:

    if (attr->mq_msgsize > (~0UL)/attr->mq_maxmsg)
    return -92;

    Seems like a bit of an extreme way to do this.

    But worst case we'll have to add __multi3 to the kernel libraries.

    \
     
     \ /
      Last update: 2017-06-12 00:24    [W:2.742 / U:0.000 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site