Closed peterwillcn closed 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
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
@mpratt14 any clue?
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
in the bulldbot output for the SDK, there was another undefined reference before this one, so not exactly the same result...
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
@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
@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~
the second thing I want to see after a compile attempt, so there is object files
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?
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
didnt ever check it but sounds great
@mpratt14 i can also see some package are failing
https://downloads.openwrt.org/snapshots/faillogs/arm_cortex-a8_vfpv3/packages/samba4/
@mpratt14 When will the repair patch be released?Thanks.
I had test build run overnight, posting soon
this definitely has nothing to do with the compiler, it's just bad configuration
@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)
@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.
@micmac1 i would wait @mpratt14 for the feedback and then i would merge thanks a lot !
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
@mpratt14 eh we need to find a good solution that is not hacky and would fix each broken package currently...
yeah I just have to figure out which is the least hacky at this point
also interesting to note is that I can reproduce the bug now, but only after adding the configure option --with-libunistring-prefix
@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
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.
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
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.
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
configure
command line and environment variables for the "target build",configure
command,config.log
and config.status
from the gettext-runtime
directory.
This should let us progress a bit.even though we have a fix for now I would like to keep investigating this
probably I'll make a gist to share files
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
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
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
@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
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
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.
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
So, apparently, you have modified
gettext-runtime/configure
in some way, other than callingautoreconf
, 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
@bhaible what do you think about me editing autogen.sh to show verbose output from autoconf / automake and post that? would it be helpful?
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:
200-libunistring-missing-link.patch
,md5sum gettext-runtime/configure
after each step.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.
@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$
...
...
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