diff options
author | Jari Vetoniemi <jari.vetoniemi@indooratlas.com> | 2020-03-16 18:49:26 +0900 |
---|---|---|
committer | Jari Vetoniemi <jari.vetoniemi@indooratlas.com> | 2020-03-30 00:39:06 +0900 |
commit | fcbf63e62c627deae76c1b8cb8c0876c536ed811 (patch) | |
tree | 64cb17de3f41a2b6fef2368028fbd00349946994 /jni/iconv/m4/eilseq.m4 |
Fresh start
Diffstat (limited to 'jni/iconv/m4/eilseq.m4')
-rw-r--r-- | jni/iconv/m4/eilseq.m4 | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/jni/iconv/m4/eilseq.m4 b/jni/iconv/m4/eilseq.m4 new file mode 100644 index 0000000..792d514 --- /dev/null +++ b/jni/iconv/m4/eilseq.m4 @@ -0,0 +1,67 @@ +#serial 1 + +AC_PREREQ(2.50) + +# The EILSEQ errno value ought to be defined in <errno.h>, according to +# ISO C 99 and POSIX. But some systems (like SunOS 4) don't define it, +# and some systems (like BSD/OS) define it in <wchar.h> not <errno.h>. + +# Define EILSEQ as a C macro and as a substituted macro in such a way that +# 1. on all systems, after inclusion of <errno.h>, EILSEQ is usable, +# 2. on systems where EILSEQ is defined elsewhere, we use the same numeric +# value. + +AC_DEFUN([AC_EILSEQ], +[ + AC_REQUIRE([AC_PROG_CC])dnl + + dnl Check for any extra headers that could define EILSEQ. + AC_CHECK_HEADERS(wchar.h) + + AC_CACHE_CHECK([for EILSEQ], ac_cv_decl_EILSEQ, [ + AC_EGREP_CPP(yes,[ +#include <errno.h> +#ifdef EILSEQ +yes +#endif + ], have_eilseq=1) + if test -n "$have_eilseq"; then + dnl EILSEQ exists in <errno.h>. Don't need to define EILSEQ ourselves. + ac_cv_decl_EILSEQ=yes + else + AC_EGREP_CPP(yes,[ +#include <errno.h> +#if HAVE_WCHAR_H +#include <wchar.h> +#endif +#ifdef EILSEQ +yes +#endif + ], have_eilseq=1) + if test -n "$have_eilseq"; then + dnl EILSEQ exists in some other system header. + dnl Define it to the same value. + _AC_COMPUTE_INT([EILSEQ], ac_cv_decl_EILSEQ, [ +#include <errno.h> +#if HAVE_WCHAR_H +#include <wchar.h> +#endif +/* The following two lines are a workaround against an autoconf-2.52 bug. */ +#include <stdio.h> +#include <stdlib.h> +]) + else + dnl EILSEQ isn't defined by the system. Define EILSEQ ourselves, but + dnl don't define it as EINVAL, because iconv() callers want to + dnl distinguish EINVAL and EILSEQ. + ac_cv_decl_EILSEQ=ENOENT + fi + fi + ]) + if test "$ac_cv_decl_EILSEQ" != yes; then + AC_DEFINE_UNQUOTED([EILSEQ], [$ac_cv_decl_EILSEQ], + [Define as good substitute value for EILSEQ.]) + EILSEQ="$ac_cv_decl_EILSEQ" + AC_SUBST(EILSEQ) + fi +]) |