On Sat, Feb 22, 2020, 6:23 AM Kristof Provost <k...@freebsd.org> wrote:
> Author: kp > Date: Sat Feb 22 13:23:27 2020 > New Revision: 358247 > URL: https://svnweb.freebsd.org/changeset/base/358247 > > Log: > riscv: Set MACHINE_ARCH correctly > > MACHINE_ARCH sets the hw.machine_arch sysctl in the kernel. In userspace > it sets MACHINE_ARCH in bmake, which bsd.cpu.mk uses to configure the > target ABI for ports. > > For riscv64sf builds (i.e. soft-float) that needs to be riscv64sf, but > the sysctl didn't reflect that. It is static. > > Set the define from the riscv makefile so that we correctly reflect our > actual build (i.e. riscv64 or riscv64sf), depending on what TARGET_ARCH > we were built with. > > That still doesn't satisfy userspace builds (e.g. bmake), so check if > we're building with a software-floating point toolchain there. That > check doesn't work in the kernel, because it never uses floating point. > > Reviewed by: philip (previous version), mhorne > Sponsored by: Axiado > Differential Revision: https://reviews.freebsd.org/D23741 > > Modified: > head/sys/conf/Makefile.riscv > head/sys/riscv/include/param.h > > Modified: head/sys/conf/Makefile.riscv > > ============================================================================== > --- head/sys/conf/Makefile.riscv Sat Feb 22 12:10:41 2020 > (r358246) > +++ head/sys/conf/Makefile.riscv Sat Feb 22 13:23:27 2020 > (r358247) > @@ -46,6 +46,8 @@ SYSTEM_LD= @${LD} -N -m ${LD_EMULATION} -Bdynamic -T $ > CFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls > .endif > > +CFLAGS += -DMACHINE_ARCH=\"${TARGET_ARCH}\" > This is bogus. It should be removed. TARGET_ARCH may not be defined here and Makefile.inc1 should already set it for cross builds. Please remove it. Warnet + > # hack because genassym.c includes sys/bus.h which includes these. > genassym.o: bus_if.h device_if.h > > > Modified: head/sys/riscv/include/param.h > > ============================================================================== > --- head/sys/riscv/include/param.h Sat Feb 22 12:10:41 2020 > (r358246) > +++ head/sys/riscv/include/param.h Sat Feb 22 13:23:27 2020 > (r358247) > @@ -46,7 +46,11 @@ > #define MACHINE "riscv" > #endif > #ifndef MACHINE_ARCH > +#ifdef __riscv_float_abi_soft > +#define MACHINE_ARCH "riscv64sf" > +#else > #define MACHINE_ARCH "riscv64" > +#endif > #endif > > #ifdef SMP > _______________________________________________ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"