diff --git a/configure b/configure
index b6086b0..3ddb266 100755
--- a/configure
+++ b/configure
@@ -9506,6 +9506,71 @@
 fi
 
 
+echo "$as_me:$LINENO: checking whether @function is defined" >&5
+echo $ECHO_N "checking whether @function is defined... $ECHO_C" >&6
+if test "${ac_cv_at_function_is_defined+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_try_asm_link_saved_libs=$LIBS
+LIBS="conftest_asm.s $LIBS"
+cat > conftest_asm.s <<EOF
+	.globl _ac_test
+	.type _ac_test,@function
+_ac_test:
+	.long 0
+EOF
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+#include "confdefs.h"
+
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_at_function_is_defined="yes"
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_at_function_is_defined="no"
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest_asm.s
+LIBS=$ac_try_asm_link_saved_libs
+fi
+echo "$as_me:$LINENO: result: $ac_cv_at_function_is_defined" >&5
+echo "${ECHO_T}$ac_cv_at_function_is_defined" >&6
+if test "$ac_cv_at_function_is_defined" = "yes"
+then
+
+cat >>confdefs.h <<\_ACEOF
+#define AT_FUNCTION_IS_DEFINED 1
+_ACEOF
+
+fi
+
+
 echo "$as_me:$LINENO: checking whether external symbols need an underscore prefix" >&5
 echo $ECHO_N "checking whether external symbols need an underscore prefix... $ECHO_C" >&6
 if test "${ac_cv_c_extern_prefix+set}" = set; then
@@ -13347,6 +13412,74 @@
 fi
 
 
+case $host_cpu in
+  *sparc* )
+    echo "$as_me:$LINENO: checking whether we need to define __sparc__" >&5
+echo $ECHO_N "checking whether we need to define __sparc__... $ECHO_C" >&6
+if test "${ac_cv_cpp_def_sparc+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+#include "confdefs.h"
+#ifndef __sparc__
+yes
+#endif
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "yes" >/dev/null 2>&1; then
+  ac_cv_cpp_def_sparc="yes"
+else
+  ac_cv_cpp_def_sparc="no"
+fi
+rm -f conftest*
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_cpp_def_sparc" >&5
+echo "${ECHO_T}$ac_cv_cpp_def_sparc" >&6
+    ;;
+esac
+if test "$ac_cv_cpp_def_sparc" = "yes"
+then
+    CFLAGS="$CFLAGS -D__sparc__"
+    LINTFLAGS="$LINTFLAGS -D__sparc__"
+fi
+
+
+case $host_vendor in
+  *sun* )
+    echo "$as_me:$LINENO: checking whether we need to define __sun__" >&5
+echo $ECHO_N "checking whether we need to define __sun__... $ECHO_C" >&6
+if test "${ac_cv_cpp_def_sun+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+#include "confdefs.h"
+#ifndef __sun__
+yes
+#endif
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "yes" >/dev/null 2>&1; then
+  ac_cv_cpp_def_sun="yes"
+else
+  ac_cv_cpp_def_sun="no"
+fi
+rm -f conftest*
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_cpp_def_sun" >&5
+echo "${ECHO_T}$ac_cv_cpp_def_sun" >&6
+    ;;
+esac
+if test "$ac_cv_cpp_def_sun" = "yes"
+then
+    CFLAGS="$CFLAGS -D__sun__"
+    LINTFLAGS="$LINTFLAGS -D__sun__"
+fi
+
+
 
 
 
