* similar to gcc-warnings but for linker options
[olsrd.git] / ld-warnings
1 #!/bin/sh
2 #
3 # We expect warning options for gcc as arguments and return the ones which are
4 # accepted by the given gcc.
5 #
6 # $Id: ld-warnings,v 1.1 2007/12/06 20:10:19 bernd67 Exp $
7
8 set -ue
9 #set -vx
10
11 # make sure we do not use some locale ....
12 export LANG=C LC_ALL=C LC_COLLATE=C LC_CTYPE=C LC_MESSAGES=C LC_NUMERIC=C
13
14 OPTS=""
15 for param; do
16     case "$param" in
17     -[fWm]?*) OPTS="$OPTS $param";;
18     *)        echo "Ignoring $param" >&2
19     esac
20 done
21
22 testcompile() {
23     $CC $OPTS -x c - 2>&1 <<- EOF
24        int main(void) {
25            return 0;
26        }
27 EOF
28 }
29
30 parsetest() {
31     while read error; do 
32         case "$error" in
33         *ld:\ unrecognized\ *option\ \'*)
34             opt="${error#*\'}"
35             opt="${opt%\'*}"
36             OPTS="${OPTS//-Wl,$opt}"
37             ;;
38        esac
39     done
40     echo $OPTS
41 }
42
43 testcompile | parsetest
44
45 exit 0