git: 998c08856a4e - stable/13 - src.conf: Introduce WITHOUT_MACHDEP_OPTIMIZATIONS knob.
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 13 Sep 2022 18:56:07 UTC
The branch stable/13 has been updated by arrowd (ports committer): URL: https://cgit.FreeBSD.org/src/commit/?id=998c08856a4e261dbd92771561d65a0201ec03d4 commit 998c08856a4e261dbd92771561d65a0201ec03d4 Author: Gleb Popov <arrowd@FreeBSD.org> AuthorDate: 2022-08-08 15:16:00 +0000 Commit: Gleb Popov <arrowd@FreeBSD.org> CommitDate: 2022-09-13 18:55:45 +0000 src.conf: Introduce WITHOUT_MACHDEP_OPTIMIZATIONS knob. Summary: This knob can be used to make buildsystem prefer generic C implentations of various functions, instead of machine-specific assembler ones. Test Plan: `make buildworld` on amd64 Reviewed by: imp, emaste Differential Revision: https://reviews.freebsd.org/D36076 (cherry picked from commit 20adba8bc1beb125d5e5ed8f12e747ae79ca6a10) --- lib/libc/Makefile | 2 +- lib/libmd/Makefile | 2 +- lib/msun/Makefile | 2 +- share/man/man5/src.conf.5 | 4 +++- share/mk/src.opts.mk | 1 + tools/build/options/WITHOUT_MACHDEP_OPTIMIZATIONS | 1 + 6 files changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/libc/Makefile b/lib/libc/Makefile index 2f2e07c03438..6363cef8d48b 100644 --- a/lib/libc/Makefile +++ b/lib/libc/Makefile @@ -165,7 +165,7 @@ CFLAGS+= -DSYMBOL_VERSIONING # If there are no machine dependent sources, append all the # machine-independent sources: -.if empty(MDSRCS) +.if empty(MDSRCS) || ${MK_MACHDEP_OPTIMIZATIONS} == no SRCS+= ${MISRCS} .else # Append machine-dependent sources, then append machine-independent sources diff --git a/lib/libmd/Makefile b/lib/libmd/Makefile index c98c33bae3f5..8d3a05279004 100644 --- a/lib/libmd/Makefile +++ b/lib/libmd/Makefile @@ -103,7 +103,7 @@ CFLAGS.skein_block.c+= -DSKEIN_LOOP=995 .PATH: ${SRCTOP}/sys/crypto/skein ${SRCTOP}/sys/crypto/skein/${MACHINE_ARCH} USE_ASM_SOURCES?=1 -.if defined(BOOTSTRAPPING) +.if defined(BOOTSTRAPPING) || ${MK_MACHDEP_OPTIMIZATIONS} == no # Don't build ASM sources when bootstrapping to avoid toolchain dependencies USE_ASM_SOURCES:=0 .endif diff --git a/lib/msun/Makefile b/lib/msun/Makefile index 6274c27c12c5..0be2813bb933 100644 --- a/lib/msun/Makefile +++ b/lib/msun/Makefile @@ -152,7 +152,7 @@ COMMON_SRCS+= catrig.c catrigf.c \ #COMMON_SRCS+= s_fabs.c s_frexp.c s_isnan.c s_ldexp.c s_modf.c # Exclude the generic versions of what we provide in the MD area. -.if defined(ARCH_SRCS) +.if defined(ARCH_SRCS) && "${MK_MACHDEP_OPTIMIZATIONS}" != no .for i in ${ARCH_SRCS} COMMON_SRCS:= ${COMMON_SRCS:N${i:R}.c} .endfor diff --git a/share/man/man5/src.conf.5 b/share/man/man5/src.conf.5 index 272ad1cb9e71..99ffdb38d8e1 100644 --- a/share/man/man5/src.conf.5 +++ b/share/man/man5/src.conf.5 @@ -1,6 +1,6 @@ .\" DO NOT EDIT-- this file is @generated by tools/build/options/makeman. .\" $FreeBSD$ -.Dd July 18, 2022 +.Dd September 9, 2022 .Dt SRC.CONF 5 .Os .Sh NAME @@ -1060,6 +1060,8 @@ and related programs. Build .Xr ls 1 without support for colors to distinguish file types. +.It Va WITHOUT_MACHDEP_OPTIMIZATIONS +Prefer machine-independent non-assembler code in libc and libm. .It Va WITHOUT_MAIL Do not build any mail support (MUA or MTA). When set, it enforces these options: diff --git a/share/mk/src.opts.mk b/share/mk/src.opts.mk index 3fb104ad1c50..90405ce4b80c 100644 --- a/share/mk/src.opts.mk +++ b/share/mk/src.opts.mk @@ -140,6 +140,7 @@ __DEFAULT_YES_OPTIONS = \ LOCATE \ LPR \ LS_COLORS \ + MACHDEP_OPTIMIZATIONS \ MAIL \ MAILWRAPPER \ MAKE \ diff --git a/tools/build/options/WITHOUT_MACHDEP_OPTIMIZATIONS b/tools/build/options/WITHOUT_MACHDEP_OPTIMIZATIONS new file mode 100644 index 000000000000..1c596c998504 --- /dev/null +++ b/tools/build/options/WITHOUT_MACHDEP_OPTIMIZATIONS @@ -0,0 +1 @@ +Prefer machine-independent non-assembler code in libc and libm.