Re: Guile 2.2 on MSYS2 + MinGW
> From: Matthew Keeter> Date: Thu, 18 Jan 2018 10:18:36 -0500 > > Yup, I’m building 2.2.3. I see mktime.c in guile-2.2.3/lib, but do not see > mktime.o when I objdump libgnu.a, indicating that it’s not being built. > > In config.log, I see a few lines that could be relevant: > > configure:34662: checking for working mktime > ... > gl_cv_func_working_mktime=yes > ... > GNULIB_MKTIME=‘1' > ... > REPLACE_MKTIME=‘0' > ... > gl_GNULIB_ENABLED_mktime_FALSE='#' > gl_GNULIB_ENABLED_mktime_TRUE=‘' > > (full config.log is here: > https://gist.github.com/mkeeter/81c273069a2804ad8d53e72533f6f8da) > > Does this offer any insight? I’m confused by the conflicting GNULIB_MKTIME vs > gl_GNULIB_ENABLED_mktime_TRUE, but am not adept at parsing automake outputs… Then this sounds like a bug in Gnulib: it determines that your platform doesn't need mktime, but it "forgets" that timegm, which your platform does need, depends on mktime. So I suggest to report this to the Gnulib mailing list, and I hope they will propose a solution. Meanwhile, you can continue the build by copy/pasting the source of mktime.c into some Gnulib source that is being compiled (e.g. timegm.c, which needs it in the first place), and re-running "make".
Re: Guile 2.2 on MSYS2 + MinGW
Yup, I’m building 2.2.3. I see mktime.c in guile-2.2.3/lib, but do not see mktime.o when I objdump libgnu.a, indicating that it’s not being built. In config.log, I see a few lines that could be relevant: configure:34662: checking for working mktime ... gl_cv_func_working_mktime=yes ... GNULIB_MKTIME=‘1' ... REPLACE_MKTIME=‘0' ... gl_GNULIB_ENABLED_mktime_FALSE='#' gl_GNULIB_ENABLED_mktime_TRUE=‘' (full config.log is here: https://gist.github.com/mkeeter/81c273069a2804ad8d53e72533f6f8da) Does this offer any insight? I’m confused by the conflicting GNULIB_MKTIME vs gl_GNULIB_ENABLED_mktime_TRUE, but am not adept at parsing automake outputs… -Matt > On Jan 18, 2018, at 9:09 AM, Eli Zaretskiiwrote: > >> From: Matthew Keeter >> Date: Wed, 17 Jan 2018 17:30:02 -0500 >> Cc: guile-devel@gnu.org >> >> Following your advice, I’m now trying to build a 32-bit version under MinGW, >> This fails a little earlier in the process: >> >> make[2]: Entering directory >> '/home/mkeeter/guile/src/build-i686-w64-mingw32/libguile' >> make all-am >> make[3]: Entering directory >> '/home/mkeeter/guile/src/build-i686-w64-mingw32/libguile' >> CCLD libguile-2.2.la >> ../lib/.libs/libgnu.a(timegm.o):timegm.c:(.text+0x22): undefined reference >> to `mktime_internal' >> collect2.exe: error: ld returned 1 exit status >> make[3]: *** [Makefile:2373: libguile-2.2.la] Error 1 >> >> This appears to be the same bug as #24681 >> (http://lists.gnu.org/archive/html/bug-guile/2017-03/msg00095.html), >> but I don’t see anyone successfully resolving it >> (and I can’t find any references to it in the Git history). >> >> Any ideas? > > mktime_internal is in Gnulib's mktime.c. What version of Guile 2.2.x > are you building? The latest v2.2.3 includes mktime.c in > guile-2.2.3/lib/, do you have it? If you do have it, do you see > mktime.o in libgnu.a? > > If mktime.c is in the tree, but is not compiled, you need to > investigate why, by looking at config.log, where the configure script > determines whether your system needs mktime.c and/or mktime_internal.
Re: Guile 2.2 on MSYS2 + MinGW
> From: Matthew Keeter> Date: Wed, 17 Jan 2018 17:30:02 -0500 > Cc: guile-devel@gnu.org > > Following your advice, I’m now trying to build a 32-bit version under MinGW, > This fails a little earlier in the process: > > make[2]: Entering directory > '/home/mkeeter/guile/src/build-i686-w64-mingw32/libguile' > make all-am > make[3]: Entering directory > '/home/mkeeter/guile/src/build-i686-w64-mingw32/libguile' > CCLD libguile-2.2.la > ../lib/.libs/libgnu.a(timegm.o):timegm.c:(.text+0x22): undefined reference to > `mktime_internal' > collect2.exe: error: ld returned 1 exit status > make[3]: *** [Makefile:2373: libguile-2.2.la] Error 1 > > This appears to be the same bug as #24681 > (http://lists.gnu.org/archive/html/bug-guile/2017-03/msg00095.html), > but I don’t see anyone successfully resolving it > (and I can’t find any references to it in the Git history). > > Any ideas? mktime_internal is in Gnulib's mktime.c. What version of Guile 2.2.x are you building? The latest v2.2.3 includes mktime.c in guile-2.2.3/lib/, do you have it? If you do have it, do you see mktime.o in libgnu.a? If mktime.c is in the tree, but is not compiled, you need to investigate why, by looking at config.log, where the configure script determines whether your system needs mktime.c and/or mktime_internal.