Date: Thu, 27 Jun 2019 16:19:54 -0700 From: Mark Millard <marklmi@yahoo.com> To: Justin Hibbits <jrh29@alumni.cwru.edu> Cc: FreeBSD PowerPC ML <freebsd-ppc@freebsd.org> Subject: Re: FreeBSD/powerpc and FreeBSD/powerpcspe toolchain update Message-ID: <C648985D-B333-4F71-9FE3-2F52FE037618@yahoo.com> In-Reply-To: <9C229946-C51B-41BF-9661-F6B6D585903D@yahoo.com> References: <CAHSQbTBjZFb1dPk2FN=438i0FVtAKHYy-y22L%2BHFEDrTmd-9Aw@mail.gmail.com> <CE47F595-68EF-43A2-877B-61C1981AF9E7@yahoo.com> <20190627145312.5abd82e7@titan.knownspace> <4B8DE338-8152-42CD-914C-35596FFDA76B@yahoo.com> <9C229946-C51B-41BF-9661-F6B6D585903D@yahoo.com>
index | next in thread | previous in thread | raw e-mail
[I used src.conf.powerpc-clang-bootstrap.amd64-host which uses WITHOUT_LLD_BOOTSTRAP= and WITH_BINUTILS_BOOTSTRAP= and so LLD was not in use.] On 2019-Jun-27, at 15:03, Mark Millard <marklmi at yahoo.com> wrote: > > > On 2019-Jun-27, at 14:53, Mark Millard <marklmi at yahoo.com> wrote: > > > >> On 2019-Jun-27, at 12:53, Justin Hibbits <jrh29 at alumni.cwru.edu> wrote: >> >>> On Thu, 27 Jun 2019 12:03:05 -0700 >>> Mark Millard <marklmi@yahoo.com> wrote: >>> >>>> On 2019-Jun-24, at 19:40, Justin Hibbits <jrh29@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. Gack: Looking at the src.conf.powerpc-clang-bootstrap.amd64-host text I'd originally included but has been dropped later in this exchange, there is: WITHOUT_SYSTEM_LINKER= . . . WITHOUT_LLD_BOOTSTRAP= WITH_BINUTILS_BOOTSTRAP= WITH_ELFTOOLCHAIN_BOOTSTRAP= So lld was not in use as I intended: wrong src.conf.* file. I did not end up testing what I intended to test. So this is actually about ld from WITH_BINUTILS_BOOTSTRAP : # /usr/obj/powerpcvtsc_clang/powerpc.powerpc/usr/src/powerpc.powerpc/tmp/usr/bin/ld -v GNU ld 2.17.50 [FreeBSD] 2007-07-03 Sorry for the misdirection. >>>> 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. >> >> Sure. readelf shows for agp.kld at 0x37a4 : >> >> 000037a4 00004512 R_PPC_PLTREL24 00000000 agp_find_caps + 0 >> >> and also shows for agp_find_caps: >> >> 69: 0000000000000000 172 FUNC LOCAL DEFAULT 1 agp_find_caps >> >> (Note that I build with debug symbols., even for non-debug builds.) > > FYI for how agp.kld was produced: > > # Meta data file /usr/obj/powerpcvtsc_clang/powerpc.powerpc/usr/src/powerpc.powerpc/sys/GENERICvtsc-NODBG/modules/usr/src/sys/modules/agp/agp.kld.meta > CMD ld -m elf32ppc_fbsd --secure-plt -d -warn-common -r -d -o agp.kld agp.o agp_if.o agp_apple.o > CMD ctfmerge -L VERSION -g -o agp.kld agp.o agp_if.o agp_apple.o > CMD echo -n "agp_find_device > agp_state > agp_acquire > agp_release > agp_enable > agp_alloc_memory > agp_free_memory > agp_bind_memory > agp_unbind_memory > agp_memory_info > " > export_syms > CMD awk -f /usr/src/sys/conf/kmod_syms.awk agp.kld export_syms | xargs -J% objcopy % agp.kld > CWD /usr/obj/powerpcvtsc_clang/powerpc.powerpc/usr/src/powerpc.powerpc/sys/GENERICvtsc-NODBG/modules/usr/src/sys/modules/agp > TARGET agp.kld > -- command output -- > > -- filemon acquired metadata -- > . . . === Mark Millard marklmi at yahoo.com ( dsl-only.net went away in early 2018-Mar)home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?C648985D-B333-4F71-9FE3-2F52FE037618>
