USBGuard / usbguard

USBGuard is a software framework for implementing USB device authorization policies (what kind of USB devices are authorized) as well as method of use policies (how a USB device may interact with the system)

Home Page:https://usbguard.github.io/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

configure: error: Link test failed both with and without -lstdc++fs; something is broken

commandline-be opened this issue · comments

commented

Compilation fails on RHEL9 derivative (Rocky Linux 9.1)

git clone -b usbguard-1.1.2 https://github.com/USBGuard/usbguard.git
cd usbguard
dnf install dh-autoreconf libqb-devel audit-libs-devel libseccomp-devel libcap-ng-devel protobuf-devel
sh autogen.sh
./configure --enable-seccomp --enable-asan --enable-audit --enable-libcapng --enable-static --enable-tsan --enable-systemd --with-dbus --with-polkit --with-ldap --with-crypto-library=openssl --disable-umockdev --with-bundled-catch

....
configure: Using bundled Catch library
checking whether we need to link to -lstdc++fs for PEGTL explicitly... ERROR
configure: error: Link test failed both with and without -lstdc++fs; something is broken, please check file config.log for details.


unclear why, assuming it could be because libstdc++ = 11.x

prior thread here https://lore.kernel.org/all/20220820124154.GJ2167049@scaer/T/ where a possible patch is shown to exist

Hi @commandline-be which compiler and compiler version are you using? If this is with GCC prior than version 8 then it would probably be unsupported. If it's either Clang or GCC >=8 please share the full ./configure output and file config.log. Thank you!

commented

hey, here it is

gcc --version
gcc (GCC) 11.3.1 20220421 (Red Hat 11.3.1-2)
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

@commandline-be could you share the full ./configure output and resulting file config.log? Thank you!

commented

Sorry, misread that line. Here i share the output with the ./configure invokation, i tried multiple ./configure lines including just running './configure --with-bundled-catch --enable-full-test-suite' only. The fail is at the same point for each attempt.

---- from the build directory or from above the fail situation is unchanged ---

../configure --enable-seccomp --enable-asan --enable-audit --enable-libcapng --enable-static --disable-shared --enable-tsan --enable-systemd --with-dbus --with-polkit --with-ldap  --with-crypto-library=openssl --disable-umockdev --with-bundled-catch --without-bundled-pegtl --enable-full-test-suite 
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking how to create a pax tar archive... gnutar
checking whether make supports nested variables... (cached) yes
checking whether make supports the include directive... yes (GNU style)
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... gcc3
checking whether C compiler accepts -Wno-implicit-fallthrough... yes
checking for g++... no
checking for c++... no
checking for gpp... no
checking for aCC... no
checking for CC... no
checking for cxx... no
checking for cc++... no
checking for cl.exe... no
checking for FCC... no
checking for KCC... no
checking for RCC... no
checking for xlC_r... no
checking for xlC... no
checking whether we are using the GNU C++ compiler... no
checking whether g++ accepts -g... no
checking dependency style of g++... none
checking for gcc option to accept ISO C99... none needed
checking whether make sets $(MAKE)... (cached) yes
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking how to print strings... printf
checking for a sed that does not truncate output... /usr/bin/sed
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for fgrep... /usr/bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for a working dd... /usr/bin/dd
checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1
checking for mt... no
checking if : is a manifest tool... no
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... no
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... no
checking whether to build static libraries... yes
checking for __atomic_add_fetch_8 in -latomic... no
checking for basename function... POSIX
checking for strerror_r function... XSI
checking whether gcc is Clang... no
checking whether pthreads work with -pthread... yes
checking for joinable pthread attribute... PTHREAD_CREATE_JOINABLE
checking whether more special flags are required for pthreads... no
checking for PTHREAD_PRIO_INHERIT... yes
checking for NETLINK_KOBJECT_UEVENT definition... yes
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for qb... yes
checking for sodium... yes
checking for libcrypto... yes
checking for libgcrypt-config... no
checking for LIBGCRYPT - version >= 1.5.0... no
checking for audit... yes
checking whether audit_encode_nv_string is declared... yes
checking for seccomp... yes
checking for libcapng... yes
checking for protobuf... yes
checking for protoc... protoc
configure: Using bundled Catch library
checking whether we need to link to -lstdc++fs for PEGTL explicitly... ERROR
configure: error: Link test failed both with and without -lstdc++fs; something is broken, please check file config.log for details.

----- config.log starts here -----


This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

It was created by usbguard configure 1.1.1, which was
generated by GNU Autoconf 2.69.  Invocation command line was

  $ ../configure --enable-seccomp --enable-asan --enable-audit --enable-libcapng --enable-static --disable-shared --enable-tsan --enable-systemd --with-dbus --with-polkit --with-ldap --with-crypto-library=openssl --disable-umockdev --with-bundled-catch --without-bundled-pegtl --enable-full-test-suite

## --------- ##
## Platform. ##
## --------- ##

hostname = mobile
uname -m = x86_64
uname -r = 5.14.0-162.6.1.el9_1.0.1.x86_64
uname -s = Linux
uname -v = #1 SMP PREEMPT_DYNAMIC Mon Nov 28 18:44:09 UTC 2022

/usr/bin/uname -p = x86_64
/bin/uname -X     = unknown

/bin/arch              = x86_64
/usr/bin/arch -k       = unknown
/usr/convex/getsysinfo = unknown
/usr/bin/hostinfo      = unknown
/bin/machine           = unknown
/usr/bin/oslevel       = unknown
/bin/universe          = unknown

PATH: /root/.local/bin
PATH: /root/bin
PATH: /usr/share/Modules/bin
PATH: /usr/local/sbin
PATH: /usr/local/bin
PATH: /usr/sbin
PATH: /usr/bin


## ----------- ##
## Core tests. ##
## ----------- ##

configure:3028: checking for a BSD-compatible install
configure:3096: result: /usr/bin/install -c
configure:3107: checking whether build environment is sane
configure:3162: result: yes
configure:3313: checking for a thread-safe mkdir -p
configure:3352: result: /usr/bin/mkdir -p
configure:3359: checking for gawk
configure:3375: found /usr/bin/gawk
configure:3386: result: gawk
configure:3397: checking whether make sets $(MAKE)
configure:3419: result: yes
configure:3448: checking whether make supports nested variables
configure:3465: result: yes
configure:3544: checking how to create a pax tar archive
configure:3555: tar --version
tar (GNU tar) 1.34
Copyright (C) 2021 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by John Gilmore and Jay Fenlason.
configure:3558: $? = 0
configure:3598: tardir=conftest.dir && eval tar --format=posix -chf - "$tardir" >conftest.tar
configure:3601: $? = 0
configure:3605: tar -xf - <conftest.tar
configure:3608: $? = 0
configure:3610: cat conftest.dir/file
GrepMe
configure:3613: $? = 0
configure:3626: result: gnutar
configure:3689: checking whether make supports nested variables
configure:3706: result: yes
configure:3758: checking whether make supports the include directive
configure:3773: make -f confmf.GNU && cat confinc.out
this is the am__doit target
configure:3776: $? = 0
configure:3795: result: yes (GNU style)
configure:3865: checking for gcc
configure:3881: found /usr/bin/gcc
configure:3892: result: gcc
configure:4121: checking for C compiler version
configure:4130: gcc --version >&5
gcc (GCC) 11.3.1 20220421 (Red Hat 11.3.1-2)
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

