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

Reply via email to