svn commit: r360792 - stable/12/sys/conf
John Baldwin
jhb at FreeBSD.org
Thu May 7 18:47:55 UTC 2020
Author: jhb
Date: Thu May 7 18:47:54 2020
New Revision: 360792
URL: https://svnweb.freebsd.org/changeset/base/360792
Log:
MFC 357145: Compile hack.c with normal CFLAGS + -shared -nostdlib.
Originally, hack.c was compiled into a shard object with just -shared
-nostdlib. This assumed that ${CC} did not require any additional
flags for ABIs, cross-building, etc.
When kern.post.mk was created in r89509 by reducing duplication in
kernel Makefile.<arch> files, the -shared flag was moved into a
HACK_EXTRA_FLAGS variable so that sparc64 could override it with
-Wl,-shared. The sparc64 hack was removed in r111650, but
HACK_EXTRA_FLAGS was left in place. Over time, we have started
support toolchains that require flags to support alternate ABIs on
MIPS and PowerPC and started (ab)using HACK_EXTRA_FLAGS to set only
those flags.
I need to fix risc-v to pass -mno-relax to the hack.c build for lld in
llvm 10, and the patches to support cross-build from non-FreeBSD hosts
need to include -target for clang in CFLAGS for hack.c. Rather than
adding more hacks into HACK_EXTRA_FLAGS, just use the full set of
CFLAGS with hack.c.
Modified:
stable/12/sys/conf/Makefile.mips
stable/12/sys/conf/kern.post.mk
Directory Properties:
stable/12/ (props changed)
Modified: stable/12/sys/conf/Makefile.mips
==============================================================================
--- stable/12/sys/conf/Makefile.mips Thu May 7 18:24:32 2020 (r360791)
+++ stable/12/sys/conf/Makefile.mips Thu May 7 18:47:54 2020 (r360792)
@@ -44,12 +44,9 @@ TRAMPLOADADDR?=0x807963c0
ARCH_FLAGS?=-march=mips32
EXTRA_FLAGS=-fno-pic -mno-abicalls -G0 -DKERNLOADADDR=${KERNLOADADDR}
-HACK_EXTRA_FLAGS=-shared
-
# We add the -fno-pic flag to kernels because otherwise performance
# is extremely poor, as well as -mno-abicalls to force no ABI usage.
CFLAGS+=${EXTRA_FLAGS} $(ARCH_FLAGS)
-HACK_EXTRA_FLAGS+=${EXTRA_FLAGS} $(ARCH_FLAGS)
TRAMP_ARCH_FLAGS?=$(ARCH_FLAGS)
TRAMP_EXTRA_FLAGS=${EXTRA_FLAGS} ${TRAMP_ARCH_FLAGS}
# Kernel code is always compiled with soft-float on MIPS
Modified: stable/12/sys/conf/kern.post.mk
==============================================================================
--- stable/12/sys/conf/kern.post.mk Thu May 7 18:24:32 2020 (r360791)
+++ stable/12/sys/conf/kern.post.mk Thu May 7 18:47:54 2020 (r360792)
@@ -192,10 +192,9 @@ kernel-clean:
# This is a hack. BFD "optimizes" away dynamic mode if there are no
# dynamic references. We could probably do a '-Bforcedynamic' mode like
# in the a.out ld. For now, this works.
-HACK_EXTRA_FLAGS?= -shared
hack.pico: Makefile
:> hack.c
- ${CC} ${HACK_EXTRA_FLAGS} -nostdlib hack.c -o hack.pico
+ ${CC} -shared ${CFLAGS} -nostdlib hack.c -o hack.pico
rm -f hack.c
offset.inc: $S/kern/genoffset.sh genoffset.o
More information about the svn-src-all
mailing list