Subject: bug#11877: [help]why guile tells me "ERROR: Unbound variable: eval-when"

From: gnuemacser <[email-masked]>
Date: Sun, 8 Jul 2012 09:59:24 +0800

i download guile-2.0.6.tar.gz and build it like this:

1) i make a diretory under the top directory for build :
>mkdir build
>cd build

2) i config it with the option:
>../configure --host=i686-pc-mingw32 --disable-shared --without-threads scm_cv_struct_timespec=no LIBS='-lunistring -lintl -liconv'
if i don't use "scm_cv_struct_timespec=no", then the libguile/threads.c will not be able to compile. 

3)then i make:
>make 

these are the warnings:
----------------------------------------------------------------------------------------------------------
  CC       libguile_2.0_la-fports.lo
../../libguile/fports.c: In function 'fport_input_waiting':
../../libguile/fports.c:606:7: warning: unused variable 'fdes' [-Wunused-variable]

  CC       libguile_2.0_la-hashtab.lo
  CC       libguile_2.0_la-hooks.lo
  CC       libguile_2.0_la-i18n.lo
../../libguile/i18n.c: In function 'scm_make_locale':
../../libguile/i18n.c:610:16: warning: variable 'c_base_locale' set but not used [-Wunused-but-set-variable]
  CC       libguile_2.0_la-init.lo

  CC       libguile_2.0_la-stime.lo
../../libguile/stime.c:88:14: warning: 'tzname' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]
  CC       libguile_2.0_la-strings.lo
  CC       libguile_2.0_la-strorder.lo
  CC       libguile_2.0_la-strports.lo
  CC       libguile_2.0_la-struct.lo
  CC       libguile_2.0_la-symbols.lo
  CC       libguile_2.0_la-threads.lo
../../libguile/threads.c: In function 'scm_cancel_thread':
../../libguile/threads.c:1168:7: warning: statement with no effect [-Wunused-value]
  CC       libguile_2.0_la-throw.lo
  CC       libguile_2.0_la-trees.lo
----------------------------------------------------------------------------------------------------------

4) the error begins to show:
 
----------------------------------------------------------------------------------------------------------
  CC       dynl.lo
  CC       posix.lo
../../libguile/posix.c: In function 'scm_utime':
../../libguile/posix.c:1577:7: warning: variable 'f' set but not used [-Wunused-but-set-variable]
../../libguile/posix.c:1576:19: warning: variable 'mtim_nsec' set but not used [-Wunused-but-set-variable]
../../libguile/posix.c:1576:8: warning: variable 'atim_nsec' set but not used [-Wunused-but-set-variable]
../../libguile/posix.c: In function 'scm_init_posix':
../../libguile/posix.c:2380:36: error: 'scm_init_popen' undeclared (first use in this function)
../../libguile/posix.c:2380:36: note: each undeclared identifier is reported only once for each function it appears in
make[3]: *** [posix.lo] Error 1
make[3]: Leaving directory `/e/temp/files/guile/guile-2.0.6/build/libguile'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/e/temp/files/guile/guile-2.0.6/build/libguile'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/e/temp/files/guile/guile-2.0.6/build'
make: *** [all] Error 2
----------------------------------------------------------------------------------------------------------

so i check the libguile/posix.c and fixed it like this:
the original one is :

----------------------------------------------------------------------------------------------------------
#include "libguile/cpp-SIG.c"
#include "libguile/posix.x"

  scm_c_register_extension ("libguile-" SCM_EFFECTIVE_VERSION,
                            "scm_init_popen",
                (scm_t_extension_init_func) scm_init_popen,
                NULL);
----------------------------------------------------------------------------------------------------------

i added the #ifdef macro

----------------------------------------------------------------------------------------------------------
#ifdef HAVE_FORK

#include "libguile/cpp-SIG.c"
#include "libguile/posix.x"

  scm_c_register_extension ("libguile-" SCM_EFFECTIVE_VERSION,
                            "scm_init_popen",
                (scm_t_extension_init_func) scm_init_popen,
                NULL);
#endif
----------------------------------------------------------------------------------------------------------

5) then the make continued like this:

----------------------------------------------------------------------------------------------------------
make[3]: Entering directory `/e/temp/files/guile/guile-2.0.6/build/libguile'
  CC       posix.lo