configure:4141: $? = 0
configure:4130: gcc -v >&5
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/11/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-redhat-linux
Configured with: ../configure --enable-bootstrap --enable-host-pie --enable-host-bind-now --enable-languages=c,c++,fortran,lto --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://bugs.rockylinux.org/ --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --with-linker-hash-style=gnu --enable-plugin --enable-initfini-array --without-isl --enable-offload-targets=nvptx-none --without-cuda-driver --enable-gnu-indirect-function --enable-cet --with-tune=generic --with-arch_64=x86-64-v2 --with-arch_32=x86-64 --build=x86_64-redhat-linux --with-build-config=bootstrap-lto --enable-link-serialization=1
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 11.3.1 20220421 (Red Hat 11.3.1-2) (GCC) 
... rest of stderr output deleted ...
configure:4141: $? = 0
configure:4130: gcc -V >&5
gcc: error: unrecognized command-line option '-V'
gcc: fatal error: no input files
compilation terminated.
configure:4141: $? = 1
configure:4130: gcc -qversion >&5
gcc: error: unrecognized command-line option '-qversion'; did you mean '--version'?
gcc: fatal error: no input files
compilation terminated.
configure:4141: $? = 1
configure:4161: checking whether the C compiler works
configure:4183: gcc    conftest.c  >&5
configure:4187: $? = 0
configure:4235: result: yes
configure:4238: checking for C compiler default output file name
configure:4240: result: a.out
configure:4246: checking for suffix of executables
configure:4253: gcc -o conftest    conftest.c  >&5
configure:4257: $? = 0
configure:4279: result: 
configure:4301: checking whether we are cross compiling
configure:4309: gcc -o conftest    conftest.c  >&5
configure:4313: $? = 0
configure:4320: ./conftest
configure:4324: $? = 0
configure:4339: result: no
configure:4344: checking for suffix of object files
configure:4366: gcc -c   conftest.c >&5
configure:4370: $? = 0
configure:4391: result: o
configure:4395: checking whether we are using the GNU C compiler
configure:4414: gcc -c   conftest.c >&5
configure:4414: $? = 0
configure:4423: result: yes
configure:4432: checking whether gcc accepts -g
configure:4452: gcc -c -g  conftest.c >&5
configure:4452: $? = 0
configure:4493: result: yes
configure:4510: checking for gcc option to accept ISO C89
configure:4573: gcc  -c -g -O2  conftest.c >&5
configure:4573: $? = 0
configure:4586: result: none needed
configure:4611: checking whether gcc understands -c and -o together
configure:4633: gcc -c conftest.c -o conftest2.o
configure:4636: $? = 0
configure:4633: gcc -c conftest.c -o conftest2.o
configure:4636: $? = 0
configure:4648: result: yes
configure:4667: checking dependency style of gcc
configure:4778: result: gcc3
configure:4794: checking whether C compiler accepts -Wno-implicit-fallthrough
configure:4813: gcc -c -g -O2  -Wno-implicit-fallthrough  conftest.c >&5
configure:4813: $? = 0
configure:4821: result: yes
configure:4977: checking for g++
configure:5007: result: no
configure:4977: checking for c++
configure:5007: result: no
configure:4977: checking for gpp
configure:5007: result: no
configure:4977: checking for aCC
configure:5007: result: no
configure:4977: checking for CC
configure:5007: result: no
configure:4977: checking for cxx
configure:5007: result: no
configure:4977: checking for cc++
configure:5007: result: no
configure:4977: checking for cl.exe
configure:5007: result: no
configure:4977: checking for FCC
configure:5007: result: no
configure:4977: checking for KCC
configure:5007: result: no
configure:4977: checking for RCC
configure:5007: result: no
configure:4977: checking for xlC_r
configure:5007: result: no
configure:4977: checking for xlC
configure:5007: result: no
configure:5031: checking for C++ compiler version
configure:5040: g++ --version >&5
../configure: line 5042: g++: command not found
configure:5051: $? = 127
configure:5040: g++ -v >&5
../configure: line 5042: g++: command not found
configure:5051: $? = 127
configure:5040: g++ -V >&5
../configure: line 5042: g++: command not found
configure:5051: $? = 127
configure:5040: g++ -qversion >&5
../configure: line 5042: g++: command not found
configure:5051: $? = 127
configure:5055: checking whether we are using the GNU C++ compiler
configure:5074: g++ -c -std=c++17  -DHAVE_BUILD_CONFIG_H  conftest.cpp >&5
../configure: line 1776: g++: command not found
configure:5074: $? = 127
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "usbguard"
| #define PACKAGE_TARNAME "usbguard"
| #define PACKAGE_VERSION "1.1.1"
| #define PACKAGE_STRING "usbguard 1.1.1"
| #define PACKAGE_BUGREPORT "usbguard@usbguard.org"
| #define PACKAGE_URL ""
| #define PACKAGE "usbguard"
| #define VERSION "1.1.1"
| /* end confdefs.h.  */
| 
| int
| main ()
| {
| #ifndef __GNUC__
|        choke me
| #endif
| 
|   ;
|   return 0;
| }
configure:5083: result: no
configure:5092: checking whether g++ accepts -g
configure:5112: g++ -c -g -DHAVE_BUILD_CONFIG_H  conftest.cpp >&5
../configure: line 1776: g++: command not found
configure:5112: $? = 127
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "usbguard"
| #define PACKAGE_TARNAME "usbguard"
| #define PACKAGE_VERSION "1.1.1"
| #define PACKAGE_STRING "usbguard 1.1.1"
| #define PACKAGE_BUGREPORT "usbguard@usbguard.org"
| #define PACKAGE_URL ""
| #define PACKAGE "usbguard"
| #define VERSION "1.1.1"
| /* end confdefs.h.  */
| 
| int
| main ()
| {
| 
|   ;
|   return 0;
| }
configure:5127: g++ -c  -DHAVE_BUILD_CONFIG_H  conftest.cpp >&5
../configure: line 1776: g++: command not found
configure:5127: $? = 127
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "usbguard"
| #define PACKAGE_TARNAME "usbguard"
| #define PACKAGE_VERSION "1.1.1"
| #define PACKAGE_STRING "usbguard 1.1.1"
| #define PACKAGE_BUGREPORT "usbguard@usbguard.org"
| #define PACKAGE_URL ""
| #define PACKAGE "usbguard"
| #define VERSION "1.1.1"
| /* end confdefs.h.  */
| 
| int
| main ()
| {
| 
|   ;
|   return 0;
| }
configure:5143: g++ -c -g -DHAVE_BUILD_CONFIG_H  conftest.cpp >&5
../configure: line 1776: g++: command not found
configure:5143: $? = 127
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "usbguard"
| #define PACKAGE_TARNAME "usbguard"
| #define PACKAGE_VERSION "1.1.1"
| #define PACKAGE_STRING "usbguard 1.1.1"
| #define PACKAGE_BUGREPORT "usbguard@usbguard.org"
| #define PACKAGE_URL ""
| #define PACKAGE "usbguard"
| #define VERSION "1.1.1"
| /* end confdefs.h.  */
| 
| int
| main ()
| {
| 
|   ;
|   return 0;
| }
configure:5153: result: no
configure:5178: checking dependency style of g++
configure:5289: result: none
configure:5304: checking for gcc option to accept ISO C99
configure:5453: gcc  -c -std=c99  -DHAVE_BUILD_CONFIG_H  conftest.c >&5
configure:5453: $? = 0
configure:5466: result: none needed
configure:5482: checking whether make sets $(MAKE)
configure:5504: result: yes
configure:5542: checking build system type
configure:5556: result: x86_64-pc-linux-gnu
configure:5576: checking host system type
configure:5589: result: x86_64-pc-linux-gnu
configure:5630: checking how to print strings
configure:5657: result: printf
configure:5678: checking for a sed that does not truncate output
configure:5742: result: /usr/bin/sed
configure:5760: checking for grep that handles long lines and -e
configure:5818: result: /usr/bin/grep
configure:5823: checking for egrep
configure:5885: result: /usr/bin/grep -E
configure:5890: checking for fgrep
configure:5952: result: /usr/bin/grep -F
configure:5987: checking for ld used by gcc
configure:6054: result: /usr/bin/ld
configure:6061: checking if the linker (/usr/bin/ld) is GNU ld
configure:6076: result: yes
configure:6088: checking for BSD- or MS-compatible name lister (nm)
configure:6142: result: /usr/bin/nm -B
configure:6272: checking the name lister (/usr/bin/nm -B) interface
configure:6279: gcc -c -std=c99  -DHAVE_BUILD_CONFIG_H  conftest.c >&5
configure:6282: /usr/bin/nm -B "conftest.o"
configure:6285: output
0000000000000000 B some_variable
configure:6292: result: BSD nm
configure:6295: checking whether ln -s works
configure:6299: result: yes
configure:6307: checking the maximum length of command line arguments
configure:6438: result: 1572864
configure:6486: checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format
configure:6526: result: func_convert_file_noop
configure:6533: checking how to convert x86_64-pc-linux-gnu file names to toolchain format
configure:6553: result: func_convert_file_noop
configure:6560: checking for /usr/bin/ld option to reload object files
configure:6567: result: -r
configure:6641: checking for objdump
configure:6657: found /usr/bin/objdump
configure:6668: result: objdump
configure:6700: checking how to recognize dependent libraries
configure:6900: result: pass_all
configure:6985: checking for dlltool
configure:7015: result: no
configure:7045: checking how to associate runtime and link libraries
configure:7072: result: printf %s\n
configure:7132: checking for ar
configure:7148: found /usr/bin/ar
configure:7159: result: ar
configure:7196: checking for archiver @FILE support
configure:7213: gcc -c -std=c99  -DHAVE_BUILD_CONFIG_H  conftest.c >&5
configure:7213: $? = 0
configure:7216: ar cru libconftest.a @conftest.lst >&5
configure:7219: $? = 0
configure:7224: ar cru libconftest.a @conftest.lst >&5
ar: conftest.o: No such file or directory
configure:7227: $? = 1
configure:7239: result: @
configure:7297: checking for strip
configure:7313: found /usr/bin/strip
configure:7324: result: strip
configure:7396: checking for ranlib
configure:7412: found /usr/bin/ranlib
configure:7423: result: ranlib
configure:7525: checking command to parse /usr/bin/nm -B output from gcc object
configure:7678: gcc -c -std=c99  -DHAVE_BUILD_CONFIG_H  conftest.c >&5
configure:7681: $? = 0
configure:7685: /usr/bin/nm -B conftest.o \| sed -n -e 's/^.*[ ]\([ABCDGIRSTW][ABCDGIRSTW]*\)[ ][ ]*\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2 \2/p' | sed '/ __gnu_lto/d' \> conftest.nm
configure:7688: $? = 0
configure:7754: gcc -o conftest -std=c99  -DHAVE_BUILD_CONFIG_H   conftest.c conftstm.o >&5
configure:7757: $? = 0
configure:7795: result: ok
configure:7842: checking for sysroot
configure:7872: result: no
configure:7879: checking for a working dd
configure:7917: result: /usr/bin/dd
configure:7921: checking how to truncate binary pipes
configure:7936: result: /usr/bin/dd bs=4096 count=1
configure:8072: gcc -c -std=c99  -DHAVE_BUILD_CONFIG_H  conftest.c >&5
configure:8075: $? = 0
configure:8265: checking for mt
configure:8295: result: no
configure:8315: checking if : is a manifest tool
configure:8321: : '-?'
configure:8329: result: no
configure:9006: checking how to run the C preprocessor
configure:9037: gcc -E -DHAVE_BUILD_CONFIG_H  conftest.c
configure:9037: $? = 0
configure:9051: gcc -E -DHAVE_BUILD_CONFIG_H  conftest.c
conftest.c:11:10: fatal error: ac_nonexistent.h: No such file or directory
   11 | #include <ac_nonexistent.h>
      |          ^~~~~~~~~~~~~~~~~~
