[PATCH] Re: 1.7.9, libcharset missing from EXTLIBS
From: Дилян Палаузов <hidden>
Date: 2016-06-15 22:53:03
Subsystem:
kernel build + files below scripts/ (unless maintained elsewhere), the rest · Maintainers:
Nathan Chancellor, Nicolas Schier, Linus Torvalds
The function locale_charset might appear in libiconv as local symbol. In this case linking with -lcharset delivers locale_charset, when the function is exported from that library. This patch defines a new Autoconf/make variable CHARSET_LIB to contain the library exporting locale_charset and fixes configure.ac to fill CHARSET_LIB with " -lcharset", when locale_charset is not exported from libiconv, but is exported from libcharset, and amends EXTLIBS to include CHARSET_LIB when HAVE_LIBCHARSET_H is defined. Signed-off-by: Дилян Палаузов <redacted> --- Makefile | 6 ++++++ config.mak.in | 1 + configure.ac | 10 ++++++++++ 3 files changed, 17 insertions(+), 0 deletions(-)
diff --git a/Makefile b/Makefile
index 87fb30a..571d864 100644
--- a/Makefile
+++ b/Makefile@@ -56,6 +56,11 @@ all:: # FreeBSD can use either, but MinGW and some others need to use # libcharset.h's locale_charset() instead. # +# Define CHARSET_LIB to contain the additional library exporting the symbol +# locale_charset to link against. configure.ac checks if locale_charset is +# exported from libiconv, if not, it checks if locale_charset is
exported from +# libcharset and defines then CHARSET_LIB to -lcharset . +# # Define LIBC_CONTAINS_LIBINTL if your gettext implementation doesn't # need -lintl when linking. #
@@ -1698,6 +1703,7 @@ endif ifdef HAVE_LIBCHARSET_H BASIC_CFLAGS += -DHAVE_LIBCHARSET_H + EXTLIBS +=$(CHARSET_LIB) endif ifdef HAVE_DEV_TTY
diff --git a/config.mak.in b/config.mak.in
index 10698c8..b2ba710 100644
--- a/config.mak.in
+++ b/config.mak.in@@ -74,3 +74,4 @@ SNPRINTF_RETURNS_BOGUS=@SNPRINTF_RETURNS_BOGUS@ NO_PTHREADS=@NO_PTHREADS@ PTHREAD_CFLAGS=@PTHREAD_CFLAGS@ PTHREAD_LIBS=@PTHREAD_LIBS@ +CHARSET_LIB=@CHARSET_LIB@
diff --git a/configure.ac b/configure.ac
index 630dbdd..1c21a5b 100644
--- a/configure.ac
+++ b/configure.ac@@ -836,6 +836,16 @@ AC_CHECK_HEADER([libcharset.h], [HAVE_LIBCHARSET_H=YesPlease], [HAVE_LIBCHARSET_H=]) AC_SUBST(HAVE_LIBCHARSET_H) +# Define CHARSET_LIB if libiconv does not export the locale_charset symbol +# and libcharset does +CHARSET_LIB= +AC_CHECK_LIB([iconv], [locale_charset], + [], + [AC_CHECK_LIB([charset], [locale_charset], + [CHARSET_LIB=" -lcharset"]) + ] +) +AC_SUBST(CHARSET_LIB) # # Define NO_STRCASESTR if you don't have strcasestr. GIT_CHECK_FUNC(strcasestr,
--
1.7.9
On 12.02.2012 11:30, Junio C Hamano wrote:
> Дилян Палаузов <dilyan.palauzov@aegee.org> writes:
>
>> diff -u git-1.7.9.orig/config.mak.in git-1.7.9/config.mak.in
>> --- git-1.7.9.orig/config.mak.in 2012-01-27 20:51:04.000000000 +0000
>> +++ git-1.7.9/config.mak.in 2012-02-12 00:52:41.457968080 +0000
>> @@ -74,3 +74,4 @@
>> NO_PTHREADS=@NO_PTHREADS@
>> PTHREAD_CFLAGS=@PTHREAD_CFLAGS@
>> PTHREAD_LIBS=@PTHREAD_LIBS@
>> +LINK_CHARSET=@LINK_CHARSET@
>> diff -u git-1.7.9.orig/configure.ac git-1.7.9/configure.ac
>> --- git-1.7.9.orig/configure.ac 2012-01-27 20:51:04.000000000 +0000
>> +++ git-1.7.9/configure.ac 2012-02-12 00:44:29.222967868 +0000
>> @@ -836,6 +836,18 @@
>> [HAVE_LIBCHARSET_H=YesPlease],
>> [HAVE_LIBCHARSET_H=])
>> AC_SUBST(HAVE_LIBCHARSET_H)
>> +# Define LINK_LIBCHARSET if libiconv does not export the
>
> Because the use of configure is optional in our build infrastructure, I
> wouldn't have objected if this comment were missing from configure.ac, but
> the new variable *must* be described in Makefile (see the top 250 lines or
> so of that file).
>
> I also need to point out that LINK_LIBCHARSET does not sit very well with
> the way how existing Makefile variables are named. Perhaps make the new
> variable contain the necessary string ("-lcharset" in your case), and name
> it CHARSET_LIB or something? By doing so, when we find a platform that
> has the necessary locale_charset() not in libcharset.{a,so} but somewhere
> else, e.g. libxyzzy.a, we can accomodate it with "CHARSET_LIB = -lxyzzy".
>
> Thanks. Also as Ævar pointed out, please do not forget to sign off your
> patch.Attachments
- dilyan_palauzov.vcf [text/x-vcard] 381 bytes · preview