fi
}
+# Compile a shared lib using the GCC options for doing so.
+# Pass input and output file as parameters respectively.
+# Any other optional parmeters are passed to $CC.
+gcc_shared_()
+{
+ local in=$1
+ local out=$2
+ shift 2 || return 1
+
+ $CC -Wall -shared --std=gnu99 -fPIC -ldl -O2 $* "$in" -o "$out"
+}
+
# There are a myriad of ways to build shared libs,
# so we only consider running tests requiring shared libs,
# on platforms that support building them as follows.
require_gcc_shared_()
{
- $CC -shared -fPIC -O2 -xc -o d.so -ldl - < /dev/null 2>&1 \
+ gcc_shared_ '-' 'd.so' -xc < /dev/null 2>&1 \
|| skip_ '$CC -shared ... failed to build a shared lib'
+ rm -f d.so
}
mkfifo_or_skip_()
EOF
# Then compile/link it:
-gcc -Wall --std=gnu99 -shared -fPIC -ldl -O2 k.c -o k.so \
+gcc_shared_ k.c k.so \
|| framework_failure_ 'failed to build shared library'
#-------------------------------------------------------------------------------