compilation terminated.
configure:9051: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "usbguard"
| #define PACKAGE_TARNAME "usbguard"
| #define PACKAGE_VERSION "1.1.1"
| #define PACKAGE_STRING "usbguard 1.1.1"
| #define PACKAGE_BUGREPORT "usbguard@usbguard.org"
| #define PACKAGE_URL ""
| #define PACKAGE "usbguard"
| #define VERSION "1.1.1"
| /* end confdefs.h.  */
| #include <ac_nonexistent.h>
configure:9076: result: gcc -E
configure:9096: gcc -E -DHAVE_BUILD_CONFIG_H  conftest.c
configure:9096: $? = 0
configure:9110: gcc -E -DHAVE_BUILD_CONFIG_H  conftest.c
conftest.c:11:10: fatal error: ac_nonexistent.h: No such file or directory
   11 | #include <ac_nonexistent.h>
      |          ^~~~~~~~~~~~~~~~~~
compilation terminated.
configure:9110: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "usbguard"
| #define PACKAGE_TARNAME "usbguard"
| #define PACKAGE_VERSION "1.1.1"
| #define PACKAGE_STRING "usbguard 1.1.1"
| #define PACKAGE_BUGREPORT "usbguard@usbguard.org"
| #define PACKAGE_URL ""
| #define PACKAGE "usbguard"
| #define VERSION "1.1.1"
| /* end confdefs.h.  */
| #include <ac_nonexistent.h>
configure:9139: checking for ANSI C header files
configure:9159: gcc -c -std=c99  -DHAVE_BUILD_CONFIG_H  conftest.c >&5
configure:9159: $? = 0
configure:9232: gcc -o conftest -std=c99  -DHAVE_BUILD_CONFIG_H   conftest.c  >&5
configure:9232: $? = 0
configure:9232: ./conftest
configure:9232: $? = 0
configure:9243: result: yes
configure:9256: checking for sys/types.h
configure:9256: gcc -c -std=c99  -DHAVE_BUILD_CONFIG_H  conftest.c >&5
configure:9256: $? = 0
configure:9256: result: yes
configure:9256: checking for sys/stat.h
configure:9256: gcc -c -std=c99  -DHAVE_BUILD_CONFIG_H  conftest.c >&5
configure:9256: $? = 0
configure:9256: result: yes
configure:9256: checking for stdlib.h
configure:9256: gcc -c -std=c99  -DHAVE_BUILD_CONFIG_H  conftest.c >&5
configure:9256: $? = 0
configure:9256: result: yes
configure:9256: checking for string.h
configure:9256: gcc -c -std=c99  -DHAVE_BUILD_CONFIG_H  conftest.c >&5
configure:9256: $? = 0
configure:9256: result: yes
configure:9256: checking for memory.h
configure:9256: gcc -c -std=c99  -DHAVE_BUILD_CONFIG_H  conftest.c >&5
configure:9256: $? = 0
configure:9256: result: yes
configure:9256: checking for strings.h
configure:9256: gcc -c -std=c99  -DHAVE_BUILD_CONFIG_H  conftest.c >&5
configure:9256: $? = 0
configure:9256: result: yes
configure:9256: checking for inttypes.h
configure:9256: gcc -c -std=c99  -DHAVE_BUILD_CONFIG_H  conftest.c >&5
configure:9256: $? = 0
configure:9256: result: yes
configure:9256: checking for stdint.h
configure:9256: gcc -c -std=c99  -DHAVE_BUILD_CONFIG_H  conftest.c >&5
configure:9256: $? = 0
configure:9256: result: yes
configure:9256: checking for unistd.h
configure:9256: gcc -c -std=c99  -DHAVE_BUILD_CONFIG_H  conftest.c >&5
configure:9256: $? = 0
configure:9256: result: yes
configure:9270: checking for dlfcn.h
configure:9270: gcc -c -std=c99  -DHAVE_BUILD_CONFIG_H  conftest.c >&5
configure:9270: $? = 0
configure:9270: result: yes
configure:9537: checking for objdir
configure:9552: result: .libs
configure:9816: checking if gcc supports -fno-rtti -fno-exceptions
configure:9834: gcc -c -std=c99  -DHAVE_BUILD_CONFIG_H  -fno-rtti -fno-exceptions conftest.c >&5
cc1: warning: command-line option '-fno-rtti' is valid for C++/D/ObjC++ but not for C
configure:9838: $? = 0
configure:9851: result: no
configure:10209: checking for gcc option to produce PIC
configure:10216: result: -fPIC -DPIC
configure:10224: checking if gcc PIC flag -fPIC -DPIC works
configure:10242: gcc -c -std=c99  -DHAVE_BUILD_CONFIG_H  -fPIC -DPIC -DPIC conftest.c >&5
configure:10246: $? = 0
configure:10259: result: yes
configure:10288: checking if gcc static flag -static works
configure:10316: result: no
configure:10331: checking if gcc supports -c -o file.o
configure:10352: gcc -c -std=c99  -DHAVE_BUILD_CONFIG_H  -o out/conftest2.o conftest.c >&5
configure:10356: $? = 0
configure:10378: result: yes
configure:10386: checking if gcc supports -c -o file.o
configure:10433: result: yes
configure:10466: checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries
configure:11725: result: yes
configure:11965: checking dynamic linker characteristics
configure:12546: gcc -o conftest -std=c99  -DHAVE_BUILD_CONFIG_H   -Wl,-rpath -Wl,/foo conftest.c  >&5
configure:12546: $? = 0
configure:12786: result: GNU/Linux ld.so
configure:12908: checking how to hardcode library paths into programs
configure:12933: result: immediate
configure:13481: checking whether stripping libraries is possible
configure:13486: result: yes
configure:13521: checking if libtool supports shared libraries
configure:13523: result: yes
configure:13526: checking whether to build shared libraries
configure:13551: result: no
configure:13554: checking whether to build static libraries
configure:13558: result: yes
configure:16906: checking for __atomic_add_fetch_8 in -latomic
configure:16931: gcc -o conftest -std=c99  -DHAVE_BUILD_CONFIG_H   conftest.c -latomic   >&5
conftest.c:30:6: warning: conflicting types for built-in function '__atomic_add_fetch_8'; expected 'long unsigned int(volatile void *, long unsigned int,  int)' [-Wbuiltin-declaration-mismatch]
   30 | char __atomic_add_fetch_8 ();
      |      ^~~~~~~~~~~~~~~~~~~~
