Re: Guile 2.2 on MSYS2 + MinGW

2018-01-18 Thread Eli Zaretskii
> 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

2018-01-18 Thread Matthew Keeter
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 Zaretskii  wrote:
> 
>> 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

2018-01-18 Thread Eli Zaretskii
> 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.