../../libguile/posix.c: In function 'scm_utime':
../../libguile/posix.c:1577:7: warning: variable 'f' set but not used [-Wunused-but-set-variable]
../../libguile/posix.c:1576:19: warning: variable 'mtim_nsec' set but not used [-Wunused-but-set-variable]
../../libguile/posix.c:1576:8: warning: variable 'atim_nsec' set but not used [-Wunused-but-set-variable]
../../libguile/posix.c: At top level:
../../libguile/posix.c:223:1: warning: 'scm_pipe__name' defined but not used [-Wunused-variable]
../../libguile/posix.c:633:1: warning: 'scm_kill__name' defined but not used [-Wunused-variable]
../../libguile/posix.c:1125:1: warning: 'scm_execl__name' defined but not used [-Wunused-variable]
../../libguile/posix.c:1162:1: warning: 'scm_execlp__name' defined but not used
[-Wunused-variable]
../../libguile/posix.c:1200:1: warning: 'scm_execle__name' defined but not used
[-Wunused-variable]
../../libguile/posix.c:1459:1: warning: 'scm_uname__name' defined but not used [-Wunused-variable]
../../libguile/posix.c:1483:1: warning: 'scm_environ__name' defined but not used [-Wunused-variable]
../../libguile/posix.c:1506:1: warning: 'scm_tmpnam__name' defined but not used
[-Wunused-variable]
../../libguile/posix.c:1528:1: warning: 'scm_tmpfile__name' defined but not used [-Wunused-variable]
../../libguile/posix.c:1555:1: warning: 'scm_utime__name' defined but not used [-Wunused-variable]
../../libguile/posix.c:1650:1: warning: 'scm_getpid__name' defined but not used
[-Wunused-variable]
../../libguile/posix.c:1659:1: warning: 'scm_putenv__name' defined but not used
[-Wunused-variable]
../../libguile/posix.c:1694:1: warning: 'scm_setlocale__name' defined but not used [-Wunused-variable]
../../libguile/posix.c:1938:1: warning: 'scm_getlogin__name' defined but not used [-Wunused-variable]
../../libguile/posix.c:2134:1: warning: 'scm_flock__name' defined but not used [-Wunused-variable]
----------------------------------------------------------------------------------------------------------

6) again ,make reported an error which has been reported in http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10474

----------------------------------------------------------------------------------------------------------
  CC       net_db.lo