/usr/bin/ld: cannot find /usr/lib64/libatomic.so.1.2.0
collect2: error: ld returned 1 exit status
configure:16931: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "usbguard"
| #define PACKAGE_TARNAME "usbguard"
| #define PACKAGE_VERSION "1.1.1"
| #define PACKAGE_STRING "usbguard 1.1.1"
| #define PACKAGE_BUGREPORT "usbguard@usbguard.org"
| #define PACKAGE_URL ""
| #define PACKAGE "usbguard"
| #define VERSION "1.1.1"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| /* end confdefs.h.  */
| 
| /* Override any GCC internal prototype to avoid an error.
|    Use char because int might match the return type of a GCC
|    builtin and then its argument prototype would still apply.  */
| #ifdef __cplusplus
| extern "C"
| #endif
| char __atomic_add_fetch_8 ();
| int
| main ()
| {
| return __atomic_add_fetch_8 ();
|   ;
|   return 0;
| }
configure:16940: result: no
configure:16974: checking for basename function
configure:16993: g++ -c -std=c++17  -DHAVE_BUILD_CONFIG_H  conftest.cpp >&5
../configure: line 1776: g++: command not found
configure:16993: $? = 127
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "usbguard"
| #define PACKAGE_TARNAME "usbguard"
| #define PACKAGE_VERSION "1.1.1"
| #define PACKAGE_STRING "usbguard 1.1.1"
| #define PACKAGE_BUGREPORT "usbguard@usbguard.org"
| #define PACKAGE_URL ""
| #define PACKAGE "usbguard"
| #define VERSION "1.1.1"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| /* end confdefs.h.  */
| 
|     #define _GNU_SOURCE
|     #include <cstring>
|     int main(int argc, char ** argv) {
|         ::basename(*argv);
|         return 0;
|     }
| 
configure:17002: result: POSIX
configure:17022: checking for strerror_r function
configure:17042: g++ -c -std=c++17  -DHAVE_BUILD_CONFIG_H  conftest.cpp >&5
../configure: line 1776: g++: command not found
configure:17042: $? = 127
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "usbguard"
| #define PACKAGE_TARNAME "usbguard"
| #define PACKAGE_VERSION "1.1.1"
| #define PACKAGE_STRING "usbguard 1.1.1"
| #define PACKAGE_BUGREPORT "usbguard@usbguard.org"
| #define PACKAGE_URL ""
| #define PACKAGE "usbguard"
| #define VERSION "1.1.1"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| /* end confdefs.h.  */
| 
|     #undef _POSIX_C_SOURCE
|     #define _GNU_SOURCE
|     #include <cstring>
|     int main(int argc, char ** argv) {
|         char * res = ::strerror_r(0, 0, 0);
|         return 0;
|     }
| 
configure:17051: result: XSI
configure:17256: checking whether gcc is Clang
configure:17281: result: no
configure:17404: checking whether pthreads work with -pthread
configure:17498: gcc -o conftest -std=c99  -pthread -DHAVE_BUILD_CONFIG_H   conftest.c   >&5
configure:17498: $? = 0
configure:17507: result: yes
configure:17526: checking for joinable pthread attribute
configure:17544: gcc -o conftest -std=c99  -pthread -DHAVE_BUILD_CONFIG_H   conftest.c   >&5
configure:17544: $? = 0
configure:17552: result: PTHREAD_CREATE_JOINABLE
configure:17566: checking whether more special flags are required for pthreads
configure:17579: result: no
configure:17587: checking for PTHREAD_PRIO_INHERIT
configure:17603: gcc -o conftest -std=c99  -pthread -DHAVE_BUILD_CONFIG_H   conftest.c   >&5
configure:17603: $? = 0
configure:17612: result: yes
configure:17714: checking for NETLINK_KOBJECT_UEVENT definition
configure:17726: gcc -c -std=c99  -DHAVE_BUILD_CONFIG_H  conftest.c >&5
configure:17726: $? = 0
configure:17733: result: yes
configure:17800: checking for pkg-config
configure:17818: found /usr/bin/pkg-config
configure:17830: result: /usr/bin/pkg-config
configure:17855: checking pkg-config is at least version 0.9.0
configure:17858: result: yes
configure:17868: checking for qb
configure:17875: $PKG_CONFIG --exists --print-errors "libqb >= 0.16.0"
configure:17878: $? = 0
configure:17892: $PKG_CONFIG --exists --print-errors "libqb >= 0.16.0"
configure:17895: $? = 0
configure:17941: result: yes
configure:17954: checking for sodium
configure:17961: $PKG_CONFIG --exists --print-errors "libsodium >= 0.4.5"
configure:17964: $? = 0
configure:17978: $PKG_CONFIG --exists --print-errors "libsodium >= 0.4.5"
configure:17981: $? = 0
configure:18021: result: yes
configure:18035: checking for libcrypto
configure:18042: $PKG_CONFIG --exists --print-errors "libcrypto >= 1.0.0"
configure:18045: $? = 0
configure:18059: $PKG_CONFIG --exists --print-errors "libcrypto >= 1.0.0"
configure:18062: $? = 0
configure:18102: result: yes
configure:18175: checking for libgcrypt-config
configure:18208: result: no
configure:18236: checking for LIBGCRYPT - version >= 1.5.0
configure:18273: result: no
configure:18414: checking for audit
configure:18421: $PKG_CONFIG --exists --print-errors "audit >= 2.7.7"
configure:18424: $? = 0
configure:18438: $PKG_CONFIG --exists --print-errors "audit >= 2.7.7"
configure:18441: $? = 0
configure:18485: result: yes
configure:18490: checking whether audit_encode_nv_string is declared
configure:18490: gcc -c -std=c99  -DHAVE_BUILD_CONFIG_H  conftest.c >&5
configure:18490: $? = 0
configure:18490: result: yes
configure:18519: checking for seccomp
configure:18526: $PKG_CONFIG --exists --print-errors "libseccomp >= 2.0.0"
configure:18529: $? = 0
configure:18543: $PKG_CONFIG --exists --print-errors "libseccomp >= 2.0.0"
configure:18546: $? = 0
configure:18590: result: yes
configure:18612: checking for libcapng
configure:18619: $PKG_CONFIG --exists --print-errors "libcap-ng >= 0.7.0"
configure:18622: $? = 0
configure:18636: $PKG_CONFIG --exists --print-errors "libcap-ng >= 0.7.0"
configure:18639: $? = 0
configure:18683: result: yes
configure:18790: checking for protobuf
configure:18797: $PKG_CONFIG --exists --print-errors "protobuf >= 2.5.0"
configure:18800: $? = 0
configure:18814: $PKG_CONFIG --exists --print-errors "protobuf >= 2.5.0"
configure:18817: $? = 0
configure:18857: result: yes
configure:18866: checking for protoc
configure:18882: found /usr/bin/protoc
configure:18893: result: protoc
configure:18922: Using bundled Catch library
configure:18971: checking whether we need to link to -lstdc++fs for PEGTL explicitly
configure:18977: g++ -o conftest -std=c++17  -DHAVE_BUILD_CONFIG_H   conftest.cpp  >&5
../configure: line 2074: g++: command not found
configure:18977: $? = 127
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "usbguard"
| #define PACKAGE_TARNAME "usbguard"
| #define PACKAGE_VERSION "1.1.1"
| #define PACKAGE_STRING "usbguard 1.1.1"
| #define PACKAGE_BUGREPORT "usbguard@usbguard.org"
| #define PACKAGE_URL ""
| #define PACKAGE "usbguard"
| #define VERSION "1.1.1"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define HAVE_PTHREAD_PRIO_INHERIT 1
| #define HAVE_PTHREAD 1
| #define HAVE_UEVENT 1
| #define HAVE_LIBQB 1
| #define HAVE_LIBSODIUM 1
| #define HAVE_LIBCRYPTO 1
| #define USBGUARD_USE_OPENSSL 1
| #define HAVE_LINUX_AUDIT 1
| #define HAVE_DECL_AUDIT_ENCODE_NV_STRING 1
| #define HAVE_SECCOMP 1
| #define HAVE_LIBCAPNG 1
| /* end confdefs.h.  */
| //
| // Copyright (c) 2022 Sebastian Pipping <sebastian@pipping.org>
| //
| // This program is free software; you can redistribute it and/or modify
| // it under the terms of the GNU General Public License as published by
| // the Free Software Foundation; either version 2 of the License, or
| // (at your option) any later version.
| //
| // This program is distributed in the hope that it will be useful,
| // but WITHOUT ANY WARRANTY; without even the implied warranty of
| // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
| // GNU General Public License for more details.
| //
| // You should have received a copy of the GNU General Public License
| // along with this program.  If not, see <http://www.gnu.org/licenses/>.
| 
| #include <filesystem>
| 
| int main()
| {
|   return std::filesystem::temp_directory_path().is_absolute();
| }
| 
| /* vim: set ts=2 sw=2 et */
configure:18992: g++ -o conftest -std=c++17  -DHAVE_BUILD_CONFIG_H   conftest.cpp  -lstdc++fs >&5
../configure: line 2074: g++: command not found
configure:18992: $? = 127
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "usbguard"
| #define PACKAGE_TARNAME "usbguard"
| #define PACKAGE_VERSION "1.1.1"
| #define PACKAGE_STRING "usbguard 1.1.1"
| #define PACKAGE_BUGREPORT "usbguard@usbguard.org"
| #define PACKAGE_URL ""
| #define PACKAGE "usbguard"
| #define VERSION "1.1.1"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define HAVE_PTHREAD_PRIO_INHERIT 1
| #define HAVE_PTHREAD 1
| #define HAVE_UEVENT 1
| #define HAVE_LIBQB 1
| #define HAVE_LIBSODIUM 1
| #define HAVE_LIBCRYPTO 1
| #define USBGUARD_USE_OPENSSL 1
| #define HAVE_LINUX_AUDIT 1
| #define HAVE_DECL_AUDIT_ENCODE_NV_STRING 1
| #define HAVE_SECCOMP 1
| #define HAVE_LIBCAPNG 1
| /* end confdefs.h.  */
| //
| // Copyright (c) 2022 Sebastian Pipping <sebastian@pipping.org>
| //
| // This program is free software; you can redistribute it and/or modify
| // it under the terms of the GNU General Public License as published by
| // the Free Software Foundation; either version 2 of the License, or
| // (at your option) any later version.
| //
| // This program is distributed in the hope that it will be useful,
| // but WITHOUT ANY WARRANTY; without even the implied warranty of
| // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
| // GNU General Public License for more details.
| //
| // You should have received a copy of the GNU General Public License
| // along with this program.  If not, see <http://www.gnu.org/licenses/>.
| 
| #include <filesystem>
| 
| int main()
| {
|   return std::filesystem::temp_directory_path().is_absolute();
| }
| 
| /* vim: set ts=2 sw=2 et */
configure:18999: result: ERROR
configure:19001: error: Link test failed both with and without -lstdc++fs; something is broken, please check file config.log for details.

