Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 6 Jan 2020 22:52:17 -0800
From:      Mark Millard <marklmi@yahoo.com>
To:        FreeBSD PowerPC ML <freebsd-ppc@freebsd.org>
Subject:   Involving devel/binutils@powerpc64 in buildworld buildkernel : got/toc optimization is not supported for addis  %r1,%r1,TOC_REF(trapstk)@ha (and the like)
Message-ID:  <00DFB84D-D694-4BCA-A15F-5098F0320FA9@yahoo.com>
References:  <00DFB84D-D694-4BCA-A15F-5098F0320FA9.ref@yahoo.com>

next in thread | previous in thread | raw e-mail | index | archive | help
The following is based on what I noticed while
working on updating to head -r356426 ,  including
building multiple ways (discovering what fails
to build and such).

I was looking at messages and noticed that there
were messages such as:

--- kernel.full ---
locore.o: in function `dbtrap':
/usr/src/sys/powerpc/aim/trap_subr64.S:905:(.text+0xa68): got/toc =
optimization is not supported for 0x3c210000 instruction

That is the addis instruction in:

dbtrap:
        /* Write the trap vector to SPRG3 by computing LR & 0xff00 */
        mflr    %r1
        andi.   %r1,%r1,0xff00
        mtsprg3 %r1
=20
        GET_TOCBASE(%r1)                        /* get new SP */
        addis   %r1,%r1,TOC_REF(trapstk)@ha
        ld      %r1,TOC_REF(trapstk)@l(%r1)
        addi    %r1,%r1,(TRAPSTKSZ-48)

(based on line number).

This was for system-clang and devel/binutils@powerpc64
being used to do the build.

But it also happened for devel/freebsd-gcc9@powerpc64
and devel/binutils@powerpc64 bing used to do the
build:

--- kernel.full ---
locore.o: in function `dbtrap':
/usr/src/sys/powerpc/aim/trap_subr64.S:905:(.text+0xa68): got/toc =
optimization is not supported for 0x3c210000 instruction

(Same instruction, same message.)


There are lots of similar messages for other instruction
encodings for zfs.ko.full --but only for the
devel/freebsd-gcc9@powerpc64 and devel/binutils@powerpc64
combination:

--- zfs.ko.full ---
zfs.kld: in function `acl_trivial_create':
=
/usr/src/sys/cddl/contrib/opensolaris/common/acl/acl_common.c:1646:(.text+=
0x568): got/toc optimization is not supported for 0x3d9e0000 instruction
zfs.kld: in function `cacl_malloc':
=
/usr/src/sys/cddl/contrib/opensolaris/common/acl/acl_common.c:243:(.text+0=
x5e0): got/toc optimization is not supported for 0x3d9e0000 instruction
zfs.kld: in function `ace_trivial':
=
/usr/src/sys/cddl/contrib/opensolaris/common/acl/acl_common.c:1764:(.text+=
0x990): got/toc optimization is not supported for 0x3d9e0000 instruction
zfs.kld: in function `avl_nearest':
. . .

The list for zfs.ko.full is large.

Overall there are examples of each of:

got/toc optimization is not supported for 0x3c210000 instruction
got/toc optimization is not supported for 0x3c9e0000 instruction
got/toc optimization is not supported for 0x3cbe0000 instruction
got/toc optimization is not supported for 0x3cde0000 instruction
got/toc optimization is not supported for 0x3cfe0000 instruction
got/toc optimization is not supported for 0x3d1e0000 instruction
got/toc optimization is not supported for 0x3d3e0000 instruction
got/toc optimization is not supported for 0x3d5e0000 instruction
got/toc optimization is not supported for 0x3d9e0000 instruction
got/toc optimization is not supported for 0x3dde0000 instruction
got/toc optimization is not supported for 0x3dfe0000 instruction
got/toc optimization is not supported for 0x3e1e0000 instruction
got/toc optimization is not supported for 0x3e3e0000 instruction
got/toc optimization is not supported for 0x3e5e0000 instruction
got/toc optimization is not supported for 0x3e7e0000 instruction
got/toc optimization is not supported for 0x3e9e0000 instruction
got/toc optimization is not supported for 0x3ebe0000 instruction
got/toc optimization is not supported for 0x3ede0000 instruction
got/toc optimization is not supported for 0x3efe0000 instruction
got/toc optimization is not supported for 0x3f1e0000 instruction
got/toc optimization is not supported for 0x3f3e0000 instruction
got/toc optimization is not supported for 0x3f5e0000 instruction
got/toc optimization is not supported for 0x3f7e0000 instruction
got/toc optimization is not supported for 0x3f9e0000 instruction
got/toc optimization is not supported for 0x3fbe0000 instruction

I'm not sure of the implications, but I figured that the
information might be of use at some point.

=3D=3D=3D
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?00DFB84D-D694-4BCA-A15F-5098F0320FA9>