Subject: bug#21425: closed (Re: bug#21425: [PATCH] Remove needless mkstemp() check)

From: [email-masked] (GNU bug Tracking System)
Date: Thu, 29 Oct 2015 23:00:07 +0000

Your bug report

#21425: [PATCH] Remove needless mkstemp() check

which was filed against the guile package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
21425: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=21425
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#21425: [PATCH] Remove needless mkstemp() check
From: [email-masked] (Ludovic Courtès)
To: Kouhei Sutou <[email-masked]>
Cc: [email-masked]
Date: Thu, 29 Oct 2015 23:59:45 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Kouhei Sutou <[email-masked]> skribis:

> There is mkstemp() check by AC_REPLACE_FUNCS() in
> configure.ac. If mkstemp() isn't found, mkstemp() is defined
> by gnulib-tool.
>
> But mkstemp() is always defined in libguile/mkstemp.c. If we
> define mkstemp() by gnulib-tool, mkstemp() is defined
> twice. It caused a link error.
>
> The situation is caused when we cross-compile Guile by MinGW
> because mkstemp() doesn't exist on Windows.

Indeed.  I pushed as similar patch as efd8a43.

Thank you!

Ludo’.

Subject: [PATCH] Remove needless mkstemp() check
From: Kouhei Sutou <[email-masked]>
To: [email-masked]
Date: Sun, 06 Sep 2015 16:40:42 +0900 (JST)
List-Id: <debbugs-submit.debbugs.gnu.org>

There is mkstemp() check by AC_REPLACE_FUNCS() in
configure.ac. If mkstemp() isn't found, mkstemp() is defined
by gnulib-tool.

But mkstemp() is always defined in libguile/mkstemp.c. If we
define mkstemp() by gnulib-tool, mkstemp() is defined
twice. It caused a link error.

The situation is caused when we cross-compile Guile by MinGW
because mkstemp() doesn't exist on Windows.

Here is an error message on my environment:

      CCLD     libguile-2.0.la
    ../lib/.libs/libgnu.a(mkstemp.o): In function `mkstemp':
    .../lib/mkstemp.c:48: multiple definition of `mkstemp'
    .libs/libguile_2.0_la-mkstemp.o:.../libguile/mkstemp.c:68: first defined here
    collect2: error: ld returned 1 exit status
    Makefile:2242: recipe for target 'libguile-2.0.la' failed
    make[3]: *** [libguile-2.0.la] Error 1

I attach a patch to fix this problem.

>From 6fca60d595f464b7f505d9132087836ca48d4947 Mon Sep 17 00:00:00 2001
From: Kouhei Sutou <[email-masked]>
Date: Sun, 6 Sep 2015 15:53:20 +0900
Subject: [PATCH] Remove needless mkstemp() check

It causes build error on cross-compiling for Windows by the following
multiple definitions error:

      CCLD     libguile-2.0.la
    ../lib/.libs/libgnu.a(mkstemp.o): In function `mkstemp':
    .../lib/mkstemp.c:48: multiple definition of `mkstemp'
    .libs/libguile_2.0_la-mkstemp.o:.../libguile/mkstemp.c:68: first defined here
    collect2: error: ld returned 1 exit status
    Makefile:2242: recipe for target 'libguile-2.0.la' failed
    make[3]: *** [libguile-2.0.la] Error 1

* configure.ac: Remove mkstemp() check. mkstemp() is always defined in
  libguile/mkstemp.c.
---
 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index 19e00d8..49e937b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1124,7 +1124,7 @@ if test "$enable_regex" = yes; then
    AC_DEFINE([ENABLE_REGEX], 1, [Define when regex support is enabled.])
 fi
 
-AC_REPLACE_FUNCS([strerror memmove mkstemp])
+AC_REPLACE_FUNCS([strerror memmove])
 
 # Reasons for testing:
 #   asinh, acosh, atanh, trunc - C99 standard, generally not available on
-- 
2.5.1