14dad87a4SEd Maste#!/bin/sh 24dad87a4SEd Maste# 34dad87a4SEd Maste# 44dad87a4SEd Maste# Our current make(1)-based approach to dependency tracking cannot cope with 54dad87a4SEd Maste# certain source tree changes, including: 687eaa30eSEd Maste# 74dad87a4SEd Maste# - removing source files 84dad87a4SEd Maste# - replacing generated files with files committed to the tree 94dad87a4SEd Maste# - changing file extensions (e.g. a C source file rewritten in C++) 1087eaa30eSEd Maste# - moving a file from one directory to another 1187eaa30eSEd Maste# 1287eaa30eSEd Maste# Note that changing extensions or moving files may occur in effect as a result 1387eaa30eSEd Maste# of switching from a generic machine-independent (MI) implementation file to a 1487eaa30eSEd Maste# machine-dependent (MD) one. 154dad87a4SEd Maste# 164dad87a4SEd Maste# We handle those cases here in an ad-hoc fashion by looking for the known- 174dad87a4SEd Maste# bad case in the main .depend file, and if found deleting all of the related 184dad87a4SEd Maste# .depend files (including for example the lib32 version). 190bdf7b18SEd Maste# 200bdf7b18SEd Maste# These tests increase the build time (albeit by a small amount), so they 210bdf7b18SEd Maste# should be removed once enough time has passed and it is extremely unlikely 220bdf7b18SEd Maste# anyone would try a NO_CLEAN build against an object tree from before the 230bdf7b18SEd Maste# related change. One year should be sufficient. 2487eaa30eSEd Maste# 2587eaa30eSEd Maste# Groups of cleanup rules begin with a comment including the date and git hash 2687eaa30eSEd Maste# of the affected commit, and a description. The clean_dep function (below) 2787eaa30eSEd Maste# handles common dependency cleanup cases. See the comment above the function 2887eaa30eSEd Maste# for its arguments. 2987eaa30eSEd Maste# 3087eaa30eSEd Maste# Examples of each of the special cases: 3187eaa30eSEd Maste# 3287eaa30eSEd Maste# - Removing a source file (including changing a file's extension). The path, 3387eaa30eSEd Maste# file, and extension are passed to clean_dep. 3487eaa30eSEd Maste# 3587eaa30eSEd Maste# # 20231031 0527c9bdc718 Remove forward compat ino64 stuff 3687eaa30eSEd Maste# clean_dep lib/libc fstat c 3787eaa30eSEd Maste# 3887eaa30eSEd Maste# # 20221115 42d10b1b56f2 move from rs.c to rs.cc 3987eaa30eSEd Maste# clean_dep usr.bin/rs rs c 4087eaa30eSEd Maste# 4187eaa30eSEd Maste# - Moving a file from one directory to another. Note that a regex is passed to 4287eaa30eSEd Maste# clean_dep, as the default regex is derived from the file name (strncat.c in 4387eaa30eSEd Maste# this example) does not change. The regex matches the old location, does not 4487eaa30eSEd Maste# match the new location, and does not match any dependency shared between 4587eaa30eSEd Maste# them. The `/`s are replaced with `.` to avoid awkward escaping. 4687eaa30eSEd Maste# 4787eaa30eSEd Maste# # 20250110 3dc5429158cf add strncat SIMD implementation 4887eaa30eSEd Maste# clean_dep lib/libc strncat c "libc.string.strncat.c" 4987eaa30eSEd Maste# 5087eaa30eSEd Maste# - Replacing generated files with files committed to the tree. This is special 5187eaa30eSEd Maste# case of moving from one directory to another. The stale generated file also 5287eaa30eSEd Maste# needs to be deleted, so that it isn't found in make's .PATH. Note the 5387eaa30eSEd Maste# unconditional `rm -f`: there's no need for an extra call to first check for 5487eaa30eSEd Maste# the file's existence. 5587eaa30eSEd Maste# 5687eaa30eSEd Maste# # 20250110 3863fec1ce2d add strlen SIMD implementation 5787eaa30eSEd Maste# clean_dep lib/libc strlen S arm-optimized-routines 5887eaa30eSEd Maste# run rm -f "$OBJTOP"/lib/libc/strlen.S 5987eaa30eSEd Maste# 6087eaa30eSEd Maste# A rule may be required for only one architecture: 6187eaa30eSEd Maste# 6287eaa30eSEd Maste# # 20220326 fbc002cb72d2 move from bcmp.c to bcmp.S 6387eaa30eSEd Maste# if [ "$MACHINE_ARCH" = "amd64" ]; then 6487eaa30eSEd Maste# clean_dep lib/libc bcmp c 6587eaa30eSEd Maste# fi 664dad87a4SEd Maste 671ec7cb1bSJessica Clarkeset -e 681ec7cb1bSJessica Clarkeset -u 691ec7cb1bSJessica Clarke 701ec7cb1bSJessica Clarkewarn() 711ec7cb1bSJessica Clarke{ 721ec7cb1bSJessica Clarke echo "$(basename "$0"):" "$@" >&2 731ec7cb1bSJessica Clarke} 741ec7cb1bSJessica Clarke 751ec7cb1bSJessica Clarkeerr() 761ec7cb1bSJessica Clarke{ 771ec7cb1bSJessica Clarke warn "$@" 784dad87a4SEd Maste exit 1 791ec7cb1bSJessica Clarke} 801ec7cb1bSJessica Clarke 811ec7cb1bSJessica Clarkeusage() 821ec7cb1bSJessica Clarke{ 831ec7cb1bSJessica Clarke echo "usage: $(basename $0) [-v] [-n] objtop" >&2 841ec7cb1bSJessica Clarke} 851ec7cb1bSJessica Clarke 861ec7cb1bSJessica ClarkeVERBOSE= 871ec7cb1bSJessica ClarkePRETEND= 881ec7cb1bSJessica Clarkewhile getopts vn o; do 891ec7cb1bSJessica Clarke case "$o" in 901ec7cb1bSJessica Clarke v) 911ec7cb1bSJessica Clarke VERBOSE=1 921ec7cb1bSJessica Clarke ;; 931ec7cb1bSJessica Clarke n) 941ec7cb1bSJessica Clarke PRETEND=1 951ec7cb1bSJessica Clarke ;; 961ec7cb1bSJessica Clarke *) 971ec7cb1bSJessica Clarke usage 981ec7cb1bSJessica Clarke exit 1 991ec7cb1bSJessica Clarke ;; 1001ec7cb1bSJessica Clarke esac 1011ec7cb1bSJessica Clarkedone 1021ec7cb1bSJessica Clarkeshift $((OPTIND-1)) 1031ec7cb1bSJessica Clarke 1041ec7cb1bSJessica Clarkeif [ $# -ne 1 ]; then 1051ec7cb1bSJessica Clarke usage 1061ec7cb1bSJessica Clarke exit 1 1071ec7cb1bSJessica Clarkefi 1081ec7cb1bSJessica Clarke 1091ec7cb1bSJessica ClarkeOBJTOP=$1 1101ec7cb1bSJessica Clarkeshift 1111ec7cb1bSJessica Clarkeif [ ! -d "$OBJTOP" ]; then 1121ec7cb1bSJessica Clarke err "$OBJTOP: Not a directory" 1134dad87a4SEd Mastefi 1144dad87a4SEd Maste 115c70dd03aSJessica Clarkeif [ -z "${MACHINE+set}" ]; then 1161ec7cb1bSJessica Clarke err "MACHINE not set" 117c70dd03aSJessica Clarkefi 118c70dd03aSJessica Clarke 119c70dd03aSJessica Clarkeif [ -z "${MACHINE_ARCH+set}" ]; then 1201ec7cb1bSJessica Clarke err "MACHINE_ARCH not set" 121c70dd03aSJessica Clarkefi 122c70dd03aSJessica Clarke 12381805ec3SJessica Clarkeif [ -z "${ALL_libcompats+set}" ]; then 12481805ec3SJessica Clarke err "ALL_libcompats not set" 12581805ec3SJessica Clarkefi 12681805ec3SJessica Clarke 1271ec7cb1bSJessica Clarkerun() 1281ec7cb1bSJessica Clarke{ 1291ec7cb1bSJessica Clarke if [ "$VERBOSE" ]; then 1301ec7cb1bSJessica Clarke echo "$@" 1311ec7cb1bSJessica Clarke fi 1321ec7cb1bSJessica Clarke if ! [ "$PRETEND" ]; then 1331ec7cb1bSJessica Clarke "$@" 1341ec7cb1bSJessica Clarke fi 1351ec7cb1bSJessica Clarke} 1361ec7cb1bSJessica Clarke 1374dad87a4SEd Maste# $1 directory 1384dad87a4SEd Maste# $2 source filename w/o extension 1394dad87a4SEd Maste# $3 source extension 140cc30f4aeSJessica Clarke# $4 optional regex for egrep -w 1414dad87a4SEd Masteclean_dep() 1424dad87a4SEd Maste{ 14381805ec3SJessica Clarke for libcompat in "" $ALL_libcompats; do 14481805ec3SJessica Clarke dirprfx=${libcompat:+obj-lib${libcompat}/} 145cc30f4aeSJessica Clarke if egrep -qw "${4:-$2\.$3}" "$OBJTOP"/$dirprfx$1/.depend.$2.*o 2>/dev/null; then 14681805ec3SJessica Clarke echo "Removing stale ${libcompat:+lib${libcompat} }dependencies and objects for $2.$3" 1471ec7cb1bSJessica Clarke run rm -f \ 14881805ec3SJessica Clarke "$OBJTOP"/$dirprfx$1/.depend.$2.* \ 14981805ec3SJessica Clarke "$OBJTOP"/$dirprfx$1/$2.*o 1507ba8cc9bSDimitry Andric fi 15181805ec3SJessica Clarke done 1524dad87a4SEd Maste} 1534dad87a4SEd Maste 1544dad87a4SEd Maste# Date Rev Description 15545c4ff15SJohn Baldwin 156abb5b512SMateusz Guzik# 20220326 fbc002cb72d2 move from bcmp.c to bcmp.S 15745c4ff15SJohn Baldwinif [ "$MACHINE_ARCH" = "amd64" ]; then 158abb5b512SMateusz Guzik clean_dep lib/libc bcmp c 15945c4ff15SJohn Baldwinfi 160a985fad6SJohn Baldwin 161a985fad6SJohn Baldwin# 20220524 68fe988a40ca kqueue_test binary replaced shell script 162a985fad6SJohn Baldwinif stat "$OBJTOP"/tests/sys/kqueue/libkqueue/*kqtest* \ 163a985fad6SJohn Baldwin "$OBJTOP"/tests/sys/kqueue/libkqueue/.depend.kqtest* >/dev/null 2>&1; then 164a985fad6SJohn Baldwin echo "Removing old kqtest" 1651ec7cb1bSJessica Clarke run rm -f "$OBJTOP"/tests/sys/kqueue/libkqueue/.depend.* \ 166a985fad6SJohn Baldwin "$OBJTOP"/tests/sys/kqueue/libkqueue/* 167a985fad6SJohn Baldwinfi 168838a0614SJohn Baldwin 169838a0614SJohn Baldwin# 20221115 42d10b1b56f2 move from rs.c to rs.cc 170838a0614SJohn Baldwinclean_dep usr.bin/rs rs c 1714a158fc0SDag-Erling Smørgrav 1724a158fc0SDag-Erling Smørgrav# 20230110 bc42155199b5 usr.sbin/zic/zic -> usr.sbin/zic 1734a158fc0SDag-Erling Smørgravif [ -d "$OBJTOP"/usr.sbin/zic/zic ] ; then 1744a158fc0SDag-Erling Smørgrav echo "Removing old zic directory" 1751ec7cb1bSJessica Clarke run rm -rf "$OBJTOP"/usr.sbin/zic/zic 1764a158fc0SDag-Erling Smørgravfi 1774e863694SKyle Evans 1784e863694SKyle Evans# 20230208 29c5f8bf9a01 move from mkmakefile.c to mkmakefile.cc 1794e863694SKyle Evansclean_dep usr.sbin/config mkmakefile c 180ee3872a7SKyle Evans# 20230209 83d7ed8af3d9 convert to main.cc and mkoptions.cc 181ee3872a7SKyle Evansclean_dep usr.sbin/config main c 182ee3872a7SKyle Evansclean_dep usr.sbin/config mkoptions c 18377d2a2d0SJohn Baldwin 18477d2a2d0SJohn Baldwin# 20230401 54579376c05e kqueue1 from syscall to C wrapper 18577d2a2d0SJohn Baldwinclean_dep lib/libc kqueue1 S 186229d643cSEd Maste 187229d643cSEd Maste# 20230623 b077aed33b7b OpenSSL 3.0 update 188229d643cSEd Masteif [ -f "$OBJTOP"/secure/lib/libcrypto/aria.o ]; then 189229d643cSEd Maste echo "Removing old OpenSSL 1.1.1 tree" 19081805ec3SJessica Clarke for libcompat in "" $ALL_libcompats; do 19181805ec3SJessica Clarke dirprfx=${libcompat:+obj-lib${libcompat}/} 19281805ec3SJessica Clarke run rm -rf "$OBJTOP"/${dirprfx}secure/lib/libcrypto \ 19381805ec3SJessica Clarke "$OBJTOP"/${dirprfx}secure/lib/libssl 19481805ec3SJessica Clarke done 195229d643cSEd Mastefi 196ce4846aeSDimitry Andric 197e74bc775SKyle Evans# 20230714 ee8b0c436d72 replace ffs/fls implementations with clang builtins 198ce4846aeSDimitry Andricclean_dep lib/libc ffs S 199e74bc775SKyle Evansclean_dep lib/libc ffsl S 200e74bc775SKyle Evansclean_dep lib/libc ffsll S 201e74bc775SKyle Evansclean_dep lib/libc fls S 202e74bc775SKyle Evansclean_dep lib/libc flsl S 203e74bc775SKyle Evansclean_dep lib/libc flsll S 204d5af300aSDimitry Andric 205d5af300aSDimitry Andric# 20230815 28f6c2f29280 GoogleTest update 206d5af300aSDimitry Andricif [ -e "$OBJTOP"/tests/sys/fs/fusefs/mockfs.o ] && \ 207d5af300aSDimitry Andric grep -q '_ZN7testing8internal18g_linked_ptr_mutexE' "$OBJTOP"/tests/sys/fs/fusefs/mockfs.o; then 208d5af300aSDimitry Andric echo "Removing stale fusefs GoogleTest objects" 209d5af300aSDimitry Andric run rm -rf "$OBJTOP"/tests/sys/fs/fusefs 210d5af300aSDimitry Andricfi 2112d8fabefSWarner Losh 2122d8fabefSWarner Losh# 20231031 0527c9bdc718 Remove forward compat ino64 stuff 2132d8fabefSWarner Loshclean_dep lib/libc fstat c 2142d8fabefSWarner Loshclean_dep lib/libc fstatat c 2152d8fabefSWarner Loshclean_dep lib/libc fstatfs c 2162d8fabefSWarner Loshclean_dep lib/libc getdirentries c 2172d8fabefSWarner Loshclean_dep lib/libc getfsstat c 2182d8fabefSWarner Loshclean_dep lib/libc statfs c 219a650ec0eSBrooks Davis 220a650ec0eSBrooks Davis# 20240308 e6ffc7669a56 Remove pointless MD syscall(2) 221a650ec0eSBrooks Davis# 20240308 0ee0ae237324 Remove pointless MD syscall(2) 222a650ec0eSBrooks Davis# 20240308 7b3836c28188 Remove pointless MD syscall(2) 2233a4b04e8SJohn Baldwinif [ ${MACHINE} != i386 ]; then 224b9c5eab0SJessica Clarke libcompats= 225b9c5eab0SJessica Clarke for libcompat in $ALL_libcompats; do 226b9c5eab0SJessica Clarke if [ $MACHINE = amd64 ] && [ $libcompat = 32 ]; then 227b9c5eab0SJessica Clarke continue 228b9c5eab0SJessica Clarke fi 229b9c5eab0SJessica Clarke libcompats="${libcompats+$libcompats }$libcompat" 230b9c5eab0SJessica Clarke done 231b9c5eab0SJessica Clarke ALL_libcompats="$libcompats" clean_dep lib/libsys syscall S ".*/syscall\.S" 232b9c5eab0SJessica Clarke ALL_libcompats="$libcompats" clean_dep lib/libc syscall S ".*/syscall\.S" 233a650ec0eSBrooks Davisfi 23426a09db3SBrooks Davis 23526a09db3SBrooks Davis# 20240416 2fda3ab0ac19 WITH_NVME: Remove from broken 23626a09db3SBrooks Davisif [ -f "$OBJTOP"/rescue/rescue/rescue.mk ] && \ 237e546c395SJessica Clarke ! grep -q 'nvme_util.o' "$OBJTOP"/rescue/rescue/rescue.mk; then 238f7f570ebSCy Schubert echo "removing rescue.mk without nvme_util.o" 2397ce171bdSJessica Clarke run rm -f "$OBJTOP"/rescue/rescue/rescue.mk 24026a09db3SBrooks Davisfi 241fd3d3240SMark Johnston 242fd3d3240SMark Johnston# 20240910 e2df9bb44109 2430980d0a0SJessica Clarkeclean_dep cddl/lib/libzpool abd_os c "linux/zfs/abd_os\.c" 2447a7741afSMartin Matuska 2457a7741afSMartin Matuska# 20241007 2467a7741afSMartin Matuskaclean_dep cddl/lib/libzpool zfs_debug c "linux/zfs/zfs_debug\.c" 24773c7cb57SMartin Matuska 24873c7cb57SMartin Matuska# 20241011 24973c7cb57SMartin Matuskaclean_dep cddl/lib/libzpool arc_os c "linux/zfs/arc_os\.c" 250d41a40f4SJessica Clarke 251d41a40f4SJessica Clarke# 20241018 1363acbf25de libc/csu: Support IFUNCs on riscv 252d41a40f4SJessica Clarkeif [ ${MACHINE} = riscv ]; then 253d41a40f4SJessica Clarke for f in "$OBJTOP"/lib/libc/.depend.libc_start1.*o; do 254d41a40f4SJessica Clarke if [ ! -f "$f" ]; then 255d41a40f4SJessica Clarke continue 256d41a40f4SJessica Clarke fi 257d41a40f4SJessica Clarke if ! grep -q 'lib/libc/csu/riscv/reloc\.c' "$f"; then 258d41a40f4SJessica Clarke echo "Removing stale dependencies and objects for libc_start1.c" 259d41a40f4SJessica Clarke run rm -f \ 260d41a40f4SJessica Clarke "$OBJTOP"/lib/libc/.depend.libc_start1.* \ 261d41a40f4SJessica Clarke "$OBJTOP"/lib/libc/libc_start1.*o 262d41a40f4SJessica Clarke break 263d41a40f4SJessica Clarke fi 264d41a40f4SJessica Clarke done 265d41a40f4SJessica Clarkefi 2668b2e7da7SBrooks Davis 2678b2e7da7SBrooks Davis# 20241018 5deeebd8c6ca Merge llvm-project release/19.x llvmorg-19.1.2-0-g7ba7d8e2f7b6 2688b2e7da7SBrooks Davisp="$OBJTOP"/lib/clang/libclang/clang/Basic 2698b2e7da7SBrooks Davisf="$p"/arm_mve_builtin_sema.inc 2708b2e7da7SBrooks Davisif [ -e "$f" ]; then 2718b2e7da7SBrooks Davis if grep -q SemaBuiltinConstantArgRange "$f"; then 2728b2e7da7SBrooks Davis echo "Removing pre-llvm19 clang-tblgen output" 2738b2e7da7SBrooks Davis run rm -f "$p"/*.inc 2748b2e7da7SBrooks Davis fi 2758b2e7da7SBrooks Davisfi 276d8cd2d08SRobert Clausecker 277d8cd2d08SRobert Clausecker# 20241025 cb5e41b16083 Unbundle hash functions fom lib/libcrypt 278d8cd2d08SRobert Clauseckerclean_dep lib/libcrypt crypt-md5 c 279d8cd2d08SRobert Clauseckerclean_dep lib/libcrypt crypt-nthash c 280d8cd2d08SRobert Clauseckerclean_dep lib/libcrypt crypt-sha256 c 281d8cd2d08SRobert Clauseckerclean_dep lib/libcrypt crypt-sha512 c 28242ee30f1SWarner Losh 28342ee30f1SWarner Losh# 20241213 b55f5e1c4ae3 jemalloc: Move generated jemalloc.3 into lib/libc tree 2841d694986SWarner Loshif [ -h "$OBJTOP"/lib/libc/jemalloc.3 ]; then 28542ee30f1SWarner Losh # Have to cleanup the jemalloc.3 in the obj tree since make gets 28642ee30f1SWarner Losh # confused and won't use the one in lib/libc/malloc/jemalloc/jemalloc.3 28742ee30f1SWarner Losh echo "Removing stale jemalloc.3 object" 28842ee30f1SWarner Losh run rm -f "$OBJTOP"/lib/libc/jemalloc.3 28942ee30f1SWarner Loshfi 290d57842edSRobert Clausecker 291d57842edSRobert Clauseckerif [ $MACHINE_ARCH = aarch64 ]; then 292d57842edSRobert Clausecker # 20250110 5e7d93a60440 add strcmp SIMD implementation 293cc67ca72SAndrew Turner ALL_libcompats= clean_dep lib/libc strcmp S arm-optimized-routines 294c0661bbbSEd Maste run rm -f "$OBJTOP"/lib/libc/strcmp.S 295d57842edSRobert Clausecker 296d57842edSRobert Clausecker # 20250110 b91003acffe7 add strspn optimized implementation 297cc67ca72SAndrew Turner ALL_libcompats= clean_dep lib/libc strspn c 298d57842edSRobert Clausecker 299d57842edSRobert Clausecker # 20250110 f2bd390a54f1 add strcspn optimized implementation 300cc67ca72SAndrew Turner ALL_libcompats= clean_dep lib/libc strcspn c 301d57842edSRobert Clausecker 302d57842edSRobert Clausecker # 20250110 89b3872376cb add optimized strpbrk & strsep implementations 303cc67ca72SAndrew Turner ALL_libcompats= clean_dep lib/libc strpbrk c "libc.string.strpbrk.c" 304d57842edSRobert Clausecker 305d57842edSRobert Clausecker # 20250110 79287d783c72 strcat enable use of SIMD 306cc67ca72SAndrew Turner ALL_libcompats= clean_dep lib/libc strcat c "libc.string.strcat.c" 307d57842edSRobert Clausecker 308d57842edSRobert Clausecker # 20250110 756b7fc80837 add strlcpy SIMD implementation 309cc67ca72SAndrew Turner ALL_libcompats= clean_dep lib/libc strlcpy c 310d57842edSRobert Clausecker 311d57842edSRobert Clausecker # 20250110 25c485e14769 add strncmp SIMD implementation 312cc67ca72SAndrew Turner ALL_libcompats= clean_dep lib/libc strncmp S arm-optimized-routines 313c0661bbbSEd Maste run rm -f "$OBJTOP"/lib/libc/strncmp.S 314d57842edSRobert Clausecker 315d57842edSRobert Clausecker # 20250110 bad17991c06d add memccpy SIMD implementation 316cc67ca72SAndrew Turner ALL_libcompats= clean_dep lib/libc memccpy c 317d57842edSRobert Clausecker 318d57842edSRobert Clausecker # 20250110 3dc5429158cf add strncat SIMD implementation 319cc67ca72SAndrew Turner ALL_libcompats= clean_dep lib/libc strncat c "libc.string.strncat.c" 320d57842edSRobert Clausecker 321d355c28aSEd Maste # 20250110 bea89d038ac5 add strlcat SIMD implementation, and move memchr 322cc67ca72SAndrew Turner ALL_libcompats= clean_dep lib/libc strlcat c "libc.string.strlcat.c" 323cc67ca72SAndrew Turner ALL_libcompats= clean_dep lib/libc memchr S "[[:space:]]memchr.S" 324d355c28aSEd Maste run rm -f "$OBJTOP"/lib/libc/memchr.S 325d57842edSRobert Clausecker 326d57842edSRobert Clausecker # 20250110 3863fec1ce2d add strlen SIMD implementation 327cc67ca72SAndrew Turner ALL_libcompats= clean_dep lib/libc strlen S arm-optimized-routines 328c0661bbbSEd Maste run rm -f "$OBJTOP"/lib/libc/strlen.S 329d57842edSRobert Clausecker 330d57842edSRobert Clausecker # 20250110 79e01e7e643c add bcopy & bzero wrapper 331cc67ca72SAndrew Turner ALL_libcompats= clean_dep lib/libc bcopy c "libc.string.bcopy.c" 332cc67ca72SAndrew Turner ALL_libcompats= clean_dep lib/libc bzero c "libc.string.bzero.c" 333d57842edSRobert Clausecker 334d57842edSRobert Clausecker # 20250110 f2c98669fc1b add ASIMD-enhanced timingsafe_bcmp implementation 335cc67ca72SAndrew Turner ALL_libcompats= clean_dep lib/libc timingsafe_bcmp c 336d57842edSRobert Clausecker 337d57842edSRobert Clausecker # 20250110 3f224333af16 add timingsafe_memcmp() assembly implementation 338cc67ca72SAndrew Turner ALL_libcompats= clean_dep lib/libc timingsafe_memcmp c 339d57842edSRobert Clauseckerfi 340*7feee915SJohn Baldwin 341*7feee915SJohn Baldwin# 20250402 839d0755fea8 ctld converted to C++ 342*7feee915SJohn Baldwinclean_dep usr.sbin/ctld ctld c 343*7feee915SJohn Baldwinclean_dep usr.sbin/ctld conf c 344*7feee915SJohn Baldwinclean_dep usr.sbin/ctld discovery c 345*7feee915SJohn Baldwinclean_dep usr.sbin/ctld isns c 346*7feee915SJohn Baldwinclean_dep usr.sbin/ctld kernel c 347*7feee915SJohn Baldwinclean_dep usr.sbin/ctld login c 348*7feee915SJohn Baldwinclean_dep usr.sbin/ctld uclparse c 349