Date: Fri, 9 Sep 2022 08:05:09 +0100 From: Jessica Clarke <jrtc27@freebsd.org> To: Gleb Popov <arrowd@FreeBSD.org> Cc: "src-committers@freebsd.org" <src-committers@FreeBSD.org>, "dev-commits-src-all@freebsd.org" <dev-commits-src-all@FreeBSD.org>, "dev-commits-src-main@freebsd.org" <dev-commits-src-main@FreeBSD.org> Subject: Re: git: 20adba8bc1be - main - src.conf: Introduce WITHOUT_MACHDEP knob. Message-ID: <2E1A4499-6DCF-474F-B535-06D00B47F2FD@freebsd.org> In-Reply-To: <9643117A-FF55-4805-AF90-9AB217159447@freebsd.org> References: <202209090654.2896sZ0S067358@gitrepo.freebsd.org> <9643117A-FF55-4805-AF90-9AB217159447@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On 9 Sept 2022, at 07:58, Jessica Clarke <jrtc27@freebsd.org> wrote: >=20 > On 9 Sept 2022, at 07:54, Gleb Popov <arrowd@FreeBSD.org> wrote: >>=20 >> The branch main has been updated by arrowd (ports committer): >>=20 >> URL: = https://cgit.FreeBSD.org/src/commit/?id=3D20adba8bc1beb125d5e5ed8f12e747ae= 79ca6a10 >>=20 >> commit 20adba8bc1beb125d5e5ed8f12e747ae79ca6a10 >> Author: Gleb Popov <arrowd@FreeBSD.org> >> AuthorDate: 2022-08-08 15:16:00 +0000 >> Commit: Gleb Popov <arrowd@FreeBSD.org> >> CommitDate: 2022-09-09 06:54:28 +0000 >>=20 >> src.conf: Introduce WITHOUT_MACHDEP knob. >=20 > This differs from what you actually did. >=20 >> Summary: >> This knob can be used to make buildsystem prefer generic C = implentations of >> various functions, instead of machine-specific assembler ones. >>=20 >> Test Plan: `make buildworld` on amd64 >>=20 >> Reviewed by: imp, emaste >>=20 >> Differential Revision: https://reviews.freebsd.org/D36076 >>=20 >> MFC after: 3 days >=20 > This is not the right format for commit messages. >=20 >> --- >> lib/libc/Makefile | 2 +- >> lib/libmd/Makefile | 2 +- >> lib/msun/Makefile | 2 +- >> share/man/man5/src.conf.5 | 2 ++ >> share/mk/src.opts.mk | 1 + >> tools/build/options/WITHOUT_MACHDEP_OPTIMIZATIONS | 1 + >> 6 files changed, 7 insertions(+), 3 deletions(-) >>=20 >> diff --git a/lib/libc/Makefile b/lib/libc/Makefile >> index 3667eea15307..a221a5a66c19 100644 >> --- a/lib/libc/Makefile >> +++ b/lib/libc/Makefile >> @@ -162,7 +162,7 @@ CFLAGS+=3D -DSYMBOL_VERSIONING >>=20 >> # If there are no machine dependent sources, append all the >> # machine-independent sources: >> -.if empty(MDSRCS) >> +.if empty(MDSRCS) || ${MK_MACHDEP_OPTIMIZATIONS} =3D=3D no >=20 > These all have _OPTIMIZATIONS. >=20 >> SRCS+=3D ${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+=3D -DSKEIN_LOOP=3D995 >> .PATH: ${SRCTOP}/sys/crypto/skein = ${SRCTOP}/sys/crypto/skein/${MACHINE_ARCH} >>=20 >> USE_ASM_SOURCES?=3D1 >> -.if defined(BOOTSTRAPPING) >> +.if defined(BOOTSTRAPPING) || ${MK_MACHDEP_OPTIMIZATIONS} =3D=3D no >> # Don't build ASM sources when bootstrapping to avoid toolchain = dependencies >> USE_ASM_SOURCES:=3D0 >> .endif >> diff --git a/lib/msun/Makefile b/lib/msun/Makefile >> index 2382a9ae3fdb..e65e9401cdbf 100644 >> --- a/lib/msun/Makefile >> +++ b/lib/msun/Makefile >> @@ -151,7 +151,7 @@ COMMON_SRCS+=3D catrig.c catrigf.c \ >> #COMMON_SRCS+=3D s_fabs.c s_frexp.c s_isnan.c s_ldexp.c s_modf.c >>=20 >> # Exclude the generic versions of what we provide in the MD area. >> -.if defined(ARCH_SRCS) >> +.if defined(ARCH_SRCS) && ${MK_MACHDEP_OPTIMIZATIONS} !=3D no >> .for i in ${ARCH_SRCS} >> COMMON_SRCS:=3D ${COMMON_SRCS:N${i:R}.c} >> .endfor Also is this correct for 32-bit Arm? It has fenv-softfp.c and fenv-vfp.c in ARCH_SRCS which makes me nervous. Jess >> diff --git a/share/man/man5/src.conf.5 b/share/man/man5/src.conf.5 >> index 36fb474b6597..0ccdfa6cd49c 100644 >> --- a/share/man/man5/src.conf.5 >> +++ b/share/man/man5/src.conf.5 >> @@ -1094,6 +1094,8 @@ and related programs. >> Build >> .Xr ls 1 >> without support for colors to distinguish file types. >> +.It Va WITHOUT_MACHDEP >> +Prefer machine-independent non-assembler code across the code base. >=20 > Except this lacks the suffix, and is clearly not generated from = what=E2=80=99s > in-tree given that=E2=80=99s a WITHOUT_MACHDEP_OPTIMIZATIONS file. >=20 > Also the description is different. >=20 > Jess >=20 >> .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 4ac61f13cee2..a03b8147ecbb 100644 >> --- a/share/mk/src.opts.mk >> +++ b/share/mk/src.opts.mk >> @@ -142,6 +142,7 @@ __DEFAULT_YES_OPTIONS =3D \ >> 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.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?2E1A4499-6DCF-474F-B535-06D00B47F2FD>