Date: Thu, 27 Jun 2019 12:03:05 -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: <CE47F595-68EF-43A2-877B-61C1981AF9E7@yahoo.com> In-Reply-To: <CAHSQbTBjZFb1dPk2FN=438i0FVtAKHYy-y22L%2BHFEDrTmd-9Aw@mail.gmail.com> References: <CAHSQbTBjZFb1dPk2FN=438i0FVtAKHYy-y22L%2BHFEDrTmd-9Aw@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
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=3D" on the 'make buildworld' command line. >=20 > 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+=3D -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 make[4]: stopped in /usr/src/sys/modules/agp .ERROR_TARGET=3D'agp.ko.full' = .ERROR_META_FILE=3D'/usr/obj/powerpcvtsc_clang/powerpc.powerpc/usr/src/pow= erpc.powerpc/sys/GENERICvtsc-NODBG/modules/usr/src/sys/modules/agp/agp.ko.= full.meta' .MAKE.LEVEL=3D'4' MAKEFILE=3D'' .MAKE.MODE=3D'meta missing-filemon=3Dyes missing-meta=3Dyes silent=3Dyes = verbose' _ERROR_CMD=3D'ld -m elf32ppc_fbsd -Bshareable -znotext --secure-plt -d = -warn-common -o agp.ko.full agp.kld;' .CURDIR=3D'/usr/src/sys/modules/agp' .MAKE=3D'make' = .OBJDIR=3D'/usr/obj/powerpcvtsc_clang/powerpc.powerpc/usr/src/powerpc.powe= rpc/sys/GENERICvtsc-NODBG/modules/usr/src/sys/modules/agp' .TARGETS=3D'all' DESTDIR=3D'' LD_LIBRARY_PATH=3D'' MACHINE=3D'powerpc' MACHINE_ARCH=3D'powerpc' = MAKEOBJDIRPREFIX=3D'/usr/obj/powerpcvtsc_clang/powerpc.powerpc/usr/src/pow= erpc.powerpc/sys/GENERICvtsc-NODBG/modules' MAKESYSPATH=3D'/usr/src/share/mk' MAKE_VERSION=3D'20181221' = PATH=3D'/usr/obj/powerpcvtsc_clang/powerpc.powerpc/usr/src/powerpc.powerpc= /tmp/usr/sbin:/usr/obj/powerpcvtsc_clang/powerpc.powerpc/usr/src/powerpc.p= owerpc/tmp/usr/bin:/usr/obj/powerpcvtsc_clang/powerpc.powerpc/usr/src/powe= rpc.powerpc/tmp/legacy/usr/sbin:/usr/obj/powerpcvtsc_clang/powerpc.powerpc= /usr/src/powerpc.powerpc/tmp/legacy/usr/bin:/usr/obj/powerpcvtsc_clang/pow= erpc.powerpc/usr/src/powerpc.powerpc/tmp/legacy/bin::/sbin:/bin:/usr/sbin:= /usr/bin' SRCTOP=3D'/usr/src' = OBJTOP=3D'/usr/obj/powerpcvtsc_clang/powerpc.powerpc/usr/src/powerpc.power= pc/sys/GENERICvtsc-NODBG/modules/usr/src' .MAKE.MAKEFILES=3D'/usr/src/share/mk/sys.mk = /usr/src/share/mk/local.sys.env.mk /usr/src/share/mk/src.sys.env.mk = /root/src.configs/src.conf.powerpc-clang-bootstrap.amd64-host = /usr/src/share/mk/bsd.mkopt.mk /usr/src/share/mk/src.sys.obj.mk = /usr/src/share/mk/auto.obj.mk /usr/src/share/mk/bsd.suffixes.mk = /root/src.configs/make.conf /usr/src/share/mk/local.sys.mk = /usr/src/share/mk/src.sys.mk /dev/null /usr/src/sys/modules/agp/Makefile = /usr/src/share/mk/bsd.kmod.mk /usr/src/sys/conf/kmod.mk = /usr/src/share/mk/bsd.init.mk /usr/src/share/mk/bsd.opts.mk = /usr/src/share/mk/bsd.cpu.mk /usr/src/share/mk/local.init.mk = /usr/src/share/mk/src.init.mk /usr/src/sys/modules/agp/../Makefile.inc = /usr/src/share/mk/bsd.own.mk /usr/src/share/mk/bsd.compiler.mk = /usr/src/share/mk/bsd.linker.mk /usr/src/sys/conf/kern.opts.mk = /usr/src/sys/conf/config.mk /usr/src/share/mk/bsd.links.mk = /usr/src/share/mk/bsd.dep.mk /usr/src/share/mk/bsd.clang-analyze.mk = /usr/src/share/mk/bsd.obj.mk /usr/src/share/mk/bsd.subdir.mk = /usr/src/sys/conf/kern.mk' .PATH=3D'. /usr/src/sys/modules/agp /usr/src/sys/dev/agp = /usr/obj/powerpcvtsc_clang/powerpc.powerpc/usr/src/powerpc.powerpc/sys/GEN= ERICvtsc-NODBG' 1 error This was based on: # more ~/src.configs/src.conf.powerpc-clang-bootstrap.amd64-host=20 TO_TYPE=3Dpowerpc # KERNCONF=3DGENERICvtsc-NODBG TARGET=3D${TO_TYPE} .if ${.MAKE.LEVEL} =3D=3D 0 TARGET_ARCH=3D${TO_TYPE} .export TARGET_ARCH .endif # WITH_CROSS_COMPILER=3D WITH_SYSTEM_COMPILER=3D WITHOUT_SYSTEM_LINKER=3D # WITH_LIBCPLUSPLUS=3D WITHOUT_LLD_BOOTSTRAP=3D WITH_BINUTILS_BOOTSTRAP=3D WITH_ELFTOOLCHAIN_BOOTSTRAP=3D #Disables avoiding bootstrap: WITHOUT_LLVM_TARGET_ALL=3D WITHOUT_LLVM_TARGET_AARCH64=3D WITHOUT_LLVM_TARGET_ARM=3D WITHOUT_LLVM_TARGET_MIPS=3D WITH_LLVM_TARGET_POWERPC=3D WITHOUT_LLVM_TARGET_SPARC=3D WITHOUT_LLVM_TARGET_X86=3D WITH_CLANG_BOOTSTRAP=3D WITH_CLANG=3D WITH_CLANG_IS_CC=3D WITH_CLANG_FULL=3D WITH_CLANG_EXTRAS=3D WITHOUT_LLD=3D WITH_BINTUILS=3D # lldb requires missing atomic 8-byte operations for powerpc (non-64) WITHOUT_LLDB=3D # WITH_BOOT=3D WITHOUT_LIB32=3D # LOADER_DEFAULT_INTERP=3D4th # WITHOUT_GCC_BOOTSTRAP=3D WITHOUT_GCC=3D WITHOUT_GCC_IS_CC=3D WITHOUT_GNUCXX=3D # NO_WERROR=3D # # Use WERROR to avoid stopping at the likes of: # error: implicit conversion from 'int' to 'int8_t' (aka 'signed char') = changes value from 128 to -128 [-Werror,-Wconstant-conversion] WERROR=3D MALLOC_PRODUCTION=3D # # Avoid stripping but do not control host -g status as well: DEBUG_FLAGS+=3D # WITH_REPRODUCIBLE_BUILD=3D WITH_DEBUG_FILES=3D > I will submit ports updates for review in the next few days, so that > ports can implicitly take advantage of secure-PLT as well. =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?CE47F595-68EF-43A2-877B-61C1981AF9E7>