openwrt / openwrt

This repository is a mirror of https://git.openwrt.org/openwrt/openwrt.git It is for reference only and is not active for check-ins. We will continue to accept Pull Requests here. They will be merged via staging trees then into openwrt.git.
Other
20.27k stars 10.49k forks source link

Unable to build gettext-full undefined reference to `u8_uctomb_aux’ #12577

Closed peterwillcn closed 1 year ago

peterwillcn commented 1 year ago

Describe the bug

make[4]: Entering directory '/home/openwrt/master/openwrt/build_dir/host/libtool-2.4.7' make[4]: *** [GNUmakefile:108: abort-due-to-no-makefile] Error 1 make[3]: [Makefile:67: /home/openwrt/master/openwrt/build_dir/host/libtool-2.4.7/.preparedc38439611ea6ca76cb81219f56e48ddf_18f1e190c5d53547fed41a3eaa76e9e9] Error 2 (ignored)

.....

libtool: link: x86_64-openwrt-linux-musl-gcc -DINSTALLDIR="/usr/bin" -Os -pipe -fno-caller-saves -fno-plt -fhonour-copts -fmacro-prefix-map=/home/openwrt/master/openwrt/build_dir/target-x86_64_musl/gettext-0.21.1=gettext-0.21.1 -Wformat -Werror=format-security -fstack-protector -D_FORTIFY_SOURCE=1 -Wl,-z -Wl,now -Wl,-z -Wl,relro -DPIC -fpic -znow -zrelro -o .libs/gettext gettext-gettext.o -L/home/openwrt/master/openwrt/staging_dir/toolchain-x86_64_gcc-13.1.0_musl/usr/lib -L/home/openwrt/master/openwrt/staging_dir/toolchain-x86_64_gcc-13.1.0_musl/lib ../gnulib-lib/libgrt.a ../intl/.libs/libintl.so /home/openwrt/master/openwrt/staging_dir/toolchain-x86_64_gcc-13.1.0_musl/lib/gcc/x86_64-openwrt-linux-musl/13.1.0/../../../../x86_64-openwrt-linux-musl/bin/ld: ../gnulib-lib/libgrt.a(libgrt_a-iconv.o): in function rpl_iconv': iconv.c:(.text+0x34b): undefined reference to u8_mbtoucr' /home/openwrt/master/openwrt/staging_dir/toolchain-x86_64_gcc-13.1.0_musl/lib/gcc/x86_64-openwrt-linux-musl/13.1.0/../../../../x86_64-openwrt-linux-musl/bin/ld: iconv.c:(.text+0x4ba): undefined reference to `u8_uctomb_aux' collect2: error: ld returned 1 exit status make[8]: [Makefile:1645: gettext] Error 1 make[8]: Leaving directory '/home/openwrt/master/openwrt/build_dir/target-x86_64_musl/gettext-0.21.1/gettext-runtime/src' make[7]: [Makefile:1643: all-recursive] Error 1 make[7]: Leaving directory '/home/openwrt/master/openwrt/build_dir/target-x86_64_musl/gettext-0.21.1/gettext-runtime' make[6]: [Makefile:1548: all] Error 2 make[6]: Leaving directory '/home/openwrt/master/openwrt/build_dir/target-x86_64_musl/gettext-0.21.1/gettext-runtime' make[5]: [Makefile:406: all-recursive] Error 1 make[5]: Leaving directory '/home/openwrt/master/openwrt/build_dir/target-x86_64_musl/gettext-0.21.1' make[4]: [Makefile:362: all] Error 2 make[4]: Leaving directory '/home/openwrt/master/openwrt/build_dir/target-x86_64_musl/gettext-0.21.1' make[3]: [Makefile:189: /home/openwrt/master/openwrt/build_dir/target-x86_64_musl/gettext-0.21.1/.built] Error 2 make[3]: Leaving directory '/home/openwrt/master/openwrt/package/libs/gettext-full' time: package/libs/gettext-full/compile#381.42#118.66#437.73 ERROR: package/libs/gettext-full failed to build. make[2]: [package/Makefile:116: package/libs/gettext-full/compile] Error 1 make[2]: Waiting for unfinished jobs.... data written to "hd.ids" log written to "hd.log"

OpenWrt version

master-218ce40cd7

OpenWrt target/subtarget

x86_64

Device

x86_64

Steps to reproduce

1, ubuntu 22.04 2 time make V=s VERBOSE=1 -j$(nproc) JOBS=$(nproc) 2>&1 | tee build.log | grep -i -E "^make.*(error|[1-9]...Entering dir)" 3, branch master

Terms

VA1DER commented 1 year ago

I am experiencing the same issue compiling a full build of master on an aarch64 machine. A multi-core make -j 4 world was first attempted, then after that failed on gettext-full, the package was cleaned and started again singly with make V=sc package/gettext-full/clean, compile:

