freeradius-server
freeradius-server copied to clipboard
4.0.x - need runtime and compile time (using pcre_config and pcre2_config) checks for PCRE[2] JIT
I get linking error when I try to compile on ppc64le arch:
build/lib/local/.libs/libfreeradius-util.so: undefined reference to `pcre_jit_exec'
collect2: error: ld returned 1 exit status
make: *** [scripts/boiler.mk:663: build/bin/local/radict] Error 1
make: *** Waiting for unfinished jobs....
build/lib/.libs/libfreeradius-util.so: undefined reference to `pcre_jit_exec'
collect2: error: ld returned 1 exit status
make: *** [scripts/boiler.mk:664: build/bin/radict] Error 1
error: Bad exit status from /var/tmp/rpm-tmp.LzAq3m (%build)
libpcre by default comes without JIT on ppc64le arch, it is not implemented. Last time I compiled for ppc64le, I hacked something in regex.c or regex.h, changed some PCRE define or undef something, can't remember. Now I just compiled it with --without-pcre, option, but libpcre without JIT I think still performs better than internal functions.
Not sure how to check better if libpcre is built with JIT.
Can you verify https://github.com/FreeRADIUS/freeradius-server/commit/0d2ed195d7972bbb1f09c8d875930862c638fdae fixes this?
Just tried, still same error:
LINK build/lib/libfreeradius-tls.la
LINK build/lib/libfreeradius-soh.la
LINK build/lib/libfreeradius-redis.la
LINK build/lib/libfreeradius-json.la
LINK build/lib/libfreeradius-radius.la
LINK build/bin/radict
LINK build/lib/libfreeradius-tacacs.la
LINK build/lib/libfreeradius-dhcpv6.la
LINK build/lib/libfreeradius-vqp.la
build/lib/local/.libs/libfreeradius-util.so: undefined reference to `pcre_jit_exec'
collect2: error: ld returned 1 exit status
make: *** [scripts/boiler.mk:663: build/bin/local/radict] Error 1
make: *** Waiting for unfinished jobs....
build/lib/.libs/libfreeradius-util.so: undefined reference to `pcre_jit_exec'
collect2: error: ld returned 1 exit status
make: *** [scripts/boiler.mk:664: build/bin/radict] Error 1
error: Bad exit status from /var/tmp/rpm-tmp.XFO7mk (%build)
Ugh, doesn't look like PCRE_CONFIG_JIT is defined depending on whether it's actually available or not, so we'll need to do a full configure time check, building a test program and calling pcre_config