## ---------------- ##
## Cache variables. ##
## ---------------- ##

ac_cv_build=x86_64-pc-linux-gnu
ac_cv_c_compiler_gnu=yes
ac_cv_cxx_compiler_gnu=no
ac_cv_env_BASH_COMPLETION_CFLAGS_set=
ac_cv_env_BASH_COMPLETION_CFLAGS_value=
ac_cv_env_BASH_COMPLETION_LIBS_set=
ac_cv_env_BASH_COMPLETION_LIBS_value=
ac_cv_env_CCC_set=
ac_cv_env_CCC_value=
ac_cv_env_CC_set=
ac_cv_env_CC_value=
ac_cv_env_CFLAGS_set=
ac_cv_env_CFLAGS_value=
ac_cv_env_CPPFLAGS_set=
ac_cv_env_CPPFLAGS_value=
ac_cv_env_CPP_set=
ac_cv_env_CPP_value=
ac_cv_env_CXXCPP_set=
ac_cv_env_CXXCPP_value=
ac_cv_env_CXXFLAGS_set=
ac_cv_env_CXXFLAGS_value=
ac_cv_env_CXX_set=
ac_cv_env_CXX_value=
ac_cv_env_LDFLAGS_set=
ac_cv_env_LDFLAGS_value=
ac_cv_env_LIBS_set=
ac_cv_env_LIBS_value=
ac_cv_env_LT_SYS_LIBRARY_PATH_set=
ac_cv_env_LT_SYS_LIBRARY_PATH_value=
ac_cv_env_PKG_CONFIG_LIBDIR_set=
ac_cv_env_PKG_CONFIG_LIBDIR_value=
ac_cv_env_PKG_CONFIG_PATH_set=
ac_cv_env_PKG_CONFIG_PATH_value=
ac_cv_env_PKG_CONFIG_set=
ac_cv_env_PKG_CONFIG_value=
ac_cv_env_audit_CFLAGS_set=
ac_cv_env_audit_CFLAGS_value=
ac_cv_env_audit_LIBS_set=
ac_cv_env_audit_LIBS_value=
ac_cv_env_build_alias_set=
ac_cv_env_build_alias_value=
ac_cv_env_dbus_CFLAGS_set=
ac_cv_env_dbus_CFLAGS_value=
ac_cv_env_dbus_LIBS_set=
ac_cv_env_dbus_LIBS_value=
ac_cv_env_host_alias_set=
ac_cv_env_host_alias_value=
ac_cv_env_libcapng_CFLAGS_set=
ac_cv_env_libcapng_CFLAGS_value=
ac_cv_env_libcapng_LIBS_set=
ac_cv_env_libcapng_LIBS_value=
ac_cv_env_libcrypto_CFLAGS_set=
ac_cv_env_libcrypto_CFLAGS_value=
ac_cv_env_libcrypto_LIBS_set=
ac_cv_env_libcrypto_LIBS_value=
ac_cv_env_polkit_CFLAGS_set=
ac_cv_env_polkit_CFLAGS_value=
ac_cv_env_polkit_LIBS_set=
ac_cv_env_polkit_LIBS_value=
ac_cv_env_protobuf_CFLAGS_set=
ac_cv_env_protobuf_CFLAGS_value=
ac_cv_env_protobuf_LIBS_set=
ac_cv_env_protobuf_LIBS_value=
ac_cv_env_qb_CFLAGS_set=
ac_cv_env_qb_CFLAGS_value=
ac_cv_env_qb_LIBS_set=
ac_cv_env_qb_LIBS_value=
ac_cv_env_seccomp_CFLAGS_set=
ac_cv_env_seccomp_CFLAGS_value=
ac_cv_env_seccomp_LIBS_set=
ac_cv_env_seccomp_LIBS_value=
ac_cv_env_sodium_CFLAGS_set=
ac_cv_env_sodium_CFLAGS_value=
ac_cv_env_sodium_LIBS_set=
ac_cv_env_sodium_LIBS_value=
ac_cv_env_target_alias_set=
ac_cv_env_target_alias_value=
ac_cv_env_umockdev_CFLAGS_set=
ac_cv_env_umockdev_CFLAGS_value=
ac_cv_env_umockdev_LIBS_set=
ac_cv_env_umockdev_LIBS_value=
ac_cv_have_decl_audit_encode_nv_string=yes
ac_cv_header_dlfcn_h=yes
ac_cv_header_inttypes_h=yes
ac_cv_header_memory_h=yes
ac_cv_header_stdc=yes
ac_cv_header_stdint_h=yes
ac_cv_header_stdlib_h=yes
ac_cv_header_string_h=yes
ac_cv_header_strings_h=yes
ac_cv_header_sys_stat_h=yes
ac_cv_header_sys_types_h=yes
ac_cv_header_unistd_h=yes
ac_cv_host=x86_64-pc-linux-gnu
ac_cv_lib_atomic___atomic_add_fetch_8=no
ac_cv_objext=o
ac_cv_path_EGREP='/usr/bin/grep -E'
ac_cv_path_FGREP='/usr/bin/grep -F'
ac_cv_path_GREP=/usr/bin/grep
ac_cv_path_SED=/usr/bin/sed
ac_cv_path_ac_pt_PKG_CONFIG=/usr/bin/pkg-config
ac_cv_path_install='/usr/bin/install -c'
ac_cv_path_lt_DD=/usr/bin/dd
ac_cv_path_mkdir=/usr/bin/mkdir
ac_cv_prog_AWK=gawk
ac_cv_prog_CPP='gcc -E'
ac_cv_prog_PROTOC=protoc
ac_cv_prog_ac_ct_AR=ar
ac_cv_prog_ac_ct_CC=gcc
ac_cv_prog_ac_ct_OBJDUMP=objdump
ac_cv_prog_ac_ct_RANLIB=ranlib
ac_cv_prog_ac_ct_STRIP=strip
ac_cv_prog_cc_c89=
ac_cv_prog_cc_c99=
ac_cv_prog_cc_g=yes
ac_cv_prog_cxx_g=no
ac_cv_prog_make_make_set=yes
am_cv_CC_dependencies_compiler_type=gcc3
am_cv_CXX_dependencies_compiler_type=none
am_cv_make_support_nested_variables=yes
am_cv_prog_cc_c_o=yes
am_cv_prog_tar_pax=gnutar
ax_cv_PTHREAD_CLANG=no
ax_cv_PTHREAD_JOINABLE_ATTR=PTHREAD_CREATE_JOINABLE
ax_cv_PTHREAD_PRIO_INHERIT=yes
ax_cv_PTHREAD_SPECIAL_FLAGS=no
ax_cv_check_cflags___Wno_implicit_fallthrough=yes
lt_cv_ar_at_file=@
lt_cv_deplibs_check_method=pass_all
lt_cv_file_magic_cmd='$MAGIC_CMD'
lt_cv_file_magic_test_file=
lt_cv_ld_reload_flag=-r
lt_cv_nm_interface='BSD nm'
lt_cv_objdir=.libs
lt_cv_path_LD=/usr/bin/ld
lt_cv_path_NM='/usr/bin/nm -B'
lt_cv_path_mainfest_tool=no
lt_cv_prog_compiler_c_o=yes
lt_cv_prog_compiler_pic='-fPIC -DPIC'
lt_cv_prog_compiler_pic_works=yes
lt_cv_prog_compiler_rtti_exceptions=no
lt_cv_prog_compiler_static_works=no
lt_cv_prog_gnu_ld=yes
lt_cv_sharedlib_from_linklib_cmd='printf %s\n'
lt_cv_shlibpath_overrides_runpath=no
lt_cv_sys_global_symbol_pipe='sed -n -e '\''s/^.*[	 ]\([ABCDGIRSTW][ABCDGIRSTW]*\)[	 ][	 ]*\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2 \2/p'\'' | sed '\''/ __gnu_lto/d'\'''
lt_cv_sys_global_symbol_to_c_name_address='sed -n -e '\''s/^: \(.*\) .*$/  {"\1", (void *) 0},/p'\'' -e '\''s/^[ABCDGIRSTW][ABCDGIRSTW]* .* \(.*\)$/  {"\1", (void *) \&\1},/p'\'''
lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='sed -n -e '\''s/^: \(.*\) .*$/  {"\1", (void *) 0},/p'\'' -e '\''s/^[ABCDGIRSTW][ABCDGIRSTW]* .* \(lib.*\)$/  {"\1", (void *) \&\1},/p'\'' -e '\''s/^[ABCDGIRSTW][ABCDGIRSTW]* .* \(.*\)$/  {"lib\1", (void *) \&\1},/p'\'''
lt_cv_sys_global_symbol_to_cdecl='sed -n -e '\''s/^T .* \(.*\)$/extern int \1();/p'\'' -e '\''s/^[ABCDGIRSTW][ABCDGIRSTW]* .* \(.*\)$/extern char \1;/p'\'''
lt_cv_sys_global_symbol_to_import=
lt_cv_sys_max_cmd_len=1572864
lt_cv_to_host_file_cmd=func_convert_file_noop
lt_cv_to_tool_file_cmd=func_convert_file_noop
lt_cv_truncate_bin='/usr/bin/dd bs=4096 count=1'
pkg_cv_audit_CFLAGS=
pkg_cv_audit_LIBS='-laudit '
pkg_cv_libcapng_CFLAGS=
pkg_cv_libcapng_LIBS='-lcap-ng '
pkg_cv_libcrypto_CFLAGS=
pkg_cv_libcrypto_LIBS='-lcrypto '
pkg_cv_protobuf_CFLAGS=
pkg_cv_protobuf_LIBS='-lprotobuf -lpthread '
pkg_cv_qb_CFLAGS='-pthread '
pkg_cv_qb_LIBS='-lqb '
pkg_cv_seccomp_CFLAGS=
pkg_cv_seccomp_LIBS='-lseccomp '
pkg_cv_sodium_CFLAGS=
pkg_cv_sodium_LIBS='-lsodium '