../../libguile/net_db.c:461:1: error: 'AI_ALL' undeclared here (not in a function)
../../libguile/net_db.c:461:1: error: expression in static assertion is not an integer
../../libguile/net_db.c:483:33: warning: 'struct addrinfo' declared inside parameter list [enabled by default]
../../libguile/net_db.c:483:33: warning: its scope is only this definition or declaration, which is probably not what you want [enabled by default]
../../libguile/net_db.c: In function 'scm_from_addrinfo':
../../libguile/net_db.c:491:3: error: dereferencing pointer to incomplete type
../../libguile/net_db.c:492:3: error: dereferencing pointer to incomplete type
../../libguile/net_db.c:493:3: error: dereferencing pointer to incomplete type
../../libguile/net_db.c:494:3: error: dereferencing pointer to incomplete type
../../libguile/net_db.c:495:3: error: dereferencing pointer to incomplete type
../../libguile/net_db.c:495:3: error: dereferencing pointer to incomplete type
../../libguile/net_db.c:497:3: error: dereferencing pointer to incomplete type
../../libguile/net_db.c:497:3: error: dereferencing pointer to incomplete type
../../libguile/net_db.c: In function 'scm_getaddrinfo':
../../libguile/net_db.c:619:19: error: storage size of 'c_hints' isn't known
../../libguile/net_db.c:662:3: warning: implicit declaration of function 'getaddrinfo' [-Wimplicit-function-declaration]
../../libguile/net_db.c:670:10: error: dereferencing pointer to incomplete type
../../libguile/net_db.c:670:19: warning: left-hand operand of comma expression has no effect [-Wunused-value]
../../libguile/net_db.c:671:2: warning: passing argument 1 of 'scm_from_addrinfo' from incompatible pointer type [enabled by default]
../../libguile/net_db.c:483:1: note: expected 'const struct addrinfo *' but argument is of type 'struct addrinfo *'
../../libguile/net_db.c:673:7: warning: implicit declaration of function 'freeaddrinfo' [-Wimplicit-function-declaration]
../../libguile/net_db.c:619:19: warning: unused variable 'c_hints' [-Wunused-variable]
../../libguile/net_db.c: At top level:
../../libguile/net_db.c:685:1: error: 'EAI_BADFLAGS' undeclared here (not in a function)
../../libguile/net_db.c:685:1: error: expression in static assertion is not an integer
../../libguile/net_db.c: In function 'scm_gai_strerror':
../../libguile/net_db.c:749:3: warning: implicit declaration of function 'gai_strerror' [-Wimplicit-function-declaration]
../../libguile/net_db.c:749:3: warning: passing argument 1 of 'scm_from_locale_string' makes pointer from integer without a cast [enabled by default]
../../libguile/strings.h:134:13: note: expected 'const char *' but argument is of type 'int'
In file included from ../../libguile/net_db.c:760:0:
../libguile/net_db.x: In function 'scm_init_net_db':
../libguile/net_db.x:17:78: error: 'AI_PASSIVE' undeclared (first use in this function)
../libguile/net_db.x:17:78: note: each undeclared identifier is reported only once for each function it appears in
../libguile/net_db.x:18:82: error: 'AI_CANONNAME' undeclared (first use in this
function)
../libguile/net_db.x:19:86: error: 'AI_NUMERICHOST' undeclared (first use in this function)
../libguile/net_db.x:20:86: error: 'AI_NUMERICSERV' undeclared (first use in this function)
../libguile/net_db.x:21:80: error: 'AI_V4MAPPED' undeclared (first use in this function)
../libguile/net_db.x:23:84: error: 'AI_ADDRCONFIG' undeclared (first use in this function)
../libguile/net_db.x:27:78: error: 'EAI_NONAME' undeclared (first use in this function)
../libguile/net_db.x:28:76: error: 'EAI_AGAIN' undeclared (first use in this function)
../libguile/net_db.x:29:74: error: 'EAI_FAIL' undeclared (first use in this function)
../libguile/net_db.x:30:78: error: 'EAI_FAMILY' undeclared (first use in this function)
../libguile/net_db.x:31:82: error: 'EAI_SOCKTYPE' undeclared (first use in this
function)
../libguile/net_db.x:32:80: error: 'EAI_SERVICE' undeclared (first use in this function)
../libguile/net_db.x:33:78: error: 'EAI_MEMORY' undeclared (first use in this function)
../libguile/net_db.x:34:78: error: 'EAI_SYSTEM' undeclared (first use in this function)
../libguile/net_db.x:35:82: error: 'EAI_OVERFLOW' undeclared (first use in this
function)
make[3]: *** [net_db.lo] Error 1
make[3]: Leaving directory `/e/temp/files/guile/guile-2.0.6/build/libguile'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/e/temp/files/guile/guile-2.0.6/build/libguile'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/e/temp/files/guile/guile-2.0.6/build'
make: *** [all] Error 2
----------------------------------------------------------------------------------------------------------

as the bug report said:
"The reason is that this condition in net_db.c:

     #ifdef HAVE_WINSOCK2_H
     #include <winsock2.h>
     #else
     #include <sys/socket.h>
     #include <netdb.h>
     #include <netinet/in.h>
     #include <arpa/inet.h>
     #endif

is inappropriate when gnulib was used to wrap Windows socket
functions.  When gnulib _is_ used, the missing macros are already
defined by lib/sys/socket.h.  Therefore, I modified the condition to:

     #if HAVE_WINSOCK2_H && !GNULIB_TEST_SOCKET
     #include <winsock2.h>
     # if HAVE_WS2TCPIP_H
     #  include <ws2tcpip.h>
     # endif
     #else
     #include <sys/socket.h>
     #include <netdb.h>
     #include <netinet/in.h>
     #include <arpa/inet.h>
     #endif
"

7) let's make it again, warnings like these:

----------------------------------------------------------------------------------------------------------
  CC       socket.lo
../../libguile/socket.c: In function 'scm_inet_ntop':
../../libguile/socket.c:349:7: warning: implicit declaration of function 'inet_ntop' [-Wimplicit-function-declaration]
../../libguile/socket.c:349:14: warning: assignment makes pointer from integer without a cast [enabled by default]
../../libguile/socket.c:357:14: warning: assignment makes pointer from integer without a cast [enabled by default]
../../libguile/socket.c: In function 'scm_inet_pton':
../../libguile/socket.c:397:3: warning: implicit declaration of function 'inet_pton' [-Wimplicit-function-declaration]
../../libguile/socket.c: In function 'scm_fill_sockaddr':
../../libguile/socket.c:817:16: warning: variable 'scope_id' set but not used [-Wunused-but-set-variable]
  CC       win32-uname.lo
  CC       win32-socket.lo
../../libguile/win32-socket.c: In function 'getservent':
../../libguile/win32-socket.c:488:25: warning: array subscript is above array bounds [-Warray-bounds]
../../libguile/win32-socket.c: In function 'getprotoent':
../../libguile/win32-socket.c:569:26: warning: array subscript is above array bounds [-Warray-bounds]
  CC       regex-posix.lo
  CC       mkstemp.lo
  CCLD     libguile-2.0.la
libtool: link: warning: library `d:/dev/mingw/lib/libunistring.la' was moved.
libtool: link: warning: library `d:/dev/mingw/lib/libunistring.la' was moved.
Creating library file: .libs/libguile-2.0.dll.a
copying selected object files to avoid basename conflicts...
  CCLD     guile.exe
libtool: link: warning: library `d:/dev/mingw/lib/libunistring.la' was moved.
libtool: link: warning: library `d:/dev/mingw/lib/libunistring.la' was moved.
libtool: link: warning: library `d:/dev/mingw/lib/libunistring.la' was moved.
----------------------------------------------------------------------------------------------------------

