[Open-scap] Compile issues on RHEL5+SLES11

Martin Preisler mpreisle at redhat.com
Tue Mar 1 16:42:20 UTC 2016


----- Original Message -----
> From: "Andreas Krause" <open-scap-list at domov.de>
> To: open-scap-list at redhat.com
> Sent: Tuesday, March 1, 2016 9:59:03 AM
> Subject: [Open-scap] Compile issues on RHEL5+SLES11
> 
> Hi there,
> 
> I'm running into difficulties when compiling openscap-1.2.8 on older
> Linux distributions like RHEL5 or SLES11.
> 
> First issue:
> 
> /bin/sh ../../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I.
> -I../..  -I/usr/include/libxml2 -DOSCAP_THREAD_SAFE -D_REENTRANT
> -D_POSIX_PTHREAD_SEMANTICS -I./public -I../../src -I../../src/common
> -I../../src/common/public -I../../src/source/public -I./adt -I./probes
> -I./probes/public -I./probes/SEAP/public
> -I../../src/OVAL/probes/SEAP/generic -I../../src/XCCDF_POLICY/public
> -I../../src/XCCDF/public -I../../src/CPE/public -DSEAP_MSGID_BITS=32
> -DSEAP_THREAD_SAFE -DOVAL_PROBE_DIR='"/usr/libexec/openscap"'   -O2 -g
> -m64 -mtune=generic -pipe -std=c99 -W -Wall -Wnonnull -Wshadow -Wformat
> -Wundef -Wno-unused-parameter -Wmissing-prototypes -Wno-unknown-pragmas
> -D_GNU_SOURCE -DOSCAP_THREAD_SAFE -D_POSIX_C_SOURCE=200112L
> -Wno-unused-function -MT oval_session.lo -MD -MP -MF
> .deps/oval_session.Tpo -c -o oval_session.lo oval_session.c
> libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I../..
> -I/usr/include/libxml2 -DOSCAP_THREAD_SAFE -D_REENTRANT
> -D_POSIX_PTHREAD_SEMANTICS -I./public -I../../src -I../../src/common
> -I../../src/common/public -I../../src/source/public -I./adt -I./probes
> -I./probes/public -I./probes/SEAP/public
> -I../../src/OVAL/probes/SEAP/generic -I../../src/XCCDF_POLICY/public
> -I../../src/XCCDF/public -I../../src/CPE/public -DSEAP_MSGID_BITS=32
> -DSEAP_THREAD_SAFE -DOVAL_PROBE_DIR=\"/usr/libexec/openscap\" -O2 -g
> -m64 -mtune=generic -pipe -std=c99 -W -Wall -Wnonnull -Wshadow -Wformat
> -Wundef -Wno-unused-parameter -Wmissing-prototypes -Wno-unknown-pragmas
> -D_GNU_SOURCE -DOSCAP_THREAD_SAFE -D_POSIX_C_SOURCE=200112L
> -Wno-unused-function -MT oval_session.lo -MD -MP -MF
> .deps/oval_session.Tpo -c oval_session.c  -fPIC -DPIC -o
> .libs/oval_session.o
> oval_session.c: In function 'oval_session_export':
> oval_session.c:422: error: 'PATH_MAX' undeclared (first use in this
> function)
> oval_session.c:422: error: (Each undeclared identifier is reported only once
> oval_session.c:422: error: for each function it appears in.)
> oval_session.c:422: warning: unused variable 'pwd'
> make[4]: *** [oval_session.lo] Error 1
> make[4]: Leaving directory `/usr/src/redhat/BUILD/openscap-1.2.8/src/OVAL'
> make[3]: *** [all-recursive] Error 1
> make[3]: Leaving directory `/usr/src/redhat/BUILD/openscap-1.2.8/src/OVAL'
> make[2]: *** [all-recursive] Error 1
> make[2]: Leaving directory `/usr/src/redhat/BUILD/openscap-1.2.8/src'
> make[1]: *** [all-recursive] Error 1
> make[1]: Leaving directory `/usr/src/redhat/BUILD/openscap-1.2.8'
> make: *** [all] Error 2
> 
> 
> I've managed to fix this by adding "#include <linux/limits.h>" to
> src/OVAL/oval_session.c
> 
> 
> Second issue:
> /bin/sh ../../../libtool  --tag=CC   --mode=link gcc  -O2 -g -m64
> -mtune=generic -pipe -std=c99 -W -Wall -Wnonnull -Wshadow -Wformat
> -Wundef -Wno-unused-parameter -Wmissing-prototypes -Wno-unknown-pragmas
> -D_GNU_SOURCE -DOSCAP_THREAD_SAFE -D_POSIX_C_SOURCE=200112L
> -Wno-unused-function -I/usr/include/libxml2   -DOSCAP_THREAD_SAFE
> -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -DTHREAD_SAFE -DSEAP_THREAD_SAFE
> -I../../../src -I../../../src/common -I../../../src/common/public
> -I../../../src/source/public -I../../../src/OVAL
> -I../../../src/OVAL/public -I../../../src/OVAL/probes/public
> -I../../../src/OVAL/probes/SEAP/public -I../../../lib   -o
> probe_system_info system_info.o probe/libprobe.la  -lbz2
> libtool: link: gcc -O2 -g -m64 -mtune=generic -pipe -std=c99 -W -Wall
> -Wnonnull -Wshadow -Wformat -Wundef -Wno-unused-parameter
> -Wmissing-prototypes -Wno-unknown-pragmas -D_GNU_SOURCE
> -DOSCAP_THREAD_SAFE -D_POSIX_C_SOURCE=200112L -Wno-unused-function
> -I/usr/include/libxml2 -DOSCAP_THREAD_SAFE -D_REENTRANT
> -D_POSIX_PTHREAD_SEMANTICS -DTHREAD_SAFE -DSEAP_THREAD_SAFE
> -I../../../src -I../../../src/common -I../../../src/common/public
> -I../../../src/source/public -I../../../src/OVAL
> -I../../../src/OVAL/public -I../../../src/OVAL/probes/public
> -I../../../src/OVAL/probes/SEAP/public -I../../../lib -o
> .libs/probe_system_info system_info.o  probe/.libs/libprobe.a
> /usr/src/redhat/BUILD/openscap-1.2.8/src/.libs/libopenscap.so
> -L/usr/kerberos/lib64 -lrpm -lpcre -lcurl -ldl -lgssapi_krb5 -lkrb5
> -lk5crypto -lcom_err -lidn -lssl -lcrypto -lexslt -lxslt -lgcrypt
> -lgpg-error -lxml2 -lz -lm -lpthread -lrt -lbz2
> probe/.libs/libprobe.a(libprobe_la-input_handler.o): In function
> `probe_input_handler':
> /usr/src/redhat/BUILD/openscap-1.2.8/src/OVAL/probes/probe/input_handler.c:55:
> undefined reference to `pthread_setname_np'
> probe/.libs/libprobe.a(libprobe_la-worker.o): In function
> `probe_worker_runfn':
> /usr/src/redhat/BUILD/openscap-1.2.8/src/OVAL/probes/probe/worker.c:50:
> undefined reference to `pthread_setname_np'
> probe/.libs/libprobe.a(libprobe_la-signal_handler.o): In function
> `probe_signal_handler':
> /usr/src/redhat/BUILD/openscap-1.2.8/src/OVAL/probes/probe/signal_handler.c:67:
> undefined reference to `pthread_setname_np'
> probe/.libs/libprobe.a(libprobe_la-icache.o): In function
> `probe_icache_worker':
> /usr/src/redhat/BUILD/openscap-1.2.8/src/OVAL/probes/probe/icache.c:95:
> undefined reference to `pthread_setname_np'
> probe/.libs/libprobe.a(liboscapcommon_la-debug.o): In function
> `debug_message_devel_metadata':
> /usr/src/redhat/BUILD/openscap-1.2.8/src/common/debug.c:175: undefined
> reference to `pthread_getname_np'
> collect2: ld returned 1 exit status
> make[3]: *** [probe_system_info] Error 1
> make[3]: Leaving directory
> `/usr/src/redhat/BUILD/openscap-1.2.8/src/OVAL/probes'
> make[2]: *** [all-recursive] Error 1
> make[2]: Leaving directory
> `/usr/src/redhat/BUILD/openscap-1.2.8/src/OVAL/probes'
> make[1]: *** [all-recursive] Error 1
> make[1]: Leaving directory `/usr/src/redhat/BUILD/openscap-1.2.8'
> make: *** [all] Error 2
> 
> Does anyone know if there's a workaround for the second issue?

You can comment the calls and initialize the thread name to something
like "unknown". Then it should compile.

This was introduced in https://github.com/OpenSCAP/openscap/commit/dea7eb64
CC-ing Jan Cerny who is the author.

Jan, could we perhaps use "unknown" or something like that for the
thread names in case glibc is older than 2.12? What do you think?

-- 
Martin Preisler
Identity Management and Platform Security | Red Hat, Inc.




More information about the Open-scap-list mailing list