Skip site navigation (1)Skip section navigation (2)
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>