#!/bin/sh

set -e
cd testsuite

CC=gcc
CFLAGS="-g -O2"
EXTRA_CFLAGS="-D_FORTIFY_SOURCE=2 -D_GNU_SOURCE"
EXTRA_CFLAGS="${EXTRA_CFLAGS} -Wdate-time -Werror=implicit-function-declaration"
EXTRA_CFLAGS="${EXTRA_CFLAGS} -fstack-protector-strong"
EXTRA_CFLAGS="${EXTRA_CFLAGS} -fstack-clash-protection"
EXTRA_CFLAGS="${EXTRA_CFLAGS} -Wformat -Werror=format-security"
# 2024-12-12: -fcf-protection is only supported by amd64 and i386 now
# EXTRA_CFLAGS="${EXTRA_CFLAGS} -fcf-protection"
CFLAGS="${CFLAGS} ${EXTRA_CFLAGS}"

${CC} ${CFLAGS} -c -fPIC -o ffitest.o ffitest.c
${CC} ${CFLAGS} -c -fPIC -o fptr_array.o fptr_array.c
${CC} ${CFLAGS} -c -fPIC -o gcc_extension.o gcc_extension.c
${CC} ${CFLAGS} -c -fPIC -o local_typedef.o local_typedef.c
${CC} -Wl,-z,relro -shared -o local_typedef.so local_typedef.o
${CC} -Wl,-z,relro -shared -o gcc_extension.so gcc_extension.o
${CC} -Wl,-z,relro -shared -o fptr_array.so fptr_array.o
${CC} -Wl,-z,relro -shared -o ffitest.so ffitest.o 
