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

[PATCH/RFC] autoconf: Add test for OLD_ICONV

From
Jakub Narebski <jnareb@gmail.com>
Date
Dec 5, 2007, 15:45 UTC
Message-ID
<1196869526-2197-1-git-send-email-jnareb@gmail.com>
In-Reply-To
<7vd4u5l29v.fsf@gitster.siamese.dyndns.org>

Update configure.ac (and config.mak.in) to keep up with git development by adding [compile] test whether your library has an old iconv(), where the second (input buffer pointer) parameter is declared with type (const char **) (OLD_ICONV).

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
---
This patch needs checking if it correctly sets OLD_ICONV
when needed.  I have checked only that it is not set when
with new iconv() declaration.  Could people using Cygwin
(and other with OLD_ICONV: Darwin) test it?

I should probably used AC_LANG_PROGRAM like for NO_C99_FORMAT instead of generating whole programlet^W test program by hand (I hope that for example I haven't missed some header file which needs to be included); I have followed example for NO_ICONV / NEEDS_LIBICONV and NO_DEFLATE_BOUND test. I'm also not sure if I have put this test in the correct autoconf section, but that is probably matter of taste.

P.S. Is there any convention on where to use YesPlease, and where UnfortunatelyYes when setting Makefile build configuration variables?

 config.mak.in |    1 +
 configure.ac  |   21 +++++++++++++++++++++
 2 files changed, 22 insertions(+), 0 deletions(-)
diff --git a/config.mak.in b/config.mak.in
index 11d256e..7d5df9b 100644
--- a/config.mak.in
+++ b/config.mak.in
@@ -41,4 +41,5 @@ NO_STRTOUMAX=@NO_STRTOUMAX@
 NO_SETENV=@NO_SETENV@
 NO_MKDTEMP=@NO_MKDTEMP@
 NO_ICONV=@NO_ICONV@
+OLD_ICONV=@OLD_ICONV@
 NO_DEFLATE_BOUND=@NO_DEFLATE_BOUND@
diff --git a/configure.ac b/configure.ac
index 5f8a15b..5d2936e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -212,6 +212,27 @@ test -n "$NEEDS_SOCKET" && LIBS="$LIBS -lsocket"
 
 
 ## Checks for header files.
+AC_MSG_NOTICE([CHECKS for header files])
+#
+# 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], [[
+#include <iconv.h>
+
+int main(void)
+{
+	iconv_t cd;
+	char *ibp, *obp;
+	size_t insz, outsz;
+	iconv(cd, &ibp, &insz, &obp, &outsz);
+}
+]])
+AC_MSG_CHECKING([for old iconv()])
+AC_COMPILE_IFELSE(OLDICONVTEST_SRC,
+	[AC_MSG_RESULT([no])],
+	[AC_MSG_RESULT([yes])
+	OLD_ICONV=YesPlease])
+AC_SUBST(OLD_ICONV)
 
 
 ## Checks for typedefs, structures, and compiler characteristics.
-- 
1.5.3.6
Previous: Matt KraaiNext: Brian Gernhardt
Message 6 of 20 in “autoconf: Add tests for memmem, strtoumax and mkdtemp functions”
  1. autoconf: Add tests for memmem, strtoumax and mkdtemp functionsJakub Narebski, Nov 19, 2007
  2. Shawn O. PearceNov 21, 2007
  3. Jakub NarebskiNov 21, 2007
  4. Stefan-W. HahnNov 20, 2007
  5. Matt KraaiNov 21, 2007
  6. autoconf: Add test for OLD_ICONVJakub Narebski, Dec 5, 2007
  7. Brian GernhardtDec 5, 2007
  8. Jakub NarebskiDec 5, 2007
  9. Wincent ColaiutaDec 5, 2007
  10. Jakub NarebskiDec 5, 2007
  11. Wincent ColaiutaDec 5, 2007
  12. Jakub NarebskiDec 5, 2007
  13. Brian GernhardtDec 5, 2007
  14. Wincent ColaiutaDec 6, 2007
  15. Junio C HamanoDec 5, 2007
  16. Jakub NarebskiDec 5, 2007
  17. Junio C HamanoDec 5, 2007
  18. autoconf: Add test for OLD_ICONV (squelching compiler warning)Jakub Narebski, Dec 5, 2007
  19. Junio C HamanoDec 5, 2007
  20. Pascal ObryDec 5, 2007

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.