fix +x permissions for scripts
[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.3 2007/12/11 17:16:02 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 -o /dev/null - 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             ;;
37         *) continue
38             ;;
39        esac
40        # if we come here, we have in $opt the option to remove. and
41        # we remove all instances. And we save agoinst leading "-"
42        NEW_OPTS=""
43        for o in $OPTS; do
44            case "$o" in
45                -Wl,$opt) : echo "Removed $o" >&2;;
46                *)        NEW_OPTS="$NEW_OPTS $o";;
47            esac
48        done
49        OPTS="$NEW_OPTS"
50     done
51     echo $OPTS
52 }
53
54 testcompile | parsetest
55
56 exit 0