git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 1/2] configure.ac: fix old iconv check

From
Jeff King <peff@peff.net>
Date
Jan 16, 2017, 21:41 UTC
Message-ID
<20170116214111.v2imkedzyofcpt6b@sigill.intra.peff.net>
In-Reply-To
<20170116195638.3713-1-bernd.kuhls@writeme.com>
On Mon, Jan 16, 2017 at 08:56:37PM +0100, Bernd Kuhls wrote:
Show 9 quoted lines
> According to
> https://www.gnu.org/software/autoconf/manual/autoconf-2.69/html_node/Running-the-Compiler.html
> the parameter syntax of AC_COMPILE_IFELSE is
> 
> (input, [action-if-true], [action-if-false])
> 
> Displaying "no" when the test was positive and enabling support for old
> iconv implementations by OLD_ICONV=UnfortunatelyYes when the test fails
> it obviously wrong. This patch switches the actions to fix the problem.
Hrm. But the test code is:
  # Define OLD_ICONV if your library has an old iconv(), where the second
  # (input buffer pointer) parameter is declared with type (const char **).
  AC_DEFUN([OLDICONVTEST_SRC], [
  AC_LANG_PROGRAM([[
  #include <iconv.h>
  
  extern size_t iconv(iconv_t cd,
                      char **inbuf, size_t *inbytesleft,
                      char **outbuf, size_t *outbytesleft);
  ]], [])])

Which will compile correctly for the _new_ code, but not the old. So when the test is positive, then "no", we do not need to set the OLD_ICONV flag.

The logic would probably be clearer if the test were reversed. It would mean that other compilation problems (e.g., you do not have iconv.h at all) would fail to see OLD_ICONV, but that seems reasonable.

-Peff
Previous: Bernd Kuhls
Message 3 of 3 in “configure.ac: fix old iconv check”
  1. 1/2 configure.ac: fix old iconv checkBernd Kuhls, Jan 16, 2017
  2. 2/2 configure.ac: Fix --without-iconvBernd Kuhls, Jan 16, 2017
  3. Jeff KingJan 16, 2017

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.