# $NetBSD: subr_gcc,v 1.6 2009/01/12 22:11:58 abs Exp $ # Return gcc version string gcc_ver() { gcc=$1 ${gcc} -dumpversion | $SED -e 's/^[^0-9\.]\{1,\}//' -e 's/[^0-9\.]\{1,\}$//' } gcc_ser() { gcc=$1 gcc_ver $gcc | $AWK -F. '{ print ($1*1000+$2)}' } gcc_fixup_arch_flags() { gcc=$1 shift gcc_arch_flags="$*" # Fixup options for older gccs. # Entries can be recursive - eg: # -march=k6-3 -> -march=k6 -> -march=pentium -> -march=i486 # # The format of table is # gcc_version_in_which_option_was_introduced : new_option : old_option $AWK -F: -v "flags=$gcc_arch_flags" -v "gcc_ver=$(gcc_ver $gcc)" ' { if (gcc_ver < $1) { map[$2] = ""$3 } } END { FS=" "; split(flags, flaglist); for (af in flaglist) { flag = flaglist[af]; while (flag in map) { flag = map[flag] } print flag } } ' <