mirror of git://gcc.gnu.org/git/gcc.git
(The previous iconv-related commit missed the config/iconv.m4 change.)
Original description:
This is the second in a series of patches to make a build with an
in-tree GNU libiconv work as designed.
Currently GDB is the only toolchain component which actually uses an
in-tree libiconv. This patch modifies the common AM_ICONV to use an
in-tree libiconv when present and not already provided by libc.
(GDB's workaround uses an in-tree libiconv even when libc provides
iconv(3); I'm not sure when or why that would be desirable.)
config/ChangeLog:
2015-08-24 Yaakov Selkowitz <yselkowi@redhat.com>
* iconv.m4 (AM_ICONV_LINK): Use in-tree libiconv when present.
---
config/ChangeLog | 4 +++
config/iconv.m4 | 47 +++++++++++++++++++++------
4 files changed, 112 insertions(+), 36 deletions(-)
diff --git a/config/iconv.m4 b/config/iconv.m4
index c5f3579..5f9304a 100644
--- a/config/iconv.m4
+++ b/config/iconv.m4
@@ -7,6 +7,7 @@ dnl that contains a configuration script generated by Autoconf, under
dnl the same distribution terms as the rest of that program.
dnl From Bruno Haible.
+dnl with modifications to support building with in-tree libiconv
AC_DEFUN([AM_ICONV_LINKFLAGS_BODY],
[
@@ -28,24 +29,51 @@ AC_DEFUN([AM_ICONV_LINK],
dnl accordingly.
AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
- dnl Add $INCICONV to CPPFLAGS before performing the following checks,
- dnl because if the user has installed libiconv and not disabled its use
- dnl via --without-libiconv-prefix, he wants to use it. The first
- dnl AC_TRY_LINK will then fail, the second AC_TRY_LINK will succeed.
- am_save_CPPFLAGS="$CPPFLAGS"
- AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV])
-
AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [
am_cv_func_iconv="no, consider installing GNU libiconv"
am_cv_lib_iconv=no
+ dnl Add $INCICONV to CPPFLAGS before performing the first check,
+ dnl because if the user has installed libiconv and not disabled its use
+ dnl via --without-libiconv-prefix, he wants to use it. This first
+ dnl AC_TRY_LINK will then fail, the second AC_TRY_LINK will succeed.
+ am_save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $INCICONV"
AC_TRY_LINK([#include <stdlib.h>
#include <iconv.h>],
[iconv_t cd = iconv_open("","");
iconv(cd,NULL,NULL,NULL,NULL);
iconv_close(cd);],
am_cv_func_iconv=yes)
+ CPPFLAGS="$am_save_CPPFLAGS"
+
+ if test "$am_cv_func_iconv" != yes && test -d ../libiconv; then
+ for _libs in .libs _libs; do
+ am_save_CPPFLAGS="$CPPFLAGS"
+ am_save_LIBS="$LIBS"
+ CPPFLAGS="$CPPFLAGS -I../libiconv/include"
+ LIBS="$LIBS ../libiconv/lib/$_libs/libiconv.a"
+ AC_TRY_LINK([#include <stdlib.h>
+#include <iconv.h>],
+ [iconv_t cd = iconv_open("","");
+ iconv(cd,NULL,NULL,NULL,NULL);
+ iconv_close(cd);],
+ INCICONV="-I../libiconv/include"
+ LIBICONV='${top_builddir}'/../libiconv/lib/$_libs/libiconv.a
+ LTLIBICONV='${top_builddir}'/../libiconv/lib/libiconv.la
+ am_cv_lib_iconv=yes
+ am_cv_func_iconv=yes)
+ CPPFLAGS="$am_save_CPPFLAGS"
+ LIBS="$am_save_LIBS"
+ if test "$am_cv_func_iconv" = "yes"; then
+ break
+ fi
+ done
+ fi
+
if test "$am_cv_func_iconv" != yes; then
+ am_save_CPPFLAGS="$CPPFLAGS"
am_save_LIBS="$LIBS"
+ CPPFLAGS="$LIBS $INCICONV"
LIBS="$LIBS $LIBICONV"
AC_TRY_LINK([#include <stdlib.h>
#include <iconv.h>],
@@ -54,6 +82,7 @@ AC_DEFUN([AM_ICONV_LINK],
iconv_close(cd);],
am_cv_lib_iconv=yes
am_cv_func_iconv=yes)
+ CPPFLAGS="$am_save_CPPFLAGS"
LIBS="$am_save_LIBS"
fi
])
@@ -61,12 +90,10 @@ AC_DEFUN([AM_ICONV_LINK],
AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.])
fi
if test "$am_cv_lib_iconv" = yes; then
+ AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV])
AC_MSG_CHECKING([how to link with libiconv])
AC_MSG_RESULT([$LIBICONV])
else
- dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV
- dnl either.
- CPPFLAGS="$am_save_CPPFLAGS"
LIBICONV=
LTLIBICONV=
fi
--
1.9.3
From-SVN: r227118
|
||
|---|---|---|
| .. | ||
| ChangeLog | ||
| acinclude.m4 | ||
| acx.m4 | ||
| asmcfi.m4 | ||
| bitfields.m4 | ||
| bootstrap-O1.mk | ||
| bootstrap-O3.mk | ||
| bootstrap-asan.mk | ||
| bootstrap-debug-big.mk | ||
| bootstrap-debug-ckovw.mk | ||
| bootstrap-debug-lean.mk | ||
| bootstrap-debug-lib.mk | ||
| bootstrap-debug.mk | ||
| bootstrap-lto-noplugin.mk | ||
| bootstrap-lto.mk | ||
| bootstrap-mpx.mk | ||
| bootstrap-time.mk | ||
| bootstrap-ubsan.mk | ||
| codeset.m4 | ||
| depstand.m4 | ||
| dfp.m4 | ||
| elf.m4 | ||
| enable.m4 | ||
| extensions.m4 | ||
| futex.m4 | ||
| gc++filt.m4 | ||
| gcc-plugin.m4 | ||
| gettext-sister.m4 | ||
| gettext.m4 | ||
| glibc21.m4 | ||
| gthr.m4 | ||
| gxx-include-dir.m4 | ||
| iconv.m4 | ||
| intdiv0.m4 | ||
| inttypes-pri.m4 | ||
| inttypes.m4 | ||
| inttypes_h.m4 | ||
| isl.m4 | ||
| largefile.m4 | ||
| lcmessage.m4 | ||
| ld-symbolic.m4 | ||
| lead-dot.m4 | ||
| lib-ld.m4 | ||
| lib-link.m4 | ||
| lib-prefix.m4 | ||
| libstdc++-raw-cxx.m4 | ||
| lthostflags.m4 | ||
| math.m4 | ||
| mh-alpha-linux | ||
| mh-cygwin | ||
| mh-darwin | ||
| mh-djgpp | ||
| mh-mingw | ||
| mh-pa | ||
| mh-pa-hpux10 | ||
| mh-ppc-aix | ||
| mmap.m4 | ||
| mt-alphaieee | ||
| mt-d30v | ||
| mt-gnu | ||
| mt-mips-elfoabi | ||
| mt-mips-gnu | ||
| mt-mips16-compat | ||
| mt-nios2-elf | ||
| mt-ospace | ||
| mt-sde | ||
| mt-spu | ||
| multi.m4 | ||
| nls.m4 | ||
| no-executables.m4 | ||
| override.m4 | ||
| picflag.m4 | ||
| plugins.m4 | ||
| po.m4 | ||
| proginstall.m4 | ||
| progtest.m4 | ||
| sjlj.m4 | ||
| stdint.m4 | ||
| stdint_h.m4 | ||
| target-posix | ||
| tcl.m4 | ||
| tls.m4 | ||
| uintmax_t.m4 | ||
| ulonglong.m4 | ||
| unwind_ipinfo.m4 | ||
| warnings.m4 | ||
| weakref.m4 | ||
| zlib.m4 | ||