Re: 1.7.9, libcharset missing from EXTLIBS

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

please consider the patch below as fix for the problem. It checks if locale_charset is not in libiconv, but in libcharset and in this case appends -lcharset to EXTLIBS.

Със здраве
  Дилян

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 locale_charset symbol
+# and liblibcharset does
+LINK_CHARSET=
+AC_CHECK_LIB([iconv], [locale_charset],
+       [],
+       [AC_CHECK_LIB([charset], [locale_charset],
+                     [LINK_CHARSET=Yes])
+       ]
+)
+AC_SUBST(LINK_CHARSET)
+
+
 #
 # Define NO_STRCASESTR if you don't have strcasestr.
 GIT_CHECK_FUNC(strcasestr,
diff -u git-1.7.9.orig/Makefile git-1.7.9/Makefile
--- git-1.7.9.orig/Makefile     2012-01-27 20:51:04.000000000 +0000
+++ git-1.7.9/Makefile  2012-02-12 00:35:23.982967555 +0000
@@ -1692,6 +1692,9 @@

 ifdef HAVE_LIBCHARSET_H
        BASIC_CFLAGS += -DHAVE_LIBCHARSET_H
+ifdef LINK_CHARSET
+       EXTLIBS += -lcharset
+endif
 endif

 ifdef HAVE_DEV_TTY

On 10.02.2012 21:25, Junio C Hamano wrote:
Junio C Hamano<gitster@xxxxxxxxx>  writes:

Дилян Палаузов<dilyan.palauzov@xxxxxxxxx>  writes:

What I am wondering is there are systems that need to include the header,
but locale_charset() does not live in /lib/libcharset.a, in which case we
cannot make HAVE_LIBCHARSET_H imply use of -lcharset.

I do not understand this.  If you want to use a function from
libcharset, you have to use both #include<libcharset.h>  and
-lcharset.

You are mistaken.

The only constraint is that you have to "#include<libcharset.h>" and need
to link with the library that has locale_charset() defined.

I think the follow-ups in this thread already demonstrated why it is an
insufficient solution to make HAVE_LIBCHARSET_H imply -lcharset.

We would instead need:

	ifeq ($(uname_S),MyHomeBrewLinux)
         	HAVE_LIBCHARSET_H = YesPlease
                 EXTLIBS += -lcharset
	endif

or

	# Define NEEDS_CHARSETLIB if you use HAVE_LIBCHARSET_H and
         # need to link with -lcharset
	NEEDS_CHARSETLIB =

	ifeq ($(uname_S),MyHomeBrewLinux)
         	HAVE_LIBCHARSET_H = YesPlease
		NEEDS_CHARSETLIB = YesPlease
	endif

	ifdef NEEDS_CHARSETLIB
         	EXTLIBS += -lcharset
	endif

or something like that, I guess.

begin:vcard
fn;quoted-printable:=D0=94=D0=B8=D0=BB=D1=8F=D0=BD =D0=9F=D0=B0=D0=BB=D0=B0=D1=83=D0=B7=D0=BE=
	=D0=B2
n;quoted-printable;quoted-printable:=D0=9F=D0=B0=D0=BB=D0=B0=D1=83=D0=B7=D0=BE=D0=B2;=D0=94=D0=B8=D0=BB=D1=8F=D0=BD
email;internet:dilyan.palauzov@xxxxxxxxx
tel;home:+49-721-94193270
tel;cell:+49-162-4091172
note:sip:8372@xxxxxxxxx
version:2.1
end:vcard


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]