Subject: Re: [PATCH/RFC] autoconf: Add test for OLD_ICONV

From: Jakub Narebski <[email-masked]>
Date: Wed, 5 Dec 2007 22:19:00 +0100

Wincent Colaiuta wrote:
> El 5/12/2007, a las 17:52, Jakub Narebski escribió:
>> On Wed, 5 December 2007, Wincent Colaiuta wrote:
>>>
>>> Before applying your patch:
>>>
>>>     CC utf8.o
>>> utf8.c: In function ‘reencode_string’:
>>> utf8.c:328: warning: passing argument 2 of ‘iconv’ from incompatible
>>> pointer type
>>>     CC convert.o
>>>
>>> After applying your patch:
>>>
>>>     CC utf8.o
>>>     CC convert.o
>>
>> Do I understand correctly that above is excerpt from the output of the
>> following sequence of commands before and after this patch applied?
>>
>>  $ make configure
>>  $ ./configure [options]
>>  $ make
> 
> Yes, that's right, but with a "make clean" before anything else.
> 
>> Do you have something like below in ./configure output?
>>
>>  configure: CHECKS for header files
>>  checking for old iconv()... yes
> 
> This:
> 
> configure: CHECKS for header files
> checking for old iconv()... no
> 
>>> This on Darwin Kernel Version 9.1.0 (Mac OS X 10.5.1).
>>
>> Strange... in Makefile there is
>>
>>  ifeq ($(uname_S),Darwin)
>> 	NEEDS_SSL_WITH_CRYPTO = YesPlease
>> 	NEEDS_LIBICONV = YesPlease
>> 	OLD_ICONV = UnfortunatelyYes
>> 	NO_STRLCPY = YesPlease
>> 	NO_MEMMEM = YesPlease
>>  endif
>>
>> so the uname based guessing should set OLD_ICONV on Darwin...
> 
> That happens *before* config.mak.autogen is included in the Makefile,  
> so it gets overridden.

Ahhh... now I understand. You have installed new iconv() on your
computer, and generic 'uname -s' (OS name) based guessing in Makefile
guesses wrongly that you need OLD_ICONV, while ./configure script
actually tests it and correctly decides to unset OLD_ICONV !

BTW. Perhaps it whould be written more explicitely:

+AC_COMPILE_IFELSE(OLDICONVTEST_SRC,
+       [AC_MSG_RESULT([no])
+       OLD_ICONV=],
+       [AC_MSG_RESULT([yes])
+       OLD_ICONV=YesPlease])

-- 
Jakub Narebski
Poland