You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Unexpected behaviour (obvious or verified by project member)
How can the issue be reproduced?
I’ve encountered an issue while building FreeRADIUS using Clang. My CFLAGS includes the option --config /usr/lib/rpm/generic-hardened-clang.cfg. The build repeatedly fails due to missing .d and .lo files, with errors like the following:
mkdir -p build/objs/src/lib/
echo CC src/lib/cbuff.c
CC src/lib/cbuff.c
build/make/jlibtool --silent --mode=compile clang -o build/objs/src/lib/cbuff.lo -c -MD -I. -Isrc -include src/freeradius-devel/autoconf.h -include src/freeradius-devel/build.h -include src/freeradius-devel/features.h -include src/freeradius-devel/radpaths.h -fno-strict-aliasing -Wno-date-time -O2 -g -grecord-gcc-switches -pipe -fstack-protector-strong -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS --config /usr/lib/rpm/generic-hardened-clang.cfg -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fsigned-char -Wall -std=c99 -D_GNU_SOURCE -Wno-unknown-warning-option -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -DOPENSSL_NO_KRB5 -DNDEBUG -D_LIBRADIUS -I/home/abuild/rpmbuild/BUILD/freeradius-server-3.2.3/src src/lib/cbuff.c
mkdir -p build/make/src/src/lib/
mkdir -p build/objs/src/lib/
sed -e 's/#.*//' -e 's,^/home/abuild/rpmbuild/BUILD/freeradius-server-3.2.3,${top_srcdir},' -e 's, /home/abuild/rpmbuild/BUILD/freeradius-server-3.2.3, ${top_srcdir},' -e 's,^build,${BUILD_DIR},' -e 's, build/make/include/[^ :]*,,' -e 's, build, ${BUILD_DIR},' -e 's, /[^: ]*,,g' -e 's,^ *[^:]* *: *$,,' -e '/: </ d' -e 's/\.o: /.${OBJ_EXT}: /' -e '/^ *\\$/ d' < build/objs/src/lib/cbuff.d | sed -e '$!N; /^\(.*\)\n\1$/!P; D' > build/make/src/src/lib/cbuff.mk
sed -e 's/#.*//' -e 's, build/make/include/[^ :]*,,' -e 's, /[^: ]*,,g' -e 's,^ *[^:]* *: *$,,' -e '/: </ d' -e 's/^[^:]*: *//' -e 's/ *\\$//' -e 's/$/ :/' < build/objs/src/lib/cbuff.d | sed -e '$!N; /^\(.*\)\n\1$/!P; D' >> build/make/src/src/lib/cbuff.mk
/bin/sh: line 1: build/objs/src/lib/cbuff.d: No such file or directory
/bin/sh: line 1: build/objs/src/lib/cbuff.d: No such file or directory
...
(Note: Although I'm building freeradius-server-3.2.3, it seems the issue persists in the latest version.)
The --config flag is a recognized Clang command line argument (Clang 17.0.1 Command Line Reference) that specifies a configuration file. After some investigation, I found that removing --config /usr/lib/rpm/generic-hardened-clang.cfg from my CFLAGS allows the build to succeed.
The root cause seems to be a conflict with the --config option in script/jlibtool.c, which is used to show all configuration variables. Jlibtool mistakenly interprets my Clang --config <arg> and does not perform the intended compilation tasks. If I rename --config in jlibtool.c to something else, such as --print-config, would resolve the issue.
Log output from the FreeRADIUS daemon
Not applicable
Relevant log output from client utilities
No response
Backtrace from LLDB or GDB
No response
The text was updated successfully, but these errors were encountered:
What type of defect/bug is this?
Unexpected behaviour (obvious or verified by project member)
How can the issue be reproduced?
I’ve encountered an issue while building FreeRADIUS using Clang. My
CFLAGS
includes the option--config /usr/lib/rpm/generic-hardened-clang.cfg
. The build repeatedly fails due to missing.d
and.lo
files, with errors like the following:(Note: Although I'm building freeradius-server-3.2.3, it seems the issue persists in the latest version.)
The
--config
flag is a recognized Clang command line argument (Clang 17.0.1 Command Line Reference) that specifies a configuration file. After some investigation, I found that removing--config /usr/lib/rpm/generic-hardened-clang.cfg
from myCFLAGS
allows the build to succeed.The root cause seems to be a conflict with the
--config
option inscript/jlibtool.c
, which is used to show all configuration variables. Jlibtool mistakenly interprets my Clang--config <arg>
and does not perform the intended compilation tasks. If I rename--config
injlibtool.c
to something else, such as--print-config
, would resolve the issue.Log output from the FreeRADIUS daemon
Relevant log output from client utilities
No response
Backtrace from LLDB or GDB
No response
The text was updated successfully, but these errors were encountered: