Build of cmocka-1.1.5 fails on OmniOS
Steps to reproduce:
$ uname -a
SunOS skylon 5.11 omnios-r151034-0d278a0cc5 i86pc i386 i86pc
$ cat /etc/os-release
NAME="OmniOS"
PRETTY_NAME="OmniOS Community Edition v11 r151034o"
CPE_NAME="cpe:/o:omniosce:omnios:11:151034:15"
ID=omnios
VERSION=r151034o
VERSION_ID=r151034o
BUILD_ID=151034.15.2020.08.09
HOME_URL="https://omniosce.org/"
SUPPORT_URL="https://omniosce.org/"
BUG_REPORT_URL="https://github.com/omniosorg/omnios-build/issues/new"
$ tar xJf Downloads/cmocka-1.1.5.tar.xz
$ cd cmocka-1.1.5
$ mkdir -p build/Release
$ cd build/Release
$ cmake -GNinja -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=Release ../..
[...]
$ ninja
[14/23] Linking C executable example/mock/uptime/uptime
FAILED: example/mock/uptime/uptime
: && /usr/bin/gcc -O3 -DNDEBUG example/mock/uptime/CMakeFiles/uptime.dir/uptime.c.o -o example/mock/uptime/uptime example/mock/uptime/libproc_uptime.a && :
Undefined first referenced
symbol in file
__stack_chk_fail example/mock/uptime/CMakeFiles/uptime.dir/uptime.c.o
__stack_chk_guard example/mock/uptime/CMakeFiles/uptime.dir/uptime.c.o
ld: fatal: symbol referencing errors. No output written to example/mock/uptime/uptime
collect2: error: ld returned 1 exit status
[15/23] Building C object src/CMakeFiles/cmocka.dir/cmocka.c.o
ninja: build stopped: subcommand failed.
$
The missing symbols appear to be supplied by libssp:
$ /usr/bin/gcc -O3 -DNDEBUG example/mock/uptime/CMakeFiles/uptime.dir/uptime.c.o
-lssp -o example/mock/uptime/uptime example/mock/uptime/libproc_uptime.a
$ echo $?
0
$
Edited by John Connett