On Tue, Apr 25, 2006 at 02:30:30PM +0000, Angus Leeming wrote:

> Enrico Forestieri <[EMAIL PROTECTED]> writes:
> > I may well be wrong, though, and you may have already provided
> > a libintl_set_relocation_prefix() function in your build.
> 
> Nope. I've hardly ever looked in intl and, in general, LyX should also work
> --without-included-gettext.

I think I am as confused as you are, but I don't see any definition of
libintl_set_relocation_prefix() in the included intl sources, so
relocation cannot work.

This is the relevant code in intl/relocatable.c:

-------- excerpt from intl/relocatable.c ----------
/* Sets the original and the current installation prefix of the package.
   Relocation simply replaces a pathname starting with the original prefix
   by the corresponding pathname with the current prefix instead.  Both
   prefixes should be directory names without trailing slash (i.e. use ""
   instead of "/").  */
void
set_relocation_prefix (const char *orig_prefix_arg, const char *curr_prefix_arg)
{
  set_this_relocation_prefix (orig_prefix_arg, curr_prefix_arg);

  /* Now notify all dependent libraries.  */
#if DEPENDS_ON_LIBCHARSET
  libcharset_set_relocation_prefix (orig_prefix_arg, curr_prefix_arg);
#endif
#if DEPENDS_ON_LIBICONV && HAVE_ICONV && _LIBICONV_VERSION >= 0x0109
  libiconv_set_relocation_prefix (orig_prefix_arg, curr_prefix_arg);
#endif
#if DEPENDS_ON_LIBINTL && ENABLE_NLS && defined libintl_set_relocation_prefix
  libintl_set_relocation_prefix (orig_prefix_arg, curr_prefix_arg);
#endif
}
---------------------------------------------------

and this is what you can found in intl/Makefile.in:

-------- excerpt from intl/Makefile.in ----------
DEFS = -DLOCALEDIR=\"$(localedir)\" -DLOCALE_ALIAS_PATH=\"$(aliaspath)\" \
-DLIBDIR=\"$(libdir)\" -DIN_LIBINTL \
-DENABLE_RELOCATABLE=1 -DIN_LIBRARY -DINSTALLDIR=\"$(libdir)\" -DNO_XMALLOC \
-Dset_relocation_prefix=libintl_set_relocation_prefix \
-Drelocate=libintl_relocate \
-DDEPENDS_ON_LIBICONV=1 @DEFS@
-------------------------------------------------

So, at compile time set_relocation_prefix() in intl/relocatable.c
gets called in place of libintl_set_relocation_prefix() and recursion
doesn't occur because DEPENDS_ON_LIBINTL is not defined.

I am no NLS expert, but I think that this simply cannot work.

> It seems that my list of tasks is increasing :-( I'd be grateful is someone 
> else
> took on this particular one.

Angus, I think that if you throw in the towel, this is like a
"de profundis" for the Windows port...

-- 
Enrico

Reply via email to