Making all in src
make[7]: Entering directory '/mnt/nbd/devel/openwrt/build_dir/target-aarch64_cortex-a53_musl/gettext-0.21.1/gettext-runtime/src'
aarch64-openwrt-linux-musl-gcc -DLOCALEDIR=\"/usr/share/locale\" -DHAVE_CONFIG_H -I. -I..  -I. -I. -I.. -I../intl -I./../intl -I../gnulib-lib -I./../gnulib-lib -I/mnt/nbd/devel/openwrt/staging_dir/toolchain-aarch64_cortex-a53_gcc-12.2.0_musl/usr/include -I/mnt/nbd/devel/openwrt/staging_dir/toolchain-aarch64_cortex-a53_gcc-12.2.0_musl/include/fortify -I/mnt/nbd/devel/openwrt/staging_dir/toolchain-aarch64_cortex-a53_gcc-12.2.0_musl/include  -DINSTALLDIR=\"/usr/bin\" -Os -pipe -mcpu=cortex-a53 -fno-caller-saves -fno-plt -fhonour-copts -ffile-prefix-map=/mnt/nbd/devel/openwrt/build_dir/target-aarch64_cortex-a53_musl/gettext-0.21.1=gettext-0.21.1 -Wformat -Werror=format-security -fstack-protector -D_FORTIFY_SOURCE=1 -Wl,-z,now -Wl,-z,relro -DPIC -fPIC  -c -o gettext-gettext.o `test -f 'gettext.c' || echo './'`gettext.c
/bin/sh ../libtool  --tag=CC   --mode=link aarch64-openwrt-linux-musl-gcc -DINSTALLDIR=\"/usr/bin\" -Os -pipe -mcpu=cortex-a53 -fno-caller-saves -fno-plt -fhonour-copts -ffile-prefix-map=/mnt/nbd/devel/openwrt/build_dir/target-aarch64_cortex-a53_musl/gettext-0.21.1=gettext-0.21.1 -Wformat -Werror=format-security -fstack-protector -D_FORTIFY_SOURCE=1 -Wl,-z,now -Wl,-z,relro -DPIC -fPIC   -L/mnt/nbd/devel/openwrt/staging_dir/toolchain-aarch64_cortex-a53_gcc-12.2.0_musl/usr/lib -L/mnt/nbd/devel/openwrt/staging_dir/toolchain-aarch64_cortex-a53_gcc-12.2.0_musl/lib -znow -zrelro  -o gettext gettext-gettext.o ../gnulib-lib/libgrt.a ../intl/libintl.la     
libtool: link: aarch64-openwrt-linux-musl-gcc "-DINSTALLDIR=\"/usr/bin\"" -Os -pipe -mcpu=cortex-a53 -fno-caller-saves -fno-plt -fhonour-copts -ffile-prefix-map=/mnt/nbd/devel/openwrt/build_dir/target-aarch64_cortex-a53_musl/gettext-0.21.1=gettext-0.21.1 -Wformat -Werror=format-security -fstack-protector -D_FORTIFY_SOURCE=1 -Wl,-z -Wl,now -Wl,-z -Wl,relro -DPIC -fPIC -znow -zrelro -o .libs/gettext gettext-gettext.o  -L/mnt/nbd/devel/openwrt/staging_dir/toolchain-aarch64_cortex-a53_gcc-12.2.0_musl/usr/lib -L/mnt/nbd/devel/openwrt/staging_dir/toolchain-aarch64_cortex-a53_gcc-12.2.0_musl/lib ../gnulib-lib/libgrt.a ../intl/.libs/libintl.so
/mnt/nbd/devel/openwrt/staging_dir/toolchain-aarch64_cortex-a53_gcc-12.2.0_musl/lib/gcc/aarch64-openwrt-linux-musl/12.2.0/../../../../aarch64-openwrt-linux-musl/bin/ld: ../gnulib-lib/libgrt.a(libgrt_a-iconv.o): in function `rpl_iconv':
iconv.c:(.text+0x3a4): undefined reference to `u8_mbtoucr'
/mnt/nbd/devel/openwrt/staging_dir/toolchain-aarch64_cortex-a53_gcc-12.2.0_musl/lib/gcc/aarch64-openwrt-linux-musl/12.2.0/../../../../aarch64-openwrt-linux-musl/bin/ld: iconv.c:(.text+0x3a8): undefined reference to `u8_mbtoucr'
/mnt/nbd/devel/openwrt/staging_dir/toolchain-aarch64_cortex-a53_gcc-12.2.0_musl/lib/gcc/aarch64-openwrt-linux-musl/12.2.0/../../../../aarch64-openwrt-linux-musl/bin/ld: iconv.c:(.text+0x3e4): undefined reference to `u8_uctomb_aux'
/mnt/nbd/devel/openwrt/staging_dir/toolchain-aarch64_cortex-a53_gcc-12.2.0_musl/lib/gcc/aarch64-openwrt-linux-musl/12.2.0/../../../../aarch64-openwrt-linux-musl/bin/ld: iconv.c:(.text+0x3e8): undefined reference to `u8_uctomb_aux'
collect2: error: ld returned 1 exit status
make[7]: *** [Makefile:1642: gettext] Error 1
peterwillcn commented 1 year ago

https://downloads.openwrt.org/snapshots/faillogs/i386_pentium4/base/gettext-full/compile.txt Perhaps it may have caused a problem with a certain commit https://github.com/openwrt/openwrt/commit/ca8577f930713999fe27bdb2bd8c33ac8afb5bc8 https://github.com/openwrt/openwrt/commit/f7fbe77115924d831dfa7e5b9dc8903b4ccaaf07 https://github.com/openwrt/openwrt/commit/d95d5d2a3a895f5374b56ab349f628578cd4149b https://github.com/openwrt/openwrt/commit/d167adbc4418b664dd825b8b4e7085c2c7322271

Ansuel commented 1 year ago

@mpratt14 any clue?

mcprat commented 1 year ago

I thought it was only going wrong on the SDK

compiles fine on my system, armhf debian

it was ok for the CI too...

I just made a new SDK earlier and was going to try later

mcprat commented 1 year ago

in the bulldbot output for the SDK, there was another undefined reference before this one, so not exactly the same result...

mcprat commented 1 year ago

with 2 of my host machines, I cannot reproduce the issue

however buildbot log provides some clues https://downloads.openwrt.org/snapshots/faillogs/mipsel_mips32/base/gettext-full/compile.txt

there is supposed to be some objects compiled that are not being compiled for libgrt

@peterwillcn please show result of find build_dir/target-x86_64_musl/gettext-0.21.1/gettext-runtime/gnulib-lib | grep Makefile.am | xargs diff

also show result of find build_dir/target-x86_64_musl/gettext-0.21.1/gettext-runtime/gnulib-lib/unistr

mcprat commented 1 year ago

@VA1DER you can post the same if you like

find build_dir/target-aarch64_cortex-a53_musl/gettext-0.21.1/gettext-runtime/gnulib-lib | grep Makefile.am | xargs diff

find build_dir/target-aarch64_cortex-a53_musl/gettext-0.21.1/gettext-runtime/gnulib-lib/unistr

peterwillcn commented 1 year ago

@mpratt14 https://downloads.openwrt.org/snapshots/faillogs/i386_pentium4/base/gettext-full/compile.txt 1, find build_dir/target-x86_64_musl/gettext-0.21.1/gettext-runtime/gnulib-lib | grep Makefile.am | xargs diff

3c3
< # Copyright (C) 2002-2022 Free Software Foundation, Inc.
---
> # Copyright (C) 2002-2023 Free Software Foundation, Inc.
7c7
< # the Free Software Foundation; either version 3 of the License, or
---
> # the Free Software Foundation, either version 3 of the License, or
86a87
> libgrt_a_CFLAGS = $(AM_CFLAGS) $(GL_CFLAG_GNULIB_WARNINGS)
138c139,164
< ## begin gnulib module atexit
---
> ## begin gnulib module assert-h
>
> BUILT_SOURCES += $(ASSERT_H)
>
> # We need the following in order to create <assert.h> when the system
> # doesn't have one that works with the given compiler.
> if GL_GENERATE_ASSERT_H
> assert.h: assert.in.h verify.h $(top_builddir)/config.status
>   $(gl_V_at){ $(SED_HEADER_STDOUT) \
>         -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
>         -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
>         -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
>         -e 's|@''NEXT_ASSERT_H''@|$(NEXT_ASSERT_H)|g' \
>         < $(srcdir)/assert.in.h && \
>     sed -e '/@assert.h omit start@/,/@assert.h omit end@/d' \
>         -e 's|_gl_verify|_gl_static_assert|g' \
>         -e 's|_GL_VERIFY|_GL_STATIC_ASSERT|g' \
>         -e 's|_GL\(_STATIC_ASSERT_H\)|_GL\1|g' \
>         < $(srcdir)/verify.h; \
>   } > $@-t
>   $(AM_V_at)mv $@-t $@
> else
> assert.h: $(top_builddir)/config.status
>   rm -f $@
> endif
> MOSTLYCLEANFILES += assert.h assert.h-t
139a166
> EXTRA_DIST += assert.in.h verify.h
141c168
< EXTRA_DIST += atexit.c
---
> ## end   gnulib module assert-h
143c170,174
< EXTRA_libgrt_a_SOURCES += atexit.c
---
> ## begin gnulib module atexit
>
> if GL_COND_OBJ_ATEXIT
> libgrt_a_SOURCES += atexit.c
> endif
206,209c237,239
<
< EXTRA_DIST += canonicalize-lgpl.c
<
< EXTRA_libgrt_a_SOURCES += canonicalize-lgpl.c
---
> if GL_COND_OBJ_CANONICALIZE_LGPL
> libgrt_a_SOURCES += canonicalize-lgpl.c
> endif
231,234c261,263
<
< EXTRA_DIST += close.c
<
< EXTRA_libgrt_a_SOURCES += close.c
---
> if GL_COND_OBJ_CLOSE
> libgrt_a_SOURCES += close.c
> endif
253,256c282,284
<
< EXTRA_DIST += dup2.c
<
< EXTRA_libgrt_a_SOURCES += dup2.c
---
> if GL_COND_OBJ_DUP2
> libgrt_a_SOURCES += dup2.c
> endif
300a329,331
> if GL_COND_OBJ_ERROR
> libgrt_a_SOURCES += error.c
> endif
302c333
< EXTRA_DIST += error.c error.h
---
> ## end   gnulib module error
304c335
< EXTRA_libgrt_a_SOURCES += error.c
---
> ## begin gnulib module error-h
306c337,364
< ## end   gnulib module error
---
> BUILT_SOURCES += $(ERROR_H)
>
> # We need the following in order to create <error.h> when the system
> # doesn't have one that works.
> if GL_GENERATE_ERROR_H
> error.h: error.in.h $(top_builddir)/config.status $(CXXDEFS_H)
>   $(gl_V_at)$(SED_HEADER_STDOUT) \
>         -e 's|@''GUARD_PREFIX''@|GL|g' \
>         -e 's|@''HAVE_ERROR_H''@|$(HAVE_ERROR_H)|g' \
>         -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
>         -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
>         -e 's|@''NEXT_ERROR_H''@|$(NEXT_ERROR_H)|g' \
>         -e 's|@''HAVE_ERROR''@|$(HAVE_ERROR)|g' \
>         -e 's|@''HAVE_ERROR_AT_LINE''@|$(HAVE_ERROR_AT_LINE)|g' \
>         -e 's|@''REPLACE_ERROR''@|$(REPLACE_ERROR)|g' \
>         -e 's|@''REPLACE_ERROR_AT_LINE''@|$(REPLACE_ERROR_AT_LINE)|g' \
>         -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
>         $(srcdir)/error.in.h > $@-t
>   $(AM_V_at)mv $@-t $@
> else
> error.h: $(top_builddir)/config.status
>   rm -f $@
> endif
> MOSTLYCLEANFILES += error.h error.h-t
>
> EXTRA_DIST += error.in.h
>
> ## end   gnulib module error-h
318,321c376,378
<
< EXTRA_DIST += fcntl.c
<
< EXTRA_libgrt_a_SOURCES += fcntl.c
---
> if GL_COND_OBJ_FCNTL
> libgrt_a_SOURCES += fcntl.c
> endif
386,389c443,445
<
< EXTRA_DIST += free.c
<
< EXTRA_libgrt_a_SOURCES += free.c
---
> if GL_COND_OBJ_FREE
> libgrt_a_SOURCES += free.c
> endif
394a451,453
> if GL_COND_OBJ_FSTAT
> libgrt_a_SOURCES += fstat.c
> endif
396c455
< EXTRA_DIST += fstat.c stat-w32.c stat-w32.h
---
> EXTRA_DIST += stat-w32.c stat-w32.h
398c457
< EXTRA_libgrt_a_SOURCES += fstat.c stat-w32.c
---
> EXTRA_libgrt_a_SOURCES += stat-w32.c
429,432c488,490
<
< EXTRA_DIST += getdtablesize.c
<
< EXTRA_libgrt_a_SOURCES += getdtablesize.c
---
> if GL_COND_OBJ_GETDTABLESIZE
> libgrt_a_SOURCES += getdtablesize.c
> endif
472c530,532
< EXTRA_DIST += getopt-cdefs.in.h getopt-core.h getopt-ext.h getopt-pfx-core.h getopt-pfx-ext.h getopt.c getopt.in.h getopt1.c getopt_int.h
---
> if GL_COND_OBJ_GETOPT
> libgrt_a_SOURCES += getopt.c getopt1.c
> endif
474c534
< EXTRA_libgrt_a_SOURCES += getopt.c getopt1.c
---
> EXTRA_DIST += getopt-cdefs.in.h getopt-core.h getopt-ext.h getopt-pfx-core.h getopt-pfx-ext.h getopt.in.h getopt_int.h
480c540,544
< libgrt_a_SOURCES += getprogname.h getprogname.c
---
> if GL_COND_OBJ_GETPROGNAME
> libgrt_a_SOURCES += getprogname.c
> endif
>
> EXTRA_DIST += getprogname.h
501a566,586
> ## begin gnulib module glibc-internal/scratch_buffer
>
> BUILT_SOURCES += malloc/scratch_buffer.gl.h
>
> malloc/scratch_buffer.gl.h: malloc/scratch_buffer.h
>   $(AM_V_GEN)$(MKDIR_P) '%reldir%/malloc'
>   $(AM_V_at)$(SED_HEADER_STDOUT) \
>         -e 's|__always_inline|inline _GL_ATTRIBUTE_ALWAYS_INLINE|g' \
>         -e 's|__glibc_likely|_GL_LIKELY|g' \
>         -e 's|__glibc_unlikely|_GL_UNLIKELY|g' \
>         -e '/libc_hidden_proto/d' \
>         $(srcdir)/malloc/scratch_buffer.h > $@-t
>   $(AM_V_at)mv $@-t $@
> MOSTLYCLEANFILES += malloc/scratch_buffer.gl.h malloc/scratch_buffer.gl.h-t
>
> libgrt_a_SOURCES += malloc/scratch_buffer_grow.c                 malloc/scratch_buffer_grow_preserve.c                 malloc/scratch_buffer_set_array_size.c
>
> EXTRA_DIST += malloc/scratch_buffer.h scratch_buffer.h
>
> ## end   gnulib module glibc-internal/scratch_buffer
>
569a655,661
> if GL_COND_OBJ_ICONV_OPEN
> libgrt_a_SOURCES += iconv_open.c
> endif
> if GL_COND_OBJ_ICONV
> libgrt_a_SOURCES += iconv.c iconv_close.c
> endif
>
593,595c685
< EXTRA_DIST += iconv.c iconv_close.c iconv_open-aix.gperf iconv_open-hpux.gperf iconv_open-irix.gperf iconv_open-osf.gperf iconv_open-solaris.gperf iconv_open-zos.gperf iconv_open.c
<
< EXTRA_libgrt_a_SOURCES += iconv.c iconv_close.c iconv_open.c
---
> EXTRA_DIST += iconv_open-aix.gperf iconv_open-hpux.gperf iconv_open-irix.gperf iconv_open-osf.gperf iconv_open-solaris.gperf iconv_open-zos.gperf
608c698
< EXTRA_DIST += intprops.h
---
> EXTRA_DIST += intprops-internal.h intprops.h
635a726,727
>         -e 's/@''REPLACE_IMAXABS''@/$(REPLACE_IMAXABS)/g' \
>         -e 's/@''REPLACE_IMAXDIV''@/$(REPLACE_IMAXDIV)/g' \
655,658c747,749
<
< EXTRA_DIST += iswblank.c
<
< EXTRA_libgrt_a_SOURCES += iswblank.c
---
> if GL_COND_OBJ_ISWBLANK
> libgrt_a_SOURCES += iswblank.c
> endif
664,667c755,757
<
< EXTRA_DIST += iswdigit.c
<
< EXTRA_libgrt_a_SOURCES += iswdigit.c
---
> if GL_COND_OBJ_ISWDIGIT
> libgrt_a_SOURCES += iswdigit.c
> endif
673,676c763,765
<
< EXTRA_DIST += iswxdigit.c
<
< EXTRA_libgrt_a_SOURCES += iswxdigit.c
---
> if GL_COND_OBJ_ISWXDIGIT
> libgrt_a_SOURCES += iswxdigit.c
> endif
855a945,947
> if GL_COND_OBJ_MBRTOWC
> libgrt_a_SOURCES += mbrtowc.c
> endif
857c949
< EXTRA_DIST += lc-charset-dispatch.c lc-charset-dispatch.h mbrtowc-impl-utf8.h mbrtowc-impl.h mbrtowc.c mbtowc-lock.c mbtowc-lock.h windows-initguard.h
---
> EXTRA_DIST += lc-charset-dispatch.c lc-charset-dispatch.h mbrtowc-impl-utf8.h mbrtowc-impl.h mbtowc-lock.c mbtowc-lock.h windows-initguard.h
859c951
< EXTRA_libgrt_a_SOURCES += lc-charset-dispatch.c mbrtowc.c mbtowc-lock.c
---
> EXTRA_libgrt_a_SOURCES += lc-charset-dispatch.c mbtowc-lock.c
865,868c957,959
<
< EXTRA_DIST += mbsinit.c
<
< EXTRA_libgrt_a_SOURCES += mbsinit.c
---
> if GL_COND_OBJ_MBSINIT
> libgrt_a_SOURCES += mbsinit.c
> endif
893a985,987
> if GL_COND_OBJ_MEMCHR
> libgrt_a_SOURCES += memchr.c
> endif
895,897c989
< EXTRA_DIST += memchr.c memchr.valgrind
<
< EXTRA_libgrt_a_SOURCES += memchr.c
---
> EXTRA_DIST += memchr.valgrind
903,906c995,997
<
< EXTRA_DIST += memmove.c
<
< EXTRA_libgrt_a_SOURCES += memmove.c
---
> if GL_COND_OBJ_MEMMOVE
> libgrt_a_SOURCES += memmove.c
> endif
912,915c1003,1005
<
< EXTRA_DIST += mempcpy.c
<
< EXTRA_libgrt_a_SOURCES += mempcpy.c
---
> if GL_COND_OBJ_MEMPCPY
> libgrt_a_SOURCES += mempcpy.c
> endif
926a1017,1019
> if GL_COND_OBJ_MSVC_INVAL
> libgrt_a_SOURCES += msvc-inval.c
> endif
928,930c1021
< EXTRA_DIST += msvc-inval.c msvc-inval.h
<
< EXTRA_libgrt_a_SOURCES += msvc-inval.c
---
> EXTRA_DIST += msvc-inval.h
935a1027,1029
> if GL_COND_OBJ_MSVC_NOTHROW
> libgrt_a_SOURCES += msvc-nothrow.c
> endif
937,939c1031
< EXTRA_DIST += msvc-nothrow.c msvc-nothrow.h
<
< EXTRA_libgrt_a_SOURCES += msvc-nothrow.c
---
> EXTRA_DIST += msvc-nothrow.h
952,955c1044,1046
<
< EXTRA_DIST += open.c
<
< EXTRA_libgrt_a_SOURCES += open.c
---
> if GL_COND_OBJ_OPEN
> libgrt_a_SOURCES += open.c
> endif
980,983c1071,1073
<
< EXTRA_DIST += raise.c
<
< EXTRA_libgrt_a_SOURCES += raise.c
---
> if GL_COND_OBJ_RAISE
> libgrt_a_SOURCES += raise.c
> endif
988a1079,1081
> if GL_COND_OBJ_RAWMEMCHR
> libgrt_a_SOURCES += rawmemchr.c
> endif
990,992c1083
< EXTRA_DIST += rawmemchr.c rawmemchr.valgrind
<
< EXTRA_libgrt_a_SOURCES += rawmemchr.c
---
> EXTRA_DIST += rawmemchr.valgrind
998,1001c1089,1091
<
< EXTRA_DIST += readlink.c
<
< EXTRA_libgrt_a_SOURCES += readlink.c
---
> if GL_COND_OBJ_READLINK
> libgrt_a_SOURCES += readlink.c
> endif
1025,1028c1115,1117
<
< EXTRA_DIST += reallocarray.c
<
< EXTRA_libgrt_a_SOURCES += reallocarray.c
---
> if GL_COND_OBJ_REALLOCARRAY
> libgrt_a_SOURCES += reallocarray.c
> endif
1033a1123,1125
> if GL_COND_OBJ_PROGRELOC
> libgrt_a_SOURCES += progreloc.c
> endif
1051c1143
< EXTRA_DIST += progreloc.c relocatable.c relocatable.h
---
> EXTRA_DIST += relocatable.c relocatable.h
1053c1145
< EXTRA_libgrt_a_SOURCES += progreloc.c relocatable.c
---
> EXTRA_libgrt_a_SOURCES += relocatable.c
1062c1154
< EXTRA_DIST += allocator.c allocator.h areadlink.c areadlink.h c-ctype.c c-ctype.h canonicalize-lgpl.c careadlinkat.c careadlinkat.h free.c malloc.c malloc/scratch_buffer.h malloc/scratch_buffer_dupfree.c malloc/scratch_buffer_grow.c malloc/scratch_buffer_grow_preserve.c malloc/scratch_buffer_set_array_size.c malloca.c malloca.h mempcpy.c progname.c progname.h progreloc.c rawmemchr.c readlink.c realloc.c relocatable.c relocatable.h relocwrapper.c scratch_buffer.h setenv.c stat.c
---
> EXTRA_DIST += allocator.c allocator.h areadlink.c areadlink.h c-ctype.c c-ctype.h canonicalize-lgpl.c careadlinkat.c careadlinkat.h free.c malloc.c malloc/scratch_buffer.h malloc/scratch_buffer_grow.c malloc/scratch_buffer_grow_preserve.c malloc/scratch_buffer_set_array_size.c malloca.c malloca.h mempcpy.c progname.c progname.h progreloc.c rawmemchr.c readlink.c realloc.c relocatable.c relocatable.h relocwrapper.c scratch_buffer.h setenv.c stat.c
1068,1088d1159
< ## begin gnulib module scratch_buffer
<
< BUILT_SOURCES += malloc/scratch_buffer.gl.h
<
< malloc/scratch_buffer.gl.h: malloc/scratch_buffer.h
<   $(AM_V_GEN)$(MKDIR_P) '%reldir%/malloc'
<   $(AM_V_at)$(SED_HEADER_STDOUT) \
<         -e 's|__always_inline|inline _GL_ATTRIBUTE_ALWAYS_INLINE|g' \
<         -e 's|__glibc_likely|_GL_LIKELY|g' \
<         -e 's|__glibc_unlikely|_GL_UNLIKELY|g' \
<         -e '/libc_hidden_proto/d' \
<         $(srcdir)/malloc/scratch_buffer.h > $@-t
<   $(AM_V_at)mv $@-t $@
< MOSTLYCLEANFILES += malloc/scratch_buffer.gl.h malloc/scratch_buffer.gl.h-t
<
< libgrt_a_SOURCES += malloc/scratch_buffer_dupfree.c                 malloc/scratch_buffer_grow.c                 malloc/scratch_buffer_grow_preserve.c                 malloc/scratch_buffer_set_array_size.c
<
< EXTRA_DIST += malloc/scratch_buffer.h scratch_buffer.h
<
< ## end   gnulib module scratch_buffer
<
1091,1094c1162,1164
<
< EXTRA_DIST += setlocale.c
<
< EXTRA_libgrt_a_SOURCES += setlocale.c
---
> if GL_COND_OBJ_SETLOCALE
> libgrt_a_SOURCES += setlocale.c
> endif
1100a1171,1173
> if GL_COND_OBJ_SETLOCALE_LOCK
> libgrt_a_SOURCES += setlocale-lock.c
> endif
1102,1104c1175
< EXTRA_DIST += setlocale-lock.c setlocale_null.h windows-initguard.h
<
< EXTRA_libgrt_a_SOURCES += setlocale-lock.c
---
> EXTRA_DIST += setlocale_null.h windows-initguard.h
1159,1162c1230,1232
<
< EXTRA_DIST += sigprocmask.c
<
< EXTRA_libgrt_a_SOURCES += sigprocmask.c
---
> if GL_COND_OBJ_SIGPROCMASK
> libgrt_a_SOURCES += sigprocmask.c
> endif
1215a1286,1288
> if GL_COND_OBJ_STAT
> libgrt_a_SOURCES += stat.c
> endif
1217c1290
< EXTRA_DIST += stat-w32.c stat-w32.h stat.c
---
> EXTRA_DIST += stat-w32.c stat-w32.h
1219c1292
< EXTRA_libgrt_a_SOURCES += stat-w32.c stat.c
---
> EXTRA_libgrt_a_SOURCES += stat-w32.c
1231c1304
< ## begin gnulib module stdalign
---
> ## begin gnulib module stdckdint
1233,1245c1306
< BUILT_SOURCES += $(STDALIGN_H)
<
< # We need the following in order to create <stdalign.h> when the system
< # doesn't have one that works.
< if GL_GENERATE_STDALIGN_H
< stdalign.h: stdalign.in.h $(top_builddir)/config.status
<   $(gl_V_at)$(SED_HEADER_TO_AT_t) $(srcdir)/stdalign.in.h
<   $(AM_V_at)mv $@-t $@
< else
< stdalign.h: $(top_builddir)/config.status
<   rm -f $@
< endif
< MOSTLYCLEANFILES += stdalign.h stdalign.h-t
---
> BUILT_SOURCES += $(STDCKDINT_H)
1247,1258c1308,1311
< EXTRA_DIST += stdalign.in.h
<
< ## end   gnulib module stdalign
<
< ## begin gnulib module stdbool
<
< BUILT_SOURCES += $(STDBOOL_H)
<
< # We need the following in order to create <stdbool.h> when the system
< # doesn't have one that works.
< if GL_GENERATE_STDBOOL_H
< stdbool.h: stdbool.in.h $(top_builddir)/config.status
---
> # We need the following in order to create <stdckdint.h> when the system
> # doesn't have one that works with the given compiler.
> if GL_GENERATE_STDCKDINT_H
> stdckdint.h: stdckdint.in.h $(top_builddir)/config.status
1260,1261c1313
<     -e 's/@''HAVE__BOOL''@/$(HAVE__BOOL)/g' \
<     $(srcdir)/stdbool.in.h > $@-t
---
>     $(srcdir)/stdckdint.in.h > $@-t
1264c1316
< stdbool.h: $(top_builddir)/config.status
---
> stdckdint.h: $(top_builddir)/config.status
1267c1319
< MOSTLYCLEANFILES += stdbool.h stdbool.h-t
---
> MOSTLYCLEANFILES += stdckdint.h stdckdint.h-t
1269c1321
< EXTRA_DIST += stdbool.in.h
---
> EXTRA_DIST += intprops-internal.h stdckdint.in.h
1271c1323
< ## end   gnulib module stdbool
---
> ## end   gnulib module stdckdint
1429a1482
>         -e 's|@''HAVE_DECL_GETW''@|$(HAVE_DECL_GETW)|g' \
1430a1484
>         -e 's|@''HAVE_DECL_PUTW''@|$(HAVE_DECL_PUTW)|g' \
1481a1536,1542
> if GL_COND_OBJ_STDIO_READ
> libgrt_a_SOURCES += stdio-read.c
> endif
> if GL_COND_OBJ_STDIO_WRITE
> libgrt_a_SOURCES += stdio-write.c
> endif
>
1507a1569
>         -e 's/@''GNULIB_GETPROGNAME''@/$(GL_GNULIB_GETPROGNAME)/g' \
1556a1619
>         -e 's|@''HAVE_GETPROGNAME''@|$(HAVE_GETPROGNAME)|g' \
1591a1655
>         -e 's|@''REPLACE__EXIT''@|$(REPLACE__EXIT)|g' \
1596a1661,1663
>         -e 's|@''REPLACE_GETLOADAVG''@|$(REPLACE_GETLOADAVG)|g' \
>         -e 's|@''REPLACE_GETPROGNAME''@|$(REPLACE_GETPROGNAME)|g' \
>         -e 's|@''REPLACE_GETSUBOPT''@|$(REPLACE_GETSUBOPT)|g' \
1600a1668,1669
>         -e 's|@''REPLACE_MKOSTEMP''@|$(REPLACE_MKOSTEMP)|g' \
>         -e 's|@''REPLACE_MKOSTEMPS''@|$(REPLACE_MKOSTEMPS)|g' \
1602a1672
>         -e 's|@''REPLACE_POSIX_OPENPT''@|$(REPLACE_POSIX_OPENPT)|g' \
1644,1647c1714,1716
<
< EXTRA_DIST += strerror.c
<
< EXTRA_libgrt_a_SOURCES += strerror.c
---
> if GL_COND_OBJ_STRERROR
> libgrt_a_SOURCES += strerror.c
> endif
1652a1722,1724
> if GL_COND_OBJ_STRERROR_OVERRIDE
> libgrt_a_SOURCES += strerror-override.c
> endif
1654,1656c1726
< EXTRA_DIST += strerror-override.c strerror-override.h
<
< EXTRA_libgrt_a_SOURCES += strerror-override.c
---
> EXTRA_DIST += strerror-override.h
1701a1772
>         -e 's/@''GNULIB_MEMSET_EXPLICIT''@/$(GL_GNULIB_MEMSET_EXPLICIT)/g' \
1732a1804
>         -e 's|@''HAVE_MEMSET_EXPLICIT''@|$(HAVE_MEMSET_EXPLICIT)|g' \
1752a1825
>         -e 's|@''REPLACE_MEMPCPY''@|$(REPLACE_MEMPCPY)|g' \
1753a1827
>         -e 's|@''REPLACE_STPCPY''@|$(REPLACE_STPCPY)|g' \
1781,1784c1855,1857
<
< EXTRA_DIST += strnlen.c
<
< EXTRA_libgrt_a_SOURCES += strnlen.c
---
> if GL_COND_OBJ_STRNLEN
> libgrt_a_SOURCES += strnlen.c
> endif
1795a1869,1871
> if GL_COND_OBJ_STRTOUL
> libgrt_a_SOURCES += strtoul.c
> endif
1797c1873
< EXTRA_DIST += strtol.c strtoul.c
---
> EXTRA_DIST += strtol.c
1799c1875
< EXTRA_libgrt_a_SOURCES += strtol.c strtoul.c
---
> EXTRA_libgrt_a_SOURCES += strtol.c
1913c1989
< ## begin gnulib module time
---
> ## begin gnulib module time-h
1931a2008
>         -e 's/@''GNULIB_TIME''@/$(GL_GNULIB_TIME)/g' \
1952a2030
>         -e 's|@''REPLACE_TIME''@|$(REPLACE_TIME)|g' \
1953a2032
>         -e 's|@''REPLACE_TIMESPEC_GET''@|$(REPLACE_TIMESPEC_GET)|g' \
1969c2048
< ## end   gnulib module time
---
> ## end   gnulib module time-h
2133a2213
>         -e 's|@''REPLACE_DUP3''@|$(REPLACE_DUP3)|g' \
2142a2223
>         -e 's|@''REPLACE_FDATASYNC''@|$(REPLACE_FDATASYNC)|g' \
2146a2228
>         -e 's|@''REPLACE_GETENTROPY''@|$(REPLACE_GETENTROPY)|g' \
2156a2239
>         -e 's|@''REPLACE_PIPE2''@|$(REPLACE_PIPE2)|g' \
2162a2246
>         -e 's|@''REPLACE_SETHOSTNAME''@|$(REPLACE_SETHOSTNAME)|g' \
2258,2264d2341
< ## begin gnulib module verify
<
<
< EXTRA_DIST += verify.h
<
< ## end   gnulib module verify
<
2385a2463
>         -e 's|@''REPLACE_WMEMPCPY''@|$(REPLACE_WMEMPCPY)|g' \
2443,2446c2521,2523
<
< EXTRA_DIST += wcwidth.c
<
< EXTRA_libgrt_a_SOURCES += wcwidth.c
---
> if GL_COND_OBJ_WCWIDTH
> libgrt_a_SOURCES += wcwidth.c
> endif
2451a2529,2531
> if GL_COND_OBJ_WINDOWS_MUTEX
> libgrt_a_SOURCES += windows-mutex.c
> endif
2453,2455c2533
< EXTRA_DIST += windows-initguard.h windows-mutex.c windows-mutex.h
<
< EXTRA_libgrt_a_SOURCES += windows-mutex.c
---
> EXTRA_DIST += windows-initguard.h windows-mutex.h
2460a2539,2541
> if GL_COND_OBJ_WINDOWS_ONCE
> libgrt_a_SOURCES += windows-once.c
> endif
2462,2464c2543
< EXTRA_DIST += windows-once.c windows-once.h
<
< EXTRA_libgrt_a_SOURCES += windows-once.c
---
> EXTRA_DIST += windows-once.h
2469a2549,2551
> if GL_COND_OBJ_WINDOWS_RECMUTEX
> libgrt_a_SOURCES += windows-recmutex.c
> endif
2471,2473c2553
< EXTRA_DIST += windows-initguard.h windows-recmutex.c windows-recmutex.h
<
< EXTRA_libgrt_a_SOURCES += windows-recmutex.c
---
> EXTRA_DIST += windows-initguard.h windows-recmutex.h
2478a2559,2561
> if GL_COND_OBJ_WINDOWS_RWLOCK
> libgrt_a_SOURCES += windows-rwlock.c
> endif
2480,2482c2563
< EXTRA_DIST += windows-initguard.h windows-rwlock.c windows-rwlock.h
<
< EXTRA_libgrt_a_SOURCES += windows-rwlock.c
---
> EXTRA_DIST += windows-initguard.h windows-rwlock.h
2530a2612,2615
> distclean-local: distclean-gnulib-libobjs
> distclean-gnulib-libobjs:
>   -rm -f @gl_LIBOBJDEPS@
> maintainer-clean-local: distclean-gnulib-libobjs

2, find build_dir/target-x86_64_musl/gettext-0.21.1/gettext-runtime/gnulib-lib/unistr

build_dir/target-x86_64_musl/gettext-0.21.1/gettext-runtime/gnulib-lib/unistr
build_dir/target-x86_64_musl/gettext-0.21.1/gettext-runtime/gnulib-lib/unistr/u8-mbtoucr.c
build_dir/target-x86_64_musl/gettext-0.21.1/gettext-runtime/gnulib-lib/unistr/u8-uctomb-aux.c
build_dir/target-x86_64_musl/gettext-0.21.1/gettext-runtime/gnulib-lib/unistr/u8-uctomb-aux.c~
build_dir/target-x86_64_musl/gettext-0.21.1/gettext-runtime/gnulib-lib/unistr/u8-uctomb.c
build_dir/target-x86_64_musl/gettext-0.21.1/gettext-runtime/gnulib-lib/unistr/u8-mbtoucr.c~
build_dir/target-x86_64_musl/gettext-0.21.1/gettext-runtime/gnulib-lib/unistr/u8-uctomb.c~
mcprat commented 1 year ago

the second thing I want to see after a compile attempt, so there is object files

mcprat commented 1 year ago

the last log you post (second item) find build_dir/target-x86_64_musl/gettext-0.21.1/gettext-runtime/gnulib-lib/unistr

should be after a build attempt, there should be object files not just C files

was it that way after trying to build? so none of the objects built?

mcprat commented 1 year ago

but you dont have to post anymore I think I have it figured out... it is similar to the problem with libxml #12402

I thought it was a bad Makefile.am but it's deeper than that. There is no difference between the new and old Makefile.am for this object

Whether the object is built at all is controlled by a symbol in gnulib-lib/Makefile.am

if LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR
libgrt_a_SOURCES += unistr/u8-mbtoucr.c
endif

and

if LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB
libgrt_a_SOURCES += unistr/u8-uctomb.c unistr/u8-uctomb-aux.c
endif

those symbols are defined in the configure scripts and tied to the symbol HAVE_LIBUNISTRING and there is a discrepancy between the host compile and the target compile on some (but not all) hosts in the configure script log

in host compile: https://downloads.openwrt.org/snapshots/faillogs/mipsel_mips32/base/gettext-full/host-compile.txt

checking for libunistring... no, consider installing GNU libunistring
...
...
checking whether included libunistring is requested... no
checking for libunistring... no, consider installing GNU libunistring

and in target compile: https://downloads.openwrt.org/snapshots/faillogs/mipsel_mips32/base/gettext-full/compile.txt

checking for libunistring... yes
checking how to link with libunistring... -lunistring
checking for libunistring version... 1.1.0
...
...
checking for libunistring... yes
checking how to link with libunistring... -lunistring
checking for libunistring version... 1.1.0
...
...
checking for libunistring... yes
checking how to link with libunistring... -lunistring
checking for libunistring version... 1.1.0

however, at link time, there is no flag to link to libunistring... It's just not there... it's still assuming that the freshly built libgrt has the functions on its own.

so the solution is to do what we just did for libxml

should be for the last time, since that's the only list of things that are not covered with the optional --with-included

$ ./configure --help | grep with-included
  --with-included-gettext use the GNU gettext library included here
  --with-included-libxml  use the libxml2 included here
  --with-included-libunistring  use the libunistring parts included here

does this sound right? @1715173329

1715173329 commented 1 year ago

didnt ever check it but sounds great

Ansuel commented 1 year ago

@mpratt14 i can also see some package are failing

https://downloads.openwrt.org/snapshots/faillogs/arm_cortex-a8_vfpv3/packages/samba4/

peterwillcn commented 1 year ago

@mpratt14 When will the repair patch be released?Thanks.

mcprat commented 1 year ago

I had test build run overnight, posting soon

this definitely has nothing to do with the compiler, it's just bad configuration

Ansuel commented 1 year ago

@mpratt14 thanks for taking care of this hoping you find the correct solution since this is the main blocker for branching (this and xtables-addons)

micmac1 commented 1 year ago

@mpratt14 i can also see some package are failing

https://downloads.openwrt.org/snapshots/faillogs/arm_cortex-a8_vfpv3/packages/samba4/

@Ansuel, that's due to GnuTLS, right? I posted a related pull request here.

Ansuel commented 1 year ago

@micmac1 i would wait @mpratt14 for the feedback and then i would merge thanks a lot !

mcprat commented 1 year ago

the PR from @micmac1 brings up a good point here though...

the symbol for linking is still missing for libunistring if we do exactly the same thing as what fixed libxml linking. I was going to just patch the relevant Makefile.am.

that worked, but maybe I don't have to do that if I add the libunistring-optional module to gettext-runtime with autogen.sh, or maybe both is appropriate...

but is the error for gnutls the same (undefined reference) or is it different? I don't remember

Ansuel commented 1 year ago

@mpratt14 eh we need to find a good solution that is not hacky and would fix each broken package currently...

mcprat commented 1 year ago

yeah I just have to figure out which is the least hacky at this point

mcprat commented 1 year ago

also interesting to note is that I can reproduce the bug now, but only after adding the configure option --with-libunistring-prefix

mcprat commented 1 year ago

@Ansuel I think a patch to the Makefile.am is required here

it's a bug in gettext, linking directly to an external libunistring is supported in gettext-tools but not gettext-runtime, but somehow gettext-runtime is getting the configuration for that from autoconf...

the alternative would be to try to get rid of using autogen.sh or autoreconf at all, but I think it's necessary because of the "relocatable" patch, but we can try that another time...

there seems to be only 2 commits that handles it, none of them touch the gettext-runtime directory

https://git.savannah.gnu.org/gitweb/?p=gettext.git;a=commit;h=ae943bcc1a5a0600d81c736980ad5d2018637217

https://git.savannah.gnu.org/gitweb/?p=gettext.git;a=commit;h=61e21a72f048684fa63d2316646df24a4444a39a

bhaible commented 1 year ago

it's a bug in gettext, linking directly to an external libunistring is supported in gettext-tools but not gettext-runtime, but somehow gettext-runtime is getting the configuration for that from autoconf...

I disagree that it's a bug in gettext. The directories gettext-tools and gettext-runtime have different configure.ac and thus different configure files. The only way I can imagine an interference between these two directories is if you passed a --cache-file=... option or if you have the CONFIG_SITE environment variable set.

the alternative would be to try to get rid of using autogen.sh or autoreconf at all

Re-running the autogen.sh script should produce identical results; so why would you do that?

Running autoreconf is not supported. I provide tarballs of my packages, ready to be used with a correct configure file. If the first thing you do is to run autoreconf and thus replace a working configure file with a dysfunctional one, I can't help.

mpratt14's pull request looks OK to me. It will have the effect that the programs gettext, ngettext, envsubst will have an extra link dependency that was not intended upstream; that's the only negative effect.

mcprat commented 1 year ago

Hi Bruno, thanks for joining

The only reason I call it a bug is because it's affecting only some hosts not doing what the configuration log says is being done. Besides that, it does seem that using autogen.sh is changing the configuration somehow, no idea why... we have a site config file but there is nothing in it about libunistring as far as I can tell. I only notice an autom4te.cache after using autogen.sh. Would disabling caching for this build make a difference? or what about running autogen.sh with the --skip-gnulib option?

I switched our gettext build from using autoreconf to autogen.sh to solve a different issue... I imagine we would not be going back to autoreconf, and someday if possible, doing neither.

an extra link dependency that was not intended upstream

One thing thats clear to me is, gettext-runtime building does require some objects from libunistring. So if I understand you right, the link dependency still exists, but upstream wants the link to only be with libgrt with the included libunistring objects and not a link to an external library, and the only difference should be size and performance right?

I noticed that even after this patch, there is some inconsistency between our host and target builds...

it seems that $(LIBUNISTRING) is supposed to be added to $(LIBS) but that is only happening in the host build, I can't find any other evidence in gettext-runtime/src/Makefile for how the path to libunistring.a is added to the end of a line. (the lines starting with "libtool: link: ") I would expect for target build at the end of those lines to have an libunistring.so and that would make the patch unnecessary. If there is a bug somewhere, perhaps that is the real one, and not the lack of a variable in LDADD.

host:

Making all in src
make[7]: Entering directory '/path/to/build/hostpkg/gettext-0.21.1/gettext-runtime/src'
gcc -DLOCALEDIR=\"/path/to/staging/hostpkg/share/locale\" -DHAVE_CONFIG_H -I. -I..  -I. -I. -I.. -I../intl -I./../intl -I../gnulib-lib -I./../gnulib-lib -I/path/to/staging/host/include -I/path/to/staging/hostpkg/include -I/path/to/staging/target-mipsel_24kc_musl/host/include -DINSTALLDIR=\"/path/to/staging/hostpkg/bin\" -O2 -I/path/to/staging/host/include -I/path/to/staging/hostpkg/include -I/path/to/staging/target-mipsel_24kc_musl/host/include -DPIC -fPIC -c -o gettext-gettext.o `test -f 'gettext.c' || echo './'`gettext.c
/usr/bin/env bash ../libtool  --tag=CC   --mode=link gcc -DINSTALLDIR=\"/path/to/staging/hostpkg/bin\" -O2 -I/path/to/staging/host/include -I/path/to/staging/hostpkg/include -I/path/to/staging/target-mipsel_24kc_musl/host/include -DPIC -fPIC  -L/path/to/staging/host/lib -L/path/to/staging/hostpkg/lib -L/path/to/staging/target-mipsel_24kc_musl/host/lib -o gettext gettext-gettext.o ../gnulib-lib/libgrt.a -L/path/to/staging/hostpkg/lib -lunistring
libtool: link: gcc -DINSTALLDIR=\"/path/to/staging/hostpkg/bin\" -O2 -I/path/to/staging/host/include -I/path/to/staging/hostpkg/include -I/path/to/staging/target-mipsel_24kc_musl/host/include -DPIC -fPIC -o gettext gettext-gettext.o  -L/path/to/staging/host/lib -L/path/to/staging/hostpkg/lib -L/path/to/staging/target-mipsel_24kc_musl/host/lib ../gnulib-lib/libgrt.a /path/to/staging/hostpkg/lib/libunistring.a
gcc -DLOCALEDIR=\"/path/to/staging/hostpkg/share/locale\" -DHAVE_CONFIG_H -I. -I..  -I. -I. -I.. -I../intl -I./../intl -I../gnulib-lib -I./../gnulib-lib -I/path/to/staging/host/include -I/path/to/staging/hostpkg/include -I/path/to/staging/target-mipsel_24kc_musl/host/include -DINSTALLDIR=\"/path/to/staging/hostpkg/bin\" -O2 -I/path/to/staging/host/include -I/path/to/staging/hostpkg/include -I/path/to/staging/target-mipsel_24kc_musl/host/include -DPIC -fPIC -c -o ngettext-ngettext.o `test -f 'ngettext.c' || echo './'`ngettext.c
/usr/bin/env bash ../libtool  --tag=CC   --mode=link gcc -DINSTALLDIR=\"/path/to/staging/hostpkg/bin\" -O2 -I/path/to/staging/host/include -I/path/to/staging/hostpkg/include -I/path/to/staging/target-mipsel_24kc_musl/host/include -DPIC -fPIC  -L/path/to/staging/host/lib -L/path/to/staging/hostpkg/lib -L/path/to/staging/target-mipsel_24kc_musl/host/lib -o ngettext ngettext-ngettext.o ../gnulib-lib/libgrt.a -L/path/to/staging/hostpkg/lib -lunistring
libtool: link: gcc -DINSTALLDIR=\"/path/to/staging/hostpkg/bin\" -O2 -I/path/to/staging/host/include -I/path/to/staging/hostpkg/include -I/path/to/staging/target-mipsel_24kc_musl/host/include -DPIC -fPIC -o ngettext ngettext-ngettext.o  -L/path/to/staging/host/lib -L/path/to/staging/hostpkg/lib -L/path/to/staging/target-mipsel_24kc_musl/host/lib ../gnulib-lib/libgrt.a /path/to/staging/hostpkg/lib/libunistring.a
gcc -DLOCALEDIR=\"/path/to/staging/hostpkg/share/locale\" -DHAVE_CONFIG_H -I. -I..  -I. -I. -I.. -I../intl -I./../intl -I../gnulib-lib -I./../gnulib-lib -I/path/to/staging/host/include -I/path/to/staging/hostpkg/include -I/path/to/staging/target-mipsel_24kc_musl/host/include -DINSTALLDIR=\"/path/to/staging/hostpkg/bin\" -O2 -I/path/to/staging/host/include -I/path/to/staging/hostpkg/include -I/path/to/staging/target-mipsel_24kc_musl/host/include -DPIC -fPIC -c -o envsubst-envsubst.o `test -f 'envsubst.c' || echo './'`envsubst.c
/usr/bin/env bash ../libtool  --tag=CC   --mode=link gcc -DINSTALLDIR=\"/path/to/staging/hostpkg/bin\" -O2 -I/path/to/staging/host/include -I/path/to/staging/hostpkg/include -I/path/to/staging/target-mipsel_24kc_musl/host/include -DPIC -fPIC  -L/path/to/staging/host/lib -L/path/to/staging/hostpkg/lib -L/path/to/staging/target-mipsel_24kc_musl/host/lib -o envsubst envsubst-envsubst.o ../gnulib-lib/libgrt.a -L/path/to/staging/hostpkg/lib -lunistring

target:

Making all in src
make[7]: Entering directory '/path/to/build/target-mipsel_24kc_musl/gettext-0.21.1/gettext-runtime/src'
mipsel-openwrt-linux-musl-gcc -DLOCALEDIR=\"/usr/share/locale\" -DHAVE_CONFIG_H -I. -I..  -I. -I. -I.. -I../intl -I./../intl -I../gnulib-lib -I./../gnulib-lib -I/path/to/staging/toolchain-mipsel_24kc_gcc-12.2.0_musl/usr/include -I/path/to/staging/toolchain-mipsel_24kc_gcc-12.2.0_musl/include/fortify -I/path/to/staging/toolchain-mipsel_24kc_gcc-12.2.0_musl/include  -I/path/to/staging/target-mipsel_24kc_musl/usr/include -DINSTALLDIR=\"/usr/bin\" -Os -pipe -mno-branch-likely -mips32r2 -mtune=24kc -fno-caller-saves -fno-plt -fhonour-copts -msoft-float -fmacro-prefix-map=/path/to/build/target-mipsel_24kc_musl/gettext-0.21.1=gettext-0.21.1 -mips16 -minterlink-mips16 -Wformat -Werror=format-security -fstack-protector -D_FORTIFY_SOURCE=1 -Wl,-z,now -Wl,-z,relro -DPIC -fpic  -c -o gettext-gettext.o `test -f 'gettext.c' || echo './'`gettext.c
/bin/bash ../libtool  --tag=CC   --mode=link mipsel-openwrt-linux-musl-gcc -DINSTALLDIR=\"/usr/bin\" -Os -pipe -mno-branch-likely -mips32r2 -mtune=24kc -fno-caller-saves -fno-plt -fhonour-copts -msoft-float -fmacro-prefix-map=/path/to/build/target-mipsel_24kc_musl/gettext-0.21.1=gettext-0.21.1 -mips16 -minterlink-mips16 -Wformat -Werror=format-security -fstack-protector -D_FORTIFY_SOURCE=1 -Wl,-z,now -Wl,-z,relro -DPIC -fpic   -L/path/to/staging/toolchain-mipsel_24kc_gcc-12.2.0_musl/usr/lib -L/path/to/staging/toolchain-mipsel_24kc_gcc-12.2.0_musl/lib -znow -zrelro  -o gettext gettext-gettext.o ../gnulib-lib/libgrt.a -L/path/to/staging/target-mipsel_24kc_musl/usr/lib -lunistring ../intl/libintl.la
libtool: link: mipsel-openwrt-linux-musl-gcc -DINSTALLDIR=\"/usr/bin\" -Os -pipe -mno-branch-likely -mips32r2 -mtune=24kc -fno-caller-saves -fno-plt -fhonour-copts -msoft-float -fmacro-prefix-map=/path/to/build/target-mipsel_24kc_musl/gettext-0.21.1=gettext-0.21.1 -mips16 -minterlink-mips16 -Wformat -Werror=format-security -fstack-protector -D_FORTIFY_SOURCE=1 -Wl,-z -Wl,now -Wl,-z -Wl,relro -DPIC -fpic -znow -zrelro -o .libs/gettext gettext-gettext.o  -L/path/to/staging/toolchain-mipsel_24kc_gcc-12.2.0_musl/usr/lib -L/path/to/staging/toolchain-mipsel_24kc_gcc-12.2.0_musl/lib ../gnulib-lib/libgrt.a -L/path/to/staging/target-mipsel_24kc_musl/usr/lib -lunistring ../intl/.libs/libintl.so
mipsel-openwrt-linux-musl-gcc -DLOCALEDIR=\"/usr/share/locale\" -DHAVE_CONFIG_H -I. -I..  -I. -I. -I.. -I../intl -I./../intl -I../gnulib-lib -I./../gnulib-lib -I/path/to/staging/toolchain-mipsel_24kc_gcc-12.2.0_musl/usr/include -I/path/to/staging/toolchain-mipsel_24kc_gcc-12.2.0_musl/include/fortify -I/path/to/staging/toolchain-mipsel_24kc_gcc-12.2.0_musl/include  -I/path/to/staging/target-mipsel_24kc_musl/usr/include -DINSTALLDIR=\"/usr/bin\" -Os -pipe -mno-branch-likely -mips32r2 -mtune=24kc -fno-caller-saves -fno-plt -fhonour-copts -msoft-float -fmacro-prefix-map=/path/to/build/target-mipsel_24kc_musl/gettext-0.21.1=gettext-0.21.1 -mips16 -minterlink-mips16 -Wformat -Werror=format-security -fstack-protector -D_FORTIFY_SOURCE=1 -Wl,-z,now -Wl,-z,relro -DPIC -fpic  -c -o ngettext-ngettext.o `test -f 'ngettext.c' || echo './'`ngettext.c
/bin/bash ../libtool  --tag=CC   --mode=link mipsel-openwrt-linux-musl-gcc -DINSTALLDIR=\"/usr/bin\" -Os -pipe -mno-branch-likely -mips32r2 -mtune=24kc -fno-caller-saves -fno-plt -fhonour-copts -msoft-float -fmacro-prefix-map=/path/to/build/target-mipsel_24kc_musl/gettext-0.21.1=gettext-0.21.1 -mips16 -minterlink-mips16 -Wformat -Werror=format-security -fstack-protector -D_FORTIFY_SOURCE=1 -Wl,-z,now -Wl,-z,relro -DPIC -fpic   -L/path/to/staging/toolchain-mipsel_24kc_gcc-12.2.0_musl/usr/lib -L/path/to/staging/toolchain-mipsel_24kc_gcc-12.2.0_musl/lib -znow -zrelro  -o ngettext ngettext-ngettext.o ../gnulib-lib/libgrt.a -L/path/to/staging/target-mipsel_24kc_musl/usr/lib -lunistring ../intl/libintl.la
libtool: link: mipsel-openwrt-linux-musl-gcc -DINSTALLDIR=\"/usr/bin\" -Os -pipe -mno-branch-likely -mips32r2 -mtune=24kc -fno-caller-saves -fno-plt -fhonour-copts -msoft-float -fmacro-prefix-map=/path/to/build/target-mipsel_24kc_musl/gettext-0.21.1=gettext-0.21.1 -mips16 -minterlink-mips16 -Wformat -Werror=format-security -fstack-protector -D_FORTIFY_SOURCE=1 -Wl,-z -Wl,now -Wl,-z -Wl,relro -DPIC -fpic -znow -zrelro -o .libs/ngettext ngettext-ngettext.o  -L/path/to/staging/toolchain-mipsel_24kc_gcc-12.2.0_musl/usr/lib -L/path/to/staging/toolchain-mipsel_24kc_gcc-12.2.0_musl/lib ../gnulib-lib/libgrt.a -L/path/to/staging/target-mipsel_24kc_musl/usr/lib -lunistring ../intl/.libs/libintl.so
mipsel-openwrt-linux-musl-gcc -DLOCALEDIR=\"/usr/share/locale\" -DHAVE_CONFIG_H -I. -I..  -I. -I. -I.. -I../intl -I./../intl -I../gnulib-lib -I./../gnulib-lib -I/path/to/staging/toolchain-mipsel_24kc_gcc-12.2.0_musl/usr/include -I/path/to/staging/toolchain-mipsel_24kc_gcc-12.2.0_musl/include/fortify -I/path/to/staging/toolchain-mipsel_24kc_gcc-12.2.0_musl/include  -I/path/to/staging/target-mipsel_24kc_musl/usr/include -DINSTALLDIR=\"/usr/bin\" -Os -pipe -mno-branch-likely -mips32r2 -mtune=24kc -fno-caller-saves -fno-plt -fhonour-copts -msoft-float -fmacro-prefix-map=/path/to/build/target-mipsel_24kc_musl/gettext-0.21.1=gettext-0.21.1 -mips16 -minterlink-mips16 -Wformat -Werror=format-security -fstack-protector -D_FORTIFY_SOURCE=1 -Wl,-z,now -Wl,-z,relro -DPIC -fpic  -c -o envsubst-envsubst.o `test -f 'envsubst.c' || echo './'`envsubst.c
/bin/bash ../libtool  --tag=CC   --mode=link mipsel-openwrt-linux-musl-gcc -DINSTALLDIR=\"/usr/bin\" -Os -pipe -mno-branch-likely -mips32r2 -mtune=24kc -fno-caller-saves -fno-plt -fhonour-copts -msoft-float -fmacro-prefix-map=/path/to/build/target-mipsel_24kc_musl/gettext-0.21.1=gettext-0.21.1 -mips16 -minterlink-mips16 -Wformat -Werror=format-security -fstack-protector -D_FORTIFY_SOURCE=1 -Wl,-z,now -Wl,-z,relro -DPIC -fpic   -L/path/to/staging/toolchain-mipsel_24kc_gcc-12.2.0_musl/usr/lib -L/path/to/staging/toolchain-mipsel_24kc_gcc-12.2.0_musl/lib -znow -zrelro  -o envsubst envsubst-envsubst.o ../gnulib-lib/libgrt.a -L/path/to/staging/target-mipsel_24kc_musl/usr/lib -lunistring ../intl/libintl.la
mcprat commented 1 year ago

Sorry....It's actually not correct at this point to say that it only affects some hosts

what actually happens before my PR is:

the CI build using the sdk, and some people here, do a make world which coincidentally builds libunistring before gettext, otherwise, even with the strange configuration change to gettext-runtime, it would use the included objects.

bhaible commented 1 year ago

I only notice an autom4te.cache after using autogen.sh. Would disabling caching for this build make a difference?

The autom4te.cache directories cannot be disabled; they can only be deleted after the autotools have run. But they are only a cosmetic problem, AFAIK. I haven't seen them cause any malfunction.

One thing thats clear to me is, gettext-runtime building does require some objects from libunistring. So if I understand you right, the link dependency still exists, but upstream wants the link to only be with libgrt with the included libunistring objects and not a link to an external library, and the only difference should be size and performance right?

Correct.

it seems that $(LIBUNISTRING) is supposed to be added to $(LIBS)

No it isn't. The Makefile is supposed to link only specific binaries against $(LIBUNISTRING).

we have a site config file but there is nothing in it about libunistring as far as I can tell.

Can you temporary remove the site config and try to build gettext again? The site config is my primary suspect.

target build with libunistring detected on system --> bad

So let's focus on what you call the "target builds" (a cross-compilation build, AFAIU). Can you please attach

  1. the configure command line and environment variables for the "target build",
  2. the configure output (stdout, stderr) of that configure command,
  3. the files config.log and config.status from the gettext-runtime directory. This should let us progress a bit.
mcprat commented 1 year ago

even though we have a fix for now I would like to keep investigating this

probably I'll make a gist to share files

bhaible commented 1 year ago

probably I'll make a gist to share files

You don't need a gist in order to include files in a github issue. Just compress the file and drag-and-drop it into the comment area. Like this: dummy.c.gz

mcprat commented 1 year ago

I was thinking it would be easier for both of us, to be able to have line numbers on screen and keep track of changes between logs

mcprat commented 1 year ago

by the way, I think the problem is during autogen.sh, that's when I see a diff between the new and old configure script including the with-libunistring-prefix option appearing. if you want I can patch autogen.sh to show autoconf / automake in verbose

but if you really want to see configure log I'll do that too

mcprat commented 1 year ago

@bhaible here is all the output

https://gist.github.com/5eff278e48e9ab2285ff4b740e24c08b

here is a direct link to a zip if you prefer that https://gist.github.com/mpratt14/5eff278e48e9ab2285ff4b740e24c08b/archive/ee76049cd54ebed89de12dbd7beaa8125d54e32d.zip

with no site file, it still happens I included config.log and config.status for all subdirs except "examples"

in nohup.out: no site config file warning at line 4 environment variables starts line 37 (using the variables in make, which is a little messy but I filtered some openwrt specific things) autogen.sh starts line 673 configure starts line 7758 make all starts line 9788

mcprat commented 1 year ago

by the way, the site config would consist of these two combined, if I did not delete them for testing

https://github.com/openwrt/openwrt/blob/main/include/site/mipsel https://github.com/openwrt/openwrt/blob/main/include/site/linux

bhaible commented 1 year ago

here is a direct link to a zip if you prefer that https://gist.github.com/mpratt14/5eff278e48e9ab2285ff4b740e24c08b/archive/ee76049cd54ebed89de12dbd7beaa8125d54e32d.zip

Thanks. What I see there, in config.status.gettext-runtime, and which causes the link error, is:

S["LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_FALSE"]=""
S["LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE"]="#"
S["LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_FALSE"]=""
S["LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_TRUE"]="#"

In the same file, also:

S["LIBUNISTRING_PREFIX"]="/media/SDStorage/builds/github-openwrt/openwrt/staging_dir/target-mipsel_24kc_musl/usr"
S["LTLIBUNISTRING"]="-L/media/SDStorage/builds/github-openwrt/openwrt/staging_dir/target-mipsel_24kc_musl/usr/lib -lunistring"
S["LIBUNISTRING"]="/media/SDStorage/builds/github-openwrt/openwrt/staging_dir/target-mipsel_24kc_musl/usr/lib/libunistring.so"
S["HAVE_LIBUNISTRING"]="yes"

These lines should not be there, since gettext-runtime is meant to be agnostic of any preinstalled libunistring.

And in fact, when I configure a freshly unpacked gettext-0.21.1 with option --with-libunistring-prefix=/somewhere/libunistring/1.1, I see a mention of LIBUNISTRING_PREFIX or LTLIBUNISTRING only in gettext-tools/config.status, not in gettext-runtime/config.status. Likewise also after invoking autoreconf before configure.

So, apparently, you have modified gettext-runtime/configure in some way, other than calling autoreconf, and this is what caused the issue. No issue is present in the gettext-0.21.1 tarball.

bhaible commented 1 year ago

by the way, the site config would consist of these two combined, if I did not delete them for testing

https://github.com/openwrt/openwrt/blob/main/include/site/mipsel https://github.com/openwrt/openwrt/blob/main/include/site/linux

Among these settings, some look fishy or dangerous:

ac_cv_c_long_double=no
as_cv_unaligned_access=yes
mcprat commented 1 year ago

So, apparently, you have modified gettext-runtime/configure in some way, other than calling autoreconf, and this is what caused the issue. No issue is present in the gettext-0.21.1 tarball.

Everything you say sounds good and correct, but I don't see evidence of configure being altered (except by autogen.,sh), which is why I'm totally lost...

For example, our patches for gettext https://github.com/openwrt/openwrt/tree/master/package/libs/gettext-full/patches

  1. gettext-tools/misc
  2. gettext-tools/man gettext-runtime/man (which I believe can be removed now since I disabled man build in Makefile)
  3. libxml.diff
  4. gettext-runtime/src/Makefile.am

@bhaible what do you think about me editing autogen.sh to show verbose output from autoconf / automake and post that? would it be helpful?

bhaible commented 1 year ago

I don't see evidence of configure being altered (except by autogen.sh)

I have no idea which effects the two autogen.sh invocations in https://github.com/openwrt/openwrt/blob/master/package/libs/gettext-full/Makefile have. I am not familiar with openwrt's build system in general, either.

what do you think about me editing autogen.sh to show verbose output from autoconf / automake and post that? would it be helpful?

It wouldn't be helpful to me, since I've already drawn my conclusion. What may be helpful to you, for finding what caused gettext-runtime/configure to be modified, is:

  1. temporarily revert 200-libunistring-missing-link.patch,
  2. add a printout of md5sum gettext-runtime/configure after each step.
mcprat commented 1 year ago

in the branch I'm testing with, I have always had that patch removed

I discovered that the gettext-runtime/configure script is modified the same way by autogen.sh in both the host build and the target build (cross-compile), because they end up with the same checksums. So the difference is something else...

I'm going to look at the config.status for host build and I can post all the output from a host build if it helps. I would do a diff between files of the different builds but it might be messy because of the different directories.

mcprat commented 1 year ago

@bhaible should we not be including our aclocal while doing autogen.sh?

verbose output from autotools when gettext-runtime/configure is replaced:

...
...
aclocal.real: found macro gl_LIBUNISTRING_MODULE in gnulib-m4/libunistring-base.m4: 22
aclocal.real: found macro gl_LIBUNISTRING_LIBHEADER in gnulib-m4/libunistring-base.m4: 48
aclocal.real: found macro gl_LIBUNISTRING_LIB_PREPARE in gnulib-m4/libunistring-base.m4: 67
aclocal.real: found macro gl_LIBUNISTRING_VERSION_CMP in gnulib-m4/libunistring-base.m4: 103
...
...
aclocal.real: found macro gl_LIBUNISTRING in /path/to/openwrt/staging_dir/host/share/aclocal/libunistring.m4: 26
aclocal.real: found macro gl_LIBUNISTRING_CORE in /path/to/openwrt/staging_dir/host/share/aclocal/libunistring.m4: 61
aclocal.real: found macro gl_LIBUNISTRING_OPTIONAL in /path/to/openwrt/staging_dir/host/share/aclocal/libunistring-optional.m4: 15
aclocal.real: ignoring macro gl_LIBUNISTRING_MODULE in /path/to/openwrt/staging_dir/host/share/aclocal/libunistring-base.m4: 22
aclocal.real: ignoring macro gl_LIBUNISTRING_LIBHEADER in /path/to/openwrt/staging_dir/host/share/aclocal/libunistring-base.m4: 48
aclocal.real: ignoring macro gl_LIBUNISTRING_LIB_PREPARE in /path/to/openwrt/staging_dir/host/share/aclocal/libunistring-base.m4: 67
aclocal.real: ignoring macro gl_LIBUNISTRING_VERSION_CMP in /path/to/openwrt/staging_dir/host/share/aclocal/libunistring-base.m4: 103
...
...
aclocal.real: saw macro gl_LIBUNISTRING_LIBHEADER
aclocal.real: saw macro gl_LIBUNISTRING_MODULE
aclocal.real: saw macro gl_LIBUNISTRING_LIB_PREPARE
aclocal.real: saw macro gl_CONDITIONAL
aclocal.real: saw macro gl_LIBUNISTRING_VERSION_CMP
aclocal.real: saw macro gl_LIBUNISTRING_LIBHEADER
aclocal.real: saw macro gl_LIBUNISTRING_LIB_PREPARE
aclocal.real: saw macro gl_LIBUNISTRING_VERSION_CMP
aclocal.real: saw macro gl_LIBUNISTRING_LIB_PREPARE
aclocal.real: saw macro gl_LIBUNISTRING
aclocal.real: saw macro gl_LIBUNISTRING
aclocal.real: saw macro gl_LIBUNISTRING_MODULE
aclocal.real: saw macro gl_LIBUNISTRING_LIBHEADER
aclocal.real: saw macro gl_LIBUNISTRING_LIB_PREPARE
aclocal.real: saw macro gl_LIBUNISTRING_OPTIONAL
aclocal.real: saw macro gl_LIBUNISTRING_OPTIONAL
aclocal.real: saw macro gl_LIBUNISTRING
aclocal.real: saw macro gl_LIBUNISTRING
aclocal.real: saw macro gl_LIBUNISTRING_CORE
aclocal.real: saw macro gl_LIBUNISTRING_CORE
aclocal.real: saw macro gl_LIBUNISTRING_CORE
...
...
aclocal.real: saw macro gl_LIBUNISTRING_VERSION_CMP
aclocal.real: saw macro gl_LIBUNISTRING_LIB_PREPARE
aclocal.real: saw macro gl_LIBUNISTRING_LIB_PREPARE
aclocal.real: saw macro gl_LIBUNISTRING
aclocal.real: saw macro gl_MODULE_INDICATOR
aclocal.real: saw macro gl_LIBUNISTRING_MODULE
aclocal.real: saw macro gl_MODULE_INDICATOR
aclocal.real: saw macro gl_LIBUNISTRING_MODULE
aclocal.real: saw macro gl_LIBUNISTRING_LIBHEADER
aclocal.real: saw macro gl_LIBUNISTRING_LIBHEADER
aclocal.real: saw macro gl_LIBUNISTRING_MODULE
...
...
autom4te: allowed   tokens: ^am__quote$|^AS_FLAGS$|^SHELL$|^PATH_SEPARATOR$|^PACKAGE_NAME$|^PACKAGE_TARNAME$|^PACKAGE_VERSION$|^PACKAGE_STRING$|^PACKAGE_BUGREPORT$|^PACKAGE_URL$|^exec_prefix$|^prefix$|^program_transform_name$|^bindir$|^sbindir$|^libexecdir$|^datarootdir$|^datadir$|^sysconfdir$|^sharedstatedir$|^localstatedir$|^runstatedir$|^includedir$|^oldincludedir$|^docdir$|^infodir$|^htmldir$|^dvidir$|^pdfdir$|^psdir$|^libdir$|^localedir$|^mandir$|^PACKAGE_NAME$|^PACKAGE_TARNAME$|^PACKAGE_VERSION$|^PACKAGE_STRING$|^PACKAGE_BUGREPORT$|^PACKAGE_URL$|^DEFS$|^ECHO_C$|^ECHO_N$|^ECHO_T$|^LIBS$|^build_alias$|^host_alias$|^target_alias$|^AM_[A-Z]+FLAGS$|^INSTALL_PROGRAM$|^INSTALL_SCRIPT$|^INSTALL_DATA$|^am__isrc$|^CYGPATH_W$|^PACKAGE$|^VERSION$|^PACKAGE$|^VERSION$|^ACLOCAL$|^AUTOCONF$|^AUTOMAKE$|^AUTOHEADER$|^MAKEINFO$|^install_sh$|^STRIP$|^INSTALL_STRIP_PROGRAM$|^MKDIR_P$|^mkdir_p$|^AWK$|^SET_MAKE$|^am__leading_dot$|^AMTAR$|^am__tar$|^am__untar$|^CTAGS$|^ETAGS$|^CSCOPE$|^AM_V$|^AM_DEFAULT_V$|^AM_DEFAULT_VERBOSITY$|^AM_BACKSLASH$|^CC$|^CFLAGS$|^LDFLAGS$|^LIBS$|^CPPFLAGS$|^CC$|^CC$|^CC$|^CC$|^ac_ct_CC$|^CC$|^EXEEXT$|^OBJEXT$|^DEPDIR$|^am__include$|^AMDEP_TRUE$|^AMDEP_FALSE$|^AMDEPBACKSLASH$|^am__nodep$|^CCDEPMODE$|^am__fastdepCC_TRUE$|^am__fastdepCC_FALSE$|^JAVA_CHOICE$|^CPP$|^CPPFLAGS$|^CPP$|^GREP$|^EGREP$|^HAVE_GCJ_IN_PATH$|^HAVE_JAVAC_IN_PATH$|^HAVE_JIKES_IN_PATH$|^CONF_JAVAC$|^CLASSPATH$|^CLASSPATH_SEPARATOR$|^HAVE_JAVAC_ENVVAR$|^HAVE_GCJ_C$|^HAVE_JAVAC$|^HAVE_JIKES$|^JAR$|^CONF_JAVAC$|^HAVE_JAVAC_ENVVAR$|^HAVE_GCJ_C$|^HAVE_JAVAC$|^HAVE_JIKES$|^BUILDJAVA$|^CSHARP_CHOICE$|^CSHARP_CHOICE_MONO$|^HAVE_MCS_IN_PATH$|^HAVE_CSC_IN_PATH$|^HAVE_MCS$|^HAVE_CSC$|^CSHARPCOMPFLAGS$|^BUILDCSHARP$|^build$|^build_cpu$|^build_vendor$|^build_os$|^host$|^host_cpu$|^host_vendor$|^host_os$|^AR$|^AR$|^ARFLAGS$|^RANLIB$|^RANLIB$|^gl_ES$|^gl_LIBOBJS$|^gl_LTLIBOBJS$|^STDC_HEADERS$|^_ALL_SOURCE$|^_DARWIN_C_SOURCE$|^_GNU_SOURCE$|^_HPUX_ALT_XOPEN_SOCKET_API$|^_NETBSD_SOURCE$|^_OPENBSD_SOURCE$|^_POSIX_PTHREAD_SEMANTICS$|^__STDC_WANT_IEC_60559_ATTRIBS_EXT__$|^__STDC_WANT_IEC_60559_BFP_EXT__$|^__STDC_WANT_IEC_60559_DFP_EXT__$|^__STDC_WANT_IEC_60559_EXT__$|^__STDC_WANT_IEC_60559_FUNCS_EXT__$|^__STDC_WANT_IEC_60559_TYPES_EXT__$|^__STDC_WANT_LIB_EXT2__$|^__STDC_WANT_MATH_SPEC_FUNCS__$|^_TANDEM_SOURCE$|^_MINIX$|^_POSIX_SOURCE$|^_POSIX_1_SOURCE$|^__EXTENSIONS__$|^_XOPEN_SOURCE$|^_ISOC11_SOURCE$|^CXX_CHOICE$|^CXX$|^ac_ct_CXX$|^CXX$|^CXXFLAGS$|^CXX$|^ANSICXX_TRUE$|^ANSICXX_FALSE$|^CXXDEPMODE$|^am__fastdepCXX_TRUE$|^am__fastdepCXX_FALSE$|^am__fastdepCXX_TRUE$|^am__fastdepCXX_FALSE$|^_FILE_OFFSET_BITS$|^_LARGE_FILES$|^_TIME_BITS$|^__MINGW_USE_VC2005_COMPAT$|^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$|^AS$|^DLLTOOL$|^OBJDUMP$|^LIBTOOL$|^SED$|^FGREP$|^GREP$|^LD$|^DUMPBIN$|^ac_ct_DUMPBIN$|^DUMPBIN$|^NM$|^LN_S$|^FILECMD$|^OBJDUMP$|^OBJDUMP$|^DLLTOOL$|^DLLTOOL$|^AR$|^ac_ct_AR$|^STRIP$|^RANLIB$|LT_OBJDIR|^LT_OBJDIR$|^MANIFEST_TOOL$|^DSYMUTIL$|^NMEDIT$|^LIPO$|^OTOOL$|^OTOOL64$|^LT_SYS_LIBRARY_PATH$|^HAVE_DLFCN_H$|^CXXCPP$|^CPPFLAGS$|^CXXCPP$|^LD$|^LT_SYS_LIBRARY_PATH$|^RC$|^WOE32_TRUE$|^WOE32_FALSE$|^WINDOWS_NATIVE_TRUE$|^WINDOWS_NATIVE_FALSE$|^USE_NLS$|^GETTEXT_MACRO_VERSION$|^MSGFMT$|^GMSGFMT$|^GMSGFMT_015$|^XGETTEXT$|^XGETTEXT_015$|^MSGMERGE$|^MSGMERGE_FOR_MSGFMT_OPTION$|^XGETTEXT_EXTRA_OPTIONS$|^GLIBC2$|^CFLAG_VISIBILITY$|^HAVE_VISIBILITY$|^HAVE_VISIBILITY$|^size_t$|^HAVE_STDINT_H_WITH_UINTMAX$|^HAVE_ALLOCA_H$|^HAVE_ALLOCA$|^ALLOCA$|^C_ALLOCA$|^STACK_DIRECTION$|^HAVE_MMAP$|^INTDIV0_RAISES_SIGFPE$|^HAVE_INTTYPES_H_WITH_UINTMAX$|^HAVE_UNSIGNED_LONG_LONG_INT$|^uintmax_t$|^HAVE_UINTMAX_T$|^HAVE_WEAK_SYMBOLS$|^PTHREAD_IN_USE_DETECTION_HARD$|^LIBPTHREAD$|^LIBPMULTITHREAD$|^HAVE_PTHREAD_API$|^SCHED_YIELD_LIB$|^LIB_SCHED_YIELD$|^USE_ISOC_AND_POSIX_THREADS$|^USE_POSIX_THREADS$|^USE_POSIX_THREADS_FROM_LIBC$|^USE_POSIX_THREADS_WEAK$|^PTHREAD_IN_USE_DETECTION_HARD$|^PTHREAD_IN_USE_DETECTION_HARD$|^LIBPTHREAD$|^LIBPMULTITHREAD$|^HAVE_PTHREAD_API$|^SCHED_YIELD_LIB$|^LIB_SCHED_YIELD$|^HAVE_THRD_CREATE$|^LIBSTDTHREAD$|^USE_ISOC_THREADS$|^USE_WINDOWS_THREADS$|^LIBTHREAD$|^LTLIBTHREAD$|^LIBMULTITHREAD$|^LTLIBMULTITHREAD$|^HAVE_PTHREAD_RWLOCK$|^HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER$|^HAVE_PTHREAD_MUTEX_RECURSIVE$|^HAVE_BUILTIN_EXPECT$|^HAVE_INTTYPES_H$|^HAVE_UNISTD_H$|^HAVE_SYS_PARAM_H$|^HAVE_GETCWD$|^HAVE_GETEGID$|^HAVE_GETEUID$|^HAVE_GETGID$|^HAVE_GETUID$|^HAVE_MEMPCPY$|^HAVE_MUNMAP$|^HAVE_STPCPY$|^HAVE_STRCASECMP$|^HAVE_TSEARCH$|^HAVE___FSETLOCKING$|^HAVE_DECL_FEOF_UNLOCKED$|^HAVE_DECL_FGETS_UNLOCKED$|^HAVE_ICONV$|^LIBICONV$|^LTLIBICONV$|^ICONV_CONST$|^ICONV_CONST$|^REPLACE_ICONV$|^REPLACE_ICONV_OPEN$|^REPLACE_ICONV_UTF$|^INTLBISON$|^INTLBISON$|^HAVE_LONG_LONG_INT$|^HAVE_WCHAR_T$|^HAVE_WINT_T$|^GNULIBHEADERS_OVERRIDE_WINT_T$|^HAVE_INTMAX_T$|^HAVE_POSIX_PRINTF$|^HAVE_STDINT_H$|^SIZE_MAX$|^HAVE_STDINT_H$|^HAVE_WORKING_O_NOATIME$|^HAVE_WORKING_O_NOFOLLOW$|^HAVE_NEWLOCALE$|^HAVE_DUPLOCALE$|^HAVE_FREELOCALE$|^REPLACE_LOCALECONV$|^REPLACE_SETLOCALE$|^REPLACE_NEWLOCALE$|^REPLACE_DUPLOCALE$|^REPLACE_FREELOCALE$|^REPLACE_STRUCT_LCONV$|^LOCALENAME_ENHANCE_LOCALE_FUNCS$|^HAVE_USELOCALE$|^HAVE_WORKING_USELOCALE$|^HAVE_FAKE_LOCALES$|^HAVE_SOLARIS114_LOCALES$|^HAVE_GETLOCALENAME_L$|^HAVE_NAMELESS_LOCALES$|^HAVE_GOOD_USELOCALE$|^LOCALENAME_ENHANCE_LOCALE_FUNCS$|^HAVE_CFPREFERENCESCOPYAPPVALUE$|^HAVE_CFLOCALECOPYPREFERREDLANGUAGES$|^INTL_MACOSX_LIBS$|^HAVE___HEADER_INLINE$|^FLEXIBLE_ARRAY_MEMBER$|^FLEXIBLE_ARRAY_MEMBER$|^INTL_DEFAULT_VERBOSITY$|^ptrdiff_t$|^HAVE_FEATURES_H$|^HAVE_STDDEF_H$|^HAVE_STDLIB_H$|^HAVE_STRING_H$|^HAVE_ASPRINTF$|^HAVE_WPRINTF$|^HAVE_NEWLOCALE$|^HAVE_PUTENV$|^HAVE_SETENV$|^HAVE_SNPRINTF$|^HAVE_STRNLEN$|^HAVE_USELOCALE$|^HAVE_WCSLEN$|^HAVE_WCSNLEN$|^HAVE_MBRTOWC$|^HAVE_WCRTOMB$|^HAVE_DECL__SNPRINTF$|^HAVE_DECL__SNWPRINTF$|^HAVE_DECL_GETC_UNLOCKED$|^HAVE_POSIX_PRINTF$|^HAVE_ASPRINTF$|^HAVE_SNPRINTF$|^HAVE_NEWLOCALE$|^HAVE_WPRINTF$|^HAVE_LANGINFO_CODESET$|^HAVE_LC_MESSAGES$|^ENHANCE_LOCALE_FUNCS$|^WOE32DLL$|^WOE32$|^WINDRES$|^HAVE_CFPREFERENCESCOPYAPPVALUE$|^HAVE_CFLOCALECOPYPREFERREDLANGUAGES$|^INTL_MACOSX_LIBS$|^ENABLE_NLS$|^HAVE_GETTEXT$|^HAVE_DCGETTEXT$|^BUILD_INCLUDED_LIBINTL$|^USE_INCLUDED_LIBINTL$|^CATOBJEXT$|^INTLLIBS$|^LIBINTL$|^LTLIBINTL$|^POSUB$|^USE_INCLUDED_LIBINTL_TRUE$|^USE_INCLUDED_LIBINTL_FALSE$|^BUILD_INCLUDED_LIBINTL_TRUE$|^BUILD_INCLUDED_LIBINTL_FALSE$|^PACKAGE_IS_GETTEXT_TOOLS_TRUE$|^PACKAGE_IS_GETTEXT_TOOLS_FALSE$|^PRELOADABLE_LIBINTL_TRUE$|^PRELOADABLE_LIBINTL_FALSE$|^GL_COND_LIBTOOL_TRUE$|^GL_COND_LIBTOOL_FALSE$|^HAVE_C_ALIGNASOF$|^HAVE_ALLOCA$|^HAVE_ALLOCA_H$|^ALLOCA_H$|^GL_GENERATE_ALLOCA_H_TRUE$|^GL_GENERATE_ALLOCA_H_FALSE$|^HAVE_C_STATIC_ASSERT$|^INCLUDE_NEXT$|^INCLUDE_NEXT_AS_FIRST_DIRECTIVE$|^PRAGMA_SYSTEM_HEADER$|^PRAGMA_COLUMNS$|^NEXT_ASSERT_H$|^NEXT_AS_FIRST_DIRECTIVE_ASSERT_H$|^ASSERT_H$|^GL_GENERATE_ASSERT_H_TRUE$|^GL_GENERATE_ASSERT_H_FALSE$|^HAVE_ATEXIT$|^GL_COND_OBJ_ATEXIT_TRUE$|^GL_COND_OBJ_ATEXIT_FALSE$|^HAVE___BUILTIN_EXPECT$|^HAVE___BUILTIN_EXPECT$|^HAVE__EXIT$|^HAVE_ALIGNED_ALLOC$|^HAVE_ATOLL$|^HAVE_CANONICALIZE_FILE_NAME$|^HAVE_DECL_ECVT$|^HAVE_DECL_FCVT$|^HAVE_DECL_GCVT$|^HAVE_DECL_GETLOADAVG$|^HAVE_GETPROGNAME$|^HAVE_GETSUBOPT$|^HAVE_GRANTPT$|^HAVE_INITSTATE$|^HAVE_DECL_INITSTATE$|^HAVE_MBTOWC$|^HAVE_MKDTEMP$|^HAVE_MKOSTEMP$|^HAVE_MKOSTEMPS$|^HAVE_MKSTEMP$|^HAVE_MKSTEMPS$|^HAVE_POSIX_MEMALIGN$|^HAVE_POSIX_OPENPT$|^HAVE_PTSNAME$|^HAVE_PTSNAME_R$|^HAVE_QSORT_R$|^HAVE_RANDOM$|^HAVE_RANDOM_H$|^HAVE_RANDOM_R$|^HAVE_REALLOCARRAY$|^HAVE_REALPATH$|^HAVE_RPMATCH$|^HAVE_SECURE_GETENV$|^HAVE_SETENV$|^HAVE_DECL_SETENV$|^HAVE_SETSTATE$|^HAVE_DECL_SETSTATE$|^HAVE_STRTOD$|^HAVE_STRTOL$|^HAVE_STRTOLD$|^HAVE_STRTOLL$|^HAVE_STRTOUL$|^HAVE_STRTOULL$|^HAVE_STRUCT_RANDOM_DATA$|^HAVE_SYS_LOADAVG_H$|^HAVE_UNLOCKPT$|^HAVE_DECL_UNSETENV$|^REPLACE__EXIT$|^REPLACE_ALIGNED_ALLOC$|^REPLACE_CALLOC_FOR_CALLOC_GNU$|^REPLACE_CALLOC_FOR_CALLOC_POSIX$|^REPLACE_CANONICALIZE_FILE_NAME$|^REPLACE_FREE$|^REPLACE_GETLOADAVG$|^REPLACE_GETPROGNAME$|^REPLACE_GETSUBOPT$|^REPLACE_INITSTATE$|^REPLACE_MALLOC_FOR_MALLOC_GNU$|^REPLACE_MALLOC_FOR_MALLOC_POSIX$|^REPLACE_MBTOWC$|^REPLACE_MKOSTEMP$|^REPLACE_MKOSTEMPS$|^REPLACE_MKSTEMP$|^REPLACE_POSIX_MEMALIGN$|^REPLACE_POSIX_OPENPT$|^REPLACE_PTSNAME$|^REPLACE_PTSNAME_R$|^REPLACE_PUTENV$|^REPLACE_QSORT_R$|^REPLACE_RANDOM$|^REPLACE_RANDOM_R$|^REPLACE_REALLOC_FOR_REALLOC_GNU$|^REPLACE_REALLOC_FOR_REALLOC_POSIX$|^REPLACE_REALLOCARRAY$|^REPLACE_REALPATH$|^REPLACE_SETENV$|^REPLACE_SETSTATE$|^REPLACE_STRTOD$|^REPLACE_STRTOL$|^REPLACE_STRTOLD$|^REPLACE_STRTOLL$|^REPLACE_STRTOUL$|^REPLACE_STRTOULL$|^REPLACE_UNSETENV$|^REPLACE_WCTOMB$|^HAVE_MALLOC_POSIX$|^GL_GNULIB__EXIT$|^GL_GNULIB_ALIGNED_ALLOC$|^GL_GNULIB_ATOLL$|^GL_GNULIB_CALLOC_GNU$|^GL_GNULIB_CALLOC_POSIX$|^GL_GNULIB_CANONICALIZE_FILE_NAME$|^GL_GNULIB_FREE_POSIX$|^GL_GNULIB_GETLOADAVG$|^GL_GNULIB_GETPROGNAME$|^GL_GNULIB_GETSUBOPT$|^GL_GNULIB_GRANTPT$|^GL_GNULIB_MALLOC_GNU$|^GL_GNULIB_MALLOC_POSIX$|^GL_GNULIB_MBTOWC$|^GL_GNULIB_MKDTEMP$|^GL_GNULIB_MKOSTEMP$|^GL_GNULIB_MKOSTEMPS$|^GL_GNULIB_MKSTEMP$|^GL_GNULIB_MKSTEMPS$|^GL_GNULIB_POSIX_MEMALIGN$|^GL_GNULIB_POSIX_OPENPT$|^GL_GNULIB_PTSNAME$|^GL_GNULIB_PTSNAME_R$|^GL_GNULIB_PUTENV$|^GL_GNULIB_QSORT_R$|^GL_GNULIB_RANDOM$|^GL_GNULIB_RANDOM_R$|^GL_GNULIB_REALLOCARRAY$|^GL_GNULIB_REALLOC_GNU$|^GL_GNULIB_REALLOC_POSIX$|^GL_GNULIB_REALPATH$|^GL_GNULIB_RPMATCH$|^GL_GNULIB_SECURE_GETENV$|^GL_GNULIB_SETENV$|^GL_GNULIB_STRTOD$|^GL_GNULIB_STRTOL$|^GL_GNULIB_STRTOLD$|^GL_GNULIB_STRTOLL$|^GL_GNULIB_STRTOUL$|^GL_GNULIB_STRTOULL$|^GL_GNULIB_SYSTEM_POSIX$|^GL_GNULIB_UNLOCKPT$|^GL_GNULIB_UNSETENV$|^GL_GNULIB_WCTOMB$|^GL_GNULIB_MDA_ECVT$|^GL_GNULIB_MDA_FCVT$|^GL_GNULIB_MDA_GCVT$|^GL_GNULIB_MDA_MKTEMP$|^GL_GNULIB_MDA_PUTENV$|^GNULIB_TEST_CALLOC_GNU$|^GNULIB_TEST_CALLOC_POSIX$|^LSTAT_FOLLOWS_SLASHED_SYMLINK$|^HAVE_FACCESSAT$|^HAVE_GETCWD$|^DOUBLE_SLASH_IS_DISTINCT_ROOT$|^FUNC_REALPATH_WORKS$|^FUNC_REALPATH_NEARLY_WORKS$|^GL_COND_OBJ_CANONICALIZE_LGPL_TRUE$|^GL_COND_OBJ_CANONICALIZE_LGPL_FALSE$|^GNULIB_CANONICALIZE_LGPL$|^GNULIB_TEST_CANONICALIZE_FILE_NAME$|^GNULIB_TEST_REALPATH$|^restrict$|^restrict$|^HAVE_READLINKAT$|^GNULIB_TEST_CLOEXEC$|^HAVE_CHOWN$|^HAVE_COPY_FILE_RANGE$|^HAVE_DUP3$|^HAVE_EUIDACCESS$|^HAVE_EXECVPE$|^HAVE_FACCESSAT$|^HAVE_FCHDIR$|^HAVE_FCHOWNAT$|^HAVE_FDATASYNC$|^HAVE_FSYNC$|^HAVE_FTRUNCATE$|^HAVE_GETDTABLESIZE$|^HAVE_GETENTROPY$|^HAVE_GETGROUPS$|^HAVE_GETHOSTNAME$|^HAVE_GETLOGIN$|^HAVE_GETPAGESIZE$|^HAVE_GETPASS$|^HAVE_GROUP_MEMBER$|^HAVE_LCHOWN$|^HAVE_LINK$|^HAVE_LINKAT$|^HAVE_PIPE$|^HAVE_PIPE2$|^HAVE_PREAD$|^HAVE_PWRITE$|^HAVE_READLINK$|^HAVE_READLINKAT$|^HAVE_SETHOSTNAME$|^HAVE_SLEEP$|^HAVE_SYMLINK$|^HAVE_SYMLINKAT$|^HAVE_UNLINKAT$|^HAVE_USLEEP$|^HAVE_DECL_ENVIRON$|^HAVE_DECL_EXECVPE$|^HAVE_DECL_FCHDIR$|^HAVE_DECL_FDATASYNC$|^HAVE_DECL_GETDOMAINNAME$|^HAVE_DECL_GETLOGIN$|^HAVE_DECL_GETLOGIN_R$|^HAVE_DECL_GETPAGESIZE$|^HAVE_DECL_GETUSERSHELL$|^HAVE_DECL_SETHOSTNAME$|^HAVE_DECL_TRUNCATE$|^HAVE_DECL_TTYNAME_R$|^HAVE_OS_H$|^HAVE_SYS_PARAM_H$|^REPLACE_ACCESS$|^REPLACE_CHOWN$|^REPLACE_CLOSE$|^REPLACE_COPY_FILE_RANGE$|^REPLACE_DUP$|^REPLACE_DUP2$|^REPLACE_DUP3$|^REPLACE_EXECL$|^REPLACE_EXECLE$|^REPLACE_EXECLP$|^REPLACE_EXECV$|^REPLACE_EXECVE$|^REPLACE_EXECVP$|^REPLACE_EXECVPE$|^REPLACE_FACCESSAT$|^REPLACE_FCHOWNAT$|^REPLACE_FDATASYNC$|^REPLACE_FTRUNCATE$|^REPLACE_GETCWD$|^REPLACE_GETDOMAINNAME$|^REPLACE_GETDTABLESIZE$|^REPLACE_GETENTROPY$|^REPLACE_GETLOGIN_R$|^REPLACE_GETGROUPS$|^REPLACE_GETPAGESIZE$|^REPLACE_GETPASS$|^REPLACE_GETPASS_FOR_GETPASS_GNU$|^REPLACE_ISATTY$|^REPLACE_LCHOWN$|^REPLACE_LINK$|^REPLACE_LINKAT$|^REPLACE_LSEEK$|^REPLACE_PIPE2$|^REPLACE_PREAD$|^REPLACE_PWRITE$|^REPLACE_READ$|^REPLACE_READLINK$|^REPLACE_READLINKAT$|^REPLACE_RMDIR$|^REPLACE_SETHOSTNAME$|^REPLACE_SLEEP$|^REPLACE_SYMLINK$|^REPLACE_SYMLINKAT$|^REPLACE_TRUNCATE$|^REPLACE_TTYNAME_R$|^REPLACE_UNLINK$|^REPLACE_UNLINKAT$|^REPLACE_USLEEP$|^REPLACE_WRITE$|^UNISTD_H_HAVE_SYS_RANDOM_H$|^UNISTD_H_HAVE_WINSOCK2_H$|^UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS$|^HAVE_MSVC_INVALID_PARAMETER_HANDLER$|^HAVE_MSVC_INVALID_PARAMETER_HANDLER$|^SYS_IOCTL_H_HAVE_WINSOCK2_H$|^SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS$|^REPLACE_IOCTL$|^HAVE_WINSOCK2_H$|^HAVE_WINSOCK2_H$|^GL_COND_OBJ_CLOSE_TRUE$|^GL_COND_OBJ_CLOSE_FALSE$|^GL_GNULIB_ACCESS$|^GL_GNULIB_CHDIR$|^GL_GNULIB_CHOWN$|^GL_GNULIB_CLOSE$|^GL_GNULIB_COPY_FILE_RANGE$|^GL_GNULIB_DUP$|^GL_GNULIB_DUP2$|^GL_GNULIB_DUP3$|^GL_GNULIB_ENVIRON$|^GL_GNULIB_EUIDACCESS$|^GL_GNULIB_EXECL$|^GL_GNULIB_EXECLE$|^GL_GNULIB_EXECLP$|^GL_GNULIB_EXECV$|^GL_GNULIB_EXECVE$|^GL_GNULIB_EXECVP$|^GL_GNULIB_EXECVPE$|^GL_GNULIB_FACCESSAT$|^GL_GNULIB_FCHDIR$|^GL_GNULIB_FCHOWNAT$|^GL_GNULIB_FDATASYNC$|^GL_GNULIB_FSYNC$|^GL_GNULIB_FTRUNCATE$|^GL_GNULIB_GETCWD$|^GL_GNULIB_GETDOMAINNAME$|^GL_GNULIB_GETDTABLESIZE$|^GL_GNULIB_GETENTROPY$|^GL_GNULIB_GETGROUPS$|^GL_GNULIB_GETHOSTNAME$|^GL_GNULIB_GETLOGIN$|^GL_GNULIB_GETLOGIN_R$|^GL_GNULIB_GETOPT_POSIX$|^GL_GNULIB_GETPAGESIZE$|^GL_GNULIB_GETPASS$|^GL_GNULIB_GETPASS_GNU$|^GL_GNULIB_GETUSERSHELL$|^GL_GNULIB_GROUP_MEMBER$|^GL_GNULIB_ISATTY$|^GL_GNULIB_LCHOWN$|^GL_GNULIB_LINK$|^GL_GNULIB_LINKAT$|^GL_GNULIB_LSEEK$|^GL_GNULIB_PIPE$|^GL_GNULIB_PIPE2$|^GL_GNULIB_PREAD$|^GL_GNULIB_PWRITE$|^GL_GNULIB_READ$|^GL_GNULIB_READLINK$|^GL_GNULIB_READLINKAT$|^GL_GNULIB_RMDIR$|^GL_GNULIB_SETHOSTNAME$|^GL_GNULIB_SLEEP$|^GL_GNULIB_SYMLINK$|^GL_GNULIB_SYMLINKAT$|^GL_GNULIB_TRUNCATE$|^GL_GNULIB_TTYNAME_R$|^GL_GNULIB_UNISTD_H_GETOPT$|^GL_GNULIB_UNISTD_H_NONBLOCKING$|^GL_GNULIB_UNISTD_H_SIGPIPE$|^GL_GNULIB_UNLINK$|^GL_GNULIB_UNLINKAT$|^GL_GNULIB_USLEEP$|^GL_GNULIB_WRITE$|^GL_GNULIB_MDA_ACCESS$|^GL_GNULIB_MDA_CHDIR$|^GL_GNULIB_MDA_CLOSE$|^GL_GNULIB_MDA_DUP$|^GL_GNULIB_MDA_DUP2$|^GL_GNULIB_MDA_EXECL$|^GL_GNULIB_MDA_EXECLE$|^GL_GNULIB_MDA_EXECLP$|^GL_GNULIB_MDA_EXECV$|^GL_GNULIB_MDA_EXECVE$|^GL_GNULIB_MDA_EXECVP$|^GL_GNULIB_MDA_EXECVPE$|^GL_GNULIB_MDA_GETCWD$|^GL_GNULIB_MDA_GETPID$|^GL_GNULIB_MDA_ISATTY$|^GL_GNULIB_MDA_LSEEK$|^GL_GNULIB_MDA_READ$|^GL_GNULIB_MDA_RMDIR$|^GL_GNULIB_MDA_SWAB$|^GL_GNULIB_MDA_UNLINK$|^GL_GNULIB_MDA_WRITE$|^GNULIB_TEST_CLOSE$|^DOUBLE_SLASH_IS_DISTINCT_ROOT$|^HAVE_SETDTABLESIZE$|^GL_COND_OBJ_DUP2_TRUE$|^GL_COND_OBJ_DUP2_FALSE$|^GNULIB_TEST_DUP2$|^HAVE_ENVIRON_DECL$|^GNULIB_TEST_ENVIRON$|^NEXT_ERRNO_H$|^NEXT_AS_FIRST_DIRECTIVE_ERRNO_H$|^EMULTIHOP_HIDDEN$|^EMULTIHOP_VALUE$|^ENOLINK_HIDDEN$|^ENOLINK_VALUE$|^EOVERFLOW_HIDDEN$|^EOVERFLOW_VALUE$|^ERRNO_H$|^GL_GENERATE_ERRNO_H_TRUE$|^GL_GENERATE_ERRNO_H_FALSE$|^NEXT_ERROR_H$|^NEXT_AS_FIRST_DIRECTIVE_ERROR_H$|^HAVE_ERROR_H$|^HAVE_ERROR$|^HAVE_ERROR$|^HAVE_ERROR_AT_LINE$|^REPLACE_ERROR$|^REPLACE_ERROR_AT_LINE$|^GL_COND_OBJ_ERROR_TRUE$|^GL_COND_OBJ_ERROR_FALSE$|^HAVE_DECL_STRERROR_R$|^HAVE_STRERROR_R$|^STRERROR_R_CHAR_P$|^ERROR_H$|^GL_GENERATE_ERROR_H_TRUE$|^GL_GENERATE_ERROR_H_FALSE$|^HAVE_FCNTL$|^HAVE_OPENAT$|^REPLACE_CREAT$|^REPLACE_FCNTL$|^REPLACE_OPEN$|^REPLACE_OPENAT$|^FCNTL_DUPFD_BUGGY$|^GL_COND_OBJ_FCNTL_TRUE$|^GL_COND_OBJ_FCNTL_FALSE$|^GL_GNULIB_CREAT$|^GL_GNULIB_FCNTL$|^GL_GNULIB_NONBLOCKING$|^GL_GNULIB_OPEN$|^GL_GNULIB_OPENAT$|^GL_GNULIB_MDA_CREAT$|^GL_GNULIB_MDA_OPEN$|^GNULIB_TEST_FCNTL$|^NEXT_FCNTL_H$|^NEXT_AS_FIRST_DIRECTIVE_FCNTL_H$|^pid_t$|^mode_t$|^FLEXIBLE_ARRAY_MEMBER$|^FLEXIBLE_ARRAY_MEMBER$|^HAVE_FREE_POSIX$|^GL_COND_OBJ_FREE_TRUE$|^GL_COND_OBJ_FREE_FALSE$|^GNULIB_TEST_FREE_POSIX$|^HAVE_FCHMODAT$|^HAVE_FSTATAT$|^HAVE_FUTIMENS$|^HAVE_GETUMASK$|^HAVE_LCHMOD$|^HAVE_LSTAT$|^HAVE_MKDIRAT$|^HAVE_MKFIFO$|^HAVE_MKFIFOAT$|^HAVE_MKNOD$|^HAVE_MKNODAT$|^HAVE_UTIMENSAT$|^REPLACE_CHMOD$|^REPLACE_FCHMODAT$|^REPLACE_FSTAT$|^REPLACE_FSTATAT$|^REPLACE_FUTIMENS$|^REPLACE_LSTAT$|^REPLACE_MKDIR$|^REPLACE_MKFIFO$|^REPLACE_MKFIFOAT$|^REPLACE_MKNOD$|^REPLACE_MKNODAT$|^REPLACE_STAT$|^REPLACE_UTIMENSAT$|^GL_COND_OBJ_FSTAT_TRUE$|^GL_COND_OBJ_FSTAT_FALSE$|^STAT_MACROS_BROKEN$|^NEXT_SYS_STAT_H$|^NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H$|^WINDOWS_STAT_TIMESPEC$|^WINDOWS_64_BIT_ST_SIZE$|^nlink_t$|^HAVE_SDKDDKVER_H$|^GL_GNULIB_CHMOD$|^GL_GNULIB_FCHMODAT$|^GL_GNULIB_FSTAT$|^GL_GNULIB_FSTATAT$|^GL_GNULIB_FUTIMENS$|^GL_GNULIB_GETUMASK$|^GL_GNULIB_LCHMOD$|^GL_GNULIB_LSTAT$|^GL_GNULIB_MKDIR$|^GL_GNULIB_MKDIRAT$|^GL_GNULIB_MKFIFO$|^GL_GNULIB_MKFIFOAT$|^GL_GNULIB_MKNOD$|^GL_GNULIB_MKNODAT$|^GL_GNULIB_STAT$|^GL_GNULIB_UTIMENSAT$|^GL_GNULIB_OVERRIDES_STRUCT_STAT$|^GL_GNULIB_MDA_CHMOD$|^GL_GNULIB_MDA_MKDIR$|^GL_GNULIB_MDA_UMASK$|^GNULIB_TEST_FSTAT$|^GNULIB_FWRITEERROR$|^HAVE_DECL_GETDTABLESIZE$|^GL_COND_OBJ_GETDTABLESIZE_TRUE$|^GL_COND_OBJ_GETDTABLESIZE_FALSE$|^GNULIB_TEST_GETDTABLESIZE$|^NEXT_GETOPT_H$|^NEXT_AS_FIRST_DIRECTIVE_GETOPT_H$|^HAVE_GETOPT_H$|^HAVE_GETOPT_H$|^HAVE_GETOPT_LONG_ONLY$|^HAVE_SYS_CDEFS_H$|^__GETOPT_PREFIX$|^GETOPT_H$|^GL_GENERATE_GETOPT_H_TRUE$|^GL_GENERATE_GETOPT_H_FALSE$|^GETOPT_CDEFS_H$|^GL_GENERATE_GETOPT_CDEFS_H_TRUE$|^GL_GENERATE_GETOPT_CDEFS_H_FALSE$|^GL_COND_OBJ_GETOPT_TRUE$|^GL_COND_OBJ_GETOPT_FALSE$|^GL_GNULIB_UNISTD_H_GETOPT$|^GNULIB_TEST_GETOPT_POSIX$|^HAVE_GETPROGNAME$|^GL_COND_OBJ_GETPROGNAME_TRUE$|^GL_COND_OBJ_GETPROGNAME_FALSE$|^HAVE_DECL_PROGRAM_INVOCATION_NAME$|^HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME$|^HAVE_DECL___ARGV$|^HAVE_VAR___PROGNAME$|^GNULIB_TEST_GETPROGNAME$|^LIBINTL$|^LTLIBINTL$|^PTHREAD_IN_USE_DETECTION_HARD$|^LIBPTHREAD$|^LIBPMULTITHREAD$|^HAVE_PTHREAD_API$|^SCHED_YIELD_LIB$|^LIB_SCHED_YIELD$|^SETLOCALE_NULL_ALL_MTSAFE$|^SETLOCALE_NULL_ONE_MTSAFE$|^HAVE_WEAK_SYMBOLS$|^SETLOCALE_NULL_LIB$|^LIB_SETLOCALE_NULL$|^HARD_LOCALE_LIB$|^LIB_HARD_LOCALE$|^GL_GNULIB_ICONV$|^NEXT_ICONV_H$|^NEXT_AS_FIRST_DIRECTIVE_ICONV_H$|^ICONV_H$|^GL_GENERATE_ICONV_H_TRUE$|^GL_GENERATE_ICONV_H_FALSE$|^ICONV_FLAVOR$|^REPLACE_ICONV_UTF$|^ICONV_H$|^GL_GENERATE_ICONV_H_TRUE$|^GL_GENERATE_ICONV_H_FALSE$|^GL_COND_OBJ_ICONV_OPEN_TRUE$|^GL_COND_OBJ_ICONV_OPEN_FALSE$|^GL_COND_OBJ_ICONV_TRUE$|^GL_COND_OBJ_ICONV_FALSE$|^HAVE_INLINE$|^NEXT_LIMITS_H$|^NEXT_AS_FIRST_DIRECTIVE_LIMITS_H$|^HAVE_LONG_LONG_INT$|^HAVE_UNSIGNED_LONG_LONG_INT$|^HAVE_WCHAR_H$|^HAVE_INTTYPES_H$|^HAVE_SYS_TYPES_H$|^NEXT_STDINT_H$|^NEXT_AS_FIRST_DIRECTIVE_STDINT_H$|^HAVE_STDINT_H$|^__STDC_CONSTANT_MACROS$|^__STDC_LIMIT_MACROS$|^HAVE_SYS_INTTYPES_H$|^HAVE_SYS_BITYPES_H$|^APPLE_UNIVERSAL_BUILD$|^BITSIZEOF_PTRDIFF_T$|^BITSIZEOF_SIZE_T$|^BITSIZEOF_SIG_ATOMIC_T$|^BITSIZEOF_WCHAR_T$|^BITSIZEOF_WINT_T$|^HAVE_SIGNED_SIG_ATOMIC_T$|^HAVE_SIGNED_WCHAR_T$|^HAVE_SIGNED_WINT_T$|^PTRDIFF_T_SUFFIX$|^SIZE_T_SUFFIX$|^SIG_ATOMIC_T_SUFFIX$|^WCHAR_T_SUFFIX$|^WINT_T_SUFFIX$|^HAVE_C99_STDINT_H$|^HAVE_SYS_BITYPES_H$|^HAVE_SYS_INTTYPES_H$|^HAVE_DECL_IMAXABS$|^HAVE_DECL_IMAXDIV$|^HAVE_DECL_STRTOIMAX$|^HAVE_DECL_STRTOUMAX$|^HAVE_IMAXDIV_T$|^HAVE_IMAXABS$|^HAVE_IMAXDIV$|^REPLACE_IMAXABS$|^REPLACE_IMAXDIV$|^REPLACE_STRTOIMAX$|^REPLACE_STRTOUMAX$|^INT32_MAX_LT_INTMAX_MAX$|^INT64_MAX_EQ_LONG_MAX$|^PRIPTR_PREFIX$|^UINT32_MAX_LT_UINTMAX_MAX$|^UINT64_MAX_EQ_ULONG_MAX$|^NEXT_INTTYPES_H$|^NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H$|^GL_GNULIB_IMAXABS$|^GL_GNULIB_IMAXDIV$|^GL_GNULIB_STRTOIMAX$|^GL_GNULIB_STRTOUMAX$|^HAVE_ISWBLANK$|^HAVE_WCTYPE_T$|^HAVE_WCTRANS_T$|^REPLACE_ISWBLANK$|^REPLACE_ISWDIGIT$|^REPLACE_ISWXDIGIT$|^HAVE_ISWCNTRL$|^HAVE_WINT_T$|^HAVE_CRTDEFS_H$|^NEXT_WCTYPE_H$|^NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H$|^HAVE_WCTYPE_H$|^REPLACE_ISWCNTRL$|^HAVE_TOWLOWER$|^HAVE_DECL_TOWLOWER$|^REPLACE_TOWLOWER$|^HAVE_ISWBLANK$|^HAVE_DECL_ISWBLANK$|^GL_COND_OBJ_ISWBLANK_TRUE$|^GL_COND_OBJ_ISWBLANK_FALSE$|^GL_GNULIB_ISWBLANK$|^GL_GNULIB_ISWDIGIT$|^GL_GNULIB_ISWXDIGIT$|^GL_GNULIB_WCTYPE$|^GL_GNULIB_ISWCTYPE$|^GL_GNULIB_WCTRANS$|^GL_GNULIB_TOWCTRANS$|^GNULIB_TEST_ISWBLANK$|^LOCALE_FR$|^LOCALE_JA$|^LOCALE_FR_UTF8$|^LOCALE_ZH_CN$|^GL_COND_OBJ_ISWDIGIT_TRUE$|^GL_COND_OBJ_ISWDIGIT_FALSE$|^GNULIB_TEST_ISWDIGIT$|^GL_COND_OBJ_ISWXDIGIT_TRUE$|^GL_COND_OBJ_ISWXDIGIT_FALSE$|^GNULIB_TEST_ISWXDIGIT$|^JAVA_CHOICE$|^HAVE_NL_LANGINFO$|^REPLACE_NL_LANGINFO$|^NEXT_LANGINFO_H$|^NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H$|^HAVE_LANGINFO_H$|^HAVE_LANGINFO_CODESET$|^HAVE_LANGINFO_T_FMT_AMPM$|^HAVE_LANGINFO_ALTMON$|^HAVE_LANGINFO_ERA$|^HAVE_LANGINFO_YESEXPR$|^GL_GNULIB_NL_LANGINFO$|^HAVE___INLINE$|^LIMITS_H$|^GL_GENERATE_LIMITS_H_TRUE$|^GL_GENERATE_LIMITS_H_FALSE$|^LOCALCHARSET_TESTS_ENVIRONMENT$|^REPLACE_NULL$|^HAVE_MAX_ALIGN_T$|^HAVE_WCHAR_T$|^NEXT_STDDEF_H$|^NEXT_AS_FIRST_DIRECTIVE_STDDEF_H$|^HAVE_XLOCALE_H$|^_LCONV_C99$|^NEXT_LOCALE_H$|^NEXT_AS_FIRST_DIRECTIVE_LOCALE_H$|^GL_GNULIB_LOCALECONV$|^GL_GNULIB_SETLOCALE$|^GL_GNULIB_SETLOCALE_NULL$|^GL_GNULIB_DUPLOCALE$|^GL_GNULIB_LOCALENAME$|^HAVE_NEWLOCALE$|^HAVE_DUPLOCALE$|^HAVE_FREELOCALE$|^GNULIB_TEST_LOCALENAME$|^HAVE_PTHREAD_RWLOCK$|^HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER$|^HAVE_PTHREAD_MUTEX_RECURSIVE$|^GNULIB_LOCK$|^GNULIB_TEST_MALLOC_GNU$|^GNULIB_TEST_MALLOC_POSIX$|^MALLOC_0_IS_NONNULL$|^HAVE_MBSTATE_T$|^mbstate_t$|^HAVE_BTOWC$|^HAVE_MBSINIT$|^HAVE_MBRTOWC$|^HAVE_MBRLEN$|^HAVE_MBSRTOWCS$|^HAVE_MBSNRTOWCS$|^HAVE_WCRTOMB$|^HAVE_WCSRTOMBS$|^HAVE_WCSNRTOMBS$|^HAVE_WMEMCHR$|^HAVE_WMEMCMP$|^HAVE_WMEMCPY$|^HAVE_WMEMMOVE$|^HAVE_WMEMPCPY$|^HAVE_WMEMSET$|^HAVE_WCSLEN$|^HAVE_WCSNLEN$|^HAVE_WCSCPY$|^HAVE_WCPCPY$|^HAVE_WCSNCPY$|^HAVE_WCPNCPY$|^HAVE_WCSCAT$|^HAVE_WCSNCAT$|^HAVE_WCSCMP$|^HAVE_WCSNCMP$|^HAVE_WCSCASECMP$|^HAVE_WCSNCASECMP$|^HAVE_WCSCOLL$|^HAVE_WCSXFRM$|^HAVE_WCSDUP$|^HAVE_WCSCHR$|^HAVE_WCSRCHR$|^HAVE_WCSCSPN$|^HAVE_WCSSPN$|^HAVE_WCSPBRK$|^HAVE_WCSSTR$|^HAVE_WCSTOK$|^HAVE_WCSWIDTH$|^HAVE_WCSFTIME$|^HAVE_DECL_WCTOB$|^HAVE_DECL_WCSDUP$|^HAVE_DECL_WCWIDTH$|^REPLACE_MBSTATE_T$|^REPLACE_BTOWC$|^REPLACE_WCTOB$|^REPLACE_MBSINIT$|^REPLACE_MBRTOWC$|^REPLACE_MBRLEN$|^REPLACE_MBSRTOWCS$|^REPLACE_MBSNRTOWCS$|^REPLACE_WCRTOMB$|^REPLACE_WCSRTOMBS$|^REPLACE_WCSNRTOMBS$|^REPLACE_WCWIDTH$|^REPLACE_WCSWIDTH$|^REPLACE_WCSFTIME$|^REPLACE_WCSTOK$|^REPLACE_WMEMPCPY$|^HAVE_DECL_MBRTOWC$|^MBRTOWC_NULL_ARG1_BUG$|^MBRTOWC_NULL_ARG2_BUG$|^MBRTOWC_RETVAL_BUG$|^MBRTOWC_NUL_RETVAL_BUG$|^MBRTOWC_STORES_INCOMPLETE_BUG$|^MBRTOWC_EMPTY_INPUT_BUG$|^MBRTOWC_IN_C_LOCALE_MAYBE_EILSEQ$|^HAVE_WEAK_SYMBOLS$|^MBRTOWC_LIB$|^LIB_MBRTOWC$|^GL_COND_OBJ_MBRTOWC_TRUE$|^GL_COND_OBJ_MBRTOWC_FALSE$|^CFLAG_VISIBILITY$|^HAVE_VISIBILITY$|^HAVE_VISIBILITY$|^GL_GNULIB_BTOWC$|^GL_GNULIB_WCTOB$|^GL_GNULIB_MBSINIT$|^GL_GNULIB_MBRTOWC$|^GL_GNULIB_MBRLEN$|^GL_GNULIB_MBSRTOWCS$|^GL_GNULIB_MBSNRTOWCS$|^GL_GNULIB_WCRTOMB$|^GL_GNULIB_WCSRTOMBS$|^GL_GNULIB_WCSNRTOMBS$|^GL_GNULIB_WCWIDTH$|^GL_GNULIB_WMEMCHR$|^GL_GNULIB_WMEMCMP$|^GL_GNULIB_WMEMCPY$|^GL_GNULIB_WMEMMOVE$|^GL_GNULIB_WMEMPCPY$|^GL_GNULIB_WMEMSET$|^GL_GNULIB_WCSLEN$|^GL_GNULIB_WCSNLEN$|^GL_GNULIB_WCSCPY$|^GL_GNULIB_WCPCPY$|^GL_GNULIB_WCSNCPY$|^GL_GNULIB_WCPNCPY$|^GL_GNULIB_WCSCAT$|^GL_GNULIB_WCSNCAT$|^GL_GNULIB_WCSCMP$|^GL_GNULIB_WCSNCMP$|^GL_GNULIB_WCSCASECMP$|^GL_GNULIB_WCSNCASECMP$|^GL_GNULIB_WCSCOLL$|^GL_GNULIB_WCSXFRM$|^GL_GNULIB_WCSDUP$|^GL_GNULIB_WCSCHR$|^GL_GNULIB_WCSRCHR$|^GL_GNULIB_WCSCSPN$|^GL_GNULIB_WCSSPN$|^GL_GNULIB_WCSPBRK$|^GL_GNULIB_WCSSTR$|^GL_GNULIB_WCSTOK$|^GL_GNULIB_WCSWIDTH$|^GL_GNULIB_WCSFTIME$|^GL_GNULIB_MDA_WCSDUP$|^GNULIB_TEST_MBRTOWC$|^HAVE_DECL_MBSINIT$|^GL_COND_OBJ_MBSINIT_TRUE$|^GL_COND_OBJ_MBSINIT_FALSE$|^GNULIB_TEST_MBSINIT$|^HAVE_MBSLEN$|^HAVE_EXPLICIT_BZERO$|^HAVE_FFSL$|^HAVE_FFSLL$|^HAVE_DECL_MEMMEM$|^HAVE_MEMPCPY$|^HAVE_MEMSET_EXPLICIT$|^HAVE_DECL_MEMRCHR$|^HAVE_RAWMEMCHR$|^HAVE_STPCPY$|^HAVE_STPNCPY$|^HAVE_STRCHRNUL$|^HAVE_DECL_STRDUP$|^HAVE_DECL_STRNDUP$|^HAVE_DECL_STRNLEN$|^HAVE_STRPBRK$|^HAVE_STRSEP$|^HAVE_STRCASESTR$|^HAVE_DECL_STRTOK_R$|^HAVE_DECL_STRERROR_R$|^HAVE_STRERRORNAME_NP$|^HAVE_SIGABBREV_NP$|^HAVE_SIGDESCR_NP$|^HAVE_DECL_STRSIGNAL$|^HAVE_STRVERSCMP$|^REPLACE_FFSLL$|^REPLACE_MEMCHR$|^REPLACE_MEMMEM$|^REPLACE_MEMPCPY$|^REPLACE_STPCPY$|^REPLACE_STPNCPY$|^REPLACE_STRCHRNUL$|^REPLACE_STRDUP$|^REPLACE_STRNCAT$|^REPLACE_STRNDUP$|^REPLACE_STRNLEN$|^REPLACE_STRSTR$|^REPLACE_STRCASESTR$|^REPLACE_STRTOK_R$|^REPLACE_STRERROR$|^REPLACE_STRERROR_R$|^REPLACE_STRERRORNAME_NP$|^REPLACE_STRSIGNAL$|^UNDEFINE_STRTOK_R$|^GL_GNULIB_EXPLICIT_BZERO$|^GL_GNULIB_FFSL$|^GL_GNULIB_FFSLL$|^GL_GNULIB_MEMCHR$|^GL_GNULIB_MEMMEM$|^GL_GNULIB_MEMPCPY$|^GL_GNULIB_MEMRCHR$|^GL_GNULIB_MEMSET_EXPLICIT$|^GL_GNULIB_RAWMEMCHR$|^GL_GNULIB_STPCPY$|^GL_GNULIB_STPNCPY$|^GL_GNULIB_STRCHRNUL$|^GL_GNULIB_STRDUP$|^GL_GNULIB_STRNCAT$|^GL_GNULIB_STRNDUP$|^GL_GNULIB_STRNLEN$|^GL_GNULIB_STRPBRK$|^GL_GNULIB_STRSEP$|^GL_GNULIB_STRSTR$|^GL_GNULIB_STRCASESTR$|^GL_GNULIB_STRTOK_R$|^GL_GNULIB_MBSLEN$|^GL_GNULIB_MBSNLEN$|^GL_GNULIB_MBSCHR$|^GL_GNULIB_MBSRCHR$|^GL_GNULIB_MBSSTR$|^GL_GNULIB_MBSCASECMP$|^GL_GNULIB_MBSNCASECMP$|^GL_GNULIB_MBSPCASECMP$|^GL_GNULIB_MBSCASESTR$|^GL_GNULIB_MBSCSPN$|^GL_GNULIB_MBSPBRK$|^GL_GNULIB_MBSSPN$|^GL_GNULIB_MBSSEP$|^GL_GNULIB_MBSTOK_R$|^GL_GNULIB_STRERROR$|^GL_GNULIB_STRERROR_R$|^GL_GNULIB_STRERRORNAME_NP$|^GL_GNULIB_SIGABBREV_NP$|^GL_GNULIB_SIGDESCR_NP$|^GL_GNULIB_STRSIGNAL$|^GL_GNULIB_STRVERSCMP$|^GL_GNULIB_MDA_MEMCCPY$|^GL_GNULIB_MDA_STRDUP$|^GNULIB_TEST_MBSLEN$|^GNULIB_TEST_MBSSTR$|^MAP_ANONYMOUS$|^HAVE_MAP_ANONYMOUS$|^GL_COND_OBJ_MEMCHR_TRUE$|^GL_COND_OBJ_MEMCHR_FALSE$|^HAVE_BP_SYM_H$|^GNULIB_TEST_MEMCHR$|^HAVE_MEMMOVE$|^GL_COND_OBJ_MEMMOVE_TRUE$|^GL_COND_OBJ_MEMMOVE_FALSE$|^HAVE_MEMPCPY$|^GL_COND_OBJ_MEMPCPY_TRUE$|^GL_COND_OBJ_MEMPCPY_FALSE$|^GNULIB_TEST_MEMPCPY$|^HAVE_MINMAX_IN_LIMITS_H$|^HAVE_MINMAX_IN_SYS_PARAM_H$|^GL_COND_OBJ_MSVC_INVAL_TRUE$|^GL_COND_OBJ_MSVC_INVAL_FALSE$|^GL_COND_OBJ_MSVC_NOTHROW_TRUE$|^GL_COND_OBJ_MSVC_NOTHROW_FALSE$|^GNULIB_MSVC_NOTHROW$|^OPEN_TRAILING_SLASH_BUG$|^GL_COND_OBJ_OPEN_TRUE$|^GL_COND_OBJ_OPEN_FALSE$|^PROMOTED_MODE_T$|^GNULIB_TEST_OPEN$|^HAVE_DECL_PROGRAM_INVOCATION_NAME$|^HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME$|^HAVE_POSIX_SIGNALBLOCKING$|^HAVE_PTHREAD_SIGMASK$|^HAVE_RAISE$|^HAVE_SIGSET_T$|^HAVE_SIGINFO_T$|^HAVE_SIGACTION$|^HAVE_STRUCT_SIGACTION_SA_SIGACTION$|^HAVE_TYPE_VOLATILE_SIG_ATOMIC_T$|^HAVE_SIGHANDLER_T$|^REPLACE_PTHREAD_SIGMASK$|^REPLACE_RAISE$|^HAVE_RAISE$|^HAVE_SIGSET_T$|^GL_COND_OBJ_RAISE_TRUE$|^GL_COND_OBJ_RAISE_FALSE$|^GL_GNULIB_PTHREAD_SIGMASK$|^GL_GNULIB_RAISE$|^GL_GNULIB_SIGNAL_H_SIGPIPE$|^GL_GNULIB_SIGPROCMASK$|^GL_GNULIB_SIGACTION$|^GNULIB_TEST_RAISE$|^HAVE_RAWMEMCHR$|^GL_COND_OBJ_RAWMEMCHR_TRUE$|^GL_COND_OBJ_RAWMEMCHR_FALSE$|^GNULIB_TEST_RAWMEMCHR$|^READLINK_TRAILING_SLASH_BUG$|^READLINK_TRUNCATE_BUG$|^GL_COND_OBJ_READLINK_TRUE$|^GL_COND_OBJ_READLINK_FALSE$|^GNULIB_TEST_READLINK$|^GNULIB_TEST_REALLOC_GNU$|^GNULIB_TEST_REALLOC_POSIX$|^HAVE_REALLOCARRAY$|^GL_COND_OBJ_REALLOCARRAY_TRUE$|^GL_COND_OBJ_REALLOCARRAY_FALSE$|^GNULIB_REALLOCARRAY$|^GNULIB_TEST_REALLOCARRAY$|^RELOCATABLE$|^INSTALLPREFIX$|^ENABLE_RELOCATABLE$|^HAVE_MACH_O_DYLD_H$|^HAVE__NSGETEXECUTABLEPATH$|^HAVE_COPY_FILE_RANGE$|^RELOCATABLE_LDFLAGS$|^RELOCATABLE_LDFLAGS$|^INSTALL_PROGRAM_ENV$|^RELOCATABLE_VIA_LD_TRUE$|^RELOCATABLE_VIA_LD_FALSE$|^RELOCATABLE_VIA_WRAPPER_TRUE$|^RELOCATABLE_VIA_WRAPPER_FALSE$|^RELOCATABLE_LIBRARY_PATH$|^RELOCATABLE_CONFIG_H_DIR$|^RELOCATABLE_SRC_DIR$|^RELOCATABLE_BUILD_DIR$|^RELOCATABLE_STRIP$|^GL_COND_OBJ_PROGRELOC_TRUE$|^GL_COND_OBJ_PROGRELOC_FALSE$|^HAVE_FACCESSAT$|^HAVE_GETCWD$|^HAVE_MALLOC_POSIX$|^HAVE_FREE_POSIX$|^HAVE_MEMPCPY$|^HAVE_RAWMEMCHR$|^HAVE_DECL_SETENV$|^HAVE_SEARCH_H$|^HAVE_TSEARCH$|^NEED_SETLOCALE_IMPROVED$|^NEED_SETLOCALE_MTSAFE$|^SETLOCALE_LIB$|^LIB_SETLOCALE$|^GL_COND_OBJ_SETLOCALE_TRUE$|^GL_COND_OBJ_SETLOCALE_FALSE$|^GNULIB_TEST_SETLOCALE$|^SETLOCALE_NULL_ALL_MTSAFE$|^SETLOCALE_NULL_ONE_MTSAFE$|^HAVE_WEAK_SYMBOLS$|^SETLOCALE_NULL_LIB$|^LIB_SETLOCALE_NULL$|^GL_COND_OBJ_SETLOCALE_LOCK_TRUE$|^GL_COND_OBJ_SETLOCALE_LOCK_FALSE$|^CFLAG_VISIBILITY$|^HAVE_VISIBILITY$|^HAVE_VISIBILITY$|^GNULIB_TEST_SETLOCALE_NULL$|^NEXT_SIGNAL_H$|^NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H$|^uid_t$|^gid_t$|^GNULIB_SIGPIPE$|^GL_GNULIB_SIGNAL_H_SIGPIPE$|^GL_GNULIB_DPRINTF$|^GL_GNULIB_FCLOSE$|^GL_GNULIB_FDOPEN$|^GL_GNULIB_FFLUSH$|^GL_GNULIB_FGETC$|^GL_GNULIB_FGETS$|^GL_GNULIB_FOPEN$|^GL_GNULIB_FOPEN_GNU$|^GL_GNULIB_FPRINTF$|^GL_GNULIB_FPRINTF_POSIX$|^GL_GNULIB_FPURGE$|^GL_GNULIB_FPUTC$|^GL_GNULIB_FPUTS$|^GL_GNULIB_FREAD$|^GL_GNULIB_FREOPEN$|^GL_GNULIB_FSCANF$|^GL_GNULIB_FSEEK$|^GL_GNULIB_FSEEKO$|^GL_GNULIB_FTELL$|^GL_GNULIB_FTELLO$|^GL_GNULIB_FWRITE$|^GL_GNULIB_GETC$|^GL_GNULIB_GETCHAR$|^GL_GNULIB_GETDELIM$|^GL_GNULIB_GETLINE$|^GL_GNULIB_OBSTACK_PRINTF$|^GL_GNULIB_OBSTACK_PRINTF_POSIX$|^GL_GNULIB_PCLOSE$|^GL_GNULIB_PERROR$|^GL_GNULIB_POPEN$|^GL_GNULIB_PRINTF$|^GL_GNULIB_PRINTF_POSIX$|^GL_GNULIB_PUTC$|^GL_GNULIB_PUTCHAR$|^GL_GNULIB_PUTS$|^GL_GNULIB_REMOVE$|^GL_GNULIB_RENAME$|^GL_GNULIB_RENAMEAT$|^GL_GNULIB_SCANF$|^GL_GNULIB_SNPRINTF$|^GL_GNULIB_SPRINTF_POSIX$|^GL_GNULIB_STDIO_H_NONBLOCKING$|^GL_GNULIB_STDIO_H_SIGPIPE$|^GL_GNULIB_TMPFILE$|^GL_GNULIB_VASPRINTF$|^GL_GNULIB_VFSCANF$|^GL_GNULIB_VSCANF$|^GL_GNULIB_VDPRINTF$|^GL_GNULIB_VFPRINTF$|^GL_GNULIB_VFPRINTF_POSIX$|^GL_GNULIB_VPRINTF$|^GL_GNULIB_VPRINTF_POSIX$|^GL_GNULIB_VSNPRINTF$|^GL_GNULIB_VSPRINTF_POSIX$|^GL_GNULIB_MDA_FCLOSEALL$|^GL_GNULIB_MDA_FDOPEN$|^GL_GNULIB_MDA_FILENO$|^GL_GNULIB_MDA_GETW$|^GL_GNULIB_MDA_PUTW$|^GL_GNULIB_MDA_TEMPNAM$|^HAVE_DECL_FCLOSEALL$|^HAVE_DECL_FPURGE$|^HAVE_DECL_FSEEKO$|^HAVE_DECL_FTELLO$|^HAVE_DECL_GETDELIM$|^HAVE_DECL_GETLINE$|^HAVE_DECL_GETW$|^HAVE_DECL_OBSTACK_PRINTF$|^HAVE_DECL_PUTW$|^HAVE_DECL_SNPRINTF$|^HAVE_DECL_VSNPRINTF$|^HAVE_DPRINTF$|^HAVE_FSEEKO$|^HAVE_FTELLO$|^HAVE_PCLOSE$|^HAVE_POPEN$|^HAVE_RENAMEAT$|^HAVE_VASPRINTF$|^HAVE_VDPRINTF$|^REPLACE_DPRINTF$|^REPLACE_FCLOSE$|^REPLACE_FDOPEN$|^REPLACE_FFLUSH$|^REPLACE_FOPEN$|^REPLACE_FOPEN_FOR_FOPEN_GNU$|^REPLACE_FPRINTF$|^REPLACE_FPURGE$|^REPLACE_FREOPEN$|^REPLACE_FSEEK$|^REPLACE_FSEEKO$|^REPLACE_FTELL$|^REPLACE_FTELLO$|^REPLACE_GETDELIM$|^REPLACE_GETLINE$|^REPLACE_OBSTACK_PRINTF$|^REPLACE_PERROR$|^REPLACE_POPEN$|^REPLACE_PRINTF$|^REPLACE_REMOVE$|^REPLACE_RENAME$|^REPLACE_RENAMEAT$|^REPLACE_SNPRINTF$|^REPLACE_SPRINTF$|^REPLACE_STDIO_READ_FUNCS$|^REPLACE_STDIO_WRITE_FUNCS$|^REPLACE_TMPFILE$|^REPLACE_VASPRINTF$|^REPLACE_VDPRINTF$|^REPLACE_VFPRINTF$|^REPLACE_VPRINTF$|^REPLACE_VSNPRINTF$|^REPLACE_VSPRINTF$|^USER_LABEL_PREFIX$|^ASM_SYMBOL_PREFIX$|^GL_GNULIB_STDIO_H_SIGPIPE$|^GL_GNULIB_UNISTD_H_SIGPIPE$|^GL_COND_OBJ_SIGPROCMASK_TRUE$|^GL_COND_OBJ_SIGPROCMASK_FALSE$|^GNULIB_TEST_SIGPROCMASK$|^ssize_t$|^REPLACE_FUNC_STAT_FILE$|^GL_COND_OBJ_STAT_TRUE$|^GL_COND_OBJ_STAT_FALSE$|^GNULIB_TEST_STAT$|^HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC$|^TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC$|^HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC$|^HAVE_STRUCT_STAT_ST_ATIMENSEC$|^HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC$|^HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC$|^HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC$|^HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC$|^HAVE_C_BOOL$|^STDCKDINT_H$|^GL_GENERATE_STDCKDINT_H_TRUE$|^GL_GENERATE_STDCKDINT_H_FALSE$|^STDDEF_H$|^GL_GENERATE_STDDEF_H_TRUE$|^GL_GENERATE_STDDEF_H_FALSE$|^STDINT_H$|^GL_GENERATE_STDINT_H_TRUE$|^GL_GENERATE_STDINT_H_FALSE$|^LIMITS_H$|^GL_GENERATE_LIMITS_H_TRUE$|^GL_GENERATE_LIMITS_H_FALSE$|^__USE_MINGW_ANSI_STDIO$|^NEXT_STDIO_H$|^NEXT_AS_FIRST_DIRECTIVE_STDIO_H$|^GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU$|^HAVE_DECL_FCLOSEALL$|^HAVE_DECL_GETW$|^HAVE_DECL_PUTW$|^GL_COND_OBJ_STDIO_READ_TRUE$|^GL_COND_OBJ_STDIO_READ_FALSE$|^GL_COND_OBJ_STDIO_WRITE_TRUE$|^GL_COND_OBJ_STDIO_WRITE_FALSE$|^GNULIB_TEST_FSCANF$|^GNULIB_FSCANF$|^GNULIB_TEST_SCANF$|^GNULIB_SCANF$|^GNULIB_TEST_FGETC$|^GNULIB_TEST_GETC$|^GNULIB_TEST_GETCHAR$|^GNULIB_TEST_FGETS$|^GNULIB_TEST_FREAD$|^GNULIB_TEST_FPRINTF$|^GNULIB_TEST_PRINTF$|^GNULIB_TEST_VFPRINTF$|^GNULIB_TEST_VPRINTF$|^GNULIB_TEST_FPUTC$|^GNULIB_TEST_PUTC$|^GNULIB_TEST_PUTCHAR$|^GNULIB_TEST_FPUTS$|^GNULIB_TEST_PUTS$|^GNULIB_TEST_FWRITE$|^NEXT_STDLIB_H$|^NEXT_AS_FIRST_DIRECTIVE_STDLIB_H$|^HAVE_DECL_ECVT$|^HAVE_DECL_FCVT$|^HAVE_DECL_GCVT$|^REPLACE_STRERROR_0$|^HAVE_STRERROR_R$|^GL_COND_OBJ_STRERROR_TRUE$|^GL_COND_OBJ_STRERROR_FALSE$|^GNULIB_STRERROR$|^GNULIB_TEST_STRERROR$|^GL_COND_OBJ_STRERROR_OVERRIDE_TRUE$|^GL_COND_OBJ_STRERROR_OVERRIDE_FALSE$|^HAVE_WINSOCK2_H$|^HAVE_WINSOCK2_H$|^NEXT_STRING_H$|^NEXT_AS_FIRST_DIRECTIVE_STRING_H$|^HAVE_DECL_STRNLEN$|^GL_COND_OBJ_STRNLEN_TRUE$|^GL_COND_OBJ_STRNLEN_FALSE$|^GNULIB_TEST_STRNLEN$|^HAVE_STRTOUL$|^GL_COND_OBJ_STRTOUL_TRUE$|^GL_COND_OBJ_STRTOUL_FALSE$|^GNULIB_TEST_STRTOUL$|^_USE_STD_STAT$|^NEXT_SYS_TYPES_H$|^NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H$|^WINDOWS_64_BIT_OFF_T$|^WINDOWS_STAT_INODES$|^HAVE_SYS_SINGLE_THREADED_H$|^HAVE_DECL_LOCALTIME_R$|^HAVE_NANOSLEEP$|^HAVE_STRPTIME$|^HAVE_TIMEGM$|^HAVE_TIMESPEC_GET$|^HAVE_TIMESPEC_GETRES$|^HAVE_TIMEZONE_T$|^REPLACE_CTIME$|^REPLACE_LOCALTIME_R$|^REPLACE_MKTIME$|^REPLACE_NANOSLEEP$|^REPLACE_STRFTIME$|^REPLACE_TIME$|^REPLACE_TIMEGM$|^REPLACE_TIMESPEC_GET$|^REPLACE_TZSET$|^GNULIB_GETTIMEOFDAY$|^REPLACE_GMTIME$|^REPLACE_LOCALTIME$|^NEXT_TIME_H$|^NEXT_AS_FIRST_DIRECTIVE_TIME_H$|^TIME_H_DEFINES_STRUCT_TIMESPEC$|^SYS_TIME_H_DEFINES_STRUCT_TIMESPEC$|^PTHREAD_H_DEFINES_STRUCT_TIMESPEC$|^UNISTD_H_DEFINES_STRUCT_TIMESPEC$|^TIME_H_DEFINES_TIME_UTC$|^GL_GNULIB_CTIME$|^GL_GNULIB_MKTIME$|^GL_GNULIB_LOCALTIME$|^GL_GNULIB_NANOSLEEP$|^GL_GNULIB_STRFTIME$|^GL_GNULIB_STRPTIME$|^GL_GNULIB_TIME$|^GL_GNULIB_TIMEGM$|^GL_GNULIB_TIMESPEC_GET$|^GL_GNULIB_TIMESPEC_GETRES$|^GL_GNULIB_TIME_R$|^GL_GNULIB_TIME_RZ$|^GL_GNULIB_TZSET$|^GL_GNULIB_MDA_TZSET$|^NEXT_UNISTD_H$|^NEXT_AS_FIRST_DIRECTIVE_UNISTD_H$|^HAVE_UNISTD_H$|^HAVE_DECL_EXECVPE$|^HAVE_LIBUNISTRING$|^HAVE_LIBUNISTRING$|^LIBUNISTRING$|^LTLIBUNISTRING$|^LIBUNISTRING_PREFIX$|^HAVE_LIBUNISTRING$|^HAVE_LIBUNISTRING$|^LIBUNISTRING$|^LTLIBUNISTRING$|^LIBUNISTRING_PREFIX$|^HAVE_LIBUNISTRING$|^HAVE_LIBUNISTRING$|^LIBUNISTRING$|^LTLIBUNISTRING$|^LIBUNISTRING_PREFIX$|^LIBUNISTRING_UNISTR_H$|^GNULIB_UNISTR_U8_MBTOUCR$|^LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_TRUE$|^LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_FALSE$|^GNULIB_UNISTR_U8_UCTOMB$|^LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE$|^LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_FALSE$|^LIBUNISTRING_UNITYPES_H$|^LIBUNISTRING_UNIWIDTH_H$|^LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE$|^LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_FALSE$|^GNULIB_STDIO_SINGLE_THREAD$|^USE_UNLOCKED_IO$|^HAVE_DECL_CLEARERR_UNLOCKED$|^HAVE_DECL_FEOF_UNLOCKED$|^HAVE_DECL_FERROR_UNLOCKED$|^HAVE_DECL_FFLUSH_UNLOCKED$|^HAVE_DECL_FGETS_UNLOCKED$|^HAVE_DECL_FPUTC_UNLOCKED$|^HAVE_DECL_FPUTS_UNLOCKED$|^HAVE_DECL_FREAD_UNLOCKED$|^HAVE_DECL_FWRITE_UNLOCKED$|^HAVE_DECL_GETC_UNLOCKED$|^HAVE_DECL_GETCHAR_UNLOCKED$|^HAVE_DECL_PUTC_UNLOCKED$|^HAVE_DECL_PUTCHAR_UNLOCKED$|^HAVE_C_VARARRAYS$|^__STDC_NO_VLA__$|^NEXT_WCHAR_H$|^NEXT_AS_FIRST_DIRECTIVE_WCHAR_H$|^HAVE_WCHAR_H$|^HAVE_FEATURES_H$|^HAVE_WINT_T$|^HAVE_DECL_WCSDUP$|^HAVE_DECL_WCWIDTH$|^GL_COND_OBJ_WCWIDTH_TRUE$|^GL_COND_OBJ_WCWIDTH_FALSE$|^GNULIB_TEST_WCWIDTH$|^GL_COND_OBJ_WINDOWS_MUTEX_TRUE$|^GL_COND_OBJ_WINDOWS_MUTEX_FALSE$|^GL_COND_OBJ_WINDOWS_ONCE_TRUE$|^GL_COND_OBJ_WINDOWS_ONCE_FALSE$|^GL_COND_OBJ_WINDOWS_RECMUTEX_TRUE$|^GL_COND_OBJ_WINDOWS_RECMUTEX_FALSE$|^GL_COND_OBJ_WINDOWS_RWLOCK_TRUE$|^GL_COND_OBJ_WINDOWS_RWLOCK_FALSE$|^GNULIB_XALLOC$|^GNULIB_XALLOC_DIE$|^gltests_WITNESS$|^GL_CFLAG_ALLOW_WARNINGS$|^GL_CFLAG_GNULIB_WARNINGS$|^LIBGRT_LIBDEPS$|^LIBGRT_LTLIBDEPS$|^size_t$|^HAVE_SETLOCALE$|^WOE32DLL_TRUE$|^WOE32DLL_FALSE$|^WOE32DLL$|^PERL$|^CROSS_COMPILING$|^CXX$|^ac_ct_CXX$|^CXX$|^CXXFLAGS$|^CXX$|^ANSICXX_TRUE$|^ANSICXX_FALSE$|^CXXDEPMODE$|^am__fastdepCXX_TRUE$|^am__fastdepCXX_FALSE$|^am__fastdepCXX_TRUE$|^am__fastdepCXX_FALSE$|^LIBSCHED$|^ENABLE_LIBASPRINTF_TRUE$|^ENABLE_LIBASPRINTF_FALSE$|^ENABLE_SHARED$|^subdirs$|^LIBOBJS$|^LTLIBOBJS$|^am__EXEEXT_TRUE$|^am__EXEEXT_FALSE$|^gl_LIBOBJS$|^gl_LTLIBOBJS$|^gl_LIBOBJDEPS$|^gltests_LIBOBJS$|^gltests_LTLIBOBJS$|^gltests_LIBOBJDEPS$
...
...