## ----------------- ##
## Output variables. ##
## ----------------- ##

A2X=''
ACLOCAL='${SHELL} /usr/src/usbsrc/de/usbguard/config/missing aclocal-1.16'
ALLOCA=''
AMDEPBACKSLASH='\'
AMDEP_FALSE='#'
AMDEP_TRUE=''
AMTAR='$${TAR-tar}'
AM_BACKSLASH='\'
AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
AM_DEFAULT_VERBOSITY='0'
AM_V='$(V)'
ANALYZE_CONFIGURE_ARGS=''
AR='ar'
ASPELL=''
AUTOCONF='${SHELL} /usr/src/usbsrc/de/usbguard/config/missing autoconf'
AUTOHEADER='${SHELL} /usr/src/usbsrc/de/usbguard/config/missing autoheader'
AUTOMAKE='${SHELL} /usr/src/usbsrc/de/usbguard/config/missing automake-1.16'
AWK='gawk'
BASH_COMPLETION_CFLAGS=''
BASH_COMPLETION_DIR=''
BASH_COMPLETION_ENABLED_FALSE=''
BASH_COMPLETION_ENABLED_TRUE=''
BASH_COMPLETION_LIBS=''
CC='gcc'
CCDEPMODE='depmode=gcc3'
CFLAGS='-std=c99 '
CPP='gcc -E'
CPPFLAGS='-DHAVE_BUILD_CONFIG_H '
CXX='g++'
CXXCPP=''
CXXDEPMODE='depmode=none'
CXXFLAGS='-std=c++17 '
CYGPATH_W='echo'
DBUS_BUSCONFIG_DIR=''
DBUS_ENABLED_FALSE=''
DBUS_ENABLED_TRUE=''
DBUS_SERVICES_DIR=''
DEFS=''
DEPDIR='.deps'
DLLTOOL='false'
DOCS_ENABLED_FALSE=''
DOCS_ENABLED_TRUE=''
DSYMUTIL=''
DUMPBIN=''
ECHO_C=''
ECHO_N='-n'
ECHO_T=''
EGREP='/usr/bin/grep -E'
ENABLE_BASH_COMPLETION_FALSE=''
ENABLE_BASH_COMPLETION_TRUE=''
EXEEXT=''
FGREP='/usr/bin/grep -F'
FULL_TEST_SUITE_ENABLED_FALSE=''
FULL_TEST_SUITE_ENABLED_TRUE=''
GDBUS_CODEGEN=''
GREP='/usr/bin/grep'
INSTALL_DATA='${INSTALL} -m 644'
INSTALL_PROGRAM='${INSTALL}'
INSTALL_SCRIPT='${INSTALL}'
INSTALL_STRIP_PROGRAM='$(install_sh) -c -s'
LD='/usr/bin/ld -m elf_x86_64'
LDFLAGS=''
LIBGCRYPT_CFLAGS=''
LIBGCRYPT_CONFIG='no'
LIBGCRYPT_LIBS=''
LIBOBJS=''
LIBS=' -lstdc++fs'
LIBTOOL='$(SHELL) $(top_builddir)/libtool'
LIPO=''
LN_S='ln -s'
LTLIBOBJS=''
LT_AGE='0'
LT_CURRENT='1'
LT_REVISION='1'
LT_SYS_LIBRARY_PATH=''
MAKEINFO='${SHELL} /usr/src/usbsrc/de/usbguard/config/missing makeinfo'
MANIFEST_TOOL=':'
MKDIR_P='/usr/bin/mkdir -p'
NM='/usr/bin/nm -B'
NMEDIT=''
OBJDUMP='objdump'
OBJEXT='o'
OTOOL64=''
OTOOL=''
PACKAGE='usbguard'
PACKAGE_BUGREPORT='usbguard@usbguard.org'
PACKAGE_NAME='usbguard'
PACKAGE_STRING='usbguard 1.1.1'
PACKAGE_TARNAME='usbguard'
PACKAGE_URL=''
PACKAGE_VERSION='1.1.1'
PATH_SEPARATOR=':'
PKG_CONFIG='/usr/bin/pkg-config'
PKG_CONFIG_LIBDIR=''
PKG_CONFIG_PATH=''
POLICYKIT_ENABLED_FALSE=''
POLICYKIT_ENABLED_TRUE=''
POLKIT_POLICY_DIR=''
PROTOC='protoc'
PTHREAD_CC='gcc'
PTHREAD_CFLAGS='-pthread'
PTHREAD_LIBS=''
RANLIB='ranlib'
SED='/usr/bin/sed'
SET_MAKE=''
SHELL='/bin/sh'
STRIP='strip'
SYSTEMD_SUPPORT_ENABLED_FALSE=''
SYSTEMD_SUPPORT_ENABLED_TRUE=''
SYSTEMD_UNIT_DIR=''
VERSION='1.1.1'
WITH_LDAP_FALSE=''
WITH_LDAP_TRUE=''
XMLLINT=''
XSLTPROC=''
ac_ct_AR='ar'
ac_ct_CC='gcc'
ac_ct_CXX=''
ac_ct_DUMPBIN=''
am__EXEEXT_FALSE=''
am__EXEEXT_TRUE=''
am__fastdepCC_FALSE='#'
am__fastdepCC_TRUE=''
am__fastdepCXX_FALSE=''
am__fastdepCXX_TRUE='#'
am__include='include'
am__isrc=' -I$(srcdir)'
am__leading_dot='.'
am__nodep='_no'
am__quote=''
am__tar='tar --format=posix -chf - "$$tardir"'
am__untar='tar -xf -'
atomic_LIBS=''
audit_CFLAGS=''
audit_LIBS='-laudit '
ax_pthread_config=''
bindir='${exec_prefix}/bin'
build='x86_64-pc-linux-gnu'
build_alias=''
build_cpu='x86_64'
build_os='linux-gnu'
build_vendor='pc'
catch_CFLAGS='-I$(top_srcdir)/src/ThirdParty/Catch/single_include/catch2'
catch_LIBS=''
crypto_CFLAGS=''
crypto_LIBS='-lcrypto '
datadir='${datarootdir}'
datarootdir='${prefix}/share'
dbus_CFLAGS=''
dbus_LIBS=''
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
dvidir='${docdir}'
exec_prefix='NONE'
host='x86_64-pc-linux-gnu'
host_alias=''
host_cpu='x86_64'
host_os='linux-gnu'
host_vendor='pc'
htmldir='${docdir}'
includedir='${prefix}/include'
infodir='${datarootdir}/info'
install_sh='${SHELL} /usr/src/usbsrc/de/usbguard/config/install-sh'
ldap_CFLAGS=''
ldap_LIBS=''
libcapng_CFLAGS=''
libcapng_LIBS='-lcap-ng '
libcrypto_CFLAGS=''
libcrypto_LIBS='-lcrypto '
libdir='${exec_prefix}/lib'
libexecdir='${exec_prefix}/libexec'
localedir='${datarootdir}/locale'
localstatedir='${prefix}/var'
mandir='${datarootdir}/man'
mkdir_p='$(MKDIR_P)'
oldincludedir='/usr/include'
pdfdir='${docdir}'
pegtl_AC_CFLAGS=''
pegtl_CFLAGS=''
pegtl_LIBS=''
polkit_CFLAGS=''
polkit_LIBS=''
prefix='NONE'
program_transform_name='s,x,x,'
protobuf_CFLAGS=''
protobuf_LIBS='-lprotobuf -lpthread '
psdir='${docdir}'
qb_CFLAGS='-pthread '
qb_LIBS='-lqb '
runstatedir='${localstatedir}/run'
sbindir='${exec_prefix}/sbin'
seccomp_CFLAGS=''
seccomp_LIBS='-lseccomp '
sharedstatedir='${prefix}/com'
sodium_CFLAGS=''
sodium_LIBS='-lsodium '
sysconfdir='${prefix}/etc'
target_alias=''
umockdev_CFLAGS=''
umockdev_LIBS=''

## ----------- ##
## confdefs.h. ##
## ----------- ##

/* confdefs.h */
#define PACKAGE_NAME "usbguard"
#define PACKAGE_TARNAME "usbguard"
#define PACKAGE_VERSION "1.1.1"
#define PACKAGE_STRING "usbguard 1.1.1"
#define PACKAGE_BUGREPORT "usbguard@usbguard.org"
#define PACKAGE_URL ""
#define PACKAGE "usbguard"
#define VERSION "1.1.1"
#define STDC_HEADERS 1
#define HAVE_SYS_TYPES_H 1
#define HAVE_SYS_STAT_H 1
#define HAVE_STDLIB_H 1
#define HAVE_STRING_H 1
#define HAVE_MEMORY_H 1
#define HAVE_STRINGS_H 1
#define HAVE_INTTYPES_H 1
#define HAVE_STDINT_H 1
#define HAVE_UNISTD_H 1
#define HAVE_DLFCN_H 1
#define LT_OBJDIR ".libs/"
#define HAVE_PTHREAD_PRIO_INHERIT 1
#define HAVE_PTHREAD 1
#define HAVE_UEVENT 1
#define HAVE_LIBQB 1
#define HAVE_LIBSODIUM 1
#define HAVE_LIBCRYPTO 1
#define USBGUARD_USE_OPENSSL 1
#define HAVE_LINUX_AUDIT 1
#define HAVE_DECL_AUDIT_ENCODE_NV_STRING 1
#define HAVE_SECCOMP 1
#define HAVE_LIBCAPNG 1

