utils/pmx/pmx-2.7.0/libf2c/f2c.h: define abs() macro only if not provided by C Standard Lib. The following macro #define abs(x) ((x) >= 0 ? (x) : -(x)) in defined utils/pmx/pmx-2.7.0/libf2c/f2c.h. However, abs() is a POSIX function prototyped in stdlib.h. So if f2c.h is pulled in before stdlib.h in any code, then the protoype is munged by the macro. This happens when building pmx with recent versions of uClibc. diff -Naur source.orig/utils/pmx/configure.ac source/utils/pmx/configure.ac --- source.orig/utils/pmx/configure.ac 2014-11-17 07:28:11.000000000 -0500 +++ source/utils/pmx/configure.ac 2015-02-18 16:30:39.893003633 -0500 @@ -32,6 +33,7 @@ AC_PROG_LN_S AC_PROG_MAKE_SET AC_PROG_RANLIB +AC_CHECK_FUNCS([abs]) AC_SEARCH_LIBS([sqrt], [m]) diff -Naur source.orig/utils/pmx/pmx-2.7.0/libf2c/f2c.h source/utils/pmx/pmx-2.7.0/libf2c/f2c.h --- source.orig/utils/pmx/pmx-2.7.0/libf2c/f2c.h 2013-01-18 02:59:22.000000000 -0500 +++ source/utils/pmx/pmx-2.7.0/libf2c/f2c.h 2015-02-18 16:32:58.491994029 -0500 @@ -162,7 +164,9 @@ }; typedef struct Namelist Namelist; +#ifndef HAVE_ABS #define abs(x) ((x) >= 0 ? (x) : -(x)) +#endif #define dabs(x) (doublereal)abs(x) #undef min #undef max