Genivia / RE-flex

A high-performance C++ regex library and lexical analyzer generator with Unicode support. Extends Flex++ with Unicode support, indent/dedent anchors, lazy quantifiers, functions for lex and syntax error reporting and more. Seamlessly integrates with Bison and other parsers.
https://www.genivia.com/doc/reflex/html
BSD 3-Clause "New" or "Revised" License
520 stars 85 forks source link

Build failed: undefined symbol: reflex::HW #205

Closed gahr closed 5 months ago

gahr commented 5 months ago

I am working to upgrade the FreeBSD port to 4.3.0, and the build fails:

-- The CXX compiler identification is Clang 16.0.6
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Performing Test HAVE_AVX512BW
-- Performing Test HAVE_AVX512BW - Failed
-- Performing Test HAVE_AVX2
-- Performing Test HAVE_AVX2 - Failed
-- Performing Test HAVE_SSE2
-- Performing Test HAVE_SSE2 - Success
-- Performing Test HAVE_NEON
-- Performing Test HAVE_NEON - Failed
-- Configuring done (3.3s)
-- Generating done (0.0s)
CMake Warning:
  Manually-specified variables were not used by the project:

    CMAKE_C_COMPILER
    CMAKE_C_FLAGS
    CMAKE_C_FLAGS_DEBUG
    CMAKE_C_FLAGS_RELEASE
    CMAKE_MODULE_LINKER_FLAGS
    CMAKE_VERBOSE_MAKEFILE
    FETCHCONTENT_FULLY_DISCONNECTED
    THREADS_HAVE_PTHREAD_ARG