i edited the `d:/dev/mingw/lib/libunistring.la' to correct it like this:

----------------------------------------------------------------------------------------------------------
# libunistring.la - a libtool library file
# Generated by libtool (GNU libtool) 2.4
#
# Please DO NOT delete this file!
# It is necessary for linking the library.

# The name that we can dlopen(3).
dlname='../bin/libunistring-0.dll'

# Names of this library.
library_names='libunistring.dll.a'

# The name of the static archive.
old_library='libunistring.a'

# Linker flags that can not go in dependency_libs.
inherited_linker_flags=''

# Libraries that this one depends upon.
dependency_libs=' -R==d:/dev/mingw/lib -L=d:/dev/mingw/lib /mingw/lib/libiconv.la'

# Names of additional weak libraries provided by this library
weak_library_names=''

# Version information for libunistring.
current=1
age=1
revision=2

# Is this an already installed library?
installed=yes

# Should we warn about portability when linking against -modules?
shouldnotlink=no

# Files to dlopen/dlpreopen
dlopen=''
dlpreopen=''

# Directory that this library needs to be installed in:
libdir='d:/dev/mingw/lib'
----------------------------------------------------------------------------------------------------------

8) i use the patch for canonicalize-lgpl.c to make it Windows-friendly from bug report 10474,
but two hunk was failure:

----------------------------------------------------------------------------------------------------------
(Stripping trailing CRs from patch.)
patching file lib/canonicalize-lgpl.c
Hunk #4 FAILED at 160.
Hunk #5 succeeded at 180 (offset 4 lines).
Hunk #6 succeeded at 194 with fuzz 1 (offset 4 lines).
Hunk #7 succeeded at 215 (offset 4 lines).
Hunk #8 FAILED at 301.
Hunk #9 succeeded at 333 with fuzz 2 (offset 8 lines).
2 out of 9 hunks FAILED -- saving rejects to file lib/canonicalize-lgpl.c.rej
----------------------------------------------------------------------------------------------------------

----------------------------------------------------------------------------------------------------------
--- lib/canonicalize-lgpl.c~0    2011-10-22 16:19:34.000000000 +0200
+++ lib/canonicalize-lgpl.c    2012-01-17 13:10:52.608428500 +0200
@@ -51,6 +51,7 @@
 # define __realpath realpath
 # include "pathmax.h"
 # include "malloca.h"
+# include "dosname.h"
 # if HAVE_GETCWD
 #  if IN_RELOCWRAPPER
     /* When building the relocatable program wrapper, use the system's getcwd
@@ -101,6 +102,7 @@ __realpath (const char *name, char *reso
   const char *start, *end, *rpath_limit;
   long int path_max;
   int num_links = 0;
+  size_t prefix_len;
 
   if (name == NULL)
     {
@@ -143,7 +145,11 @@ __realpath (const char *name, char *reso
     rpath = resolved;
   rpath_limit = rpath + path_max;
 
-  if (name[0] != '/')
+  /* This is always zero for Posix hosts, but can be 2 for MS-Windows
+     and MS-DOS X:/foo/bar file names.  */
+  prefix_len = FILE_SYSTEM_PREFIX_LEN (name);
+
+  if (!IS_ABSOLUTE_FILE_NAME (name))
     {
       if (!__getcwd (rpath, path_max))
         {
@@ -154,13 +160,19 @@ __realpath (const char *name, char *reso
     }
   else
     {
-      rpath[0] = '/';
-      dest = rpath + 1;
-      if (DOUBLE_SLASH_IS_DISTINCT_ROOT && name[1] == '/')
+      dest = rpath;
+      if (prefix_len)
+    {
+      memcpy (rpath, name, prefix_len);
+      dest += prefix_len;
+    }
+      *dest++ = '/';
+      if (DOUBLE_SLASH_IS_DISTINCT_ROOT && ISSLASH (name[1])
+      && !prefix_len)
         *dest++ = '/';
     }
 
-  for (start = end = name; *start; start = end)
+  for (start = end = name + prefix_len; *start; start = end)
     {
 #ifdef _LIBC
       struct stat64 st;
@@ -170,11 +182,11 @@ __realpath (const char *name, char *reso
       int n;
 
       /* Skip sequence of multiple path-separators.  */
-      while (*start == '/')
+      while (ISSLASH (*start))
         ++start;
 
       /* Find end of path component.  */
-      for (end = start; *end && *end != '/'; ++end)
+      for (end = start; *end && !ISSLASH (*end); ++end)
         /* Nothing.  */;
 
       if (end - start == 0)
@@ -184,7 +196,7 @@ __realpath (const char *name, char *reso
       else if (end - start == 2 && start[0] == '.' && start[1] == '.')
         {
           /* Back up to previous component, ignore if at root already.  */
-          if (dest > rpath + 1)
+          if (dest > rpath + prefix_len + 1)
             while ((--dest)[-1] != '/');
           if (DOUBLE_SLASH_IS_DISTINCT_ROOT && dest == rpath + 1
               && *dest == '/')
@@ -205,7 +217,7 @@ __realpath (const char *name, char *reso
               if (resolved)
                 {
                   __set_errno (ENAMETOOLONG);
-                  if (dest > rpath + 1)
+                  if (dest > rpath + prefix_len + 1)
                     dest--;
                   *dest = '\0';
                   goto error;
@@ -295,17 +307,25 @@ __realpath (const char *name, char *reso
               memmove (&extra_buf[n], end, len + 1);
               name = end = memcpy (extra_buf, buf, n);
 
-              if (buf[0] == '/')
+              if (IS_ABSOLUTE_FILE_NAME (buf))
                 {
-                  dest = rpath + 1;     /* It's an absolute symlink */
-                  if (DOUBLE_SLASH_IS_DISTINCT_ROOT && buf[1] == '/')
+          size_t pfxlen = FILE_SYSTEM_PREFIX_LEN (buf);
+
+          if (pfxlen)
+            memcpy (rpath, buf, pfxlen);
+                  dest = rpath + pfxlen;     /* It's an absolute symlink.  */
+          *dest++ = '/';
+                  if (DOUBLE_SLASH_IS_DISTINCT_ROOT && ISSLASH (buf[1])
+              && pfxlen == 0)
                     *dest++ = '/';
+          /* Install the new prefix to be in effect hereafter.  */
+          prefix_len = pfxlen;
                 }
               else
                 {
                   /* Back up to previous component, ignore if at root
                      already: */
-                  if (dest > rpath + 1)
+                  if (dest > rpath + prefix_len + 1)
                     while ((--dest)[-1] != '/');
                   if (DOUBLE_SLASH_IS_DISTINCT_ROOT && dest == rpath + 1
                       && *dest == '/')
@@ -319,7 +339,7 @@ __realpath (const char *name, char *reso
             }
         }
     }
-  if (dest > rpath + 1 && dest[-1] == '/')
+  if (dest > rpath + prefix_len + 1 && dest[-1] == '/')
     --dest;
   if (DOUBLE_SLASH_IS_DISTINCT_ROOT && dest == rpath + 1 && *dest == '/')
     dest++;

----------------------------------------------------------------------------------------------------------
i modified the two failures by hand

----------------------------------------------------------------------------------------------------------
Hunk #4 FAILED at 160:
   }
  else
    {
      dest = rpath;
      if (prefix_len)
    {
      memcpy (rpath, name, prefix_len);
      dest += prefix_len;
    }
      *dest++ = '/';
      if (DOUBLE_SLASH_IS_DISTINCT_ROOT && ISSLASH (name[1])
      && !prefix_len)
    *dest++ = '/';
      *dest = '\0';
    }

----------------------------------------------------------------------------------------------------------
Hunk #8 FAILED at 301:
              memmove (&extra_buf[n], end, len + 1);
              name = end = memcpy (extra_buf, buf, n);

          if (IS_ABSOLUTE_FILE_NAME (buf))
                {
          size_t pfxlen = FILE_SYSTEM_PREFIX_LEN (buf);
          
          if (pfxlen)
            memcpy (rpath, buf, pfxlen);
          dest = rpath + pfxlen;     /* It's an absolute symlink.  */
          *dest++ = '/';
          if (DOUBLE_SLASH_IS_DISTINCT_ROOT && ISSLASH (buf[1])
              && pfxlen == 0)
            *dest++ = '/';
          /* Install the new prefix to be in effect hereafter.  */
          prefix_len = pfxlen;
                }
              else
                {
                  /* Back up to previous component, ignore if at root
                     already: */
          if (dest > rpath + prefix_len + 1)
                    while ((--dest)[-1] != '/');
                  if (DOUBLE_SLASH_IS_DISTINCT_ROOT && dest == rpath + 1
                      && *dest == '/' && dest[1] != '/')
                    dest++;
                }
            }
          else if (!S_ISDIR (st.st_mode) && *end != '\0')
----------------------------------------------------------------------------------------------------------
then make continued:

----------------------------------------------------------------------------------------------------------
  SNARF  mallocs.doc
  SNARF  memoize.doc
../../libguile/memoize.c:479:***Mismatching FUNC_NAME.  Should be: `#define FUNC_NAME s_"@prompt"'
  SNARF  modules.doc
  SNARF  numbers.doc
  SNARF  objprop.doc
  SNARF  options.doc
  SNARF  pairs.doc
