[tlbuild] texlive 2011 build on aix 4.3 - strnlen(3) is used by lcdf-typetools but it is missing or broken on AIX
Eddie Kohler
kohler at cs.ucla.edu
Mon Jun 13 21:27:33 CEST 2011
Thanks for this, I believe the next release will have a fix.
Best,
E
On 06/13/2011 11:37 AM, Vladimir Volovich wrote:
> Hi!
>
> on AIX 4.3, I had to apply the following (quick and dirty) patch to
> compile lcdf-typetools:
>
> ===============================
> --- texk/lcdf-typetools/liblcdf/error.cc.orig
> +++ texk/lcdf-typetools/liblcdf/error.cc
> @@ -34,6 +34,12 @@
> # endif
> #endif
>
> + static size_t strnlen(const char *s, size_t n)
> + {
> + const char *p = (const char *)memchr(s, 0, n);
> + return p ? p - s : n;
> + }
> +
> /** @file error.hh
> * @brief Flexible error handling classes.
> */
> ===============================
>
> Without the patch, i was getting compile error:
>
> source='../../../../texk/lcdf-typetools/liblcdf/error.cc' object='error.o' libtool=no \
> DEPDIR=.deps depmode=aix /bin/bash ../../../../texk/lcdf-typetools/../../build-aux/depcomp \
> xlC -DHAVE_CONFIG_H -I. -I../../../../texk/lcdf-typetools/liblcdf -I.. -I../../../../texk/lcdf-typetools/include -I/opt/freeware/include -DUSE_STDLIB_WORKAROUNDS -O2 -qmaxmem=262144 -qarch=com -qlanglvl=extended -c -o error.o ../../../../texk/lcdf-typetools/liblcdf/error.cc
> "../../../../texk/lcdf-typetools/liblcdf/error.cc", line 491.23: 1540-0274 (S) The name lookup for "strnlen" did not find a declaration.
> gmake[5]: *** [error.o] Error 1
> gmake[5]: Leaving directory `/usr/local/vvv/src/source/Work/texk/lcdf-typetools/liblcdf'
>
> The following pages contain information that strnlen is missing or
> broken on AIX 4.3:
>
> https://bugzilla.samba.org/show_bug.cgi?id=1097
> https://attachments.samba.org/attachment.cgi?id=416
>
> and they provide some autoconf checks for this, and use the following
> replacement when it is missing or broken:
>
> #if !defined(HAVE_STRNLEN) || defined(HAVE_BROKEN_STRNLEN)
> static size_t strnlen(const char *s, size_t n)
> {
> const char *p = (const char *)memchr(s, 0, n);
> return p ? p - s : n;
> }
> #endif /* HAVE_STRNLEN */
>
> Best wishes,
> v.
More information about the tlbuild
mailing list