| #!/bin/sh | |
| OPTS= | |
| TEMP=obj/check-c-lib.c | |
| mkdir -p obj || exit 1 | |
| CC="$*" | |
| if [ "$CC" = "" ] ; then | |
| CC=cc | |
| fi | |
| CC="$CC -o /dev/null $TEMP" | |
| cat >$TEMP << EOF | |
| int main() { | |
| return 0; | |
| } | |
| EOF | |
| $CC 1>/dev/null 2>&1 | |
| if [ "$?" != 0 ] ; then | |
| # Not GCC ? | |
| exit 0 | |
| fi | |
| cat >$TEMP << EOF | |
| #include <stdlib.h> | |
| int main() { | |
| return *canonicalize_file_name(""); | |
| } | |
| EOF | |
| $CC 1>/dev/null 2>&1 | |
| if [ "$?" = 0 ] ; then | |
| OPTS="$OPTS -DUSE_canonicalize_file_name=1" | |
| else | |
| OPTS="$OPTS -DUSE_canonicalize_file_name=0" | |
| fi | |
| cat >$TEMP << EOF | |
| #include <sys/ptrace.h> | |
| int main() { | |
| enum __ptrace_request cmd = (enum __ptrace_request)0; | |
| return cmd != 0; | |
| } | |
| EOF | |
| $CC 1>/dev/null 2>&1 | |
| if [ "$?" = 0 ] ; then | |
| OPTS="$OPTS -DUSE_enum_ptrace_request=1" | |
| else | |
| OPTS="$OPTS -DUSE_enum_ptrace_request=0" | |
| fi | |
| cat >$TEMP << EOF | |
| #include <string.h> | |
| int main() { | |
| char buf[256]; | |
| strlcpy(buf, "", sizeof(buf)); | |
| strlcat(buf, "", sizeof(buf)); | |
| return 0; | |
| } | |
| EOF | |
| $CC 1>/dev/null 2>&1 | |
| if [ "$?" = 0 ] ; then | |
| OPTS="$OPTS -DUSE_strlcpy_strlcat=1" | |
| else | |
| OPTS="$OPTS -DUSE_strlcpy_strlcat=0" | |
| fi | |
| cat >$TEMP << EOF | |
| #include <sys/auxv.h> | |
| #include <asm/hwcap.h> | |
| int main() { | |
| unsigned long hwcap = getauxval(AT_HWCAP); | |
| return (hwcap & HWCAP_ARM_VFP) == 0; | |
| } | |
| EOF | |
| $CC 1>/dev/null 2>&1 | |
| if [ "$?" = 0 ] ; then | |
| OPTS="$OPTS -DUSE_getauxval=1" | |
| else | |
| OPTS="$OPTS -DUSE_getauxval=0" | |
| fi | |
| rm $TEMP | |
| echo $OPTS |