../../libguile/pairs.c:147:***Missing or erroneous `#define FUNC_NAME s_scm_cdr'
../../libguile/pairs.c:150:***Missing or erroneous #undef for scm_car:
../../libguile/pairs.c:155:***Missing or erroneous `#define FUNC_NAME s_scm_cddr'
../../libguile/pairs.c:158:***Missing or erroneous #undef for scm_cdar:
../../libguile/pairs.c:163:***Missing or erroneous `#define FUNC_NAME s_scm_cadr'
../../libguile/pairs.c:166:***Missing or erroneous #undef for scm_caar:
../../libguile/pairs.c:171:***Missing or erroneous `#define FUNC_NAME s_scm_cdddr'
../../libguile/pairs.c:174:***Missing or erroneous #undef for scm_cddar:
../../libguile/pairs.c:179:***Missing or erroneous `#define FUNC_NAME s_scm_cdadr'
../../libguile/pairs.c:182:***Missing or erroneous #undef for scm_cdaar:
../../libguile/pairs.c:187:***Missing or erroneous `#define FUNC_NAME s_scm_caddr'
../../libguile/pairs.c:190:***Missing or erroneous #undef for scm_cadar:
../../libguile/pairs.c:195:***Missing or erroneous `#define FUNC_NAME s_scm_caadr'
../../libguile/pairs.c:198:***Missing or erroneous #undef for scm_caaar:
../../libguile/pairs.c:203:***Missing or erroneous `#define FUNC_NAME s_scm_cddddr'
../../libguile/pairs.c:206:***Missing or erroneous #undef for scm_cdddar:
../../libguile/pairs.c:211:***Missing or erroneous `#define FUNC_NAME s_scm_cddadr'
../../libguile/pairs.c:214:***Missing or erroneous #undef for scm_cddaar:
../../libguile/pairs.c:219:***Missing or erroneous `#define FUNC_NAME s_scm_cdaddr'
../../libguile/pairs.c:222:***Missing or erroneous #undef for scm_cdadar:
../../libguile/pairs.c:227:***Missing or erroneous `#define FUNC_NAME s_scm_cdaadr'
../../libguile/pairs.c:230:***Missing or erroneous #undef for scm_cdaaar:
../../libguile/pairs.c:235:***Missing or erroneous `#define FUNC_NAME s_scm_cadddr'
../../libguile/pairs.c:238:***Missing or erroneous #undef for scm_caddar:
../../libguile/pairs.c:243:***Missing or erroneous `#define FUNC_NAME s_scm_cadadr'
../../libguile/pairs.c:246:***Missing or erroneous #undef for scm_cadaar:
../../libguile/pairs.c:251:***Missing or erroneous `#define FUNC_NAME s_scm_caaddr'
../../libguile/pairs.c:254:***Missing or erroneous #undef for scm_caadar:
../../libguile/pairs.c:259:***Missing or erroneous `#define FUNC_NAME s_scm_caaadr'
../../libguile/pairs.c:262:***Missing or erroneous #undef for scm_caaaar:
  SNARF  ports.doc
  SNARF  print.doc
  SNARF  procprop.doc
  SNARF  procs.doc
  SNARF  promises.doc
  SNARF  r6rs-ports.doc
  SNARF  random.doc
  SNARF  rdelim.doc
  SNARF  read.doc
  SNARF  root.doc
  SNARF  rw.doc
  SNARF  scmsigs.doc
  SNARF  script.doc
  SNARF  simpos.doc
  SNARF  smob.doc
  SNARF  sort.doc
  SNARF  srcprop.doc
  SNARF  srfi-1.doc
  SNARF  srfi-4.doc
  SNARF  srfi-13.doc
  SNARF  srfi-14.doc
  SNARF  srfi-60.doc
  SNARF  stackchk.doc
  SNARF  stacks.doc
  SNARF  stime.doc
  SNARF  strings.doc
  SNARF  strorder.doc
  SNARF  strports.doc
  SNARF  struct.doc
  SNARF  symbols.doc
  SNARF  threads.doc
  SNARF  throw.doc
  SNARF  trees.doc
  SNARF  uniform.doc
  SNARF  values.doc
  SNARF  variable.doc
  SNARF  vectors.doc
  SNARF  version.doc
  SNARF  vports.doc
  SNARF  weaks.doc
  SNARF  posix.doc
  SNARF  net_db.doc
  SNARF  socket.doc
  SNARF  win32-uname.doc
  SNARF  win32-socket.doc
  SNARF  regex-posix.doc
  SNARF  mkstemp.doc
  GEN      guile-procedures.texi
Backtrace:
In unknown file:
   ?: 3 [apply-smob/1 #<boot-closure b7a7b0 (_ _ _)> #t ...]
   ?: 2 [apply-smob/1 #<catch-closure f18ad0>]
   ?: 1 [primitive-eval ((@ # %) (begin # # #))]
   ?: 0 [primitive-load-path "e:\\temp\\files\\guile\\guile-2.0.6\\build\\libguile/e:/temp/files/guile/guile-2.0.6/build/meta/guild"]

ERROR: make[3]: *** [guile-procedures.texi] Error 1
make[3]: Leaving directory `/e/temp/files/guile/guile-2.0.6/build/libguile'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/e/temp/files/guile/guile-2.0.6/build/libguile'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/e/temp/files/guile/guile-2.0.6/build'
make: *** [all] Error 2
----------------------------------------------------------------------------------------------------------

i tried guile.exe from command line:

----------------------------------------------------------------------------------------------------------
>guile
ERROR: In procedure primitive-load-path:
ERROR: Unable to find file "ice-9/boot-9.scm" in load path
----------------------------------------------------------------------------------------------------------

then i use the full path in msys:
----------------------------------------------------------------------------------------------------------
>/e/temp/files/guile/guile-2.0.6/build/libguile/guile
Throw without catch before boot:
Throw to key misc-error with args ("primitive-load-path" "Unable to find file ~S in load path" ("ice-9/boot-9") #f)Aborting.

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
Cannot exit gracefully when init is in progress; aborting.

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
----------------------------------------------------------------------------------------------------------

then i googled and find a way to define the load-path:

----------------------------------------------------------------------------------------------------------
>export GUILE_LOAD_PATH=/e/temp/files/guile/guile-2.0.6/module/
----------------------------------------------------------------------------------------------------------

9) now i run guile.exe, but the error was very strange: 

----------------------------------------------------------------------------------------------------------
>guile
ERROR: Unbound variable: eval-when
----------------------------------------------------------------------------------------------------------

i don't know how to do now.