(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
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
ChangeLog | Loading commit data... | |
acinclude.m4 | Loading commit data... | |
acx.m4 | Loading commit data... | |
asmcfi.m4 | Loading commit data... | |
bitfields.m4 | Loading commit data... | |
bootstrap-O1.mk | Loading commit data... | |
bootstrap-O3.mk | Loading commit data... | |
bootstrap-asan.mk | Loading commit data... | |
bootstrap-debug-big.mk | Loading commit data... | |
bootstrap-debug-ckovw.mk | Loading commit data... | |
bootstrap-debug-lean.mk | Loading commit data... | |
bootstrap-debug-lib.mk | Loading commit data... | |
bootstrap-debug.mk | Loading commit data... | |
bootstrap-lto-noplugin.mk | Loading commit data... | |
bootstrap-lto.mk | Loading commit data... | |
bootstrap-mpx.mk | Loading commit data... | |
bootstrap-time.mk | Loading commit data... | |
bootstrap-ubsan.mk | Loading commit data... | |
codeset.m4 | Loading commit data... | |
depstand.m4 | Loading commit data... | |
dfp.m4 | Loading commit data... | |
elf.m4 | Loading commit data... | |
enable.m4 | Loading commit data... | |
extensions.m4 | Loading commit data... | |
futex.m4 | Loading commit data... | |
gc++filt.m4 | Loading commit data... | |
gcc-plugin.m4 | Loading commit data... | |
gettext-sister.m4 | Loading commit data... | |
gettext.m4 | Loading commit data... | |
glibc21.m4 | Loading commit data... | |
gthr.m4 | Loading commit data... | |
gxx-include-dir.m4 | Loading commit data... | |
iconv.m4 | Loading commit data... | |
intdiv0.m4 | Loading commit data... | |
inttypes-pri.m4 | Loading commit data... | |
inttypes.m4 | Loading commit data... | |
inttypes_h.m4 | Loading commit data... | |
isl.m4 | Loading commit data... | |
largefile.m4 | Loading commit data... | |
lcmessage.m4 | Loading commit data... | |
ld-symbolic.m4 | Loading commit data... | |
lead-dot.m4 | Loading commit data... | |
lib-ld.m4 | Loading commit data... | |
lib-link.m4 | Loading commit data... | |
lib-prefix.m4 | Loading commit data... | |
libstdc++-raw-cxx.m4 | Loading commit data... | |
lthostflags.m4 | Loading commit data... | |
math.m4 | Loading commit data... | |
mh-alpha-linux | Loading commit data... | |
mh-cygwin | Loading commit data... | |
mh-darwin | Loading commit data... | |
mh-djgpp | Loading commit data... | |
mh-mingw | Loading commit data... | |
mh-pa | Loading commit data... | |
mh-pa-hpux10 | Loading commit data... | |
mh-ppc-aix | Loading commit data... | |
mmap.m4 | Loading commit data... | |
mt-alphaieee | Loading commit data... | |
mt-d30v | Loading commit data... | |
mt-gnu | Loading commit data... | |
mt-mips-elfoabi | Loading commit data... | |
mt-mips-gnu | Loading commit data... | |
mt-mips16-compat | Loading commit data... | |
mt-nios2-elf | Loading commit data... | |
mt-ospace | Loading commit data... | |
mt-sde | Loading commit data... | |
mt-spu | Loading commit data... | |
multi.m4 | Loading commit data... | |
nls.m4 | Loading commit data... | |
no-executables.m4 | Loading commit data... | |
override.m4 | Loading commit data... | |
picflag.m4 | Loading commit data... | |
plugins.m4 | Loading commit data... | |
po.m4 | Loading commit data... | |
proginstall.m4 | Loading commit data... | |
progtest.m4 | Loading commit data... | |
sjlj.m4 | Loading commit data... | |
stdint.m4 | Loading commit data... | |
stdint_h.m4 | Loading commit data... | |
target-posix | Loading commit data... | |
tcl.m4 | Loading commit data... | |
tls.m4 | Loading commit data... | |
uintmax_t.m4 | Loading commit data... | |
ulonglong.m4 | Loading commit data... | |
unwind_ipinfo.m4 | Loading commit data... | |
warnings.m4 | Loading commit data... | |
weakref.m4 | Loading commit data... | |
zlib.m4 | Loading commit data... |