The guile gh_scm2ulong() and scm_to_ulong() routines should really return an unsigned long otherwise the generation of the getdefs opts.[h,c] files from the opts.def file fails for 32-bit SPARC. This problem has been reported upstream, and the fix is in autogen-5.17.5pre2 --- autogen-5.16.2/agen5/guile-iface.h.orig 2013-05-31 09:59:18.924928189 -0700 +++ autogen-5.16.2/agen5/guile-iface.h 2013-05-31 10:00:51.274085992 -0700 @@ -32,7 +32,7 @@ # define AG_SCM_SYM_P(_s) SCM_SYMBOLP(_s) # define AG_SCM_TO_INT(_i) gh_scm2int(_i) # define AG_SCM_TO_LONG(_v) gh_scm2long(_v) -# define AG_SCM_TO_ULONG(_v) gh_scm2ulong(_v) +# define AG_SCM_TO_ULONG(_v) ((unsigned long)gh_scm2ulong(_v)) # define AG_SCM_VEC_P(_v) SCM_VECTORP(_v) #elif GUILE_VERSION < 200000 @@ -58,7 +58,7 @@ # define AG_SCM_SYM_P(_s) scm_is_symbol(_s) # define AG_SCM_TO_INT(_i) scm_to_int(_i) # define AG_SCM_TO_LONG(_v) scm_to_long(_v) -# define AG_SCM_TO_ULONG(_v) scm_to_ulong(_v) +# define AG_SCM_TO_ULONG(_v) ((unsigned long)scm_to_ulong(_v)) # define AG_SCM_VEC_P(_v) scm_is_vector(_v) #elif GUILE_VERSION < 201000 @@ -84,7 +84,7 @@ # define AG_SCM_SYM_P(_s) scm_is_symbol(_s) # define AG_SCM_TO_INT(_i) scm_to_int(_i) # define AG_SCM_TO_LONG(_v) scm_to_long(_v) -# define AG_SCM_TO_ULONG(_v) scm_to_ulong(_v) +# define AG_SCM_TO_ULONG(_v) ((unsigned long)scm_to_ulong(_v)) # define AG_SCM_VEC_P(_v) scm_is_vector(_v) #else