===>  Building for re-flex-4.3.0
[  2% 4/38] /usr/bin/c++ -DHAVE_SSE2 -DReflexLib_EXPORTS -I/usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/include -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -O2 -pipe -fstack-protector-strong -fno-strict-aliasing   -DNDEBUG -std=gnu++11 -fPIC -msse2 -MD -MT CMakeFiles/ReflexLib.dir/lib/debug.cpp.o -MF CMakeFiles/ReflexLib.dir/lib/debug.cpp.o.d -o CMakeFiles/ReflexLib.dir/lib/debug.cpp.o -c /usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/lib/debug.cpp
[  5% 5/38] /usr/bin/c++ -DHAVE_SSE2 -DReflexLib_EXPORTS -I/usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/include -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -O2 -pipe -fstack-protector-strong -fno-strict-aliasing   -DNDEBUG -std=gnu++11 -fPIC -msse2 -MD -MT CMakeFiles/ReflexLib.dir/lib/error.cpp.o -MF CMakeFiles/ReflexLib.dir/lib/error.cpp.o.d -o CMakeFiles/ReflexLib.dir/lib/error.cpp.o -c /usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/lib/error.cpp
[  7% 6/38] /usr/bin/c++ -DHAVE_SSE2 -DReflexLib_EXPORTS -I/usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/include -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -O2 -pipe -fstack-protector-strong -fno-strict-aliasing   -DNDEBUG -std=gnu++11 -fPIC -msse2 -MD -MT CMakeFiles/ReflexLib.dir/lib/input.cpp.o -MF CMakeFiles/ReflexLib.dir/lib/input.cpp.o.d -o CMakeFiles/ReflexLib.dir/lib/input.cpp.o -c /usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/lib/input.cpp
[ 10% 7/38] /usr/bin/c++ -DHAVE_SSE2 -DReflexLib_EXPORTS -I/usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/include -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -O2 -pipe -fstack-protector-strong -fno-strict-aliasing   -DNDEBUG -std=gnu++11 -fPIC -msse2 -MD -MT CMakeFiles/ReflexLib.dir/lib/posix.cpp.o -MF CMakeFiles/ReflexLib.dir/lib/posix.cpp.o.d -o CMakeFiles/ReflexLib.dir/lib/posix.cpp.o -c /usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/lib/posix.cpp
[ 13% 8/38] /usr/bin/c++ -DHAVE_SSE2 -DReflexLib_EXPORTS -I/usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/include -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -O2 -pipe -fstack-protector-strong -fno-strict-aliasing   -DNDEBUG -std=gnu++11 -fPIC -msse2 -MD -MT CMakeFiles/ReflexLib.dir/lib/simd_avx2.cpp.o -MF CMakeFiles/ReflexLib.dir/lib/simd_avx2.cpp.o.d -o CMakeFiles/ReflexLib.dir/lib/simd_avx2.cpp.o -c /usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/lib/simd_avx2.cpp
[ 15% 9/38] /usr/bin/c++ -DHAVE_SSE2 -DReflexLib_EXPORTS -I/usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/include -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -O2 -pipe -fstack-protector-strong -fno-strict-aliasing   -DNDEBUG -std=gnu++11 -fPIC -msse2 -MD -MT CMakeFiles/ReflexLib.dir/lib/simd_avx512bw.cpp.o -MF CMakeFiles/ReflexLib.dir/lib/simd_avx512bw.cpp.o.d -o CMakeFiles/ReflexLib.dir/lib/simd_avx512bw.cpp.o -c /usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/lib/simd_avx512bw.cpp
[ 18% 10/38] /usr/bin/c++ -DHAVE_SSE2 -DReflexLib_EXPORTS -I/usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/include -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -O2 -pipe -fstack-protector-strong -fno-strict-aliasing   -DNDEBUG -std=gnu++11 -fPIC -msse2 -MD -MT CMakeFiles/ReflexLib.dir/lib/convert.cpp.o -MF CMakeFiles/ReflexLib.dir/lib/convert.cpp.o.d -o CMakeFiles/ReflexLib.dir/lib/convert.cpp.o -c /usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/lib/convert.cpp
[ 21% 11/38] /usr/bin/c++ -DHAVE_SSE2 -DReflexLib_EXPORTS -I/usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/include -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -O2 -pipe -fstack-protector-strong -fno-strict-aliasing   -DNDEBUG -std=gnu++11 -fPIC -msse2 -MD -MT CMakeFiles/ReflexLib.dir/lib/unicode.cpp.o -MF CMakeFiles/ReflexLib.dir/lib/unicode.cpp.o.d -o CMakeFiles/ReflexLib.dir/lib/unicode.cpp.o -c /usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/lib/unicode.cpp
[ 23% 12/38] /usr/bin/c++ -DHAVE_SSE2 -DReflexLib_EXPORTS -I/usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/include -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -O2 -pipe -fstack-protector-strong -fno-strict-aliasing   -DNDEBUG -std=gnu++11 -fPIC -msse2 -MD -MT CMakeFiles/ReflexLib.dir/lib/matcher.cpp.o -MF CMakeFiles/ReflexLib.dir/lib/matcher.cpp.o.d -o CMakeFiles/ReflexLib.dir/lib/matcher.cpp.o -c /usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/lib/matcher.cpp
[ 26% 13/38] /usr/bin/c++ -DHAVE_SSE2 -DReflexLib_EXPORTS -I/usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/include -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -O2 -pipe -fstack-protector-strong -fno-strict-aliasing   -DNDEBUG -std=gnu++11 -fPIC -msse2 -MD -MT CMakeFiles/ReflexLib.dir/lib/utf8.cpp.o -MF CMakeFiles/ReflexLib.dir/lib/utf8.cpp.o.d -o CMakeFiles/ReflexLib.dir/lib/utf8.cpp.o -c /usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/lib/utf8.cpp
[ 28% 14/38] /usr/bin/c++ -DHAVE_SSE2 -DReflexLib_EXPORTS -I/usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/include -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -O2 -pipe -fstack-protector-strong -fno-strict-aliasing   -DNDEBUG -std=gnu++11 -fPIC -msse2 -MD -MT CMakeFiles/ReflexLib.dir/unicode/block_scripts.cpp.o -MF CMakeFiles/ReflexLib.dir/unicode/block_scripts.cpp.o.d -o CMakeFiles/ReflexLib.dir/unicode/block_scripts.cpp.o -c /usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/unicode/block_scripts.cpp
[ 31% 15/38] /usr/bin/c++ -DHAVE_SSE2 -DReflexLib_EXPORTS -I/usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/include -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -O2 -pipe -fstack-protector-strong -fno-strict-aliasing   -DNDEBUG -std=gnu++11 -fPIC -msse2 -MD -MT CMakeFiles/ReflexLib.dir/lib/matcher_avx2.cpp.o -MF CMakeFiles/ReflexLib.dir/lib/matcher_avx2.cpp.o.d -o CMakeFiles/ReflexLib.dir/lib/matcher_avx2.cpp.o -c /usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/lib/matcher_avx2.cpp
[ 34% 16/38] /usr/bin/c++ -DHAVE_SSE2 -DReflexLib_EXPORTS -I/usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/include -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -O2 -pipe -fstack-protector-strong -fno-strict-aliasing   -DNDEBUG -std=gnu++11 -fPIC -msse2 -MD -MT CMakeFiles/ReflexLib.dir/lib/matcher_avx512bw.cpp.o -MF CMakeFiles/ReflexLib.dir/lib/matcher_avx512bw.cpp.o.d -o CMakeFiles/ReflexLib.dir/lib/matcher_avx512bw.cpp.o -c /usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/lib/matcher_avx512bw.cpp
[ 36% 17/38] /usr/bin/c++ -DHAVE_SSE2 -DReflexLib_EXPORTS -I/usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/include -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -O2 -pipe -fstack-protector-strong -fno-strict-aliasing   -DNDEBUG -std=gnu++11 -fPIC -msse2 -MD -MT CMakeFiles/ReflexLib.dir/unicode/language_scripts.cpp.o -MF CMakeFiles/ReflexLib.dir/unicode/language_scripts.cpp.o.d -o CMakeFiles/ReflexLib.dir/unicode/language_scripts.cpp.o -c /usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/unicode/language_scripts.cpp
[ 39% 18/38] /usr/bin/c++ -DHAVE_SSE2 -DReflexLib_EXPORTS -I/usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/include -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -O2 -pipe -fstack-protector-strong -fno-strict-aliasing   -DNDEBUG -std=gnu++11 -fPIC -msse2 -MD -MT CMakeFiles/ReflexLib.dir/unicode/letter_scripts.cpp.o -MF CMakeFiles/ReflexLib.dir/unicode/letter_scripts.cpp.o.d -o CMakeFiles/ReflexLib.dir/unicode/letter_scripts.cpp.o -c /usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/unicode/letter_scripts.cpp
[ 42% 19/38] /usr/bin/c++ -DHAVE_SSE2 -I/usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/include -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -O2 -pipe -fstack-protector-strong -fno-strict-aliasing   -DNDEBUG -std=gnu++11 -msse2 -MD -MT CMakeFiles/ReflexLibStatic.dir/lib/debug.cpp.o -MF CMakeFiles/ReflexLibStatic.dir/lib/debug.cpp.o.d -o CMakeFiles/ReflexLibStatic.dir/lib/debug.cpp.o -c /usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/lib/debug.cpp
[ 44% 20/38] /usr/bin/c++ -DHAVE_SSE2 -DReflexLib_EXPORTS -I/usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/include -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -O2 -pipe -fstack-protector-strong -fno-strict-aliasing   -DNDEBUG -std=gnu++11 -fPIC -msse2 -MD -MT CMakeFiles/ReflexLib.dir/unicode/composer.cpp.o -MF CMakeFiles/ReflexLib.dir/unicode/composer.cpp.o.d -o CMakeFiles/ReflexLib.dir/unicode/composer.cpp.o -c /usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/unicode/composer.cpp
[ 47% 21/38] /usr/bin/c++ -DHAVE_SSE2 -I/usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/include -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -O2 -pipe -fstack-protector-strong -fno-strict-aliasing   -DNDEBUG -std=gnu++11 -msse2 -MD -MT CMakeFiles/ReflexLibStatic.dir/lib/error.cpp.o -MF CMakeFiles/ReflexLibStatic.dir/lib/error.c[ 44% 20/38] /usr/bin/c++ -DHAVE_SSE2 -DReflexLib_EXPORTS -I/usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/include -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -O2 -pipe -fstack-protector-strong -fno-strict-aliasing   -DNDEBUG -std=gnu++11 -fPIC -msse2 -MD -MT CMakeFiles/ReflexLib.dir/unicode/composer.cpp.o -MF CMakeFiles/ReflexLib.dir/unicode/composer.cpp.o.d -o CMakeFiles/ReflexLib.dir/unicode/composer.cpp.o -c /usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/unicode/composer.cpp
[ 47% 21/38] /usr/bin/c++ -DHAVE_SSE2 -I/usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/include -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -O2 -pipe -fstack-protector-strong -fno-strict-aliasing   -DNDEBUG -std=gnu++11 -msse2 -MD -MT CMakeFiles/ReflexLibStatic.dir/lib/error.cpp.o -MF CMakeFiles/ReflexLibStatic.dir/lib/error.cpp.o.d -o CMakeFiles/ReflexLibStatic.dir/lib/error.cpp.o -c /usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/lib/error.cpp
[ 50% 22/38] /usr/bin/c++ -DHAVE_SSE2 -DReflexLib_EXPORTS -I/usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/include -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -O2 -pipe -fstack-protector-strong -fno-strict-aliasing   -DNDEBUG -std=gnu++11 -fPIC -msse2 -MD -MT CMakeFiles/ReflexLib.dir/lib/pattern.cpp.o -MF CMakeFiles/ReflexLib.dir/lib/pattern.cpp.o.d -o CMakeFiles/ReflexLib.dir/lib/pattern.cpp.o -c /usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/lib/pattern.cpp
[ 52% 23/38] : && /usr/bin/c++ -fPIC -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -O2 -pipe -fstack-protector-strong -fno-strict-aliasing   -DNDEBUG  -fstack-protector-strong -shared -Wl,-soname,libreflex.so -o libreflex.so CMakeFiles/ReflexLib.dir/lib/convert.cpp.o CMakeFiles/ReflexLib.dir/lib/debug.cpp.o CMakeFiles/ReflexLib.dir/lib/error.cpp.o CMakeFiles/ReflexLib.dir/lib/input.cpp.o CMakeFiles/ReflexLib.dir/lib/matcher.cpp.o CMakeFiles/ReflexLib.dir/lib/pattern.cpp.o CMakeFiles/ReflexLib.dir/lib/posix.cpp.o CMakeFiles/ReflexLib.dir/lib/simd_avx2.cpp.o CMakeFiles/ReflexLib.dir/lib/simd_avx512bw.cpp.o CMakeFile[ 57% 25/38] /usr/bin/c++ -DHAVE_SSE2 -I/usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/include -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -O2 -pipe -fstack-protector-strong -fno-strict-aliasing   -DNDEBUG -std=gnu++11 -msse2 -MD -MT CMakeFiles/ReflexLibStatic.dir/lib/convert.cpp.o -MF CMakeFiles/ReflexLibStatic.dir/lib/convert.cpp.o.d -o CMakeFiles/ReflexLibStatic.dir/lib/convert.cpp.o -c /usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/lib/convert.cpp
[ 60% 26/38] /usr/bin/c++ -DHAVE_SSE2 -I/usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/include -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -O2 -pipe -fstack-protector-strong -fno-strict-aliasing   -DNDEBUG -std=gnu++11 -msse2 -MD -MT CMakeFiles/ReflexLibStatic.dir/lib/simd_avx2.cpp.o -MF CMakeFiles/ReflexLibStatic.dir/lib/simd_avx2.cpp.o.d -o CMakeFiles/ReflexLibStatic.dir/lib/simd_avx2.cpp.o -c /usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/lib/simd_avx2.cpp
[ 63% 27/38] /usr/bin/c++ -DHAVE_SSE2 -I/usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/include -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -O2 -pipe -fstack-protector-strong -fno-strict-aliasing   -DNDEBUG -std=gnu++11 -msse2 -MD -MT CMakeFiles/ReflexLibStatic.dir/lib/posix.cpp.o -MF CMakeFiles/ReflexLibStatic.dir/lib/posix.cpp.o.d -o CMakeFiles/ReflexLibStatic.dir/lib/posix.cpp.o -c /usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/lib/posix.cpp
[ 65% 28/38] /usr/bin/c++ -DHAVE_SSE2 -I/usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/include -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -O2 -pipe -fstack-protector-strong -fno-strict-aliasing   -DNDEBUG -std=gnu++11 -msse2 -MD -MT CMakeFiles/ReflexLibStatic.dir/lib/simd_avx512bw.cpp.o -MF CMakeFiles/ReflexLibStatic.dir/lib/simd_avx512bw.cpp.o.d -o CMakeFiles/ReflexLibStatic.dir/lib/simd_avx512bw.cpp.o -c /usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/lib/simd_avx512bw.cpp
[ 68% 29/38] /usr/bin/c++ -DHAVE_SSE2 -I/usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/include -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -O2 -pipe -fstack-protector-strong -fno-strict-aliasing   -DNDEBUG -std=gnu++11 -msse2 -MD -MT CMakeFiles/ReflexLibStatic.dir/lib/utf8.cpp.o -MF CMakeFiles/ReflexLibStatic.dir/lib/utf8.cpp.o.d -o CMakeFiles/ReflexLibStatic.dir/lib/utf8.cpp.o -c /usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/lib/utf8.cpp
[ 71% 30/38] /usr/bin/c++ -DHAVE_SSE2 -I/usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/include -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -O2 -pipe -fstack-protector-strong -fno-strict-aliasing   -DNDEBUG -std=gnu++11 -msse2 -MD -MT CMakeFiles/ReflexLibStatic.dir/lib/unicode.cpp.o -MF CMakeFiles/ReflexLibStatic.dir/lib/unicode.cpp.o.d -o CMakeFiles/ReflexLibStatic.dir/lib/unicode.cpp.o -c /usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/lib/unicode.cpp
[ 73% 31/38] /usr/bin/c++ -DHAVE_SSE2 -I/usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/include -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -O2 -pipe -fstack-protector-strong -fno-strict-aliasing   -DNDEBUG -std=gnu++11 -msse2 -MD -MT CMakeFiles/ReflexLibStatic.dir/lib/matcher.cpp.o -MF CMakeFiles/ReflexLibStatic.dir/lib/matcher.cpp.o.d -o CMakeFiles/ReflexLibStatic.dir/lib/matcher.cpp.o -c /usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/lib/matcher.cpp
[ 76% 32/38] /usr/bin/c++ -DHAVE_SSE2 -I/usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/include -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -O2 -pipe -fstack-protector-strong -fno-strict-aliasing   -DNDEBUG -std=gnu++11 -msse2 -MD -MT CMakeFiles/ReflexLibStatic.dir/lib/matcher_avx2.cpp.o -MF CMakeFiles/ReflexLibStatic.dir/lib/matcher_avx2.cpp.o.d -o CMakeFiles/ReflexLibStatic.dir/lib/matcher_avx2.cpp.o -c /usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/lib/matcher_avx2.cpp
[ 78% 33/38] /usr/bin/c++ -DHAVE_SSE2 -I/usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/include -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -O2 -pipe -fstack-protector-strong -fno-strict-aliasing   -DNDEBUG -std=gnu++11 -msse2 -MD -MT CMakeFiles/ReflexLibStatic.dir/lib/matcher_avx512bw.cpp.o -MF CMakeFiles/ReflexLibStatic.dir/lib/matcher_avx512bw.cpp.o.d -o CMakeFiles/ReflexLibStatic.dir/lib/matcher_avx512bw.cpp.o -c /usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/lib/matcher_avx512bw.cpp
[ 81% 34/38] /usr/bin/c++ -DHAVE_SSE2 -I/usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/include -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -O2 -pipe -fstack-protector-strong -fno-strict-aliasing   -DNDEBUG -std=gnu++11 -msse2 -MD -MT CMakeFiles/ReflexLibStatic.dir/unicode/block_scripts.cpp.o -MF CMakeFiles/ReflexLibStatic.dir/unicode/block_scripts.cpp.o.d -o CMakeFiles/ReflexLibStatic.dir/unicode/block_scripts.cpp.o -c /usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/unicode/block_scripts.cpp
[ 84% 35/38] /usr/bin/c++ -DHAVE_SSE2 -I/usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/include -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -O2 -pipe -fstack-protector-strong -fno-strict-aliasing   -DNDEBUG -std=gnu++11 -msse2 -MD -MT CMakeFiles/ReflexLibStatic.dir/unicode/letter_scripts.cpp.o -MF CMakeFiles/ReflexLibStatic.dir/unicode/letter_scripts.cpp.o.d -o CMakeFiles/ReflexLibStatic.dir/unicode/letter_scripts.cpp.o -c /usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/unicode/letter_scripts.cpp
[ 86% 36/38] /usr/bin/c++ -DHAVE_SSE2 -I/usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/include -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -O2 -pipe -fstack-protector-strong -fno-strict-aliasing   -DNDEBUG -std=gnu++11 -msse2 -MD -MT CMakeFiles/ReflexLibStatic.dir/unicode/language_scripts.cpp.o -MF CMakeFiles/ReflexLibStatic.dir/unicode/language_scripts.cpp.o.d -o CMakeFiles/ReflexLibStatic.dir/unicode/language_scripts.cpp.o -c /usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/unicode/language_scripts.cpp
[ 89% 36/38] /usr/bin/c++ -DHAVE_SSE2 -I/usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/include -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -O2 -pipe -fstack-protector-strong -fno-strict-aliasing   -DNDEBUG -std=gnu++11 -msse2 -MD -MT CMakeFiles/ReflexLibStatic.dir/unicode/composer.cpp.o -MF CMakeFiles/ReflexLibStatic.dir/unicode/composer.cpp.o.d -o CMakeFiles/ReflexLibStatic.dir/unicode/composer.cpp.o -c /usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/unicode/composer.cpp
[ 92% 36/38] /usr/bin/c++ -DHAVE_SSE2 -I/usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/include -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -O2 -pipe -fstack-protector-strong -fno-strict-aliasing   -DNDEBUG -std=gnu++11 -msse2 -MD -MT CMakeFiles/ReflexLibStatic.dir/lib/pattern.cpp.o -MF CMakeFiles/ReflexLibStatic.dir/lib/pattern.cpp.o.d -o CMakeFiles/ReflexLibStatic.dir/lib/pattern.cpp.o -c /usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/lib/pattern.cpp
[ 94% 37/38] : && /usr/local/bin/cmake -E rm -f libreflex.a && /usr/bin/llvm-ar qc libreflex.a  CMakeFiles/ReflexLibStatic.dir/lib/convert.cpp.o CMakeFiles/ReflexLibStatic.dir/lib/debug.cpp.o CMakeFiles/ReflexLibStatic.dir/lib/error.cpp.o CMakeFiles/ReflexLibStatic.dir/lib/input.cpp.o CMakeFiles/ReflexLibStatic.dir/lib/matcher.cpp.o CMakeFiles/ReflexLibStatic.dir/lib/pattern.cpp.o CMakeFiles/ReflexLibStatic.dir/lib/posix.cpp.o CMakeFiles/ReflexLibStatic.dir/lib/simd_avx2.cpp.o CMakeFiles/ReflexLibStatic.dir/lib/simd_avx512bw.cpp.o CMakeFiles/ReflexLibStatic.dir/lib/unicode.cpp.o CMakeFiles/ReflexLibStatic.dir/lib/utf8.cpp.o CMakeFiles/ReflexLibStatic.dir/lib/matcher_avx2.cpp.o CMakeFiles/ReflexLibStatic.dir/lib/matcher_avx512bw.cpp.o CMakeFiles/ReflexLibStatic.dir/unicode/block_scripts.cpp.o CMakeFiles/ReflexLibStatic.dir/unicode/language_scripts.cpp.o CMakeFiles/ReflexLibStatic.dir/unicode/letter_scripts.cpp.o CMakeFiles/ReflexLibStatic.dir/unicode/composer.cpp.o && /usr/bin/llvm-ranlib libreflex.a && :
[ 97% 37/38] /usr/bin/c++ -DHAVE_SSE2 -I/usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/include -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -O2 -pipe -fstack-protector-strong -fno-strict-aliasing   -DNDEBUG -std=gnu++11 -msse2 -MD -MT CMakeFiles/Reflex.dir/src/reflex.cpp.o -MF CMakeFiles/Reflex.dir/src/reflex.cpp.o.d -o CMakeFiles/Reflex.dir/src/reflex.cpp.o -c /usr/home/gahr/freebsd/ports/textproc/re-flex/work/RE-flex-4.3.0/src/reflex.cpp
[100% 38/38] : && /usr/bin/c++ -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -O2 -pipe -fstack-protector-strong -fno-strict-aliasing   -DNDEBUG -fstack-protector-strong CMakeFiles/Reflex.dir/src/reflex.cpp.o -o reflex  libreflex.a && :
FAILED: reflex 
: && /usr/bin/c++ -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -O2 -pipe -fstack-protector-strong -fno-strict-aliasing   -DNDEBUG -fstack-protector-strong CMakeFiles/Reflex.dir/src/reflex.cpp.o -o reflex  libreflex.a && :
ld: error: undefined symbol: reflex::HW
>>> referenced by pattern.cpp
>>>               pattern.cpp.o:(reflex::Pattern::init(char const*, unsigned char const*)) in archive libreflex.a
>>> referenced by pattern.cpp
>>>               pattern.cpp.o:(reflex::Pattern::init(char const*, unsigned char const*)) in archive libreflex.a
c++: error: linker command failed with exit code 1 (use -v to see invocation)
genivia-inc commented 5 months ago

Please make sure to do a clean build: execute ./clean.sh first and then ./configure ; make (or alternatively ./build.sh which uses a different set of makefiles)

I've seen this problem when there are still some old object files lingering about.

genivia-inc commented 5 months ago

The HW and CPU detection related variables and functions were moved from input.cpp to simd.cpp where this belongs.

genivia-inc commented 5 months ago

Ah, I see you're using cmake. The CMakeLists.txt should be updated to include simd.cpp:

set(lib_sources
  lib/convert.cpp
  lib/debug.cpp
  lib/error.cpp
  lib/input.cpp
  lib/matcher.cpp
  lib/pattern.cpp
  lib/posix.cpp
  lib/simd.cpp   <-- add
gahr commented 5 months ago

Thanks for the quick turnaround. I could have noticed it :)