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 writes: > >> Дилян Палаузов 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 and >>> -lcharset. >> >> You are mistaken. >> >> The only constraint is that you have to "#include" 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. >