Sure. just filed a bug for that. I think it has to be done carefully to avoid a regression. so I'll postpone that at this time. On Wed, Feb 22, 2012 at 4:31 AM, Behdad Esfahbod <behdad@xxxxxxxxxx> wrote: > I think we should just remove the alias stuff and use more modern ways to > achieve the same. These days people mostly just do -Bsymbolic-functions, > which is not exactly the same, but is good enough. So, I'd say just remove > the alias stuff... > > On 02/21/2012 02:19 PM, Mike Frysinger wrote: >> When adding new functions, if the actual definition doesn't match the >> header (say due to a typo), the regeneration of the internal headers >> get confused and output bad cpp logic. This causes gcc to barf due >> to mismatched #ifdef/#endif. Which is a pain to figure out due to >> the sheer voulme of generated code. >> >> So tweak the makealias script to detect this case and error out. >> While we're here, improve the cpp output a bit to indent, include >> comments, and merge similar ifdef blocks. >> >> Signed-off-by: Mike Frysinger <vapier@xxxxxxxxxx> >> --- >> src/makealias | 18 ++++++++++++++---- >> 1 files changed, 14 insertions(+), 4 deletions(-) >> >> diff --git a/src/makealias b/src/makealias >> index fd9c3fd..fca94d4 100755 >> --- a/src/makealias >> +++ b/src/makealias >> @@ -17,12 +17,22 @@ while read name; do >> hattr='__attribute((visibility("hidden")))' >> echo "extern __typeof ($name) $alias $hattr;" >> $HEAD >> echo "#define $name $alias" >> $HEAD >> - grep -l '^'$name'[ (]' "$SRCDIR"/*.c | sed -n 1p | sed -e 's/^.*\/\([^.]*\)\.c/#ifdef __\1__/' >> $TAIL >> - echo "#undef $name" >> $TAIL >> + ifdef=$(grep -l '^'$name'[ (]' "$SRCDIR"/*.c | sed -n 1p | sed -e 's/^.*\/\([^.]*\)\.c/__\1__/') >> + if [ -z "$ifdef" ] ; then >> + echo "error: could not locate $name in src/*.c" 1>&2 >> + exit 1 >> + fi >> + if [ "$ifdef" != "$last" ] ; then >> + [ -n "$last" ] && echo "#endif /* $last */" >> $TAIL >> + echo "#ifdef $ifdef" >> $TAIL >> + last=$ifdef >> + fi >> + echo "# undef $name" >> $TAIL >> cattr='__attribute((alias("'$alias'"), visibility("default")))' >> echo "extern __typeof ($name) $name $cattr;" >> $TAIL >> - echo "#endif" >> $TAIL >> ;; >> esac >> done >> -echo "#endif" >> $TAIL >> +[ $? -ne 0 ] && exit 1 >> +echo "#endif /* $ifdef */" >> $TAIL >> +echo "#endif /* HAVE_GNUC_ATTRIBUTE */" >> $TAIL > _______________________________________________ > Fontconfig mailing list > Fontconfig@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/fontconfig -- Akira TAGOH _______________________________________________ Fontconfig mailing list Fontconfig@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/fontconfig