Index | Thread | Search

From:
Jeremie Courreges-Anglas <jca@wxcvbn.org>
Subject:
Re: [NEW] textproc/simdutf
To:
Volker Schlecht <openbsd-ports@schlecht.dev>, ports <ports@openbsd.org>, "Kirill A. Korinsky" <kirill@korins.ky>
Date:
Tue, 21 Oct 2025 09:29:09 +0200

Download raw body.

Thread
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