From: Jeremie Courreges-Anglas Subject: Re: [NEW] textproc/simdutf To: Volker Schlecht , ports , "Kirill A. Korinsky" Date: Tue, 21 Oct 2025 09:29:09 +0200 On Mon, Oct 20, 2025 at 05:08:40PM +0100, Stuart Henderson wrote: > On 2025/10/20 16:55, Volker Schlecht wrote: > > ok to import without hooking it up to the build? make package/make test pass on riscv64. On sparc64 linking of tools/fastbase64.cpp and tools/sutf.cpp fails because of stupid missing libstdc++fs symbols: FAILED: tools/fastbase64 : && /usr/ports/pobj/simdutf-7.5.0/bin/c++ -O2 -pipe -DNDEBUG -lstdc++fs -static-libstdc++ -Wl,--gc-sections tools/CMakeFiles/fastbase64.dir/fastbase64.cpp.o -o tools/fastbase64 -Wl,-z,origin,-rpath,/usr/ports/pobj/simdutf-7.5.0/build-sparc64/src: src/libsimdutf.so.0.0 -Wl,-rpath-link,/usr/X11R6/lib && : tools/CMakeFiles/fastbase64.dir/fastbase64.cpp.o: In function `CommandLine::parse_and_validate_arguments(int, char**)': fastbase64.cpp:(.text+0x3e8): undefined reference to `std::filesystem::__cxx11::path::_M_split_cmpts()' fastbase64.cpp:(.text+0x4c0): undefined reference to `std::filesystem::__cxx11::path::_M_split_cmpts()' collect2: error: ld returned 1 exit status You could work around this with a patch to add the missing lib, or by disabling tools on ports-gcc. > why avoid hooking it up? I took a quick look at what might use it and: - lang/node seems to prefer its copy by default - databases/recoll doesn't seem to pick the system package - mail/rspamd fails to build when simdutf is installed, looks like an include ordering conflict with its internal copy. Better fix that before textproc/simdutf gets used as a dep for other ports. FAILED: contrib/simdutf/src/CMakeFiles/simdutf.dir/simdutf.cpp.o /usr/ports/pobj/rspamd-3.13.2/bin/c++ -DDOCTEST_CONFIG_NO_MULTI_LANE_ATOMICS -DDOCTEST_CONFIG_USE_STD_HEADERS -DFMT_HEADER_ONLY -DFREEBSD -DHAVE_CONFIG_H -DSIMDUTF_IMPLEMENTATION_FALLBACK=1 -DU_CHARSET_IS_UTF8 -DZSTD_DISABLE_DEPRECATE_WARNINGS -D_BSD_SOURCE -I/usr/ports/pobj/rspamd-3.13.2/rspamd-3.13.2/contrib/hiredis -I/usr/ports/pobj/rspamd-3.13.2/rspamd-3.13.2 -I/usr/ports/pobj/rspamd-3.13.2/rspamd-3.13.2/src -I/usr/ports/pobj/rspamd-3.13.2/rspamd-3.13.2/src/libutil -I/usr/ports/pobj/rspamd-3.13.2/rspamd-3.13.2/src/libserver -I/usr/ports/pobj/rspamd-3.13.2/rspamd-3.13.2/src/libmime -I/usr/ports/pobj/rspamd-3.13.2/rspamd-3.13.2/src/libstat -I/usr/ports/pobj/rspamd-3.13.2/rspamd-3.13.2/src/libcryptobox -I/usr/ports/pobj/rspamd-3.13.2/rspamd-3.13.2/contrib/libucl -I/usr/ports/pobj/rspamd-3.13.2/rspamd-3.13.2/contrib/replxx/include -I/usr/ports/pobj/rspamd-3.13.2/rspamd-3.13.2/contrib/uthash -I/usr/ports/pobj/rspamd-3.13.2/rspamd-3.13.2/contrib/http-parser -I/usr/ports/pobj/rspamd-3.13.2/rspamd-3.13.2/contrib/fpconv -I/usr/ports/pobj/rspamd-3.13.2/rspamd-3.13.2/contrib/libottery -I/usr/ports/pobj/rspamd-3.13.2/rspamd-3.13.2/contrib/cdb -I/usr/ports/pobj/rspamd-3.13.2/rspamd-3.13.2/contrib/snowball/include -I/usr/ports/pobj/rspamd-3.13.2/rspamd-3.13.2/contrib/librdns -I/usr/ports/pobj/rspamd-3.13.2/rspamd-3.13.2/contrib/aho-corasick -I/usr/ports/pobj/rspamd-3.13.2/rspamd-3.13.2/contrib/lc-btrie -I/usr/ports/pobj/rspamd-3.13.2/rspamd-3.13.2/contrib/lua-lpeg -I/usr/ports/pobj/rspamd-3.13.2/rspamd-3.13.2/contrib/frozen/include -I/usr/ports/pobj/rspamd-3.13.2/rspamd-3.13.2/contrib/fu2/include -I/usr/ports/pobj/rspamd-3.13.2/build-amd64/src -I/usr/ports/pobj/rspamd-3.13.2/build-amd64/src/libcryptobox -I/usr/local/include/luajit-2.1 -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -I/usr/local/include -I/usr/ports/pobj/rspamd-3.13.2/rspamd-3.13.2/contrib/simdutf/src -I/usr/ports/pobj/rspamd-3.13.2/rspamd-3.13.2/contrib/simdutf/include -O2 -pipe -g -O2 -pipe -g -fdiagnostics-color=always -Wno-unused-command-line-argument -Wno-ignored-optimization-argument -DNDEBUG -O2 -fomit-frame-pointer -fassociative-math -freciprocal-math -fno-signed-zeros -ffp-contract=fast -std=c++20 -flto=thin -fPIC -msse2 -m64 -Wextra -Wall -Wpointer-arith -Wno-unused-parameter -Wno-unused-function -Wunused-variable -Wno-strict-aliasing -fno-strict-aliasing -Wnull-dereference -Wno-unused-const-variable -Wno-sign-compare -Wno-implicit-fallthrough -Wmissing-noreturn -Wmissing-format-attribute -Werror=return-type -fPIC -Weffc++ -Wfatal-errors -Wsign-compare -Wshadow -Wwrite-strings -Winit-self -Wconversion -Wno-sign-conversion -Wunused-function -MD -MT contrib/simdutf/src/CMakeFiles/simdutf.dir/simdutf.cpp.o -MF contrib/simdutf/src/CMakeFiles/simdutf.dir/simdutf.cpp.o.d -o contrib/simdutf/src/CMakeFiles/simdutf.dir/simdutf.cpp.o -c /usr/ports/pobj/rspamd-3.13.2/rspamd-3.13.2/contrib/simdutf/src/simdutf.cpp In file included from /usr/ports/pobj/rspamd-3.13.2/rspamd-3.13.2/contrib/simdutf/src/simdutf.cpp:4: In file included from /usr/ports/pobj/rspamd-3.13.2/rspamd-3.13.2/contrib/simdutf/src/implementation.cpp:25: In file included from /usr/ports/pobj/rspamd-3.13.2/rspamd-3.13.2/contrib/simdutf/src/simdutf/icelake.h:60: /usr/ports/pobj/rspamd-3.13.2/rspamd-3.13.2/contrib/simdutf/src/simdutf/icelake/implementation.h:13:7: warning: abstract class is marked 'final' [-Wabstract-final-class] 13 | class implementation final : public simdutf::implementation { | ^ /usr/local/include/simdutf/implementation.h:3728:3: note: unimplemented pure virtual method 'validate_utf16be_as_ascii' in 'implementation' 3728 | validate_utf16be_as_ascii(const char16_t *buf, size_t len) const noexcept = 0; etc etc -- jca