mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-12-18 08:23:50 +08:00
d485982286
(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 |
||
---|---|---|
.. | ||
acinclude.m4 | ||
acx.m4 | ||
asmcfi.m4 | ||
bitfields.m4 | ||
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-O1.mk | ||
bootstrap-O3.mk | ||
bootstrap-time.mk | ||
bootstrap-ubsan.mk | ||
ChangeLog | ||
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_h.m4 | ||
inttypes-pri.m4 | ||
inttypes.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-mips16-compat | ||
mt-mips-elfoabi | ||
mt-mips-gnu | ||
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_h.m4 | ||
stdint.m4 | ||
target-posix | ||
tcl.m4 | ||
tls.m4 | ||
uintmax_t.m4 | ||
ulonglong.m4 | ||
unwind_ipinfo.m4 | ||
warnings.m4 | ||
weakref.m4 | ||
zlib.m4 |