configure: exit 1

@commandline-be multiple occurrences of g++: command not found caught my eyes. I believe that means two things:

  • That you have a C compiler installed — ${CC}/gcc — but not a C++ compiler — ${CXX}/g++
  • That the configure script should bail out earlier and be more helpful about it.

What do you think?

commented

@hartwork Thanks, true that, dnf install g++ fixed the 'Link test failed both with and without' issue.

I agree to make reporting on missing commands more helpful, i overlooked that 3 times or so.

commented

FYI: for RHEL systems dnf install dh-autoreconf libqb-devel audit-libs-devel libseccomp-devel libcap-ng-devel protobuf-devel polkit-devel asciidoc openldap-devel libtsan libasan install most if not all dependencies.

Notable is umockdev does not seem to have a suitable package on RHEL.

The ./configure command now completes succesfully.
Make fails on: /usr/bin/ld: cannot find -lasan with the for mentioned packages installed

/usr/bin/ld: cannot find -lasan
/usr/bin/ld: cannot find /usr/bin/ld-lasan: cannot find 
-lasan
/usr/bin/ld: cannot find -lasan

Make completes without errors when --with-tsan is used on ./configure instead of --with-asan

FYI: for RHEL systems dnf install dh-autoreconf libqb-devel audit-libs-devel libseccomp-devel libcap-ng-devel protobuf-devel polkit-devel asciidoc openldap-devel libtsan libasan install most if not all dependencies.

Looks similar to what we have for GCC 8 CentOS 8 in the CI at

asciidoc \
autoconf \
automake \
dbus-glib-devel \
diffutils \
file \
gcc-c++ \
git \
libgcrypt-devel \
libqb-devel \
libsodium-devel \
libtool \
libxslt \
make \
polkit-devel \
protobuf-compiler \
protobuf-devel
.

Notable is umockdev does not seem to have a suitable package on RHEL.

https://repology.org/project/umockdev/versions and https://pkgs.org/search/?q=umockdev confirm that only Fedora has it.

The ./configure command now completes succesfully. Make fails on: /usr/bin/ld: cannot find -lasan with the for mentioned packages installed

For a workaround, I'd try passing ./configure CFLAGS=... CXXFLAGS=... LDFLAGS=... manually. If --enable-asan is broken and it matters, please make a dedicated issue ticket so that we have one ticket per issue. Pull requests are also welcome.

commented

Thanks. My reason for mentioning the dnf line is it is not included in the Readme :-) Including it would save some time.

I don't feel confident to address the proposed work around for --enable-asan. I was looking into compilation following a response/request on the Rocky Linux Forums.

I don't fully understand what asan and tsan offer and what makes one preferable over the other or their efficacy on an SELinux enabled system.

Thanks. My reason for mentioning the dnf line is it is not included in the Readme :-) Including it would save some time.

We could add it, but then we cannot do that for every distro on the planet, as it does not scale well and needs to be kept in sync 🤷‍♂️

I don't feel confident to address the proposed work around for --enable-asan. I was looking into compilation following a response/request on the Rocky Linux Forums.

I don't fully understand what asan and tsan offer and what makes one preferable over the other or their efficacy on an SELinux enabled system.

We're going a bit off-topic here if I join in, so I'll just say that ASan detects things like out-of-bounds array access at runtime. It's one of the best tools that C/C++ developers have, in my opinion. ASan rocks, big time.

commented

Thanks, works for me.

I'll look into asan and how to get it to compile for USBGuard on RHEL9.