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

Bug#663519: Failure to build ICU on BSD



On Mon, 12 Mar 2012, Hilmar Preusse wrote:

we try to build the Tex Live package on the FreeBSD kernel arch
included in Debian. The build fails, wenn the ICU lib is compiled:

[SNIP]

The relevant code block is

U_CAPI const char *udbg_getPlatform(void)
{
#if U_PLATFORM_HAS_WIN32_API
   return "Windows";
#elif U_PLATFORM == U_PF_UNKNOWN
   return "unknown"
#else
   return "Other (POSIX-like)";
#endif
}

After appending an ; after 'return "unknown"' at least I can
compile the lib. Please evaluate.

Hi Hilmar,

Thanks for the report and patch (applied in TL SVN r25616).

I have also filed an ICU bug report:
  http://bugs.icu-project.org/trac/ticket/9196

I think the real problem is that U_PLATFORM for your FreeBSD is determined
as U_PF_UNKNOWN and not as U_PF_BSD.  Please have a look at the code in
common/unicode/platform.h and try to find out why this fails.  I assume
  #elif defined(BSD)
is insufficient and should also test for alternatives such as __BSD and/or
__BSD__ or some such.  Perhaps you can add a comment to #9196 and tell them
how that test should be modified.

Note: In icu-4.6 as used for TL2011 that was tested in configure as follows:
	case "${host}" in
		*-*-solaris*) 	platform=U_SOLARIS ;;
		*-*-linux*|*-*-gnu|*-*-k*bsd*-gnu|*-*-kopensolaris*-gnu)        platform=U_LINUX ;;
		*-*-*bsd*|*-*-dragonfly*) 	platform=U_BSD ;;
		*-*-aix*) 	platform=U_AIX ;;
		.......
		*) 		platform=U_UNKNOWN_PLATFORM ;;
	esac
so platform was either U_LINUX or U_BSD.

Regards
Peter



Reply to: