FreeBSD/powerpc and FreeBSD/powerpcspe toolchain update

Justin Hibbits jrh29 at alumni.cwru.edu
Thu Jun 27 19:53:27 UTC 2019


On Thu, 27 Jun 2019 12:03:05 -0700
Mark Millard <marklmi at yahoo.com> wrote:

> On 2019-Jun-24, at 19:40, Justin Hibbits <jrh29 at alumni.cwru.edu>
> wrote:
> 
> > As of r349351 32-bit powerpc toolchains need to be rebuilt as part
> > of buildworld, in order to take advantage of the new Secure
> > Procedure Linkage Table (Secure-PLT) format.  This can be done by
> > passing "WITHOUT_SYSTEM_TOOLCHAIN=" on the 'make buildworld'
> > command line.
> > 
> > Cross-building should work fine with no changes, as that already
> > builds a new toolchain.  If building with an external toolchain,
> > such as gcc8, add 'CFLAGS+= -msecure-plt' to /etc/src.conf to
> > ensure the new PLT is used, otherwise it will default to BSS-PLT,
> > which is fully compatible, but not as secure.  There is breakage
> > intended at all, so please let me know if there are any problems.  
> 
> My attempt to amd64->powerpc (32-bit) cross build from/to head
> -r349444 via system clang and lld got the following. This may not be
> a recent change. It has been a long time since I tried lld, instead
> using devel/powerpc64-binutils. ( devel/powerpc64-binutils now fails
> where it used to work, but I sent a separate note out about that. )
> 
> --- agp.ko.full ---
> ld: agp.kld(.text+0x37a4): R_PPC_PLTREL24 reloc against local symbol
> agp.kld: could not read symbols: Bad value
> *** [agp.ko.full] Error code 1
> 

Hi Mark,

Can you determine what symbol has that relocation?  I don't see that
error when building natively, or cross-building with base toolchain, so
there's very likely a change in binutils between 2.17 and now that's
leading to this failure.

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

- Justin


More information about the freebsd-ppc mailing list