Radix cross Linux

The main Radix cross Linux repository contains the build scripts of packages, which have the most complete and common functionality for desktop machines

452 Commits   2 Branches   1 Tag
Index: X11/X.org/lib/libXau/1.0.11/Makefile
===================================================================
--- X11/X.org/lib/libXau/1.0.11/Makefile	(revision 393)
+++ X11/X.org/lib/libXau/1.0.11/Makefile	(revision 394)
@@ -60,7 +60,7 @@
 
 SOURCE_REQUIRES    = sources/X.org/lib/libXau
 
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 REQUIRES          += X11/X.org/proto/xorgproto/2022.2
 
 # ======= __END_OF_REQUIRES__ =======
Index: X11/X.org/lib/libXau/1.0.11-ppc32/Makefile
===================================================================
--- X11/X.org/lib/libXau/1.0.11-ppc32/Makefile	(revision 393)
+++ X11/X.org/lib/libXau/1.0.11-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/X.org/lib/libXau
 
 REQUIRES           = X11/X.org/lib/libXau/1.0.11
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: X11/X.org/lib/libXau/1.0.11-x86_32/Makefile
===================================================================
--- X11/X.org/lib/libXau/1.0.11-x86_32/Makefile	(revision 393)
+++ X11/X.org/lib/libXau/1.0.11-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/X.org/lib/libXau
 
 REQUIRES           = X11/X.org/lib/libXau/1.0.11
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: X11/X.org/lib/libXdmcp/1.1.4/Makefile
===================================================================
--- X11/X.org/lib/libXdmcp/1.1.4/Makefile	(revision 393)
+++ X11/X.org/lib/libXdmcp/1.1.4/Makefile	(revision 394)
@@ -60,7 +60,7 @@
 
 SOURCE_REQUIRES    = sources/X.org/lib/libXdmcp
 
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 REQUIRES          += X11/X.org/proto/xorgproto/2022.2
 
 # ======= __END_OF_REQUIRES__ =======
Index: X11/X.org/lib/libXdmcp/1.1.4-ppc32/Makefile
===================================================================
--- X11/X.org/lib/libXdmcp/1.1.4-ppc32/Makefile	(revision 393)
+++ X11/X.org/lib/libXdmcp/1.1.4-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/X.org/lib/libXdmcp
 
 REQUIRES           = X11/X.org/lib/libXdmcp/1.1.4
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: X11/X.org/lib/libXdmcp/1.1.4-x86_32/Makefile
===================================================================
--- X11/X.org/lib/libXdmcp/1.1.4-x86_32/Makefile	(revision 393)
+++ X11/X.org/lib/libXdmcp/1.1.4-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/X.org/lib/libXdmcp
 
 REQUIRES           = X11/X.org/lib/libXdmcp/1.1.4
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: X11/X.org/lib/libxshmfence/1.3.2-ppc32/Makefile
===================================================================
--- X11/X.org/lib/libxshmfence/1.3.2-ppc32/Makefile	(revision 393)
+++ X11/X.org/lib/libxshmfence/1.3.2-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/X.org/lib/libxshmfence
 
 REQUIRES           = X11/X.org/lib/libxshmfence/1.3.2
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: X11/X.org/lib/libxshmfence/1.3.2-x86_32/Makefile
===================================================================
--- X11/X.org/lib/libxshmfence/1.3.2-x86_32/Makefile	(revision 393)
+++ X11/X.org/lib/libxshmfence/1.3.2-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/X.org/lib/libxshmfence
 
 REQUIRES           = X11/X.org/lib/libxshmfence/1.3.2
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: X11/X.org/lib/pixman/0.42.2/Makefile
===================================================================
--- X11/X.org/lib/pixman/0.42.2/Makefile	(revision 393)
+++ X11/X.org/lib/pixman/0.42.2/Makefile	(revision 394)
@@ -60,7 +60,7 @@
 
 SOURCE_REQUIRES    = sources/X.org/lib/pixman
 
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 REQUIRES          += X11/X.org/proto/xorgproto/2022.2
 
 # ======= __END_OF_REQUIRES__ =======
Index: X11/X.org/lib/pixman/0.42.2-ppc32/Makefile
===================================================================
--- X11/X.org/lib/pixman/0.42.2-ppc32/Makefile	(revision 393)
+++ X11/X.org/lib/pixman/0.42.2-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/X.org/lib/pixman
 
 REQUIRES           = X11/X.org/lib/pixman/0.42.2
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: X11/X.org/lib/pixman/0.42.2-x86_32/Makefile
===================================================================
--- X11/X.org/lib/pixman/0.42.2-x86_32/Makefile	(revision 393)
+++ X11/X.org/lib/pixman/0.42.2-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/X.org/lib/pixman
 
 REQUIRES           = X11/X.org/lib/pixman/0.42.2
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: X11/X.org/lib/xtrans/1.4.0/Makefile
===================================================================
--- X11/X.org/lib/xtrans/1.4.0/Makefile	(revision 393)
+++ X11/X.org/lib/xtrans/1.4.0/Makefile	(revision 394)
@@ -61,7 +61,7 @@
 SOURCE_REQUIRES    = sources/X.org/lib/xtrans
 
 REQUIRES           = X11/X.org/proto/xorgproto/2022.2
-REQUIRES          += libs/glibc/2.37
+REQUIRES          += libs/glibc/2.40
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: X11/X.org/lib/xtrans/1.4.0-ppc32/Makefile
===================================================================
--- X11/X.org/lib/xtrans/1.4.0-ppc32/Makefile	(revision 393)
+++ X11/X.org/lib/xtrans/1.4.0-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/X.org/lib/xtrans
 
 REQUIRES           = X11/X.org/lib/xtrans/1.4.0
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: X11/X.org/lib/xtrans/1.4.0-x86_32/Makefile
===================================================================
--- X11/X.org/lib/xtrans/1.4.0-x86_32/Makefile	(revision 393)
+++ X11/X.org/lib/xtrans/1.4.0-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/X.org/lib/xtrans
 
 REQUIRES           = X11/X.org/lib/xtrans/1.4.0
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: X11/X.org/util/makedepend/1.0.8/Makefile
===================================================================
--- X11/X.org/util/makedepend/1.0.8/Makefile	(revision 393)
+++ X11/X.org/util/makedepend/1.0.8/Makefile	(revision 394)
@@ -60,7 +60,7 @@
 
 SOURCE_REQUIRES    = sources/X.org/util/makedepend
 
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 REQUIRES          += X11/X.org/proto/xorgproto/2022.2
 
 # ======= __END_OF_REQUIRES__ =======
Index: X11/X.org/util/util-macros/1.19.3/Makefile
===================================================================
--- X11/X.org/util/util-macros/1.19.3/Makefile	(revision 393)
+++ X11/X.org/util/util-macros/1.19.3/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/X.org/util/util-macros
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: X11/X.org/xcb/libpthread-stubs/0.4/Makefile
===================================================================
--- X11/X.org/xcb/libpthread-stubs/0.4/Makefile	(revision 393)
+++ X11/X.org/xcb/libpthread-stubs/0.4/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/X.org/xcb/libpthread-stubs
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: X11/X.org/xcb/libpthread-stubs/0.4-ppc32/Makefile
===================================================================
--- X11/X.org/xcb/libpthread-stubs/0.4-ppc32/Makefile	(revision 393)
+++ X11/X.org/xcb/libpthread-stubs/0.4-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/X.org/xcb/libpthread-stubs
 
 REQUIRES           = X11/X.org/xcb/libpthread-stubs/0.4
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: X11/X.org/xcb/libpthread-stubs/0.4-x86_32/Makefile
===================================================================
--- X11/X.org/xcb/libpthread-stubs/0.4-x86_32/Makefile	(revision 393)
+++ X11/X.org/xcb/libpthread-stubs/0.4-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/X.org/xcb/libpthread-stubs
 
 REQUIRES           = X11/X.org/xcb/libpthread-stubs/0.4
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: X11/libs/libdeflate/1.19/Makefile
===================================================================
--- X11/libs/libdeflate/1.19/Makefile	(revision 393)
+++ X11/libs/libdeflate/1.19/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/x/libdeflate
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: X11/libs/libdrm/2.4.114/Makefile
===================================================================
--- X11/libs/libdrm/2.4.114/Makefile	(revision 393)
+++ X11/libs/libdrm/2.4.114/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/x/libdrm
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 ifneq ($(filter $(TOOLCHAIN),$(TOOLCHAIN_I586_GLIBC) \
Index: X11/libs/libspiro/20221101/Makefile
===================================================================
--- X11/libs/libspiro/20221101/Makefile	(revision 393)
+++ X11/libs/libspiro/20221101/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/x/libspiro
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: X11/libs/mesa/23.2.1/Makefile
===================================================================
--- X11/libs/mesa/23.2.1/Makefile	(revision 393)
+++ X11/libs/mesa/23.2.1/Makefile	(revision 394)
@@ -61,7 +61,7 @@
 SOURCE_REQUIRES    = sources/packages/x/mesa/23.x
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 endif
 REQUIRES          += libs/expat/2.5.0
 REQUIRES          += libs/libxml2/2.11.4
Index: X11/libs/mtdev/1.1.6/Makefile
===================================================================
--- X11/libs/mtdev/1.1.6/Makefile	(revision 393)
+++ X11/libs/mtdev/1.1.6/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/x/mtdev
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: X11/libs/mtdev/1.1.6-ppc32/Makefile
===================================================================
--- X11/libs/mtdev/1.1.6-ppc32/Makefile	(revision 393)
+++ X11/libs/mtdev/1.1.6-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/x/mtdev
 
 REQUIRES           = X11/libs/mtdev/1.1.6
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: X11/libs/mtdev/1.1.6-x86_32/Makefile
===================================================================
--- X11/libs/mtdev/1.1.6-x86_32/Makefile	(revision 393)
+++ X11/libs/mtdev/1.1.6-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/x/mtdev
 
 REQUIRES           = X11/libs/mtdev/1.1.6
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: X11/libs/qt5/5.15.8/Makefile
===================================================================
--- X11/libs/qt5/5.15.8/Makefile	(revision 393)
+++ X11/libs/qt5/5.15.8/Makefile	(revision 394)
@@ -60,7 +60,7 @@
 SOURCE_REQUIRES    = sources/packages/x/qt5
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 endif
 REQUIRES          += net/ca-certificates/20211220
 REQUIRES          += X11/app/desktop-file-utils/0.26
Index: X11/libs/vulkan/glslang/1.3.239.0-ppc32/Makefile
===================================================================
--- X11/libs/vulkan/glslang/1.3.239.0-ppc32/Makefile	(revision 393)
+++ X11/libs/vulkan/glslang/1.3.239.0-ppc32/Makefile	(revision 394)
@@ -19,7 +19,7 @@
 
 REQUIRES           = X11/libs/vulkan/spirv-headers/1.3.239.0
 REQUIRES          += X11/libs/vulkan/glslang/1.3.239.0
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: X11/libs/vulkan/glslang/1.3.239.0-x86_32/Makefile
===================================================================
--- X11/libs/vulkan/glslang/1.3.239.0-x86_32/Makefile	(revision 393)
+++ X11/libs/vulkan/glslang/1.3.239.0-x86_32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 
 REQUIRES           = X11/libs/vulkan/spirv-headers/1.3.239.0
 REQUIRES          += X11/libs/vulkan/glslang/1.3.239.0
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: X11/libs/vulkan/spirv-headers/1.3.239.0/Makefile
===================================================================
--- X11/libs/vulkan/spirv-headers/1.3.239.0/Makefile	(revision 393)
+++ X11/libs/vulkan/spirv-headers/1.3.239.0/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/x/vulkan/spirv-headers-sdk
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: X11/libs/vulkan/vulkan-headers/1.3.239.0/Makefile
===================================================================
--- X11/libs/vulkan/vulkan-headers/1.3.239.0/Makefile	(revision 393)
+++ X11/libs/vulkan/vulkan-headers/1.3.239.0/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/x/vulkan/vulkan-headers-sdk
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: X11/media/v4l-utils/1.24.1/Makefile
===================================================================
--- X11/media/v4l-utils/1.24.1/Makefile	(revision 393)
+++ X11/media/v4l-utils/1.24.1/Makefile	(revision 394)
@@ -61,7 +61,7 @@
 SOURCE_REQUIRES    = sources/packages/m/linuxtv/v4l-utils
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 endif
 REQUIRES          += app/sysfsutils/2.1.0
 REQUIRES          += libs/eudev/3.2.10
Index: app/attr/2.5.1/Makefile
===================================================================
--- app/attr/2.5.1/Makefile	(revision 393)
+++ app/attr/2.5.1/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/a/attr
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: app/attr/2.5.1-ppc32/Makefile
===================================================================
--- app/attr/2.5.1-ppc32/Makefile	(revision 393)
+++ app/attr/2.5.1-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/a/attr
 
 REQUIRES           = app/attr/2.5.1
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: app/attr/2.5.1-x86_32/Makefile
===================================================================
--- app/attr/2.5.1-x86_32/Makefile	(revision 393)
+++ app/attr/2.5.1-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/a/attr
 
 REQUIRES           = app/attr/2.5.1
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: app/bin/4.11.2/Makefile
===================================================================
--- app/bin/4.11.2/Makefile	(revision 393)
+++ app/bin/4.11.2/Makefile	(revision 394)
@@ -66,9 +66,9 @@
 
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: app/bzip2/1.0.8/Makefile
===================================================================
--- app/bzip2/1.0.8/Makefile	(revision 393)
+++ app/bzip2/1.0.8/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/a/bzip2
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: app/bzip2/1.0.8-ppc32/Makefile
===================================================================
--- app/bzip2/1.0.8-ppc32/Makefile	(revision 393)
+++ app/bzip2/1.0.8-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/a/bzip2
 
 REQUIRES           = app/bzip2/1.0.8
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: app/bzip2/1.0.8-x86_32/Makefile
===================================================================
--- app/bzip2/1.0.8-x86_32/Makefile	(revision 393)
+++ app/bzip2/1.0.8-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/a/bzip2
 
 REQUIRES           = app/bzip2/1.0.8
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: app/c2man/2.0.42/Makefile
===================================================================
--- app/c2man/2.0.42/Makefile	(revision 393)
+++ app/c2man/2.0.42/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/a/c2man
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: app/ctags/5.8/Makefile
===================================================================
--- app/ctags/5.8/Makefile	(revision 393)
+++ app/ctags/5.8/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/a/ctags
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: app/ctags/5.8-ppc32/Makefile
===================================================================
--- app/ctags/5.8-ppc32/Makefile	(revision 393)
+++ app/ctags/5.8-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/a/ctags
 
 REQUIRES           = app/ctags/5.8
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: app/ctags/5.8-x86_32/Makefile
===================================================================
--- app/ctags/5.8-x86_32/Makefile	(revision 393)
+++ app/ctags/5.8-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/a/ctags
 
 REQUIRES           = app/ctags/5.8
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: app/db/18.1.40/Makefile
===================================================================
--- app/db/18.1.40/Makefile	(revision 393)
+++ app/db/18.1.40/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/a/db
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: app/db/18.1.40-ppc32/Makefile
===================================================================
--- app/db/18.1.40-ppc32/Makefile	(revision 393)
+++ app/db/18.1.40-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/a/db
 
 REQUIRES           = app/db/18.1.40
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: app/db/18.1.40-x86_32/Makefile
===================================================================
--- app/db/18.1.40-x86_32/Makefile	(revision 393)
+++ app/db/18.1.40-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/a/db
 
 REQUIRES           = app/db/18.1.40
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: app/dcron/4.5/Makefile
===================================================================
--- app/dcron/4.5/Makefile	(revision 393)
+++ app/dcron/4.5/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/a/dcron
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: app/diffutils/3.8/Makefile
===================================================================
--- app/diffutils/3.8/Makefile	(revision 393)
+++ app/diffutils/3.8/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/GNU/diffutils
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: app/dmidecode/3.5/Makefile
===================================================================
--- app/dmidecode/3.5/Makefile	(revision 393)
+++ app/dmidecode/3.5/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES     = sources/packages/a/dmidecode
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES            = dev/gcc/12.2.0
+REQUIRES            = dev/gcc/14.2.0
 else
-REQUIRES            = libs/glibc/2.37
+REQUIRES            = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: app/ed/1.17/Makefile
===================================================================
--- app/ed/1.17/Makefile	(revision 393)
+++ app/ed/1.17/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/GNU/ed
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: app/efivar/38/Makefile
===================================================================
--- app/efivar/38/Makefile	(revision 393)
+++ app/efivar/38/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/a/efivar
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: app/findutils/4.8.0/Makefile
===================================================================
--- app/findutils/4.8.0/Makefile	(revision 393)
+++ app/findutils/4.8.0/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/GNU/findutils
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: app/gzip/1.10/Makefile
===================================================================
--- app/gzip/1.10/Makefile	(revision 393)
+++ app/gzip/1.10/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/GNU/gzip
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: app/hdparm/9.60/Makefile
===================================================================
--- app/hdparm/9.60/Makefile	(revision 393)
+++ app/hdparm/9.60/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/a/hdparm
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: app/inih/53/Makefile
===================================================================
--- app/inih/53/Makefile	(revision 393)
+++ app/inih/53/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/a/inih
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: app/inih/53-ppc32/Makefile
===================================================================
--- app/inih/53-ppc32/Makefile	(revision 393)
+++ app/inih/53-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/a/inih
 
 REQUIRES           = app/inih/53
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: app/inih/53-x86_32/Makefile
===================================================================
--- app/inih/53-x86_32/Makefile	(revision 393)
+++ app/inih/53-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/a/inih
 
 REQUIRES           = app/inih/53
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: app/inputattach/1.8.1/Makefile
===================================================================
--- app/inputattach/1.8.1/Makefile	(revision 393)
+++ app/inputattach/1.8.1/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/a/linuxconsole
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: app/inputattach/1.8.1-ppc32/Makefile
===================================================================
--- app/inputattach/1.8.1-ppc32/Makefile	(revision 393)
+++ app/inputattach/1.8.1-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/a/linuxconsole
 
 REQUIRES           = app/inputattach/1.8.1
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: app/inputattach/1.8.1-x86_32/Makefile
===================================================================
--- app/inputattach/1.8.1-x86_32/Makefile	(revision 393)
+++ app/inputattach/1.8.1-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/a/linuxconsole
 
 REQUIRES           = app/inputattach/1.8.1
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: app/jbigkit/2.1/Makefile
===================================================================
--- app/jbigkit/2.1/Makefile	(revision 393)
+++ app/jbigkit/2.1/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/a/jbigkit
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: app/jbigkit/2.1-ppc32/Makefile
===================================================================
--- app/jbigkit/2.1-ppc32/Makefile	(revision 393)
+++ app/jbigkit/2.1-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/a/jbigkit
 
 REQUIRES           = app/jbigkit/2.1
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: app/jbigkit/2.1-x86_32/Makefile
===================================================================
--- app/jbigkit/2.1-x86_32/Makefile	(revision 393)
+++ app/jbigkit/2.1-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/a/jbigkit
 
 REQUIRES           = app/jbigkit/2.1
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: app/lzip/1.22/Makefile
===================================================================
--- app/lzip/1.22/Makefile	(revision 393)
+++ app/lzip/1.22/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/a/lzip
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: app/mdadm/4.1/Makefile
===================================================================
--- app/mdadm/4.1/Makefile	(revision 393)
+++ app/mdadm/4.1/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/a/mdadm
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: app/mtools/4.0.26/Makefile
===================================================================
--- app/mtools/4.0.26/Makefile	(revision 393)
+++ app/mtools/4.0.26/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/GNU/mtools
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: app/ncompress/4.2.4.6/Makefile
===================================================================
--- app/ncompress/4.2.4.6/Makefile	(revision 393)
+++ app/ncompress/4.2.4.6/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/a/ncompress
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: app/patchelf/0.18.0/Makefile
===================================================================
--- app/patchelf/0.18.0/Makefile	(revision 393)
+++ app/patchelf/0.18.0/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/a/patchelf
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: app/sharutils/4.15.2/Makefile
===================================================================
--- app/sharutils/4.15.2/Makefile	(revision 393)
+++ app/sharutils/4.15.2/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/GNU/sharutils
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: app/sysklogd/2.2.1/Makefile
===================================================================
--- app/sysklogd/2.2.1/Makefile	(revision 393)
+++ app/sysklogd/2.2.1/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/a/sysklogd
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: app/sysvinit/2.99/Makefile
===================================================================
--- app/sysvinit/2.99/Makefile	(revision 393)
+++ app/sysvinit/2.99/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES     = sources/packages/a/sysvinit
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: app/tree/1.8.0/Makefile
===================================================================
--- app/tree/1.8.0/Makefile	(revision 393)
+++ app/tree/1.8.0/Makefile	(revision 394)
@@ -62,9 +62,9 @@
 
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: app/utempter/1.2.1/Makefile
===================================================================
--- app/utempter/1.2.1/Makefile	(revision 393)
+++ app/utempter/1.2.1/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/a/utempter
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: app/utempter/1.2.1-ppc32/Makefile
===================================================================
--- app/utempter/1.2.1-ppc32/Makefile	(revision 393)
+++ app/utempter/1.2.1-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/a/utempter
 
 REQUIRES           = app/utempter/1.2.1
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: app/utempter/1.2.1-x86_32/Makefile
===================================================================
--- app/utempter/1.2.1-x86_32/Makefile	(revision 393)
+++ app/utempter/1.2.1-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/a/utempter
 
 REQUIRES           = app/utempter/1.2.1
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: app/which/2.21/Makefile
===================================================================
--- app/which/2.21/Makefile	(revision 393)
+++ app/which/2.21/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/GNU/which
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: app/xz/5.2.7/Makefile
===================================================================
--- app/xz/5.2.7/Makefile	(revision 393)
+++ app/xz/5.2.7/Makefile	(revision 394)
@@ -60,7 +60,7 @@
 
 SOURCE_REQUIRES    = sources/packages/a/xz
 
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: app/xz/5.2.7-ppc32/Makefile
===================================================================
--- app/xz/5.2.7-ppc32/Makefile	(revision 393)
+++ app/xz/5.2.7-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/a/xz
 
 REQUIRES           = app/xz/5.2.7
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: app/xz/5.2.7-x86_32/Makefile
===================================================================
--- app/xz/5.2.7-x86_32/Makefile	(revision 393)
+++ app/xz/5.2.7-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/a/xz
 
 REQUIRES           = app/xz/5.2.7
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: dev/bison/3.7.4/Makefile
===================================================================
--- dev/bison/3.7.4/Makefile	(revision 393)
+++ dev/bison/3.7.4/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/GNU/bison
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: dev/bison/3.7.4-ppc32/Makefile
===================================================================
--- dev/bison/3.7.4-ppc32/Makefile	(revision 393)
+++ dev/bison/3.7.4-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/GNU/bison
 
 REQUIRES           = dev/bison/3.7.4
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: dev/bison/3.7.4-x86_32/Makefile
===================================================================
--- dev/bison/3.7.4-x86_32/Makefile	(revision 393)
+++ dev/bison/3.7.4-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/GNU/bison
 
 REQUIRES           = dev/bison/3.7.4
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: dev/ccache/4.8.1/Makefile
===================================================================
--- dev/ccache/4.8.1/Makefile	(revision 393)
+++ dev/ccache/4.8.1/Makefile	(revision 394)
@@ -61,7 +61,7 @@
 SOURCE_REQUIRES    = sources/packages/d/ccache
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
 REQUIRES           = libs/zstd/1.5.2
 endif
Index: dev/check/0.15.2/Makefile
===================================================================
--- dev/check/0.15.2/Makefile	(revision 393)
+++ dev/check/0.15.2/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/d/check
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: dev/check/0.15.2-ppc32/Makefile
===================================================================
--- dev/check/0.15.2-ppc32/Makefile	(revision 393)
+++ dev/check/0.15.2-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/d/check
 
 REQUIRES           = dev/check/0.15.2
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: dev/check/0.15.2-x86_32/Makefile
===================================================================
--- dev/check/0.15.2-x86_32/Makefile	(revision 393)
+++ dev/check/0.15.2-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/d/check
 
 REQUIRES           = dev/check/0.15.2
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: dev/flex/2.6.4/Makefile
===================================================================
--- dev/flex/2.6.4/Makefile	(revision 393)
+++ dev/flex/2.6.4/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/d/flex
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: dev/flex/2.6.4-ppc32/Makefile
===================================================================
--- dev/flex/2.6.4-ppc32/Makefile	(revision 393)
+++ dev/flex/2.6.4-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/d/flex
 
 REQUIRES           = dev/flex/2.6.4
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: dev/flex/2.6.4-x86_32/Makefile
===================================================================
--- dev/flex/2.6.4-x86_32/Makefile	(revision 393)
+++ dev/flex/2.6.4-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/d/flex
 
 REQUIRES           = dev/flex/2.6.4
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: dev/git/2.34.1/Makefile
===================================================================
--- dev/git/2.34.1/Makefile	(revision 393)
+++ dev/git/2.34.1/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/d/git
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 REQUIRES          += app/grep/3.6
Index: dev/gperf/3.1/Makefile
===================================================================
--- dev/gperf/3.1/Makefile	(revision 393)
+++ dev/gperf/3.1/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/GNU/gperf
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: dev/libtool/2.4.6/Makefile
===================================================================
--- dev/libtool/2.4.6/Makefile	(revision 393)
+++ dev/libtool/2.4.6/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/GNU/libtool
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: dev/libtool/2.4.6-ppc32/Makefile
===================================================================
--- dev/libtool/2.4.6-ppc32/Makefile	(revision 393)
+++ dev/libtool/2.4.6-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/GNU/libtool
 
 REQUIRES           = dev/libtool/2.4.6
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: dev/libtool/2.4.6-x86_32/Makefile
===================================================================
--- dev/libtool/2.4.6-x86_32/Makefile	(revision 393)
+++ dev/libtool/2.4.6-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/GNU/libtool
 
 REQUIRES           = dev/libtool/2.4.6
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: dev/llvm/16.0.2/Makefile
===================================================================
--- dev/llvm/16.0.2/Makefile	(revision 393)
+++ dev/llvm/16.0.2/Makefile	(revision 394)
@@ -60,7 +60,7 @@
 
 SOURCE_REQUIRES    = sources/packages/d/llvm
 
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 REQUIRES          += libs/libffi/3.4.4
 REQUIRES          += libs/elfutils/0.187
 REQUIRES          += libs/libxml2/2.11.4
Index: dev/m4/1.4.19/Makefile
===================================================================
--- dev/m4/1.4.19/Makefile	(revision 393)
+++ dev/m4/1.4.19/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/GNU/m4
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: dev/ninja/1.10.2/Makefile
===================================================================
--- dev/ninja/1.10.2/Makefile	(revision 393)
+++ dev/ninja/1.10.2/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/d/ninja
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: dev/orc/0.4.33.1/Makefile
===================================================================
--- dev/orc/0.4.33.1/Makefile	(revision 393)
+++ dev/orc/0.4.33.1/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/d/orc
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: dev/orc/0.4.33.1-ppc32/Makefile
===================================================================
--- dev/orc/0.4.33.1-ppc32/Makefile	(revision 393)
+++ dev/orc/0.4.33.1-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/d/orc
 
 REQUIRES           = dev/orc/0.4.33.1
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: dev/orc/0.4.33.1-x86_32/Makefile
===================================================================
--- dev/orc/0.4.33.1-x86_32/Makefile	(revision 393)
+++ dev/orc/0.4.33.1-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/d/orc
 
 REQUIRES           = dev/orc/0.4.33.1
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: dev/re2c/2.2/Makefile
===================================================================
--- dev/re2c/2.2/Makefile	(revision 393)
+++ dev/re2c/2.2/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/d/re2c
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: dev/unifdef/2.12/Makefile
===================================================================
--- dev/unifdef/2.12/Makefile	(revision 393)
+++ dev/unifdef/2.12/Makefile	(revision 394)
@@ -62,9 +62,9 @@
 
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: env/libuuid/2.38.1/Makefile
===================================================================
--- env/libuuid/2.38.1/Makefile	(revision 393)
+++ env/libuuid/2.38.1/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/a/util-linux
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: env/libuuid/2.38.1-ppc32/Makefile
===================================================================
--- env/libuuid/2.38.1-ppc32/Makefile	(revision 393)
+++ env/libuuid/2.38.1-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/a/util-linux
 
 REQUIRES           = env/libuuid/2.38.1
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: env/libuuid/2.38.1-x86_32/Makefile
===================================================================
--- env/libuuid/2.38.1-x86_32/Makefile	(revision 393)
+++ env/libuuid/2.38.1-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/a/util-linux
 
 REQUIRES           = env/libuuid/2.38.1
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/argon2/20190702/Makefile
===================================================================
--- libs/argon2/20190702/Makefile	(revision 393)
+++ libs/argon2/20190702/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/l/argon2
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: libs/argon2/20190702-ppc32/Makefile
===================================================================
--- libs/argon2/20190702-ppc32/Makefile	(revision 393)
+++ libs/argon2/20190702-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/l/argon2
 
 REQUIRES           = libs/argon2/20190702
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/argon2/20190702-x86_32/Makefile
===================================================================
--- libs/argon2/20190702-x86_32/Makefile	(revision 393)
+++ libs/argon2/20190702-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/l/argon2
 
 REQUIRES           = libs/argon2/20190702
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/aspell/0.60.8/Makefile
===================================================================
--- libs/aspell/0.60.8/Makefile	(revision 393)
+++ libs/aspell/0.60.8/Makefile	(revision 394)
@@ -61,7 +61,7 @@
 SOURCE_REQUIRES    = sources/GNU/aspell
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 endif
 REQUIRES          += libs/ncurses/6.3
 
Index: libs/brotli/1.0.9/Makefile
===================================================================
--- libs/brotli/1.0.9/Makefile	(revision 393)
+++ libs/brotli/1.0.9/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/l/brotli
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: libs/brotli/1.0.9-ppc32/Makefile
===================================================================
--- libs/brotli/1.0.9-ppc32/Makefile	(revision 393)
+++ libs/brotli/1.0.9-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/l/brotli
 
 REQUIRES           = libs/brotli/1.0.9
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/brotli/1.0.9-x86_32/Makefile
===================================================================
--- libs/brotli/1.0.9-x86_32/Makefile	(revision 393)
+++ libs/brotli/1.0.9-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/l/brotli
 
 REQUIRES           = libs/brotli/1.0.9
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/editline/1.17.1/Makefile
===================================================================
--- libs/editline/1.17.1/Makefile	(revision 393)
+++ libs/editline/1.17.1/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/l/editline
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: libs/editline/1.17.1-ppc32/Makefile
===================================================================
--- libs/editline/1.17.1-ppc32/Makefile	(revision 393)
+++ libs/editline/1.17.1-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/l/editline
 
 REQUIRES           = libs/editline/1.17.1
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/editline/1.17.1-x86_32/Makefile
===================================================================
--- libs/editline/1.17.1-x86_32/Makefile	(revision 393)
+++ libs/editline/1.17.1-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/l/editline
 
 REQUIRES           = libs/editline/1.17.1
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/expat/2.5.0/Makefile
===================================================================
--- libs/expat/2.5.0/Makefile	(revision 393)
+++ libs/expat/2.5.0/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/l/expat
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: libs/expat/2.5.0-ppc32/Makefile
===================================================================
--- libs/expat/2.5.0-ppc32/Makefile	(revision 393)
+++ libs/expat/2.5.0-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/l/expat
 
 REQUIRES           = libs/expat/2.5.0
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/expat/2.5.0-x86_32/Makefile
===================================================================
--- libs/expat/2.5.0-x86_32/Makefile	(revision 393)
+++ libs/expat/2.5.0-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/l/expat
 
 REQUIRES           = libs/expat/2.5.0
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/fftw/3.3.10/Makefile
===================================================================
--- libs/fftw/3.3.10/Makefile	(revision 393)
+++ libs/fftw/3.3.10/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/l/fftw
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: libs/fftw/3.3.10-ppc32/Makefile
===================================================================
--- libs/fftw/3.3.10-ppc32/Makefile	(revision 393)
+++ libs/fftw/3.3.10-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/l/fftw
 
 REQUIRES           = libs/fftw/3.3.10
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/fftw/3.3.10-x86_32/Makefile
===================================================================
--- libs/fftw/3.3.10-x86_32/Makefile	(revision 393)
+++ libs/fftw/3.3.10-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/l/fftw
 
 REQUIRES           = libs/fftw/3.3.10
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/fribidi/1.0.12/Makefile
===================================================================
--- libs/fribidi/1.0.12/Makefile	(revision 393)
+++ libs/fribidi/1.0.12/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/l/fribidi
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: libs/fribidi/1.0.12-ppc32/Makefile
===================================================================
--- libs/fribidi/1.0.12-ppc32/Makefile	(revision 393)
+++ libs/fribidi/1.0.12-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/l/fribidi
 
 REQUIRES           = libs/fribidi/1.0.12
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/fribidi/1.0.12-x86_32/Makefile
===================================================================
--- libs/fribidi/1.0.12-x86_32/Makefile	(revision 393)
+++ libs/fribidi/1.0.12-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/l/fribidi
 
 REQUIRES           = libs/fribidi/1.0.12
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/fuse3/3.16.2/Makefile
===================================================================
--- libs/fuse3/3.16.2/Makefile	(revision 393)
+++ libs/fuse3/3.16.2/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/l/fuse
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: libs/gc/8.0.4/Makefile
===================================================================
--- libs/gc/8.0.4/Makefile	(revision 393)
+++ libs/gc/8.0.4/Makefile	(revision 394)
@@ -62,9 +62,9 @@
 SOURCE_REQUIRES   += sources/packages/l/libatomic_ops
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: libs/gc/8.0.4-ppc32/Makefile
===================================================================
--- libs/gc/8.0.4-ppc32/Makefile	(revision 393)
+++ libs/gc/8.0.4-ppc32/Makefile	(revision 394)
@@ -17,7 +17,7 @@
 SOURCE_REQUIRES   += sources/packages/l/libatomic_ops
 
 REQUIRES           = libs/gc/8.0.4
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/gc/8.0.4-x86_32/Makefile
===================================================================
--- libs/gc/8.0.4-x86_32/Makefile	(revision 393)
+++ libs/gc/8.0.4-x86_32/Makefile	(revision 394)
@@ -14,7 +14,7 @@
 SOURCE_REQUIRES   += sources/packages/l/libatomic_ops
 
 REQUIRES           = libs/gc/8.0.4
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/gdbm/1.23/Makefile
===================================================================
--- libs/gdbm/1.23/Makefile	(revision 393)
+++ libs/gdbm/1.23/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/GNU/gdbm
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: libs/gdbm/1.23-ppc32/Makefile
===================================================================
--- libs/gdbm/1.23-ppc32/Makefile	(revision 393)
+++ libs/gdbm/1.23-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/GNU/gdbm
 
 REQUIRES           = libs/gdbm/1.23
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/gdbm/1.23-x86_32/Makefile
===================================================================
--- libs/gdbm/1.23-x86_32/Makefile	(revision 393)
+++ libs/gdbm/1.23-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/GNU/gdbm
 
 REQUIRES           = libs/gdbm/1.23
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/giflib/5.2.1/Makefile
===================================================================
--- libs/giflib/5.2.1/Makefile	(revision 393)
+++ libs/giflib/5.2.1/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/l/giflib
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: libs/giflib/5.2.1-ppc32/Makefile
===================================================================
--- libs/giflib/5.2.1-ppc32/Makefile	(revision 393)
+++ libs/giflib/5.2.1-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/l/giflib
 
 REQUIRES           = libs/giflib/5.2.1
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/giflib/5.2.1-x86_32/Makefile
===================================================================
--- libs/giflib/5.2.1-x86_32/Makefile	(revision 393)
+++ libs/giflib/5.2.1-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/l/giflib
 
 REQUIRES           = libs/giflib/5.2.1
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/glibc/2.37-ppc32/tz-exclude.list
===================================================================
--- libs/glibc/2.37-ppc32/tz-exclude.list	(revision 393)
+++ libs/glibc/2.37-ppc32/tz-exclude.list	(nonexistent)
@@ -1 +0,0 @@
-Makefile
Index: libs/glibc/2.37-ppc32/glibc-x32-pkg-install.sh
===================================================================
--- libs/glibc/2.37-ppc32/glibc-x32-pkg-install.sh	(revision 393)
+++ libs/glibc/2.37-ppc32/glibc-x32-pkg-install.sh	(nonexistent)
@@ -1,39 +0,0 @@
-#!/bin/sh
-
-# arg 1:  the new package version
-pre_install() {
-  /bin/true
-}
-
-# arg 1:  the new package version
-post_install() {
-  /bin/true
-}
-
-# arg 1:  the new package version
-# arg 2:  the old package version
-pre_update() {
-  /bin/true
-}
-
-# arg 1:  the new package version
-# arg 2:  the old package version
-post_update() {
-  post_install
-}
-
-# arg 1:  the old package version
-pre_remove() {
-  /bin/true
-}
-
-# arg 1:  the old package version
-post_remove() {
-  /bin/true
-}
-
-
-operation=$1
-shift
-
-$operation $*

Property changes on: libs/glibc/2.37-ppc32/glibc-x32-pkg-install.sh
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: libs/glibc/2.37-ppc32/PATCHES
===================================================================
--- libs/glibc/2.37-ppc32/PATCHES	(revision 393)
+++ libs/glibc/2.37-ppc32/PATCHES	(nonexistent)
@@ -1,13 +0,0 @@
-
-../../../sources/GNU/glibc/2.37/patches/glibc-2.37-CVE-2023-25139.patch      -p0
-../../../sources/GNU/glibc/2.37/patches/glibc-2.37-i18n.patch                -p0
-../../../sources/GNU/glibc/2.37/patches/glibc-2.37-malloc-hooks.patch        -p0
-../../../sources/GNU/glibc/2.37/patches/glibc-2.37-en_US-no-am-pm.patch      -p0
-../../../sources/GNU/glibc/2.37/patches/glibc-2.37-reenable-DT-HASH.patch    -p0
-../../../sources/GNU/glibc/2.37/patches/glibc-2.37-locale-no-archive.patch   -p0
-../../../sources/GNU/glibc/2.37/patches/glibc-2.37-zonefile.patch            -p0
-../../../sources/GNU/glibc/2.37/patches/glibc-2.37-zoneinfo.patch
-../../../sources/iana/tz/patches/glibc-2.37-tzcode-2023c.patch               -p0
-
-../../../sources/GNU/glibc/2.37/patches/glibc-2.37-ppc64-interpreter.patch   -p0
-../../../sources/GNU/glibc/2.37/patches/glibc-2.37-x86_64-interpreter.patch  -p0
Index: libs/glibc/2.37-ppc32/Makefile
===================================================================
--- libs/glibc/2.37-ppc32/Makefile	(revision 393)
+++ libs/glibc/2.37-ppc32/Makefile	(nonexistent)
@@ -1,204 +0,0 @@
-
-COMPONENT_TARGETS   = $(HARDWARE_S824L)
-COMPONENT_TARGETS  += $(HARDWARE_VESNIN)
-COMPONENT_TARGETS  += $(HARDWARE_TL2WK2)
-COMPONENT_TARGETS  += $(HARDWARE_TL2SV2)
-
-NEED_ABS_PATH       = true
-COMPONENT_IS_3PP    = true
-
-CREATE_PPC32_PACKAGE = true
-
-
-include ../../../build-system/constants.mk
-
-
-SOURCE_REQUIRES     = sources/GNU/glibc/2.37
-SOURCE_REQUIRES    += sources/iana/tz
-
-REQUIRES            = libs/glibc/2.37
-REQUIRES           += dev/kernel-headers
-REQUIRES           += dev/gcc-runtime/12.2.0
-
-# ======= __END_OF_REQUIRES__ =======
-
-
-version             = 2.37
-tar_xz_archive      = $(SRC_PACKAGE_PATH)/GNU/glibc/$(version)/glibc-$(version).tar.xz
-
-tz_version          = 2023c
-tar_gz_code_archive = $(SRC_PACKAGE_PATH)/iana/tz/tzcode$(tz_version).tar.gz
-tar_gz_data_archive = $(SRC_PACKAGE_PATH)/iana/tz/tzdata$(tz_version).tar.gz
-exclude_list        = $(CURDIR)/tz-exclude.list
-
-SRC_ARCHIVE         = $(tar_xz_archive)
-SRC_DIR             = $(TARGET_BUILD_DIR)/glibc-$(version)
-src_dir_name        = glibc-$(version)
-src_done            = $(TARGET_BUILD_DIR)/.source-done
-
-PATCHES             = PATCHES
-
-build_dir           = $(TARGET_BUILD_DIR)/build
-build_target        = $(TARGET_BUILD_DIR)/.built
-install_target      = $(TARGET_BUILD_DIR)/.installed
-
-
-build_glibc32_pkg   = $(TARGET_BUILD_DIR)/.glibc32_pkg_done
-
-
-OPTIMIZATION_FLAGS  = -O3
-
-
-####### Targets
-
-PKG_GROUP = libs
-
-#
-# *PKG_NAME & *PKG_VERSION shouldn't be a reference to value.
-#
-GLIBC_32_PKG_NAME                = glibc-x32
-GLIBC_32_PKG_VERSION             = 2.37
-GLIBC_32_PKG_ARCH                = $(PKGARCH)
-GLIBC_32_PKG_DISTRO_NAME         = $(DISTRO_NAME)
-GLIBC_32_PKG_DISTRO_VERSION      = $(DISTRO_VERSION)
-GLIBC_32_PKG_GROUP               = $(PKG_GROUP)
-###                               |---handy-ruler-------------------------------|
-GLIBC_32_PKG_SHORT_DESCRIPTION   = GNU C libraries
-GLIBC_32_PKG_URL                 = $(BUG_URL)
-GLIBC_32_PKG_LICENSE             = GPLv2
-GLIBC_32_PKG_DESCRIPTION_FILE    = $(TARGET_BUILD_DIR)/$(GLIBC_32_PKG_NAME)-pkg-description
-GLIBC_32_PKG_DESCRIPTION_FILE_IN = $(GLIBC_32_PKG_NAME)-pkg-description.in
-GLIBC_32_PKG_INSTALL_SCRIPT      = $(GLIBC_32_PKG_NAME)-pkg-install.sh
-
-GLIBC_32_PKG     = $(CURDIR)/$(TARGET_BUILD_DIR)/$(GLIBC_32_PKG_NAME)-package
-
-pkg_basename     = $(GLIBC_32_PKG_NAME)-$(GLIBC_32_PKG_VERSION)-$(GLIBC_32_PKG_ARCH)-$(GLIBC_32_PKG_DISTRO_NAME)-$(GLIBC_32_PKG_DISTRO_VERSION)
-
-pkg_archive      = $(TARGET_BUILD_DIR)/$(PKG_GROUP)/$(pkg_basename).$(pkg_arch_suffix)
-pkg_certificate  = $(call cert-name,$(pkg_archive))
-pkg_signature    = $(call sign-name,$(pkg_archive))
-pkg_description  = $(call desc-name,$(pkg_archive))
-products         = $(call pkg-files,$(pkg_archive))
-
-BUILD_TARGETS    = $(build_target)
-BUILD_TARGETS   += $(install_target)
-BUILD_TARGETS   += $(build_glibc32_pkg)
-
-PRODUCT_TARGETS  = $(products)
-
-ROOTFS_TARGETS   = $(pkg_archive)
-
-
-include ../../../build-system/core.mk
-
-
-env_sysroot = install_root=$(GLIBC_32_PKG)
-
-
-extra_configure_switches  += --libdir=/usr/lib$(MULTILIB_PPC32_SUFFIX)
-extra_configure_switches  += --with-headers=$(TARGET_DEST_DIR)/usr/include
-extra_configure_switches  += --with-binutils=$(TOOLCHAIN_PATH)/bin
-extra_configure_switches  += --enable-kernel=2.6.36
-extra_configure_switches  += --enable-add-ons
-extra_configure_switches  += --enable-profile
-extra_configure_switches  += --enable-bind-now
-extra_configure_switches  += --without-gd
-extra_configure_switches  += --without-cvs
-
-
-extra_configure_switches  += libc_cv_slibdir=/lib$(MULTILIB_PPC32_SUFFIX)
-extra_configure_switches  += libc_cv_rtlddir=/lib$(MULTILIB_PPC32_SUFFIX)
-
-
-
-$(src_done): $(SRC_ARCHIVE) $(PATCHES_DEP)
-	$(UNPACK_SRC_ARCHIVE)
-	@tar --exclude-from=$(exclude_list) -xzf $(tar_gz_code_archive) -C $(SRC_DIR)/timezone
-	@tar --exclude-from=$(exclude_list) -xzf $(tar_gz_data_archive) -C $(SRC_DIR)/timezone
-	$(APPLY_PATCHES)
-	@touch $@
-
-$(build_target): $(src_done)
-	@mkdir -p $(build_dir)
-	@echo "slibdir=/lib$(MULTILIB_PPC32_SUFFIX)" >> $(build_dir)/configparms
-	@echo "rtlddir=/lib$(MULTILIB_PPC32_SUFFIX)" >> $(build_dir)/configparms
-	@cd $(build_dir) && $(BUILD_ENVIRONMENT) $(env_sysroot) ../$(src_dir_name)/configure \
-	  --prefix=/usr                \
-	  --build=$(BUILD)             \
-	  --host=$(TARGET32)           \
-	  $(extra_configure_switches)
-	@cd $(build_dir) && $(BUILD_ENVIRONMENT) $(MAKE)
-	@touch $@
-
-$(install_target): $(build_target)
-	@mkdir -p $(GLIBC_32_PKG)
-	@cd $(build_dir) && $(BUILD_ENVIRONMENT) $(MAKE) -j1 install $(env_sysroot)
-	# ======= fake LOCALES installation to allow implementation of iconv and intl into GLIBC =======
-	@cd $(build_dir) && $(BUILD_ENVIRONMENT) $(MAKE) -j1 SUPPORTED-LOCALES="" \
-	                                                     localedata/install-locales $(env_sysroot)
-	# ======= create librt.so symlink if not exists: =======
-	@( cd $(GLIBC_32_PKG)/usr/lib$(MULTILIB_PPC32_SUFFIX) ; \
-	   if [ ! -L librt.so -a -e "../../lib$(MULTILIB_PPC32_SUFFIX)/librt.so.1" ] ; then \
-	     ln -sf ../../lib$(MULTILIB_PPC32_SUFFIX)/librt.so.1 librt.so ; \
-	   fi ; \
-	 )
-	# ======= create libdl.so symlink if not exists: =======
-	@( cd $(GLIBC_32_PKG)/usr/lib$(MULTILIB_PPC32_SUFFIX) ; \
-	   if [ ! -L libdl.so -a -e "../../lib$(MULTILIB_PPC32_SUFFIX)/libdl.so.2" ] ; then \
-	     ln -sf ../../lib$(MULTILIB_PPC32_SUFFIX)/libdl.so.2 libdl.so ; \
-	   fi ; \
-	 )
-	@touch $@
-
-$(build_glibc32_pkg): $(install_target)
-	# ======= Remove not needed stuff =======
-	@rm -rf $(GLIBC_32_PKG)/etc
-	@rm -rf $(GLIBC_32_PKG)/sbin
-	@rm -rf $(GLIBC_32_PKG)/usr/bin
-	@rm -rf $(GLIBC_32_PKG)/usr/sbin
-	@rm -rf $(GLIBC_32_PKG)/usr/share
-	@rm -rf $(GLIBC_32_PKG)/var
-	@( cd $(GLIBC_32_PKG)/usr/include/gnu ;  cp lib-names-32.h stubs-32.h ../.. )
-	@rm -rf $(GLIBC_32_PKG)/usr/include
-	@( mkdir -p $(GLIBC_32_PKG)/usr/include/gnu ; \
-	   mv $(GLIBC_32_PKG)/usr/lib-names-32.h $(GLIBC_32_PKG)/usr/include/gnu ; \
-	   mv $(GLIBC_32_PKG)/usr/stubs-32.h     $(GLIBC_32_PKG)/usr/include/gnu ; \
-	 )
-	# ======= Create symbolic link to libnsl.so.1 =======
-	@( cd $(GLIBC_32_PKG)/usr/lib$(MULTILIB_PPC32_SUFFIX) ; \
-	   ln -sf ../../lib$(MULTILIB_PPC32_SUFFIX)/libnsl.so.1 libnsl.so ; \
-	 )
-	# ======= Install the same to $(TARGET_DEST_DIR) =======
-	$(call install-into-devenv, $(GLIBC_32_PKG))
-	# ======= Strip binaries =======
-	@( cd $(GLIBC_32_PKG) ; \
-	   find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs $(STRIP) --strip-debug 2> /dev/null ; \
-	   find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs $(STRIP) -g 2> /dev/null ; \
-	   find . | xargs file | grep "current ar archive" | cut -f 1 -d : | xargs $(STRIP) -g 2> /dev/null ; \
-	   find . | xargs file | grep "relocatable" | cut -f 1 -d : | xargs $(STRIP) -g 2> /dev/null ; \
-	 )
-	@touch $@
-
-$(GLIBC_32_PKG_DESCRIPTION_FILE): $(GLIBC_32_PKG_DESCRIPTION_FILE_IN)
-	@cat $< | $(SED) -e "s/@VERSION@/$(version)/g" > $@
-
-$(pkg_certificate) : $(pkg_archive) ;
-$(pkg_signature)   : $(pkg_archive) ;
-$(pkg_description) : $(pkg_archive) ;
-
-$(pkg_archive): $(build_glibc32_pkg) $(GLIBC_32_PKG_DESCRIPTION_FILE) $(GLIBC_32_PKG_INSTALL_SCRIPT)
-	@cp $(GLIBC_32_PKG_DESCRIPTION_FILE) $(GLIBC_32_PKG)/.DESCRIPTION
-	@cp $(GLIBC_32_PKG_INSTALL_SCRIPT) $(GLIBC_32_PKG)/.INSTALL
-	@$(BUILD_BIN_PKG_REQUIRES) $(GLIBC_32_PKG)/.REQUIRES
-	@echo "pkgname=$(GLIBC_32_PKG_NAME)"                            >  $(GLIBC_32_PKG)/.PKGINFO ; \
-	 echo "pkgver=$(GLIBC_32_PKG_VERSION)"                          >> $(GLIBC_32_PKG)/.PKGINFO ; \
-	 echo "arch=$(GLIBC_32_PKG_ARCH)"                               >> $(GLIBC_32_PKG)/.PKGINFO ; \
-	 echo "distroname=$(GLIBC_32_PKG_DISTRO_NAME)"                  >> $(GLIBC_32_PKG)/.PKGINFO ; \
-	 echo "distrover=$(GLIBC_32_PKG_DISTRO_VERSION)"                >> $(GLIBC_32_PKG)/.PKGINFO ; \
-	 echo "group=$(GLIBC_32_PKG_GROUP)"                             >> $(GLIBC_32_PKG)/.PKGINFO ; \
-	 echo "short_description=\"$(GLIBC_32_PKG_SHORT_DESCRIPTION)\"" >> $(GLIBC_32_PKG)/.PKGINFO ; \
-	 echo "url=$(GLIBC_32_PKG_URL)"                                 >> $(GLIBC_32_PKG)/.PKGINFO ; \
-	 echo "license=$(GLIBC_32_PKG_LICENSE)"                         >> $(GLIBC_32_PKG)/.PKGINFO
-	@$(PSEUDO) sh -c "cd $(GLIBC_32_PKG) && \
-	                  chown -R root:root . && \
-	                  $(MAKE_PACKAGE) -J --linkadd=yes $(GNUPG_OPTIONS) -m -d .. ."
Index: libs/glibc/2.37-ppc32/glibc-x32-pkg-description.in
===================================================================
--- libs/glibc/2.37-ppc32/glibc-x32-pkg-description.in	(revision 393)
+++ libs/glibc/2.37-ppc32/glibc-x32-pkg-description.in	(nonexistent)
@@ -1,19 +0,0 @@
-# HOW TO EDIT THIS FILE:
-# The "handy ruler" below makes it easier to edit a package description.  Line
-# up the first '|' above the ':' following the base package name, and the '|'
-# on the right side marks the last column you can put a character in.  You must
-# make exactly 11 lines for the formatting to be correct.  It's also
-# customary to leave one space after the ':'.
-
-          |-----handy-ruler------------------------------------------------------|
-glibc-x32: glibc-x32 @VERSION@ (ppc32 GNU C libraries)
-glibc-x32:
-glibc-x32: This package contains the GNU C libraries and header files.
-glibc-x32: The GNU C library was written originally by Roland McGrath,
-glibc-x32: and is currently maintained by Ulrich Drepper. Some parts of
-glibc-x32: the library were contributed or worked on by other people.
-glibc-x32:
-glibc-x32:
-glibc-x32:
-glibc-x32:
-glibc-x32:
Index: libs/glibc/2.37-ppc32
===================================================================
--- libs/glibc/2.37-ppc32	(revision 393)
+++ libs/glibc/2.37-ppc32	(nonexistent)

Property changes on: libs/glibc/2.37-ppc32
___________________________________________________________________
Deleted: svn:ignore
## -1,74 +0,0 ##
-
-# install dir
-dist
-
-# Target build dirs
-.a1x-newlib
-.a2x-newlib
-.at91sam7s-newlib
-
-.build-machine
-
-.a1x-glibc
-.a2x-glibc
-.h3-glibc
-.h5-glibc
-.i586-glibc
-.i686-glibc
-.imx6-glibc
-.jz47xx-glibc
-.makefile
-.am335x-glibc
-.omap543x-glibc
-.p5600-glibc
-.power8-glibc
-.power8le-glibc
-.power9-glibc
-.power9le-glibc
-.m1000-glibc
-.riscv64-glibc
-.rk328x-glibc
-.rk33xx-glibc
-.rk339x-glibc
-.rk358x-glibc
-.s8xx-glibc
-.s9xx-glibc
-.x86_64-glibc
-
-# Hidden files (each file)
-.makefile
-.dist
-.rootfs
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-.requires
-.requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Descriptions
-*.dsc
-*.txt
-
-# Default linux config files
-*.defconfig
-
-# backup copies
-*~
Index: libs/glibc/2.37-x86_32/tz-exclude.list
===================================================================
--- libs/glibc/2.37-x86_32/tz-exclude.list	(revision 393)
+++ libs/glibc/2.37-x86_32/tz-exclude.list	(nonexistent)
@@ -1 +0,0 @@
-Makefile
Index: libs/glibc/2.37-x86_32/glibc-x32-pkg-install.sh
===================================================================
--- libs/glibc/2.37-x86_32/glibc-x32-pkg-install.sh	(revision 393)
+++ libs/glibc/2.37-x86_32/glibc-x32-pkg-install.sh	(nonexistent)
@@ -1,39 +0,0 @@
-#!/bin/sh
-
-# arg 1:  the new package version
-pre_install() {
-  /bin/true
-}
-
-# arg 1:  the new package version
-post_install() {
-  /bin/true
-}
-
-# arg 1:  the new package version
-# arg 2:  the old package version
-pre_update() {
-  /bin/true
-}
-
-# arg 1:  the new package version
-# arg 2:  the old package version
-post_update() {
-  post_install
-}
-
-# arg 1:  the old package version
-pre_remove() {
-  /bin/true
-}
-
-# arg 1:  the old package version
-post_remove() {
-  /bin/true
-}
-
-
-operation=$1
-shift
-
-$operation $*

Property changes on: libs/glibc/2.37-x86_32/glibc-x32-pkg-install.sh
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: libs/glibc/2.37-x86_32/PATCHES
===================================================================
--- libs/glibc/2.37-x86_32/PATCHES	(revision 393)
+++ libs/glibc/2.37-x86_32/PATCHES	(nonexistent)
@@ -1,13 +0,0 @@
-
-../../../sources/GNU/glibc/2.37/patches/glibc-2.37-CVE-2023-25139.patch      -p0
-../../../sources/GNU/glibc/2.37/patches/glibc-2.37-i18n.patch                -p0
-../../../sources/GNU/glibc/2.37/patches/glibc-2.37-malloc-hooks.patch        -p0
-../../../sources/GNU/glibc/2.37/patches/glibc-2.37-en_US-no-am-pm.patch      -p0
-../../../sources/GNU/glibc/2.37/patches/glibc-2.37-reenable-DT-HASH.patch    -p0
-../../../sources/GNU/glibc/2.37/patches/glibc-2.37-locale-no-archive.patch   -p0
-../../../sources/GNU/glibc/2.37/patches/glibc-2.37-zonefile.patch            -p0
-../../../sources/GNU/glibc/2.37/patches/glibc-2.37-zoneinfo.patch
-../../../sources/iana/tz/patches/glibc-2.37-tzcode-2023c.patch               -p0
-
-../../../sources/GNU/glibc/2.37/patches/glibc-2.37-ppc64-interpreter.patch   -p0
-../../../sources/GNU/glibc/2.37/patches/glibc-2.37-x86_64-interpreter.patch  -p0
Index: libs/glibc/2.37-x86_32/Makefile
===================================================================
--- libs/glibc/2.37-x86_32/Makefile	(revision 393)
+++ libs/glibc/2.37-x86_32/Makefile	(nonexistent)
@@ -1,201 +0,0 @@
-
-COMPONENT_TARGETS   = $(HARDWARE_INTEL_PC64)
-
-NEED_ABS_PATH       = true
-COMPONENT_IS_3PP    = true
-
-CREATE_X86_32_PACKAGE = true
-
-
-include ../../../build-system/constants.mk
-
-
-SOURCE_REQUIRES     = sources/GNU/glibc/2.37
-SOURCE_REQUIRES    += sources/iana/tz
-
-REQUIRES            = libs/glibc/2.37
-REQUIRES           += dev/kernel-headers
-REQUIRES           += dev/gcc-runtime/12.2.0
-
-# ======= __END_OF_REQUIRES__ =======
-
-
-version             = 2.37
-tar_xz_archive      = $(SRC_PACKAGE_PATH)/GNU/glibc/$(version)/glibc-$(version).tar.xz
-
-tz_version          = 2023c
-tar_gz_code_archive = $(SRC_PACKAGE_PATH)/iana/tz/tzcode$(tz_version).tar.gz
-tar_gz_data_archive = $(SRC_PACKAGE_PATH)/iana/tz/tzdata$(tz_version).tar.gz
-exclude_list        = $(CURDIR)/tz-exclude.list
-
-SRC_ARCHIVE         = $(tar_xz_archive)
-SRC_DIR             = $(TARGET_BUILD_DIR)/glibc-$(version)
-src_dir_name        = glibc-$(version)
-src_done            = $(TARGET_BUILD_DIR)/.source-done
-
-PATCHES             = PATCHES
-
-build_dir           = $(TARGET_BUILD_DIR)/build
-build_target        = $(TARGET_BUILD_DIR)/.built
-install_target      = $(TARGET_BUILD_DIR)/.installed
-
-
-build_glibc32_pkg   = $(TARGET_BUILD_DIR)/.glibc32_pkg_done
-
-
-OPTIMIZATION_FLAGS  = -O3
-
-
-####### Targets
-
-PKG_GROUP = libs
-
-#
-# *PKG_NAME & *PKG_VERSION shouldn't be a reference to value.
-#
-GLIBC_32_PKG_NAME                = glibc-x32
-GLIBC_32_PKG_VERSION             = 2.37
-GLIBC_32_PKG_ARCH                = $(PKGARCH)
-GLIBC_32_PKG_DISTRO_NAME         = $(DISTRO_NAME)
-GLIBC_32_PKG_DISTRO_VERSION      = $(DISTRO_VERSION)
-GLIBC_32_PKG_GROUP               = $(PKG_GROUP)
-###                               |---handy-ruler-------------------------------|
-GLIBC_32_PKG_SHORT_DESCRIPTION   = GNU C libraries
-GLIBC_32_PKG_URL                 = $(BUG_URL)
-GLIBC_32_PKG_LICENSE             = GPLv2
-GLIBC_32_PKG_DESCRIPTION_FILE    = $(TARGET_BUILD_DIR)/$(GLIBC_32_PKG_NAME)-pkg-description
-GLIBC_32_PKG_DESCRIPTION_FILE_IN = $(GLIBC_32_PKG_NAME)-pkg-description.in
-GLIBC_32_PKG_INSTALL_SCRIPT      = $(GLIBC_32_PKG_NAME)-pkg-install.sh
-
-GLIBC_32_PKG     = $(CURDIR)/$(TARGET_BUILD_DIR)/$(GLIBC_32_PKG_NAME)-package
-
-pkg_basename     = $(GLIBC_32_PKG_NAME)-$(GLIBC_32_PKG_VERSION)-$(GLIBC_32_PKG_ARCH)-$(GLIBC_32_PKG_DISTRO_NAME)-$(GLIBC_32_PKG_DISTRO_VERSION)
-
-pkg_archive      = $(TARGET_BUILD_DIR)/$(PKG_GROUP)/$(pkg_basename).$(pkg_arch_suffix)
-pkg_certificate  = $(call cert-name,$(pkg_archive))
-pkg_signature    = $(call sign-name,$(pkg_archive))
-pkg_description  = $(call desc-name,$(pkg_archive))
-products         = $(call pkg-files,$(pkg_archive))
-
-BUILD_TARGETS    = $(build_target)
-BUILD_TARGETS   += $(install_target)
-BUILD_TARGETS   += $(build_glibc32_pkg)
-
-PRODUCT_TARGETS  = $(products)
-
-ROOTFS_TARGETS   = $(pkg_archive)
-
-
-include ../../../build-system/core.mk
-
-
-env_sysroot = install_root=$(GLIBC_32_PKG)
-
-
-extra_configure_switches  += --libdir=/usr/lib$(MULTILIB_X86_32_SUFFIX)
-extra_configure_switches  += --with-headers=$(TARGET_DEST_DIR)/usr/include
-extra_configure_switches  += --with-binutils=$(TOOLCHAIN_PATH)/bin
-extra_configure_switches  += --enable-kernel=2.6.36
-extra_configure_switches  += --enable-add-ons
-extra_configure_switches  += --enable-profile
-extra_configure_switches  += --enable-bind-now
-extra_configure_switches  += --without-gd
-extra_configure_switches  += --without-cvs
-
-
-extra_configure_switches  += libc_cv_slibdir=/lib$(MULTILIB_X86_32_SUFFIX)
-extra_configure_switches  += libc_cv_rtlddir=/lib$(MULTILIB_X86_32_SUFFIX)
-
-
-
-$(src_done): $(SRC_ARCHIVE) $(PATCHES_DEP)
-	$(UNPACK_SRC_ARCHIVE)
-	@tar --exclude-from=$(exclude_list) -xzf $(tar_gz_code_archive) -C $(SRC_DIR)/timezone
-	@tar --exclude-from=$(exclude_list) -xzf $(tar_gz_data_archive) -C $(SRC_DIR)/timezone
-	$(APPLY_PATCHES)
-	@touch $@
-
-$(build_target): $(src_done)
-	@mkdir -p $(build_dir)
-	@echo "slibdir=/lib$(MULTILIB_X86_32_SUFFIX)" >> $(build_dir)/configparms
-	@echo "rtlddir=/lib$(MULTILIB_X86_32_SUFFIX)" >> $(build_dir)/configparms
-	@cd $(build_dir) && $(BUILD_ENVIRONMENT) $(env_sysroot) ../$(src_dir_name)/configure \
-	  --prefix=/usr                \
-	  --build=$(BUILD)             \
-	  --host=$(TARGET32)           \
-	  $(extra_configure_switches)
-	@cd $(build_dir) && $(BUILD_ENVIRONMENT) $(MAKE)
-	@touch $@
-
-$(install_target): $(build_target)
-	@mkdir -p $(GLIBC_32_PKG)
-	@cd $(build_dir) && $(BUILD_ENVIRONMENT) $(MAKE) -j1 install $(env_sysroot)
-	# ======= fake LOCALES installation to allow implementation of iconv and intl into GLIBC =======
-	@cd $(build_dir) && $(BUILD_ENVIRONMENT) $(MAKE) -j1 SUPPORTED-LOCALES="" \
-	                                                     localedata/install-locales $(env_sysroot)
-	# ======= create librt.so symlink if not exists: =======
-	@( cd $(GLIBC_32_PKG)/usr/lib$(MULTILIB_X86_32_SUFFIX) ; \
-	   if [ ! -L librt.so -a -e "../../lib$(MULTILIB_X86_32_SUFFIX)/librt.so.1" ] ; then \
-	     ln -sf ../../lib$(MULTILIB_X86_32_SUFFIX)/librt.so.1 librt.so ; \
-	   fi ; \
-	 )
-	# ======= create libdl.so symlink if not exists: =======
-	@( cd $(GLIBC_32_PKG)/usr/lib$(MULTILIB_X86_32_SUFFIX) ; \
-	   if [ ! -L libdl.so -a -e "../../lib$(MULTILIB_X86_32_SUFFIX)/libdl.so.2" ] ; then \
-	     ln -sf ../../lib$(MULTILIB_X86_32_SUFFIX)/libdl.so.2 libdl.so ; \
-	   fi ; \
-	 )
-	@touch $@
-
-$(build_glibc32_pkg): $(install_target)
-	# ======= Remove not needed stuff =======
-	@rm -rf $(GLIBC_32_PKG)/etc
-	@rm -rf $(GLIBC_32_PKG)/sbin
-	@rm -rf $(GLIBC_32_PKG)/usr/bin
-	@rm -rf $(GLIBC_32_PKG)/usr/sbin
-	@rm -rf $(GLIBC_32_PKG)/usr/share
-	@rm -rf $(GLIBC_32_PKG)/var
-	@( cd $(GLIBC_32_PKG)/usr/include/gnu ;  cp lib-names-32.h stubs-32.h ../.. )
-	@rm -rf $(GLIBC_32_PKG)/usr/include
-	@( mkdir -p $(GLIBC_32_PKG)/usr/include/gnu ; \
-	   mv $(GLIBC_32_PKG)/usr/lib-names-32.h $(GLIBC_32_PKG)/usr/include/gnu ; \
-	   mv $(GLIBC_32_PKG)/usr/stubs-32.h     $(GLIBC_32_PKG)/usr/include/gnu ; \
-	 )
-	# ======= Create symbolic link to libnsl.so.1 =======
-	@( cd $(GLIBC_32_PKG)/usr/lib$(MULTILIB_X86_32_SUFFIX) ; \
-	   ln -sf ../../lib$(MULTILIB_X86_32_SUFFIX)/libnsl.so.1 libnsl.so ; \
-	 )
-	# ======= Install the same to $(TARGET_DEST_DIR) =======
-	$(call install-into-devenv, $(GLIBC_32_PKG))
-	# ======= Strip binaries =======
-	@( cd $(GLIBC_32_PKG) ; \
-	   find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs $(STRIP) --strip-debug 2> /dev/null ; \
-	   find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs $(STRIP) -g 2> /dev/null ; \
-	   find . | xargs file | grep "current ar archive" | cut -f 1 -d : | xargs $(STRIP) -g 2> /dev/null ; \
-	   find . | xargs file | grep "relocatable" | cut -f 1 -d : | xargs $(STRIP) -g 2> /dev/null ; \
-	 )
-	@touch $@
-
-$(GLIBC_32_PKG_DESCRIPTION_FILE): $(GLIBC_32_PKG_DESCRIPTION_FILE_IN)
-	@cat $< | $(SED) -e "s/@VERSION@/$(version)/g" > $@
-
-$(pkg_certificate) : $(pkg_archive) ;
-$(pkg_signature)   : $(pkg_archive) ;
-$(pkg_description) : $(pkg_archive) ;
-
-$(pkg_archive): $(build_glibc32_pkg) $(GLIBC_32_PKG_DESCRIPTION_FILE) $(GLIBC_32_PKG_INSTALL_SCRIPT)
-	@cp $(GLIBC_32_PKG_DESCRIPTION_FILE) $(GLIBC_32_PKG)/.DESCRIPTION
-	@cp $(GLIBC_32_PKG_INSTALL_SCRIPT) $(GLIBC_32_PKG)/.INSTALL
-	@$(BUILD_BIN_PKG_REQUIRES) $(GLIBC_32_PKG)/.REQUIRES
-	@echo "pkgname=$(GLIBC_32_PKG_NAME)"                            >  $(GLIBC_32_PKG)/.PKGINFO ; \
-	 echo "pkgver=$(GLIBC_32_PKG_VERSION)"                          >> $(GLIBC_32_PKG)/.PKGINFO ; \
-	 echo "arch=$(GLIBC_32_PKG_ARCH)"                               >> $(GLIBC_32_PKG)/.PKGINFO ; \
-	 echo "distroname=$(GLIBC_32_PKG_DISTRO_NAME)"                  >> $(GLIBC_32_PKG)/.PKGINFO ; \
-	 echo "distrover=$(GLIBC_32_PKG_DISTRO_VERSION)"                >> $(GLIBC_32_PKG)/.PKGINFO ; \
-	 echo "group=$(GLIBC_32_PKG_GROUP)"                             >> $(GLIBC_32_PKG)/.PKGINFO ; \
-	 echo "short_description=\"$(GLIBC_32_PKG_SHORT_DESCRIPTION)\"" >> $(GLIBC_32_PKG)/.PKGINFO ; \
-	 echo "url=$(GLIBC_32_PKG_URL)"                                 >> $(GLIBC_32_PKG)/.PKGINFO ; \
-	 echo "license=$(GLIBC_32_PKG_LICENSE)"                         >> $(GLIBC_32_PKG)/.PKGINFO
-	@$(PSEUDO) sh -c "cd $(GLIBC_32_PKG) && \
-	                  chown -R root:root . && \
-	                  $(MAKE_PACKAGE) -J --linkadd=yes $(GNUPG_OPTIONS) -m -d .. ."
Index: libs/glibc/2.37-x86_32/glibc-x32-pkg-description.in
===================================================================
--- libs/glibc/2.37-x86_32/glibc-x32-pkg-description.in	(revision 393)
+++ libs/glibc/2.37-x86_32/glibc-x32-pkg-description.in	(nonexistent)
@@ -1,19 +0,0 @@
-# HOW TO EDIT THIS FILE:
-# The "handy ruler" below makes it easier to edit a package description.  Line
-# up the first '|' above the ':' following the base package name, and the '|'
-# on the right side marks the last column you can put a character in.  You must
-# make exactly 11 lines for the formatting to be correct.  It's also
-# customary to leave one space after the ':'.
-
-          |-----handy-ruler------------------------------------------------------|
-glibc-x32: glibc-x32 @VERSION@ (GNU C libraries)
-glibc-x32:
-glibc-x32: This package contains the GNU C libraries and header files.
-glibc-x32: The GNU C library was written originally by Roland McGrath,
-glibc-x32: and is currently maintained by Ulrich Drepper. Some parts of
-glibc-x32: the library were contributed or worked on by other people.
-glibc-x32:
-glibc-x32:
-glibc-x32:
-glibc-x32:
-glibc-x32:
Index: libs/glibc/2.37-x86_32
===================================================================
--- libs/glibc/2.37-x86_32	(revision 393)
+++ libs/glibc/2.37-x86_32	(nonexistent)

Property changes on: libs/glibc/2.37-x86_32
___________________________________________________________________
Deleted: svn:ignore
## -1,74 +0,0 ##
-
-# install dir
-dist
-
-# Target build dirs
-.a1x-newlib
-.a2x-newlib
-.at91sam7s-newlib
-
-.build-machine
-
-.a1x-glibc
-.a2x-glibc
-.h3-glibc
-.h5-glibc
-.i586-glibc
-.i686-glibc
-.imx6-glibc
-.jz47xx-glibc
-.makefile
-.am335x-glibc
-.omap543x-glibc
-.p5600-glibc
-.power8-glibc
-.power8le-glibc
-.power9-glibc
-.power9le-glibc
-.m1000-glibc
-.riscv64-glibc
-.rk328x-glibc
-.rk33xx-glibc
-.rk339x-glibc
-.rk358x-glibc
-.s8xx-glibc
-.s9xx-glibc
-.x86_64-glibc
-
-# Hidden files (each file)
-.makefile
-.dist
-.rootfs
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-.requires
-.requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Descriptions
-*.dsc
-*.txt
-
-# Default linux config files
-*.defconfig
-
-# backup copies
-*~
Index: libs/glibc/2.37-zoneinfo/2023c/scripts/list-zones
===================================================================
--- libs/glibc/2.37-zoneinfo/2023c/scripts/list-zones	(revision 393)
+++ libs/glibc/2.37-zoneinfo/2023c/scripts/list-zones	(nonexistent)
@@ -1,29 +0,0 @@
-#!/bin/sh
-
-path=$1
-p01=$2
-
-if [ -z "$path" -a -z "$p01" ] ; then
-  echo ""
-  echo "Usage: `basename $0` PATH output-file"
-  echo ""
-  exit 1
-fi
-
-ls 1> /dev/null 2> $p01
-
-( cd $path
-  find . -type f | xargs file | grep "timezone data" | cut -f 1 -d : | sort | while read zone ; do
-    if [ "`dirname $zone`" != "." ] ; then
-      line="\"`echo "$zone" | sed "s,\./,,"`\" \" \" \\\\"
-      echo "$line" >> $p01
-    fi
-  done
-
-  find . -type f | xargs file | grep "timezone data" | cut -f 1 -d : | sort | while read zone ; do
-    if [ "`dirname $zone`" == "." ] ; then
-      line="\"`echo "$zone" | sed "s,\./,,"`\" \" \" \\\\"
-      echo "$line" >> $p01
-    fi
-  done
-)

Property changes on: libs/glibc/2.37-zoneinfo/2023c/scripts/list-zones
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: libs/glibc/2.37-zoneinfo/2023c/scripts/part-00
===================================================================
--- libs/glibc/2.37-zoneinfo/2023c/scripts/part-00	(revision 393)
+++ libs/glibc/2.37-zoneinfo/2023c/scripts/part-00	(nonexistent)
@@ -1,183 +0,0 @@
-#!/bin/sh
-
-# program name:
-program=`basename $0`
-
-# 16 = root path has not specified arter --root option
-# 91 = root path not correct
-# 92 = Cannot create '/tmp/...' directory
-EXITSTATUS=0
-
-CWD=`pwd`
-
-umask 022
-if [ ! -z "$TMPDIR" ] ; then mkdir -p $TMPDIR ; fi
-TMP=$(mkdir -p /tmp/radix && mktemp -d -p /tmp/radix $program.XXXXXXXX) || { echo "Cannot create '/tmp/...' directory" ; exit 92; }
-trap "rm -rf $TMP" EXIT
-
-
-TARGET_ROOT_PATH=
-
-usage() {
- cat << EOF
-
-Usage: $program [options]
-
-$program - Radix Linux timezone configuration utility.
-
-options:
-   --root <DIR>   - Configure timezone someplace else, like <DIR>.
-
-EOF
-}
-
-
-check_abs_paths()
-{
-  if [ ! -z "$TARGET_ROOT_PATH" ] ; then
-    if [[ ${TARGET_ROOT_PATH:0:1} != "/" ]] ; then
-      TARGET_ROOT_PATH=$CWD/$TARGET_ROOT_PATH
-    fi
-    TARGET_ROOT_PATH="$(echo "$TARGET_ROOT_PATH" | sed -e "s/\/$//")/"
-  fi
-}
-
-#
-# Parse options:
-#
-while [ 0 ]; do
-  if [ "$1" = "-h" -o "$1" = "--help" ]; then
-    usage
-    exit 0
-  elif [ "$1" = "--root" ]; then
-    if [ "$2" = "" ]; then
-      usage
-      echo "ERROR: Target ROOT directory has not specified. Check --root option."
-      EXITSTATUS=17
-      exit $EXITSTATUS
-    fi
-    TARGET_ROOT_PATH="$2"
-    shift 2
-  else
-    break
-  fi
-done
-
-check_abs_paths
-
-if [ -z "$TARGET_ROOT_PATH" ] ; then
-  TARGET_ROOT_PATH="/"
-fi
-
-if [ ! -d $TARGET_ROOT_PATH ] ; then
-  echo "ERROR: Target ROOT path specified but not correct."
-  EXITSTATUS=91
-  exit $EXITSTATUS
-fi
-
-: ${DIALOG=dialog}
-: ${DIALOGRC=${TARGET_ROOT_PATH}etc/dialogrc}
-
-#
-# The hardware clock configuration files:
-#
-HWCLOCK_CONF=${TARGET_ROOT_PATH}etc/hardwareclock
-ADJTIME_CONF=${TARGET_ROOT_PATH}etc/adjtime
-
-#
-# setzone( $TIMEZONE )
-#
-# This function accepts a time zone as the only parameter
-# and sets it as the default system time zone.
-#
-setzone()
-{
-  TZ=$1
-
-  cd ${TARGET_ROOT_PATH}etc
-  if [ -r ${TARGET_ROOT_PATH}usr/share/zoneinfo/$TZ -o \
-       -L ${TARGET_ROOT_PATH}usr/share/zoneinfo/$TZ    ] ; then
-      ln -sf ../usr/share/zoneinfo/$TZ localtime-copied-from
-      rm -f localtime-copied-from
-      rm -f localtime
-      ln -sf ../usr/share/zoneinfo/$TZ localtime
-      cd ..
-   fi
-}
-
-#
-# writeconf( $CLOCK_SET_TO )
-#
-# Writes out $HWCLOCK_CONF that tells rc.S how the hardware clock value is stored.
-#
-writeconf()
-{
-   echo "#"                                               > $HWCLOCK_CONF
-   echo "# /etc/hardwareclock"                           >> $HWCLOCK_CONF
-   echo "#"                                              >> $HWCLOCK_CONF
-   echo "# Tells how the hardware clock time is stored." >> $HWCLOCK_CONF
-   echo "# You should run timeconfig to edit this file." >> $HWCLOCK_CONF
-   echo ""                                               >> $HWCLOCK_CONF
-   echo $1 >> $HWCLOCK_CONF
-}
-
-write_adjtime()
-{
-  if [ ! -f "$ADJTIME_CONF" ] ; then
-    echo "0.0 0 0.0"  > $ADJTIME_CONF
-    echo "0"         >> $ADJTIME_CONF
-    echo $1 >> $ADJTIME_CONF
-  else
-    if [ "$1" = "UTC" ] ; then
-      sed -i 's,^LOCAL,UTC,' $ADJTIME_CONF
-    else
-      sed -i 's,^UTC,LOCAL,' $ADJTIME_CONF
-    fi
-  fi
-}
-
-#
-# Ask the user if the hardware clock is set for UTC/GMT
-#
-cat > $TMP/menu-utc$$ << EOF
---colors \\
---backtitle "\Z7Radix\Zn \Z1cross\Zn\Z7 Linux\Zn" \\
---title " \Z4\ZbSet Hardware Clock\ZB\Zn " \\
---menu "\\n\\
- Is the hardware clock set to Coordinated Universal Time (UTC/GMT)?\\n\\
- If it is, select YES here.\\n\\n\\
- If the hardware clock is set to the current local time (this is how\\n\\
- most PCs are set up), then say NO here.\\n\\n\\
- If you are not sure what this is, you should answer NO here.\\n\\
-" 16 74 2 \\
-"NO" "Hardware clock is set to local time" \\
-"YES" "Hardware clock is set to UTC" \\
-EOF
-
-$DIALOG --file $TMP/menu-utc$$ 2> $TMP/utc$$
-if [ $? = 1 -o $? = 255 ]; then
-  rm -f $TMP/utc$$
-  rm -f $TMP/menu-utc$$
-  exit
-fi
-if [ "`cat $TMP/utc$$`" = "YES" ]; then
-  # yes, the hardware clock is UTC
-  writeconf "UTC"
-  write_adjtime "UTC"
-else # must be NO
-  writeconf "localtime"
-  write_adjtime "LOCAL"
-fi
-rm -f $TMP/utc$$
-rm -f $TMP/menu-utc$$
-
-#
-# Ask the user which timezone is preffered
-#
-cat > $TMP/menu-tz$$ << EOF
---colors \\
---backtitle "\Z7Radix\Zn \Z1cross\Zn\Z7 Linux\Zn" \\
---title " \Z4\ZbTimezone Configuration\ZB\Zn " \\
---menu "\\n\\
- Please select one of the following timezones for your machine:\\n\\
-" 22 74 14 \\
Index: libs/glibc/2.37-zoneinfo/2023c/scripts/part-02
===================================================================
--- libs/glibc/2.37-zoneinfo/2023c/scripts/part-02	(revision 393)
+++ libs/glibc/2.37-zoneinfo/2023c/scripts/part-02	(nonexistent)
@@ -1,16 +0,0 @@
-EOF
-
-$DIALOG --file $TMP/menu-tz$$ 2> $TMP/tz$$
-ret=$?
-if [ $ret -eq 1 -o $ret -eq 255 ]; then
-  rm -f $TMP/tz$$
-  rm -f $TMP/menu-tz$$
-  exit
-fi
-
-TIMEZONE="`cat $TMP/tz$$`"
-rm -f $TMP/tz$$
-rm -f $TMP/menu-tz$$
-
-setzone $TIMEZONE
-exit
Index: libs/glibc/2.37-zoneinfo/2023c/scripts
===================================================================
--- libs/glibc/2.37-zoneinfo/2023c/scripts	(revision 393)
+++ libs/glibc/2.37-zoneinfo/2023c/scripts	(nonexistent)

Property changes on: libs/glibc/2.37-zoneinfo/2023c/scripts
___________________________________________________________________
Deleted: svn:ignore
## -1,73 +0,0 ##
-
-# install dir
-dist
-
-# Target build dirs
-.a1x-newlib
-.a2x-newlib
-.at91sam7s-newlib
-
-.build-machine
-
-.a1x-glibc
-.a2x-glibc
-.h3-glibc
-.h5-glibc
-.i586-glibc
-.i686-glibc
-.imx6-glibc
-.jz47xx-glibc
-.makefile
-.am335x-glibc
-.omap543x-glibc
-.p5600-glibc
-.power8-glibc
-.power8le-glibc
-.power9-glibc
-.power9le-glibc
-.m1000-glibc
-.riscv64-glibc
-.rk328x-glibc
-.rk33xx-glibc
-.rk339x-glibc
-.s8xx-glibc
-.s9xx-glibc
-.x86_64-glibc
-
-# Hidden files (each file)
-.makefile
-.dist
-.rootfs
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-.requires
-.requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Descriptions
-*.dsc
-*.txt
-
-# Default linux config files
-*.defconfig
-
-# backup copies
-*~
Index: libs/glibc/2.37-zoneinfo/2023c/glibc-zoneinfo-pkg-description.in
===================================================================
--- libs/glibc/2.37-zoneinfo/2023c/glibc-zoneinfo-pkg-description.in	(revision 393)
+++ libs/glibc/2.37-zoneinfo/2023c/glibc-zoneinfo-pkg-description.in	(nonexistent)
@@ -1,19 +0,0 @@
-# HOW TO EDIT THIS FILE:
-# The "handy ruler" below makes it easier to edit a package description.  Line
-# up the first '|' above the ':' following the base package name, and the '|'
-# on the right side marks the last column you can put a character in.  You must
-# make exactly 11 lines for the formatting to be correct.  It's also
-# customary to leave one space after the ':'.
-
-              |-----handy-ruler------------------------------------------------------|
-glibc-zoneinfo: glibc-zoneinfo @VERSION@ (timezone database @TZVERSION@)
-glibc-zoneinfo:
-glibc-zoneinfo: This package allows you to configure your time zone.
-glibc-zoneinfo:
-glibc-zoneinfo: This timezone database comes from the tzdata and tzcode packages by
-glibc-zoneinfo: Arthur David Olson et.al. The latest version and more information
-glibc-zoneinfo: may be found at:  http://www.iana.org/time-zones
-glibc-zoneinfo:
-glibc-zoneinfo: Use the timeconfig utility to set your local time zone.
-glibc-zoneinfo:
-glibc-zoneinfo:
Index: libs/glibc/2.37-zoneinfo/2023c/PATCHES
===================================================================
--- libs/glibc/2.37-zoneinfo/2023c/PATCHES	(revision 393)
+++ libs/glibc/2.37-zoneinfo/2023c/PATCHES	(nonexistent)
@@ -1,2 +0,0 @@
-
-../../../../sources/iana/tz/patches/tzcode-2023c-version.patch -p0
Index: libs/glibc/2.37-zoneinfo/2023c/glibc-zoneinfo-pkg-install.sh
===================================================================
--- libs/glibc/2.37-zoneinfo/2023c/glibc-zoneinfo-pkg-install.sh	(revision 393)
+++ libs/glibc/2.37-zoneinfo/2023c/glibc-zoneinfo-pkg-install.sh	(nonexistent)
@@ -1,39 +0,0 @@
-#!/bin/sh
-
-# arg 1:  the new package version
-pre_install() {
-  /bin/true
-}
-
-# arg 1:  the new package version
-post_install() {
-  /bin/true
-}
-
-# arg 1:  the new package version
-# arg 2:  the old package version
-pre_update() {
-  /bin/true
-}
-
-# arg 1:  the new package version
-# arg 2:  the old package version
-post_update() {
-  post_install
-}
-
-# arg 1:  the old package version
-pre_remove() {
-  /bin/true
-}
-
-# arg 1:  the old package version
-post_remove() {
-  /bin/true
-}
-
-
-operation=$1
-shift
-
-$operation $*

Property changes on: libs/glibc/2.37-zoneinfo/2023c/glibc-zoneinfo-pkg-install.sh
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: libs/glibc/2.37-zoneinfo/2023c/Makefile
===================================================================
--- libs/glibc/2.37-zoneinfo/2023c/Makefile	(revision 393)
+++ libs/glibc/2.37-zoneinfo/2023c/Makefile	(nonexistent)
@@ -1,207 +0,0 @@
-
-COMPONENT_TARGETS  = $(HARDWARE_INTEL_PC32)
-COMPONENT_TARGETS += $(HARDWARE_INTEL_PC64)
-COMPONENT_TARGETS += $(HARDWARE_EBOX_3350DX2)
-COMPONENT_TARGETS += $(HARDWARE_CB1X)
-COMPONENT_TARGETS += $(HARDWARE_CB2X)
-COMPONENT_TARGETS += $(HARDWARE_CB3X)
-COMPONENT_TARGETS += $(HARDWARE_ORANGE_PP2E)
-COMPONENT_TARGETS += $(HARDWARE_NANOPI_NEO)
-COMPONENT_TARGETS += $(HARDWARE_ORANGE_PP)
-COMPONENT_TARGETS += $(HARDWARE_ORANGE_PL2)
-COMPONENT_TARGETS += $(HARDWARE_ORANGE_PI5)
-COMPONENT_TARGETS += $(HARDWARE_ORANGE_PI5B)
-COMPONENT_TARGETS += $(HARDWARE_ORANGE_PI5P)
-COMPONENT_TARGETS += $(HARDWARE_ROCK_5B)
-COMPONENT_TARGETS += $(HARDWARE_WECHIP_TX6)
-COMPONENT_TARGETS += $(HARDWARE_REPKA_PI3)
-COMPONENT_TARGETS += $(HARDWARE_FFRK3288)
-COMPONENT_TARGETS += $(HARDWARE_POIN2)
-COMPONENT_TARGETS += $(HARDWARE_RK3328_CC)
-COMPONENT_TARGETS += $(HARDWARE_KHADAS_EDGE)
-COMPONENT_TARGETS += $(HARDWARE_LEEZ_P710)
-COMPONENT_TARGETS += $(HARDWARE_M201)
-COMPONENT_TARGETS += $(HARDWARE_MXV)
-COMPONENT_TARGETS += $(HARDWARE_P201)
-COMPONENT_TARGETS += $(HARDWARE_NEXBOX_A95X)
-COMPONENT_TARGETS += $(HARDWARE_ODROID_C2)
-COMPONENT_TARGETS += $(HARDWARE_P212)
-COMPONENT_TARGETS += $(HARDWARE_KHADAS_VIM)
-COMPONENT_TARGETS += $(HARDWARE_Q201)
-COMPONENT_TARGETS += $(HARDWARE_ENYBOX_X2)
-COMPONENT_TARGETS += $(HARDWARE_KHADAS_VIM2)
-COMPONENT_TARGETS += $(HARDWARE_NIT6Q)
-COMPONENT_TARGETS += $(HARDWARE_OKMX6DL_C)
-COMPONENT_TARGETS += $(HARDWARE_OKMX6Q_C)
-COMPONENT_TARGETS += $(HARDWARE_BONE_BLACK)
-COMPONENT_TARGETS += $(HARDWARE_OMAP5UEVM)
-COMPONENT_TARGETS += $(HARDWARE_DRA7XXEVM)
-COMPONENT_TARGETS += $(HARDWARE_CI20)
-COMPONENT_TARGETS += $(HARDWARE_BAIKAL_T1)
-COMPONENT_TARGETS += $(HARDWARE_BAIKAL_M1)
-COMPONENT_TARGETS += $(HARDWARE_S824L)
-COMPONENT_TARGETS += $(HARDWARE_VESNIN)
-COMPONENT_TARGETS += $(HARDWARE_S824L_LSB)
-COMPONENT_TARGETS += $(HARDWARE_VESNIN_LSB)
-COMPONENT_TARGETS += $(HARDWARE_TL2WK2)
-COMPONENT_TARGETS += $(HARDWARE_TL2SV2)
-COMPONENT_TARGETS += $(HARDWARE_TL2WK2_LSB)
-COMPONENT_TARGETS += $(HARDWARE_TL2SV2_LSB)
-COMPONENT_TARGETS += $(HARDWARE_VISIONFIVE2)
-COMPONENT_TARGETS += $(HARDWARE_SIFIVE_U740)
-
-
-NEED_ABS_PATH      = true
-COMPONENT_IS_3PP   = true
-
-
-include ../../../../build-system/constants.mk
-
-
-SOURCE_REQUIRES   = sources/iana/tz
-
-REQUIRES          = libs/glibc/2.37-i18n
-
-# ======= __END_OF_REQUIRES__ =======
-
-
-version    = 2.37
-tz_version = 2023c
-
-tar_gz_code_archive       = $(SRC_PACKAGE_PATH)/iana/tz/tzcode$(tz_version).tar.gz
-tar_gz_data_archive       = $(SRC_PACKAGE_PATH)/iana/tz/tzdata$(tz_version).tar.gz
-
-
-SRC_DIR           = $(TARGET_BUILD_DIR)/timezone
-doc_dir_name      = zoneinfo-$(version)
-src_done          = $(TARGET_BUILD_DIR)/.source-done
-
-PATCHES           = PATCHES
-
-install_target    = $(TARGET_BUILD_DIR)/.install_done
-
-scripts_dir       = $(CURDIR)/scripts
-part_01           = $(CURDIR)/$(TARGET_BUILD_DIR)/part-01
-
-
-OPTIMIZATION_FLAGS  = -O3
-
-
-####### Targets
-
-PKG_GROUP = libs
-
-#
-# *PKG_NAME & *PKG_VERSION shouldn't be a reference to value.
-#
-GLIBC_TZ_PKG_NAME                = glibc-zoneinfo
-GLIBC_TZ_PKG_VERSION             = 2.37
-GLIBC_TZ_PKG_ARCH                = $(PKGARCH)
-GLIBC_TZ_PKG_DISTRO_NAME         = $(DISTRO_NAME)
-GLIBC_TZ_PKG_DISTRO_VERSION      = $(DISTRO_VERSION)
-GLIBC_TZ_PKG_GROUP               = $(PKG_GROUP)
-###                               |---handy-ruler-------------------------------|
-GLIBC_TZ_PKG_SHORT_DESCRIPTION   = timezone database
-GLIBC_TZ_PKG_URL                 = $(BUG_URL)
-GLIBC_TZ_PKG_LICENSE             = public
-GLIBC_TZ_PKG_DESCRIPTION_FILE    = $(TARGET_BUILD_DIR)/$(GLIBC_TZ_PKG_NAME)-pkg-description
-GLIBC_TZ_PKG_DESCRIPTION_FILE_IN = $(GLIBC_TZ_PKG_NAME)-pkg-description.in
-GLIBC_TZ_PKG_INSTALL_SCRIPT      = $(GLIBC_TZ_PKG_NAME)-pkg-install.sh
-
-GLIBC_TZ_PKG     = $(CURDIR)/$(TARGET_BUILD_DIR)/$(GLIBC_TZ_PKG_NAME)-package
-
-pkg_basename     = $(GLIBC_TZ_PKG_NAME)-$(GLIBC_TZ_PKG_VERSION)-$(GLIBC_TZ_PKG_ARCH)-$(GLIBC_TZ_PKG_DISTRO_NAME)-$(GLIBC_TZ_PKG_DISTRO_VERSION)
-
-pkg_archive      = $(TARGET_BUILD_DIR)/$(PKG_GROUP)/$(pkg_basename).$(pkg_arch_suffix)
-pkg_certificate  = $(call cert-name,$(pkg_archive))
-pkg_signature    = $(call sign-name,$(pkg_archive))
-pkg_description  = $(call desc-name,$(pkg_archive))
-products         = $(call pkg-files,$(pkg_archive))
-
-BUILD_TARGETS    = $(install_target)
-
-PRODUCT_TARGETS  = $(products)
-
-ROOTFS_TARGETS   = $(pkg_archive)
-
-
-include ../../../../build-system/core.mk
-
-
-ifeq ($(TOOLCHAIN),$(TOOLCHAIN_X86_64_GLIBC))
-OPTIMIZATION_FLAGS += -fPIC
-endif
-
-
-$(src_done): $(tar_gz_code_archive) $(tar_gz_data_archive)
-	@mkdir -p $(SRC_DIR)
-	@tar xzf $(tar_gz_code_archive) -C $(SRC_DIR)
-	@tar xzf $(tar_gz_data_archive) -C $(SRC_DIR)
-	$(APPLY_PATCHES)
-	@touch $@
-
-$(install_target): $(src_done)
-	@mkdir -p $(GLIBC_TZ_PKG)
-	@cd $(SRC_DIR) && $(MAKE)
-	@cd $(SRC_DIR) && $(MAKE) -j1 install DESTDIR=.
-	@mkdir -p $(GLIBC_TZ_PKG)/usr/lib$(LIBSUFFIX)
-	@cp -a $(SRC_DIR)/usr/lib/libtz.a $(GLIBC_TZ_PKG)/usr/lib$(LIBSUFFIX)
-	@mkdir -p $(GLIBC_TZ_PKG)/usr/share/zoneinfo{,-leaps}
-	@cp -a $(SRC_DIR)/usr/share/zoneinfo/* $(GLIBC_TZ_PKG)/usr/share/zoneinfo
-	@cp -a $(SRC_DIR)/usr/share/zoneinfo-leaps/* $(GLIBC_TZ_PKG)/usr/share/zoneinfo-leaps
-	@( cd $(GLIBC_TZ_PKG)/usr/share ;  ln -sf zoneinfo zoneinfo-posix )
-	# ======= Remove PACKAGE/usr/share/zoneinfo/localtime --                =======
-	# ======= the install script will create it as a link to /etc/localtime =======
-	@rm -f $(GLIBC_TZ_PKG)/usr/share/zoneinfo/localtime
-	# ======= timeconfig script =======
-	@$(scripts_dir)/list-zones $(GLIBC_TZ_PKG)/usr/share/zoneinfo $(part_01)
-	@mkdir -p $(GLIBC_TZ_PKG)/usr/sbin
-	@cat $(scripts_dir)/part-00 $(part_01) $(scripts_dir)/part-02 > $(GLIBC_TZ_PKG)/usr/sbin/timeconfig
-	@chmod 0755 $(GLIBC_TZ_PKG)/usr/sbin/timeconfig
-	# ======= Install Documentation =======
-	@cp -rf $(SRC_DIR)/usr/share/man $(GLIBC_TZ_PKG)/usr/share
-	@( cd $(GLIBC_TZ_PKG)/usr/share/man/man3 ; \
-	   for file in *.3 ; do \
-	     gzip -9 --force $$file; \
-	   done )
-	@( cd $(GLIBC_TZ_PKG)/usr/share/man/man5 ; \
-	   for file in *.5 ; do \
-	     gzip -9 --force $$file; \
-	   done )
-	@( cd $(GLIBC_TZ_PKG)/usr/share/man/man8 ; \
-	   for file in *.8 ; do \
-	     gzip -9 --force $$file; \
-	   done )
-	@mkdir -p $(GLIBC_TZ_PKG)/usr/share/doc/$(doc_dir_name)
-	@( cd $(SRC_DIR) ; \
-	   cp -a CONTRIBUTING LICENSE NEWS README \
-	         $(GLIBC_TZ_PKG)/usr/share/doc/$(doc_dir_name) ; \
-	 )
-	# ======= Install the same to $(TARGET_DEST_DIR) =======
-	$(call install-into-devenv, $(GLIBC_TZ_PKG))
-	@touch $@
-
-$(GLIBC_TZ_PKG_DESCRIPTION_FILE): $(GLIBC_TZ_PKG_DESCRIPTION_FILE_IN)
-	@cat $< | $(SED) -e "s/@VERSION@/$(version)/g" \
-	        | $(SED) -e "s/@TZVERSION@/$(tz_version)/g" > $@
-
-$(pkg_certificate) : $(pkg_archive) ;
-$(pkg_signature)   : $(pkg_archive) ;
-$(pkg_description) : $(pkg_archive) ;
-
-$(pkg_archive): $(install_target) $(GLIBC_TZ_PKG_DESCRIPTION_FILE) $(GLIBC_TZ_PKG_INSTALL_SCRIPT)
-	@cp $(GLIBC_TZ_PKG_DESCRIPTION_FILE) $(GLIBC_TZ_PKG)/.DESCRIPTION
-	@cp $(GLIBC_TZ_PKG_INSTALL_SCRIPT) $(GLIBC_TZ_PKG)/.INSTALL
-	@$(BUILD_PKG_REQUIRES) $(GLIBC_TZ_PKG)/.REQUIRES
-	@echo "pkgname=$(GLIBC_TZ_PKG_NAME)"                            >  $(GLIBC_TZ_PKG)/.PKGINFO ; \
-	 echo "pkgver=$(GLIBC_TZ_PKG_VERSION)"                          >> $(GLIBC_TZ_PKG)/.PKGINFO ; \
-	 echo "arch=$(GLIBC_TZ_PKG_ARCH)"                               >> $(GLIBC_TZ_PKG)/.PKGINFO ; \
-	 echo "distroname=$(GLIBC_TZ_PKG_DISTRO_NAME)"                  >> $(GLIBC_TZ_PKG)/.PKGINFO ; \
-	 echo "distrover=$(GLIBC_TZ_PKG_DISTRO_VERSION)"                >> $(GLIBC_TZ_PKG)/.PKGINFO ; \
-	 echo "group=$(GLIBC_TZ_PKG_GROUP)"                             >> $(GLIBC_TZ_PKG)/.PKGINFO ; \
-	 echo "short_description=\"$(GLIBC_TZ_PKG_SHORT_DESCRIPTION)\"" >> $(GLIBC_TZ_PKG)/.PKGINFO ; \
-	 echo "url=$(GLIBC_TZ_PKG_URL)"                                 >> $(GLIBC_TZ_PKG)/.PKGINFO ; \
-	 echo "license=$(GLIBC_TZ_PKG_LICENSE)"                         >> $(GLIBC_TZ_PKG)/.PKGINFO
-	@$(PSEUDO) sh -c "cd $(GLIBC_TZ_PKG) && \
-	                  chown -R root:root . && \
-	                  $(MAKE_PACKAGE) -J --linkadd=yes $(GNUPG_OPTIONS) -m -d .. ."
Index: libs/glibc/2.37-zoneinfo/2023c
===================================================================
--- libs/glibc/2.37-zoneinfo/2023c	(revision 393)
+++ libs/glibc/2.37-zoneinfo/2023c	(nonexistent)

Property changes on: libs/glibc/2.37-zoneinfo/2023c
___________________________________________________________________
Deleted: svn:ignore
## -1,74 +0,0 ##
-
-# install dir
-dist
-
-# Target build dirs
-.a1x-newlib
-.a2x-newlib
-.at91sam7s-newlib
-
-.build-machine
-
-.a1x-glibc
-.a2x-glibc
-.h3-glibc
-.h5-glibc
-.i586-glibc
-.i686-glibc
-.imx6-glibc
-.jz47xx-glibc
-.makefile
-.am335x-glibc
-.omap543x-glibc
-.p5600-glibc
-.power8-glibc
-.power8le-glibc
-.power9-glibc
-.power9le-glibc
-.m1000-glibc
-.riscv64-glibc
-.rk328x-glibc
-.rk33xx-glibc
-.rk339x-glibc
-.rk358x-glibc
-.s8xx-glibc
-.s9xx-glibc
-.x86_64-glibc
-
-# Hidden files (each file)
-.makefile
-.dist
-.rootfs
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-.requires
-.requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Descriptions
-*.dsc
-*.txt
-
-# Default linux config files
-*.defconfig
-
-# backup copies
-*~
Index: libs/glibc/2.37-zoneinfo
===================================================================
--- libs/glibc/2.37-zoneinfo	(revision 393)
+++ libs/glibc/2.37-zoneinfo	(nonexistent)

Property changes on: libs/glibc/2.37-zoneinfo
___________________________________________________________________
Deleted: svn:ignore
## -1,73 +0,0 ##
-
-# install dir
-dist
-
-# Target build dirs
-.a1x-newlib
-.a2x-newlib
-.at91sam7s-newlib
-
-.build-machine
-
-.a1x-glibc
-.a2x-glibc
-.h3-glibc
-.h5-glibc
-.i586-glibc
-.i686-glibc
-.imx6-glibc
-.jz47xx-glibc
-.makefile
-.am335x-glibc
-.omap543x-glibc
-.p5600-glibc
-.power8-glibc
-.power8le-glibc
-.power9-glibc
-.power9le-glibc
-.m1000-glibc
-.riscv64-glibc
-.rk328x-glibc
-.rk33xx-glibc
-.rk339x-glibc
-.s8xx-glibc
-.s9xx-glibc
-.x86_64-glibc
-
-# Hidden files (each file)
-.makefile
-.dist
-.rootfs
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-.requires
-.requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Descriptions
-*.dsc
-*.txt
-
-# Default linux config files
-*.defconfig
-
-# backup copies
-*~
Index: libs/glibc/2.37/glibc-pkg-description.in
===================================================================
--- libs/glibc/2.37/glibc-pkg-description.in	(revision 393)
+++ libs/glibc/2.37/glibc-pkg-description.in	(nonexistent)
@@ -1,19 +0,0 @@
-# HOW TO EDIT THIS FILE:
-# The "handy ruler" below makes it easier to edit a package description.  Line
-# up the first '|' above the ':' following the base package name, and the '|'
-# on the right side marks the last column you can put a character in.  You must
-# make exactly 11 lines for the formatting to be correct.  It's also
-# customary to leave one space after the ':'.
-
-     |-----handy-ruler------------------------------------------------------|
-glibc: glibc @VERSION@ (GNU C libraries)
-glibc:
-glibc: This package contains the GNU C libraries and header files.
-glibc: The GNU C library was written originally by Roland McGrath,
-glibc: and is currently maintained by Ulrich Drepper. Some parts of
-glibc: the library were contributed or worked on by other people.
-glibc:
-glibc:
-glibc:
-glibc:
-glibc:
Index: libs/glibc/2.37/tz-exclude.list
===================================================================
--- libs/glibc/2.37/tz-exclude.list	(revision 393)
+++ libs/glibc/2.37/tz-exclude.list	(nonexistent)
@@ -1 +0,0 @@
-Makefile
Index: libs/glibc/2.37/profile.d/glibc.csh
===================================================================
--- libs/glibc/2.37/profile.d/glibc.csh	(revision 393)
+++ libs/glibc/2.37/profile.d/glibc.csh	(nonexistent)
@@ -1,9 +0,0 @@
-#!/bin/csh
-# Set more relaxed (glibc-2.3.5 like) malloc() checking.
-#
-# This relaxes the default paranoia level so that it reports
-# bugs, but does not kill the questionable process.  You can
-# get away with running broken programs with this setting,
-# but at a possible performance and security cost.
-#
-#setenv MALLOC_CHECK_ 1
Index: libs/glibc/2.37/profile.d/glibc.sh
===================================================================
--- libs/glibc/2.37/profile.d/glibc.sh	(revision 393)
+++ libs/glibc/2.37/profile.d/glibc.sh	(nonexistent)
@@ -1,8 +0,0 @@
-#!/bin/sh
-# Set more relaxed (glibc-2.3.5 like) malloc() checking.
-#
-# This relaxes the default paranoia level so that it reports
-# bugs, but does not kill the questionable process.  You can
-# get away with running broken programs with this setting,
-# but at a possible performance and security cost.
-#export MALLOC_CHECK_=1
Index: libs/glibc/2.37/profile.d
===================================================================
--- libs/glibc/2.37/profile.d	(revision 393)
+++ libs/glibc/2.37/profile.d	(nonexistent)

Property changes on: libs/glibc/2.37/profile.d
___________________________________________________________________
Deleted: svn:ignore
## -1,73 +0,0 ##
-
-# install dir
-dist
-
-# Target build dirs
-.a1x-newlib
-.a2x-newlib
-.at91sam7s-newlib
-
-.build-machine
-
-.a1x-glibc
-.a2x-glibc
-.h3-glibc
-.h5-glibc
-.i586-glibc
-.i686-glibc
-.imx6-glibc
-.jz47xx-glibc
-.makefile
-.am335x-glibc
-.omap543x-glibc
-.p5600-glibc
-.power8-glibc
-.power8le-glibc
-.power9-glibc
-.power9le-glibc
-.m1000-glibc
-.riscv64-glibc
-.rk328x-glibc
-.rk33xx-glibc
-.rk339x-glibc
-.s8xx-glibc
-.s9xx-glibc
-.x86_64-glibc
-
-# Hidden files (each file)
-.makefile
-.dist
-.rootfs
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-.requires
-.requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Descriptions
-*.dsc
-*.txt
-
-# Default linux config files
-*.defconfig
-
-# backup copies
-*~
Index: libs/glibc/2.37/glibc-pkg-install.sh
===================================================================
--- libs/glibc/2.37/glibc-pkg-install.sh	(revision 393)
+++ libs/glibc/2.37/glibc-pkg-install.sh	(nonexistent)
@@ -1,2219 +0,0 @@
-#!/bin/sh
-
-# Preserve new files
-install_file() {
-  NEW="$1"
-  OLD="`dirname $NEW`/`basename $NEW .new`"
-  # If there's no file by that name, mv it over:
-  if [ ! -r $OLD ]; then
-    mv $NEW $OLD
-  elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy
-    rm $NEW
-  fi
-  # Otherwise, we leave the .new copy for the admin to consider...
-}
-
-
-# arg 1:  the new package version
-pre_install() {
-  /bin/true
-}
-
-# arg 1:  the new package version
-post_install() {
-  install_file etc/nscd.conf.new
-  install_file etc/profile.d/glibc.csh.new
-  install_file etc/profile.d/glibc.sh.new
-  # ======= Clearly you already decided this issue. :-) =======
-  rm -f etc/profile.d/glibc.csh.new
-  rm -f etc/profile.d/glibc.sh.new
-
-  #
-  # NOTE:
-  #   'install-info' can work using relative paths and we can make use build machine
-  #   utility during installation to the some partition and use target 'install-info'
-  #   during installation directly on the running target machine.
-  #
-  if [ -x /usr/bin/install-info ] ; then
-    install-info --info-dir=usr/share/info usr/share/info/libc.info.gz 2>/dev/null
-  elif ! grep "(libc)" usr/share/info/dir 1> /dev/null 2> /dev/null ; then
-  cat << __EOF__ >> usr/share/info/dir
-
-GNU C library functions and macros
-* __fbufsize: (libc)Controlling Buffering.
-* __flbf: (libc)Controlling Buffering.
-* __fpending: (libc)Controlling Buffering.
-* __fpurge: (libc)Flushing Buffers.
-* __freadable: (libc)Opening Streams.
-* __freading: (libc)Opening Streams.
-* __fsetlocking: (libc)Streams and Threads.
-* __fwritable: (libc)Opening Streams.
-* __fwriting: (libc)Opening Streams.
-* __gconv_end_fct: (libc)glibc iconv Implementation.
-* __gconv_fct: (libc)glibc iconv Implementation.
-* __gconv_init_fct: (libc)glibc iconv Implementation.
-* __ppc_get_timebase_freq: (libc)PowerPC.
-* __ppc_get_timebase: (libc)PowerPC.
-* __ppc_mdoio: (libc)PowerPC.
-* __ppc_mdoom: (libc)PowerPC.
-* __ppc_set_ppr_low: (libc)PowerPC.
-* __ppc_set_ppr_med_high: (libc)PowerPC.
-* __ppc_set_ppr_med_low: (libc)PowerPC.
-* __ppc_set_ppr_med: (libc)PowerPC.
-* __ppc_set_ppr_very_low: (libc)PowerPC.
-* __ppc_yield: (libc)PowerPC.
-* __riscv_flush_icache: (libc)RISC-V.
-* __va_copy: (libc)Argument Macros.
-* __x86_get_cpuid_feature_leaf: (libc)X86.
-* _Complex_I: (libc)Complex Numbers.
-* _dl_find_object: (libc)Dynamic Linker Introspection.
-* _exit: (libc)Termination Internals.
-* _Exit: (libc)Termination Internals.
-* _flushlbf: (libc)Flushing Buffers.
-* _Fork: (libc)Creating a Process.
-* _Imaginary_I: (libc)Complex Numbers.
-* _IOFBF: (libc)Controlling Buffering.
-* _IOLBF: (libc)Controlling Buffering.
-* _IONBF: (libc)Controlling Buffering.
-* _PATH_UTMP: (libc)Manipulating the Database.
-* _PATH_WTMP: (libc)Manipulating the Database.
-* _POSIX2_C_DEV: (libc)System Options.
-* _POSIX2_C_VERSION: (libc)Version Supported.
-* _POSIX2_FORT_DEV: (libc)System Options.
-* _POSIX2_FORT_RUN: (libc)System Options.
-* _POSIX2_LOCALEDEF: (libc)System Options.
-* _POSIX2_SW_DEV: (libc)System Options.
-* _POSIX_CHOWN_RESTRICTED: (libc)Options for Files.
-* _POSIX_JOB_CONTROL: (libc)System Options.
-* _POSIX_NO_TRUNC: (libc)Options for Files.
-* _POSIX_SAVED_IDS: (libc)System Options.
-* _POSIX_VDISABLE: (libc)Options for Files.
-* _POSIX_VERSION: (libc)Version Supported.
-* _tolower: (libc)Case Conversion.
-* _toupper: (libc)Case Conversion.
-* a64l: (libc)Encode Binary Data.
-* abort: (libc)Aborting a Program.
-* abs: (libc)Absolute Value.
-* accept: (libc)Accepting Connections.
-* access: (libc)Testing File Access.
-* acosfNx: (libc)Inverse Trig Functions.
-* acosfN: (libc)Inverse Trig Functions.
-* acosf: (libc)Inverse Trig Functions.
-* acoshfNx: (libc)Hyperbolic Functions.
-* acoshfN: (libc)Hyperbolic Functions.
-* acoshf: (libc)Hyperbolic Functions.
-* acoshl: (libc)Hyperbolic Functions.
-* acosh: (libc)Hyperbolic Functions.
-* acosl: (libc)Inverse Trig Functions.
-* acos: (libc)Inverse Trig Functions.
-* addmntent: (libc)mtab.
-* addseverity: (libc)Adding Severity Classes.
-* adjtimex: (libc)Setting and Adjusting the Time.
-* adjtime: (libc)Setting and Adjusting the Time.
-* aio_cancel: (libc)Cancel AIO Operations.
-* aio_cancel64: (libc)Cancel AIO Operations.
-* aio_error: (libc)Status of AIO Operations.
-* aio_error64: (libc)Status of AIO Operations.
-* aio_fsync: (libc)Synchronizing AIO Operations.
-* aio_fsync64: (libc)Synchronizing AIO Operations.
-* aio_init: (libc)Configuration of AIO.
-* aio_read: (libc)Asynchronous Reads/Writes.
-* aio_read64: (libc)Asynchronous Reads/Writes.
-* aio_return: (libc)Status of AIO Operations.
-* aio_return64: (libc)Status of AIO Operations.
-* aio_suspend: (libc)Synchronizing AIO Operations.
-* aio_suspend64: (libc)Synchronizing AIO Operations.
-* aio_write: (libc)Asynchronous Reads/Writes.
-* aio_write64: (libc)Asynchronous Reads/Writes.
-* alarm: (libc)Setting an Alarm.
-* aligned_alloc: (libc)Aligned Memory Blocks.
-* alloca: (libc)Variable Size Automatic.
-* alphasort: (libc)Scanning Directory Content.
-* alphasort64: (libc)Scanning Directory Content.
-* ALTWERASE: (libc)Local Modes.
-* arc4random_buf: (libc)High Quality Random.
-* arc4random_uniform: (libc)High Quality Random.
-* arc4random: (libc)High Quality Random.
-* ARG_MAX: (libc)General Limits.
-* ARGP_ERR_UNKNOWN: (libc)Argp Parser Functions.
-* argp_error: (libc)Argp Helper Functions.
-* argp_failure: (libc)Argp Helper Functions.
-* argp_help: (libc)Argp Help.
-* argp_parse: (libc)Argp.
-* argp_state_help: (libc)Argp Helper Functions.
-* argp_usage: (libc)Argp Helper Functions.
-* argz_add_sep: (libc)Argz Functions.
-* argz_add: (libc)Argz Functions.
-* argz_append: (libc)Argz Functions.
-* argz_count: (libc)Argz Functions.
-* argz_create_sep: (libc)Argz Functions.
-* argz_create: (libc)Argz Functions.
-* argz_delete: (libc)Argz Functions.
-* argz_extract: (libc)Argz Functions.
-* argz_insert: (libc)Argz Functions.
-* argz_next: (libc)Argz Functions.
-* argz_replace: (libc)Argz Functions.
-* argz_stringify: (libc)Argz Functions.
-* asctime_r: (libc)Formatting Calendar Time.
-* asctime: (libc)Formatting Calendar Time.
-* asinfNx: (libc)Inverse Trig Functions.
-* asinfN: (libc)Inverse Trig Functions.
-* asinf: (libc)Inverse Trig Functions.
-* asinhfNx: (libc)Hyperbolic Functions.
-* asinhfN: (libc)Hyperbolic Functions.
-* asinhf: (libc)Hyperbolic Functions.
-* asinhl: (libc)Hyperbolic Functions.
-* asinh: (libc)Hyperbolic Functions.
-* asinl: (libc)Inverse Trig Functions.
-* asin: (libc)Inverse Trig Functions.
-* asprintf: (libc)Dynamic Output.
-* assert_perror: (libc)Consistency Checking.
-* assert: (libc)Consistency Checking.
-* atan2f: (libc)Inverse Trig Functions.
-* atan2: (libc)Inverse Trig Functions.
-* atanfNx: (libc)Inverse Trig Functions.
-* atanfN: (libc)Inverse Trig Functions.
-* atanf: (libc)Inverse Trig Functions.
-* atanhfNx: (libc)Hyperbolic Functions.
-* atanhfN: (libc)Hyperbolic Functions.
-* atanhf: (libc)Hyperbolic Functions.
-* atanhl: (libc)Hyperbolic Functions.
-* atanh: (libc)Hyperbolic Functions.
-* atanl: (libc)Inverse Trig Functions.
-* atan: (libc)Inverse Trig Functions.
-* atan2fNx: (libc)Inverse Trig Functions.
-* atan2fN: (libc)Inverse Trig Functions.
-* atan2l: (libc)Inverse Trig Functions.
-* atexit: (libc)Cleanups on Exit.
-* atof: (libc)Parsing of Floats.
-* atoi: (libc)Parsing of Integers.
-* atoll: (libc)Parsing of Integers.
-* atol: (libc)Parsing of Integers.
-* backtrace_symbols_fd: (libc)Backtraces.
-* backtrace_symbols: (libc)Backtraces.
-* backtrace: (libc)Backtraces.
-* basename: (libc)Finding Tokens in a String.
-* basename: (libc)Finding Tokens in a String.
-* BC_BASE_MAX: (libc)Utility Limits.
-* BC_DIM_MAX: (libc)Utility Limits.
-* BC_SCALE_MAX: (libc)Utility Limits.
-* BC_STRING_MAX: (libc)Utility Limits.
-* bcmp: (libc)String/Array Comparison.
-* bcopy: (libc)Copying Strings and Arrays.
-* bind_textdomain_codeset: (libc)Charset conversion in gettext.
-* bindtextdomain: (libc)Locating gettext catalog.
-* bind: (libc)Setting Address.
-* brk: (libc)Resizing the Data Segment.
-* BRKINT: (libc)Input Modes.
-* bsearch: (libc)Array Search Function.
-* btowc: (libc)Converting a Character.
-* BUFSIZ: (libc)Controlling Buffering.
-* bzero: (libc)Copying Strings and Arrays.
-* cabsfNx: (libc)Absolute Value.
-* cabsfN: (libc)Absolute Value.
-* cabsf: (libc)Absolute Value.
-* cabsl: (libc)Absolute Value.
-* cabs: (libc)Absolute Value.
-* cacosfNx: (libc)Inverse Trig Functions.
-* cacosfN: (libc)Inverse Trig Functions.
-* cacosf: (libc)Inverse Trig Functions.
-* cacoshfNx: (libc)Hyperbolic Functions.
-* cacoshfN: (libc)Hyperbolic Functions.
-* cacoshf: (libc)Hyperbolic Functions.
-* cacoshl: (libc)Hyperbolic Functions.
-* cacosh: (libc)Hyperbolic Functions.
-* cacosl: (libc)Inverse Trig Functions.
-* cacos: (libc)Inverse Trig Functions.
-* call_once: (libc)Call Once.
-* calloc: (libc)Allocating Cleared Space.
-* canonicalize_file_name: (libc)Symbolic Links.
-* canonicalizefNx: (libc)FP Bit Twiddling.
-* canonicalizefN: (libc)FP Bit Twiddling.
-* canonicalizef: (libc)FP Bit Twiddling.
-* canonicalizel: (libc)FP Bit Twiddling.
-* canonicalize: (libc)FP Bit Twiddling.
-* cargfNx: (libc)Operations on Complex.
-* cargfN: (libc)Operations on Complex.
-* cargf: (libc)Operations on Complex.
-* cargl: (libc)Operations on Complex.
-* carg: (libc)Operations on Complex.
-* casinfNx: (libc)Inverse Trig Functions.
-* casinfN: (libc)Inverse Trig Functions.
-* casinf: (libc)Inverse Trig Functions.
-* casinhfNx: (libc)Hyperbolic Functions.
-* casinhfN: (libc)Hyperbolic Functions.
-* casinhf: (libc)Hyperbolic Functions.
-* casinhl: (libc)Hyperbolic Functions.
-* casinh: (libc)Hyperbolic Functions.
-* casinl: (libc)Inverse Trig Functions.
-* casin: (libc)Inverse Trig Functions.
-* catanfNx: (libc)Inverse Trig Functions.
-* catanfN: (libc)Inverse Trig Functions.
-* catanf: (libc)Inverse Trig Functions.
-* catanhfNx: (libc)Hyperbolic Functions.
-* catanhfN: (libc)Hyperbolic Functions.
-* catanhf: (libc)Hyperbolic Functions.
-* catanhl: (libc)Hyperbolic Functions.
-* catanh: (libc)Hyperbolic Functions.
-* catanl: (libc)Inverse Trig Functions.
-* catan: (libc)Inverse Trig Functions.
-* catclose: (libc)The catgets Functions.
-* catgets: (libc)The catgets Functions.
-* catopen: (libc)The catgets Functions.
-* cbrtfNx: (libc)Exponents and Logarithms.
-* cbrtfN: (libc)Exponents and Logarithms.
-* cbrtf: (libc)Exponents and Logarithms.
-* cbrtl: (libc)Exponents and Logarithms.
-* cbrt: (libc)Exponents and Logarithms.
-* ccosfNx: (libc)Trig Functions.
-* ccosfN: (libc)Trig Functions.
-* ccosf: (libc)Trig Functions.
-* ccoshfNx: (libc)Hyperbolic Functions.
-* ccoshfN: (libc)Hyperbolic Functions.
-* ccoshf: (libc)Hyperbolic Functions.
-* ccoshl: (libc)Hyperbolic Functions.
-* ccosh: (libc)Hyperbolic Functions.
-* ccosl: (libc)Trig Functions.
-* ccos: (libc)Trig Functions.
-* CCTS_OFLOW: (libc)Control Modes.
-* ceilfNx: (libc)Rounding Functions.
-* ceilfN: (libc)Rounding Functions.
-* ceilf: (libc)Rounding Functions.
-* ceill: (libc)Rounding Functions.
-* ceil: (libc)Rounding Functions.
-* cexpfNx: (libc)Exponents and Logarithms.
-* cexpfN: (libc)Exponents and Logarithms.
-* cexpf: (libc)Exponents and Logarithms.
-* cexpl: (libc)Exponents and Logarithms.
-* cexp: (libc)Exponents and Logarithms.
-* cfgetispeed: (libc)Line Speed.
-* cfgetospeed: (libc)Line Speed.
-* cfmakeraw: (libc)Noncanonical Input.
-* cfsetispeed: (libc)Line Speed.
-* cfsetospeed: (libc)Line Speed.
-* cfsetspeed: (libc)Line Speed.
-* CHAR_BIT: (libc)Width of Type.
-* chdir: (libc)Working Directory.
-* CHILD_MAX: (libc)General Limits.
-* chmod: (libc)Setting Permissions.
-* chown: (libc)File Owner.
-* CIGNORE: (libc)Control Modes.
-* cimagfNx: (libc)Operations on Complex.
-* cimagfN: (libc)Operations on Complex.
-* cimagf: (libc)Operations on Complex.
-* cimagl: (libc)Operations on Complex.
-* cimag: (libc)Operations on Complex.
-* clearenv: (libc)Environment Access.
-* clearerr_unlocked: (libc)Error Recovery.
-* clearerr: (libc)Error Recovery.
-* CLK_TCK: (libc)Processor Time.
-* CLOCAL: (libc)Control Modes.
-* clock_getres: (libc)Getting the Time.
-* clock_gettime: (libc)Getting the Time.
-* CLOCK_MONOTONIC: (libc)Getting the Time.
-* CLOCK_REALTIME: (libc)Getting the Time.
-* clock_settime: (libc)Setting and Adjusting the Time.
-* clock: (libc)CPU Time.
-* CLOCKS_PER_SEC: (libc)CPU Time.
-* clog10fNx: (libc)Exponents and Logarithms.
-* clog10fN: (libc)Exponents and Logarithms.
-* clog10f: (libc)Exponents and Logarithms.
-* clog10l: (libc)Exponents and Logarithms.
-* clog10: (libc)Exponents and Logarithms.
-* clogfNx: (libc)Exponents and Logarithms.
-* clogfN: (libc)Exponents and Logarithms.
-* clogf: (libc)Exponents and Logarithms.
-* clogl: (libc)Exponents and Logarithms.
-* clog: (libc)Exponents and Logarithms.
-* close_range: (libc)Opening and Closing Files.
-* closedir: (libc)Reading/Closing Directory.
-* closefrom: (libc)Opening and Closing Files.
-* closelog: (libc)closelog.
-* close: (libc)Opening and Closing Files.
-* cnd_broadcast: (libc)ISO C Condition Variables.
-* cnd_destroy: (libc)ISO C Condition Variables.
-* cnd_init: (libc)ISO C Condition Variables.
-* cnd_signal: (libc)ISO C Condition Variables.
-* cnd_timedwait: (libc)ISO C Condition Variables.
-* cnd_wait: (libc)ISO C Condition Variables.
-* COLL_WEIGHTS_MAX: (libc)Utility Limits.
-* confstr: (libc)String Parameters.
-* conjfNx: (libc)Operations on Complex.
-* conjfN: (libc)Operations on Complex.
-* conjf: (libc)Operations on Complex.
-* conjl: (libc)Operations on Complex.
-* conj: (libc)Operations on Complex.
-* connect: (libc)Connecting.
-* copy_file_range: (libc)Copying File Data.
-* copysignfNx: (libc)FP Bit Twiddling.
-* copysignfN: (libc)FP Bit Twiddling.
-* copysignf: (libc)FP Bit Twiddling.
-* copysignl: (libc)FP Bit Twiddling.
-* copysign: (libc)FP Bit Twiddling.
-* cosfNx: (libc)Trig Functions.
-* cosfN: (libc)Trig Functions.
-* cosf: (libc)Trig Functions.
-* coshfNx: (libc)Hyperbolic Functions.
-* coshfN: (libc)Hyperbolic Functions.
-* coshf: (libc)Hyperbolic Functions.
-* coshl: (libc)Hyperbolic Functions.
-* cosh: (libc)Hyperbolic Functions.
-* cosl: (libc)Trig Functions.
-* cos: (libc)Trig Functions.
-* cpowfNx: (libc)Exponents and Logarithms.
-* cpowfN: (libc)Exponents and Logarithms.
-* cpowf: (libc)Exponents and Logarithms.
-* cpowl: (libc)Exponents and Logarithms.
-* cpow: (libc)Exponents and Logarithms.
-* cprojfNx: (libc)Operations on Complex.
-* cprojfN: (libc)Operations on Complex.
-* cprojf: (libc)Operations on Complex.
-* cprojl: (libc)Operations on Complex.
-* cproj: (libc)Operations on Complex.
-* CPU_CLR: (libc)CPU Affinity.
-* CPU_FEATURE_ACTIVE: (libc)X86.
-* CPU_FEATURE_PRESENT: (libc)X86.
-* CPU_ISSET: (libc)CPU Affinity.
-* CPU_SETSIZE: (libc)CPU Affinity.
-* CPU_SET: (libc)CPU Affinity.
-* CPU_ZERO: (libc)CPU Affinity.
-* CREAD: (libc)Control Modes.
-* crealfNx: (libc)Operations on Complex.
-* crealfN: (libc)Operations on Complex.
-* crealf: (libc)Operations on Complex.
-* creall: (libc)Operations on Complex.
-* creal: (libc)Operations on Complex.
-* creat: (libc)Opening and Closing Files.
-* creat64: (libc)Opening and Closing Files.
-* CRTS_IFLOW: (libc)Control Modes.
-* crypt_r: (libc)Passphrase Storage.
-* crypt: (libc)Passphrase Storage.
-* CS5: (libc)Control Modes.
-* CS6: (libc)Control Modes.
-* CS7: (libc)Control Modes.
-* CS8: (libc)Control Modes.
-* csinfNx: (libc)Trig Functions.
-* csinfN: (libc)Trig Functions.
-* csinf: (libc)Trig Functions.
-* csinhfNx: (libc)Hyperbolic Functions.
-* csinhfN: (libc)Hyperbolic Functions.
-* csinhf: (libc)Hyperbolic Functions.
-* csinhl: (libc)Hyperbolic Functions.
-* csinh: (libc)Hyperbolic Functions.
-* csinl: (libc)Trig Functions.
-* csin: (libc)Trig Functions.
-* CSIZE: (libc)Control Modes.
-* csqrtfNx: (libc)Exponents and Logarithms.
-* csqrtfN: (libc)Exponents and Logarithms.
-* csqrtf: (libc)Exponents and Logarithms.
-* csqrtl: (libc)Exponents and Logarithms.
-* csqrt: (libc)Exponents and Logarithms.
-* CSTOPB: (libc)Control Modes.
-* ctanfNx: (libc)Trig Functions.
-* ctanfN: (libc)Trig Functions.
-* ctanf: (libc)Trig Functions.
-* ctanhfNx: (libc)Hyperbolic Functions.
-* ctanhfN: (libc)Hyperbolic Functions.
-* ctanhf: (libc)Hyperbolic Functions.
-* ctanhl: (libc)Hyperbolic Functions.
-* ctanh: (libc)Hyperbolic Functions.
-* ctanl: (libc)Trig Functions.
-* ctan: (libc)Trig Functions.
-* ctermid: (libc)Identifying the Terminal.
-* ctime_r: (libc)Formatting Calendar Time.
-* ctime: (libc)Formatting Calendar Time.
-* cuserid: (libc)Who Logged In.
-* daddl: (libc)Misc FP Arithmetic.
-* dcgettext: (libc)Translation with gettext.
-* dcngettext: (libc)Advanced gettext functions.
-* ddivl: (libc)Misc FP Arithmetic.
-* dfmal: (libc)Misc FP Arithmetic.
-* dgettext: (libc)Translation with gettext.
-* difftime: (libc)Calculating Elapsed Time.
-* dirfd: (libc)Opening a Directory.
-* dirname: (libc)Finding Tokens in a String.
-* div: (libc)Integer Division.
-* DLFO_EH_SEGMENT_TYPE: (libc)Dynamic Linker Introspection.
-* DLFO_STRUCT_HAS_EH_COUNT: (libc)Dynamic Linker Introspection.
-* DLFO_STRUCT_HAS_EH_DBASE: (libc)Dynamic Linker Introspection.
-* dlinfo: (libc)Dynamic Linker Introspection.
-* dmull: (libc)Misc FP Arithmetic.
-* dngettext: (libc)Advanced gettext functions.
-* drand48_r: (libc)SVID Random.
-* drand48: (libc)SVID Random.
-* dremf: (libc)Remainder Functions.
-* dreml: (libc)Remainder Functions.
-* drem: (libc)Remainder Functions.
-* dsqrtl: (libc)Misc FP Arithmetic.
-* dsubl: (libc)Misc FP Arithmetic.
-* DTTOIF: (libc)Directory Entries.
-* dup: (libc)Duplicating Descriptors.
-* dup2: (libc)Duplicating Descriptors.
-* E2BIG: (libc)Error Codes.
-* EACCES: (libc)Error Codes.
-* EADDRINUSE: (libc)Error Codes.
-* EADDRNOTAVAIL: (libc)Error Codes.
-* EADV: (libc)Error Codes.
-* EAFNOSUPPORT: (libc)Error Codes.
-* EAGAIN: (libc)Error Codes.
-* EALREADY: (libc)Error Codes.
-* EAUTH: (libc)Error Codes.
-* EBACKGROUND: (libc)Error Codes.
-* EBADE: (libc)Error Codes.
-* EBADFD: (libc)Error Codes.
-* EBADF: (libc)Error Codes.
-* EBADMSG: (libc)Error Codes.
-* EBADRPC: (libc)Error Codes.
-* EBADRQC: (libc)Error Codes.
-* EBADR: (libc)Error Codes.
-* EBADSLT: (libc)Error Codes.
-* EBFONT: (libc)Error Codes.
-* EBUSY: (libc)Error Codes.
-* ECANCELED: (libc)Error Codes.
-* ECHILD: (libc)Error Codes.
-* ECHOCTL: (libc)Local Modes.
-* ECHOE: (libc)Local Modes.
-* ECHOKE: (libc)Local Modes.
-* ECHOK: (libc)Local Modes.
-* ECHONL: (libc)Local Modes.
-* ECHOPRT: (libc)Local Modes.
-* ECHO: (libc)Local Modes.
-* ECHRNG: (libc)Error Codes.
-* ECOMM: (libc)Error Codes.
-* ECONNABORTED: (libc)Error Codes.
-* ECONNREFUSED: (libc)Error Codes.
-* ECONNRESET: (libc)Error Codes.
-* ecvt_r: (libc)System V Number Conversion.
-* ecvt: (libc)System V Number Conversion.
-* EDEADLK: (libc)Error Codes.
-* EDEADLOCK: (libc)Error Codes.
-* EDESTADDRREQ: (libc)Error Codes.
-* EDIED: (libc)Error Codes.
-* EDOM: (libc)Error Codes.
-* EDOTDOT: (libc)Error Codes.
-* EDQUOT: (libc)Error Codes.
-* ED: (libc)Error Codes.
-* EEXIST: (libc)Error Codes.
-* EFAULT: (libc)Error Codes.
-* EFBIG: (libc)Error Codes.
-* EFTYPE: (libc)Error Codes.
-* EGRATUITOUS: (libc)Error Codes.
-* EGREGIOUS: (libc)Error Codes.
-* EHOSTDOWN: (libc)Error Codes.
-* EHOSTUNREACH: (libc)Error Codes.
-* EHWPOISON: (libc)Error Codes.
-* EIDRM: (libc)Error Codes.
-* EIEIO: (libc)Error Codes.
-* EILSEQ: (libc)Error Codes.
-* EINPROGRESS: (libc)Error Codes.
-* EINTR: (libc)Error Codes.
-* EINVAL: (libc)Error Codes.
-* EIO: (libc)Error Codes.
-* EISCONN: (libc)Error Codes.
-* EISDIR: (libc)Error Codes.
-* EISNAM: (libc)Error Codes.
-* EKEYEXPIRED: (libc)Error Codes.
-* EKEYREJECTED: (libc)Error Codes.
-* EKEYREVOKED: (libc)Error Codes.
-* EL2HLT: (libc)Error Codes.
-* EL2NSYNC: (libc)Error Codes.
-* EL3HLT: (libc)Error Codes.
-* EL3RST: (libc)Error Codes.
-* ELIBACC: (libc)Error Codes.
-* ELIBBAD: (libc)Error Codes.
-* ELIBEXEC: (libc)Error Codes.
-* ELIBMAX: (libc)Error Codes.
-* ELIBSCN: (libc)Error Codes.
-* ELNRNG: (libc)Error Codes.
-* ELOOP: (libc)Error Codes.
-* EMEDIUMTYPE: (libc)Error Codes.
-* EMFILE: (libc)Error Codes.
-* EMLINK: (libc)Error Codes.
-* EMSGSIZE: (libc)Error Codes.
-* EMULTIHOP: (libc)Error Codes.
-* ENAMETOOLONG: (libc)Error Codes.
-* ENAVAIL: (libc)Error Codes.
-* endfsent: (libc)fstab.
-* endgrent: (libc)Scanning All Groups.
-* endhostent: (libc)Host Names.
-* endmntent: (libc)mtab.
-* endnetent: (libc)Networks Database.
-* endnetgrent: (libc)Lookup Netgroup.
-* endprotoent: (libc)Protocols Database.
-* endpwent: (libc)Scanning All Users.
-* endservent: (libc)Services Database.
-* endutent: (libc)Manipulating the Database.
-* endutxent: (libc)XPG Functions.
-* ENEEDAUTH: (libc)Error Codes.
-* ENETDOWN: (libc)Error Codes.
-* ENETRESET: (libc)Error Codes.
-* ENETUNREACH: (libc)Error Codes.
-* ENFILE: (libc)Error Codes.
-* ENOANO: (libc)Error Codes.
-* ENOBUFS: (libc)Error Codes.
-* ENOCSI: (libc)Error Codes.
-* ENODATA: (libc)Error Codes.
-* ENODEV: (libc)Error Codes.
-* ENOENT: (libc)Error Codes.
-* ENOEXEC: (libc)Error Codes.
-* ENOKEY: (libc)Error Codes.
-* ENOLCK: (libc)Error Codes.
-* ENOLINK: (libc)Error Codes.
-* ENOMEDIUM: (libc)Error Codes.
-* ENOMEM: (libc)Error Codes.
-* ENOMSG: (libc)Error Codes.
-* ENONET: (libc)Error Codes.
-* ENOPKG: (libc)Error Codes.
-* ENOPROTOOPT: (libc)Error Codes.
-* ENOSPC: (libc)Error Codes.
-* ENOSR: (libc)Error Codes.
-* ENOSTR: (libc)Error Codes.
-* ENOSYS: (libc)Error Codes.
-* ENOTBLK: (libc)Error Codes.
-* ENOTCONN: (libc)Error Codes.
-* ENOTDIR: (libc)Error Codes.
-* ENOTEMPTY: (libc)Error Codes.
-* ENOTNAM: (libc)Error Codes.
-* ENOTRECOVERABLE: (libc)Error Codes.
-* ENOTSOCK: (libc)Error Codes.
-* ENOTSUP: (libc)Error Codes.
-* ENOTTY: (libc)Error Codes.
-* ENOTUNIQ: (libc)Error Codes.
-* envz_add: (libc)Envz Functions.
-* envz_entry: (libc)Envz Functions.
-* envz_get: (libc)Envz Functions.
-* envz_merge: (libc)Envz Functions.
-* envz_remove: (libc)Envz Functions.
-* envz_strip: (libc)Envz Functions.
-* ENXIO: (libc)Error Codes.
-* EOF: (libc)EOF and Errors.
-* EOPNOTSUPP: (libc)Error Codes.
-* EOVERFLOW: (libc)Error Codes.
-* EOWNERDEAD: (libc)Error Codes.
-* EPERM: (libc)Error Codes.
-* EPFNOSUPPORT: (libc)Error Codes.
-* EPIPE: (libc)Error Codes.
-* EPROCLIM: (libc)Error Codes.
-* EPROCUNAVAIL: (libc)Error Codes.
-* EPROGMISMATCH: (libc)Error Codes.
-* EPROGUNAVAIL: (libc)Error Codes.
-* EPROTONOSUPPORT: (libc)Error Codes.
-* EPROTOTYPE: (libc)Error Codes.
-* EPROTO: (libc)Error Codes.
-* EQUIV_CLASS_MAX: (libc)Utility Limits.
-* erand48_r: (libc)SVID Random.
-* erand48: (libc)SVID Random.
-* ERANGE: (libc)Error Codes.
-* EREMCHG: (libc)Error Codes.
-* EREMOTEIO: (libc)Error Codes.
-* EREMOTE: (libc)Error Codes.
-* ERESTART: (libc)Error Codes.
-* erfcfNx: (libc)Special Functions.
-* erfcfN: (libc)Special Functions.
-* erfcf: (libc)Special Functions.
-* erfcl: (libc)Special Functions.
-* erfc: (libc)Special Functions.
-* erffNx: (libc)Special Functions.
-* erffN: (libc)Special Functions.
-* erff: (libc)Special Functions.
-* ERFKILL: (libc)Error Codes.
-* erfl: (libc)Special Functions.
-* erf: (libc)Special Functions.
-* EROFS: (libc)Error Codes.
-* ERPCMISMATCH: (libc)Error Codes.
-* errno: (libc)Checking for Errors.
-* error_at_line: (libc)Error Messages.
-* error: (libc)Error Messages.
-* errx: (libc)Error Messages.
-* err: (libc)Error Messages.
-* ESHUTDOWN: (libc)Error Codes.
-* ESOCKTNOSUPPORT: (libc)Error Codes.
-* ESPIPE: (libc)Error Codes.
-* ESRCH: (libc)Error Codes.
-* ESRMNT: (libc)Error Codes.
-* ESTALE: (libc)Error Codes.
-* ESTRPIPE: (libc)Error Codes.
-* ETIMEDOUT: (libc)Error Codes.
-* ETIME: (libc)Error Codes.
-* ETOOMANYREFS: (libc)Error Codes.
-* ETXTBSY: (libc)Error Codes.
-* EUCLEAN: (libc)Error Codes.
-* EUNATCH: (libc)Error Codes.
-* EUSERS: (libc)Error Codes.
-* EWOULDBLOCK: (libc)Error Codes.
-* EXDEV: (libc)Error Codes.
-* execle: (libc)Executing a File.
-* execlp: (libc)Executing a File.
-* execl: (libc)Executing a File.
-* execve: (libc)Executing a File.
-* execvp: (libc)Executing a File.
-* execv: (libc)Executing a File.
-* EXFULL: (libc)Error Codes.
-* exit: (libc)Normal Termination.
-* EXIT_FAILURE: (libc)Exit Status.
-* EXIT_SUCCESS: (libc)Exit Status.
-* exp10fNx: (libc)Exponents and Logarithms.
-* exp10fN: (libc)Exponents and Logarithms.
-* exp10f: (libc)Exponents and Logarithms.
-* exp10l: (libc)Exponents and Logarithms.
-* exp10: (libc)Exponents and Logarithms.
-* exp2f: (libc)Exponents and Logarithms.
-* exp2: (libc)Exponents and Logarithms.
-* expfNx: (libc)Exponents and Logarithms.
-* expfN: (libc)Exponents and Logarithms.
-* expf: (libc)Exponents and Logarithms.
-* explicit_bzero: (libc)Erasing Sensitive Data.
-* expl: (libc)Exponents and Logarithms.
-* expm1fNx: (libc)Exponents and Logarithms.
-* expm1fN: (libc)Exponents and Logarithms.
-* expm1f: (libc)Exponents and Logarithms.
-* expm1l: (libc)Exponents and Logarithms.
-* expm1: (libc)Exponents and Logarithms.
-* exp: (libc)Exponents and Logarithms.
-* exp2fNx: (libc)Exponents and Logarithms.
-* exp2fN: (libc)Exponents and Logarithms.
-* exp2l: (libc)Exponents and Logarithms.
-* EXPR_NEST_MAX: (libc)Utility Limits.
-* F_DUPFD: (libc)Duplicating Descriptors.
-* F_GETFD: (libc)Descriptor Flags.
-* F_GETFL: (libc)Getting File Status Flags.
-* F_GETLK: (libc)File Locks.
-* F_GETOWN: (libc)Interrupt Input.
-* F_OFD_GETLK: (libc)Open File Description Locks.
-* F_OFD_SETLKW: (libc)Open File Description Locks.
-* F_OFD_SETLK: (libc)Open File Description Locks.
-* F_OK: (libc)Testing File Access.
-* F_SETFD: (libc)Descriptor Flags.
-* F_SETFL: (libc)Getting File Status Flags.
-* F_SETLKW: (libc)File Locks.
-* F_SETLK: (libc)File Locks.
-* F_SETOWN: (libc)Interrupt Input.
-* fabsfNx: (libc)Absolute Value.
-* fabsfN: (libc)Absolute Value.
-* fabsf: (libc)Absolute Value.
-* fabsl: (libc)Absolute Value.
-* fabs: (libc)Absolute Value.
-* faddl: (libc)Misc FP Arithmetic.
-* fadd: (libc)Misc FP Arithmetic.
-* fchdir: (libc)Working Directory.
-* fchmod: (libc)Setting Permissions.
-* fchown: (libc)File Owner.
-* fcloseall: (libc)Closing Streams.
-* fclose: (libc)Closing Streams.
-* fcntl: (libc)Control Operations.
-* fcvt_r: (libc)System V Number Conversion.
-* fcvt: (libc)System V Number Conversion.
-* FD_CLOEXEC: (libc)Descriptor Flags.
-* FD_CLR: (libc)Waiting for I/O.
-* FD_ISSET: (libc)Waiting for I/O.
-* FD_SETSIZE: (libc)Waiting for I/O.
-* FD_SET: (libc)Waiting for I/O.
-* FD_ZERO: (libc)Waiting for I/O.
-* fdatasync: (libc)Synchronizing I/O.
-* fdimfNx: (libc)Misc FP Arithmetic.
-* fdimfN: (libc)Misc FP Arithmetic.
-* fdimf: (libc)Misc FP Arithmetic.
-* fdiml: (libc)Misc FP Arithmetic.
-* fdim: (libc)Misc FP Arithmetic.
-* fdivl: (libc)Misc FP Arithmetic.
-* fdiv: (libc)Misc FP Arithmetic.
-* fdopendir: (libc)Opening a Directory.
-* fdopen: (libc)Descriptors and Streams.
-* FE_SNANS_ALWAYS_SIGNAL: (libc)Infinity and NaN.
-* feclearexcept: (libc)Status bit operations.
-* fedisableexcept: (libc)Control Functions.
-* feenableexcept: (libc)Control Functions.
-* fegetenv: (libc)Control Functions.
-* fegetexceptflag: (libc)Status bit operations.
-* fegetexcept: (libc)Control Functions.
-* fegetmode: (libc)Control Functions.
-* fegetround: (libc)Rounding.
-* feholdexcept: (libc)Control Functions.
-* feof_unlocked: (libc)EOF and Errors.
-* feof: (libc)EOF and Errors.
-* feraiseexcept: (libc)Status bit operations.
-* ferror_unlocked: (libc)EOF and Errors.
-* ferror: (libc)EOF and Errors.
-* fesetenv: (libc)Control Functions.
-* fesetexceptflag: (libc)Status bit operations.
-* fesetexcept: (libc)Status bit operations.
-* fesetmode: (libc)Control Functions.
-* fesetround: (libc)Rounding.
-* fetestexceptflag: (libc)Status bit operations.
-* fetestexcept: (libc)Status bit operations.
-* feupdateenv: (libc)Control Functions.
-* fexecve: (libc)Executing a File.
-* fflush_unlocked: (libc)Flushing Buffers.
-* fflush: (libc)Flushing Buffers.
-* ffmal: (libc)Misc FP Arithmetic.
-* ffma: (libc)Misc FP Arithmetic.
-* fgetc_unlocked: (libc)Character Input.
-* fgetc: (libc)Character Input.
-* fgetgrent_r: (libc)Scanning All Groups.
-* fgetgrent: (libc)Scanning All Groups.
-* fgetpos: (libc)Portable Positioning.
-* fgetpos64: (libc)Portable Positioning.
-* fgetpwent_r: (libc)Scanning All Users.
-* fgetpwent: (libc)Scanning All Users.
-* fgets_unlocked: (libc)Line Input.
-* fgets: (libc)Line Input.
-* fgetwc_unlocked: (libc)Character Input.
-* fgetwc: (libc)Character Input.
-* fgetws_unlocked: (libc)Line Input.
-* fgetws: (libc)Line Input.
-* FILENAME_MAX: (libc)Limits for Files.
-* fileno_unlocked: (libc)Descriptors and Streams.
-* fileno: (libc)Descriptors and Streams.
-* finitef: (libc)Floating Point Classes.
-* finitel: (libc)Floating Point Classes.
-* finite: (libc)Floating Point Classes.
-* flockfile: (libc)Streams and Threads.
-* floorfNx: (libc)Rounding Functions.
-* floorfN: (libc)Rounding Functions.
-* floorf: (libc)Rounding Functions.
-* floorl: (libc)Rounding Functions.
-* floor: (libc)Rounding Functions.
-* FLUSHO: (libc)Local Modes.
-* fMaddfNx: (libc)Misc FP Arithmetic.
-* fMaddfN: (libc)Misc FP Arithmetic.
-* fmafNx: (libc)Misc FP Arithmetic.
-* fmafN: (libc)Misc FP Arithmetic.
-* fmaf: (libc)Misc FP Arithmetic.
-* fmal: (libc)Misc FP Arithmetic.
-* fmaxfNx: (libc)Misc FP Arithmetic.
-* fmaxfN: (libc)Misc FP Arithmetic.
-* fmaxf: (libc)Misc FP Arithmetic.
-* fmaximum_mag_numfNx: (libc)Misc FP Arithmetic.
-* fmaximum_mag_numfN: (libc)Misc FP Arithmetic.
-* fmaximum_mag_numf: (libc)Misc FP Arithmetic.
-* fmaximum_mag_numl: (libc)Misc FP Arithmetic.
-* fmaximum_mag_num: (libc)Misc FP Arithmetic.
-* fmaximum_magfNx: (libc)Misc FP Arithmetic.
-* fmaximum_magfN: (libc)Misc FP Arithmetic.
-* fmaximum_magf: (libc)Misc FP Arithmetic.
-* fmaximum_magl: (libc)Misc FP Arithmetic.
-* fmaximum_mag: (libc)Misc FP Arithmetic.
-* fmaximum_numfNx: (libc)Misc FP Arithmetic.
-* fmaximum_numfN: (libc)Misc FP Arithmetic.
-* fmaximum_numf: (libc)Misc FP Arithmetic.
-* fmaximum_numl: (libc)Misc FP Arithmetic.
-* fmaximum_num: (libc)Misc FP Arithmetic.
-* fmaximumfNx: (libc)Misc FP Arithmetic.
-* fmaximumfN: (libc)Misc FP Arithmetic.
-* fmaximumf: (libc)Misc FP Arithmetic.
-* fmaximuml: (libc)Misc FP Arithmetic.
-* fmaximum: (libc)Misc FP Arithmetic.
-* fmaxl: (libc)Misc FP Arithmetic.
-* fmaxmagfNx: (libc)Misc FP Arithmetic.
-* fmaxmagfN: (libc)Misc FP Arithmetic.
-* fmaxmagf: (libc)Misc FP Arithmetic.
-* fmaxmagl: (libc)Misc FP Arithmetic.
-* fmaxmag: (libc)Misc FP Arithmetic.
-* fmax: (libc)Misc FP Arithmetic.
-* fma: (libc)Misc FP Arithmetic.
-* fMdivfNx: (libc)Misc FP Arithmetic.
-* fMdivfN: (libc)Misc FP Arithmetic.
-* fmemopen: (libc)String Streams.
-* fMfmafNx: (libc)Misc FP Arithmetic.
-* fMfmafN: (libc)Misc FP Arithmetic.
-* fminfNx: (libc)Misc FP Arithmetic.
-* fminfN: (libc)Misc FP Arithmetic.
-* fminf: (libc)Misc FP Arithmetic.
-* fminimum_mag_numfNx: (libc)Misc FP Arithmetic.
-* fminimum_mag_numfN: (libc)Misc FP Arithmetic.
-* fminimum_mag_numf: (libc)Misc FP Arithmetic.
-* fminimum_mag_numl: (libc)Misc FP Arithmetic.
-* fminimum_mag_num: (libc)Misc FP Arithmetic.
-* fminimum_magfNx: (libc)Misc FP Arithmetic.
-* fminimum_magfN: (libc)Misc FP Arithmetic.
-* fminimum_magf: (libc)Misc FP Arithmetic.
-* fminimum_magl: (libc)Misc FP Arithmetic.
-* fminimum_mag: (libc)Misc FP Arithmetic.
-* fminimum_numfNx: (libc)Misc FP Arithmetic.
-* fminimum_numfN: (libc)Misc FP Arithmetic.
-* fminimum_numf: (libc)Misc FP Arithmetic.
-* fminimum_numl: (libc)Misc FP Arithmetic.
-* fminimum_num: (libc)Misc FP Arithmetic.
-* fminimumfNx: (libc)Misc FP Arithmetic.
-* fminimumfN: (libc)Misc FP Arithmetic.
-* fminimumf: (libc)Misc FP Arithmetic.
-* fminimuml: (libc)Misc FP Arithmetic.
-* fminimum: (libc)Misc FP Arithmetic.
-* fminl: (libc)Misc FP Arithmetic.
-* fminmagfNx: (libc)Misc FP Arithmetic.
-* fminmagfN: (libc)Misc FP Arithmetic.
-* fminmagf: (libc)Misc FP Arithmetic.
-* fminmagl: (libc)Misc FP Arithmetic.
-* fminmag: (libc)Misc FP Arithmetic.
-* fmin: (libc)Misc FP Arithmetic.
-* fMmulfNx: (libc)Misc FP Arithmetic.
-* fMmulfN: (libc)Misc FP Arithmetic.
-* fmodfNx: (libc)Remainder Functions.
-* fmodfN: (libc)Remainder Functions.
-* fmodf: (libc)Remainder Functions.
-* fmodl: (libc)Remainder Functions.
-* fmod: (libc)Remainder Functions.
-* fMsqrtfNx: (libc)Misc FP Arithmetic.
-* fMsqrtfN: (libc)Misc FP Arithmetic.
-* fMsubfNx: (libc)Misc FP Arithmetic.
-* fMsubfN: (libc)Misc FP Arithmetic.
-* fmtmsg: (libc)Printing Formatted Messages.
-* fmull: (libc)Misc FP Arithmetic.
-* fmul: (libc)Misc FP Arithmetic.
-* fMxaddfNx: (libc)Misc FP Arithmetic.
-* fMxaddfN: (libc)Misc FP Arithmetic.
-* fMxdivfNx: (libc)Misc FP Arithmetic.
-* fMxdivfN: (libc)Misc FP Arithmetic.
-* fMxfmafNx: (libc)Misc FP Arithmetic.
-* fMxfmafN: (libc)Misc FP Arithmetic.
-* fMxmulfNx: (libc)Misc FP Arithmetic.
-* fMxmulfN: (libc)Misc FP Arithmetic.
-* fMxsqrtfNx: (libc)Misc FP Arithmetic.
-* fMxsqrtfN: (libc)Misc FP Arithmetic.
-* fMxsubfNx: (libc)Misc FP Arithmetic.
-* fMxsubfN: (libc)Misc FP Arithmetic.
-* fnmatch: (libc)Wildcard Matching.
-* FOPEN_MAX: (libc)Opening Streams.
-* fopencookie: (libc)Streams and Cookies.
-* fopen: (libc)Opening Streams.
-* fopen64: (libc)Opening Streams.
-* forkpty: (libc)Pseudo-Terminal Pairs.
-* fork: (libc)Creating a Process.
-* FP_ILOGB0: (libc)Exponents and Logarithms.
-* FP_ILOGBNAN: (libc)Exponents and Logarithms.
-* FP_LLOGB0: (libc)Exponents and Logarithms.
-* FP_LLOGBNAN: (libc)Exponents and Logarithms.
-* fpathconf: (libc)Pathconf.
-* fpclassify: (libc)Floating Point Classes.
-* fprintf: (libc)Formatted Output Functions.
-* fputc_unlocked: (libc)Simple Output.
-* fputc: (libc)Simple Output.
-* fputs_unlocked: (libc)Simple Output.
-* fputs: (libc)Simple Output.
-* fputwc_unlocked: (libc)Simple Output.
-* fputwc: (libc)Simple Output.
-* fputws_unlocked: (libc)Simple Output.
-* fputws: (libc)Simple Output.
-* fread_unlocked: (libc)Block Input/Output.
-* fread: (libc)Block Input/Output.
-* free: (libc)Freeing after Malloc.
-* freopen: (libc)Opening Streams.
-* freopen64: (libc)Opening Streams.
-* frexpfNx: (libc)Normalization Functions.
-* frexpfN: (libc)Normalization Functions.
-* frexpf: (libc)Normalization Functions.
-* frexpl: (libc)Normalization Functions.
-* frexp: (libc)Normalization Functions.
-* fromfpfNx: (libc)Rounding Functions.
-* fromfpfN: (libc)Rounding Functions.
-* fromfpf: (libc)Rounding Functions.
-* fromfpl: (libc)Rounding Functions.
-* fromfpxfNx: (libc)Rounding Functions.
-* fromfpxfN: (libc)Rounding Functions.
-* fromfpxf: (libc)Rounding Functions.
-* fromfpxl: (libc)Rounding Functions.
-* fromfpx: (libc)Rounding Functions.
-* fromfp: (libc)Rounding Functions.
-* fscanf: (libc)Formatted Input Functions.
-* fseeko: (libc)File Positioning.
-* fseeko64: (libc)File Positioning.
-* fseek: (libc)File Positioning.
-* fsetpos: (libc)Portable Positioning.
-* fsetpos64: (libc)Portable Positioning.
-* fsqrtl: (libc)Misc FP Arithmetic.
-* fsqrt: (libc)Misc FP Arithmetic.
-* fstat: (libc)Reading Attributes.
-* fstat64: (libc)Reading Attributes.
-* fsubl: (libc)Misc FP Arithmetic.
-* fsub: (libc)Misc FP Arithmetic.
-* fsync: (libc)Synchronizing I/O.
-* ftello: (libc)File Positioning.
-* ftello64: (libc)File Positioning.
-* ftell: (libc)File Positioning.
-* ftruncate: (libc)File Size.
-* ftruncate64: (libc)File Size.
-* ftrylockfile: (libc)Streams and Threads.
-* ftw: (libc)Working with Directory Trees.
-* ftw64: (libc)Working with Directory Trees.
-* funlockfile: (libc)Streams and Threads.
-* futimes: (libc)File Times.
-* fwide: (libc)Streams and I18N.
-* fwprintf: (libc)Formatted Output Functions.
-* fwrite_unlocked: (libc)Block Input/Output.
-* fwrite: (libc)Block Input/Output.
-* fwscanf: (libc)Formatted Input Functions.
-* gammaf: (libc)Special Functions.
-* gammal: (libc)Special Functions.
-* gamma: (libc)Special Functions.
-* gcvt: (libc)System V Number Conversion.
-* get_avphys_pages: (libc)Query Memory Parameters.
-* get_current_dir_name: (libc)Working Directory.
-* get_nprocs_conf: (libc)Processor Resources.
-* get_nprocs: (libc)Processor Resources.
-* get_phys_pages: (libc)Query Memory Parameters.
-* getauxval: (libc)Auxiliary Vector.
-* getc_unlocked: (libc)Character Input.
-* getchar_unlocked: (libc)Character Input.
-* getchar: (libc)Character Input.
-* getcontext: (libc)System V contexts.
-* getcpu: (libc)CPU Affinity.
-* getcwd: (libc)Working Directory.
-* getc: (libc)Character Input.
-* getdate_r: (libc)General Time String Parsing.
-* getdate: (libc)General Time String Parsing.
-* getdelim: (libc)Line Input.
-* getdents64: (libc)Low-level Directory Access.
-* getdomainnname: (libc)Host Identification.
-* getegid: (libc)Reading Persona.
-* getentropy: (libc)Unpredictable Bytes.
-* getenv: (libc)Environment Access.
-* geteuid: (libc)Reading Persona.
-* getfsent: (libc)fstab.
-* getfsfile: (libc)fstab.
-* getfsspec: (libc)fstab.
-* getgid: (libc)Reading Persona.
-* getgrent_r: (libc)Scanning All Groups.
-* getgrent: (libc)Scanning All Groups.
-* getgrgid_r: (libc)Lookup Group.
-* getgrgid: (libc)Lookup Group.
-* getgrnam_r: (libc)Lookup Group.
-* getgrnam: (libc)Lookup Group.
-* getgrouplist: (libc)Setting Groups.
-* getgroups: (libc)Reading Persona.
-* gethostbyaddr_r: (libc)Host Names.
-* gethostbyaddr: (libc)Host Names.
-* gethostbyname2_r: (libc)Host Names.
-* gethostbyname2: (libc)Host Names.
-* gethostbyname_r: (libc)Host Names.
-* gethostbyname: (libc)Host Names.
-* gethostent: (libc)Host Names.
-* gethostid: (libc)Host Identification.
-* gethostname: (libc)Host Identification.
-* getitimer: (libc)Setting an Alarm.
-* getline: (libc)Line Input.
-* getloadavg: (libc)Processor Resources.
-* getlogin: (libc)Who Logged In.
-* getmntent_r: (libc)mtab.
-* getmntent: (libc)mtab.
-* getnetbyaddr: (libc)Networks Database.
-* getnetbyname: (libc)Networks Database.
-* getnetent: (libc)Networks Database.
-* getnetgrent_r: (libc)Lookup Netgroup.
-* getnetgrent: (libc)Lookup Netgroup.
-* getopt_long_only: (libc)Getopt Long Options.
-* getopt_long: (libc)Getopt Long Options.
-* getopt: (libc)Using Getopt.
-* getpagesize: (libc)Query Memory Parameters.
-* getpass: (libc)getpass.
-* getpayloadfNx: (libc)FP Bit Twiddling.
-* getpayloadfN: (libc)FP Bit Twiddling.
-* getpayloadf: (libc)FP Bit Twiddling.
-* getpayloadl: (libc)FP Bit Twiddling.
-* getpayload: (libc)FP Bit Twiddling.
-* getpeername: (libc)Who is Connected.
-* getpgid: (libc)Process Group Functions.
-* getpgrp: (libc)Process Group Functions.
-* getpid: (libc)Process Identification.
-* getppid: (libc)Process Identification.
-* getpriority: (libc)Traditional Scheduling Functions.
-* getprotobyname: (libc)Protocols Database.
-* getprotobynumber: (libc)Protocols Database.
-* getprotoent: (libc)Protocols Database.
-* getpt: (libc)Allocation.
-* getpwent_r: (libc)Scanning All Users.
-* getpwent: (libc)Scanning All Users.
-* getpwnam_r: (libc)Lookup User.
-* getpwnam: (libc)Lookup User.
-* getpwuid_r: (libc)Lookup User.
-* getpwuid: (libc)Lookup User.
-* getrandom: (libc)Unpredictable Bytes.
-* getrlimit: (libc)Limits on Resources.
-* getrlimit64: (libc)Limits on Resources.
-* getrusage: (libc)Resource Usage.
-* getservbyname: (libc)Services Database.
-* getservbyport: (libc)Services Database.
-* getservent: (libc)Services Database.
-* getsid: (libc)Process Group Functions.
-* getsockname: (libc)Reading Address.
-* getsockopt: (libc)Socket Option Functions.
-* getsubopt: (libc)Suboptions.
-* gets: (libc)Line Input.
-* gettext: (libc)Translation with gettext.
-* gettid: (libc)Process Identification.
-* gettimeofday: (libc)Getting the Time.
-* getuid: (libc)Reading Persona.
-* getumask: (libc)Setting Permissions.
-* getutent_r: (libc)Manipulating the Database.
-* getutent: (libc)Manipulating the Database.
-* getutid_r: (libc)Manipulating the Database.
-* getutid: (libc)Manipulating the Database.
-* getutline_r: (libc)Manipulating the Database.
-* getutline: (libc)Manipulating the Database.
-* getutmpx: (libc)XPG Functions.
-* getutmp: (libc)XPG Functions.
-* getutxent: (libc)XPG Functions.
-* getutxid: (libc)XPG Functions.
-* getutxline: (libc)XPG Functions.
-* getwc_unlocked: (libc)Character Input.
-* getwchar_unlocked: (libc)Character Input.
-* getwchar: (libc)Character Input.
-* getwc: (libc)Character Input.
-* getwd: (libc)Working Directory.
-* getw: (libc)Character Input.
-* globfree: (libc)More Flags for Globbing.
-* globfree64: (libc)More Flags for Globbing.
-* glob: (libc)Calling Glob.
-* glob64: (libc)Calling Glob.
-* gmtime_r: (libc)Broken-down Time.
-* gmtime: (libc)Broken-down Time.
-* grantpt: (libc)Allocation.
-* gsignal: (libc)Signaling Yourself.
-* gtty: (libc)BSD Terminal Modes.
-* hasmntopt: (libc)mtab.
-* hcreate_r: (libc)Hash Search Function.
-* hcreate: (libc)Hash Search Function.
-* hdestroy_r: (libc)Hash Search Function.
-* hdestroy: (libc)Hash Search Function.
-* hsearch_r: (libc)Hash Search Function.
-* hsearch: (libc)Hash Search Function.
-* htonl: (libc)Byte Order.
-* htons: (libc)Byte Order.
-* HUGE_VAL_FNx: (libc)Math Error Reporting.
-* HUGE_VAL_FN: (libc)Math Error Reporting.
-* HUGE_VALF: (libc)Math Error Reporting.
-* HUGE_VALL: (libc)Math Error Reporting.
-* HUGE_VAL: (libc)Math Error Reporting.
-* HUPCL: (libc)Control Modes.
-* hypotfNx: (libc)Exponents and Logarithms.
-* hypotfN: (libc)Exponents and Logarithms.
-* hypotf: (libc)Exponents and Logarithms.
-* hypotl: (libc)Exponents and Logarithms.
-* hypot: (libc)Exponents and Logarithms.
-* ICANON: (libc)Local Modes.
-* iconv_close: (libc)Generic Conversion Interface.
-* iconv_open: (libc)Generic Conversion Interface.
-* iconv: (libc)Generic Conversion Interface.
-* ICRNL: (libc)Input Modes.
-* IEXTEN: (libc)Local Modes.
-* if_freenameindex: (libc)Interface Naming.
-* if_indextoname: (libc)Interface Naming.
-* if_nameindex: (libc)Interface Naming.
-* if_nametoindex: (libc)Interface Naming.
-* IFNAMSIZ: (libc)Interface Naming.
-* IFTODT: (libc)Directory Entries.
-* IGNBRK: (libc)Input Modes.
-* IGNCR: (libc)Input Modes.
-* IGNPAR: (libc)Input Modes.
-* ilogbfNx: (libc)Exponents and Logarithms.
-* ilogbfN: (libc)Exponents and Logarithms.
-* ilogbf: (libc)Exponents and Logarithms.
-* ilogbl: (libc)Exponents and Logarithms.
-* ilogb: (libc)Exponents and Logarithms.
-* imaxabs: (libc)Absolute Value.
-* IMAXBEL: (libc)Input Modes.
-* imaxdiv: (libc)Integer Division.
-* in6addr_any: (libc)Host Address Data Type.
-* in6addr_loopback: (libc)Host Address Data Type.
-* INADDR_ANY: (libc)Host Address Data Type.
-* INADDR_BROADCAST: (libc)Host Address Data Type.
-* INADDR_LOOPBACK: (libc)Host Address Data Type.
-* INADDR_NONE: (libc)Host Address Data Type.
-* index: (libc)Search Functions.
-* inet_addr: (libc)Host Address Functions.
-* inet_aton: (libc)Host Address Functions.
-* inet_lnaof: (libc)Host Address Functions.
-* inet_makeaddr: (libc)Host Address Functions.
-* inet_netof: (libc)Host Address Functions.
-* inet_network: (libc)Host Address Functions.
-* inet_ntoa: (libc)Host Address Functions.
-* inet_ntop: (libc)Host Address Functions.
-* inet_pton: (libc)Host Address Functions.
-* INFINITY: (libc)Infinity and NaN.
-* initgroups: (libc)Setting Groups.
-* initstate_r: (libc)BSD Random.
-* initstate: (libc)BSD Random.
-* INLCR: (libc)Input Modes.
-* innetgr: (libc)Netgroup Membership.
-* INPCK: (libc)Input Modes.
-* ioctl: (libc)IOCTLs.
-* IPPORT_RESERVED: (libc)Ports.
-* IPPORT_USERRESERVED: (libc)Ports.
-* isalnum: (libc)Classification of Characters.
-* isalpha: (libc)Classification of Characters.
-* isascii: (libc)Classification of Characters.
-* isatty: (libc)Is It a Terminal.
-* isblank: (libc)Classification of Characters.
-* iscanonical: (libc)Floating Point Classes.
-* iscntrl: (libc)Classification of Characters.
-* isdigit: (libc)Classification of Characters.
-* iseqsig: (libc)FP Comparison Functions.
-* isfinite: (libc)Floating Point Classes.
-* isgraph: (libc)Classification of Characters.
-* isgreaterequal: (libc)FP Comparison Functions.
-* isgreater: (libc)FP Comparison Functions.
-* ISIG: (libc)Local Modes.
-* isinff: (libc)Floating Point Classes.
-* isinfl: (libc)Floating Point Classes.
-* isinf: (libc)Floating Point Classes.
-* islessequal: (libc)FP Comparison Functions.
-* islessgreater: (libc)FP Comparison Functions.
-* isless: (libc)FP Comparison Functions.
-* islower: (libc)Classification of Characters.
-* isnanf: (libc)Floating Point Classes.
-* isnanl: (libc)Floating Point Classes.
-* isnan: (libc)Floating Point Classes.
-* isnan: (libc)Floating Point Classes.
-* isnormal: (libc)Floating Point Classes.
-* isprint: (libc)Classification of Characters.
-* ispunct: (libc)Classification of Characters.
-* issignaling: (libc)Floating Point Classes.
-* isspace: (libc)Classification of Characters.
-* issubnormal: (libc)Floating Point Classes.
-* ISTRIP: (libc)Input Modes.
-* isunordered: (libc)FP Comparison Functions.
-* isupper: (libc)Classification of Characters.
-* iswalnum: (libc)Classification of Wide Characters.
-* iswalpha: (libc)Classification of Wide Characters.
-* iswblank: (libc)Classification of Wide Characters.
-* iswcntrl: (libc)Classification of Wide Characters.
-* iswctype: (libc)Classification of Wide Characters.
-* iswdigit: (libc)Classification of Wide Characters.
-* iswgraph: (libc)Classification of Wide Characters.
-* iswlower: (libc)Classification of Wide Characters.
-* iswprint: (libc)Classification of Wide Characters.
-* iswpunct: (libc)Classification of Wide Characters.
-* iswspace: (libc)Classification of Wide Characters.
-* iswupper: (libc)Classification of Wide Characters.
-* iswxdigit: (libc)Classification of Wide Characters.
-* isxdigit: (libc)Classification of Characters.
-* iszero: (libc)Floating Point Classes.
-* IXANY: (libc)Input Modes.
-* IXOFF: (libc)Input Modes.
-* IXON: (libc)Input Modes.
-* I: (libc)Complex Numbers.
-* j0fNx: (libc)Special Functions.
-* j0fN: (libc)Special Functions.
-* j0f: (libc)Special Functions.
-* j0l: (libc)Special Functions.
-* j0: (libc)Special Functions.
-* j1fNx: (libc)Special Functions.
-* j1fN: (libc)Special Functions.
-* j1f: (libc)Special Functions.
-* j1l: (libc)Special Functions.
-* j1: (libc)Special Functions.
-* jnfNx: (libc)Special Functions.
-* jnfN: (libc)Special Functions.
-* jnf: (libc)Special Functions.
-* jnl: (libc)Special Functions.
-* jn: (libc)Special Functions.
-* jrand48_r: (libc)SVID Random.
-* jrand48: (libc)SVID Random.
-* killpg: (libc)Signaling Another Process.
-* kill: (libc)Signaling Another Process.
-* l64a: (libc)Encode Binary Data.
-* L_ctermid: (libc)Identifying the Terminal.
-* L_cuserid: (libc)Who Logged In.
-* L_tmpnam: (libc)Temporary Files.
-* labs: (libc)Absolute Value.
-* lcong48_r: (libc)SVID Random.
-* lcong48: (libc)SVID Random.
-* ldexpfNx: (libc)Normalization Functions.
-* ldexpfN: (libc)Normalization Functions.
-* ldexpf: (libc)Normalization Functions.
-* ldexpl: (libc)Normalization Functions.
-* ldexp: (libc)Normalization Functions.
-* ldiv: (libc)Integer Division.
-* lfind: (libc)Array Search Function.
-* lgamma_r: (libc)Special Functions.
-* lgammaf_r: (libc)Special Functions.
-* lgammafN_r: (libc)Special Functions.
-* lgammafNx_r: (libc)Special Functions.
-* lgammafNx: (libc)Special Functions.
-* lgammafN: (libc)Special Functions.
-* lgammaf: (libc)Special Functions.
-* lgammal_r: (libc)Special Functions.
-* lgammal: (libc)Special Functions.
-* lgamma: (libc)Special Functions.
-* LINE_MAX: (libc)Utility Limits.
-* LINK_MAX: (libc)Limits for Files.
-* linkat: (libc)Hard Links.
-* link: (libc)Hard Links.
-* lio_listio: (libc)Asynchronous Reads/Writes.
-* lio_listio64: (libc)Asynchronous Reads/Writes.
-* listen: (libc)Listening.
-* llabs: (libc)Absolute Value.
-* lldiv: (libc)Integer Division.
-* llogbfNx: (libc)Exponents and Logarithms.
-* llogbfN: (libc)Exponents and Logarithms.
-* llogbf: (libc)Exponents and Logarithms.
-* llogbl: (libc)Exponents and Logarithms.
-* llogb: (libc)Exponents and Logarithms.
-* llrintfNx: (libc)Rounding Functions.
-* llrintfN: (libc)Rounding Functions.
-* llrintf: (libc)Rounding Functions.
-* llrintl: (libc)Rounding Functions.
-* llrint: (libc)Rounding Functions.
-* llroundfNx: (libc)Rounding Functions.
-* llroundfN: (libc)Rounding Functions.
-* llroundf: (libc)Rounding Functions.
-* llroundl: (libc)Rounding Functions.
-* llround: (libc)Rounding Functions.
-* localeconv: (libc)The Lame Way to Locale Data.
-* localtime_r: (libc)Broken-down Time.
-* localtime: (libc)Broken-down Time.
-* log10fNx: (libc)Exponents and Logarithms.
-* log10fN: (libc)Exponents and Logarithms.
-* log10f: (libc)Exponents and Logarithms.
-* log10l: (libc)Exponents and Logarithms.
-* log10: (libc)Exponents and Logarithms.
-* log1pfNx: (libc)Exponents and Logarithms.
-* log1pfN: (libc)Exponents and Logarithms.
-* log1pf: (libc)Exponents and Logarithms.
-* log1pl: (libc)Exponents and Logarithms.
-* log1p: (libc)Exponents and Logarithms.
-* log2fN: (libc)Exponents and Logarithms.
-* log2f: (libc)Exponents and Logarithms.
-* log2: (libc)Exponents and Logarithms.
-* logbfNx: (libc)Exponents and Logarithms.
-* logbfN: (libc)Exponents and Logarithms.
-* logbf: (libc)Exponents and Logarithms.
-* logbl: (libc)Exponents and Logarithms.
-* logb: (libc)Exponents and Logarithms.
-* logfNx: (libc)Exponents and Logarithms.
-* logfN: (libc)Exponents and Logarithms.
-* logf: (libc)Exponents and Logarithms.
-* login_tty: (libc)Logging In and Out.
-* login: (libc)Logging In and Out.
-* logl: (libc)Exponents and Logarithms.
-* logout: (libc)Logging In and Out.
-* logwtmp: (libc)Logging In and Out.
-* log: (libc)Exponents and Logarithms.
-* log2fNx: (libc)Exponents and Logarithms.
-* log2l: (libc)Exponents and Logarithms.
-* longjmp: (libc)Non-Local Details.
-* lrand48_r: (libc)SVID Random.
-* lrand48: (libc)SVID Random.
-* lrintfNx: (libc)Rounding Functions.
-* lrintfN: (libc)Rounding Functions.
-* lrintf: (libc)Rounding Functions.
-* lrintl: (libc)Rounding Functions.
-* lrint: (libc)Rounding Functions.
-* lroundfNx: (libc)Rounding Functions.
-* lroundfN: (libc)Rounding Functions.
-* lroundf: (libc)Rounding Functions.
-* lroundl: (libc)Rounding Functions.
-* lround: (libc)Rounding Functions.
-* lsearch: (libc)Array Search Function.
-* lseek: (libc)File Position Primitive.
-* lseek64: (libc)File Position Primitive.
-* lstat: (libc)Reading Attributes.
-* lstat64: (libc)Reading Attributes.
-* lutimes: (libc)File Times.
-* madvise: (libc)Memory-mapped I/O.
-* makecontext: (libc)System V contexts.
-* mallinfo2: (libc)Statistics of Malloc.
-* malloc: (libc)Basic Allocation.
-* mallopt: (libc)Malloc Tunable Parameters.
-* MAX_CANON: (libc)Limits for Files.
-* MAX_INPUT: (libc)Limits for Files.
-* MAXNAMLEN: (libc)Limits for Files.
-* MAXSYMLINKS: (libc)Symbolic Links.
-* MB_CUR_MAX: (libc)Selecting the Conversion.
-* MB_LEN_MAX: (libc)Selecting the Conversion.
-* mblen: (libc)Non-reentrant Character Conversion.
-* mbrlen: (libc)Converting a Character.
-* mbrtowc: (libc)Converting a Character.
-* mbsinit: (libc)Keeping the state.
-* mbsnrtowcs: (libc)Converting Strings.
-* mbsrtowcs: (libc)Converting Strings.
-* mbstowcs: (libc)Non-reentrant String Conversion.
-* mbtowc: (libc)Non-reentrant Character Conversion.
-* mcheck: (libc)Heap Consistency Checking.
-* MDMBUF: (libc)Control Modes.
-* memalign: (libc)Aligned Memory Blocks.
-* memccpy: (libc)Copying Strings and Arrays.
-* memchr: (libc)Search Functions.
-* memcmp: (libc)String/Array Comparison.
-* memcpy: (libc)Copying Strings and Arrays.
-* memfd_create: (libc)Memory-mapped I/O.
-* memfrob: (libc)Obfuscating Data.
-* memmem: (libc)Search Functions.
-* memmove: (libc)Copying Strings and Arrays.
-* mempcpy: (libc)Copying Strings and Arrays.
-* memrchr: (libc)Search Functions.
-* memset: (libc)Copying Strings and Arrays.
-* mkdir: (libc)Creating Directories.
-* mkdtemp: (libc)Temporary Files.
-* mkfifo: (libc)FIFO Special Files.
-* mknod: (libc)Making Special Files.
-* mkstemp: (libc)Temporary Files.
-* mktemp: (libc)Temporary Files.
-* mktime: (libc)Broken-down Time.
-* mlockall: (libc)Page Lock Functions.
-* mlock: (libc)Page Lock Functions.
-* mlock2: (libc)Page Lock Functions.
-* mmap: (libc)Memory-mapped I/O.
-* mmap64: (libc)Memory-mapped I/O.
-* modffNx: (libc)Rounding Functions.
-* modffN: (libc)Rounding Functions.
-* modff: (libc)Rounding Functions.
-* modfl: (libc)Rounding Functions.
-* modf: (libc)Rounding Functions.
-* mount: (libc)Mount-Unmount-Remount.
-* mprobe: (libc)Heap Consistency Checking.
-* mprotect: (libc)Memory Protection.
-* mrand48_r: (libc)SVID Random.
-* mrand48: (libc)SVID Random.
-* mremap: (libc)Memory-mapped I/O.
-* MSG_DONTROUTE: (libc)Socket Data Options.
-* MSG_OOB: (libc)Socket Data Options.
-* MSG_PEEK: (libc)Socket Data Options.
-* msync: (libc)Memory-mapped I/O.
-* mtrace: (libc)Tracing malloc.
-* mtx_destroy: (libc)ISO C Mutexes.
-* mtx_init: (libc)ISO C Mutexes.
-* mtx_lock: (libc)ISO C Mutexes.
-* mtx_timedlock: (libc)ISO C Mutexes.
-* mtx_trylock: (libc)ISO C Mutexes.
-* mtx_unlock: (libc)ISO C Mutexes.
-* munlockall: (libc)Page Lock Functions.
-* munlock: (libc)Page Lock Functions.
-* munmap: (libc)Memory-mapped I/O.
-* muntrace: (libc)Tracing malloc.
-* NAME_MAX: (libc)Limits for Files.
-* nanfNx: (libc)FP Bit Twiddling.
-* nanfN: (libc)FP Bit Twiddling.
-* nanf: (libc)FP Bit Twiddling.
-* nanl: (libc)FP Bit Twiddling.
-* nanosleep: (libc)Sleeping.
-* nan: (libc)FP Bit Twiddling.
-* NAN: (libc)Infinity and NaN.
-* NCCS: (libc)Mode Data Types.
-* nearbyintfNx: (libc)Rounding Functions.
-* nearbyintfN: (libc)Rounding Functions.
-* nearbyintf: (libc)Rounding Functions.
-* nearbyintl: (libc)Rounding Functions.
-* nearbyint: (libc)Rounding Functions.
-* nextafterfNx: (libc)FP Bit Twiddling.
-* nextafterfN: (libc)FP Bit Twiddling.
-* nextafterf: (libc)FP Bit Twiddling.
-* nextafterl: (libc)FP Bit Twiddling.
-* nextafter: (libc)FP Bit Twiddling.
-* nextdownfNx: (libc)FP Bit Twiddling.
-* nextdownfN: (libc)FP Bit Twiddling.
-* nextdownf: (libc)FP Bit Twiddling.
-* nextdownl: (libc)FP Bit Twiddling.
-* nextdown: (libc)FP Bit Twiddling.
-* nexttowardf: (libc)FP Bit Twiddling.
-* nexttowardl: (libc)FP Bit Twiddling.
-* nexttoward: (libc)FP Bit Twiddling.
-* nextupfNx: (libc)FP Bit Twiddling.
-* nextupfN: (libc)FP Bit Twiddling.
-* nextupf: (libc)FP Bit Twiddling.
-* nextupl: (libc)FP Bit Twiddling.
-* nextup: (libc)FP Bit Twiddling.
-* nftw: (libc)Working with Directory Trees.
-* nftw64: (libc)Working with Directory Trees.
-* ngettext: (libc)Advanced gettext functions.
-* NGROUPS_MAX: (libc)General Limits.
-* nice: (libc)Traditional Scheduling Functions.
-* nl_langinfo: (libc)The Elegant and Fast Way.
-* NOFLSH: (libc)Local Modes.
-* NOKERNINFO: (libc)Local Modes.
-* nrand48_r: (libc)SVID Random.
-* nrand48: (libc)SVID Random.
-* NSIG: (libc)Standard Signals.
-* ntohl: (libc)Byte Order.
-* ntohs: (libc)Byte Order.
-* ntp_adjtime: (libc)Setting and Adjusting the Time.
-* ntp_gettime: (libc)Setting and Adjusting the Time.
-* NULL: (libc)Null Pointer Constant.
-* O_ACCMODE: (libc)Access Modes.
-* O_APPEND: (libc)Operating Modes.
-* O_ASYNC: (libc)Operating Modes.
-* O_CREAT: (libc)Open-time Flags.
-* O_DIRECTORY: (libc)Open-time Flags.
-* O_EXCL: (libc)Open-time Flags.
-* O_EXEC: (libc)Access Modes.
-* O_EXLOCK: (libc)Open-time Flags.
-* O_FSYNC: (libc)Operating Modes.
-* O_IGNORE_CTTY: (libc)Open-time Flags.
-* O_NDELAY: (libc)Operating Modes.
-* O_NOATIME: (libc)Operating Modes.
-* O_NOCTTY: (libc)Open-time Flags.
-* O_NOFOLLOW: (libc)Open-time Flags.
-* O_NOLINK: (libc)Open-time Flags.
-* O_NONBLOCK: (libc)Operating Modes.
-* O_NONBLOCK: (libc)Open-time Flags.
-* O_NOTRANS: (libc)Open-time Flags.
-* O_PATH: (libc)Access Modes.
-* O_RDONLY: (libc)Access Modes.
-* O_RDWR: (libc)Access Modes.
-* O_READ: (libc)Access Modes.
-* O_SHLOCK: (libc)Open-time Flags.
-* O_SYNC: (libc)Operating Modes.
-* O_TMPFILE: (libc)Open-time Flags.
-* O_TRUNC: (libc)Open-time Flags.
-* O_WRITE: (libc)Access Modes.
-* O_WRONLY: (libc)Access Modes.
-* obstack_1grow_fast: (libc)Extra Fast Growing.
-* obstack_1grow: (libc)Growing Objects.
-* obstack_alignment_mask: (libc)Obstacks Data Alignment.
-* obstack_alloc: (libc)Allocation in an Obstack.
-* obstack_base: (libc)Status of an Obstack.
-* obstack_blank_fast: (libc)Extra Fast Growing.
-* obstack_blank: (libc)Growing Objects.
-* obstack_chunk_size: (libc)Obstack Chunks.
-* obstack_copy: (libc)Allocation in an Obstack.
-* obstack_copy0: (libc)Allocation in an Obstack.
-* obstack_finish: (libc)Growing Objects.
-* obstack_free: (libc)Freeing Obstack Objects.
-* obstack_grow: (libc)Growing Objects.
-* obstack_grow0: (libc)Growing Objects.
-* obstack_init: (libc)Preparing for Obstacks.
-* obstack_int_grow_fast: (libc)Extra Fast Growing.
-* obstack_int_grow: (libc)Growing Objects.
-* obstack_next_free: (libc)Status of an Obstack.
-* obstack_object_size: (libc)Status of an Obstack.
-* obstack_object_size: (libc)Growing Objects.
-* obstack_printf: (libc)Dynamic Output.
-* obstack_ptr_grow_fast: (libc)Extra Fast Growing.
-* obstack_ptr_grow: (libc)Growing Objects.
-* obstack_room: (libc)Extra Fast Growing.
-* obstack_vprintf: (libc)Variable Arguments Output.
-* offsetof: (libc)Structure Measurement.
-* on_exit: (libc)Cleanups on Exit.
-* ONLCR: (libc)Output Modes.
-* ONOEOT: (libc)Output Modes.
-* open64: (libc)Opening and Closing Files.
-* OPEN_MAX: (libc)General Limits.
-* open_memstream: (libc)String Streams.
-* opendir: (libc)Opening a Directory.
-* openlog: (libc)openlog.
-* openpty: (libc)Pseudo-Terminal Pairs.
-* open: (libc)Opening and Closing Files.
-* OPOST: (libc)Output Modes.
-* OXTABS: (libc)Output Modes.
-* P_tmpdir: (libc)Temporary Files.
-* PA_FLAG_MASK: (libc)Parsing a Template String.
-* PARENB: (libc)Control Modes.
-* PARMRK: (libc)Input Modes.
-* PARODD: (libc)Control Modes.
-* parse_printf_format: (libc)Parsing a Template String.
-* PATH_MAX: (libc)Limits for Files.
-* pathconf: (libc)Pathconf.
-* pause: (libc)Using Pause.
-* pclose: (libc)Pipe to a Subprocess.
-* PENDIN: (libc)Local Modes.
-* perror: (libc)Error Messages.
-* PF_FILE: (libc)Local Namespace Details.
-* PF_INET: (libc)Internet Namespace.
-* PF_INET6: (libc)Internet Namespace.
-* PF_LOCAL: (libc)Local Namespace Details.
-* PF_UNIX: (libc)Local Namespace Details.
-* pipe: (libc)Creating a Pipe.
-* PIPE_BUF: (libc)Limits for Files.
-* pkey_alloc: (libc)Memory Protection.
-* pkey_free: (libc)Memory Protection.
-* pkey_get: (libc)Memory Protection.
-* pkey_mprotect: (libc)Memory Protection.
-* pkey_set: (libc)Memory Protection.
-* popen: (libc)Pipe to a Subprocess.
-* posix_fallocate: (libc)Storage Allocation.
-* posix_fallocate64: (libc)Storage Allocation.
-* posix_memalign: (libc)Aligned Memory Blocks.
-* powfNx: (libc)Exponents and Logarithms.
-* powfN: (libc)Exponents and Logarithms.
-* powf: (libc)Exponents and Logarithms.
-* powl: (libc)Exponents and Logarithms.
-* pow: (libc)Exponents and Logarithms.
-* preadv: (libc)Scatter-Gather.
-* preadv2: (libc)Scatter-Gather.
-* preadv64v2: (libc)Scatter-Gather.
-* preadv64: (libc)Scatter-Gather.
-* pread: (libc)I/O Primitives.
-* pread64: (libc)I/O Primitives.
-* printf_size_info: (libc)Predefined Printf Handlers.
-* printf_size: (libc)Predefined Printf Handlers.
-* printf: (libc)Formatted Output Functions.
-* psignal: (libc)Signal Messages.
-* pthread_attr_getsigmask_np: (libc)Initial Thread Signal Mask.
-* PTHREAD_ATTR_NO_SIGMASK_NP: (libc)Initial Thread Signal Mask.
-* pthread_attr_setsigmask_np: (libc)Initial Thread Signal Mask.
-* pthread_clockjoin_np: (libc)Waiting with Explicit Clocks.
-* pthread_cond_clockwait: (libc)Waiting with Explicit Clocks.
-* pthread_getattr_default_np: (libc)Default Thread Attributes.
-* pthread_getspecific: (libc)Thread-specific Data.
-* pthread_key_create: (libc)Thread-specific Data.
-* pthread_key_delete: (libc)Thread-specific Data.
-* pthread_rwlock_clockrdlock: (libc)Waiting with Explicit Clocks.
-* pthread_rwlock_clockwrlock: (libc)Waiting with Explicit Clocks.
-* pthread_setattr_default_np: (libc)Default Thread Attributes.
-* pthread_setspecific: (libc)Thread-specific Data.
-* pthread_timedjoin_np: (libc)Waiting with Explicit Clocks.
-* pthread_tryjoin_np: (libc)Waiting with Explicit Clocks.
-* ptsname_r: (libc)Allocation.
-* ptsname: (libc)Allocation.
-* putc_unlocked: (libc)Simple Output.
-* putchar_unlocked: (libc)Simple Output.
-* putchar: (libc)Simple Output.
-* putc: (libc)Simple Output.
-* putenv: (libc)Environment Access.
-* putpwent: (libc)Writing a User Entry.
-* puts: (libc)Simple Output.
-* pututline: (libc)Manipulating the Database.
-* pututxline: (libc)XPG Functions.
-* putwc_unlocked: (libc)Simple Output.
-* putwchar_unlocked: (libc)Simple Output.
-* putwchar: (libc)Simple Output.
-* putwc: (libc)Simple Output.
-* putw: (libc)Simple Output.
-* pwritev: (libc)Scatter-Gather.
-* pwritev2: (libc)Scatter-Gather.
-* pwritev64v2: (libc)Scatter-Gather.
-* pwritev64: (libc)Scatter-Gather.
-* pwrite: (libc)I/O Primitives.
-* pwrite64: (libc)I/O Primitives.
-* qecvt_r: (libc)System V Number Conversion.
-* qecvt: (libc)System V Number Conversion.
-* qfcvt_r: (libc)System V Number Conversion.
-* qfcvt: (libc)System V Number Conversion.
-* qgcvt: (libc)System V Number Conversion.
-* qsort: (libc)Array Sort Function.
-* R_OK: (libc)Testing File Access.
-* raise: (libc)Signaling Yourself.
-* RAND_MAX: (libc)ISO Random.
-* rand_r: (libc)ISO Random.
-* random_r: (libc)BSD Random.
-* random: (libc)BSD Random.
-* rand: (libc)ISO Random.
-* rawmemchr: (libc)Search Functions.
-* RE_DUP_MAX: (libc)General Limits.
-* readdir64_r: (libc)Reading/Closing Directory.
-* readdir64: (libc)Reading/Closing Directory.
-* readdir_r: (libc)Reading/Closing Directory.
-* readdir: (libc)Reading/Closing Directory.
-* readlink: (libc)Symbolic Links.
-* readv: (libc)Scatter-Gather.
-* read: (libc)I/O Primitives.
-* reallocarray: (libc)Changing Block Size.
-* realloc: (libc)Changing Block Size.
-* realpath: (libc)Symbolic Links.
-* recvfrom: (libc)Receiving Datagrams.
-* recvmsg: (libc)Receiving Datagrams.
-* recv: (libc)Receiving Data.
-* regcomp: (libc)POSIX Regexp Compilation.
-* regerror: (libc)Regexp Cleanup.
-* regexec: (libc)Matching POSIX Regexps.
-* regfree: (libc)Regexp Cleanup.
-* register_printf_function: (libc)Registering New Conversions.
-* remainderfNx: (libc)Remainder Functions.
-* remainderfN: (libc)Remainder Functions.
-* remainderf: (libc)Remainder Functions.
-* remainderl: (libc)Remainder Functions.
-* remainder: (libc)Remainder Functions.
-* remove: (libc)Deleting Files.
-* rename: (libc)Renaming Files.
-* rewinddir: (libc)Random Access Directory.
-* rewind: (libc)File Positioning.
-* rindex: (libc)Search Functions.
-* rintfNx: (libc)Rounding Functions.
-* rintfN: (libc)Rounding Functions.
-* rintf: (libc)Rounding Functions.
-* rintl: (libc)Rounding Functions.
-* rint: (libc)Rounding Functions.
-* RLIM_INFINITY: (libc)Limits on Resources.
-* rmdir: (libc)Deleting Files.
-* roundevenfNx: (libc)Rounding Functions.
-* roundevenfN: (libc)Rounding Functions.
-* roundevenf: (libc)Rounding Functions.
-* roundevenl: (libc)Rounding Functions.
-* roundeven: (libc)Rounding Functions.
-* roundfNx: (libc)Rounding Functions.
-* roundfN: (libc)Rounding Functions.
-* roundf: (libc)Rounding Functions.
-* roundl: (libc)Rounding Functions.
-* round: (libc)Rounding Functions.
-* rpmatch: (libc)Yes-or-No Questions.
-* RSEQ_SIG: (libc)Restartable Sequences.
-* S_IFMT: (libc)Testing File Type.
-* S_ISBLK: (libc)Testing File Type.
-* S_ISCHR: (libc)Testing File Type.
-* S_ISDIR: (libc)Testing File Type.
-* S_ISFIFO: (libc)Testing File Type.
-* S_ISLNK: (libc)Testing File Type.
-* S_ISREG: (libc)Testing File Type.
-* S_ISSOCK: (libc)Testing File Type.
-* S_TYPEISMQ: (libc)Testing File Type.
-* S_TYPEISSEM: (libc)Testing File Type.
-* S_TYPEISSHM: (libc)Testing File Type.
-* SA_NOCLDSTOP: (libc)Flags for Sigaction.
-* SA_ONSTACK: (libc)Flags for Sigaction.
-* SA_RESTART: (libc)Flags for Sigaction.
-* sbrk: (libc)Resizing the Data Segment.
-* scalbf: (libc)Normalization Functions.
-* scalblnfNx: (libc)Normalization Functions.
-* scalblnfN: (libc)Normalization Functions.
-* scalblnf: (libc)Normalization Functions.
-* scalblnl: (libc)Normalization Functions.
-* scalbln: (libc)Normalization Functions.
-* scalbl: (libc)Normalization Functions.
-* scalbnfNx: (libc)Normalization Functions.
-* scalbnfN: (libc)Normalization Functions.
-* scalbnf: (libc)Normalization Functions.
-* scalbnl: (libc)Normalization Functions.
-* scalbn: (libc)Normalization Functions.
-* scalb: (libc)Normalization Functions.
-* scandir: (libc)Scanning Directory Content.
-* scandir64: (libc)Scanning Directory Content.
-* scanf: (libc)Formatted Input Functions.
-* sched_get_priority_max: (libc)Basic Scheduling Functions.
-* sched_get_priority_min: (libc)Basic Scheduling Functions.
-* sched_getaffinity: (libc)CPU Affinity.
-* sched_getparam: (libc)Basic Scheduling Functions.
-* sched_getscheduler: (libc)Basic Scheduling Functions.
-* sched_rr_get_interval: (libc)Basic Scheduling Functions.
-* sched_setaffinity: (libc)CPU Affinity.
-* sched_setparam: (libc)Basic Scheduling Functions.
-* sched_setscheduler: (libc)Basic Scheduling Functions.
-* sched_yield: (libc)Basic Scheduling Functions.
-* secure_getenv: (libc)Environment Access.
-* seed48_r: (libc)SVID Random.
-* seed48: (libc)SVID Random.
-* SEEK_CUR: (libc)File Positioning.
-* SEEK_END: (libc)File Positioning.
-* SEEK_SET: (libc)File Positioning.
-* seekdir: (libc)Random Access Directory.
-* select: (libc)Waiting for I/O.
-* sem_clockwait: (libc)Waiting with Explicit Clocks.
-* sem_close: (libc)Semaphores.
-* sem_destroy: (libc)Semaphores.
-* sem_getvalue: (libc)Semaphores.
-* sem_init: (libc)Semaphores.
-* sem_open: (libc)Semaphores.
-* sem_post: (libc)Semaphores.
-* sem_timedwait: (libc)Semaphores.
-* sem_trywait: (libc)Semaphores.
-* sem_unlink: (libc)Semaphores.
-* sem_wait: (libc)Semaphores.
-* semctl: (libc)Semaphores.
-* semget: (libc)Semaphores.
-* semop: (libc)Semaphores.
-* semtimedop: (libc)Semaphores.
-* sendmsg: (libc)Receiving Datagrams.
-* sendto: (libc)Sending Datagrams.
-* send: (libc)Sending Data.
-* setbuffer: (libc)Controlling Buffering.
-* setbuf: (libc)Controlling Buffering.
-* setcontext: (libc)System V contexts.
-* setdomainname: (libc)Host Identification.
-* setegid: (libc)Setting Groups.
-* setenv: (libc)Environment Access.
-* seteuid: (libc)Setting User ID.
-* setfsent: (libc)fstab.
-* setgid: (libc)Setting Groups.
-* setgrent: (libc)Scanning All Groups.
-* setgroups: (libc)Setting Groups.
-* sethostent: (libc)Host Names.
-* sethostid: (libc)Host Identification.
-* sethostname: (libc)Host Identification.
-* setitimer: (libc)Setting an Alarm.
-* setjmp: (libc)Non-Local Details.
-* setlinebuf: (libc)Controlling Buffering.
-* setlocale: (libc)Setting the Locale.
-* setlogmask: (libc)setlogmask.
-* setmntent: (libc)mtab.
-* setnetent: (libc)Networks Database.
-* setnetgrent: (libc)Lookup Netgroup.
-* setpayloadfNx: (libc)FP Bit Twiddling.
-* setpayloadfN: (libc)FP Bit Twiddling.
-* setpayloadf: (libc)FP Bit Twiddling.
-* setpayloadl: (libc)FP Bit Twiddling.
-* setpayloadsigfNx: (libc)FP Bit Twiddling.
-* setpayloadsigfN: (libc)FP Bit Twiddling.
-* setpayloadsigf: (libc)FP Bit Twiddling.
-* setpayloadsigl: (libc)FP Bit Twiddling.
-* setpayloadsig: (libc)FP Bit Twiddling.
-* setpayload: (libc)FP Bit Twiddling.
-* setpgid: (libc)Process Group Functions.
-* setpgrp: (libc)Process Group Functions.
-* setpriority: (libc)Traditional Scheduling Functions.
-* setprotoent: (libc)Protocols Database.
-* setpwent: (libc)Scanning All Users.
-* setregid: (libc)Setting Groups.
-* setreuid: (libc)Setting User ID.
-* setrlimit: (libc)Limits on Resources.
-* setrlimit64: (libc)Limits on Resources.
-* setservent: (libc)Services Database.
-* setsid: (libc)Process Group Functions.
-* setsockopt: (libc)Socket Option Functions.
-* setstate_r: (libc)BSD Random.
-* setstate: (libc)BSD Random.
-* settimeofday: (libc)Setting and Adjusting the Time.
-* setuid: (libc)Setting User ID.
-* setutent: (libc)Manipulating the Database.
-* setutxent: (libc)XPG Functions.
-* setvbuf: (libc)Controlling Buffering.
-* shm_open: (libc)Memory-mapped I/O.
-* shm_unlink: (libc)Memory-mapped I/O.
-* shutdown: (libc)Closing a Socket.
-* SIG_ERR: (libc)Basic Signal Handling.
-* sigabbrev_np: (libc)Signal Messages.
-* SIGABRT: (libc)Program Error Signals.
-* sigaction: (libc)Advanced Signal Handling.
-* sigaddset: (libc)Signal Sets.
-* SIGALRM: (libc)Alarm Signals.
-* sigaltstack: (libc)Signal Stack.
-* sigblock: (libc)BSD Signal Handling.
-* SIGBUS: (libc)Program Error Signals.
-* SIGCHLD: (libc)Job Control Signals.
-* SIGCLD: (libc)Job Control Signals.
-* SIGCONT: (libc)Job Control Signals.
-* sigdelset: (libc)Signal Sets.
-* sigdescr_np: (libc)Signal Messages.
-* sigemptyset: (libc)Signal Sets.
-* SIGEMT: (libc)Program Error Signals.
-* sigfillset: (libc)Signal Sets.
-* SIGFPE: (libc)Program Error Signals.
-* SIGHUP: (libc)Termination Signals.
-* SIGILL: (libc)Program Error Signals.
-* SIGINFO: (libc)Miscellaneous Signals.
-* siginterrupt: (libc)BSD Signal Handling.
-* SIGINT: (libc)Termination Signals.
-* SIGIOT: (libc)Program Error Signals.
-* SIGIO: (libc)Asynchronous I/O Signals.
-* sigismember: (libc)Signal Sets.
-* SIGKILL: (libc)Termination Signals.
-* siglongjmp: (libc)Non-Local Exits and Signals.
-* SIGLOST: (libc)Operation Error Signals.
-* sigmask: (libc)BSD Signal Handling.
-* signal: (libc)Basic Signal Handling.
-* signbit: (libc)FP Bit Twiddling.
-* significandf: (libc)Normalization Functions.
-* significandl: (libc)Normalization Functions.
-* significand: (libc)Normalization Functions.
-* sigpause: (libc)BSD Signal Handling.
-* sigpending: (libc)Checking for Pending Signals.
-* SIGPIPE: (libc)Operation Error Signals.
-* SIGPOLL: (libc)Asynchronous I/O Signals.
-* sigprocmask: (libc)Process Signal Mask.
-* SIGPROF: (libc)Alarm Signals.
-* SIGQUIT: (libc)Termination Signals.
-* SIGSEGV: (libc)Program Error Signals.
-* sigsetjmp: (libc)Non-Local Exits and Signals.
-* sigsetmask: (libc)BSD Signal Handling.
-* sigstack: (libc)Signal Stack.
-* SIGSTOP: (libc)Job Control Signals.
-* sigsuspend: (libc)Sigsuspend.
-* SIGSYS: (libc)Program Error Signals.
-* SIGTERM: (libc)Termination Signals.
-* SIGTRAP: (libc)Program Error Signals.
-* SIGTSTP: (libc)Job Control Signals.
-* SIGTTIN: (libc)Job Control Signals.
-* SIGTTOU: (libc)Job Control Signals.
-* SIGURG: (libc)Asynchronous I/O Signals.
-* SIGUSR1: (libc)Miscellaneous Signals.
-* SIGUSR2: (libc)Miscellaneous Signals.
-* SIGVTALRM: (libc)Alarm Signals.
-* SIGWINCH: (libc)Miscellaneous Signals.
-* SIGXCPU: (libc)Operation Error Signals.
-* SIGXFSZ: (libc)Operation Error Signals.
-* sincosfNx: (libc)Trig Functions.
-* sincosfN: (libc)Trig Functions.
-* sincosf: (libc)Trig Functions.
-* sincosl: (libc)Trig Functions.
-* sincos: (libc)Trig Functions.
-* sinfNx: (libc)Trig Functions.
-* sinfN: (libc)Trig Functions.
-* sinf: (libc)Trig Functions.
-* sinhfNx: (libc)Hyperbolic Functions.
-* sinhfN: (libc)Hyperbolic Functions.
-* sinhf: (libc)Hyperbolic Functions.
-* sinhl: (libc)Hyperbolic Functions.
-* sinh: (libc)Hyperbolic Functions.
-* sinl: (libc)Trig Functions.
-* sin: (libc)Trig Functions.
-* sleep: (libc)Sleeping.
-* SNANFNx: (libc)Infinity and NaN.
-* SNANFN: (libc)Infinity and NaN.
-* SNANF: (libc)Infinity and NaN.
-* SNANL: (libc)Infinity and NaN.
-* SNAN: (libc)Infinity and NaN.
-* snprintf: (libc)Formatted Output Functions.
-* SOCK_DGRAM: (libc)Communication Styles.
-* SOCK_RAW: (libc)Communication Styles.
-* SOCK_RDM: (libc)Communication Styles.
-* SOCK_SEQPACKET: (libc)Communication Styles.
-* SOCK_STREAM: (libc)Communication Styles.
-* socketpair: (libc)Socket Pairs.
-* socket: (libc)Creating a Socket.
-* SOL_SOCKET: (libc)Socket-Level Options.
-* sprintf: (libc)Formatted Output Functions.
-* sqrtfNx: (libc)Exponents and Logarithms.
-* sqrtfN: (libc)Exponents and Logarithms.
-* sqrtf: (libc)Exponents and Logarithms.
-* sqrtl: (libc)Exponents and Logarithms.
-* sqrt: (libc)Exponents and Logarithms.
-* srandom_r: (libc)BSD Random.
-* srandom: (libc)BSD Random.
-* srand: (libc)ISO Random.
-* srand48_r: (libc)SVID Random.
-* srand48: (libc)SVID Random.
-* sscanf: (libc)Formatted Input Functions.
-* ssignal: (libc)Basic Signal Handling.
-* SSIZE_MAX: (libc)General Limits.
-* stat: (libc)Reading Attributes.
-* stat64: (libc)Reading Attributes.
-* stime: (libc)Setting and Adjusting the Time.
-* stpcpy: (libc)Copying Strings and Arrays.
-* stpncpy: (libc)Truncating Strings.
-* strcasecmp: (libc)String/Array Comparison.
-* strcasestr: (libc)Search Functions.
-* strcat: (libc)Concatenating Strings.
-* strchrnul: (libc)Search Functions.
-* strchr: (libc)Search Functions.
-* strcmp: (libc)String/Array Comparison.
-* strcoll: (libc)Collation Functions.
-* strcpy: (libc)Copying Strings and Arrays.
-* strcspn: (libc)Search Functions.
-* strdupa: (libc)Copying Strings and Arrays.
-* strdup: (libc)Copying Strings and Arrays.
-* STREAM_MAX: (libc)General Limits.
-* strerror_r: (libc)Error Messages.
-* strerrordesc_np: (libc)Error Messages.
-* strerrorname_np: (libc)Error Messages.
-* strerror: (libc)Error Messages.
-* strfmon: (libc)Formatting Numbers.
-* strfromd: (libc)Printing of Floats.
-* strfromfNx: (libc)Printing of Floats.
-* strfromfN: (libc)Printing of Floats.
-* strfromf: (libc)Printing of Floats.
-* strfroml: (libc)Printing of Floats.
-* strfry: (libc)Shuffling Bytes.
-* strftime: (libc)Formatting Calendar Time.
-* strlen: (libc)String Length.
-* strncasecmp: (libc)String/Array Comparison.
-* strncat: (libc)Truncating Strings.
-* strncmp: (libc)String/Array Comparison.
-* strncpy: (libc)Truncating Strings.
-* strndupa: (libc)Truncating Strings.
-* strndup: (libc)Truncating Strings.
-* strnlen: (libc)String Length.
-* strpbrk: (libc)Search Functions.
-* strptime: (libc)Low-Level Time String Parsing.
-* strrchr: (libc)Search Functions.
-* strsep: (libc)Finding Tokens in a String.
-* strsignal: (libc)Signal Messages.
-* strspn: (libc)Search Functions.
-* strstr: (libc)Search Functions.
-* strtod: (libc)Parsing of Floats.
-* strtofNx: (libc)Parsing of Floats.
-* strtofN: (libc)Parsing of Floats.
-* strtof: (libc)Parsing of Floats.
-* strtoimax: (libc)Parsing of Integers.
-* strtok_r: (libc)Finding Tokens in a String.
-* strtok: (libc)Finding Tokens in a String.
-* strtold: (libc)Parsing of Floats.
-* strtoll: (libc)Parsing of Integers.
-* strtol: (libc)Parsing of Integers.
-* strtoq: (libc)Parsing of Integers.
-* strtoull: (libc)Parsing of Integers.
-* strtoul: (libc)Parsing of Integers.
-* strtoumax: (libc)Parsing of Integers.
-* strtouq: (libc)Parsing of Integers.
-* strverscmp: (libc)String/Array Comparison.
-* strxfrm: (libc)Collation Functions.
-* stty: (libc)BSD Terminal Modes.
-* SUN_LEN: (libc)Local Namespace Details.
-* swapcontext: (libc)System V contexts.
-* swprintf: (libc)Formatted Output Functions.
-* swscanf: (libc)Formatted Input Functions.
-* symlink: (libc)Symbolic Links.
-* sync: (libc)Synchronizing I/O.
-* syscall: (libc)System Calls.
-* sysconf: (libc)Sysconf Definition.
-* syslog: (libc)syslog; vsyslog.
-* system: (libc)Running a Command.
-* sysv_signal: (libc)Basic Signal Handling.
-* tanfNx: (libc)Trig Functions.
-* tanfN: (libc)Trig Functions.
-* tanf: (libc)Trig Functions.
-* tanhfNx: (libc)Hyperbolic Functions.
-* tanhfN: (libc)Hyperbolic Functions.
-* tanhf: (libc)Hyperbolic Functions.
-* tanhl: (libc)Hyperbolic Functions.
-* tanh: (libc)Hyperbolic Functions.
-* tanl: (libc)Trig Functions.
-* tan: (libc)Trig Functions.
-* tcdrain: (libc)Line Control.
-* tcflow: (libc)Line Control.
-* tcflush: (libc)Line Control.
-* tcgetattr: (libc)Mode Functions.
-* tcgetpgrp: (libc)Terminal Access Functions.
-* tcgetsid: (libc)Terminal Access Functions.
-* tcsendbreak: (libc)Line Control.
-* tcsetattr: (libc)Mode Functions.
-* tcsetpgrp: (libc)Terminal Access Functions.
-* tdelete: (libc)Tree Search Function.
-* tdestroy: (libc)Tree Search Function.
-* telldir: (libc)Random Access Directory.
-* tempnam: (libc)Temporary Files.
-* textdomain: (libc)Locating gettext catalog.
-* tfind: (libc)Tree Search Function.
-* tgammafNx: (libc)Special Functions.
-* tgammafN: (libc)Special Functions.
-* tgammaf: (libc)Special Functions.
-* tgammal: (libc)Special Functions.
-* tgamma: (libc)Special Functions.
-* tgkill: (libc)Signaling Another Process.
-* thrd_create: (libc)ISO C Thread Management.
-* thrd_current: (libc)ISO C Thread Management.
-* thrd_detach: (libc)ISO C Thread Management.
-* thrd_equal: (libc)ISO C Thread Management.
-* thrd_exit: (libc)ISO C Thread Management.
-* thrd_join: (libc)ISO C Thread Management.
-* thrd_sleep: (libc)ISO C Thread Management.
-* thrd_yield: (libc)ISO C Thread Management.
-* timegm: (libc)Broken-down Time.
-* timelocal: (libc)Broken-down Time.
-* times: (libc)Processor Time.
-* time: (libc)Getting the Time.
-* TMP_MAX: (libc)Temporary Files.
-* tmpfile: (libc)Temporary Files.
-* tmpfile64: (libc)Temporary Files.
-* tmpnam_r: (libc)Temporary Files.
-* tmpnam: (libc)Temporary Files.
-* toascii: (libc)Case Conversion.
-* tolower: (libc)Case Conversion.
-* TOSTOP: (libc)Local Modes.
-* totalorderfNx: (libc)FP Comparison Functions.
-* totalorderfN: (libc)FP Comparison Functions.
-* totalorderf: (libc)FP Comparison Functions.
-* totalorderl: (libc)FP Comparison Functions.
-* totalordermagfNx: (libc)FP Comparison Functions.
-* totalordermagfN: (libc)FP Comparison Functions.
-* totalordermagf: (libc)FP Comparison Functions.
-* totalordermagl: (libc)FP Comparison Functions.
-* totalordermag: (libc)FP Comparison Functions.
-* totalorder: (libc)FP Comparison Functions.
-* toupper: (libc)Case Conversion.
-* towctrans: (libc)Wide Character Case Conversion.
-* towlower: (libc)Wide Character Case Conversion.
-* towupper: (libc)Wide Character Case Conversion.
-* truncate: (libc)File Size.
-* truncate64: (libc)File Size.
-* truncfNx: (libc)Rounding Functions.
-* truncfN: (libc)Rounding Functions.
-* truncf: (libc)Rounding Functions.
-* truncl: (libc)Rounding Functions.
-* trunc: (libc)Rounding Functions.
-* tsearch: (libc)Tree Search Function.
-* tss_create: (libc)ISO C Thread-local Storage.
-* tss_delete: (libc)ISO C Thread-local Storage.
-* tss_get: (libc)ISO C Thread-local Storage.
-* tss_set: (libc)ISO C Thread-local Storage.
-* ttyname_r: (libc)Is It a Terminal.
-* ttyname: (libc)Is It a Terminal.
-* twalk_r: (libc)Tree Search Function.
-* twalk: (libc)Tree Search Function.
-* TZNAME_MAX: (libc)General Limits.
-* tzset: (libc)Time Zone Functions.
-* ufromfpfNx: (libc)Rounding Functions.
-* ufromfpfN: (libc)Rounding Functions.
-* ufromfpf: (libc)Rounding Functions.
-* ufromfpl: (libc)Rounding Functions.
-* ufromfpxfNx: (libc)Rounding Functions.
-* ufromfpxfN: (libc)Rounding Functions.
-* ufromfpxf: (libc)Rounding Functions.
-* ufromfpxl: (libc)Rounding Functions.
-* ufromfpx: (libc)Rounding Functions.
-* ufromfp: (libc)Rounding Functions.
-* ulimit: (libc)Limits on Resources.
-* umask: (libc)Setting Permissions.
-* umount: (libc)Mount-Unmount-Remount.
-* umount2: (libc)Mount-Unmount-Remount.
-* uname: (libc)Platform Type.
-* ungetc: (libc)How Unread.
-* ungetwc: (libc)How Unread.
-* unlink: (libc)Deleting Files.
-* unlockpt: (libc)Allocation.
-* unsetenv: (libc)Environment Access.
-* updwtmp: (libc)Manipulating the Database.
-* utimes: (libc)File Times.
-* utime: (libc)File Times.
-* utmpname: (libc)Manipulating the Database.
-* utmpxname: (libc)XPG Functions.
-* va_arg: (libc)Argument Macros.
-* va_copy: (libc)Argument Macros.
-* va_end: (libc)Argument Macros.
-* va_start: (libc)Argument Macros.
-* valloc: (libc)Aligned Memory Blocks.
-* vasprintf: (libc)Variable Arguments Output.
-* VDISCARD: (libc)Other Special.
-* VDSUSP: (libc)Signal Characters.
-* VEOF: (libc)Editing Characters.
-* VEOL: (libc)Editing Characters.
-* VEOL2: (libc)Editing Characters.
-* VERASE: (libc)Editing Characters.
-* verrx: (libc)Error Messages.
-* verr: (libc)Error Messages.
-* versionsort: (libc)Scanning Directory Content.
-* versionsort64: (libc)Scanning Directory Content.
-* vfork: (libc)Creating a Process.
-* vfprintf: (libc)Variable Arguments Output.
-* vfscanf: (libc)Variable Arguments Input.
-* vfwprintf: (libc)Variable Arguments Output.
-* vfwscanf: (libc)Variable Arguments Input.
-* VINTR: (libc)Signal Characters.
-* VKILL: (libc)Editing Characters.
-* vlimit: (libc)Limits on Resources.
-* VLNEXT: (libc)Other Special.
-* VMIN: (libc)Noncanonical Input.
-* vprintf: (libc)Variable Arguments Output.
-* VQUIT: (libc)Signal Characters.
-* VREPRINT: (libc)Editing Characters.
-* vscanf: (libc)Variable Arguments Input.
-* vsnprintf: (libc)Variable Arguments Output.
-* vsprintf: (libc)Variable Arguments Output.
-* vsscanf: (libc)Variable Arguments Input.
-* VSTART: (libc)Start/Stop Characters.
-* VSTATUS: (libc)Other Special.
-* VSTOP: (libc)Start/Stop Characters.
-* VSUSP: (libc)Signal Characters.
-* vswprintf: (libc)Variable Arguments Output.
-* vswscanf: (libc)Variable Arguments Input.
-* vsyslog: (libc)syslog; vsyslog.
-* VTIME: (libc)Noncanonical Input.
-* vwarnx: (libc)Error Messages.
-* vwarn: (libc)Error Messages.
-* VWERASE: (libc)Editing Characters.
-* vwprintf: (libc)Variable Arguments Output.
-* vwscanf: (libc)Variable Arguments Input.
-* W_OK: (libc)Testing File Access.
-* wait3: (libc)BSD Wait Functions.
-* waitpid: (libc)Process Completion.
-* wait: (libc)Process Completion.
-* wait4: (libc)Process Completion.
-* warnx: (libc)Error Messages.
-* warn: (libc)Error Messages.
-* WCHAR_MAX: (libc)Extended Char Intro.
-* WCHAR_MIN: (libc)Extended Char Intro.
-* WCOREDUMP: (libc)Process Completion Status.
-* wcpcpy: (libc)Copying Strings and Arrays.
-* wcpncpy: (libc)Truncating Strings.
-* wcrtomb: (libc)Converting a Character.
-* wcscasecmp: (libc)String/Array Comparison.
-* wcscat: (libc)Concatenating Strings.
-* wcschrnul: (libc)Search Functions.
-* wcschr: (libc)Search Functions.
-* wcscmp: (libc)String/Array Comparison.
-* wcscoll: (libc)Collation Functions.
-* wcscpy: (libc)Copying Strings and Arrays.
-* wcscspn: (libc)Search Functions.
-* wcsdup: (libc)Copying Strings and Arrays.
-* wcsftime: (libc)Formatting Calendar Time.
-* wcslen: (libc)String Length.
-* wcsncasecmp: (libc)String/Array Comparison.
-* wcsncat: (libc)Truncating Strings.
-* wcsncmp: (libc)String/Array Comparison.
-* wcsncpy: (libc)Truncating Strings.
-* wcsnlen: (libc)String Length.
-* wcsnrtombs: (libc)Converting Strings.
-* wcspbrk: (libc)Search Functions.
-* wcsrchr: (libc)Search Functions.
-* wcsrtombs: (libc)Converting Strings.
-* wcsspn: (libc)Search Functions.
-* wcsstr: (libc)Search Functions.
-* wcstod: (libc)Parsing of Floats.
-* wcstofNx: (libc)Parsing of Floats.
-* wcstofN: (libc)Parsing of Floats.
-* wcstof: (libc)Parsing of Floats.
-* wcstoimax: (libc)Parsing of Integers.
-* wcstok: (libc)Finding Tokens in a String.
-* wcstold: (libc)Parsing of Floats.
-* wcstoll: (libc)Parsing of Integers.
-* wcstol: (libc)Parsing of Integers.
-* wcstombs: (libc)Non-reentrant String Conversion.
-* wcstoq: (libc)Parsing of Integers.
-* wcstoull: (libc)Parsing of Integers.
-* wcstoul: (libc)Parsing of Integers.
-* wcstoumax: (libc)Parsing of Integers.
-* wcstouq: (libc)Parsing of Integers.
-* wcswcs: (libc)Search Functions.
-* wcsxfrm: (libc)Collation Functions.
-* wctob: (libc)Converting a Character.
-* wctomb: (libc)Non-reentrant Character Conversion.
-* wctrans: (libc)Wide Character Case Conversion.
-* wctype: (libc)Classification of Wide Characters.
-* WEOF: (libc)Extended Char Intro.
-* WEOF: (libc)EOF and Errors.
-* WEXITSTATUS: (libc)Process Completion Status.
-* WIFEXITED: (libc)Process Completion Status.
-* WIFSIGNALED: (libc)Process Completion Status.
-* WIFSTOPPED: (libc)Process Completion Status.
-* wmemchr: (libc)Search Functions.
-* wmemcmp: (libc)String/Array Comparison.
-* wmemcpy: (libc)Copying Strings and Arrays.
-* wmemmove: (libc)Copying Strings and Arrays.
-* wmempcpy: (libc)Copying Strings and Arrays.
-* wmemset: (libc)Copying Strings and Arrays.
-* wordexp: (libc)Calling Wordexp.
-* wordfree: (libc)Calling Wordexp.
-* wprintf: (libc)Formatted Output Functions.
-* writev: (libc)Scatter-Gather.
-* write: (libc)I/O Primitives.
-* wscanf: (libc)Formatted Input Functions.
-* WSTOPSIG: (libc)Process Completion Status.
-* WTERMSIG: (libc)Process Completion Status.
-* X_OK: (libc)Testing File Access.
-* y0fNx: (libc)Special Functions.
-* y0fN: (libc)Special Functions.
-* y0f: (libc)Special Functions.
-* y0l: (libc)Special Functions.
-* y0: (libc)Special Functions.
-* y1fNx: (libc)Special Functions.
-* y1fN: (libc)Special Functions.
-* y1f: (libc)Special Functions.
-* y1l: (libc)Special Functions.
-* y1: (libc)Special Functions.
-* ynfNx: (libc)Special Functions.
-* ynfN: (libc)Special Functions.
-* ynf: (libc)Special Functions.
-* ynl: (libc)Special Functions.
-* yn: (libc)Special Functions.
-
-Software libraries
-* Libc: (libc).                 C library.
-__EOF__
-  fi
-}
-
-# arg 1:  the new package version
-# arg 2:  the old package version
-pre_update() {
-  /bin/true
-}
-
-# arg 1:  the new package version
-# arg 2:  the old package version
-post_update() {
-  post_install
-}
-
-# arg 1:  the old package version
-pre_remove() {
-  if [ -x /usr/bin/install-info ] ; then
-    install-info --delete --info-file=usr/share/info/libc.info.gz --dir-file=usr/share/info/dir 2> /dev/null || /bin/true
-  fi
-}
-
-# arg 1:  the old package version
-post_remove() {
-  /bin/true
-}
-
-
-operation=$1
-shift
-
-$operation $*

Property changes on: libs/glibc/2.37/glibc-pkg-install.sh
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: libs/glibc/2.37/PATCHES
===================================================================
--- libs/glibc/2.37/PATCHES	(revision 393)
+++ libs/glibc/2.37/PATCHES	(nonexistent)
@@ -1,13 +0,0 @@
-
-../../../sources/GNU/glibc/2.37/patches/glibc-2.37-CVE-2023-25139.patch      -p0
-../../../sources/GNU/glibc/2.37/patches/glibc-2.37-i18n.patch                -p0
-../../../sources/GNU/glibc/2.37/patches/glibc-2.37-malloc-hooks.patch        -p0
-../../../sources/GNU/glibc/2.37/patches/glibc-2.37-en_US-no-am-pm.patch      -p0
-../../../sources/GNU/glibc/2.37/patches/glibc-2.37-reenable-DT-HASH.patch    -p0
-../../../sources/GNU/glibc/2.37/patches/glibc-2.37-locale-no-archive.patch   -p0
-../../../sources/GNU/glibc/2.37/patches/glibc-2.37-zonefile.patch            -p0
-../../../sources/GNU/glibc/2.37/patches/glibc-2.37-zoneinfo.patch
-../../../sources/iana/tz/patches/glibc-2.37-tzcode-2023c.patch               -p0
-
-../../../sources/GNU/glibc/2.37/patches/glibc-2.37-ppc64-interpreter.patch   -p0
-../../../sources/GNU/glibc/2.37/patches/glibc-2.37-x86_64-interpreter.patch  -p0
Index: libs/glibc/2.37/Makefile
===================================================================
--- libs/glibc/2.37/Makefile	(revision 393)
+++ libs/glibc/2.37/Makefile	(nonexistent)
@@ -1,270 +0,0 @@
-
-COMPONENT_TARGETS  = $(HARDWARE_INTEL_PC32)
-COMPONENT_TARGETS += $(HARDWARE_INTEL_PC64)
-COMPONENT_TARGETS += $(HARDWARE_EBOX_3350DX2)
-COMPONENT_TARGETS += $(HARDWARE_CB1X)
-COMPONENT_TARGETS += $(HARDWARE_CB2X)
-COMPONENT_TARGETS += $(HARDWARE_CB3X)
-COMPONENT_TARGETS += $(HARDWARE_ORANGE_PP2E)
-COMPONENT_TARGETS += $(HARDWARE_NANOPI_NEO)
-COMPONENT_TARGETS += $(HARDWARE_ORANGE_PP)
-COMPONENT_TARGETS += $(HARDWARE_ORANGE_PL2)
-COMPONENT_TARGETS += $(HARDWARE_ORANGE_PI5)
-COMPONENT_TARGETS += $(HARDWARE_ORANGE_PI5B)
-COMPONENT_TARGETS += $(HARDWARE_ORANGE_PI5P)
-COMPONENT_TARGETS += $(HARDWARE_ROCK_5B)
-COMPONENT_TARGETS += $(HARDWARE_WECHIP_TX6)
-COMPONENT_TARGETS += $(HARDWARE_REPKA_PI3)
-COMPONENT_TARGETS += $(HARDWARE_FFRK3288)
-COMPONENT_TARGETS += $(HARDWARE_POIN2)
-COMPONENT_TARGETS += $(HARDWARE_RK3328_CC)
-COMPONENT_TARGETS += $(HARDWARE_KHADAS_EDGE)
-COMPONENT_TARGETS += $(HARDWARE_LEEZ_P710)
-COMPONENT_TARGETS += $(HARDWARE_M201)
-COMPONENT_TARGETS += $(HARDWARE_MXV)
-COMPONENT_TARGETS += $(HARDWARE_P201)
-COMPONENT_TARGETS += $(HARDWARE_NEXBOX_A95X)
-COMPONENT_TARGETS += $(HARDWARE_ODROID_C2)
-COMPONENT_TARGETS += $(HARDWARE_P212)
-COMPONENT_TARGETS += $(HARDWARE_KHADAS_VIM)
-COMPONENT_TARGETS += $(HARDWARE_Q201)
-COMPONENT_TARGETS += $(HARDWARE_ENYBOX_X2)
-COMPONENT_TARGETS += $(HARDWARE_KHADAS_VIM2)
-COMPONENT_TARGETS += $(HARDWARE_NIT6Q)
-COMPONENT_TARGETS += $(HARDWARE_OKMX6DL_C)
-COMPONENT_TARGETS += $(HARDWARE_OKMX6Q_C)
-COMPONENT_TARGETS += $(HARDWARE_BONE_BLACK)
-COMPONENT_TARGETS += $(HARDWARE_OMAP5UEVM)
-COMPONENT_TARGETS += $(HARDWARE_DRA7XXEVM)
-COMPONENT_TARGETS += $(HARDWARE_CI20)
-COMPONENT_TARGETS += $(HARDWARE_BAIKAL_T1)
-COMPONENT_TARGETS += $(HARDWARE_BAIKAL_M1)
-COMPONENT_TARGETS += $(HARDWARE_S824L)
-COMPONENT_TARGETS += $(HARDWARE_VESNIN)
-COMPONENT_TARGETS += $(HARDWARE_S824L_LSB)
-COMPONENT_TARGETS += $(HARDWARE_VESNIN_LSB)
-COMPONENT_TARGETS += $(HARDWARE_TL2WK2)
-COMPONENT_TARGETS += $(HARDWARE_TL2SV2)
-COMPONENT_TARGETS += $(HARDWARE_TL2WK2_LSB)
-COMPONENT_TARGETS += $(HARDWARE_TL2SV2_LSB)
-COMPONENT_TARGETS += $(HARDWARE_VISIONFIVE2)
-COMPONENT_TARGETS += $(HARDWARE_SIFIVE_U740)
-
-
-NEED_ABS_PATH      = true
-COMPONENT_IS_3PP   = true
-
-
-include ../../../build-system/constants.mk
-
-
-SOURCE_REQUIRES   = sources/GNU/glibc/2.37
-SOURCE_REQUIRES  += sources/iana/tz
-
-
-REQUIRES          = dev/kernel-headers
-REQUIRES         += dev/gcc-runtime/12.2.0
-
-# ======= __END_OF_REQUIRES__ =======
-
-
-version           = 2.37
-tar_xz_archive    = $(SRC_PACKAGE_PATH)/GNU/glibc/$(version)/glibc-$(version).tar.xz
-
-tz_version            = 2023c
-tar_gz_code_archive   = $(SRC_PACKAGE_PATH)/iana/tz/tzcode$(tz_version).tar.gz
-tar_gz_data_archive   = $(SRC_PACKAGE_PATH)/iana/tz/tzdata$(tz_version).tar.gz
-exclude_list          = $(CURDIR)/tz-exclude.list
-
-SRC_ARCHIVE       = $(tar_xz_archive)
-SRC_DIR           = $(TARGET_BUILD_DIR)/glibc-$(version)
-src_dir_name      = glibc-$(version)
-src_done          = $(TARGET_BUILD_DIR)/.source-done
-
-PATCHES           = PATCHES
-
-build_dir         = $(CURDIR)/$(TARGET_BUILD_DIR)/build
-build_target      = $(CURDIR)/$(TARGET_BUILD_DIR)/.built
-install_target    = $(CURDIR)/$(TARGET_BUILD_DIR)/.installed
-
-
-build_glibc_pkg   = $(CURDIR)/$(TARGET_BUILD_DIR)/.glibc_pkg_done
-
-
-OPTIMIZATION_FLAGS  = -O3
-
-
-####### Targets
-
-PKG_GROUP = libs
-
-#
-# *PKG_NAME & *PKG_VERSION shouldn't be a reference to value.
-#
-GLIBC_PKG_NAME                = glibc
-GLIBC_PKG_VERSION             = 2.37
-GLIBC_PKG_ARCH                = $(PKGARCH)
-GLIBC_PKG_DISTRO_NAME         = $(DISTRO_NAME)
-GLIBC_PKG_DISTRO_VERSION      = $(DISTRO_VERSION)
-GLIBC_PKG_GROUP               = $(PKG_GROUP)
-###                            |---handy-ruler-------------------------------|
-GLIBC_PKG_SHORT_DESCRIPTION   = GNU C libraries
-GLIBC_PKG_URL                 = $(BUG_URL)
-GLIBC_PKG_LICENSE             = GPLv2
-GLIBC_PKG_DESCRIPTION_FILE    = $(TARGET_BUILD_DIR)/$(GLIBC_PKG_NAME)-pkg-description
-GLIBC_PKG_DESCRIPTION_FILE_IN = $(GLIBC_PKG_NAME)-pkg-description.in
-GLIBC_PKG_INSTALL_SCRIPT      = $(GLIBC_PKG_NAME)-pkg-install.sh
-
-GLIBC_PKG        = $(CURDIR)/$(TARGET_BUILD_DIR)/$(GLIBC_PKG_NAME)-package
-
-pkg_basename     = $(GLIBC_PKG_NAME)-$(GLIBC_PKG_VERSION)-$(GLIBC_PKG_ARCH)-$(GLIBC_PKG_DISTRO_NAME)-$(GLIBC_PKG_DISTRO_VERSION)
-
-pkg_archive      = $(TARGET_BUILD_DIR)/$(PKG_GROUP)/$(pkg_basename).$(pkg_arch_suffix)
-pkg_certificate  = $(call cert-name,$(pkg_archive))
-pkg_signature    = $(call sign-name,$(pkg_archive))
-pkg_description  = $(call desc-name,$(pkg_archive))
-products         = $(call pkg-files,$(pkg_archive))
-
-BUILD_TARGETS    = $(build_target)
-BUILD_TARGETS   += $(install_target)
-BUILD_TARGETS   += $(build_glibc_pkg)
-
-PRODUCT_TARGETS  = $(products)
-
-ROOTFS_TARGETS   = $(pkg_archive)
-
-
-include ../../../build-system/core.mk
-
-
-env_sysroot = install_root=$(GLIBC_PKG)
-
-
-extra_configure_switches  += --libdir=/usr/lib$(LIBSUFFIX)
-extra_configure_switches  += --with-headers=$(TARGET_DEST_DIR)/usr/include
-extra_configure_switches  += --enable-kernel=2.6.36
-extra_configure_switches  += --enable-add-ons
-extra_configure_switches  += --enable-profile
-extra_configure_switches  += --enable-bind-now
-extra_configure_switches  += --without-gd
-extra_configure_switches  += --without-cvs
-
-
-extra_configure_switches  += libc_cv_slibdir=/lib$(LIBSUFFIX)
-extra_configure_switches  += libc_cv_rtlddir=/lib$(LIBSUFFIX)
-
-
-#
-# Time Zone config:
-#
-CFLAGS += -DHAVE_LOCALTIME_RZ=0 -DNETBSD_INSPIRED=0
-
-
-$(src_done): $(SRC_ARCHIVE) $(PATCHES_DEP)
-	$(UNPACK_SRC_ARCHIVE)
-	@tar --exclude-from=$(exclude_list) -xzf $(tar_gz_code_archive) -C $(SRC_DIR)/timezone
-	@tar --exclude-from=$(exclude_list) -xzf $(tar_gz_data_archive) -C $(SRC_DIR)/timezone
-	$(APPLY_PATCHES)
-	@touch $@
-
-$(build_target): $(src_done)
-	@mkdir -p $(build_dir)
-	@echo "slibdir=/lib$(LIBSUFFIX)" >> $(build_dir)/configparms
-	@echo "rtlddir=/lib$(LIBSUFFIX)" >> $(build_dir)/configparms
-	@cd $(build_dir) && $(BUILD_ENVIRONMENT) $(env_sysroot) $(extra_environment) ../$(src_dir_name)/configure \
-	  --prefix=/usr                \
-	  --build=$(BUILD)             \
-	  --host=$(TARGET)             \
-	  $(extra_configure_switches)
-	@cd $(build_dir) && $(BUILD_ENVIRONMENT) $(MAKE)
-	@touch $@
-
-$(install_target): $(build_target)
-	@mkdir -p $(GLIBC_PKG)
-	@cd $(build_dir) && $(BUILD_ENVIRONMENT) $(MAKE) -j1 install $(env_sysroot)
-	# ======= fake LOCALES installation to allow implementation of iconv and intl into GLIBC =======
-	@cd $(build_dir) && $(BUILD_ENVIRONMENT) $(MAKE) -j1 SUPPORTED-LOCALES="" \
-	                                                     localedata/install-locales $(env_sysroot)
-	# ======= create librt.so symlink if not exists: =======
-	@( cd $(GLIBC_PKG)/usr/lib$(LIBSUFFIX) ; \
-	   if [ ! -L librt.so -a -e "../../lib$(LIBSUFFIX)/librt.so.1" ] ; then \
-	     ln -sf ../../lib$(LIBSUFFIX)/librt.so.1 librt.so ; \
-	   fi ; \
-	 )
-	# ======= create libdl.so symlink if not exists: =======
-	@( cd $(GLIBC_PKG)/usr/lib$(LIBSUFFIX) ; \
-	   if [ ! -L libdl.so -a -e "../../lib$(LIBSUFFIX)/libdl.so.2" ] ; then \
-	     ln -sf ../../lib$(LIBSUFFIX)/libdl.so.2 libdl.so ; \
-	   fi ; \
-	 )
-	@touch $@
-
-$(build_glibc_pkg): $(install_target)
-	# ======= Install nscd.conf =======
-	@mkdir -p $(GLIBC_PKG)/etc
-	@cat $(SRC_DIR)/nscd/nscd.conf > $(GLIBC_PKG)/etc/nscd.conf.new
-	@mkdir -p $(GLIBC_PKG)/var/db/nscd
-	@mkdir -p $(GLIBC_PKG)/var/run/nscd
-	# ======= Install profile.d scripts =======
-	@mkdir -p $(GLIBC_PKG)/etc/profile.d
-	@cat $(CURDIR)/profile.d/glibc.csh > $(GLIBC_PKG)/etc/profile.d/glibc.csh.new
-	@cat $(CURDIR)/profile.d/glibc.sh  > $(GLIBC_PKG)/etc/profile.d/glibc.sh.new
-	@chmod 755 $(GLIBC_PKG)/etc/profile.d/*
-	# ======= create sln symlink in /bin =======
-	@mkdir -p $(GLIBC_PKG)/bin
-	@( cd $(GLIBC_PKG)/bin ; ln -sf ../sbin/sln sln )
-	# ======= Install Documentation =======
-	@rm -f $(GLIBC_PKG)/usr/share/info/dir
-	@gzip -9 $(GLIBC_PKG)/usr/share/info/*
-	@mkdir -p $(GLIBC_PKG)/usr/doc/glibc-$(version)
-	@cp -a  $(SRC_DIR)/COPYING* $(SRC_DIR)/LICENSES \
-	        $(GLIBC_PKG)/usr/doc/glibc-$(version)
-	@mkdir -p $(GLIBC_PKG)/usr/share/doc/glibc-$(version)/nscd
-	@( cd $(SRC_DIR) ; \
-	   cp -a COPYING* INSTALL LICENSES NEWS README \
-	         $(GLIBC_PKG)/usr/share/doc/glibc-$(version) ; \
-	 )
-	@cp -a $(SRC_DIR)/nscd/nscd.init $(GLIBC_PKG)/usr/share/doc/glibc-$(version)/nscd
-	@( cd $(SRC_DIR) ; \
-	   if [ -r ChangeLog ]; then \
-	     DOCSDIR=`echo $(GLIBC_PKG)/usr/share/doc/glibc-$(version)` ; \
-	     cat ChangeLog | head -n 1000 > $$DOCSDIR/ChangeLog ; \
-	     touch -r ChangeLog $$DOCSDIR/ChangeLog ; \
-	   fi \
-	 )
-	# ======= Install the same to $(TARGET_DEST_DIR) =======
-	$(call install-into-devenv, $(GLIBC_PKG))
-	# ======= Remove BS path from target scripts =======
-	@sed -i 's,$(BUILDSYSTEM),,g' $(GLIBC_PKG)/usr/bin/mtrace
-	# ======= Strip binaries =======
-	@( cd $(GLIBC_PKG) ; \
-	   find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs $(STRIP) --strip-debug 2> /dev/null ; \
-	   find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs $(STRIP) -g2 2> /dev/null ; \
-	   find . | xargs file | grep "current ar archive" | cut -f 1 -d : | xargs $(STRIP) -g 2> /dev/null ; \
-	   find . | xargs file | grep "relocatable" | cut -f 1 -d : | xargs $(STRIP) -g 2> /dev/null ; \
-	 )
-	@touch $@
-
-$(GLIBC_PKG_DESCRIPTION_FILE): $(GLIBC_PKG_DESCRIPTION_FILE_IN)
-	@cat $< | $(SED) -e "s/@VERSION@/$(version)/g" > $@
-
-$(pkg_certificate) : $(pkg_archive) ;
-$(pkg_signature)   : $(pkg_archive) ;
-$(pkg_description) : $(pkg_archive) ;
-
-$(pkg_archive): $(build_glibc_pkg) $(GLIBC_PKG_DESCRIPTION_FILE) $(GLIBC_PKG_INSTALL_SCRIPT)
-	@cp $(GLIBC_PKG_DESCRIPTION_FILE) $(GLIBC_PKG)/.DESCRIPTION
-	@cp $(GLIBC_PKG_INSTALL_SCRIPT) $(GLIBC_PKG)/.INSTALL
-	@$(BUILD_BIN_PKG_REQUIRES) $(GLIBC_PKG)/.REQUIRES
-	@echo "pkgname=$(GLIBC_PKG_NAME)"                            >  $(GLIBC_PKG)/.PKGINFO ; \
-	 echo "pkgver=$(GLIBC_PKG_VERSION)"                          >> $(GLIBC_PKG)/.PKGINFO ; \
-	 echo "arch=$(GLIBC_PKG_ARCH)"                               >> $(GLIBC_PKG)/.PKGINFO ; \
-	 echo "distroname=$(GLIBC_PKG_DISTRO_NAME)"                  >> $(GLIBC_PKG)/.PKGINFO ; \
-	 echo "distrover=$(GLIBC_PKG_DISTRO_VERSION)"                >> $(GLIBC_PKG)/.PKGINFO ; \
-	 echo "group=$(GLIBC_PKG_GROUP)"                             >> $(GLIBC_PKG)/.PKGINFO ; \
-	 echo "short_description=\"$(GLIBC_PKG_SHORT_DESCRIPTION)\"" >> $(GLIBC_PKG)/.PKGINFO ; \
-	 echo "url=$(GLIBC_PKG_URL)"                                 >> $(GLIBC_PKG)/.PKGINFO ; \
-	 echo "license=$(GLIBC_PKG_LICENSE)"                         >> $(GLIBC_PKG)/.PKGINFO
-	@$(PSEUDO) sh -c "cd $(GLIBC_PKG) && \
-	                  chown -R root:root . && \
-	                  $(MAKE_PACKAGE) -J --linkadd=yes $(GNUPG_OPTIONS) -m -d .. ."
Index: libs/glibc/2.37
===================================================================
--- libs/glibc/2.37	(revision 393)
+++ libs/glibc/2.37	(nonexistent)

Property changes on: libs/glibc/2.37
___________________________________________________________________
Deleted: svn:ignore
## -1,74 +0,0 ##
-
-# install dir
-dist
-
-# Target build dirs
-.a1x-newlib
-.a2x-newlib
-.at91sam7s-newlib
-
-.build-machine
-
-.a1x-glibc
-.a2x-glibc
-.h3-glibc
-.h5-glibc
-.i586-glibc
-.i686-glibc
-.imx6-glibc
-.jz47xx-glibc
-.makefile
-.am335x-glibc
-.omap543x-glibc
-.p5600-glibc
-.power8-glibc
-.power8le-glibc
-.power9-glibc
-.power9le-glibc
-.m1000-glibc
-.riscv64-glibc
-.rk328x-glibc
-.rk33xx-glibc
-.rk339x-glibc
-.rk358x-glibc
-.s8xx-glibc
-.s9xx-glibc
-.x86_64-glibc
-
-# Hidden files (each file)
-.makefile
-.dist
-.rootfs
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-.requires
-.requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Descriptions
-*.dsc
-*.txt
-
-# Default linux config files
-*.defconfig
-
-# backup copies
-*~
Index: libs/glibc/2.37-i18n/tz-exclude.list
===================================================================
--- libs/glibc/2.37-i18n/tz-exclude.list	(revision 393)
+++ libs/glibc/2.37-i18n/tz-exclude.list	(nonexistent)
@@ -1 +0,0 @@
-Makefile
Index: libs/glibc/2.37-i18n/glibc-i18n-pkg-install.sh
===================================================================
--- libs/glibc/2.37-i18n/glibc-i18n-pkg-install.sh	(revision 393)
+++ libs/glibc/2.37-i18n/glibc-i18n-pkg-install.sh	(nonexistent)
@@ -1,39 +0,0 @@
-#!/bin/sh
-
-# arg 1:  the new package version
-pre_install() {
-  /bin/true
-}
-
-# arg 1:  the new package version
-post_install() {
-  /bin/true
-}
-
-# arg 1:  the new package version
-# arg 2:  the old package version
-pre_update() {
-  /bin/true
-}
-
-# arg 1:  the new package version
-# arg 2:  the old package version
-post_update() {
-  post_install
-}
-
-# arg 1:  the old package version
-pre_remove() {
-  /bin/true
-}
-
-# arg 1:  the old package version
-post_remove() {
-  /bin/true
-}
-
-
-operation=$1
-shift
-
-$operation $*

Property changes on: libs/glibc/2.37-i18n/glibc-i18n-pkg-install.sh
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: libs/glibc/2.37-i18n/PATCHES
===================================================================
--- libs/glibc/2.37-i18n/PATCHES	(revision 393)
+++ libs/glibc/2.37-i18n/PATCHES	(nonexistent)
@@ -1,13 +0,0 @@
-
-../../../sources/GNU/glibc/2.37/patches/glibc-2.37-CVE-2023-25139.patch      -p0
-../../../sources/GNU/glibc/2.37/patches/glibc-2.37-i18n.patch                -p0
-../../../sources/GNU/glibc/2.37/patches/glibc-2.37-malloc-hooks.patch        -p0
-../../../sources/GNU/glibc/2.37/patches/glibc-2.37-en_US-no-am-pm.patch      -p0
-../../../sources/GNU/glibc/2.37/patches/glibc-2.37-reenable-DT-HASH.patch    -p0
-../../../sources/GNU/glibc/2.37/patches/glibc-2.37-locale-no-archive.patch   -p0
-../../../sources/GNU/glibc/2.37/patches/glibc-2.37-zonefile.patch            -p0
-../../../sources/GNU/glibc/2.37/patches/glibc-2.37-zoneinfo.patch
-../../../sources/iana/tz/patches/glibc-2.37-tzcode-2023c.patch               -p0
-
-../../../sources/GNU/glibc/2.37/patches/glibc-2.37-ppc64-interpreter.patch   -p0
-../../../sources/GNU/glibc/2.37/patches/glibc-2.37-x86_64-interpreter.patch  -p0
Index: libs/glibc/2.37-i18n/Makefile
===================================================================
--- libs/glibc/2.37-i18n/Makefile	(revision 393)
+++ libs/glibc/2.37-i18n/Makefile	(nonexistent)
@@ -1,239 +0,0 @@
-
-COMPONENT_TARGETS  = $(HARDWARE_INTEL_PC32)
-COMPONENT_TARGETS += $(HARDWARE_INTEL_PC64)
-COMPONENT_TARGETS += $(HARDWARE_EBOX_3350DX2)
-COMPONENT_TARGETS += $(HARDWARE_CB1X)
-COMPONENT_TARGETS += $(HARDWARE_CB2X)
-COMPONENT_TARGETS += $(HARDWARE_CB3X)
-COMPONENT_TARGETS += $(HARDWARE_ORANGE_PP2E)
-COMPONENT_TARGETS += $(HARDWARE_NANOPI_NEO)
-COMPONENT_TARGETS += $(HARDWARE_ORANGE_PP)
-COMPONENT_TARGETS += $(HARDWARE_ORANGE_PL2)
-COMPONENT_TARGETS += $(HARDWARE_ORANGE_PI5)
-COMPONENT_TARGETS += $(HARDWARE_ORANGE_PI5B)
-COMPONENT_TARGETS += $(HARDWARE_ORANGE_PI5P)
-COMPONENT_TARGETS += $(HARDWARE_ROCK_5B)
-COMPONENT_TARGETS += $(HARDWARE_WECHIP_TX6)
-COMPONENT_TARGETS += $(HARDWARE_REPKA_PI3)
-COMPONENT_TARGETS += $(HARDWARE_FFRK3288)
-COMPONENT_TARGETS += $(HARDWARE_POIN2)
-COMPONENT_TARGETS += $(HARDWARE_RK3328_CC)
-COMPONENT_TARGETS += $(HARDWARE_KHADAS_EDGE)
-COMPONENT_TARGETS += $(HARDWARE_LEEZ_P710)
-COMPONENT_TARGETS += $(HARDWARE_M201)
-COMPONENT_TARGETS += $(HARDWARE_MXV)
-COMPONENT_TARGETS += $(HARDWARE_P201)
-COMPONENT_TARGETS += $(HARDWARE_NEXBOX_A95X)
-COMPONENT_TARGETS += $(HARDWARE_ODROID_C2)
-COMPONENT_TARGETS += $(HARDWARE_P212)
-COMPONENT_TARGETS += $(HARDWARE_KHADAS_VIM)
-COMPONENT_TARGETS += $(HARDWARE_Q201)
-COMPONENT_TARGETS += $(HARDWARE_ENYBOX_X2)
-COMPONENT_TARGETS += $(HARDWARE_KHADAS_VIM2)
-COMPONENT_TARGETS += $(HARDWARE_NIT6Q)
-COMPONENT_TARGETS += $(HARDWARE_OKMX6DL_C)
-COMPONENT_TARGETS += $(HARDWARE_OKMX6Q_C)
-COMPONENT_TARGETS += $(HARDWARE_BONE_BLACK)
-COMPONENT_TARGETS += $(HARDWARE_OMAP5UEVM)
-COMPONENT_TARGETS += $(HARDWARE_DRA7XXEVM)
-COMPONENT_TARGETS += $(HARDWARE_CI20)
-COMPONENT_TARGETS += $(HARDWARE_BAIKAL_T1)
-COMPONENT_TARGETS += $(HARDWARE_BAIKAL_M1)
-COMPONENT_TARGETS += $(HARDWARE_S824L)
-COMPONENT_TARGETS += $(HARDWARE_VESNIN)
-COMPONENT_TARGETS += $(HARDWARE_S824L_LSB)
-COMPONENT_TARGETS += $(HARDWARE_VESNIN_LSB)
-COMPONENT_TARGETS += $(HARDWARE_TL2WK2)
-COMPONENT_TARGETS += $(HARDWARE_TL2SV2)
-COMPONENT_TARGETS += $(HARDWARE_TL2WK2_LSB)
-COMPONENT_TARGETS += $(HARDWARE_TL2SV2_LSB)
-COMPONENT_TARGETS += $(HARDWARE_VISIONFIVE2)
-COMPONENT_TARGETS += $(HARDWARE_SIFIVE_U740)
-
-
-NEED_ABS_PATH      = true
-COMPONENT_IS_3PP   = true
-
-
-include ../../../build-system/constants.mk
-
-
-
-SOURCE_REQUIRES   = sources/GNU/glibc/2.37
-SOURCE_REQUIRES  += sources/iana/tz
-
-REQUIRES          = libs/glibc/2.37
-
-# ======= __END_OF_REQUIRES__ =======
-
-
-version           = 2.37
-tar_xz_archive    = $(SRC_PACKAGE_PATH)/GNU/glibc/$(version)/glibc-$(version).tar.xz
-
-tz_version            = 2023c
-tar_gz_code_archive   = $(SRC_PACKAGE_PATH)/iana/tz/tzcode$(tz_version).tar.gz
-tar_gz_data_archive   = $(SRC_PACKAGE_PATH)/iana/tz/tzdata$(tz_version).tar.gz
-exclude_list          = $(CURDIR)/tz-exclude.list
-
-SRC_ARCHIVE       = $(tar_xz_archive)
-SRC_DIR           = $(TARGET_BUILD_DIR)/glibc-$(version)
-src_dir_name      = glibc-$(version)
-src_done          = $(TARGET_BUILD_DIR)/.source-done
-
-PATCHES           = PATCHES
-
-build_dir         = $(TARGET_BUILD_DIR)/build
-build_target      = $(TARGET_BUILD_DIR)/.built
-install_target    = $(TARGET_BUILD_DIR)/.installed
-
-
-OPTIMIZATION_FLAGS  = -O3
-
-
-####### Targets
-
-PKG_GROUP = libs
-
-#
-# *PKG_NAME & *PKG_VERSION shouldn't be a reference to value.
-#
-GLIBC_I18N_PKG_NAME                = glibc-i18n
-GLIBC_I18N_PKG_VERSION             = 2.37
-GLIBC_I18N_PKG_ARCH                = $(PKGARCH)
-GLIBC_I18N_PKG_DISTRO_NAME         = $(DISTRO_NAME)
-GLIBC_I18N_PKG_DISTRO_VERSION      = $(DISTRO_VERSION)
-GLIBC_I18N_PKG_GROUP               = $(PKG_GROUP)
-###                                 |---handy-ruler-------------------------------|
-GLIBC_I18N_PKG_SHORT_DESCRIPTION   = locale files
-GLIBC_I18N_PKG_URL                 = $(BUG_URL)
-GLIBC_I18N_PKG_LICENSE             = GPLv2
-GLIBC_I18N_PKG_DESCRIPTION_FILE    = $(TARGET_BUILD_DIR)/$(GLIBC_I18N_PKG_NAME)-pkg-description
-GLIBC_I18N_PKG_DESCRIPTION_FILE_IN = $(GLIBC_I18N_PKG_NAME)-pkg-description.in
-GLIBC_I18N_PKG_INSTALL_SCRIPT      = $(GLIBC_I18N_PKG_NAME)-pkg-install.sh
-
-GLIBC_I18N_PKG   = $(CURDIR)/$(TARGET_BUILD_DIR)/$(GLIBC_I18N_PKG_NAME)-package
-
-pkg_basename     = $(GLIBC_I18N_PKG_NAME)-$(GLIBC_I18N_PKG_VERSION)-$(GLIBC_I18N_PKG_ARCH)-$(GLIBC_I18N_PKG_DISTRO_NAME)-$(GLIBC_I18N_PKG_DISTRO_VERSION)
-
-pkg_archive      = $(TARGET_BUILD_DIR)/$(PKG_GROUP)/$(pkg_basename).$(pkg_arch_suffix)
-pkg_certificate  = $(call cert-name,$(pkg_archive))
-pkg_signature    = $(call sign-name,$(pkg_archive))
-pkg_description  = $(call desc-name,$(pkg_archive))
-products         = $(call pkg-files,$(pkg_archive))
-
-BUILD_TARGETS    = $(build_target)
-BUILD_TARGETS   += $(install_target)
-
-PRODUCT_TARGETS  = $(products)
-
-ROOTFS_TARGETS   = $(pkg_archive)
-
-
-include ../../../build-system/core.mk
-
-
-env_sysroot = install_root=$(GLIBC_I18N_PKG)
-
-
-ifeq ($(TOOLCHAIN),$(TOOLCHAIN_X86_64_GLIBC))
-OPTIMIZATION_FLAGS += -fPIC
-endif
-
-
-INSTALL_NOT_ARCHIVED_LOCALES = no
-
-ifneq ($(filter $(TOOLCHAIN),$(TOOLCHAIN_X86_64_GLIBC)   \
-                             $(TOOLCHAIN_POWER8_GLIBC)   \
-                             $(TOOLCHAIN_POWER8LE_GLIBC) \
-                             $(TOOLCHAIN_POWER9_GLIBC)   \
-                             $(TOOLCHAIN_POWER9LE_GLIBC)),)
-INSTALL_ALL_LOCALES = yes
-else
-INSTALL_ALL_LOCALES = no
-endif
-
-# ==================================================================
-LOCALES  = fa_IR/UTF-8
-# ==================================================================
-LOCALES += de_DE.UTF-8/UTF-8 de_DE/ISO-8859-1 de_DE@euro/ISO-8859-15
-# ==================================================================
-LOCALES += en_HK.UTF-8/UTF-8 en_HK/ISO-8859-1
-LOCALES += en_PH.UTF-8/UTF-8 en_PH/ISO-8859-1
-LOCALES += en_US.UTF-8/UTF-8 en_US/ISO-8859-1
-LOCALES += es_MX.UTF-8/UTF-8 es_MX/ISO-8859-1
-# ==================================================================
-LOCALES += fr_FR.UTF-8/UTF-8 fr_FR/ISO-8859-1 fr_FR@euro/ISO-8859-15
-LOCALES += it_IT.UTF-8/UTF-8 it_IT/ISO-8859-1 it_IT@euro/ISO-8859-15
-# ==================================================================
-LOCALES += ja_JP.EUC-JP/EUC-JP ja_JP.UTF-8/UTF-8
-LOCALES += en_RU.KOI8-R/KOI8-R en_RU.UTF-8/UTF-8 en_RU.CP1251/CP1251
-LOCALES += en_RU.ISO-8859-5/ISO-8859-5 en_RU/ISO-8859-5
-# ==================================================================
-LOCALES += ru_RU.KOI8-R/KOI8-R ru_RU.UTF-8/UTF-8 ru_RU.CP1251/CP1251
-LOCALES += ru_RU.ISO-8859-5/ISO-8859-5 ru_RU/ISO-8859-5
-# ==================================================================
-
-
-RADIX_BUILD_CC = $(X86_64_GLIBC_PATH)/$(X86_64_GLIBC_VERSION)/bin/$(X86_64_GLIBC_ARCH)-gcc
-
-
-$(src_done): $(SRC_ARCHIVE) $(PATCHES_DEP)
-	$(UNPACK_SRC_ARCHIVE)
-	@tar --exclude-from=$(exclude_list) -xzf $(tar_gz_code_archive) -C $(SRC_DIR)/timezone
-	@tar --exclude-from=$(exclude_list) -xzf $(tar_gz_data_archive) -C $(SRC_DIR)/timezone
-	$(APPLY_PATCHES)
-ifeq ($(INSTALL_NOT_ARCHIVED_LOCALES),yes)
-	@cd $(SRC_DIR)/localedata && sed -i 's,$\(LOCALEDEF),\$\(LOCALEDEF\) --no-archive,' Makefile
-endif
-	@touch $@
-
-$(build_target): $(src_done)
-	@mkdir -p $(build_dir)
-	@mkdir -p $(GLIBC_I18N_PKG)
-	@echo "slibdir=/lib$(LIBSUFFIX)" >> $(build_dir)/configparms
-	@cd $(build_dir) && CC=$(RADIX_BUILD_CC) ../$(src_dir_name)/configure \
-	  --prefix=/usr                  \
-	  --build=$(BUILD)               \
-	  --libdir=/usr/lib$(LIBSUFFIX)
-	@cd $(build_dir) && $(MAKE)
-ifneq ($(INSTALL_ALL_LOCALES),yes)
-	@cd $(build_dir) && $(MAKE) -j1 SUPPORTED-LOCALES="$(LOCALES)" localedata/install-locales $(env_sysroot)
-else
-	@cd $(build_dir) && $(MAKE) -j1 localedata/install-locales $(env_sysroot)
-endif
-	@touch $@
-
-$(install_target): $(build_target)
-ifneq ($(filter $(TOOLCHAIN),$(TOOLCHAIN_X86_64_GLIBC) \
-                             $(TOOLCHAIN_POWER8_GLIBC) \
-                             $(TOOLCHAIN_POWER9_GLIBC)),)
-	# ======= Install the same locales into /usr/lib32 (x86_32, ppc32 compat) directories =======
-	@mkdir -p $(GLIBC_I18N_PKG)/usr/lib32 && cp -rf $(GLIBC_I18N_PKG)/usr/lib/locale $(GLIBC_I18N_PKG)/usr/lib32
-endif
-	# ======= Install the same to $(TARGET_DEST_DIR) =======
-	$(call install-into-devenv, $(GLIBC_I18N_PKG))
-	@touch $@
-
-$(GLIBC_I18N_PKG_DESCRIPTION_FILE): $(GLIBC_I18N_PKG_DESCRIPTION_FILE_IN)
-	@cat $< | $(SED) -e "s/@VERSION@/$(version)/g" > $@
-
-$(pkg_certificate) : $(pkg_archive) ;
-$(pkg_signature)   : $(pkg_archive) ;
-$(pkg_description) : $(pkg_archive) ;
-
-$(pkg_archive): $(install_target) $(GLIBC_I18N_PKG_DESCRIPTION_FILE) $(GLIBC_I18N_PKG_INSTALL_SCRIPT)
-	@cp $(GLIBC_I18N_PKG_DESCRIPTION_FILE) $(GLIBC_I18N_PKG)/.DESCRIPTION
-	@cp $(GLIBC_I18N_PKG_INSTALL_SCRIPT) $(GLIBC_I18N_PKG)/.INSTALL
-	@$(BUILD_PKG_REQUIRES) $(GLIBC_I18N_PKG)/.REQUIRES
-	@echo "pkgname=$(GLIBC_I18N_PKG_NAME)"                            >  $(GLIBC_I18N_PKG)/.PKGINFO ; \
-	 echo "pkgver=$(GLIBC_I18N_PKG_VERSION)"                          >> $(GLIBC_I18N_PKG)/.PKGINFO ; \
-	 echo "arch=$(GLIBC_I18N_PKG_ARCH)"                               >> $(GLIBC_I18N_PKG)/.PKGINFO ; \
-	 echo "distroname=$(GLIBC_I18N_PKG_DISTRO_NAME)"                  >> $(GLIBC_I18N_PKG)/.PKGINFO ; \
-	 echo "distrover=$(GLIBC_I18N_PKG_DISTRO_VERSION)"                >> $(GLIBC_I18N_PKG)/.PKGINFO ; \
-	 echo "group=$(GLIBC_I18N_PKG_GROUP)"                             >> $(GLIBC_I18N_PKG)/.PKGINFO ; \
-	 echo "short_description=\"$(GLIBC_I18N_PKG_SHORT_DESCRIPTION)\"" >> $(GLIBC_I18N_PKG)/.PKGINFO ; \
-	 echo "url=$(GLIBC_I18N_PKG_URL)"                                 >> $(GLIBC_I18N_PKG)/.PKGINFO ; \
-	 echo "license=$(GLIBC_I18N_PKG_LICENSE)"                         >> $(GLIBC_I18N_PKG)/.PKGINFO
-	@$(PSEUDO) sh -c "cd $(GLIBC_I18N_PKG) && \
-	                  chown -R root:root . && \
-	                  $(MAKE_PACKAGE) -J --linkadd=yes $(GNUPG_OPTIONS) -m -d .. ."
Index: libs/glibc/2.37-i18n/glibc-i18n-pkg-description.in
===================================================================
--- libs/glibc/2.37-i18n/glibc-i18n-pkg-description.in	(revision 393)
+++ libs/glibc/2.37-i18n/glibc-i18n-pkg-description.in	(nonexistent)
@@ -1,19 +0,0 @@
-# HOW TO EDIT THIS FILE:
-# The "handy ruler" below makes it easier to edit a package description.  Line
-# up the first '|' above the ':' following the base package name, and the '|'
-# on the right side marks the last column you can put a character in.  You must
-# make exactly 11 lines for the formatting to be correct.  It's also
-# customary to leave one space after the ':'.
-
-          |-----handy-ruler------------------------------------------------------|
-glibc-i18n: glibc-i18n @VERSION@ (locale files from glibc)
-glibc-i18n:
-glibc-i18n: These files go in /usr/lib/locale and /usr/share/i18n/ to provide
-glibc-i18n: internationalization support. You'll need this package unless you
-glibc-i18n: will be using US English only.
-glibc-i18n:
-glibc-i18n:
-glibc-i18n:
-glibc-i18n:
-glibc-i18n:
-glibc-i18n:
Index: libs/glibc/2.37-i18n
===================================================================
--- libs/glibc/2.37-i18n	(revision 393)
+++ libs/glibc/2.37-i18n	(nonexistent)

Property changes on: libs/glibc/2.37-i18n
___________________________________________________________________
Deleted: svn:ignore
## -1,74 +0,0 ##
-
-# install dir
-dist
-
-# Target build dirs
-.a1x-newlib
-.a2x-newlib
-.at91sam7s-newlib
-
-.build-machine
-
-.a1x-glibc
-.a2x-glibc
-.h3-glibc
-.h5-glibc
-.i586-glibc
-.i686-glibc
-.imx6-glibc
-.jz47xx-glibc
-.makefile
-.am335x-glibc
-.omap543x-glibc
-.p5600-glibc
-.power8-glibc
-.power8le-glibc
-.power9-glibc
-.power9le-glibc
-.m1000-glibc
-.riscv64-glibc
-.rk328x-glibc
-.rk33xx-glibc
-.rk339x-glibc
-.rk358x-glibc
-.s8xx-glibc
-.s9xx-glibc
-.x86_64-glibc
-
-# Hidden files (each file)
-.makefile
-.dist
-.rootfs
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-.requires
-.requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Descriptions
-*.dsc
-*.txt
-
-# Default linux config files
-*.defconfig
-
-# backup copies
-*~
Index: libs/glibc/2.40/Makefile
===================================================================
--- libs/glibc/2.40/Makefile	(nonexistent)
+++ libs/glibc/2.40/Makefile	(revision 394)
@@ -0,0 +1,270 @@
+
+COMPONENT_TARGETS  = $(HARDWARE_INTEL_PC32)
+COMPONENT_TARGETS += $(HARDWARE_INTEL_PC64)
+COMPONENT_TARGETS += $(HARDWARE_EBOX_3350DX2)
+COMPONENT_TARGETS += $(HARDWARE_CB1X)
+COMPONENT_TARGETS += $(HARDWARE_CB2X)
+COMPONENT_TARGETS += $(HARDWARE_CB3X)
+COMPONENT_TARGETS += $(HARDWARE_ORANGE_PP2E)
+COMPONENT_TARGETS += $(HARDWARE_NANOPI_NEO)
+COMPONENT_TARGETS += $(HARDWARE_ORANGE_PP)
+COMPONENT_TARGETS += $(HARDWARE_ORANGE_PL2)
+COMPONENT_TARGETS += $(HARDWARE_ORANGE_PI5)
+COMPONENT_TARGETS += $(HARDWARE_ORANGE_PI5B)
+COMPONENT_TARGETS += $(HARDWARE_ORANGE_PI5P)
+COMPONENT_TARGETS += $(HARDWARE_ROCK_5B)
+COMPONENT_TARGETS += $(HARDWARE_WECHIP_TX6)
+COMPONENT_TARGETS += $(HARDWARE_REPKA_PI3)
+COMPONENT_TARGETS += $(HARDWARE_FFRK3288)
+COMPONENT_TARGETS += $(HARDWARE_POIN2)
+COMPONENT_TARGETS += $(HARDWARE_RK3328_CC)
+COMPONENT_TARGETS += $(HARDWARE_KHADAS_EDGE)
+COMPONENT_TARGETS += $(HARDWARE_LEEZ_P710)
+COMPONENT_TARGETS += $(HARDWARE_M201)
+COMPONENT_TARGETS += $(HARDWARE_MXV)
+COMPONENT_TARGETS += $(HARDWARE_P201)
+COMPONENT_TARGETS += $(HARDWARE_NEXBOX_A95X)
+COMPONENT_TARGETS += $(HARDWARE_ODROID_C2)
+COMPONENT_TARGETS += $(HARDWARE_P212)
+COMPONENT_TARGETS += $(HARDWARE_KHADAS_VIM)
+COMPONENT_TARGETS += $(HARDWARE_Q201)
+COMPONENT_TARGETS += $(HARDWARE_ENYBOX_X2)
+COMPONENT_TARGETS += $(HARDWARE_KHADAS_VIM2)
+COMPONENT_TARGETS += $(HARDWARE_NIT6Q)
+COMPONENT_TARGETS += $(HARDWARE_OKMX6DL_C)
+COMPONENT_TARGETS += $(HARDWARE_OKMX6Q_C)
+COMPONENT_TARGETS += $(HARDWARE_BONE_BLACK)
+COMPONENT_TARGETS += $(HARDWARE_OMAP5UEVM)
+COMPONENT_TARGETS += $(HARDWARE_DRA7XXEVM)
+COMPONENT_TARGETS += $(HARDWARE_CI20)
+COMPONENT_TARGETS += $(HARDWARE_BAIKAL_T1)
+COMPONENT_TARGETS += $(HARDWARE_BAIKAL_M1)
+COMPONENT_TARGETS += $(HARDWARE_S824L)
+COMPONENT_TARGETS += $(HARDWARE_VESNIN)
+COMPONENT_TARGETS += $(HARDWARE_S824L_LSB)
+COMPONENT_TARGETS += $(HARDWARE_VESNIN_LSB)
+COMPONENT_TARGETS += $(HARDWARE_TL2WK2)
+COMPONENT_TARGETS += $(HARDWARE_TL2SV2)
+COMPONENT_TARGETS += $(HARDWARE_TL2WK2_LSB)
+COMPONENT_TARGETS += $(HARDWARE_TL2SV2_LSB)
+COMPONENT_TARGETS += $(HARDWARE_VISIONFIVE2)
+COMPONENT_TARGETS += $(HARDWARE_SIFIVE_U740)
+
+
+NEED_ABS_PATH      = true
+COMPONENT_IS_3PP   = true
+
+
+include ../../../build-system/constants.mk
+
+
+SOURCE_REQUIRES   = sources/GNU/glibc/2.40
+SOURCE_REQUIRES  += sources/iana/tz
+
+
+REQUIRES          = dev/kernel-headers
+REQUIRES         += dev/gcc-runtime/14.2.0
+
+# ======= __END_OF_REQUIRES__ =======
+
+
+version           = 2.40
+tar_xz_archive    = $(SRC_PACKAGE_PATH)/GNU/glibc/$(version)/glibc-$(version).tar.xz
+
+tz_version            = 2024b
+tar_gz_code_archive   = $(SRC_PACKAGE_PATH)/iana/tz/tzcode$(tz_version).tar.gz
+tar_gz_data_archive   = $(SRC_PACKAGE_PATH)/iana/tz/tzdata$(tz_version).tar.gz
+exclude_list          = $(CURDIR)/tz-exclude.list
+
+SRC_ARCHIVE       = $(tar_xz_archive)
+SRC_DIR           = $(TARGET_BUILD_DIR)/glibc-$(version)
+src_dir_name      = glibc-$(version)
+src_done          = $(TARGET_BUILD_DIR)/.source-done
+
+PATCHES           = PATCHES
+
+build_dir         = $(CURDIR)/$(TARGET_BUILD_DIR)/build
+build_target      = $(CURDIR)/$(TARGET_BUILD_DIR)/.built
+install_target    = $(CURDIR)/$(TARGET_BUILD_DIR)/.installed
+
+
+build_glibc_pkg   = $(CURDIR)/$(TARGET_BUILD_DIR)/.glibc_pkg_done
+
+
+OPTIMIZATION_FLAGS  = -O3
+
+
+####### Targets
+
+PKG_GROUP = libs
+
+#
+# *PKG_NAME & *PKG_VERSION shouldn't be a reference to value.
+#
+GLIBC_PKG_NAME                = glibc
+GLIBC_PKG_VERSION             = 2.40
+GLIBC_PKG_ARCH                = $(PKGARCH)
+GLIBC_PKG_DISTRO_NAME         = $(DISTRO_NAME)
+GLIBC_PKG_DISTRO_VERSION      = $(DISTRO_VERSION)
+GLIBC_PKG_GROUP               = $(PKG_GROUP)
+###                            |---handy-ruler-------------------------------|
+GLIBC_PKG_SHORT_DESCRIPTION   = GNU C libraries
+GLIBC_PKG_URL                 = $(BUG_URL)
+GLIBC_PKG_LICENSE             = GPLv2
+GLIBC_PKG_DESCRIPTION_FILE    = $(TARGET_BUILD_DIR)/$(GLIBC_PKG_NAME)-pkg-description
+GLIBC_PKG_DESCRIPTION_FILE_IN = $(GLIBC_PKG_NAME)-pkg-description.in
+GLIBC_PKG_INSTALL_SCRIPT      = $(GLIBC_PKG_NAME)-pkg-install.sh
+
+GLIBC_PKG        = $(CURDIR)/$(TARGET_BUILD_DIR)/$(GLIBC_PKG_NAME)-package
+
+pkg_basename     = $(GLIBC_PKG_NAME)-$(GLIBC_PKG_VERSION)-$(GLIBC_PKG_ARCH)-$(GLIBC_PKG_DISTRO_NAME)-$(GLIBC_PKG_DISTRO_VERSION)
+
+pkg_archive      = $(TARGET_BUILD_DIR)/$(PKG_GROUP)/$(pkg_basename).$(pkg_arch_suffix)
+pkg_certificate  = $(call cert-name,$(pkg_archive))
+pkg_signature    = $(call sign-name,$(pkg_archive))
+pkg_description  = $(call desc-name,$(pkg_archive))
+products         = $(call pkg-files,$(pkg_archive))
+
+BUILD_TARGETS    = $(build_target)
+BUILD_TARGETS   += $(install_target)
+BUILD_TARGETS   += $(build_glibc_pkg)
+
+PRODUCT_TARGETS  = $(products)
+
+ROOTFS_TARGETS   = $(pkg_archive)
+
+
+include ../../../build-system/core.mk
+
+
+env_sysroot = install_root=$(GLIBC_PKG)
+
+
+extra_configure_switches  += --libdir=/usr/lib$(LIBSUFFIX)
+extra_configure_switches  += --with-headers=$(TARGET_DEST_DIR)/usr/include
+extra_configure_switches  += --enable-kernel=2.6.36
+extra_configure_switches  += --enable-add-ons
+extra_configure_switches  += --enable-profile
+extra_configure_switches  += --enable-bind-now
+extra_configure_switches  += --without-gd
+extra_configure_switches  += --without-cvs
+
+
+extra_configure_switches  += libc_cv_slibdir=/lib$(LIBSUFFIX)
+extra_configure_switches  += libc_cv_rtlddir=/lib$(LIBSUFFIX)
+
+
+#
+# Time Zone config:
+#
+CFLAGS += -DHAVE_LOCALTIME_RZ=0 -DNETBSD_INSPIRED=0
+
+
+$(src_done): $(SRC_ARCHIVE) $(PATCHES_DEP)
+	$(UNPACK_SRC_ARCHIVE)
+	@tar --exclude-from=$(exclude_list) -xzf $(tar_gz_code_archive) -C $(SRC_DIR)/timezone
+	@tar --exclude-from=$(exclude_list) -xzf $(tar_gz_data_archive) -C $(SRC_DIR)/timezone
+	$(APPLY_PATCHES)
+	@touch $@
+
+$(build_target): $(src_done)
+	@mkdir -p $(build_dir)
+	@echo "slibdir=/lib$(LIBSUFFIX)" >> $(build_dir)/configparms
+	@echo "rtlddir=/lib$(LIBSUFFIX)" >> $(build_dir)/configparms
+	@cd $(build_dir) && $(BUILD_ENVIRONMENT) $(env_sysroot) $(extra_environment) ../$(src_dir_name)/configure \
+	  --prefix=/usr                \
+	  --build=$(BUILD)             \
+	  --host=$(TARGET)             \
+	  $(extra_configure_switches)
+	@cd $(build_dir) && $(BUILD_ENVIRONMENT) $(MAKE)
+	@touch $@
+
+$(install_target): $(build_target)
+	@mkdir -p $(GLIBC_PKG)
+	@cd $(build_dir) && $(BUILD_ENVIRONMENT) $(MAKE) -j1 install $(env_sysroot)
+	# ======= fake LOCALES installation to allow implementation of iconv and intl into GLIBC =======
+	@cd $(build_dir) && $(BUILD_ENVIRONMENT) $(MAKE) -j1 SUPPORTED-LOCALES="" \
+	                                                     localedata/install-locales $(env_sysroot)
+	# ======= create librt.so symlink if not exists: =======
+	@( cd $(GLIBC_PKG)/usr/lib$(LIBSUFFIX) ; \
+	   if [ ! -L librt.so -a -e "../../lib$(LIBSUFFIX)/librt.so.1" ] ; then \
+	     ln -sf ../../lib$(LIBSUFFIX)/librt.so.1 librt.so ; \
+	   fi ; \
+	 )
+	# ======= create libdl.so symlink if not exists: =======
+	@( cd $(GLIBC_PKG)/usr/lib$(LIBSUFFIX) ; \
+	   if [ ! -L libdl.so -a -e "../../lib$(LIBSUFFIX)/libdl.so.2" ] ; then \
+	     ln -sf ../../lib$(LIBSUFFIX)/libdl.so.2 libdl.so ; \
+	   fi ; \
+	 )
+	@touch $@
+
+$(build_glibc_pkg): $(install_target)
+	# ======= Install nscd.conf =======
+	@mkdir -p $(GLIBC_PKG)/etc
+	@cat $(SRC_DIR)/nscd/nscd.conf > $(GLIBC_PKG)/etc/nscd.conf.new
+	@mkdir -p $(GLIBC_PKG)/var/db/nscd
+	@mkdir -p $(GLIBC_PKG)/var/run/nscd
+	# ======= Install profile.d scripts =======
+	@mkdir -p $(GLIBC_PKG)/etc/profile.d
+	@cat $(CURDIR)/profile.d/glibc.csh > $(GLIBC_PKG)/etc/profile.d/glibc.csh.new
+	@cat $(CURDIR)/profile.d/glibc.sh  > $(GLIBC_PKG)/etc/profile.d/glibc.sh.new
+	@chmod 755 $(GLIBC_PKG)/etc/profile.d/*
+	# ======= create sln symlink in /bin =======
+	@mkdir -p $(GLIBC_PKG)/bin
+	@( cd $(GLIBC_PKG)/bin ; ln -sf ../sbin/sln sln )
+	# ======= Install Documentation =======
+	@rm -f $(GLIBC_PKG)/usr/share/info/dir
+	@gzip -9 $(GLIBC_PKG)/usr/share/info/*
+	@mkdir -p $(GLIBC_PKG)/usr/doc/glibc-$(version)
+	@cp -a  $(SRC_DIR)/COPYING* $(SRC_DIR)/LICENSES \
+	        $(GLIBC_PKG)/usr/doc/glibc-$(version)
+	@mkdir -p $(GLIBC_PKG)/usr/share/doc/glibc-$(version)/nscd
+	@( cd $(SRC_DIR) ; \
+	   cp -a COPYING* INSTALL LICENSES NEWS README \
+	         $(GLIBC_PKG)/usr/share/doc/glibc-$(version) ; \
+	 )
+	@cp -a $(SRC_DIR)/nscd/nscd.init $(GLIBC_PKG)/usr/share/doc/glibc-$(version)/nscd
+	@( cd $(SRC_DIR) ; \
+	   if [ -r ChangeLog ]; then \
+	     DOCSDIR=`echo $(GLIBC_PKG)/usr/share/doc/glibc-$(version)` ; \
+	     cat ChangeLog | head -n 1000 > $$DOCSDIR/ChangeLog ; \
+	     touch -r ChangeLog $$DOCSDIR/ChangeLog ; \
+	   fi \
+	 )
+	# ======= Install the same to $(TARGET_DEST_DIR) =======
+	$(call install-into-devenv, $(GLIBC_PKG))
+	# ======= Remove BS path from target scripts =======
+	@sed -i 's,$(BUILDSYSTEM),,g' $(GLIBC_PKG)/usr/bin/mtrace
+	# ======= Strip binaries =======
+	@( cd $(GLIBC_PKG) ; \
+	   find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs $(STRIP) --strip-debug 2> /dev/null ; \
+	   find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs $(STRIP) -g2 2> /dev/null ; \
+	   find . | xargs file | grep "current ar archive" | cut -f 1 -d : | xargs $(STRIP) -g 2> /dev/null ; \
+	   find . | xargs file | grep "relocatable" | cut -f 1 -d : | xargs $(STRIP) -g 2> /dev/null ; \
+	 )
+	@touch $@
+
+$(GLIBC_PKG_DESCRIPTION_FILE): $(GLIBC_PKG_DESCRIPTION_FILE_IN)
+	@cat $< | $(SED) -e "s/@VERSION@/$(version)/g" > $@
+
+$(pkg_certificate) : $(pkg_archive) ;
+$(pkg_signature)   : $(pkg_archive) ;
+$(pkg_description) : $(pkg_archive) ;
+
+$(pkg_archive): $(build_glibc_pkg) $(GLIBC_PKG_DESCRIPTION_FILE) $(GLIBC_PKG_INSTALL_SCRIPT)
+	@cp $(GLIBC_PKG_DESCRIPTION_FILE) $(GLIBC_PKG)/.DESCRIPTION
+	@cp $(GLIBC_PKG_INSTALL_SCRIPT) $(GLIBC_PKG)/.INSTALL
+	@$(BUILD_BIN_PKG_REQUIRES) $(GLIBC_PKG)/.REQUIRES
+	@echo "pkgname=$(GLIBC_PKG_NAME)"                            >  $(GLIBC_PKG)/.PKGINFO ; \
+	 echo "pkgver=$(GLIBC_PKG_VERSION)"                          >> $(GLIBC_PKG)/.PKGINFO ; \
+	 echo "arch=$(GLIBC_PKG_ARCH)"                               >> $(GLIBC_PKG)/.PKGINFO ; \
+	 echo "distroname=$(GLIBC_PKG_DISTRO_NAME)"                  >> $(GLIBC_PKG)/.PKGINFO ; \
+	 echo "distrover=$(GLIBC_PKG_DISTRO_VERSION)"                >> $(GLIBC_PKG)/.PKGINFO ; \
+	 echo "group=$(GLIBC_PKG_GROUP)"                             >> $(GLIBC_PKG)/.PKGINFO ; \
+	 echo "short_description=\"$(GLIBC_PKG_SHORT_DESCRIPTION)\"" >> $(GLIBC_PKG)/.PKGINFO ; \
+	 echo "url=$(GLIBC_PKG_URL)"                                 >> $(GLIBC_PKG)/.PKGINFO ; \
+	 echo "license=$(GLIBC_PKG_LICENSE)"                         >> $(GLIBC_PKG)/.PKGINFO
+	@$(PSEUDO) sh -c "cd $(GLIBC_PKG) && \
+	                  chown -R root:root . && \
+	                  $(MAKE_PACKAGE) -J --linkadd=yes $(GNUPG_OPTIONS) -m -d .. ."
Index: libs/glibc/2.40/PATCHES
===================================================================
--- libs/glibc/2.40/PATCHES	(nonexistent)
+++ libs/glibc/2.40/PATCHES	(revision 394)
@@ -0,0 +1,12 @@
+
+../../../sources/GNU/glibc/2.40/patches/glibc-2.40-i18n.patch                -p0
+../../../sources/GNU/glibc/2.40/patches/glibc-2.40-malloc-hooks.patch        -p0
+../../../sources/GNU/glibc/2.40/patches/glibc-2.40-en_US-no-am-pm.patch      -p0
+../../../sources/GNU/glibc/2.40/patches/glibc-2.40-reenable-DT-HASH.patch    -p0
+../../../sources/GNU/glibc/2.40/patches/glibc-2.40-locale-no-archive.patch   -p0
+../../../sources/GNU/glibc/2.40/patches/glibc-2.40-zonefile.patch            -p0
+../../../sources/GNU/glibc/2.40/patches/glibc-2.40-zoneinfo.patch
+../../../sources/iana/tz/patches/glibc-2.40-tzcode-2024b.patch               -p0
+
+../../../sources/GNU/glibc/2.40/patches/glibc-2.40-ppc64-interpreter.patch   -p0
+../../../sources/GNU/glibc/2.40/patches/glibc-2.40-x86_64-interpreter.patch  -p0
Index: libs/glibc/2.40/glibc-pkg-description.in
===================================================================
--- libs/glibc/2.40/glibc-pkg-description.in	(nonexistent)
+++ libs/glibc/2.40/glibc-pkg-description.in	(revision 394)
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.  Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in.  You must
+# make exactly 11 lines for the formatting to be correct.  It's also
+# customary to leave one space after the ':'.
+
+     |-----handy-ruler------------------------------------------------------|
+glibc: glibc @VERSION@ (GNU C libraries)
+glibc:
+glibc: This package contains the GNU C libraries and header files.
+glibc: The GNU C library was written originally by Roland McGrath,
+glibc: and is currently maintained by Ulrich Drepper. Some parts of
+glibc: the library were contributed or worked on by other people.
+glibc:
+glibc:
+glibc:
+glibc:
+glibc:
Index: libs/glibc/2.40/glibc-pkg-install.sh
===================================================================
--- libs/glibc/2.40/glibc-pkg-install.sh	(nonexistent)
+++ libs/glibc/2.40/glibc-pkg-install.sh	(revision 394)
@@ -0,0 +1,2219 @@
+#!/bin/sh
+
+# Preserve new files
+install_file() {
+  NEW="$1"
+  OLD="`dirname $NEW`/`basename $NEW .new`"
+  # If there's no file by that name, mv it over:
+  if [ ! -r $OLD ]; then
+    mv $NEW $OLD
+  elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy
+    rm $NEW
+  fi
+  # Otherwise, we leave the .new copy for the admin to consider...
+}
+
+
+# arg 1:  the new package version
+pre_install() {
+  /bin/true
+}
+
+# arg 1:  the new package version
+post_install() {
+  install_file etc/nscd.conf.new
+  install_file etc/profile.d/glibc.csh.new
+  install_file etc/profile.d/glibc.sh.new
+  # ======= Clearly you already decided this issue. :-) =======
+  rm -f etc/profile.d/glibc.csh.new
+  rm -f etc/profile.d/glibc.sh.new
+
+  #
+  # NOTE:
+  #   'install-info' can work using relative paths and we can make use build machine
+  #   utility during installation to the some partition and use target 'install-info'
+  #   during installation directly on the running target machine.
+  #
+  if [ -x /usr/bin/install-info ] ; then
+    install-info --info-dir=usr/share/info usr/share/info/libc.info.gz 2>/dev/null
+  elif ! grep "(libc)" usr/share/info/dir 1> /dev/null 2> /dev/null ; then
+  cat << __EOF__ >> usr/share/info/dir
+
+GNU C library functions and macros
+* __fbufsize: (libc)Controlling Buffering.
+* __flbf: (libc)Controlling Buffering.
+* __fpending: (libc)Controlling Buffering.
+* __fpurge: (libc)Flushing Buffers.
+* __freadable: (libc)Opening Streams.
+* __freading: (libc)Opening Streams.
+* __fsetlocking: (libc)Streams and Threads.
+* __fwritable: (libc)Opening Streams.
+* __fwriting: (libc)Opening Streams.
+* __gconv_end_fct: (libc)glibc iconv Implementation.
+* __gconv_fct: (libc)glibc iconv Implementation.
+* __gconv_init_fct: (libc)glibc iconv Implementation.
+* __ppc_get_timebase_freq: (libc)PowerPC.
+* __ppc_get_timebase: (libc)PowerPC.
+* __ppc_mdoio: (libc)PowerPC.
+* __ppc_mdoom: (libc)PowerPC.
+* __ppc_set_ppr_low: (libc)PowerPC.
+* __ppc_set_ppr_med_high: (libc)PowerPC.
+* __ppc_set_ppr_med_low: (libc)PowerPC.
+* __ppc_set_ppr_med: (libc)PowerPC.
+* __ppc_set_ppr_very_low: (libc)PowerPC.
+* __ppc_yield: (libc)PowerPC.
+* __riscv_flush_icache: (libc)RISC-V.
+* __va_copy: (libc)Argument Macros.
+* __x86_get_cpuid_feature_leaf: (libc)X86.
+* _Complex_I: (libc)Complex Numbers.
+* _dl_find_object: (libc)Dynamic Linker Introspection.
+* _exit: (libc)Termination Internals.
+* _Exit: (libc)Termination Internals.
+* _flushlbf: (libc)Flushing Buffers.
+* _Fork: (libc)Creating a Process.
+* _Imaginary_I: (libc)Complex Numbers.
+* _IOFBF: (libc)Controlling Buffering.
+* _IOLBF: (libc)Controlling Buffering.
+* _IONBF: (libc)Controlling Buffering.
+* _PATH_UTMP: (libc)Manipulating the Database.
+* _PATH_WTMP: (libc)Manipulating the Database.
+* _POSIX2_C_DEV: (libc)System Options.
+* _POSIX2_C_VERSION: (libc)Version Supported.
+* _POSIX2_FORT_DEV: (libc)System Options.
+* _POSIX2_FORT_RUN: (libc)System Options.
+* _POSIX2_LOCALEDEF: (libc)System Options.
+* _POSIX2_SW_DEV: (libc)System Options.
+* _POSIX_CHOWN_RESTRICTED: (libc)Options for Files.
+* _POSIX_JOB_CONTROL: (libc)System Options.
+* _POSIX_NO_TRUNC: (libc)Options for Files.
+* _POSIX_SAVED_IDS: (libc)System Options.
+* _POSIX_VDISABLE: (libc)Options for Files.
+* _POSIX_VERSION: (libc)Version Supported.
+* _tolower: (libc)Case Conversion.
+* _toupper: (libc)Case Conversion.
+* a64l: (libc)Encode Binary Data.
+* abort: (libc)Aborting a Program.
+* abs: (libc)Absolute Value.
+* accept: (libc)Accepting Connections.
+* access: (libc)Testing File Access.
+* acosfNx: (libc)Inverse Trig Functions.
+* acosfN: (libc)Inverse Trig Functions.
+* acosf: (libc)Inverse Trig Functions.
+* acoshfNx: (libc)Hyperbolic Functions.
+* acoshfN: (libc)Hyperbolic Functions.
+* acoshf: (libc)Hyperbolic Functions.
+* acoshl: (libc)Hyperbolic Functions.
+* acosh: (libc)Hyperbolic Functions.
+* acosl: (libc)Inverse Trig Functions.
+* acos: (libc)Inverse Trig Functions.
+* addmntent: (libc)mtab.
+* addseverity: (libc)Adding Severity Classes.
+* adjtimex: (libc)Setting and Adjusting the Time.
+* adjtime: (libc)Setting and Adjusting the Time.
+* aio_cancel: (libc)Cancel AIO Operations.
+* aio_cancel64: (libc)Cancel AIO Operations.
+* aio_error: (libc)Status of AIO Operations.
+* aio_error64: (libc)Status of AIO Operations.
+* aio_fsync: (libc)Synchronizing AIO Operations.
+* aio_fsync64: (libc)Synchronizing AIO Operations.
+* aio_init: (libc)Configuration of AIO.
+* aio_read: (libc)Asynchronous Reads/Writes.
+* aio_read64: (libc)Asynchronous Reads/Writes.
+* aio_return: (libc)Status of AIO Operations.
+* aio_return64: (libc)Status of AIO Operations.
+* aio_suspend: (libc)Synchronizing AIO Operations.
+* aio_suspend64: (libc)Synchronizing AIO Operations.
+* aio_write: (libc)Asynchronous Reads/Writes.
+* aio_write64: (libc)Asynchronous Reads/Writes.
+* alarm: (libc)Setting an Alarm.
+* aligned_alloc: (libc)Aligned Memory Blocks.
+* alloca: (libc)Variable Size Automatic.
+* alphasort: (libc)Scanning Directory Content.
+* alphasort64: (libc)Scanning Directory Content.
+* ALTWERASE: (libc)Local Modes.
+* arc4random_buf: (libc)High Quality Random.
+* arc4random_uniform: (libc)High Quality Random.
+* arc4random: (libc)High Quality Random.
+* ARG_MAX: (libc)General Limits.
+* ARGP_ERR_UNKNOWN: (libc)Argp Parser Functions.
+* argp_error: (libc)Argp Helper Functions.
+* argp_failure: (libc)Argp Helper Functions.
+* argp_help: (libc)Argp Help.
+* argp_parse: (libc)Argp.
+* argp_state_help: (libc)Argp Helper Functions.
+* argp_usage: (libc)Argp Helper Functions.
+* argz_add_sep: (libc)Argz Functions.
+* argz_add: (libc)Argz Functions.
+* argz_append: (libc)Argz Functions.
+* argz_count: (libc)Argz Functions.
+* argz_create_sep: (libc)Argz Functions.
+* argz_create: (libc)Argz Functions.
+* argz_delete: (libc)Argz Functions.
+* argz_extract: (libc)Argz Functions.
+* argz_insert: (libc)Argz Functions.
+* argz_next: (libc)Argz Functions.
+* argz_replace: (libc)Argz Functions.
+* argz_stringify: (libc)Argz Functions.
+* asctime_r: (libc)Formatting Calendar Time.
+* asctime: (libc)Formatting Calendar Time.
+* asinfNx: (libc)Inverse Trig Functions.
+* asinfN: (libc)Inverse Trig Functions.
+* asinf: (libc)Inverse Trig Functions.
+* asinhfNx: (libc)Hyperbolic Functions.
+* asinhfN: (libc)Hyperbolic Functions.
+* asinhf: (libc)Hyperbolic Functions.
+* asinhl: (libc)Hyperbolic Functions.
+* asinh: (libc)Hyperbolic Functions.
+* asinl: (libc)Inverse Trig Functions.
+* asin: (libc)Inverse Trig Functions.
+* asprintf: (libc)Dynamic Output.
+* assert_perror: (libc)Consistency Checking.
+* assert: (libc)Consistency Checking.
+* atan2f: (libc)Inverse Trig Functions.
+* atan2: (libc)Inverse Trig Functions.
+* atanfNx: (libc)Inverse Trig Functions.
+* atanfN: (libc)Inverse Trig Functions.
+* atanf: (libc)Inverse Trig Functions.
+* atanhfNx: (libc)Hyperbolic Functions.
+* atanhfN: (libc)Hyperbolic Functions.
+* atanhf: (libc)Hyperbolic Functions.
+* atanhl: (libc)Hyperbolic Functions.
+* atanh: (libc)Hyperbolic Functions.
+* atanl: (libc)Inverse Trig Functions.
+* atan: (libc)Inverse Trig Functions.
+* atan2fNx: (libc)Inverse Trig Functions.
+* atan2fN: (libc)Inverse Trig Functions.
+* atan2l: (libc)Inverse Trig Functions.
+* atexit: (libc)Cleanups on Exit.
+* atof: (libc)Parsing of Floats.
+* atoi: (libc)Parsing of Integers.
+* atoll: (libc)Parsing of Integers.
+* atol: (libc)Parsing of Integers.
+* backtrace_symbols_fd: (libc)Backtraces.
+* backtrace_symbols: (libc)Backtraces.
+* backtrace: (libc)Backtraces.
+* basename: (libc)Finding Tokens in a String.
+* basename: (libc)Finding Tokens in a String.
+* BC_BASE_MAX: (libc)Utility Limits.
+* BC_DIM_MAX: (libc)Utility Limits.
+* BC_SCALE_MAX: (libc)Utility Limits.
+* BC_STRING_MAX: (libc)Utility Limits.
+* bcmp: (libc)String/Array Comparison.
+* bcopy: (libc)Copying Strings and Arrays.
+* bind_textdomain_codeset: (libc)Charset conversion in gettext.
+* bindtextdomain: (libc)Locating gettext catalog.
+* bind: (libc)Setting Address.
+* brk: (libc)Resizing the Data Segment.
+* BRKINT: (libc)Input Modes.
+* bsearch: (libc)Array Search Function.
+* btowc: (libc)Converting a Character.
+* BUFSIZ: (libc)Controlling Buffering.
+* bzero: (libc)Copying Strings and Arrays.
+* cabsfNx: (libc)Absolute Value.
+* cabsfN: (libc)Absolute Value.
+* cabsf: (libc)Absolute Value.
+* cabsl: (libc)Absolute Value.
+* cabs: (libc)Absolute Value.
+* cacosfNx: (libc)Inverse Trig Functions.
+* cacosfN: (libc)Inverse Trig Functions.
+* cacosf: (libc)Inverse Trig Functions.
+* cacoshfNx: (libc)Hyperbolic Functions.
+* cacoshfN: (libc)Hyperbolic Functions.
+* cacoshf: (libc)Hyperbolic Functions.
+* cacoshl: (libc)Hyperbolic Functions.
+* cacosh: (libc)Hyperbolic Functions.
+* cacosl: (libc)Inverse Trig Functions.
+* cacos: (libc)Inverse Trig Functions.
+* call_once: (libc)Call Once.
+* calloc: (libc)Allocating Cleared Space.
+* canonicalize_file_name: (libc)Symbolic Links.
+* canonicalizefNx: (libc)FP Bit Twiddling.
+* canonicalizefN: (libc)FP Bit Twiddling.
+* canonicalizef: (libc)FP Bit Twiddling.
+* canonicalizel: (libc)FP Bit Twiddling.
+* canonicalize: (libc)FP Bit Twiddling.
+* cargfNx: (libc)Operations on Complex.
+* cargfN: (libc)Operations on Complex.
+* cargf: (libc)Operations on Complex.
+* cargl: (libc)Operations on Complex.
+* carg: (libc)Operations on Complex.
+* casinfNx: (libc)Inverse Trig Functions.
+* casinfN: (libc)Inverse Trig Functions.
+* casinf: (libc)Inverse Trig Functions.
+* casinhfNx: (libc)Hyperbolic Functions.
+* casinhfN: (libc)Hyperbolic Functions.
+* casinhf: (libc)Hyperbolic Functions.
+* casinhl: (libc)Hyperbolic Functions.
+* casinh: (libc)Hyperbolic Functions.
+* casinl: (libc)Inverse Trig Functions.
+* casin: (libc)Inverse Trig Functions.
+* catanfNx: (libc)Inverse Trig Functions.
+* catanfN: (libc)Inverse Trig Functions.
+* catanf: (libc)Inverse Trig Functions.
+* catanhfNx: (libc)Hyperbolic Functions.
+* catanhfN: (libc)Hyperbolic Functions.
+* catanhf: (libc)Hyperbolic Functions.
+* catanhl: (libc)Hyperbolic Functions.
+* catanh: (libc)Hyperbolic Functions.
+* catanl: (libc)Inverse Trig Functions.
+* catan: (libc)Inverse Trig Functions.
+* catclose: (libc)The catgets Functions.
+* catgets: (libc)The catgets Functions.
+* catopen: (libc)The catgets Functions.
+* cbrtfNx: (libc)Exponents and Logarithms.
+* cbrtfN: (libc)Exponents and Logarithms.
+* cbrtf: (libc)Exponents and Logarithms.
+* cbrtl: (libc)Exponents and Logarithms.
+* cbrt: (libc)Exponents and Logarithms.
+* ccosfNx: (libc)Trig Functions.
+* ccosfN: (libc)Trig Functions.
+* ccosf: (libc)Trig Functions.
+* ccoshfNx: (libc)Hyperbolic Functions.
+* ccoshfN: (libc)Hyperbolic Functions.
+* ccoshf: (libc)Hyperbolic Functions.
+* ccoshl: (libc)Hyperbolic Functions.
+* ccosh: (libc)Hyperbolic Functions.
+* ccosl: (libc)Trig Functions.
+* ccos: (libc)Trig Functions.
+* CCTS_OFLOW: (libc)Control Modes.
+* ceilfNx: (libc)Rounding Functions.
+* ceilfN: (libc)Rounding Functions.
+* ceilf: (libc)Rounding Functions.
+* ceill: (libc)Rounding Functions.
+* ceil: (libc)Rounding Functions.
+* cexpfNx: (libc)Exponents and Logarithms.
+* cexpfN: (libc)Exponents and Logarithms.
+* cexpf: (libc)Exponents and Logarithms.
+* cexpl: (libc)Exponents and Logarithms.
+* cexp: (libc)Exponents and Logarithms.
+* cfgetispeed: (libc)Line Speed.
+* cfgetospeed: (libc)Line Speed.
+* cfmakeraw: (libc)Noncanonical Input.
+* cfsetispeed: (libc)Line Speed.
+* cfsetospeed: (libc)Line Speed.
+* cfsetspeed: (libc)Line Speed.
+* CHAR_BIT: (libc)Width of Type.
+* chdir: (libc)Working Directory.
+* CHILD_MAX: (libc)General Limits.
+* chmod: (libc)Setting Permissions.
+* chown: (libc)File Owner.
+* CIGNORE: (libc)Control Modes.
+* cimagfNx: (libc)Operations on Complex.
+* cimagfN: (libc)Operations on Complex.
+* cimagf: (libc)Operations on Complex.
+* cimagl: (libc)Operations on Complex.
+* cimag: (libc)Operations on Complex.
+* clearenv: (libc)Environment Access.
+* clearerr_unlocked: (libc)Error Recovery.
+* clearerr: (libc)Error Recovery.
+* CLK_TCK: (libc)Processor Time.
+* CLOCAL: (libc)Control Modes.
+* clock_getres: (libc)Getting the Time.
+* clock_gettime: (libc)Getting the Time.
+* CLOCK_MONOTONIC: (libc)Getting the Time.
+* CLOCK_REALTIME: (libc)Getting the Time.
+* clock_settime: (libc)Setting and Adjusting the Time.
+* clock: (libc)CPU Time.
+* CLOCKS_PER_SEC: (libc)CPU Time.
+* clog10fNx: (libc)Exponents and Logarithms.
+* clog10fN: (libc)Exponents and Logarithms.
+* clog10f: (libc)Exponents and Logarithms.
+* clog10l: (libc)Exponents and Logarithms.
+* clog10: (libc)Exponents and Logarithms.
+* clogfNx: (libc)Exponents and Logarithms.
+* clogfN: (libc)Exponents and Logarithms.
+* clogf: (libc)Exponents and Logarithms.
+* clogl: (libc)Exponents and Logarithms.
+* clog: (libc)Exponents and Logarithms.
+* close_range: (libc)Opening and Closing Files.
+* closedir: (libc)Reading/Closing Directory.
+* closefrom: (libc)Opening and Closing Files.
+* closelog: (libc)closelog.
+* close: (libc)Opening and Closing Files.
+* cnd_broadcast: (libc)ISO C Condition Variables.
+* cnd_destroy: (libc)ISO C Condition Variables.
+* cnd_init: (libc)ISO C Condition Variables.
+* cnd_signal: (libc)ISO C Condition Variables.
+* cnd_timedwait: (libc)ISO C Condition Variables.
+* cnd_wait: (libc)ISO C Condition Variables.
+* COLL_WEIGHTS_MAX: (libc)Utility Limits.
+* confstr: (libc)String Parameters.
+* conjfNx: (libc)Operations on Complex.
+* conjfN: (libc)Operations on Complex.
+* conjf: (libc)Operations on Complex.
+* conjl: (libc)Operations on Complex.
+* conj: (libc)Operations on Complex.
+* connect: (libc)Connecting.
+* copy_file_range: (libc)Copying File Data.
+* copysignfNx: (libc)FP Bit Twiddling.
+* copysignfN: (libc)FP Bit Twiddling.
+* copysignf: (libc)FP Bit Twiddling.
+* copysignl: (libc)FP Bit Twiddling.
+* copysign: (libc)FP Bit Twiddling.
+* cosfNx: (libc)Trig Functions.
+* cosfN: (libc)Trig Functions.
+* cosf: (libc)Trig Functions.
+* coshfNx: (libc)Hyperbolic Functions.
+* coshfN: (libc)Hyperbolic Functions.
+* coshf: (libc)Hyperbolic Functions.
+* coshl: (libc)Hyperbolic Functions.
+* cosh: (libc)Hyperbolic Functions.
+* cosl: (libc)Trig Functions.
+* cos: (libc)Trig Functions.
+* cpowfNx: (libc)Exponents and Logarithms.
+* cpowfN: (libc)Exponents and Logarithms.
+* cpowf: (libc)Exponents and Logarithms.
+* cpowl: (libc)Exponents and Logarithms.
+* cpow: (libc)Exponents and Logarithms.
+* cprojfNx: (libc)Operations on Complex.
+* cprojfN: (libc)Operations on Complex.
+* cprojf: (libc)Operations on Complex.
+* cprojl: (libc)Operations on Complex.
+* cproj: (libc)Operations on Complex.
+* CPU_CLR: (libc)CPU Affinity.
+* CPU_FEATURE_ACTIVE: (libc)X86.
+* CPU_FEATURE_PRESENT: (libc)X86.
+* CPU_ISSET: (libc)CPU Affinity.
+* CPU_SETSIZE: (libc)CPU Affinity.
+* CPU_SET: (libc)CPU Affinity.
+* CPU_ZERO: (libc)CPU Affinity.
+* CREAD: (libc)Control Modes.
+* crealfNx: (libc)Operations on Complex.
+* crealfN: (libc)Operations on Complex.
+* crealf: (libc)Operations on Complex.
+* creall: (libc)Operations on Complex.
+* creal: (libc)Operations on Complex.
+* creat: (libc)Opening and Closing Files.
+* creat64: (libc)Opening and Closing Files.
+* CRTS_IFLOW: (libc)Control Modes.
+* crypt_r: (libc)Passphrase Storage.
+* crypt: (libc)Passphrase Storage.
+* CS5: (libc)Control Modes.
+* CS6: (libc)Control Modes.
+* CS7: (libc)Control Modes.
+* CS8: (libc)Control Modes.
+* csinfNx: (libc)Trig Functions.
+* csinfN: (libc)Trig Functions.
+* csinf: (libc)Trig Functions.
+* csinhfNx: (libc)Hyperbolic Functions.
+* csinhfN: (libc)Hyperbolic Functions.
+* csinhf: (libc)Hyperbolic Functions.
+* csinhl: (libc)Hyperbolic Functions.
+* csinh: (libc)Hyperbolic Functions.
+* csinl: (libc)Trig Functions.
+* csin: (libc)Trig Functions.
+* CSIZE: (libc)Control Modes.
+* csqrtfNx: (libc)Exponents and Logarithms.
+* csqrtfN: (libc)Exponents and Logarithms.
+* csqrtf: (libc)Exponents and Logarithms.
+* csqrtl: (libc)Exponents and Logarithms.
+* csqrt: (libc)Exponents and Logarithms.
+* CSTOPB: (libc)Control Modes.
+* ctanfNx: (libc)Trig Functions.
+* ctanfN: (libc)Trig Functions.
+* ctanf: (libc)Trig Functions.
+* ctanhfNx: (libc)Hyperbolic Functions.
+* ctanhfN: (libc)Hyperbolic Functions.
+* ctanhf: (libc)Hyperbolic Functions.
+* ctanhl: (libc)Hyperbolic Functions.
+* ctanh: (libc)Hyperbolic Functions.
+* ctanl: (libc)Trig Functions.
+* ctan: (libc)Trig Functions.
+* ctermid: (libc)Identifying the Terminal.
+* ctime_r: (libc)Formatting Calendar Time.
+* ctime: (libc)Formatting Calendar Time.
+* cuserid: (libc)Who Logged In.
+* daddl: (libc)Misc FP Arithmetic.
+* dcgettext: (libc)Translation with gettext.
+* dcngettext: (libc)Advanced gettext functions.
+* ddivl: (libc)Misc FP Arithmetic.
+* dfmal: (libc)Misc FP Arithmetic.
+* dgettext: (libc)Translation with gettext.
+* difftime: (libc)Calculating Elapsed Time.
+* dirfd: (libc)Opening a Directory.
+* dirname: (libc)Finding Tokens in a String.
+* div: (libc)Integer Division.
+* DLFO_EH_SEGMENT_TYPE: (libc)Dynamic Linker Introspection.
+* DLFO_STRUCT_HAS_EH_COUNT: (libc)Dynamic Linker Introspection.
+* DLFO_STRUCT_HAS_EH_DBASE: (libc)Dynamic Linker Introspection.
+* dlinfo: (libc)Dynamic Linker Introspection.
+* dmull: (libc)Misc FP Arithmetic.
+* dngettext: (libc)Advanced gettext functions.
+* drand48_r: (libc)SVID Random.
+* drand48: (libc)SVID Random.
+* dremf: (libc)Remainder Functions.
+* dreml: (libc)Remainder Functions.
+* drem: (libc)Remainder Functions.
+* dsqrtl: (libc)Misc FP Arithmetic.
+* dsubl: (libc)Misc FP Arithmetic.
+* DTTOIF: (libc)Directory Entries.
+* dup: (libc)Duplicating Descriptors.
+* dup2: (libc)Duplicating Descriptors.
+* E2BIG: (libc)Error Codes.
+* EACCES: (libc)Error Codes.
+* EADDRINUSE: (libc)Error Codes.
+* EADDRNOTAVAIL: (libc)Error Codes.
+* EADV: (libc)Error Codes.
+* EAFNOSUPPORT: (libc)Error Codes.
+* EAGAIN: (libc)Error Codes.
+* EALREADY: (libc)Error Codes.
+* EAUTH: (libc)Error Codes.
+* EBACKGROUND: (libc)Error Codes.
+* EBADE: (libc)Error Codes.
+* EBADFD: (libc)Error Codes.
+* EBADF: (libc)Error Codes.
+* EBADMSG: (libc)Error Codes.
+* EBADRPC: (libc)Error Codes.
+* EBADRQC: (libc)Error Codes.
+* EBADR: (libc)Error Codes.
+* EBADSLT: (libc)Error Codes.
+* EBFONT: (libc)Error Codes.
+* EBUSY: (libc)Error Codes.
+* ECANCELED: (libc)Error Codes.
+* ECHILD: (libc)Error Codes.
+* ECHOCTL: (libc)Local Modes.
+* ECHOE: (libc)Local Modes.
+* ECHOKE: (libc)Local Modes.
+* ECHOK: (libc)Local Modes.
+* ECHONL: (libc)Local Modes.
+* ECHOPRT: (libc)Local Modes.
+* ECHO: (libc)Local Modes.
+* ECHRNG: (libc)Error Codes.
+* ECOMM: (libc)Error Codes.
+* ECONNABORTED: (libc)Error Codes.
+* ECONNREFUSED: (libc)Error Codes.
+* ECONNRESET: (libc)Error Codes.
+* ecvt_r: (libc)System V Number Conversion.
+* ecvt: (libc)System V Number Conversion.
+* EDEADLK: (libc)Error Codes.
+* EDEADLOCK: (libc)Error Codes.
+* EDESTADDRREQ: (libc)Error Codes.
+* EDIED: (libc)Error Codes.
+* EDOM: (libc)Error Codes.
+* EDOTDOT: (libc)Error Codes.
+* EDQUOT: (libc)Error Codes.
+* ED: (libc)Error Codes.
+* EEXIST: (libc)Error Codes.
+* EFAULT: (libc)Error Codes.
+* EFBIG: (libc)Error Codes.
+* EFTYPE: (libc)Error Codes.
+* EGRATUITOUS: (libc)Error Codes.
+* EGREGIOUS: (libc)Error Codes.
+* EHOSTDOWN: (libc)Error Codes.
+* EHOSTUNREACH: (libc)Error Codes.
+* EHWPOISON: (libc)Error Codes.
+* EIDRM: (libc)Error Codes.
+* EIEIO: (libc)Error Codes.
+* EILSEQ: (libc)Error Codes.
+* EINPROGRESS: (libc)Error Codes.
+* EINTR: (libc)Error Codes.
+* EINVAL: (libc)Error Codes.
+* EIO: (libc)Error Codes.
+* EISCONN: (libc)Error Codes.
+* EISDIR: (libc)Error Codes.
+* EISNAM: (libc)Error Codes.
+* EKEYEXPIRED: (libc)Error Codes.
+* EKEYREJECTED: (libc)Error Codes.
+* EKEYREVOKED: (libc)Error Codes.
+* EL2HLT: (libc)Error Codes.
+* EL2NSYNC: (libc)Error Codes.
+* EL3HLT: (libc)Error Codes.
+* EL3RST: (libc)Error Codes.
+* ELIBACC: (libc)Error Codes.
+* ELIBBAD: (libc)Error Codes.
+* ELIBEXEC: (libc)Error Codes.
+* ELIBMAX: (libc)Error Codes.
+* ELIBSCN: (libc)Error Codes.
+* ELNRNG: (libc)Error Codes.
+* ELOOP: (libc)Error Codes.
+* EMEDIUMTYPE: (libc)Error Codes.
+* EMFILE: (libc)Error Codes.
+* EMLINK: (libc)Error Codes.
+* EMSGSIZE: (libc)Error Codes.
+* EMULTIHOP: (libc)Error Codes.
+* ENAMETOOLONG: (libc)Error Codes.
+* ENAVAIL: (libc)Error Codes.
+* endfsent: (libc)fstab.
+* endgrent: (libc)Scanning All Groups.
+* endhostent: (libc)Host Names.
+* endmntent: (libc)mtab.
+* endnetent: (libc)Networks Database.
+* endnetgrent: (libc)Lookup Netgroup.
+* endprotoent: (libc)Protocols Database.
+* endpwent: (libc)Scanning All Users.
+* endservent: (libc)Services Database.
+* endutent: (libc)Manipulating the Database.
+* endutxent: (libc)XPG Functions.
+* ENEEDAUTH: (libc)Error Codes.
+* ENETDOWN: (libc)Error Codes.
+* ENETRESET: (libc)Error Codes.
+* ENETUNREACH: (libc)Error Codes.
+* ENFILE: (libc)Error Codes.
+* ENOANO: (libc)Error Codes.
+* ENOBUFS: (libc)Error Codes.
+* ENOCSI: (libc)Error Codes.
+* ENODATA: (libc)Error Codes.
+* ENODEV: (libc)Error Codes.
+* ENOENT: (libc)Error Codes.
+* ENOEXEC: (libc)Error Codes.
+* ENOKEY: (libc)Error Codes.
+* ENOLCK: (libc)Error Codes.
+* ENOLINK: (libc)Error Codes.
+* ENOMEDIUM: (libc)Error Codes.
+* ENOMEM: (libc)Error Codes.
+* ENOMSG: (libc)Error Codes.
+* ENONET: (libc)Error Codes.
+* ENOPKG: (libc)Error Codes.
+* ENOPROTOOPT: (libc)Error Codes.
+* ENOSPC: (libc)Error Codes.
+* ENOSR: (libc)Error Codes.
+* ENOSTR: (libc)Error Codes.
+* ENOSYS: (libc)Error Codes.
+* ENOTBLK: (libc)Error Codes.
+* ENOTCONN: (libc)Error Codes.
+* ENOTDIR: (libc)Error Codes.
+* ENOTEMPTY: (libc)Error Codes.
+* ENOTNAM: (libc)Error Codes.
+* ENOTRECOVERABLE: (libc)Error Codes.
+* ENOTSOCK: (libc)Error Codes.
+* ENOTSUP: (libc)Error Codes.
+* ENOTTY: (libc)Error Codes.
+* ENOTUNIQ: (libc)Error Codes.
+* envz_add: (libc)Envz Functions.
+* envz_entry: (libc)Envz Functions.
+* envz_get: (libc)Envz Functions.
+* envz_merge: (libc)Envz Functions.
+* envz_remove: (libc)Envz Functions.
+* envz_strip: (libc)Envz Functions.
+* ENXIO: (libc)Error Codes.
+* EOF: (libc)EOF and Errors.
+* EOPNOTSUPP: (libc)Error Codes.
+* EOVERFLOW: (libc)Error Codes.
+* EOWNERDEAD: (libc)Error Codes.
+* EPERM: (libc)Error Codes.
+* EPFNOSUPPORT: (libc)Error Codes.
+* EPIPE: (libc)Error Codes.
+* EPROCLIM: (libc)Error Codes.
+* EPROCUNAVAIL: (libc)Error Codes.
+* EPROGMISMATCH: (libc)Error Codes.
+* EPROGUNAVAIL: (libc)Error Codes.
+* EPROTONOSUPPORT: (libc)Error Codes.
+* EPROTOTYPE: (libc)Error Codes.
+* EPROTO: (libc)Error Codes.
+* EQUIV_CLASS_MAX: (libc)Utility Limits.
+* erand48_r: (libc)SVID Random.
+* erand48: (libc)SVID Random.
+* ERANGE: (libc)Error Codes.
+* EREMCHG: (libc)Error Codes.
+* EREMOTEIO: (libc)Error Codes.
+* EREMOTE: (libc)Error Codes.
+* ERESTART: (libc)Error Codes.
+* erfcfNx: (libc)Special Functions.
+* erfcfN: (libc)Special Functions.
+* erfcf: (libc)Special Functions.
+* erfcl: (libc)Special Functions.
+* erfc: (libc)Special Functions.
+* erffNx: (libc)Special Functions.
+* erffN: (libc)Special Functions.
+* erff: (libc)Special Functions.
+* ERFKILL: (libc)Error Codes.
+* erfl: (libc)Special Functions.
+* erf: (libc)Special Functions.
+* EROFS: (libc)Error Codes.
+* ERPCMISMATCH: (libc)Error Codes.
+* errno: (libc)Checking for Errors.
+* error_at_line: (libc)Error Messages.
+* error: (libc)Error Messages.
+* errx: (libc)Error Messages.
+* err: (libc)Error Messages.
+* ESHUTDOWN: (libc)Error Codes.
+* ESOCKTNOSUPPORT: (libc)Error Codes.
+* ESPIPE: (libc)Error Codes.
+* ESRCH: (libc)Error Codes.
+* ESRMNT: (libc)Error Codes.
+* ESTALE: (libc)Error Codes.
+* ESTRPIPE: (libc)Error Codes.
+* ETIMEDOUT: (libc)Error Codes.
+* ETIME: (libc)Error Codes.
+* ETOOMANYREFS: (libc)Error Codes.
+* ETXTBSY: (libc)Error Codes.
+* EUCLEAN: (libc)Error Codes.
+* EUNATCH: (libc)Error Codes.
+* EUSERS: (libc)Error Codes.
+* EWOULDBLOCK: (libc)Error Codes.
+* EXDEV: (libc)Error Codes.
+* execle: (libc)Executing a File.
+* execlp: (libc)Executing a File.
+* execl: (libc)Executing a File.
+* execve: (libc)Executing a File.
+* execvp: (libc)Executing a File.
+* execv: (libc)Executing a File.
+* EXFULL: (libc)Error Codes.
+* exit: (libc)Normal Termination.
+* EXIT_FAILURE: (libc)Exit Status.
+* EXIT_SUCCESS: (libc)Exit Status.
+* exp10fNx: (libc)Exponents and Logarithms.
+* exp10fN: (libc)Exponents and Logarithms.
+* exp10f: (libc)Exponents and Logarithms.
+* exp10l: (libc)Exponents and Logarithms.
+* exp10: (libc)Exponents and Logarithms.
+* exp2f: (libc)Exponents and Logarithms.
+* exp2: (libc)Exponents and Logarithms.
+* expfNx: (libc)Exponents and Logarithms.
+* expfN: (libc)Exponents and Logarithms.
+* expf: (libc)Exponents and Logarithms.
+* explicit_bzero: (libc)Erasing Sensitive Data.
+* expl: (libc)Exponents and Logarithms.
+* expm1fNx: (libc)Exponents and Logarithms.
+* expm1fN: (libc)Exponents and Logarithms.
+* expm1f: (libc)Exponents and Logarithms.
+* expm1l: (libc)Exponents and Logarithms.
+* expm1: (libc)Exponents and Logarithms.
+* exp: (libc)Exponents and Logarithms.
+* exp2fNx: (libc)Exponents and Logarithms.
+* exp2fN: (libc)Exponents and Logarithms.
+* exp2l: (libc)Exponents and Logarithms.
+* EXPR_NEST_MAX: (libc)Utility Limits.
+* F_DUPFD: (libc)Duplicating Descriptors.
+* F_GETFD: (libc)Descriptor Flags.
+* F_GETFL: (libc)Getting File Status Flags.
+* F_GETLK: (libc)File Locks.
+* F_GETOWN: (libc)Interrupt Input.
+* F_OFD_GETLK: (libc)Open File Description Locks.
+* F_OFD_SETLKW: (libc)Open File Description Locks.
+* F_OFD_SETLK: (libc)Open File Description Locks.
+* F_OK: (libc)Testing File Access.
+* F_SETFD: (libc)Descriptor Flags.
+* F_SETFL: (libc)Getting File Status Flags.
+* F_SETLKW: (libc)File Locks.
+* F_SETLK: (libc)File Locks.
+* F_SETOWN: (libc)Interrupt Input.
+* fabsfNx: (libc)Absolute Value.
+* fabsfN: (libc)Absolute Value.
+* fabsf: (libc)Absolute Value.
+* fabsl: (libc)Absolute Value.
+* fabs: (libc)Absolute Value.
+* faddl: (libc)Misc FP Arithmetic.
+* fadd: (libc)Misc FP Arithmetic.
+* fchdir: (libc)Working Directory.
+* fchmod: (libc)Setting Permissions.
+* fchown: (libc)File Owner.
+* fcloseall: (libc)Closing Streams.
+* fclose: (libc)Closing Streams.
+* fcntl: (libc)Control Operations.
+* fcvt_r: (libc)System V Number Conversion.
+* fcvt: (libc)System V Number Conversion.
+* FD_CLOEXEC: (libc)Descriptor Flags.
+* FD_CLR: (libc)Waiting for I/O.
+* FD_ISSET: (libc)Waiting for I/O.
+* FD_SETSIZE: (libc)Waiting for I/O.
+* FD_SET: (libc)Waiting for I/O.
+* FD_ZERO: (libc)Waiting for I/O.
+* fdatasync: (libc)Synchronizing I/O.
+* fdimfNx: (libc)Misc FP Arithmetic.
+* fdimfN: (libc)Misc FP Arithmetic.
+* fdimf: (libc)Misc FP Arithmetic.
+* fdiml: (libc)Misc FP Arithmetic.
+* fdim: (libc)Misc FP Arithmetic.
+* fdivl: (libc)Misc FP Arithmetic.
+* fdiv: (libc)Misc FP Arithmetic.
+* fdopendir: (libc)Opening a Directory.
+* fdopen: (libc)Descriptors and Streams.
+* FE_SNANS_ALWAYS_SIGNAL: (libc)Infinity and NaN.
+* feclearexcept: (libc)Status bit operations.
+* fedisableexcept: (libc)Control Functions.
+* feenableexcept: (libc)Control Functions.
+* fegetenv: (libc)Control Functions.
+* fegetexceptflag: (libc)Status bit operations.
+* fegetexcept: (libc)Control Functions.
+* fegetmode: (libc)Control Functions.
+* fegetround: (libc)Rounding.
+* feholdexcept: (libc)Control Functions.
+* feof_unlocked: (libc)EOF and Errors.
+* feof: (libc)EOF and Errors.
+* feraiseexcept: (libc)Status bit operations.
+* ferror_unlocked: (libc)EOF and Errors.
+* ferror: (libc)EOF and Errors.
+* fesetenv: (libc)Control Functions.
+* fesetexceptflag: (libc)Status bit operations.
+* fesetexcept: (libc)Status bit operations.
+* fesetmode: (libc)Control Functions.
+* fesetround: (libc)Rounding.
+* fetestexceptflag: (libc)Status bit operations.
+* fetestexcept: (libc)Status bit operations.
+* feupdateenv: (libc)Control Functions.
+* fexecve: (libc)Executing a File.
+* fflush_unlocked: (libc)Flushing Buffers.
+* fflush: (libc)Flushing Buffers.
+* ffmal: (libc)Misc FP Arithmetic.
+* ffma: (libc)Misc FP Arithmetic.
+* fgetc_unlocked: (libc)Character Input.
+* fgetc: (libc)Character Input.
+* fgetgrent_r: (libc)Scanning All Groups.
+* fgetgrent: (libc)Scanning All Groups.
+* fgetpos: (libc)Portable Positioning.
+* fgetpos64: (libc)Portable Positioning.
+* fgetpwent_r: (libc)Scanning All Users.
+* fgetpwent: (libc)Scanning All Users.
+* fgets_unlocked: (libc)Line Input.
+* fgets: (libc)Line Input.
+* fgetwc_unlocked: (libc)Character Input.
+* fgetwc: (libc)Character Input.
+* fgetws_unlocked: (libc)Line Input.
+* fgetws: (libc)Line Input.
+* FILENAME_MAX: (libc)Limits for Files.
+* fileno_unlocked: (libc)Descriptors and Streams.
+* fileno: (libc)Descriptors and Streams.
+* finitef: (libc)Floating Point Classes.
+* finitel: (libc)Floating Point Classes.
+* finite: (libc)Floating Point Classes.
+* flockfile: (libc)Streams and Threads.
+* floorfNx: (libc)Rounding Functions.
+* floorfN: (libc)Rounding Functions.
+* floorf: (libc)Rounding Functions.
+* floorl: (libc)Rounding Functions.
+* floor: (libc)Rounding Functions.
+* FLUSHO: (libc)Local Modes.
+* fMaddfNx: (libc)Misc FP Arithmetic.
+* fMaddfN: (libc)Misc FP Arithmetic.
+* fmafNx: (libc)Misc FP Arithmetic.
+* fmafN: (libc)Misc FP Arithmetic.
+* fmaf: (libc)Misc FP Arithmetic.
+* fmal: (libc)Misc FP Arithmetic.
+* fmaxfNx: (libc)Misc FP Arithmetic.
+* fmaxfN: (libc)Misc FP Arithmetic.
+* fmaxf: (libc)Misc FP Arithmetic.
+* fmaximum_mag_numfNx: (libc)Misc FP Arithmetic.
+* fmaximum_mag_numfN: (libc)Misc FP Arithmetic.
+* fmaximum_mag_numf: (libc)Misc FP Arithmetic.
+* fmaximum_mag_numl: (libc)Misc FP Arithmetic.
+* fmaximum_mag_num: (libc)Misc FP Arithmetic.
+* fmaximum_magfNx: (libc)Misc FP Arithmetic.
+* fmaximum_magfN: (libc)Misc FP Arithmetic.
+* fmaximum_magf: (libc)Misc FP Arithmetic.
+* fmaximum_magl: (libc)Misc FP Arithmetic.
+* fmaximum_mag: (libc)Misc FP Arithmetic.
+* fmaximum_numfNx: (libc)Misc FP Arithmetic.
+* fmaximum_numfN: (libc)Misc FP Arithmetic.
+* fmaximum_numf: (libc)Misc FP Arithmetic.
+* fmaximum_numl: (libc)Misc FP Arithmetic.
+* fmaximum_num: (libc)Misc FP Arithmetic.
+* fmaximumfNx: (libc)Misc FP Arithmetic.
+* fmaximumfN: (libc)Misc FP Arithmetic.
+* fmaximumf: (libc)Misc FP Arithmetic.
+* fmaximuml: (libc)Misc FP Arithmetic.
+* fmaximum: (libc)Misc FP Arithmetic.
+* fmaxl: (libc)Misc FP Arithmetic.
+* fmaxmagfNx: (libc)Misc FP Arithmetic.
+* fmaxmagfN: (libc)Misc FP Arithmetic.
+* fmaxmagf: (libc)Misc FP Arithmetic.
+* fmaxmagl: (libc)Misc FP Arithmetic.
+* fmaxmag: (libc)Misc FP Arithmetic.
+* fmax: (libc)Misc FP Arithmetic.
+* fma: (libc)Misc FP Arithmetic.
+* fMdivfNx: (libc)Misc FP Arithmetic.
+* fMdivfN: (libc)Misc FP Arithmetic.
+* fmemopen: (libc)String Streams.
+* fMfmafNx: (libc)Misc FP Arithmetic.
+* fMfmafN: (libc)Misc FP Arithmetic.
+* fminfNx: (libc)Misc FP Arithmetic.
+* fminfN: (libc)Misc FP Arithmetic.
+* fminf: (libc)Misc FP Arithmetic.
+* fminimum_mag_numfNx: (libc)Misc FP Arithmetic.
+* fminimum_mag_numfN: (libc)Misc FP Arithmetic.
+* fminimum_mag_numf: (libc)Misc FP Arithmetic.
+* fminimum_mag_numl: (libc)Misc FP Arithmetic.
+* fminimum_mag_num: (libc)Misc FP Arithmetic.
+* fminimum_magfNx: (libc)Misc FP Arithmetic.
+* fminimum_magfN: (libc)Misc FP Arithmetic.
+* fminimum_magf: (libc)Misc FP Arithmetic.
+* fminimum_magl: (libc)Misc FP Arithmetic.
+* fminimum_mag: (libc)Misc FP Arithmetic.
+* fminimum_numfNx: (libc)Misc FP Arithmetic.
+* fminimum_numfN: (libc)Misc FP Arithmetic.
+* fminimum_numf: (libc)Misc FP Arithmetic.
+* fminimum_numl: (libc)Misc FP Arithmetic.
+* fminimum_num: (libc)Misc FP Arithmetic.
+* fminimumfNx: (libc)Misc FP Arithmetic.
+* fminimumfN: (libc)Misc FP Arithmetic.
+* fminimumf: (libc)Misc FP Arithmetic.
+* fminimuml: (libc)Misc FP Arithmetic.
+* fminimum: (libc)Misc FP Arithmetic.
+* fminl: (libc)Misc FP Arithmetic.
+* fminmagfNx: (libc)Misc FP Arithmetic.
+* fminmagfN: (libc)Misc FP Arithmetic.
+* fminmagf: (libc)Misc FP Arithmetic.
+* fminmagl: (libc)Misc FP Arithmetic.
+* fminmag: (libc)Misc FP Arithmetic.
+* fmin: (libc)Misc FP Arithmetic.
+* fMmulfNx: (libc)Misc FP Arithmetic.
+* fMmulfN: (libc)Misc FP Arithmetic.
+* fmodfNx: (libc)Remainder Functions.
+* fmodfN: (libc)Remainder Functions.
+* fmodf: (libc)Remainder Functions.
+* fmodl: (libc)Remainder Functions.
+* fmod: (libc)Remainder Functions.
+* fMsqrtfNx: (libc)Misc FP Arithmetic.
+* fMsqrtfN: (libc)Misc FP Arithmetic.
+* fMsubfNx: (libc)Misc FP Arithmetic.
+* fMsubfN: (libc)Misc FP Arithmetic.
+* fmtmsg: (libc)Printing Formatted Messages.
+* fmull: (libc)Misc FP Arithmetic.
+* fmul: (libc)Misc FP Arithmetic.
+* fMxaddfNx: (libc)Misc FP Arithmetic.
+* fMxaddfN: (libc)Misc FP Arithmetic.
+* fMxdivfNx: (libc)Misc FP Arithmetic.
+* fMxdivfN: (libc)Misc FP Arithmetic.
+* fMxfmafNx: (libc)Misc FP Arithmetic.
+* fMxfmafN: (libc)Misc FP Arithmetic.
+* fMxmulfNx: (libc)Misc FP Arithmetic.
+* fMxmulfN: (libc)Misc FP Arithmetic.
+* fMxsqrtfNx: (libc)Misc FP Arithmetic.
+* fMxsqrtfN: (libc)Misc FP Arithmetic.
+* fMxsubfNx: (libc)Misc FP Arithmetic.
+* fMxsubfN: (libc)Misc FP Arithmetic.
+* fnmatch: (libc)Wildcard Matching.
+* FOPEN_MAX: (libc)Opening Streams.
+* fopencookie: (libc)Streams and Cookies.
+* fopen: (libc)Opening Streams.
+* fopen64: (libc)Opening Streams.
+* forkpty: (libc)Pseudo-Terminal Pairs.
+* fork: (libc)Creating a Process.
+* FP_ILOGB0: (libc)Exponents and Logarithms.
+* FP_ILOGBNAN: (libc)Exponents and Logarithms.
+* FP_LLOGB0: (libc)Exponents and Logarithms.
+* FP_LLOGBNAN: (libc)Exponents and Logarithms.
+* fpathconf: (libc)Pathconf.
+* fpclassify: (libc)Floating Point Classes.
+* fprintf: (libc)Formatted Output Functions.
+* fputc_unlocked: (libc)Simple Output.
+* fputc: (libc)Simple Output.
+* fputs_unlocked: (libc)Simple Output.
+* fputs: (libc)Simple Output.
+* fputwc_unlocked: (libc)Simple Output.
+* fputwc: (libc)Simple Output.
+* fputws_unlocked: (libc)Simple Output.
+* fputws: (libc)Simple Output.
+* fread_unlocked: (libc)Block Input/Output.
+* fread: (libc)Block Input/Output.
+* free: (libc)Freeing after Malloc.
+* freopen: (libc)Opening Streams.
+* freopen64: (libc)Opening Streams.
+* frexpfNx: (libc)Normalization Functions.
+* frexpfN: (libc)Normalization Functions.
+* frexpf: (libc)Normalization Functions.
+* frexpl: (libc)Normalization Functions.
+* frexp: (libc)Normalization Functions.
+* fromfpfNx: (libc)Rounding Functions.
+* fromfpfN: (libc)Rounding Functions.
+* fromfpf: (libc)Rounding Functions.
+* fromfpl: (libc)Rounding Functions.
+* fromfpxfNx: (libc)Rounding Functions.
+* fromfpxfN: (libc)Rounding Functions.
+* fromfpxf: (libc)Rounding Functions.
+* fromfpxl: (libc)Rounding Functions.
+* fromfpx: (libc)Rounding Functions.
+* fromfp: (libc)Rounding Functions.
+* fscanf: (libc)Formatted Input Functions.
+* fseeko: (libc)File Positioning.
+* fseeko64: (libc)File Positioning.
+* fseek: (libc)File Positioning.
+* fsetpos: (libc)Portable Positioning.
+* fsetpos64: (libc)Portable Positioning.
+* fsqrtl: (libc)Misc FP Arithmetic.
+* fsqrt: (libc)Misc FP Arithmetic.
+* fstat: (libc)Reading Attributes.
+* fstat64: (libc)Reading Attributes.
+* fsubl: (libc)Misc FP Arithmetic.
+* fsub: (libc)Misc FP Arithmetic.
+* fsync: (libc)Synchronizing I/O.
+* ftello: (libc)File Positioning.
+* ftello64: (libc)File Positioning.
+* ftell: (libc)File Positioning.
+* ftruncate: (libc)File Size.
+* ftruncate64: (libc)File Size.
+* ftrylockfile: (libc)Streams and Threads.
+* ftw: (libc)Working with Directory Trees.
+* ftw64: (libc)Working with Directory Trees.
+* funlockfile: (libc)Streams and Threads.
+* futimes: (libc)File Times.
+* fwide: (libc)Streams and I18N.
+* fwprintf: (libc)Formatted Output Functions.
+* fwrite_unlocked: (libc)Block Input/Output.
+* fwrite: (libc)Block Input/Output.
+* fwscanf: (libc)Formatted Input Functions.
+* gammaf: (libc)Special Functions.
+* gammal: (libc)Special Functions.
+* gamma: (libc)Special Functions.
+* gcvt: (libc)System V Number Conversion.
+* get_avphys_pages: (libc)Query Memory Parameters.
+* get_current_dir_name: (libc)Working Directory.
+* get_nprocs_conf: (libc)Processor Resources.
+* get_nprocs: (libc)Processor Resources.
+* get_phys_pages: (libc)Query Memory Parameters.
+* getauxval: (libc)Auxiliary Vector.
+* getc_unlocked: (libc)Character Input.
+* getchar_unlocked: (libc)Character Input.
+* getchar: (libc)Character Input.
+* getcontext: (libc)System V contexts.
+* getcpu: (libc)CPU Affinity.
+* getcwd: (libc)Working Directory.
+* getc: (libc)Character Input.
+* getdate_r: (libc)General Time String Parsing.
+* getdate: (libc)General Time String Parsing.
+* getdelim: (libc)Line Input.
+* getdents64: (libc)Low-level Directory Access.
+* getdomainnname: (libc)Host Identification.
+* getegid: (libc)Reading Persona.
+* getentropy: (libc)Unpredictable Bytes.
+* getenv: (libc)Environment Access.
+* geteuid: (libc)Reading Persona.
+* getfsent: (libc)fstab.
+* getfsfile: (libc)fstab.
+* getfsspec: (libc)fstab.
+* getgid: (libc)Reading Persona.
+* getgrent_r: (libc)Scanning All Groups.
+* getgrent: (libc)Scanning All Groups.
+* getgrgid_r: (libc)Lookup Group.
+* getgrgid: (libc)Lookup Group.
+* getgrnam_r: (libc)Lookup Group.
+* getgrnam: (libc)Lookup Group.
+* getgrouplist: (libc)Setting Groups.
+* getgroups: (libc)Reading Persona.
+* gethostbyaddr_r: (libc)Host Names.
+* gethostbyaddr: (libc)Host Names.
+* gethostbyname2_r: (libc)Host Names.
+* gethostbyname2: (libc)Host Names.
+* gethostbyname_r: (libc)Host Names.
+* gethostbyname: (libc)Host Names.
+* gethostent: (libc)Host Names.
+* gethostid: (libc)Host Identification.
+* gethostname: (libc)Host Identification.
+* getitimer: (libc)Setting an Alarm.
+* getline: (libc)Line Input.
+* getloadavg: (libc)Processor Resources.
+* getlogin: (libc)Who Logged In.
+* getmntent_r: (libc)mtab.
+* getmntent: (libc)mtab.
+* getnetbyaddr: (libc)Networks Database.
+* getnetbyname: (libc)Networks Database.
+* getnetent: (libc)Networks Database.
+* getnetgrent_r: (libc)Lookup Netgroup.
+* getnetgrent: (libc)Lookup Netgroup.
+* getopt_long_only: (libc)Getopt Long Options.
+* getopt_long: (libc)Getopt Long Options.
+* getopt: (libc)Using Getopt.
+* getpagesize: (libc)Query Memory Parameters.
+* getpass: (libc)getpass.
+* getpayloadfNx: (libc)FP Bit Twiddling.
+* getpayloadfN: (libc)FP Bit Twiddling.
+* getpayloadf: (libc)FP Bit Twiddling.
+* getpayloadl: (libc)FP Bit Twiddling.
+* getpayload: (libc)FP Bit Twiddling.
+* getpeername: (libc)Who is Connected.
+* getpgid: (libc)Process Group Functions.
+* getpgrp: (libc)Process Group Functions.
+* getpid: (libc)Process Identification.
+* getppid: (libc)Process Identification.
+* getpriority: (libc)Traditional Scheduling Functions.
+* getprotobyname: (libc)Protocols Database.
+* getprotobynumber: (libc)Protocols Database.
+* getprotoent: (libc)Protocols Database.
+* getpt: (libc)Allocation.
+* getpwent_r: (libc)Scanning All Users.
+* getpwent: (libc)Scanning All Users.
+* getpwnam_r: (libc)Lookup User.
+* getpwnam: (libc)Lookup User.
+* getpwuid_r: (libc)Lookup User.
+* getpwuid: (libc)Lookup User.
+* getrandom: (libc)Unpredictable Bytes.
+* getrlimit: (libc)Limits on Resources.
+* getrlimit64: (libc)Limits on Resources.
+* getrusage: (libc)Resource Usage.
+* getservbyname: (libc)Services Database.
+* getservbyport: (libc)Services Database.
+* getservent: (libc)Services Database.
+* getsid: (libc)Process Group Functions.
+* getsockname: (libc)Reading Address.
+* getsockopt: (libc)Socket Option Functions.
+* getsubopt: (libc)Suboptions.
+* gets: (libc)Line Input.
+* gettext: (libc)Translation with gettext.
+* gettid: (libc)Process Identification.
+* gettimeofday: (libc)Getting the Time.
+* getuid: (libc)Reading Persona.
+* getumask: (libc)Setting Permissions.
+* getutent_r: (libc)Manipulating the Database.
+* getutent: (libc)Manipulating the Database.
+* getutid_r: (libc)Manipulating the Database.
+* getutid: (libc)Manipulating the Database.
+* getutline_r: (libc)Manipulating the Database.
+* getutline: (libc)Manipulating the Database.
+* getutmpx: (libc)XPG Functions.
+* getutmp: (libc)XPG Functions.
+* getutxent: (libc)XPG Functions.
+* getutxid: (libc)XPG Functions.
+* getutxline: (libc)XPG Functions.
+* getwc_unlocked: (libc)Character Input.
+* getwchar_unlocked: (libc)Character Input.
+* getwchar: (libc)Character Input.
+* getwc: (libc)Character Input.
+* getwd: (libc)Working Directory.
+* getw: (libc)Character Input.
+* globfree: (libc)More Flags for Globbing.
+* globfree64: (libc)More Flags for Globbing.
+* glob: (libc)Calling Glob.
+* glob64: (libc)Calling Glob.
+* gmtime_r: (libc)Broken-down Time.
+* gmtime: (libc)Broken-down Time.
+* grantpt: (libc)Allocation.
+* gsignal: (libc)Signaling Yourself.
+* gtty: (libc)BSD Terminal Modes.
+* hasmntopt: (libc)mtab.
+* hcreate_r: (libc)Hash Search Function.
+* hcreate: (libc)Hash Search Function.
+* hdestroy_r: (libc)Hash Search Function.
+* hdestroy: (libc)Hash Search Function.
+* hsearch_r: (libc)Hash Search Function.
+* hsearch: (libc)Hash Search Function.
+* htonl: (libc)Byte Order.
+* htons: (libc)Byte Order.
+* HUGE_VAL_FNx: (libc)Math Error Reporting.
+* HUGE_VAL_FN: (libc)Math Error Reporting.
+* HUGE_VALF: (libc)Math Error Reporting.
+* HUGE_VALL: (libc)Math Error Reporting.
+* HUGE_VAL: (libc)Math Error Reporting.
+* HUPCL: (libc)Control Modes.
+* hypotfNx: (libc)Exponents and Logarithms.
+* hypotfN: (libc)Exponents and Logarithms.
+* hypotf: (libc)Exponents and Logarithms.
+* hypotl: (libc)Exponents and Logarithms.
+* hypot: (libc)Exponents and Logarithms.
+* ICANON: (libc)Local Modes.
+* iconv_close: (libc)Generic Conversion Interface.
+* iconv_open: (libc)Generic Conversion Interface.
+* iconv: (libc)Generic Conversion Interface.
+* ICRNL: (libc)Input Modes.
+* IEXTEN: (libc)Local Modes.
+* if_freenameindex: (libc)Interface Naming.
+* if_indextoname: (libc)Interface Naming.
+* if_nameindex: (libc)Interface Naming.
+* if_nametoindex: (libc)Interface Naming.
+* IFNAMSIZ: (libc)Interface Naming.
+* IFTODT: (libc)Directory Entries.
+* IGNBRK: (libc)Input Modes.
+* IGNCR: (libc)Input Modes.
+* IGNPAR: (libc)Input Modes.
+* ilogbfNx: (libc)Exponents and Logarithms.
+* ilogbfN: (libc)Exponents and Logarithms.
+* ilogbf: (libc)Exponents and Logarithms.
+* ilogbl: (libc)Exponents and Logarithms.
+* ilogb: (libc)Exponents and Logarithms.
+* imaxabs: (libc)Absolute Value.
+* IMAXBEL: (libc)Input Modes.
+* imaxdiv: (libc)Integer Division.
+* in6addr_any: (libc)Host Address Data Type.
+* in6addr_loopback: (libc)Host Address Data Type.
+* INADDR_ANY: (libc)Host Address Data Type.
+* INADDR_BROADCAST: (libc)Host Address Data Type.
+* INADDR_LOOPBACK: (libc)Host Address Data Type.
+* INADDR_NONE: (libc)Host Address Data Type.
+* index: (libc)Search Functions.
+* inet_addr: (libc)Host Address Functions.
+* inet_aton: (libc)Host Address Functions.
+* inet_lnaof: (libc)Host Address Functions.
+* inet_makeaddr: (libc)Host Address Functions.
+* inet_netof: (libc)Host Address Functions.
+* inet_network: (libc)Host Address Functions.
+* inet_ntoa: (libc)Host Address Functions.
+* inet_ntop: (libc)Host Address Functions.
+* inet_pton: (libc)Host Address Functions.
+* INFINITY: (libc)Infinity and NaN.
+* initgroups: (libc)Setting Groups.
+* initstate_r: (libc)BSD Random.
+* initstate: (libc)BSD Random.
+* INLCR: (libc)Input Modes.
+* innetgr: (libc)Netgroup Membership.
+* INPCK: (libc)Input Modes.
+* ioctl: (libc)IOCTLs.
+* IPPORT_RESERVED: (libc)Ports.
+* IPPORT_USERRESERVED: (libc)Ports.
+* isalnum: (libc)Classification of Characters.
+* isalpha: (libc)Classification of Characters.
+* isascii: (libc)Classification of Characters.
+* isatty: (libc)Is It a Terminal.
+* isblank: (libc)Classification of Characters.
+* iscanonical: (libc)Floating Point Classes.
+* iscntrl: (libc)Classification of Characters.
+* isdigit: (libc)Classification of Characters.
+* iseqsig: (libc)FP Comparison Functions.
+* isfinite: (libc)Floating Point Classes.
+* isgraph: (libc)Classification of Characters.
+* isgreaterequal: (libc)FP Comparison Functions.
+* isgreater: (libc)FP Comparison Functions.
+* ISIG: (libc)Local Modes.
+* isinff: (libc)Floating Point Classes.
+* isinfl: (libc)Floating Point Classes.
+* isinf: (libc)Floating Point Classes.
+* islessequal: (libc)FP Comparison Functions.
+* islessgreater: (libc)FP Comparison Functions.
+* isless: (libc)FP Comparison Functions.
+* islower: (libc)Classification of Characters.
+* isnanf: (libc)Floating Point Classes.
+* isnanl: (libc)Floating Point Classes.
+* isnan: (libc)Floating Point Classes.
+* isnan: (libc)Floating Point Classes.
+* isnormal: (libc)Floating Point Classes.
+* isprint: (libc)Classification of Characters.
+* ispunct: (libc)Classification of Characters.
+* issignaling: (libc)Floating Point Classes.
+* isspace: (libc)Classification of Characters.
+* issubnormal: (libc)Floating Point Classes.
+* ISTRIP: (libc)Input Modes.
+* isunordered: (libc)FP Comparison Functions.
+* isupper: (libc)Classification of Characters.
+* iswalnum: (libc)Classification of Wide Characters.
+* iswalpha: (libc)Classification of Wide Characters.
+* iswblank: (libc)Classification of Wide Characters.
+* iswcntrl: (libc)Classification of Wide Characters.
+* iswctype: (libc)Classification of Wide Characters.
+* iswdigit: (libc)Classification of Wide Characters.
+* iswgraph: (libc)Classification of Wide Characters.
+* iswlower: (libc)Classification of Wide Characters.
+* iswprint: (libc)Classification of Wide Characters.
+* iswpunct: (libc)Classification of Wide Characters.
+* iswspace: (libc)Classification of Wide Characters.
+* iswupper: (libc)Classification of Wide Characters.
+* iswxdigit: (libc)Classification of Wide Characters.
+* isxdigit: (libc)Classification of Characters.
+* iszero: (libc)Floating Point Classes.
+* IXANY: (libc)Input Modes.
+* IXOFF: (libc)Input Modes.
+* IXON: (libc)Input Modes.
+* I: (libc)Complex Numbers.
+* j0fNx: (libc)Special Functions.
+* j0fN: (libc)Special Functions.
+* j0f: (libc)Special Functions.
+* j0l: (libc)Special Functions.
+* j0: (libc)Special Functions.
+* j1fNx: (libc)Special Functions.
+* j1fN: (libc)Special Functions.
+* j1f: (libc)Special Functions.
+* j1l: (libc)Special Functions.
+* j1: (libc)Special Functions.
+* jnfNx: (libc)Special Functions.
+* jnfN: (libc)Special Functions.
+* jnf: (libc)Special Functions.
+* jnl: (libc)Special Functions.
+* jn: (libc)Special Functions.
+* jrand48_r: (libc)SVID Random.
+* jrand48: (libc)SVID Random.
+* killpg: (libc)Signaling Another Process.
+* kill: (libc)Signaling Another Process.
+* l64a: (libc)Encode Binary Data.
+* L_ctermid: (libc)Identifying the Terminal.
+* L_cuserid: (libc)Who Logged In.
+* L_tmpnam: (libc)Temporary Files.
+* labs: (libc)Absolute Value.
+* lcong48_r: (libc)SVID Random.
+* lcong48: (libc)SVID Random.
+* ldexpfNx: (libc)Normalization Functions.
+* ldexpfN: (libc)Normalization Functions.
+* ldexpf: (libc)Normalization Functions.
+* ldexpl: (libc)Normalization Functions.
+* ldexp: (libc)Normalization Functions.
+* ldiv: (libc)Integer Division.
+* lfind: (libc)Array Search Function.
+* lgamma_r: (libc)Special Functions.
+* lgammaf_r: (libc)Special Functions.
+* lgammafN_r: (libc)Special Functions.
+* lgammafNx_r: (libc)Special Functions.
+* lgammafNx: (libc)Special Functions.
+* lgammafN: (libc)Special Functions.
+* lgammaf: (libc)Special Functions.
+* lgammal_r: (libc)Special Functions.
+* lgammal: (libc)Special Functions.
+* lgamma: (libc)Special Functions.
+* LINE_MAX: (libc)Utility Limits.
+* LINK_MAX: (libc)Limits for Files.
+* linkat: (libc)Hard Links.
+* link: (libc)Hard Links.
+* lio_listio: (libc)Asynchronous Reads/Writes.
+* lio_listio64: (libc)Asynchronous Reads/Writes.
+* listen: (libc)Listening.
+* llabs: (libc)Absolute Value.
+* lldiv: (libc)Integer Division.
+* llogbfNx: (libc)Exponents and Logarithms.
+* llogbfN: (libc)Exponents and Logarithms.
+* llogbf: (libc)Exponents and Logarithms.
+* llogbl: (libc)Exponents and Logarithms.
+* llogb: (libc)Exponents and Logarithms.
+* llrintfNx: (libc)Rounding Functions.
+* llrintfN: (libc)Rounding Functions.
+* llrintf: (libc)Rounding Functions.
+* llrintl: (libc)Rounding Functions.
+* llrint: (libc)Rounding Functions.
+* llroundfNx: (libc)Rounding Functions.
+* llroundfN: (libc)Rounding Functions.
+* llroundf: (libc)Rounding Functions.
+* llroundl: (libc)Rounding Functions.
+* llround: (libc)Rounding Functions.
+* localeconv: (libc)The Lame Way to Locale Data.
+* localtime_r: (libc)Broken-down Time.
+* localtime: (libc)Broken-down Time.
+* log10fNx: (libc)Exponents and Logarithms.
+* log10fN: (libc)Exponents and Logarithms.
+* log10f: (libc)Exponents and Logarithms.
+* log10l: (libc)Exponents and Logarithms.
+* log10: (libc)Exponents and Logarithms.
+* log1pfNx: (libc)Exponents and Logarithms.
+* log1pfN: (libc)Exponents and Logarithms.
+* log1pf: (libc)Exponents and Logarithms.
+* log1pl: (libc)Exponents and Logarithms.
+* log1p: (libc)Exponents and Logarithms.
+* log2fN: (libc)Exponents and Logarithms.
+* log2f: (libc)Exponents and Logarithms.
+* log2: (libc)Exponents and Logarithms.
+* logbfNx: (libc)Exponents and Logarithms.
+* logbfN: (libc)Exponents and Logarithms.
+* logbf: (libc)Exponents and Logarithms.
+* logbl: (libc)Exponents and Logarithms.
+* logb: (libc)Exponents and Logarithms.
+* logfNx: (libc)Exponents and Logarithms.
+* logfN: (libc)Exponents and Logarithms.
+* logf: (libc)Exponents and Logarithms.
+* login_tty: (libc)Logging In and Out.
+* login: (libc)Logging In and Out.
+* logl: (libc)Exponents and Logarithms.
+* logout: (libc)Logging In and Out.
+* logwtmp: (libc)Logging In and Out.
+* log: (libc)Exponents and Logarithms.
+* log2fNx: (libc)Exponents and Logarithms.
+* log2l: (libc)Exponents and Logarithms.
+* longjmp: (libc)Non-Local Details.
+* lrand48_r: (libc)SVID Random.
+* lrand48: (libc)SVID Random.
+* lrintfNx: (libc)Rounding Functions.
+* lrintfN: (libc)Rounding Functions.
+* lrintf: (libc)Rounding Functions.
+* lrintl: (libc)Rounding Functions.
+* lrint: (libc)Rounding Functions.
+* lroundfNx: (libc)Rounding Functions.
+* lroundfN: (libc)Rounding Functions.
+* lroundf: (libc)Rounding Functions.
+* lroundl: (libc)Rounding Functions.
+* lround: (libc)Rounding Functions.
+* lsearch: (libc)Array Search Function.
+* lseek: (libc)File Position Primitive.
+* lseek64: (libc)File Position Primitive.
+* lstat: (libc)Reading Attributes.
+* lstat64: (libc)Reading Attributes.
+* lutimes: (libc)File Times.
+* madvise: (libc)Memory-mapped I/O.
+* makecontext: (libc)System V contexts.
+* mallinfo2: (libc)Statistics of Malloc.
+* malloc: (libc)Basic Allocation.
+* mallopt: (libc)Malloc Tunable Parameters.
+* MAX_CANON: (libc)Limits for Files.
+* MAX_INPUT: (libc)Limits for Files.
+* MAXNAMLEN: (libc)Limits for Files.
+* MAXSYMLINKS: (libc)Symbolic Links.
+* MB_CUR_MAX: (libc)Selecting the Conversion.
+* MB_LEN_MAX: (libc)Selecting the Conversion.
+* mblen: (libc)Non-reentrant Character Conversion.
+* mbrlen: (libc)Converting a Character.
+* mbrtowc: (libc)Converting a Character.
+* mbsinit: (libc)Keeping the state.
+* mbsnrtowcs: (libc)Converting Strings.
+* mbsrtowcs: (libc)Converting Strings.
+* mbstowcs: (libc)Non-reentrant String Conversion.
+* mbtowc: (libc)Non-reentrant Character Conversion.
+* mcheck: (libc)Heap Consistency Checking.
+* MDMBUF: (libc)Control Modes.
+* memalign: (libc)Aligned Memory Blocks.
+* memccpy: (libc)Copying Strings and Arrays.
+* memchr: (libc)Search Functions.
+* memcmp: (libc)String/Array Comparison.
+* memcpy: (libc)Copying Strings and Arrays.
+* memfd_create: (libc)Memory-mapped I/O.
+* memfrob: (libc)Obfuscating Data.
+* memmem: (libc)Search Functions.
+* memmove: (libc)Copying Strings and Arrays.
+* mempcpy: (libc)Copying Strings and Arrays.
+* memrchr: (libc)Search Functions.
+* memset: (libc)Copying Strings and Arrays.
+* mkdir: (libc)Creating Directories.
+* mkdtemp: (libc)Temporary Files.
+* mkfifo: (libc)FIFO Special Files.
+* mknod: (libc)Making Special Files.
+* mkstemp: (libc)Temporary Files.
+* mktemp: (libc)Temporary Files.
+* mktime: (libc)Broken-down Time.
+* mlockall: (libc)Page Lock Functions.
+* mlock: (libc)Page Lock Functions.
+* mlock2: (libc)Page Lock Functions.
+* mmap: (libc)Memory-mapped I/O.
+* mmap64: (libc)Memory-mapped I/O.
+* modffNx: (libc)Rounding Functions.
+* modffN: (libc)Rounding Functions.
+* modff: (libc)Rounding Functions.
+* modfl: (libc)Rounding Functions.
+* modf: (libc)Rounding Functions.
+* mount: (libc)Mount-Unmount-Remount.
+* mprobe: (libc)Heap Consistency Checking.
+* mprotect: (libc)Memory Protection.
+* mrand48_r: (libc)SVID Random.
+* mrand48: (libc)SVID Random.
+* mremap: (libc)Memory-mapped I/O.
+* MSG_DONTROUTE: (libc)Socket Data Options.
+* MSG_OOB: (libc)Socket Data Options.
+* MSG_PEEK: (libc)Socket Data Options.
+* msync: (libc)Memory-mapped I/O.
+* mtrace: (libc)Tracing malloc.
+* mtx_destroy: (libc)ISO C Mutexes.
+* mtx_init: (libc)ISO C Mutexes.
+* mtx_lock: (libc)ISO C Mutexes.
+* mtx_timedlock: (libc)ISO C Mutexes.
+* mtx_trylock: (libc)ISO C Mutexes.
+* mtx_unlock: (libc)ISO C Mutexes.
+* munlockall: (libc)Page Lock Functions.
+* munlock: (libc)Page Lock Functions.
+* munmap: (libc)Memory-mapped I/O.
+* muntrace: (libc)Tracing malloc.
+* NAME_MAX: (libc)Limits for Files.
+* nanfNx: (libc)FP Bit Twiddling.
+* nanfN: (libc)FP Bit Twiddling.
+* nanf: (libc)FP Bit Twiddling.
+* nanl: (libc)FP Bit Twiddling.
+* nanosleep: (libc)Sleeping.
+* nan: (libc)FP Bit Twiddling.
+* NAN: (libc)Infinity and NaN.
+* NCCS: (libc)Mode Data Types.
+* nearbyintfNx: (libc)Rounding Functions.
+* nearbyintfN: (libc)Rounding Functions.
+* nearbyintf: (libc)Rounding Functions.
+* nearbyintl: (libc)Rounding Functions.
+* nearbyint: (libc)Rounding Functions.
+* nextafterfNx: (libc)FP Bit Twiddling.
+* nextafterfN: (libc)FP Bit Twiddling.
+* nextafterf: (libc)FP Bit Twiddling.
+* nextafterl: (libc)FP Bit Twiddling.
+* nextafter: (libc)FP Bit Twiddling.
+* nextdownfNx: (libc)FP Bit Twiddling.
+* nextdownfN: (libc)FP Bit Twiddling.
+* nextdownf: (libc)FP Bit Twiddling.
+* nextdownl: (libc)FP Bit Twiddling.
+* nextdown: (libc)FP Bit Twiddling.
+* nexttowardf: (libc)FP Bit Twiddling.
+* nexttowardl: (libc)FP Bit Twiddling.
+* nexttoward: (libc)FP Bit Twiddling.
+* nextupfNx: (libc)FP Bit Twiddling.
+* nextupfN: (libc)FP Bit Twiddling.
+* nextupf: (libc)FP Bit Twiddling.
+* nextupl: (libc)FP Bit Twiddling.
+* nextup: (libc)FP Bit Twiddling.
+* nftw: (libc)Working with Directory Trees.
+* nftw64: (libc)Working with Directory Trees.
+* ngettext: (libc)Advanced gettext functions.
+* NGROUPS_MAX: (libc)General Limits.
+* nice: (libc)Traditional Scheduling Functions.
+* nl_langinfo: (libc)The Elegant and Fast Way.
+* NOFLSH: (libc)Local Modes.
+* NOKERNINFO: (libc)Local Modes.
+* nrand48_r: (libc)SVID Random.
+* nrand48: (libc)SVID Random.
+* NSIG: (libc)Standard Signals.
+* ntohl: (libc)Byte Order.
+* ntohs: (libc)Byte Order.
+* ntp_adjtime: (libc)Setting and Adjusting the Time.
+* ntp_gettime: (libc)Setting and Adjusting the Time.
+* NULL: (libc)Null Pointer Constant.
+* O_ACCMODE: (libc)Access Modes.
+* O_APPEND: (libc)Operating Modes.
+* O_ASYNC: (libc)Operating Modes.
+* O_CREAT: (libc)Open-time Flags.
+* O_DIRECTORY: (libc)Open-time Flags.
+* O_EXCL: (libc)Open-time Flags.
+* O_EXEC: (libc)Access Modes.
+* O_EXLOCK: (libc)Open-time Flags.
+* O_FSYNC: (libc)Operating Modes.
+* O_IGNORE_CTTY: (libc)Open-time Flags.
+* O_NDELAY: (libc)Operating Modes.
+* O_NOATIME: (libc)Operating Modes.
+* O_NOCTTY: (libc)Open-time Flags.
+* O_NOFOLLOW: (libc)Open-time Flags.
+* O_NOLINK: (libc)Open-time Flags.
+* O_NONBLOCK: (libc)Operating Modes.
+* O_NONBLOCK: (libc)Open-time Flags.
+* O_NOTRANS: (libc)Open-time Flags.
+* O_PATH: (libc)Access Modes.
+* O_RDONLY: (libc)Access Modes.
+* O_RDWR: (libc)Access Modes.
+* O_READ: (libc)Access Modes.
+* O_SHLOCK: (libc)Open-time Flags.
+* O_SYNC: (libc)Operating Modes.
+* O_TMPFILE: (libc)Open-time Flags.
+* O_TRUNC: (libc)Open-time Flags.
+* O_WRITE: (libc)Access Modes.
+* O_WRONLY: (libc)Access Modes.
+* obstack_1grow_fast: (libc)Extra Fast Growing.
+* obstack_1grow: (libc)Growing Objects.
+* obstack_alignment_mask: (libc)Obstacks Data Alignment.
+* obstack_alloc: (libc)Allocation in an Obstack.
+* obstack_base: (libc)Status of an Obstack.
+* obstack_blank_fast: (libc)Extra Fast Growing.
+* obstack_blank: (libc)Growing Objects.
+* obstack_chunk_size: (libc)Obstack Chunks.
+* obstack_copy: (libc)Allocation in an Obstack.
+* obstack_copy0: (libc)Allocation in an Obstack.
+* obstack_finish: (libc)Growing Objects.
+* obstack_free: (libc)Freeing Obstack Objects.
+* obstack_grow: (libc)Growing Objects.
+* obstack_grow0: (libc)Growing Objects.
+* obstack_init: (libc)Preparing for Obstacks.
+* obstack_int_grow_fast: (libc)Extra Fast Growing.
+* obstack_int_grow: (libc)Growing Objects.
+* obstack_next_free: (libc)Status of an Obstack.
+* obstack_object_size: (libc)Status of an Obstack.
+* obstack_object_size: (libc)Growing Objects.
+* obstack_printf: (libc)Dynamic Output.
+* obstack_ptr_grow_fast: (libc)Extra Fast Growing.
+* obstack_ptr_grow: (libc)Growing Objects.
+* obstack_room: (libc)Extra Fast Growing.
+* obstack_vprintf: (libc)Variable Arguments Output.
+* offsetof: (libc)Structure Measurement.
+* on_exit: (libc)Cleanups on Exit.
+* ONLCR: (libc)Output Modes.
+* ONOEOT: (libc)Output Modes.
+* open64: (libc)Opening and Closing Files.
+* OPEN_MAX: (libc)General Limits.
+* open_memstream: (libc)String Streams.
+* opendir: (libc)Opening a Directory.
+* openlog: (libc)openlog.
+* openpty: (libc)Pseudo-Terminal Pairs.
+* open: (libc)Opening and Closing Files.
+* OPOST: (libc)Output Modes.
+* OXTABS: (libc)Output Modes.
+* P_tmpdir: (libc)Temporary Files.
+* PA_FLAG_MASK: (libc)Parsing a Template String.
+* PARENB: (libc)Control Modes.
+* PARMRK: (libc)Input Modes.
+* PARODD: (libc)Control Modes.
+* parse_printf_format: (libc)Parsing a Template String.
+* PATH_MAX: (libc)Limits for Files.
+* pathconf: (libc)Pathconf.
+* pause: (libc)Using Pause.
+* pclose: (libc)Pipe to a Subprocess.
+* PENDIN: (libc)Local Modes.
+* perror: (libc)Error Messages.
+* PF_FILE: (libc)Local Namespace Details.
+* PF_INET: (libc)Internet Namespace.
+* PF_INET6: (libc)Internet Namespace.
+* PF_LOCAL: (libc)Local Namespace Details.
+* PF_UNIX: (libc)Local Namespace Details.
+* pipe: (libc)Creating a Pipe.
+* PIPE_BUF: (libc)Limits for Files.
+* pkey_alloc: (libc)Memory Protection.
+* pkey_free: (libc)Memory Protection.
+* pkey_get: (libc)Memory Protection.
+* pkey_mprotect: (libc)Memory Protection.
+* pkey_set: (libc)Memory Protection.
+* popen: (libc)Pipe to a Subprocess.
+* posix_fallocate: (libc)Storage Allocation.
+* posix_fallocate64: (libc)Storage Allocation.
+* posix_memalign: (libc)Aligned Memory Blocks.
+* powfNx: (libc)Exponents and Logarithms.
+* powfN: (libc)Exponents and Logarithms.
+* powf: (libc)Exponents and Logarithms.
+* powl: (libc)Exponents and Logarithms.
+* pow: (libc)Exponents and Logarithms.
+* preadv: (libc)Scatter-Gather.
+* preadv2: (libc)Scatter-Gather.
+* preadv64v2: (libc)Scatter-Gather.
+* preadv64: (libc)Scatter-Gather.
+* pread: (libc)I/O Primitives.
+* pread64: (libc)I/O Primitives.
+* printf_size_info: (libc)Predefined Printf Handlers.
+* printf_size: (libc)Predefined Printf Handlers.
+* printf: (libc)Formatted Output Functions.
+* psignal: (libc)Signal Messages.
+* pthread_attr_getsigmask_np: (libc)Initial Thread Signal Mask.
+* PTHREAD_ATTR_NO_SIGMASK_NP: (libc)Initial Thread Signal Mask.
+* pthread_attr_setsigmask_np: (libc)Initial Thread Signal Mask.
+* pthread_clockjoin_np: (libc)Waiting with Explicit Clocks.
+* pthread_cond_clockwait: (libc)Waiting with Explicit Clocks.
+* pthread_getattr_default_np: (libc)Default Thread Attributes.
+* pthread_getspecific: (libc)Thread-specific Data.
+* pthread_key_create: (libc)Thread-specific Data.
+* pthread_key_delete: (libc)Thread-specific Data.
+* pthread_rwlock_clockrdlock: (libc)Waiting with Explicit Clocks.
+* pthread_rwlock_clockwrlock: (libc)Waiting with Explicit Clocks.
+* pthread_setattr_default_np: (libc)Default Thread Attributes.
+* pthread_setspecific: (libc)Thread-specific Data.
+* pthread_timedjoin_np: (libc)Waiting with Explicit Clocks.
+* pthread_tryjoin_np: (libc)Waiting with Explicit Clocks.
+* ptsname_r: (libc)Allocation.
+* ptsname: (libc)Allocation.
+* putc_unlocked: (libc)Simple Output.
+* putchar_unlocked: (libc)Simple Output.
+* putchar: (libc)Simple Output.
+* putc: (libc)Simple Output.
+* putenv: (libc)Environment Access.
+* putpwent: (libc)Writing a User Entry.
+* puts: (libc)Simple Output.
+* pututline: (libc)Manipulating the Database.
+* pututxline: (libc)XPG Functions.
+* putwc_unlocked: (libc)Simple Output.
+* putwchar_unlocked: (libc)Simple Output.
+* putwchar: (libc)Simple Output.
+* putwc: (libc)Simple Output.
+* putw: (libc)Simple Output.
+* pwritev: (libc)Scatter-Gather.
+* pwritev2: (libc)Scatter-Gather.
+* pwritev64v2: (libc)Scatter-Gather.
+* pwritev64: (libc)Scatter-Gather.
+* pwrite: (libc)I/O Primitives.
+* pwrite64: (libc)I/O Primitives.
+* qecvt_r: (libc)System V Number Conversion.
+* qecvt: (libc)System V Number Conversion.
+* qfcvt_r: (libc)System V Number Conversion.
+* qfcvt: (libc)System V Number Conversion.
+* qgcvt: (libc)System V Number Conversion.
+* qsort: (libc)Array Sort Function.
+* R_OK: (libc)Testing File Access.
+* raise: (libc)Signaling Yourself.
+* RAND_MAX: (libc)ISO Random.
+* rand_r: (libc)ISO Random.
+* random_r: (libc)BSD Random.
+* random: (libc)BSD Random.
+* rand: (libc)ISO Random.
+* rawmemchr: (libc)Search Functions.
+* RE_DUP_MAX: (libc)General Limits.
+* readdir64_r: (libc)Reading/Closing Directory.
+* readdir64: (libc)Reading/Closing Directory.
+* readdir_r: (libc)Reading/Closing Directory.
+* readdir: (libc)Reading/Closing Directory.
+* readlink: (libc)Symbolic Links.
+* readv: (libc)Scatter-Gather.
+* read: (libc)I/O Primitives.
+* reallocarray: (libc)Changing Block Size.
+* realloc: (libc)Changing Block Size.
+* realpath: (libc)Symbolic Links.
+* recvfrom: (libc)Receiving Datagrams.
+* recvmsg: (libc)Receiving Datagrams.
+* recv: (libc)Receiving Data.
+* regcomp: (libc)POSIX Regexp Compilation.
+* regerror: (libc)Regexp Cleanup.
+* regexec: (libc)Matching POSIX Regexps.
+* regfree: (libc)Regexp Cleanup.
+* register_printf_function: (libc)Registering New Conversions.
+* remainderfNx: (libc)Remainder Functions.
+* remainderfN: (libc)Remainder Functions.
+* remainderf: (libc)Remainder Functions.
+* remainderl: (libc)Remainder Functions.
+* remainder: (libc)Remainder Functions.
+* remove: (libc)Deleting Files.
+* rename: (libc)Renaming Files.
+* rewinddir: (libc)Random Access Directory.
+* rewind: (libc)File Positioning.
+* rindex: (libc)Search Functions.
+* rintfNx: (libc)Rounding Functions.
+* rintfN: (libc)Rounding Functions.
+* rintf: (libc)Rounding Functions.
+* rintl: (libc)Rounding Functions.
+* rint: (libc)Rounding Functions.
+* RLIM_INFINITY: (libc)Limits on Resources.
+* rmdir: (libc)Deleting Files.
+* roundevenfNx: (libc)Rounding Functions.
+* roundevenfN: (libc)Rounding Functions.
+* roundevenf: (libc)Rounding Functions.
+* roundevenl: (libc)Rounding Functions.
+* roundeven: (libc)Rounding Functions.
+* roundfNx: (libc)Rounding Functions.
+* roundfN: (libc)Rounding Functions.
+* roundf: (libc)Rounding Functions.
+* roundl: (libc)Rounding Functions.
+* round: (libc)Rounding Functions.
+* rpmatch: (libc)Yes-or-No Questions.
+* RSEQ_SIG: (libc)Restartable Sequences.
+* S_IFMT: (libc)Testing File Type.
+* S_ISBLK: (libc)Testing File Type.
+* S_ISCHR: (libc)Testing File Type.
+* S_ISDIR: (libc)Testing File Type.
+* S_ISFIFO: (libc)Testing File Type.
+* S_ISLNK: (libc)Testing File Type.
+* S_ISREG: (libc)Testing File Type.
+* S_ISSOCK: (libc)Testing File Type.
+* S_TYPEISMQ: (libc)Testing File Type.
+* S_TYPEISSEM: (libc)Testing File Type.
+* S_TYPEISSHM: (libc)Testing File Type.
+* SA_NOCLDSTOP: (libc)Flags for Sigaction.
+* SA_ONSTACK: (libc)Flags for Sigaction.
+* SA_RESTART: (libc)Flags for Sigaction.
+* sbrk: (libc)Resizing the Data Segment.
+* scalbf: (libc)Normalization Functions.
+* scalblnfNx: (libc)Normalization Functions.
+* scalblnfN: (libc)Normalization Functions.
+* scalblnf: (libc)Normalization Functions.
+* scalblnl: (libc)Normalization Functions.
+* scalbln: (libc)Normalization Functions.
+* scalbl: (libc)Normalization Functions.
+* scalbnfNx: (libc)Normalization Functions.
+* scalbnfN: (libc)Normalization Functions.
+* scalbnf: (libc)Normalization Functions.
+* scalbnl: (libc)Normalization Functions.
+* scalbn: (libc)Normalization Functions.
+* scalb: (libc)Normalization Functions.
+* scandir: (libc)Scanning Directory Content.
+* scandir64: (libc)Scanning Directory Content.
+* scanf: (libc)Formatted Input Functions.
+* sched_get_priority_max: (libc)Basic Scheduling Functions.
+* sched_get_priority_min: (libc)Basic Scheduling Functions.
+* sched_getaffinity: (libc)CPU Affinity.
+* sched_getparam: (libc)Basic Scheduling Functions.
+* sched_getscheduler: (libc)Basic Scheduling Functions.
+* sched_rr_get_interval: (libc)Basic Scheduling Functions.
+* sched_setaffinity: (libc)CPU Affinity.
+* sched_setparam: (libc)Basic Scheduling Functions.
+* sched_setscheduler: (libc)Basic Scheduling Functions.
+* sched_yield: (libc)Basic Scheduling Functions.
+* secure_getenv: (libc)Environment Access.
+* seed48_r: (libc)SVID Random.
+* seed48: (libc)SVID Random.
+* SEEK_CUR: (libc)File Positioning.
+* SEEK_END: (libc)File Positioning.
+* SEEK_SET: (libc)File Positioning.
+* seekdir: (libc)Random Access Directory.
+* select: (libc)Waiting for I/O.
+* sem_clockwait: (libc)Waiting with Explicit Clocks.
+* sem_close: (libc)Semaphores.
+* sem_destroy: (libc)Semaphores.
+* sem_getvalue: (libc)Semaphores.
+* sem_init: (libc)Semaphores.
+* sem_open: (libc)Semaphores.
+* sem_post: (libc)Semaphores.
+* sem_timedwait: (libc)Semaphores.
+* sem_trywait: (libc)Semaphores.
+* sem_unlink: (libc)Semaphores.
+* sem_wait: (libc)Semaphores.
+* semctl: (libc)Semaphores.
+* semget: (libc)Semaphores.
+* semop: (libc)Semaphores.
+* semtimedop: (libc)Semaphores.
+* sendmsg: (libc)Receiving Datagrams.
+* sendto: (libc)Sending Datagrams.
+* send: (libc)Sending Data.
+* setbuffer: (libc)Controlling Buffering.
+* setbuf: (libc)Controlling Buffering.
+* setcontext: (libc)System V contexts.
+* setdomainname: (libc)Host Identification.
+* setegid: (libc)Setting Groups.
+* setenv: (libc)Environment Access.
+* seteuid: (libc)Setting User ID.
+* setfsent: (libc)fstab.
+* setgid: (libc)Setting Groups.
+* setgrent: (libc)Scanning All Groups.
+* setgroups: (libc)Setting Groups.
+* sethostent: (libc)Host Names.
+* sethostid: (libc)Host Identification.
+* sethostname: (libc)Host Identification.
+* setitimer: (libc)Setting an Alarm.
+* setjmp: (libc)Non-Local Details.
+* setlinebuf: (libc)Controlling Buffering.
+* setlocale: (libc)Setting the Locale.
+* setlogmask: (libc)setlogmask.
+* setmntent: (libc)mtab.
+* setnetent: (libc)Networks Database.
+* setnetgrent: (libc)Lookup Netgroup.
+* setpayloadfNx: (libc)FP Bit Twiddling.
+* setpayloadfN: (libc)FP Bit Twiddling.
+* setpayloadf: (libc)FP Bit Twiddling.
+* setpayloadl: (libc)FP Bit Twiddling.
+* setpayloadsigfNx: (libc)FP Bit Twiddling.
+* setpayloadsigfN: (libc)FP Bit Twiddling.
+* setpayloadsigf: (libc)FP Bit Twiddling.
+* setpayloadsigl: (libc)FP Bit Twiddling.
+* setpayloadsig: (libc)FP Bit Twiddling.
+* setpayload: (libc)FP Bit Twiddling.
+* setpgid: (libc)Process Group Functions.
+* setpgrp: (libc)Process Group Functions.
+* setpriority: (libc)Traditional Scheduling Functions.
+* setprotoent: (libc)Protocols Database.
+* setpwent: (libc)Scanning All Users.
+* setregid: (libc)Setting Groups.
+* setreuid: (libc)Setting User ID.
+* setrlimit: (libc)Limits on Resources.
+* setrlimit64: (libc)Limits on Resources.
+* setservent: (libc)Services Database.
+* setsid: (libc)Process Group Functions.
+* setsockopt: (libc)Socket Option Functions.
+* setstate_r: (libc)BSD Random.
+* setstate: (libc)BSD Random.
+* settimeofday: (libc)Setting and Adjusting the Time.
+* setuid: (libc)Setting User ID.
+* setutent: (libc)Manipulating the Database.
+* setutxent: (libc)XPG Functions.
+* setvbuf: (libc)Controlling Buffering.
+* shm_open: (libc)Memory-mapped I/O.
+* shm_unlink: (libc)Memory-mapped I/O.
+* shutdown: (libc)Closing a Socket.
+* SIG_ERR: (libc)Basic Signal Handling.
+* sigabbrev_np: (libc)Signal Messages.
+* SIGABRT: (libc)Program Error Signals.
+* sigaction: (libc)Advanced Signal Handling.
+* sigaddset: (libc)Signal Sets.
+* SIGALRM: (libc)Alarm Signals.
+* sigaltstack: (libc)Signal Stack.
+* sigblock: (libc)BSD Signal Handling.
+* SIGBUS: (libc)Program Error Signals.
+* SIGCHLD: (libc)Job Control Signals.
+* SIGCLD: (libc)Job Control Signals.
+* SIGCONT: (libc)Job Control Signals.
+* sigdelset: (libc)Signal Sets.
+* sigdescr_np: (libc)Signal Messages.
+* sigemptyset: (libc)Signal Sets.
+* SIGEMT: (libc)Program Error Signals.
+* sigfillset: (libc)Signal Sets.
+* SIGFPE: (libc)Program Error Signals.
+* SIGHUP: (libc)Termination Signals.
+* SIGILL: (libc)Program Error Signals.
+* SIGINFO: (libc)Miscellaneous Signals.
+* siginterrupt: (libc)BSD Signal Handling.
+* SIGINT: (libc)Termination Signals.
+* SIGIOT: (libc)Program Error Signals.
+* SIGIO: (libc)Asynchronous I/O Signals.
+* sigismember: (libc)Signal Sets.
+* SIGKILL: (libc)Termination Signals.
+* siglongjmp: (libc)Non-Local Exits and Signals.
+* SIGLOST: (libc)Operation Error Signals.
+* sigmask: (libc)BSD Signal Handling.
+* signal: (libc)Basic Signal Handling.
+* signbit: (libc)FP Bit Twiddling.
+* significandf: (libc)Normalization Functions.
+* significandl: (libc)Normalization Functions.
+* significand: (libc)Normalization Functions.
+* sigpause: (libc)BSD Signal Handling.
+* sigpending: (libc)Checking for Pending Signals.
+* SIGPIPE: (libc)Operation Error Signals.
+* SIGPOLL: (libc)Asynchronous I/O Signals.
+* sigprocmask: (libc)Process Signal Mask.
+* SIGPROF: (libc)Alarm Signals.
+* SIGQUIT: (libc)Termination Signals.
+* SIGSEGV: (libc)Program Error Signals.
+* sigsetjmp: (libc)Non-Local Exits and Signals.
+* sigsetmask: (libc)BSD Signal Handling.
+* sigstack: (libc)Signal Stack.
+* SIGSTOP: (libc)Job Control Signals.
+* sigsuspend: (libc)Sigsuspend.
+* SIGSYS: (libc)Program Error Signals.
+* SIGTERM: (libc)Termination Signals.
+* SIGTRAP: (libc)Program Error Signals.
+* SIGTSTP: (libc)Job Control Signals.
+* SIGTTIN: (libc)Job Control Signals.
+* SIGTTOU: (libc)Job Control Signals.
+* SIGURG: (libc)Asynchronous I/O Signals.
+* SIGUSR1: (libc)Miscellaneous Signals.
+* SIGUSR2: (libc)Miscellaneous Signals.
+* SIGVTALRM: (libc)Alarm Signals.
+* SIGWINCH: (libc)Miscellaneous Signals.
+* SIGXCPU: (libc)Operation Error Signals.
+* SIGXFSZ: (libc)Operation Error Signals.
+* sincosfNx: (libc)Trig Functions.
+* sincosfN: (libc)Trig Functions.
+* sincosf: (libc)Trig Functions.
+* sincosl: (libc)Trig Functions.
+* sincos: (libc)Trig Functions.
+* sinfNx: (libc)Trig Functions.
+* sinfN: (libc)Trig Functions.
+* sinf: (libc)Trig Functions.
+* sinhfNx: (libc)Hyperbolic Functions.
+* sinhfN: (libc)Hyperbolic Functions.
+* sinhf: (libc)Hyperbolic Functions.
+* sinhl: (libc)Hyperbolic Functions.
+* sinh: (libc)Hyperbolic Functions.
+* sinl: (libc)Trig Functions.
+* sin: (libc)Trig Functions.
+* sleep: (libc)Sleeping.
+* SNANFNx: (libc)Infinity and NaN.
+* SNANFN: (libc)Infinity and NaN.
+* SNANF: (libc)Infinity and NaN.
+* SNANL: (libc)Infinity and NaN.
+* SNAN: (libc)Infinity and NaN.
+* snprintf: (libc)Formatted Output Functions.
+* SOCK_DGRAM: (libc)Communication Styles.
+* SOCK_RAW: (libc)Communication Styles.
+* SOCK_RDM: (libc)Communication Styles.
+* SOCK_SEQPACKET: (libc)Communication Styles.
+* SOCK_STREAM: (libc)Communication Styles.
+* socketpair: (libc)Socket Pairs.
+* socket: (libc)Creating a Socket.
+* SOL_SOCKET: (libc)Socket-Level Options.
+* sprintf: (libc)Formatted Output Functions.
+* sqrtfNx: (libc)Exponents and Logarithms.
+* sqrtfN: (libc)Exponents and Logarithms.
+* sqrtf: (libc)Exponents and Logarithms.
+* sqrtl: (libc)Exponents and Logarithms.
+* sqrt: (libc)Exponents and Logarithms.
+* srandom_r: (libc)BSD Random.
+* srandom: (libc)BSD Random.
+* srand: (libc)ISO Random.
+* srand48_r: (libc)SVID Random.
+* srand48: (libc)SVID Random.
+* sscanf: (libc)Formatted Input Functions.
+* ssignal: (libc)Basic Signal Handling.
+* SSIZE_MAX: (libc)General Limits.
+* stat: (libc)Reading Attributes.
+* stat64: (libc)Reading Attributes.
+* stime: (libc)Setting and Adjusting the Time.
+* stpcpy: (libc)Copying Strings and Arrays.
+* stpncpy: (libc)Truncating Strings.
+* strcasecmp: (libc)String/Array Comparison.
+* strcasestr: (libc)Search Functions.
+* strcat: (libc)Concatenating Strings.
+* strchrnul: (libc)Search Functions.
+* strchr: (libc)Search Functions.
+* strcmp: (libc)String/Array Comparison.
+* strcoll: (libc)Collation Functions.
+* strcpy: (libc)Copying Strings and Arrays.
+* strcspn: (libc)Search Functions.
+* strdupa: (libc)Copying Strings and Arrays.
+* strdup: (libc)Copying Strings and Arrays.
+* STREAM_MAX: (libc)General Limits.
+* strerror_r: (libc)Error Messages.
+* strerrordesc_np: (libc)Error Messages.
+* strerrorname_np: (libc)Error Messages.
+* strerror: (libc)Error Messages.
+* strfmon: (libc)Formatting Numbers.
+* strfromd: (libc)Printing of Floats.
+* strfromfNx: (libc)Printing of Floats.
+* strfromfN: (libc)Printing of Floats.
+* strfromf: (libc)Printing of Floats.
+* strfroml: (libc)Printing of Floats.
+* strfry: (libc)Shuffling Bytes.
+* strftime: (libc)Formatting Calendar Time.
+* strlen: (libc)String Length.
+* strncasecmp: (libc)String/Array Comparison.
+* strncat: (libc)Truncating Strings.
+* strncmp: (libc)String/Array Comparison.
+* strncpy: (libc)Truncating Strings.
+* strndupa: (libc)Truncating Strings.
+* strndup: (libc)Truncating Strings.
+* strnlen: (libc)String Length.
+* strpbrk: (libc)Search Functions.
+* strptime: (libc)Low-Level Time String Parsing.
+* strrchr: (libc)Search Functions.
+* strsep: (libc)Finding Tokens in a String.
+* strsignal: (libc)Signal Messages.
+* strspn: (libc)Search Functions.
+* strstr: (libc)Search Functions.
+* strtod: (libc)Parsing of Floats.
+* strtofNx: (libc)Parsing of Floats.
+* strtofN: (libc)Parsing of Floats.
+* strtof: (libc)Parsing of Floats.
+* strtoimax: (libc)Parsing of Integers.
+* strtok_r: (libc)Finding Tokens in a String.
+* strtok: (libc)Finding Tokens in a String.
+* strtold: (libc)Parsing of Floats.
+* strtoll: (libc)Parsing of Integers.
+* strtol: (libc)Parsing of Integers.
+* strtoq: (libc)Parsing of Integers.
+* strtoull: (libc)Parsing of Integers.
+* strtoul: (libc)Parsing of Integers.
+* strtoumax: (libc)Parsing of Integers.
+* strtouq: (libc)Parsing of Integers.
+* strverscmp: (libc)String/Array Comparison.
+* strxfrm: (libc)Collation Functions.
+* stty: (libc)BSD Terminal Modes.
+* SUN_LEN: (libc)Local Namespace Details.
+* swapcontext: (libc)System V contexts.
+* swprintf: (libc)Formatted Output Functions.
+* swscanf: (libc)Formatted Input Functions.
+* symlink: (libc)Symbolic Links.
+* sync: (libc)Synchronizing I/O.
+* syscall: (libc)System Calls.
+* sysconf: (libc)Sysconf Definition.
+* syslog: (libc)syslog; vsyslog.
+* system: (libc)Running a Command.
+* sysv_signal: (libc)Basic Signal Handling.
+* tanfNx: (libc)Trig Functions.
+* tanfN: (libc)Trig Functions.
+* tanf: (libc)Trig Functions.
+* tanhfNx: (libc)Hyperbolic Functions.
+* tanhfN: (libc)Hyperbolic Functions.
+* tanhf: (libc)Hyperbolic Functions.
+* tanhl: (libc)Hyperbolic Functions.
+* tanh: (libc)Hyperbolic Functions.
+* tanl: (libc)Trig Functions.
+* tan: (libc)Trig Functions.
+* tcdrain: (libc)Line Control.
+* tcflow: (libc)Line Control.
+* tcflush: (libc)Line Control.
+* tcgetattr: (libc)Mode Functions.
+* tcgetpgrp: (libc)Terminal Access Functions.
+* tcgetsid: (libc)Terminal Access Functions.
+* tcsendbreak: (libc)Line Control.
+* tcsetattr: (libc)Mode Functions.
+* tcsetpgrp: (libc)Terminal Access Functions.
+* tdelete: (libc)Tree Search Function.
+* tdestroy: (libc)Tree Search Function.
+* telldir: (libc)Random Access Directory.
+* tempnam: (libc)Temporary Files.
+* textdomain: (libc)Locating gettext catalog.
+* tfind: (libc)Tree Search Function.
+* tgammafNx: (libc)Special Functions.
+* tgammafN: (libc)Special Functions.
+* tgammaf: (libc)Special Functions.
+* tgammal: (libc)Special Functions.
+* tgamma: (libc)Special Functions.
+* tgkill: (libc)Signaling Another Process.
+* thrd_create: (libc)ISO C Thread Management.
+* thrd_current: (libc)ISO C Thread Management.
+* thrd_detach: (libc)ISO C Thread Management.
+* thrd_equal: (libc)ISO C Thread Management.
+* thrd_exit: (libc)ISO C Thread Management.
+* thrd_join: (libc)ISO C Thread Management.
+* thrd_sleep: (libc)ISO C Thread Management.
+* thrd_yield: (libc)ISO C Thread Management.
+* timegm: (libc)Broken-down Time.
+* timelocal: (libc)Broken-down Time.
+* times: (libc)Processor Time.
+* time: (libc)Getting the Time.
+* TMP_MAX: (libc)Temporary Files.
+* tmpfile: (libc)Temporary Files.
+* tmpfile64: (libc)Temporary Files.
+* tmpnam_r: (libc)Temporary Files.
+* tmpnam: (libc)Temporary Files.
+* toascii: (libc)Case Conversion.
+* tolower: (libc)Case Conversion.
+* TOSTOP: (libc)Local Modes.
+* totalorderfNx: (libc)FP Comparison Functions.
+* totalorderfN: (libc)FP Comparison Functions.
+* totalorderf: (libc)FP Comparison Functions.
+* totalorderl: (libc)FP Comparison Functions.
+* totalordermagfNx: (libc)FP Comparison Functions.
+* totalordermagfN: (libc)FP Comparison Functions.
+* totalordermagf: (libc)FP Comparison Functions.
+* totalordermagl: (libc)FP Comparison Functions.
+* totalordermag: (libc)FP Comparison Functions.
+* totalorder: (libc)FP Comparison Functions.
+* toupper: (libc)Case Conversion.
+* towctrans: (libc)Wide Character Case Conversion.
+* towlower: (libc)Wide Character Case Conversion.
+* towupper: (libc)Wide Character Case Conversion.
+* truncate: (libc)File Size.
+* truncate64: (libc)File Size.
+* truncfNx: (libc)Rounding Functions.
+* truncfN: (libc)Rounding Functions.
+* truncf: (libc)Rounding Functions.
+* truncl: (libc)Rounding Functions.
+* trunc: (libc)Rounding Functions.
+* tsearch: (libc)Tree Search Function.
+* tss_create: (libc)ISO C Thread-local Storage.
+* tss_delete: (libc)ISO C Thread-local Storage.
+* tss_get: (libc)ISO C Thread-local Storage.
+* tss_set: (libc)ISO C Thread-local Storage.
+* ttyname_r: (libc)Is It a Terminal.
+* ttyname: (libc)Is It a Terminal.
+* twalk_r: (libc)Tree Search Function.
+* twalk: (libc)Tree Search Function.
+* TZNAME_MAX: (libc)General Limits.
+* tzset: (libc)Time Zone Functions.
+* ufromfpfNx: (libc)Rounding Functions.
+* ufromfpfN: (libc)Rounding Functions.
+* ufromfpf: (libc)Rounding Functions.
+* ufromfpl: (libc)Rounding Functions.
+* ufromfpxfNx: (libc)Rounding Functions.
+* ufromfpxfN: (libc)Rounding Functions.
+* ufromfpxf: (libc)Rounding Functions.
+* ufromfpxl: (libc)Rounding Functions.
+* ufromfpx: (libc)Rounding Functions.
+* ufromfp: (libc)Rounding Functions.
+* ulimit: (libc)Limits on Resources.
+* umask: (libc)Setting Permissions.
+* umount: (libc)Mount-Unmount-Remount.
+* umount2: (libc)Mount-Unmount-Remount.
+* uname: (libc)Platform Type.
+* ungetc: (libc)How Unread.
+* ungetwc: (libc)How Unread.
+* unlink: (libc)Deleting Files.
+* unlockpt: (libc)Allocation.
+* unsetenv: (libc)Environment Access.
+* updwtmp: (libc)Manipulating the Database.
+* utimes: (libc)File Times.
+* utime: (libc)File Times.
+* utmpname: (libc)Manipulating the Database.
+* utmpxname: (libc)XPG Functions.
+* va_arg: (libc)Argument Macros.
+* va_copy: (libc)Argument Macros.
+* va_end: (libc)Argument Macros.
+* va_start: (libc)Argument Macros.
+* valloc: (libc)Aligned Memory Blocks.
+* vasprintf: (libc)Variable Arguments Output.
+* VDISCARD: (libc)Other Special.
+* VDSUSP: (libc)Signal Characters.
+* VEOF: (libc)Editing Characters.
+* VEOL: (libc)Editing Characters.
+* VEOL2: (libc)Editing Characters.
+* VERASE: (libc)Editing Characters.
+* verrx: (libc)Error Messages.
+* verr: (libc)Error Messages.
+* versionsort: (libc)Scanning Directory Content.
+* versionsort64: (libc)Scanning Directory Content.
+* vfork: (libc)Creating a Process.
+* vfprintf: (libc)Variable Arguments Output.
+* vfscanf: (libc)Variable Arguments Input.
+* vfwprintf: (libc)Variable Arguments Output.
+* vfwscanf: (libc)Variable Arguments Input.
+* VINTR: (libc)Signal Characters.
+* VKILL: (libc)Editing Characters.
+* vlimit: (libc)Limits on Resources.
+* VLNEXT: (libc)Other Special.
+* VMIN: (libc)Noncanonical Input.
+* vprintf: (libc)Variable Arguments Output.
+* VQUIT: (libc)Signal Characters.
+* VREPRINT: (libc)Editing Characters.
+* vscanf: (libc)Variable Arguments Input.
+* vsnprintf: (libc)Variable Arguments Output.
+* vsprintf: (libc)Variable Arguments Output.
+* vsscanf: (libc)Variable Arguments Input.
+* VSTART: (libc)Start/Stop Characters.
+* VSTATUS: (libc)Other Special.
+* VSTOP: (libc)Start/Stop Characters.
+* VSUSP: (libc)Signal Characters.
+* vswprintf: (libc)Variable Arguments Output.
+* vswscanf: (libc)Variable Arguments Input.
+* vsyslog: (libc)syslog; vsyslog.
+* VTIME: (libc)Noncanonical Input.
+* vwarnx: (libc)Error Messages.
+* vwarn: (libc)Error Messages.
+* VWERASE: (libc)Editing Characters.
+* vwprintf: (libc)Variable Arguments Output.
+* vwscanf: (libc)Variable Arguments Input.
+* W_OK: (libc)Testing File Access.
+* wait3: (libc)BSD Wait Functions.
+* waitpid: (libc)Process Completion.
+* wait: (libc)Process Completion.
+* wait4: (libc)Process Completion.
+* warnx: (libc)Error Messages.
+* warn: (libc)Error Messages.
+* WCHAR_MAX: (libc)Extended Char Intro.
+* WCHAR_MIN: (libc)Extended Char Intro.
+* WCOREDUMP: (libc)Process Completion Status.
+* wcpcpy: (libc)Copying Strings and Arrays.
+* wcpncpy: (libc)Truncating Strings.
+* wcrtomb: (libc)Converting a Character.
+* wcscasecmp: (libc)String/Array Comparison.
+* wcscat: (libc)Concatenating Strings.
+* wcschrnul: (libc)Search Functions.
+* wcschr: (libc)Search Functions.
+* wcscmp: (libc)String/Array Comparison.
+* wcscoll: (libc)Collation Functions.
+* wcscpy: (libc)Copying Strings and Arrays.
+* wcscspn: (libc)Search Functions.
+* wcsdup: (libc)Copying Strings and Arrays.
+* wcsftime: (libc)Formatting Calendar Time.
+* wcslen: (libc)String Length.
+* wcsncasecmp: (libc)String/Array Comparison.
+* wcsncat: (libc)Truncating Strings.
+* wcsncmp: (libc)String/Array Comparison.
+* wcsncpy: (libc)Truncating Strings.
+* wcsnlen: (libc)String Length.
+* wcsnrtombs: (libc)Converting Strings.
+* wcspbrk: (libc)Search Functions.
+* wcsrchr: (libc)Search Functions.
+* wcsrtombs: (libc)Converting Strings.
+* wcsspn: (libc)Search Functions.
+* wcsstr: (libc)Search Functions.
+* wcstod: (libc)Parsing of Floats.
+* wcstofNx: (libc)Parsing of Floats.
+* wcstofN: (libc)Parsing of Floats.
+* wcstof: (libc)Parsing of Floats.
+* wcstoimax: (libc)Parsing of Integers.
+* wcstok: (libc)Finding Tokens in a String.
+* wcstold: (libc)Parsing of Floats.
+* wcstoll: (libc)Parsing of Integers.
+* wcstol: (libc)Parsing of Integers.
+* wcstombs: (libc)Non-reentrant String Conversion.
+* wcstoq: (libc)Parsing of Integers.
+* wcstoull: (libc)Parsing of Integers.
+* wcstoul: (libc)Parsing of Integers.
+* wcstoumax: (libc)Parsing of Integers.
+* wcstouq: (libc)Parsing of Integers.
+* wcswcs: (libc)Search Functions.
+* wcsxfrm: (libc)Collation Functions.
+* wctob: (libc)Converting a Character.
+* wctomb: (libc)Non-reentrant Character Conversion.
+* wctrans: (libc)Wide Character Case Conversion.
+* wctype: (libc)Classification of Wide Characters.
+* WEOF: (libc)Extended Char Intro.
+* WEOF: (libc)EOF and Errors.
+* WEXITSTATUS: (libc)Process Completion Status.
+* WIFEXITED: (libc)Process Completion Status.
+* WIFSIGNALED: (libc)Process Completion Status.
+* WIFSTOPPED: (libc)Process Completion Status.
+* wmemchr: (libc)Search Functions.
+* wmemcmp: (libc)String/Array Comparison.
+* wmemcpy: (libc)Copying Strings and Arrays.
+* wmemmove: (libc)Copying Strings and Arrays.
+* wmempcpy: (libc)Copying Strings and Arrays.
+* wmemset: (libc)Copying Strings and Arrays.
+* wordexp: (libc)Calling Wordexp.
+* wordfree: (libc)Calling Wordexp.
+* wprintf: (libc)Formatted Output Functions.
+* writev: (libc)Scatter-Gather.
+* write: (libc)I/O Primitives.
+* wscanf: (libc)Formatted Input Functions.
+* WSTOPSIG: (libc)Process Completion Status.
+* WTERMSIG: (libc)Process Completion Status.
+* X_OK: (libc)Testing File Access.
+* y0fNx: (libc)Special Functions.
+* y0fN: (libc)Special Functions.
+* y0f: (libc)Special Functions.
+* y0l: (libc)Special Functions.
+* y0: (libc)Special Functions.
+* y1fNx: (libc)Special Functions.
+* y1fN: (libc)Special Functions.
+* y1f: (libc)Special Functions.
+* y1l: (libc)Special Functions.
+* y1: (libc)Special Functions.
+* ynfNx: (libc)Special Functions.
+* ynfN: (libc)Special Functions.
+* ynf: (libc)Special Functions.
+* ynl: (libc)Special Functions.
+* yn: (libc)Special Functions.
+
+Software libraries
+* Libc: (libc).                 C library.
+__EOF__
+  fi
+}
+
+# arg 1:  the new package version
+# arg 2:  the old package version
+pre_update() {
+  /bin/true
+}
+
+# arg 1:  the new package version
+# arg 2:  the old package version
+post_update() {
+  post_install
+}
+
+# arg 1:  the old package version
+pre_remove() {
+  if [ -x /usr/bin/install-info ] ; then
+    install-info --delete --info-file=usr/share/info/libc.info.gz --dir-file=usr/share/info/dir 2> /dev/null || /bin/true
+  fi
+}
+
+# arg 1:  the old package version
+post_remove() {
+  /bin/true
+}
+
+
+operation=$1
+shift
+
+$operation $*

Property changes on: libs/glibc/2.40/glibc-pkg-install.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: libs/glibc/2.40/profile.d/glibc.csh
===================================================================
--- libs/glibc/2.40/profile.d/glibc.csh	(nonexistent)
+++ libs/glibc/2.40/profile.d/glibc.csh	(revision 394)
@@ -0,0 +1,9 @@
+#!/bin/csh
+# Set more relaxed (glibc-2.3.5 like) malloc() checking.
+#
+# This relaxes the default paranoia level so that it reports
+# bugs, but does not kill the questionable process.  You can
+# get away with running broken programs with this setting,
+# but at a possible performance and security cost.
+#
+#setenv MALLOC_CHECK_ 1
Index: libs/glibc/2.40/profile.d/glibc.sh
===================================================================
--- libs/glibc/2.40/profile.d/glibc.sh	(nonexistent)
+++ libs/glibc/2.40/profile.d/glibc.sh	(revision 394)
@@ -0,0 +1,8 @@
+#!/bin/sh
+# Set more relaxed (glibc-2.3.5 like) malloc() checking.
+#
+# This relaxes the default paranoia level so that it reports
+# bugs, but does not kill the questionable process.  You can
+# get away with running broken programs with this setting,
+# but at a possible performance and security cost.
+#export MALLOC_CHECK_=1
Index: libs/glibc/2.40/profile.d
===================================================================
--- libs/glibc/2.40/profile.d	(nonexistent)
+++ libs/glibc/2.40/profile.d	(revision 394)

Property changes on: libs/glibc/2.40/profile.d
___________________________________________________________________
Added: svn:ignore
## -0,0 +1,73 ##
+
+# install dir
+dist
+
+# Target build dirs
+.a1x-newlib
+.a2x-newlib
+.at91sam7s-newlib
+
+.build-machine
+
+.a1x-glibc
+.a2x-glibc
+.h3-glibc
+.h5-glibc
+.i586-glibc
+.i686-glibc
+.imx6-glibc
+.jz47xx-glibc
+.makefile
+.am335x-glibc
+.omap543x-glibc
+.p5600-glibc
+.power8-glibc
+.power8le-glibc
+.power9-glibc
+.power9le-glibc
+.m1000-glibc
+.riscv64-glibc
+.rk328x-glibc
+.rk33xx-glibc
+.rk339x-glibc
+.s8xx-glibc
+.s9xx-glibc
+.x86_64-glibc
+
+# Hidden files (each file)
+.makefile
+.dist
+.rootfs
+
+# src & hw requires
+.src_requires
+.src_requires_depend
+.requires
+.requires_depend
+
+# Tarballs
+*.gz
+*.bz2
+*.lz
+*.xz
+*.tgz
+*.txz
+
+# Signatures
+*.asc
+*.sig
+*.sign
+*.sha1sum
+
+# Patches
+*.patch
+
+# Descriptions
+*.dsc
+*.txt
+
+# Default linux config files
+*.defconfig
+
+# backup copies
+*~
Index: libs/glibc/2.40/tz-exclude.list
===================================================================
--- libs/glibc/2.40/tz-exclude.list	(nonexistent)
+++ libs/glibc/2.40/tz-exclude.list	(revision 394)
@@ -0,0 +1 @@
+Makefile
Index: libs/glibc/2.40
===================================================================
--- libs/glibc/2.40	(nonexistent)
+++ libs/glibc/2.40	(revision 394)

Property changes on: libs/glibc/2.40
___________________________________________________________________
Added: svn:ignore
## -0,0 +1,74 ##
+
+# install dir
+dist
+
+# Target build dirs
+.a1x-newlib
+.a2x-newlib
+.at91sam7s-newlib
+
+.build-machine
+
+.a1x-glibc
+.a2x-glibc
+.h3-glibc
+.h5-glibc
+.i586-glibc
+.i686-glibc
+.imx6-glibc
+.jz47xx-glibc
+.makefile
+.am335x-glibc
+.omap543x-glibc
+.p5600-glibc
+.power8-glibc
+.power8le-glibc
+.power9-glibc
+.power9le-glibc
+.m1000-glibc
+.riscv64-glibc
+.rk328x-glibc
+.rk33xx-glibc
+.rk339x-glibc
+.rk358x-glibc
+.s8xx-glibc
+.s9xx-glibc
+.x86_64-glibc
+
+# Hidden files (each file)
+.makefile
+.dist
+.rootfs
+
+# src & hw requires
+.src_requires
+.src_requires_depend
+.requires
+.requires_depend
+
+# Tarballs
+*.gz
+*.bz2
+*.lz
+*.xz
+*.tgz
+*.txz
+
+# Signatures
+*.asc
+*.sig
+*.sign
+*.sha1sum
+
+# Patches
+*.patch
+
+# Descriptions
+*.dsc
+*.txt
+
+# Default linux config files
+*.defconfig
+
+# backup copies
+*~
Index: libs/glibc/2.40-i18n/Makefile
===================================================================
--- libs/glibc/2.40-i18n/Makefile	(nonexistent)
+++ libs/glibc/2.40-i18n/Makefile	(revision 394)
@@ -0,0 +1,239 @@
+
+COMPONENT_TARGETS  = $(HARDWARE_INTEL_PC32)
+COMPONENT_TARGETS += $(HARDWARE_INTEL_PC64)
+COMPONENT_TARGETS += $(HARDWARE_EBOX_3350DX2)
+COMPONENT_TARGETS += $(HARDWARE_CB1X)
+COMPONENT_TARGETS += $(HARDWARE_CB2X)
+COMPONENT_TARGETS += $(HARDWARE_CB3X)
+COMPONENT_TARGETS += $(HARDWARE_ORANGE_PP2E)
+COMPONENT_TARGETS += $(HARDWARE_NANOPI_NEO)
+COMPONENT_TARGETS += $(HARDWARE_ORANGE_PP)
+COMPONENT_TARGETS += $(HARDWARE_ORANGE_PL2)
+COMPONENT_TARGETS += $(HARDWARE_ORANGE_PI5)
+COMPONENT_TARGETS += $(HARDWARE_ORANGE_PI5B)
+COMPONENT_TARGETS += $(HARDWARE_ORANGE_PI5P)
+COMPONENT_TARGETS += $(HARDWARE_ROCK_5B)
+COMPONENT_TARGETS += $(HARDWARE_WECHIP_TX6)
+COMPONENT_TARGETS += $(HARDWARE_REPKA_PI3)
+COMPONENT_TARGETS += $(HARDWARE_FFRK3288)
+COMPONENT_TARGETS += $(HARDWARE_POIN2)
+COMPONENT_TARGETS += $(HARDWARE_RK3328_CC)
+COMPONENT_TARGETS += $(HARDWARE_KHADAS_EDGE)
+COMPONENT_TARGETS += $(HARDWARE_LEEZ_P710)
+COMPONENT_TARGETS += $(HARDWARE_M201)
+COMPONENT_TARGETS += $(HARDWARE_MXV)
+COMPONENT_TARGETS += $(HARDWARE_P201)
+COMPONENT_TARGETS += $(HARDWARE_NEXBOX_A95X)
+COMPONENT_TARGETS += $(HARDWARE_ODROID_C2)
+COMPONENT_TARGETS += $(HARDWARE_P212)
+COMPONENT_TARGETS += $(HARDWARE_KHADAS_VIM)
+COMPONENT_TARGETS += $(HARDWARE_Q201)
+COMPONENT_TARGETS += $(HARDWARE_ENYBOX_X2)
+COMPONENT_TARGETS += $(HARDWARE_KHADAS_VIM2)
+COMPONENT_TARGETS += $(HARDWARE_NIT6Q)
+COMPONENT_TARGETS += $(HARDWARE_OKMX6DL_C)
+COMPONENT_TARGETS += $(HARDWARE_OKMX6Q_C)
+COMPONENT_TARGETS += $(HARDWARE_BONE_BLACK)
+COMPONENT_TARGETS += $(HARDWARE_OMAP5UEVM)
+COMPONENT_TARGETS += $(HARDWARE_DRA7XXEVM)
+COMPONENT_TARGETS += $(HARDWARE_CI20)
+COMPONENT_TARGETS += $(HARDWARE_BAIKAL_T1)
+COMPONENT_TARGETS += $(HARDWARE_BAIKAL_M1)
+COMPONENT_TARGETS += $(HARDWARE_S824L)
+COMPONENT_TARGETS += $(HARDWARE_VESNIN)
+COMPONENT_TARGETS += $(HARDWARE_S824L_LSB)
+COMPONENT_TARGETS += $(HARDWARE_VESNIN_LSB)
+COMPONENT_TARGETS += $(HARDWARE_TL2WK2)
+COMPONENT_TARGETS += $(HARDWARE_TL2SV2)
+COMPONENT_TARGETS += $(HARDWARE_TL2WK2_LSB)
+COMPONENT_TARGETS += $(HARDWARE_TL2SV2_LSB)
+COMPONENT_TARGETS += $(HARDWARE_VISIONFIVE2)
+COMPONENT_TARGETS += $(HARDWARE_SIFIVE_U740)
+
+
+NEED_ABS_PATH      = true
+COMPONENT_IS_3PP   = true
+
+
+include ../../../build-system/constants.mk
+
+
+
+SOURCE_REQUIRES   = sources/GNU/glibc/2.40
+SOURCE_REQUIRES  += sources/iana/tz
+
+REQUIRES          = libs/glibc/2.40
+
+# ======= __END_OF_REQUIRES__ =======
+
+
+version           = 2.40
+tar_xz_archive    = $(SRC_PACKAGE_PATH)/GNU/glibc/$(version)/glibc-$(version).tar.xz
+
+tz_version            = 2024b
+tar_gz_code_archive   = $(SRC_PACKAGE_PATH)/iana/tz/tzcode$(tz_version).tar.gz
+tar_gz_data_archive   = $(SRC_PACKAGE_PATH)/iana/tz/tzdata$(tz_version).tar.gz
+exclude_list          = $(CURDIR)/tz-exclude.list
+
+SRC_ARCHIVE       = $(tar_xz_archive)
+SRC_DIR           = $(TARGET_BUILD_DIR)/glibc-$(version)
+src_dir_name      = glibc-$(version)
+src_done          = $(TARGET_BUILD_DIR)/.source-done
+
+PATCHES           = PATCHES
+
+build_dir         = $(TARGET_BUILD_DIR)/build
+build_target      = $(TARGET_BUILD_DIR)/.built
+install_target    = $(TARGET_BUILD_DIR)/.installed
+
+
+OPTIMIZATION_FLAGS  = -O3
+
+
+####### Targets
+
+PKG_GROUP = libs
+
+#
+# *PKG_NAME & *PKG_VERSION shouldn't be a reference to value.
+#
+GLIBC_I18N_PKG_NAME                = glibc-i18n
+GLIBC_I18N_PKG_VERSION             = 2.40
+GLIBC_I18N_PKG_ARCH                = $(PKGARCH)
+GLIBC_I18N_PKG_DISTRO_NAME         = $(DISTRO_NAME)
+GLIBC_I18N_PKG_DISTRO_VERSION      = $(DISTRO_VERSION)
+GLIBC_I18N_PKG_GROUP               = $(PKG_GROUP)
+###                                 |---handy-ruler-------------------------------|
+GLIBC_I18N_PKG_SHORT_DESCRIPTION   = locale files
+GLIBC_I18N_PKG_URL                 = $(BUG_URL)
+GLIBC_I18N_PKG_LICENSE             = GPLv2
+GLIBC_I18N_PKG_DESCRIPTION_FILE    = $(TARGET_BUILD_DIR)/$(GLIBC_I18N_PKG_NAME)-pkg-description
+GLIBC_I18N_PKG_DESCRIPTION_FILE_IN = $(GLIBC_I18N_PKG_NAME)-pkg-description.in
+GLIBC_I18N_PKG_INSTALL_SCRIPT      = $(GLIBC_I18N_PKG_NAME)-pkg-install.sh
+
+GLIBC_I18N_PKG   = $(CURDIR)/$(TARGET_BUILD_DIR)/$(GLIBC_I18N_PKG_NAME)-package
+
+pkg_basename     = $(GLIBC_I18N_PKG_NAME)-$(GLIBC_I18N_PKG_VERSION)-$(GLIBC_I18N_PKG_ARCH)-$(GLIBC_I18N_PKG_DISTRO_NAME)-$(GLIBC_I18N_PKG_DISTRO_VERSION)
+
+pkg_archive      = $(TARGET_BUILD_DIR)/$(PKG_GROUP)/$(pkg_basename).$(pkg_arch_suffix)
+pkg_certificate  = $(call cert-name,$(pkg_archive))
+pkg_signature    = $(call sign-name,$(pkg_archive))
+pkg_description  = $(call desc-name,$(pkg_archive))
+products         = $(call pkg-files,$(pkg_archive))
+
+BUILD_TARGETS    = $(build_target)
+BUILD_TARGETS   += $(install_target)
+
+PRODUCT_TARGETS  = $(products)
+
+ROOTFS_TARGETS   = $(pkg_archive)
+
+
+include ../../../build-system/core.mk
+
+
+env_sysroot = install_root=$(GLIBC_I18N_PKG)
+
+
+ifeq ($(TOOLCHAIN),$(TOOLCHAIN_X86_64_GLIBC))
+OPTIMIZATION_FLAGS += -fPIC
+endif
+
+
+INSTALL_NOT_ARCHIVED_LOCALES = no
+
+ifneq ($(filter $(TOOLCHAIN),$(TOOLCHAIN_X86_64_GLIBC)   \
+                             $(TOOLCHAIN_POWER8_GLIBC)   \
+                             $(TOOLCHAIN_POWER8LE_GLIBC) \
+                             $(TOOLCHAIN_POWER9_GLIBC)   \
+                             $(TOOLCHAIN_POWER9LE_GLIBC)),)
+INSTALL_ALL_LOCALES = yes
+else
+INSTALL_ALL_LOCALES = no
+endif
+
+# ==================================================================
+LOCALES  = fa_IR/UTF-8
+# ==================================================================
+LOCALES += de_DE.UTF-8/UTF-8 de_DE/ISO-8859-1 de_DE@euro/ISO-8859-15
+# ==================================================================
+LOCALES += en_HK.UTF-8/UTF-8 en_HK/ISO-8859-1
+LOCALES += en_PH.UTF-8/UTF-8 en_PH/ISO-8859-1
+LOCALES += en_US.UTF-8/UTF-8 en_US/ISO-8859-1
+LOCALES += es_MX.UTF-8/UTF-8 es_MX/ISO-8859-1
+# ==================================================================
+LOCALES += fr_FR.UTF-8/UTF-8 fr_FR/ISO-8859-1 fr_FR@euro/ISO-8859-15
+LOCALES += it_IT.UTF-8/UTF-8 it_IT/ISO-8859-1 it_IT@euro/ISO-8859-15
+# ==================================================================
+LOCALES += ja_JP.EUC-JP/EUC-JP ja_JP.UTF-8/UTF-8
+LOCALES += en_RU.KOI8-R/KOI8-R en_RU.UTF-8/UTF-8 en_RU.CP1251/CP1251
+LOCALES += en_RU.ISO-8859-5/ISO-8859-5 en_RU/ISO-8859-5
+# ==================================================================
+LOCALES += ru_RU.KOI8-R/KOI8-R ru_RU.UTF-8/UTF-8 ru_RU.CP1251/CP1251
+LOCALES += ru_RU.ISO-8859-5/ISO-8859-5 ru_RU/ISO-8859-5
+# ==================================================================
+
+
+RADIX_BUILD_CC = $(X86_64_GLIBC_PATH)/$(X86_64_GLIBC_VERSION)/bin/$(X86_64_GLIBC_ARCH)-gcc
+
+
+$(src_done): $(SRC_ARCHIVE) $(PATCHES_DEP)
+	$(UNPACK_SRC_ARCHIVE)
+	@tar --exclude-from=$(exclude_list) -xzf $(tar_gz_code_archive) -C $(SRC_DIR)/timezone
+	@tar --exclude-from=$(exclude_list) -xzf $(tar_gz_data_archive) -C $(SRC_DIR)/timezone
+	$(APPLY_PATCHES)
+ifeq ($(INSTALL_NOT_ARCHIVED_LOCALES),yes)
+	@cd $(SRC_DIR)/localedata && sed -i 's,$\(LOCALEDEF),\$\(LOCALEDEF\) --no-archive,' Makefile
+endif
+	@touch $@
+
+$(build_target): $(src_done)
+	@mkdir -p $(build_dir)
+	@mkdir -p $(GLIBC_I18N_PKG)
+	@echo "slibdir=/lib$(LIBSUFFIX)" >> $(build_dir)/configparms
+	@cd $(build_dir) && CC=$(RADIX_BUILD_CC) ../$(src_dir_name)/configure \
+	  --prefix=/usr                  \
+	  --build=$(BUILD)               \
+	  --libdir=/usr/lib$(LIBSUFFIX)
+	@cd $(build_dir) && $(MAKE)
+ifneq ($(INSTALL_ALL_LOCALES),yes)
+	@cd $(build_dir) && $(MAKE) -j1 SUPPORTED-LOCALES="$(LOCALES)" localedata/install-locales $(env_sysroot)
+else
+	@cd $(build_dir) && $(MAKE) -j1 localedata/install-locales $(env_sysroot)
+endif
+	@touch $@
+
+$(install_target): $(build_target)
+ifneq ($(filter $(TOOLCHAIN),$(TOOLCHAIN_X86_64_GLIBC) \
+                             $(TOOLCHAIN_POWER8_GLIBC) \
+                             $(TOOLCHAIN_POWER9_GLIBC)),)
+	# ======= Install the same locales into /usr/lib32 (x86_32, ppc32 compat) directories =======
+	@mkdir -p $(GLIBC_I18N_PKG)/usr/lib32 && cp -rf $(GLIBC_I18N_PKG)/usr/lib/locale $(GLIBC_I18N_PKG)/usr/lib32
+endif
+	# ======= Install the same to $(TARGET_DEST_DIR) =======
+	$(call install-into-devenv, $(GLIBC_I18N_PKG))
+	@touch $@
+
+$(GLIBC_I18N_PKG_DESCRIPTION_FILE): $(GLIBC_I18N_PKG_DESCRIPTION_FILE_IN)
+	@cat $< | $(SED) -e "s/@VERSION@/$(version)/g" > $@
+
+$(pkg_certificate) : $(pkg_archive) ;
+$(pkg_signature)   : $(pkg_archive) ;
+$(pkg_description) : $(pkg_archive) ;
+
+$(pkg_archive): $(install_target) $(GLIBC_I18N_PKG_DESCRIPTION_FILE) $(GLIBC_I18N_PKG_INSTALL_SCRIPT)
+	@cp $(GLIBC_I18N_PKG_DESCRIPTION_FILE) $(GLIBC_I18N_PKG)/.DESCRIPTION
+	@cp $(GLIBC_I18N_PKG_INSTALL_SCRIPT) $(GLIBC_I18N_PKG)/.INSTALL
+	@$(BUILD_PKG_REQUIRES) $(GLIBC_I18N_PKG)/.REQUIRES
+	@echo "pkgname=$(GLIBC_I18N_PKG_NAME)"                            >  $(GLIBC_I18N_PKG)/.PKGINFO ; \
+	 echo "pkgver=$(GLIBC_I18N_PKG_VERSION)"                          >> $(GLIBC_I18N_PKG)/.PKGINFO ; \
+	 echo "arch=$(GLIBC_I18N_PKG_ARCH)"                               >> $(GLIBC_I18N_PKG)/.PKGINFO ; \
+	 echo "distroname=$(GLIBC_I18N_PKG_DISTRO_NAME)"                  >> $(GLIBC_I18N_PKG)/.PKGINFO ; \
+	 echo "distrover=$(GLIBC_I18N_PKG_DISTRO_VERSION)"                >> $(GLIBC_I18N_PKG)/.PKGINFO ; \
+	 echo "group=$(GLIBC_I18N_PKG_GROUP)"                             >> $(GLIBC_I18N_PKG)/.PKGINFO ; \
+	 echo "short_description=\"$(GLIBC_I18N_PKG_SHORT_DESCRIPTION)\"" >> $(GLIBC_I18N_PKG)/.PKGINFO ; \
+	 echo "url=$(GLIBC_I18N_PKG_URL)"                                 >> $(GLIBC_I18N_PKG)/.PKGINFO ; \
+	 echo "license=$(GLIBC_I18N_PKG_LICENSE)"                         >> $(GLIBC_I18N_PKG)/.PKGINFO
+	@$(PSEUDO) sh -c "cd $(GLIBC_I18N_PKG) && \
+	                  chown -R root:root . && \
+	                  $(MAKE_PACKAGE) -J --linkadd=yes $(GNUPG_OPTIONS) -m -d .. ."
Index: libs/glibc/2.40-i18n/PATCHES
===================================================================
--- libs/glibc/2.40-i18n/PATCHES	(nonexistent)
+++ libs/glibc/2.40-i18n/PATCHES	(revision 394)
@@ -0,0 +1,12 @@
+
+../../../sources/GNU/glibc/2.40/patches/glibc-2.40-i18n.patch                -p0
+../../../sources/GNU/glibc/2.40/patches/glibc-2.40-malloc-hooks.patch        -p0
+../../../sources/GNU/glibc/2.40/patches/glibc-2.40-en_US-no-am-pm.patch      -p0
+../../../sources/GNU/glibc/2.40/patches/glibc-2.40-reenable-DT-HASH.patch    -p0
+../../../sources/GNU/glibc/2.40/patches/glibc-2.40-locale-no-archive.patch   -p0
+../../../sources/GNU/glibc/2.40/patches/glibc-2.40-zonefile.patch            -p0
+../../../sources/GNU/glibc/2.40/patches/glibc-2.40-zoneinfo.patch
+../../../sources/iana/tz/patches/glibc-2.40-tzcode-2024b.patch               -p0
+
+../../../sources/GNU/glibc/2.40/patches/glibc-2.40-ppc64-interpreter.patch   -p0
+../../../sources/GNU/glibc/2.40/patches/glibc-2.40-x86_64-interpreter.patch  -p0
Index: libs/glibc/2.40-i18n/glibc-i18n-pkg-description.in
===================================================================
--- libs/glibc/2.40-i18n/glibc-i18n-pkg-description.in	(nonexistent)
+++ libs/glibc/2.40-i18n/glibc-i18n-pkg-description.in	(revision 394)
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.  Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in.  You must
+# make exactly 11 lines for the formatting to be correct.  It's also
+# customary to leave one space after the ':'.
+
+          |-----handy-ruler------------------------------------------------------|
+glibc-i18n: glibc-i18n @VERSION@ (locale files from glibc)
+glibc-i18n:
+glibc-i18n: These files go in /usr/lib/locale and /usr/share/i18n/ to provide
+glibc-i18n: internationalization support. You'll need this package unless you
+glibc-i18n: will be using US English only.
+glibc-i18n:
+glibc-i18n:
+glibc-i18n:
+glibc-i18n:
+glibc-i18n:
+glibc-i18n:
Index: libs/glibc/2.40-i18n/glibc-i18n-pkg-install.sh
===================================================================
--- libs/glibc/2.40-i18n/glibc-i18n-pkg-install.sh	(nonexistent)
+++ libs/glibc/2.40-i18n/glibc-i18n-pkg-install.sh	(revision 394)
@@ -0,0 +1,39 @@
+#!/bin/sh
+
+# arg 1:  the new package version
+pre_install() {
+  /bin/true
+}
+
+# arg 1:  the new package version
+post_install() {
+  /bin/true
+}
+
+# arg 1:  the new package version
+# arg 2:  the old package version
+pre_update() {
+  /bin/true
+}
+
+# arg 1:  the new package version
+# arg 2:  the old package version
+post_update() {
+  post_install
+}
+
+# arg 1:  the old package version
+pre_remove() {
+  /bin/true
+}
+
+# arg 1:  the old package version
+post_remove() {
+  /bin/true
+}
+
+
+operation=$1
+shift
+
+$operation $*

Property changes on: libs/glibc/2.40-i18n/glibc-i18n-pkg-install.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: libs/glibc/2.40-i18n/tz-exclude.list
===================================================================
--- libs/glibc/2.40-i18n/tz-exclude.list	(nonexistent)
+++ libs/glibc/2.40-i18n/tz-exclude.list	(revision 394)
@@ -0,0 +1 @@
+Makefile
Index: libs/glibc/2.40-i18n
===================================================================
--- libs/glibc/2.40-i18n	(nonexistent)
+++ libs/glibc/2.40-i18n	(revision 394)

Property changes on: libs/glibc/2.40-i18n
___________________________________________________________________
Added: svn:ignore
## -0,0 +1,74 ##
+
+# install dir
+dist
+
+# Target build dirs
+.a1x-newlib
+.a2x-newlib
+.at91sam7s-newlib
+
+.build-machine
+
+.a1x-glibc
+.a2x-glibc
+.h3-glibc
+.h5-glibc
+.i586-glibc
+.i686-glibc
+.imx6-glibc
+.jz47xx-glibc
+.makefile
+.am335x-glibc
+.omap543x-glibc
+.p5600-glibc
+.power8-glibc
+.power8le-glibc
+.power9-glibc
+.power9le-glibc
+.m1000-glibc
+.riscv64-glibc
+.rk328x-glibc
+.rk33xx-glibc
+.rk339x-glibc
+.rk358x-glibc
+.s8xx-glibc
+.s9xx-glibc
+.x86_64-glibc
+
+# Hidden files (each file)
+.makefile
+.dist
+.rootfs
+
+# src & hw requires
+.src_requires
+.src_requires_depend
+.requires
+.requires_depend
+
+# Tarballs
+*.gz
+*.bz2
+*.lz
+*.xz
+*.tgz
+*.txz
+
+# Signatures
+*.asc
+*.sig
+*.sign
+*.sha1sum
+
+# Patches
+*.patch
+
+# Descriptions
+*.dsc
+*.txt
+
+# Default linux config files
+*.defconfig
+
+# backup copies
+*~
Index: libs/glibc/2.40-ppc32/Makefile
===================================================================
--- libs/glibc/2.40-ppc32/Makefile	(nonexistent)
+++ libs/glibc/2.40-ppc32/Makefile	(revision 394)
@@ -0,0 +1,204 @@
+
+COMPONENT_TARGETS   = $(HARDWARE_S824L)
+COMPONENT_TARGETS  += $(HARDWARE_VESNIN)
+COMPONENT_TARGETS  += $(HARDWARE_TL2WK2)
+COMPONENT_TARGETS  += $(HARDWARE_TL2SV2)
+
+NEED_ABS_PATH       = true
+COMPONENT_IS_3PP    = true
+
+CREATE_PPC32_PACKAGE = true
+
+
+include ../../../build-system/constants.mk
+
+
+SOURCE_REQUIRES     = sources/GNU/glibc/2.40
+SOURCE_REQUIRES    += sources/iana/tz
+
+REQUIRES            = libs/glibc/2.40
+REQUIRES           += dev/kernel-headers
+REQUIRES           += dev/gcc-runtime/14.2.0
+
+# ======= __END_OF_REQUIRES__ =======
+
+
+version             = 2.40
+tar_xz_archive      = $(SRC_PACKAGE_PATH)/GNU/glibc/$(version)/glibc-$(version).tar.xz
+
+tz_version          = 2024b
+tar_gz_code_archive = $(SRC_PACKAGE_PATH)/iana/tz/tzcode$(tz_version).tar.gz
+tar_gz_data_archive = $(SRC_PACKAGE_PATH)/iana/tz/tzdata$(tz_version).tar.gz
+exclude_list        = $(CURDIR)/tz-exclude.list
+
+SRC_ARCHIVE         = $(tar_xz_archive)
+SRC_DIR             = $(TARGET_BUILD_DIR)/glibc-$(version)
+src_dir_name        = glibc-$(version)
+src_done            = $(TARGET_BUILD_DIR)/.source-done
+
+PATCHES             = PATCHES
+
+build_dir           = $(TARGET_BUILD_DIR)/build
+build_target        = $(TARGET_BUILD_DIR)/.built
+install_target      = $(TARGET_BUILD_DIR)/.installed
+
+
+build_glibc32_pkg   = $(TARGET_BUILD_DIR)/.glibc32_pkg_done
+
+
+OPTIMIZATION_FLAGS  = -O3
+
+
+####### Targets
+
+PKG_GROUP = libs
+
+#
+# *PKG_NAME & *PKG_VERSION shouldn't be a reference to value.
+#
+GLIBC_32_PKG_NAME                = glibc-x32
+GLIBC_32_PKG_VERSION             = 2.40
+GLIBC_32_PKG_ARCH                = $(PKGARCH)
+GLIBC_32_PKG_DISTRO_NAME         = $(DISTRO_NAME)
+GLIBC_32_PKG_DISTRO_VERSION      = $(DISTRO_VERSION)
+GLIBC_32_PKG_GROUP               = $(PKG_GROUP)
+###                               |---handy-ruler-------------------------------|
+GLIBC_32_PKG_SHORT_DESCRIPTION   = GNU C libraries
+GLIBC_32_PKG_URL                 = $(BUG_URL)
+GLIBC_32_PKG_LICENSE             = GPLv2
+GLIBC_32_PKG_DESCRIPTION_FILE    = $(TARGET_BUILD_DIR)/$(GLIBC_32_PKG_NAME)-pkg-description
+GLIBC_32_PKG_DESCRIPTION_FILE_IN = $(GLIBC_32_PKG_NAME)-pkg-description.in
+GLIBC_32_PKG_INSTALL_SCRIPT      = $(GLIBC_32_PKG_NAME)-pkg-install.sh
+
+GLIBC_32_PKG     = $(CURDIR)/$(TARGET_BUILD_DIR)/$(GLIBC_32_PKG_NAME)-package
+
+pkg_basename     = $(GLIBC_32_PKG_NAME)-$(GLIBC_32_PKG_VERSION)-$(GLIBC_32_PKG_ARCH)-$(GLIBC_32_PKG_DISTRO_NAME)-$(GLIBC_32_PKG_DISTRO_VERSION)
+
+pkg_archive      = $(TARGET_BUILD_DIR)/$(PKG_GROUP)/$(pkg_basename).$(pkg_arch_suffix)
+pkg_certificate  = $(call cert-name,$(pkg_archive))
+pkg_signature    = $(call sign-name,$(pkg_archive))
+pkg_description  = $(call desc-name,$(pkg_archive))
+products         = $(call pkg-files,$(pkg_archive))
+
+BUILD_TARGETS    = $(build_target)
+BUILD_TARGETS   += $(install_target)
+BUILD_TARGETS   += $(build_glibc32_pkg)
+
+PRODUCT_TARGETS  = $(products)
+
+ROOTFS_TARGETS   = $(pkg_archive)
+
+
+include ../../../build-system/core.mk
+
+
+env_sysroot = install_root=$(GLIBC_32_PKG)
+
+
+extra_configure_switches  += --libdir=/usr/lib$(MULTILIB_PPC32_SUFFIX)
+extra_configure_switches  += --with-headers=$(TARGET_DEST_DIR)/usr/include
+extra_configure_switches  += --with-binutils=$(TOOLCHAIN_PATH)/bin
+extra_configure_switches  += --enable-kernel=2.6.36
+extra_configure_switches  += --enable-add-ons
+extra_configure_switches  += --enable-profile
+extra_configure_switches  += --enable-bind-now
+extra_configure_switches  += --without-gd
+extra_configure_switches  += --without-cvs
+
+
+extra_configure_switches  += libc_cv_slibdir=/lib$(MULTILIB_PPC32_SUFFIX)
+extra_configure_switches  += libc_cv_rtlddir=/lib$(MULTILIB_PPC32_SUFFIX)
+
+
+
+$(src_done): $(SRC_ARCHIVE) $(PATCHES_DEP)
+	$(UNPACK_SRC_ARCHIVE)
+	@tar --exclude-from=$(exclude_list) -xzf $(tar_gz_code_archive) -C $(SRC_DIR)/timezone
+	@tar --exclude-from=$(exclude_list) -xzf $(tar_gz_data_archive) -C $(SRC_DIR)/timezone
+	$(APPLY_PATCHES)
+	@touch $@
+
+$(build_target): $(src_done)
+	@mkdir -p $(build_dir)
+	@echo "slibdir=/lib$(MULTILIB_PPC32_SUFFIX)" >> $(build_dir)/configparms
+	@echo "rtlddir=/lib$(MULTILIB_PPC32_SUFFIX)" >> $(build_dir)/configparms
+	@cd $(build_dir) && $(BUILD_ENVIRONMENT) $(env_sysroot) ../$(src_dir_name)/configure \
+	  --prefix=/usr                \
+	  --build=$(BUILD)             \
+	  --host=$(TARGET32)           \
+	  $(extra_configure_switches)
+	@cd $(build_dir) && $(BUILD_ENVIRONMENT) $(MAKE)
+	@touch $@
+
+$(install_target): $(build_target)
+	@mkdir -p $(GLIBC_32_PKG)
+	@cd $(build_dir) && $(BUILD_ENVIRONMENT) $(MAKE) -j1 install $(env_sysroot)
+	# ======= fake LOCALES installation to allow implementation of iconv and intl into GLIBC =======
+	@cd $(build_dir) && $(BUILD_ENVIRONMENT) $(MAKE) -j1 SUPPORTED-LOCALES="" \
+	                                                     localedata/install-locales $(env_sysroot)
+	# ======= create librt.so symlink if not exists: =======
+	@( cd $(GLIBC_32_PKG)/usr/lib$(MULTILIB_PPC32_SUFFIX) ; \
+	   if [ ! -L librt.so -a -e "../../lib$(MULTILIB_PPC32_SUFFIX)/librt.so.1" ] ; then \
+	     ln -sf ../../lib$(MULTILIB_PPC32_SUFFIX)/librt.so.1 librt.so ; \
+	   fi ; \
+	 )
+	# ======= create libdl.so symlink if not exists: =======
+	@( cd $(GLIBC_32_PKG)/usr/lib$(MULTILIB_PPC32_SUFFIX) ; \
+	   if [ ! -L libdl.so -a -e "../../lib$(MULTILIB_PPC32_SUFFIX)/libdl.so.2" ] ; then \
+	     ln -sf ../../lib$(MULTILIB_PPC32_SUFFIX)/libdl.so.2 libdl.so ; \
+	   fi ; \
+	 )
+	@touch $@
+
+$(build_glibc32_pkg): $(install_target)
+	# ======= Remove not needed stuff =======
+	@rm -rf $(GLIBC_32_PKG)/etc
+	@rm -rf $(GLIBC_32_PKG)/sbin
+	@rm -rf $(GLIBC_32_PKG)/usr/bin
+	@rm -rf $(GLIBC_32_PKG)/usr/sbin
+	@rm -rf $(GLIBC_32_PKG)/usr/share
+	@rm -rf $(GLIBC_32_PKG)/var
+	@( cd $(GLIBC_32_PKG)/usr/include/gnu ;  cp lib-names-32.h stubs-32.h ../.. )
+	@rm -rf $(GLIBC_32_PKG)/usr/include
+	@( mkdir -p $(GLIBC_32_PKG)/usr/include/gnu ; \
+	   mv $(GLIBC_32_PKG)/usr/lib-names-32.h $(GLIBC_32_PKG)/usr/include/gnu ; \
+	   mv $(GLIBC_32_PKG)/usr/stubs-32.h     $(GLIBC_32_PKG)/usr/include/gnu ; \
+	 )
+	# ======= Create symbolic link to libnsl.so.1 =======
+	@( cd $(GLIBC_32_PKG)/usr/lib$(MULTILIB_PPC32_SUFFIX) ; \
+	   ln -sf ../../lib$(MULTILIB_PPC32_SUFFIX)/libnsl.so.1 libnsl.so ; \
+	 )
+	# ======= Install the same to $(TARGET_DEST_DIR) =======
+	$(call install-into-devenv, $(GLIBC_32_PKG))
+	# ======= Strip binaries =======
+	@( cd $(GLIBC_32_PKG) ; \
+	   find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs $(STRIP) --strip-debug 2> /dev/null ; \
+	   find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs $(STRIP) -g 2> /dev/null ; \
+	   find . | xargs file | grep "current ar archive" | cut -f 1 -d : | xargs $(STRIP) -g 2> /dev/null ; \
+	   find . | xargs file | grep "relocatable" | cut -f 1 -d : | xargs $(STRIP) -g 2> /dev/null ; \
+	 )
+	@touch $@
+
+$(GLIBC_32_PKG_DESCRIPTION_FILE): $(GLIBC_32_PKG_DESCRIPTION_FILE_IN)
+	@cat $< | $(SED) -e "s/@VERSION@/$(version)/g" > $@
+
+$(pkg_certificate) : $(pkg_archive) ;
+$(pkg_signature)   : $(pkg_archive) ;
+$(pkg_description) : $(pkg_archive) ;
+
+$(pkg_archive): $(build_glibc32_pkg) $(GLIBC_32_PKG_DESCRIPTION_FILE) $(GLIBC_32_PKG_INSTALL_SCRIPT)
+	@cp $(GLIBC_32_PKG_DESCRIPTION_FILE) $(GLIBC_32_PKG)/.DESCRIPTION
+	@cp $(GLIBC_32_PKG_INSTALL_SCRIPT) $(GLIBC_32_PKG)/.INSTALL
+	@$(BUILD_BIN_PKG_REQUIRES) $(GLIBC_32_PKG)/.REQUIRES
+	@echo "pkgname=$(GLIBC_32_PKG_NAME)"                            >  $(GLIBC_32_PKG)/.PKGINFO ; \
+	 echo "pkgver=$(GLIBC_32_PKG_VERSION)"                          >> $(GLIBC_32_PKG)/.PKGINFO ; \
+	 echo "arch=$(GLIBC_32_PKG_ARCH)"                               >> $(GLIBC_32_PKG)/.PKGINFO ; \
+	 echo "distroname=$(GLIBC_32_PKG_DISTRO_NAME)"                  >> $(GLIBC_32_PKG)/.PKGINFO ; \
+	 echo "distrover=$(GLIBC_32_PKG_DISTRO_VERSION)"                >> $(GLIBC_32_PKG)/.PKGINFO ; \
+	 echo "group=$(GLIBC_32_PKG_GROUP)"                             >> $(GLIBC_32_PKG)/.PKGINFO ; \
+	 echo "short_description=\"$(GLIBC_32_PKG_SHORT_DESCRIPTION)\"" >> $(GLIBC_32_PKG)/.PKGINFO ; \
+	 echo "url=$(GLIBC_32_PKG_URL)"                                 >> $(GLIBC_32_PKG)/.PKGINFO ; \
+	 echo "license=$(GLIBC_32_PKG_LICENSE)"                         >> $(GLIBC_32_PKG)/.PKGINFO
+	@$(PSEUDO) sh -c "cd $(GLIBC_32_PKG) && \
+	                  chown -R root:root . && \
+	                  $(MAKE_PACKAGE) -J --linkadd=yes $(GNUPG_OPTIONS) -m -d .. ."
Index: libs/glibc/2.40-ppc32/PATCHES
===================================================================
--- libs/glibc/2.40-ppc32/PATCHES	(nonexistent)
+++ libs/glibc/2.40-ppc32/PATCHES	(revision 394)
@@ -0,0 +1,12 @@
+
+../../../sources/GNU/glibc/2.40/patches/glibc-2.40-i18n.patch                -p0
+../../../sources/GNU/glibc/2.40/patches/glibc-2.40-malloc-hooks.patch        -p0
+../../../sources/GNU/glibc/2.40/patches/glibc-2.40-en_US-no-am-pm.patch      -p0
+../../../sources/GNU/glibc/2.40/patches/glibc-2.40-reenable-DT-HASH.patch    -p0
+../../../sources/GNU/glibc/2.40/patches/glibc-2.40-locale-no-archive.patch   -p0
+../../../sources/GNU/glibc/2.40/patches/glibc-2.40-zonefile.patch            -p0
+../../../sources/GNU/glibc/2.40/patches/glibc-2.40-zoneinfo.patch
+../../../sources/iana/tz/patches/glibc-2.40-tzcode-2024b.patch               -p0
+
+../../../sources/GNU/glibc/2.40/patches/glibc-2.40-ppc64-interpreter.patch   -p0
+../../../sources/GNU/glibc/2.40/patches/glibc-2.40-x86_64-interpreter.patch  -p0
Index: libs/glibc/2.40-ppc32/glibc-x32-pkg-description.in
===================================================================
--- libs/glibc/2.40-ppc32/glibc-x32-pkg-description.in	(nonexistent)
+++ libs/glibc/2.40-ppc32/glibc-x32-pkg-description.in	(revision 394)
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.  Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in.  You must
+# make exactly 11 lines for the formatting to be correct.  It's also
+# customary to leave one space after the ':'.
+
+          |-----handy-ruler------------------------------------------------------|
+glibc-x32: glibc-x32 @VERSION@ (ppc32 GNU C libraries)
+glibc-x32:
+glibc-x32: This package contains the GNU C libraries and header files.
+glibc-x32: The GNU C library was written originally by Roland McGrath,
+glibc-x32: and is currently maintained by Ulrich Drepper. Some parts of
+glibc-x32: the library were contributed or worked on by other people.
+glibc-x32:
+glibc-x32:
+glibc-x32:
+glibc-x32:
+glibc-x32:
Index: libs/glibc/2.40-ppc32/glibc-x32-pkg-install.sh
===================================================================
--- libs/glibc/2.40-ppc32/glibc-x32-pkg-install.sh	(nonexistent)
+++ libs/glibc/2.40-ppc32/glibc-x32-pkg-install.sh	(revision 394)
@@ -0,0 +1,39 @@
+#!/bin/sh
+
+# arg 1:  the new package version
+pre_install() {
+  /bin/true
+}
+
+# arg 1:  the new package version
+post_install() {
+  /bin/true
+}
+
+# arg 1:  the new package version
+# arg 2:  the old package version
+pre_update() {
+  /bin/true
+}
+
+# arg 1:  the new package version
+# arg 2:  the old package version
+post_update() {
+  post_install
+}
+
+# arg 1:  the old package version
+pre_remove() {
+  /bin/true
+}
+
+# arg 1:  the old package version
+post_remove() {
+  /bin/true
+}
+
+
+operation=$1
+shift
+
+$operation $*

Property changes on: libs/glibc/2.40-ppc32/glibc-x32-pkg-install.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: libs/glibc/2.40-ppc32/tz-exclude.list
===================================================================
--- libs/glibc/2.40-ppc32/tz-exclude.list	(nonexistent)
+++ libs/glibc/2.40-ppc32/tz-exclude.list	(revision 394)
@@ -0,0 +1 @@
+Makefile
Index: libs/glibc/2.40-ppc32
===================================================================
--- libs/glibc/2.40-ppc32	(nonexistent)
+++ libs/glibc/2.40-ppc32	(revision 394)

Property changes on: libs/glibc/2.40-ppc32
___________________________________________________________________
Added: svn:ignore
## -0,0 +1,74 ##
+
+# install dir
+dist
+
+# Target build dirs
+.a1x-newlib
+.a2x-newlib
+.at91sam7s-newlib
+
+.build-machine
+
+.a1x-glibc
+.a2x-glibc
+.h3-glibc
+.h5-glibc
+.i586-glibc
+.i686-glibc
+.imx6-glibc
+.jz47xx-glibc
+.makefile
+.am335x-glibc
+.omap543x-glibc
+.p5600-glibc
+.power8-glibc
+.power8le-glibc
+.power9-glibc
+.power9le-glibc
+.m1000-glibc
+.riscv64-glibc
+.rk328x-glibc
+.rk33xx-glibc
+.rk339x-glibc
+.rk358x-glibc
+.s8xx-glibc
+.s9xx-glibc
+.x86_64-glibc
+
+# Hidden files (each file)
+.makefile
+.dist
+.rootfs
+
+# src & hw requires
+.src_requires
+.src_requires_depend
+.requires
+.requires_depend
+
+# Tarballs
+*.gz
+*.bz2
+*.lz
+*.xz
+*.tgz
+*.txz
+
+# Signatures
+*.asc
+*.sig
+*.sign
+*.sha1sum
+
+# Patches
+*.patch
+
+# Descriptions
+*.dsc
+*.txt
+
+# Default linux config files
+*.defconfig
+
+# backup copies
+*~
Index: libs/glibc/2.40-x86_32/Makefile
===================================================================
--- libs/glibc/2.40-x86_32/Makefile	(nonexistent)
+++ libs/glibc/2.40-x86_32/Makefile	(revision 394)
@@ -0,0 +1,201 @@
+
+COMPONENT_TARGETS   = $(HARDWARE_INTEL_PC64)
+
+NEED_ABS_PATH       = true
+COMPONENT_IS_3PP    = true
+
+CREATE_X86_32_PACKAGE = true
+
+
+include ../../../build-system/constants.mk
+
+
+SOURCE_REQUIRES     = sources/GNU/glibc/2.40
+SOURCE_REQUIRES    += sources/iana/tz
+
+REQUIRES            = libs/glibc/2.40
+REQUIRES           += dev/kernel-headers
+REQUIRES           += dev/gcc-runtime/14.2.0
+
+# ======= __END_OF_REQUIRES__ =======
+
+
+version             = 2.40
+tar_xz_archive      = $(SRC_PACKAGE_PATH)/GNU/glibc/$(version)/glibc-$(version).tar.xz
+
+tz_version          = 2024b
+tar_gz_code_archive = $(SRC_PACKAGE_PATH)/iana/tz/tzcode$(tz_version).tar.gz
+tar_gz_data_archive = $(SRC_PACKAGE_PATH)/iana/tz/tzdata$(tz_version).tar.gz
+exclude_list        = $(CURDIR)/tz-exclude.list
+
+SRC_ARCHIVE         = $(tar_xz_archive)
+SRC_DIR             = $(TARGET_BUILD_DIR)/glibc-$(version)
+src_dir_name        = glibc-$(version)
+src_done            = $(TARGET_BUILD_DIR)/.source-done
+
+PATCHES             = PATCHES
+
+build_dir           = $(TARGET_BUILD_DIR)/build
+build_target        = $(TARGET_BUILD_DIR)/.built
+install_target      = $(TARGET_BUILD_DIR)/.installed
+
+
+build_glibc32_pkg   = $(TARGET_BUILD_DIR)/.glibc32_pkg_done
+
+
+OPTIMIZATION_FLAGS  = -O3
+
+
+####### Targets
+
+PKG_GROUP = libs
+
+#
+# *PKG_NAME & *PKG_VERSION shouldn't be a reference to value.
+#
+GLIBC_32_PKG_NAME                = glibc-x32
+GLIBC_32_PKG_VERSION             = 2.40
+GLIBC_32_PKG_ARCH                = $(PKGARCH)
+GLIBC_32_PKG_DISTRO_NAME         = $(DISTRO_NAME)
+GLIBC_32_PKG_DISTRO_VERSION      = $(DISTRO_VERSION)
+GLIBC_32_PKG_GROUP               = $(PKG_GROUP)
+###                               |---handy-ruler-------------------------------|
+GLIBC_32_PKG_SHORT_DESCRIPTION   = GNU C libraries
+GLIBC_32_PKG_URL                 = $(BUG_URL)
+GLIBC_32_PKG_LICENSE             = GPLv2
+GLIBC_32_PKG_DESCRIPTION_FILE    = $(TARGET_BUILD_DIR)/$(GLIBC_32_PKG_NAME)-pkg-description
+GLIBC_32_PKG_DESCRIPTION_FILE_IN = $(GLIBC_32_PKG_NAME)-pkg-description.in
+GLIBC_32_PKG_INSTALL_SCRIPT      = $(GLIBC_32_PKG_NAME)-pkg-install.sh
+
+GLIBC_32_PKG     = $(CURDIR)/$(TARGET_BUILD_DIR)/$(GLIBC_32_PKG_NAME)-package
+
+pkg_basename     = $(GLIBC_32_PKG_NAME)-$(GLIBC_32_PKG_VERSION)-$(GLIBC_32_PKG_ARCH)-$(GLIBC_32_PKG_DISTRO_NAME)-$(GLIBC_32_PKG_DISTRO_VERSION)
+
+pkg_archive      = $(TARGET_BUILD_DIR)/$(PKG_GROUP)/$(pkg_basename).$(pkg_arch_suffix)
+pkg_certificate  = $(call cert-name,$(pkg_archive))
+pkg_signature    = $(call sign-name,$(pkg_archive))
+pkg_description  = $(call desc-name,$(pkg_archive))
+products         = $(call pkg-files,$(pkg_archive))
+
+BUILD_TARGETS    = $(build_target)
+BUILD_TARGETS   += $(install_target)
+BUILD_TARGETS   += $(build_glibc32_pkg)
+
+PRODUCT_TARGETS  = $(products)
+
+ROOTFS_TARGETS   = $(pkg_archive)
+
+
+include ../../../build-system/core.mk
+
+
+env_sysroot = install_root=$(GLIBC_32_PKG)
+
+
+extra_configure_switches  += --libdir=/usr/lib$(MULTILIB_X86_32_SUFFIX)
+extra_configure_switches  += --with-headers=$(TARGET_DEST_DIR)/usr/include
+extra_configure_switches  += --with-binutils=$(TOOLCHAIN_PATH)/bin
+extra_configure_switches  += --enable-kernel=2.6.36
+extra_configure_switches  += --enable-add-ons
+extra_configure_switches  += --enable-profile
+extra_configure_switches  += --enable-bind-now
+extra_configure_switches  += --without-gd
+extra_configure_switches  += --without-cvs
+
+
+extra_configure_switches  += libc_cv_slibdir=/lib$(MULTILIB_X86_32_SUFFIX)
+extra_configure_switches  += libc_cv_rtlddir=/lib$(MULTILIB_X86_32_SUFFIX)
+
+
+
+$(src_done): $(SRC_ARCHIVE) $(PATCHES_DEP)
+	$(UNPACK_SRC_ARCHIVE)
+	@tar --exclude-from=$(exclude_list) -xzf $(tar_gz_code_archive) -C $(SRC_DIR)/timezone
+	@tar --exclude-from=$(exclude_list) -xzf $(tar_gz_data_archive) -C $(SRC_DIR)/timezone
+	$(APPLY_PATCHES)
+	@touch $@
+
+$(build_target): $(src_done)
+	@mkdir -p $(build_dir)
+	@echo "slibdir=/lib$(MULTILIB_X86_32_SUFFIX)" >> $(build_dir)/configparms
+	@echo "rtlddir=/lib$(MULTILIB_X86_32_SUFFIX)" >> $(build_dir)/configparms
+	@cd $(build_dir) && $(BUILD_ENVIRONMENT) $(env_sysroot) ../$(src_dir_name)/configure \
+	  --prefix=/usr                \
+	  --build=$(BUILD)             \
+	  --host=$(TARGET32)           \
+	  $(extra_configure_switches)
+	@cd $(build_dir) && $(BUILD_ENVIRONMENT) $(MAKE)
+	@touch $@
+
+$(install_target): $(build_target)
+	@mkdir -p $(GLIBC_32_PKG)
+	@cd $(build_dir) && $(BUILD_ENVIRONMENT) $(MAKE) -j1 install $(env_sysroot)
+	# ======= fake LOCALES installation to allow implementation of iconv and intl into GLIBC =======
+	@cd $(build_dir) && $(BUILD_ENVIRONMENT) $(MAKE) -j1 SUPPORTED-LOCALES="" \
+	                                                     localedata/install-locales $(env_sysroot)
+	# ======= create librt.so symlink if not exists: =======
+	@( cd $(GLIBC_32_PKG)/usr/lib$(MULTILIB_X86_32_SUFFIX) ; \
+	   if [ ! -L librt.so -a -e "../../lib$(MULTILIB_X86_32_SUFFIX)/librt.so.1" ] ; then \
+	     ln -sf ../../lib$(MULTILIB_X86_32_SUFFIX)/librt.so.1 librt.so ; \
+	   fi ; \
+	 )
+	# ======= create libdl.so symlink if not exists: =======
+	@( cd $(GLIBC_32_PKG)/usr/lib$(MULTILIB_X86_32_SUFFIX) ; \
+	   if [ ! -L libdl.so -a -e "../../lib$(MULTILIB_X86_32_SUFFIX)/libdl.so.2" ] ; then \
+	     ln -sf ../../lib$(MULTILIB_X86_32_SUFFIX)/libdl.so.2 libdl.so ; \
+	   fi ; \
+	 )
+	@touch $@
+
+$(build_glibc32_pkg): $(install_target)
+	# ======= Remove not needed stuff =======
+	@rm -rf $(GLIBC_32_PKG)/etc
+	@rm -rf $(GLIBC_32_PKG)/sbin
+	@rm -rf $(GLIBC_32_PKG)/usr/bin
+	@rm -rf $(GLIBC_32_PKG)/usr/sbin
+	@rm -rf $(GLIBC_32_PKG)/usr/share
+	@rm -rf $(GLIBC_32_PKG)/var
+	@( cd $(GLIBC_32_PKG)/usr/include/gnu ;  cp lib-names-32.h stubs-32.h ../.. )
+	@rm -rf $(GLIBC_32_PKG)/usr/include
+	@( mkdir -p $(GLIBC_32_PKG)/usr/include/gnu ; \
+	   mv $(GLIBC_32_PKG)/usr/lib-names-32.h $(GLIBC_32_PKG)/usr/include/gnu ; \
+	   mv $(GLIBC_32_PKG)/usr/stubs-32.h     $(GLIBC_32_PKG)/usr/include/gnu ; \
+	 )
+	# ======= Create symbolic link to libnsl.so.1 =======
+	@( cd $(GLIBC_32_PKG)/usr/lib$(MULTILIB_X86_32_SUFFIX) ; \
+	   ln -sf ../../lib$(MULTILIB_X86_32_SUFFIX)/libnsl.so.1 libnsl.so ; \
+	 )
+	# ======= Install the same to $(TARGET_DEST_DIR) =======
+	$(call install-into-devenv, $(GLIBC_32_PKG))
+	# ======= Strip binaries =======
+	@( cd $(GLIBC_32_PKG) ; \
+	   find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs $(STRIP) --strip-debug 2> /dev/null ; \
+	   find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs $(STRIP) -g 2> /dev/null ; \
+	   find . | xargs file | grep "current ar archive" | cut -f 1 -d : | xargs $(STRIP) -g 2> /dev/null ; \
+	   find . | xargs file | grep "relocatable" | cut -f 1 -d : | xargs $(STRIP) -g 2> /dev/null ; \
+	 )
+	@touch $@
+
+$(GLIBC_32_PKG_DESCRIPTION_FILE): $(GLIBC_32_PKG_DESCRIPTION_FILE_IN)
+	@cat $< | $(SED) -e "s/@VERSION@/$(version)/g" > $@
+
+$(pkg_certificate) : $(pkg_archive) ;
+$(pkg_signature)   : $(pkg_archive) ;
+$(pkg_description) : $(pkg_archive) ;
+
+$(pkg_archive): $(build_glibc32_pkg) $(GLIBC_32_PKG_DESCRIPTION_FILE) $(GLIBC_32_PKG_INSTALL_SCRIPT)
+	@cp $(GLIBC_32_PKG_DESCRIPTION_FILE) $(GLIBC_32_PKG)/.DESCRIPTION
+	@cp $(GLIBC_32_PKG_INSTALL_SCRIPT) $(GLIBC_32_PKG)/.INSTALL
+	@$(BUILD_BIN_PKG_REQUIRES) $(GLIBC_32_PKG)/.REQUIRES
+	@echo "pkgname=$(GLIBC_32_PKG_NAME)"                            >  $(GLIBC_32_PKG)/.PKGINFO ; \
+	 echo "pkgver=$(GLIBC_32_PKG_VERSION)"                          >> $(GLIBC_32_PKG)/.PKGINFO ; \
+	 echo "arch=$(GLIBC_32_PKG_ARCH)"                               >> $(GLIBC_32_PKG)/.PKGINFO ; \
+	 echo "distroname=$(GLIBC_32_PKG_DISTRO_NAME)"                  >> $(GLIBC_32_PKG)/.PKGINFO ; \
+	 echo "distrover=$(GLIBC_32_PKG_DISTRO_VERSION)"                >> $(GLIBC_32_PKG)/.PKGINFO ; \
+	 echo "group=$(GLIBC_32_PKG_GROUP)"                             >> $(GLIBC_32_PKG)/.PKGINFO ; \
+	 echo "short_description=\"$(GLIBC_32_PKG_SHORT_DESCRIPTION)\"" >> $(GLIBC_32_PKG)/.PKGINFO ; \
+	 echo "url=$(GLIBC_32_PKG_URL)"                                 >> $(GLIBC_32_PKG)/.PKGINFO ; \
+	 echo "license=$(GLIBC_32_PKG_LICENSE)"                         >> $(GLIBC_32_PKG)/.PKGINFO
+	@$(PSEUDO) sh -c "cd $(GLIBC_32_PKG) && \
+	                  chown -R root:root . && \
+	                  $(MAKE_PACKAGE) -J --linkadd=yes $(GNUPG_OPTIONS) -m -d .. ."
Index: libs/glibc/2.40-x86_32/PATCHES
===================================================================
--- libs/glibc/2.40-x86_32/PATCHES	(nonexistent)
+++ libs/glibc/2.40-x86_32/PATCHES	(revision 394)
@@ -0,0 +1,12 @@
+
+../../../sources/GNU/glibc/2.40/patches/glibc-2.40-i18n.patch                -p0
+../../../sources/GNU/glibc/2.40/patches/glibc-2.40-malloc-hooks.patch        -p0
+../../../sources/GNU/glibc/2.40/patches/glibc-2.40-en_US-no-am-pm.patch      -p0
+../../../sources/GNU/glibc/2.40/patches/glibc-2.40-reenable-DT-HASH.patch    -p0
+../../../sources/GNU/glibc/2.40/patches/glibc-2.40-locale-no-archive.patch   -p0
+../../../sources/GNU/glibc/2.40/patches/glibc-2.40-zonefile.patch            -p0
+../../../sources/GNU/glibc/2.40/patches/glibc-2.40-zoneinfo.patch
+../../../sources/iana/tz/patches/glibc-2.40-tzcode-2024b.patch               -p0
+
+../../../sources/GNU/glibc/2.40/patches/glibc-2.40-ppc64-interpreter.patch   -p0
+../../../sources/GNU/glibc/2.40/patches/glibc-2.40-x86_64-interpreter.patch  -p0
Index: libs/glibc/2.40-x86_32/glibc-x32-pkg-description.in
===================================================================
--- libs/glibc/2.40-x86_32/glibc-x32-pkg-description.in	(nonexistent)
+++ libs/glibc/2.40-x86_32/glibc-x32-pkg-description.in	(revision 394)
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.  Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in.  You must
+# make exactly 11 lines for the formatting to be correct.  It's also
+# customary to leave one space after the ':'.
+
+          |-----handy-ruler------------------------------------------------------|
+glibc-x32: glibc-x32 @VERSION@ (GNU C libraries)
+glibc-x32:
+glibc-x32: This package contains the GNU C libraries and header files.
+glibc-x32: The GNU C library was written originally by Roland McGrath,
+glibc-x32: and is currently maintained by Ulrich Drepper. Some parts of
+glibc-x32: the library were contributed or worked on by other people.
+glibc-x32:
+glibc-x32:
+glibc-x32:
+glibc-x32:
+glibc-x32:
Index: libs/glibc/2.40-x86_32/glibc-x32-pkg-install.sh
===================================================================
--- libs/glibc/2.40-x86_32/glibc-x32-pkg-install.sh	(nonexistent)
+++ libs/glibc/2.40-x86_32/glibc-x32-pkg-install.sh	(revision 394)
@@ -0,0 +1,39 @@
+#!/bin/sh
+
+# arg 1:  the new package version
+pre_install() {
+  /bin/true
+}
+
+# arg 1:  the new package version
+post_install() {
+  /bin/true
+}
+
+# arg 1:  the new package version
+# arg 2:  the old package version
+pre_update() {
+  /bin/true
+}
+
+# arg 1:  the new package version
+# arg 2:  the old package version
+post_update() {
+  post_install
+}
+
+# arg 1:  the old package version
+pre_remove() {
+  /bin/true
+}
+
+# arg 1:  the old package version
+post_remove() {
+  /bin/true
+}
+
+
+operation=$1
+shift
+
+$operation $*

Property changes on: libs/glibc/2.40-x86_32/glibc-x32-pkg-install.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: libs/glibc/2.40-x86_32/tz-exclude.list
===================================================================
--- libs/glibc/2.40-x86_32/tz-exclude.list	(nonexistent)
+++ libs/glibc/2.40-x86_32/tz-exclude.list	(revision 394)
@@ -0,0 +1 @@
+Makefile
Index: libs/glibc/2.40-x86_32
===================================================================
--- libs/glibc/2.40-x86_32	(nonexistent)
+++ libs/glibc/2.40-x86_32	(revision 394)

Property changes on: libs/glibc/2.40-x86_32
___________________________________________________________________
Added: svn:ignore
## -0,0 +1,74 ##
+
+# install dir
+dist
+
+# Target build dirs
+.a1x-newlib
+.a2x-newlib
+.at91sam7s-newlib
+
+.build-machine
+
+.a1x-glibc
+.a2x-glibc
+.h3-glibc
+.h5-glibc
+.i586-glibc
+.i686-glibc
+.imx6-glibc
+.jz47xx-glibc
+.makefile
+.am335x-glibc
+.omap543x-glibc
+.p5600-glibc
+.power8-glibc
+.power8le-glibc
+.power9-glibc
+.power9le-glibc
+.m1000-glibc
+.riscv64-glibc
+.rk328x-glibc
+.rk33xx-glibc
+.rk339x-glibc
+.rk358x-glibc
+.s8xx-glibc
+.s9xx-glibc
+.x86_64-glibc
+
+# Hidden files (each file)
+.makefile
+.dist
+.rootfs
+
+# src & hw requires
+.src_requires
+.src_requires_depend
+.requires
+.requires_depend
+
+# Tarballs
+*.gz
+*.bz2
+*.lz
+*.xz
+*.tgz
+*.txz
+
+# Signatures
+*.asc
+*.sig
+*.sign
+*.sha1sum
+
+# Patches
+*.patch
+
+# Descriptions
+*.dsc
+*.txt
+
+# Default linux config files
+*.defconfig
+
+# backup copies
+*~
Index: libs/glibc/2.40-zoneinfo/2024b/Makefile
===================================================================
--- libs/glibc/2.40-zoneinfo/2024b/Makefile	(nonexistent)
+++ libs/glibc/2.40-zoneinfo/2024b/Makefile	(revision 394)
@@ -0,0 +1,207 @@
+
+COMPONENT_TARGETS  = $(HARDWARE_INTEL_PC32)
+COMPONENT_TARGETS += $(HARDWARE_INTEL_PC64)
+COMPONENT_TARGETS += $(HARDWARE_EBOX_3350DX2)
+COMPONENT_TARGETS += $(HARDWARE_CB1X)
+COMPONENT_TARGETS += $(HARDWARE_CB2X)
+COMPONENT_TARGETS += $(HARDWARE_CB3X)
+COMPONENT_TARGETS += $(HARDWARE_ORANGE_PP2E)
+COMPONENT_TARGETS += $(HARDWARE_NANOPI_NEO)
+COMPONENT_TARGETS += $(HARDWARE_ORANGE_PP)
+COMPONENT_TARGETS += $(HARDWARE_ORANGE_PL2)
+COMPONENT_TARGETS += $(HARDWARE_ORANGE_PI5)
+COMPONENT_TARGETS += $(HARDWARE_ORANGE_PI5B)
+COMPONENT_TARGETS += $(HARDWARE_ORANGE_PI5P)
+COMPONENT_TARGETS += $(HARDWARE_ROCK_5B)
+COMPONENT_TARGETS += $(HARDWARE_WECHIP_TX6)
+COMPONENT_TARGETS += $(HARDWARE_REPKA_PI3)
+COMPONENT_TARGETS += $(HARDWARE_FFRK3288)
+COMPONENT_TARGETS += $(HARDWARE_POIN2)
+COMPONENT_TARGETS += $(HARDWARE_RK3328_CC)
+COMPONENT_TARGETS += $(HARDWARE_KHADAS_EDGE)
+COMPONENT_TARGETS += $(HARDWARE_LEEZ_P710)
+COMPONENT_TARGETS += $(HARDWARE_M201)
+COMPONENT_TARGETS += $(HARDWARE_MXV)
+COMPONENT_TARGETS += $(HARDWARE_P201)
+COMPONENT_TARGETS += $(HARDWARE_NEXBOX_A95X)
+COMPONENT_TARGETS += $(HARDWARE_ODROID_C2)
+COMPONENT_TARGETS += $(HARDWARE_P212)
+COMPONENT_TARGETS += $(HARDWARE_KHADAS_VIM)
+COMPONENT_TARGETS += $(HARDWARE_Q201)
+COMPONENT_TARGETS += $(HARDWARE_ENYBOX_X2)
+COMPONENT_TARGETS += $(HARDWARE_KHADAS_VIM2)
+COMPONENT_TARGETS += $(HARDWARE_NIT6Q)
+COMPONENT_TARGETS += $(HARDWARE_OKMX6DL_C)
+COMPONENT_TARGETS += $(HARDWARE_OKMX6Q_C)
+COMPONENT_TARGETS += $(HARDWARE_BONE_BLACK)
+COMPONENT_TARGETS += $(HARDWARE_OMAP5UEVM)
+COMPONENT_TARGETS += $(HARDWARE_DRA7XXEVM)
+COMPONENT_TARGETS += $(HARDWARE_CI20)
+COMPONENT_TARGETS += $(HARDWARE_BAIKAL_T1)
+COMPONENT_TARGETS += $(HARDWARE_BAIKAL_M1)
+COMPONENT_TARGETS += $(HARDWARE_S824L)
+COMPONENT_TARGETS += $(HARDWARE_VESNIN)
+COMPONENT_TARGETS += $(HARDWARE_S824L_LSB)
+COMPONENT_TARGETS += $(HARDWARE_VESNIN_LSB)
+COMPONENT_TARGETS += $(HARDWARE_TL2WK2)
+COMPONENT_TARGETS += $(HARDWARE_TL2SV2)
+COMPONENT_TARGETS += $(HARDWARE_TL2WK2_LSB)
+COMPONENT_TARGETS += $(HARDWARE_TL2SV2_LSB)
+COMPONENT_TARGETS += $(HARDWARE_VISIONFIVE2)
+COMPONENT_TARGETS += $(HARDWARE_SIFIVE_U740)
+
+
+NEED_ABS_PATH      = true
+COMPONENT_IS_3PP   = true
+
+
+include ../../../../build-system/constants.mk
+
+
+SOURCE_REQUIRES   = sources/iana/tz
+
+REQUIRES          = libs/glibc/2.40-i18n
+
+# ======= __END_OF_REQUIRES__ =======
+
+
+version    = 2.40
+tz_version = 2024b
+
+tar_gz_code_archive       = $(SRC_PACKAGE_PATH)/iana/tz/tzcode$(tz_version).tar.gz
+tar_gz_data_archive       = $(SRC_PACKAGE_PATH)/iana/tz/tzdata$(tz_version).tar.gz
+
+
+SRC_DIR           = $(TARGET_BUILD_DIR)/timezone
+doc_dir_name      = zoneinfo-$(version)
+src_done          = $(TARGET_BUILD_DIR)/.source-done
+
+PATCHES           = PATCHES
+
+install_target    = $(TARGET_BUILD_DIR)/.install_done
+
+scripts_dir       = $(CURDIR)/scripts
+part_01           = $(CURDIR)/$(TARGET_BUILD_DIR)/part-01
+
+
+OPTIMIZATION_FLAGS  = -O3
+
+
+####### Targets
+
+PKG_GROUP = libs
+
+#
+# *PKG_NAME & *PKG_VERSION shouldn't be a reference to value.
+#
+GLIBC_TZ_PKG_NAME                = glibc-zoneinfo
+GLIBC_TZ_PKG_VERSION             = 2.40
+GLIBC_TZ_PKG_ARCH                = $(PKGARCH)
+GLIBC_TZ_PKG_DISTRO_NAME         = $(DISTRO_NAME)
+GLIBC_TZ_PKG_DISTRO_VERSION      = $(DISTRO_VERSION)
+GLIBC_TZ_PKG_GROUP               = $(PKG_GROUP)
+###                               |---handy-ruler-------------------------------|
+GLIBC_TZ_PKG_SHORT_DESCRIPTION   = timezone database
+GLIBC_TZ_PKG_URL                 = $(BUG_URL)
+GLIBC_TZ_PKG_LICENSE             = public
+GLIBC_TZ_PKG_DESCRIPTION_FILE    = $(TARGET_BUILD_DIR)/$(GLIBC_TZ_PKG_NAME)-pkg-description
+GLIBC_TZ_PKG_DESCRIPTION_FILE_IN = $(GLIBC_TZ_PKG_NAME)-pkg-description.in
+GLIBC_TZ_PKG_INSTALL_SCRIPT      = $(GLIBC_TZ_PKG_NAME)-pkg-install.sh
+
+GLIBC_TZ_PKG     = $(CURDIR)/$(TARGET_BUILD_DIR)/$(GLIBC_TZ_PKG_NAME)-package
+
+pkg_basename     = $(GLIBC_TZ_PKG_NAME)-$(GLIBC_TZ_PKG_VERSION)-$(GLIBC_TZ_PKG_ARCH)-$(GLIBC_TZ_PKG_DISTRO_NAME)-$(GLIBC_TZ_PKG_DISTRO_VERSION)
+
+pkg_archive      = $(TARGET_BUILD_DIR)/$(PKG_GROUP)/$(pkg_basename).$(pkg_arch_suffix)
+pkg_certificate  = $(call cert-name,$(pkg_archive))
+pkg_signature    = $(call sign-name,$(pkg_archive))
+pkg_description  = $(call desc-name,$(pkg_archive))
+products         = $(call pkg-files,$(pkg_archive))
+
+BUILD_TARGETS    = $(install_target)
+
+PRODUCT_TARGETS  = $(products)
+
+ROOTFS_TARGETS   = $(pkg_archive)
+
+
+include ../../../../build-system/core.mk
+
+
+ifeq ($(TOOLCHAIN),$(TOOLCHAIN_X86_64_GLIBC))
+OPTIMIZATION_FLAGS += -fPIC
+endif
+
+
+$(src_done): $(tar_gz_code_archive) $(tar_gz_data_archive)
+	@mkdir -p $(SRC_DIR)
+	@tar xzf $(tar_gz_code_archive) -C $(SRC_DIR)
+	@tar xzf $(tar_gz_data_archive) -C $(SRC_DIR)
+	$(APPLY_PATCHES)
+	@touch $@
+
+$(install_target): $(src_done)
+	@mkdir -p $(GLIBC_TZ_PKG)
+	@cd $(SRC_DIR) && $(MAKE)
+	@cd $(SRC_DIR) && $(MAKE) -j1 install DESTDIR=.
+	@mkdir -p $(GLIBC_TZ_PKG)/usr/lib$(LIBSUFFIX)
+	@cp -a $(SRC_DIR)/usr/lib/libtz.a $(GLIBC_TZ_PKG)/usr/lib$(LIBSUFFIX)
+	@mkdir -p $(GLIBC_TZ_PKG)/usr/share/zoneinfo{,-leaps}
+	@cp -a $(SRC_DIR)/usr/share/zoneinfo/* $(GLIBC_TZ_PKG)/usr/share/zoneinfo
+	@cp -a $(SRC_DIR)/usr/share/zoneinfo-leaps/* $(GLIBC_TZ_PKG)/usr/share/zoneinfo-leaps
+	@( cd $(GLIBC_TZ_PKG)/usr/share ;  ln -sf zoneinfo zoneinfo-posix )
+	# ======= Remove PACKAGE/usr/share/zoneinfo/localtime --                =======
+	# ======= the install script will create it as a link to /etc/localtime =======
+	@rm -f $(GLIBC_TZ_PKG)/usr/share/zoneinfo/localtime
+	# ======= timeconfig script =======
+	@$(scripts_dir)/list-zones $(GLIBC_TZ_PKG)/usr/share/zoneinfo $(part_01)
+	@mkdir -p $(GLIBC_TZ_PKG)/usr/sbin
+	@cat $(scripts_dir)/part-00 $(part_01) $(scripts_dir)/part-02 > $(GLIBC_TZ_PKG)/usr/sbin/timeconfig
+	@chmod 0755 $(GLIBC_TZ_PKG)/usr/sbin/timeconfig
+	# ======= Install Documentation =======
+	@cp -rf $(SRC_DIR)/usr/share/man $(GLIBC_TZ_PKG)/usr/share
+	@( cd $(GLIBC_TZ_PKG)/usr/share/man/man3 ; \
+	   for file in *.3 ; do \
+	     gzip -9 --force $$file; \
+	   done )
+	@( cd $(GLIBC_TZ_PKG)/usr/share/man/man5 ; \
+	   for file in *.5 ; do \
+	     gzip -9 --force $$file; \
+	   done )
+	@( cd $(GLIBC_TZ_PKG)/usr/share/man/man8 ; \
+	   for file in *.8 ; do \
+	     gzip -9 --force $$file; \
+	   done )
+	@mkdir -p $(GLIBC_TZ_PKG)/usr/share/doc/$(doc_dir_name)
+	@( cd $(SRC_DIR) ; \
+	   cp -a CONTRIBUTING LICENSE NEWS README \
+	         $(GLIBC_TZ_PKG)/usr/share/doc/$(doc_dir_name) ; \
+	 )
+	# ======= Install the same to $(TARGET_DEST_DIR) =======
+	$(call install-into-devenv, $(GLIBC_TZ_PKG))
+	@touch $@
+
+$(GLIBC_TZ_PKG_DESCRIPTION_FILE): $(GLIBC_TZ_PKG_DESCRIPTION_FILE_IN)
+	@cat $< | $(SED) -e "s/@VERSION@/$(version)/g" \
+	        | $(SED) -e "s/@TZVERSION@/$(tz_version)/g" > $@
+
+$(pkg_certificate) : $(pkg_archive) ;
+$(pkg_signature)   : $(pkg_archive) ;
+$(pkg_description) : $(pkg_archive) ;
+
+$(pkg_archive): $(install_target) $(GLIBC_TZ_PKG_DESCRIPTION_FILE) $(GLIBC_TZ_PKG_INSTALL_SCRIPT)
+	@cp $(GLIBC_TZ_PKG_DESCRIPTION_FILE) $(GLIBC_TZ_PKG)/.DESCRIPTION
+	@cp $(GLIBC_TZ_PKG_INSTALL_SCRIPT) $(GLIBC_TZ_PKG)/.INSTALL
+	@$(BUILD_PKG_REQUIRES) $(GLIBC_TZ_PKG)/.REQUIRES
+	@echo "pkgname=$(GLIBC_TZ_PKG_NAME)"                            >  $(GLIBC_TZ_PKG)/.PKGINFO ; \
+	 echo "pkgver=$(GLIBC_TZ_PKG_VERSION)"                          >> $(GLIBC_TZ_PKG)/.PKGINFO ; \
+	 echo "arch=$(GLIBC_TZ_PKG_ARCH)"                               >> $(GLIBC_TZ_PKG)/.PKGINFO ; \
+	 echo "distroname=$(GLIBC_TZ_PKG_DISTRO_NAME)"                  >> $(GLIBC_TZ_PKG)/.PKGINFO ; \
+	 echo "distrover=$(GLIBC_TZ_PKG_DISTRO_VERSION)"                >> $(GLIBC_TZ_PKG)/.PKGINFO ; \
+	 echo "group=$(GLIBC_TZ_PKG_GROUP)"                             >> $(GLIBC_TZ_PKG)/.PKGINFO ; \
+	 echo "short_description=\"$(GLIBC_TZ_PKG_SHORT_DESCRIPTION)\"" >> $(GLIBC_TZ_PKG)/.PKGINFO ; \
+	 echo "url=$(GLIBC_TZ_PKG_URL)"                                 >> $(GLIBC_TZ_PKG)/.PKGINFO ; \
+	 echo "license=$(GLIBC_TZ_PKG_LICENSE)"                         >> $(GLIBC_TZ_PKG)/.PKGINFO
+	@$(PSEUDO) sh -c "cd $(GLIBC_TZ_PKG) && \
+	                  chown -R root:root . && \
+	                  $(MAKE_PACKAGE) -J --linkadd=yes $(GNUPG_OPTIONS) -m -d .. ."
Index: libs/glibc/2.40-zoneinfo/2024b/PATCHES
===================================================================
--- libs/glibc/2.40-zoneinfo/2024b/PATCHES	(nonexistent)
+++ libs/glibc/2.40-zoneinfo/2024b/PATCHES	(revision 394)
@@ -0,0 +1,2 @@
+
+../../../../sources/iana/tz/patches/tzcode-2024b-version.patch -p0
Index: libs/glibc/2.40-zoneinfo/2024b/glibc-zoneinfo-pkg-description.in
===================================================================
--- libs/glibc/2.40-zoneinfo/2024b/glibc-zoneinfo-pkg-description.in	(nonexistent)
+++ libs/glibc/2.40-zoneinfo/2024b/glibc-zoneinfo-pkg-description.in	(revision 394)
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.  Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in.  You must
+# make exactly 11 lines for the formatting to be correct.  It's also
+# customary to leave one space after the ':'.
+
+              |-----handy-ruler------------------------------------------------------|
+glibc-zoneinfo: glibc-zoneinfo @VERSION@ (timezone database @TZVERSION@)
+glibc-zoneinfo:
+glibc-zoneinfo: This package allows you to configure your time zone.
+glibc-zoneinfo:
+glibc-zoneinfo: This timezone database comes from the tzdata and tzcode packages by
+glibc-zoneinfo: Arthur David Olson et.al. The latest version and more information
+glibc-zoneinfo: may be found at:  http://www.iana.org/time-zones
+glibc-zoneinfo:
+glibc-zoneinfo: Use the timeconfig utility to set your local time zone.
+glibc-zoneinfo:
+glibc-zoneinfo:
Index: libs/glibc/2.40-zoneinfo/2024b/glibc-zoneinfo-pkg-install.sh
===================================================================
--- libs/glibc/2.40-zoneinfo/2024b/glibc-zoneinfo-pkg-install.sh	(nonexistent)
+++ libs/glibc/2.40-zoneinfo/2024b/glibc-zoneinfo-pkg-install.sh	(revision 394)
@@ -0,0 +1,39 @@
+#!/bin/sh
+
+# arg 1:  the new package version
+pre_install() {
+  /bin/true
+}
+
+# arg 1:  the new package version
+post_install() {
+  /bin/true
+}
+
+# arg 1:  the new package version
+# arg 2:  the old package version
+pre_update() {
+  /bin/true
+}
+
+# arg 1:  the new package version
+# arg 2:  the old package version
+post_update() {
+  post_install
+}
+
+# arg 1:  the old package version
+pre_remove() {
+  /bin/true
+}
+
+# arg 1:  the old package version
+post_remove() {
+  /bin/true
+}
+
+
+operation=$1
+shift
+
+$operation $*

Property changes on: libs/glibc/2.40-zoneinfo/2024b/glibc-zoneinfo-pkg-install.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: libs/glibc/2.40-zoneinfo/2024b/scripts/list-zones
===================================================================
--- libs/glibc/2.40-zoneinfo/2024b/scripts/list-zones	(nonexistent)
+++ libs/glibc/2.40-zoneinfo/2024b/scripts/list-zones	(revision 394)
@@ -0,0 +1,29 @@
+#!/bin/sh
+
+path=$1
+p01=$2
+
+if [ -z "$path" -a -z "$p01" ] ; then
+  echo ""
+  echo "Usage: `basename $0` PATH output-file"
+  echo ""
+  exit 1
+fi
+
+ls 1> /dev/null 2> $p01
+
+( cd $path
+  find . -type f | xargs file | grep "timezone data" | cut -f 1 -d : | sort | while read zone ; do
+    if [ "`dirname $zone`" != "." ] ; then
+      line="\"`echo "$zone" | sed "s,\./,,"`\" \" \" \\\\"
+      echo "$line" >> $p01
+    fi
+  done
+
+  find . -type f | xargs file | grep "timezone data" | cut -f 1 -d : | sort | while read zone ; do
+    if [ "`dirname $zone`" == "." ] ; then
+      line="\"`echo "$zone" | sed "s,\./,,"`\" \" \" \\\\"
+      echo "$line" >> $p01
+    fi
+  done
+)

Property changes on: libs/glibc/2.40-zoneinfo/2024b/scripts/list-zones
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: libs/glibc/2.40-zoneinfo/2024b/scripts/part-00
===================================================================
--- libs/glibc/2.40-zoneinfo/2024b/scripts/part-00	(nonexistent)
+++ libs/glibc/2.40-zoneinfo/2024b/scripts/part-00	(revision 394)
@@ -0,0 +1,183 @@
+#!/bin/sh
+
+# program name:
+program=`basename $0`
+
+# 16 = root path has not specified arter --root option
+# 91 = root path not correct
+# 92 = Cannot create '/tmp/...' directory
+EXITSTATUS=0
+
+CWD=`pwd`
+
+umask 022
+if [ ! -z "$TMPDIR" ] ; then mkdir -p $TMPDIR ; fi
+TMP=$(mkdir -p /tmp/radix && mktemp -d -p /tmp/radix $program.XXXXXXXX) || { echo "Cannot create '/tmp/...' directory" ; exit 92; }
+trap "rm -rf $TMP" EXIT
+
+
+TARGET_ROOT_PATH=
+
+usage() {
+ cat << EOF
+
+Usage: $program [options]
+
+$program - Radix Linux timezone configuration utility.
+
+options:
+   --root <DIR>   - Configure timezone someplace else, like <DIR>.
+
+EOF
+}
+
+
+check_abs_paths()
+{
+  if [ ! -z "$TARGET_ROOT_PATH" ] ; then
+    if [[ ${TARGET_ROOT_PATH:0:1} != "/" ]] ; then
+      TARGET_ROOT_PATH=$CWD/$TARGET_ROOT_PATH
+    fi
+    TARGET_ROOT_PATH="$(echo "$TARGET_ROOT_PATH" | sed -e "s/\/$//")/"
+  fi
+}
+
+#
+# Parse options:
+#
+while [ 0 ]; do
+  if [ "$1" = "-h" -o "$1" = "--help" ]; then
+    usage
+    exit 0
+  elif [ "$1" = "--root" ]; then
+    if [ "$2" = "" ]; then
+      usage
+      echo "ERROR: Target ROOT directory has not specified. Check --root option."
+      EXITSTATUS=17
+      exit $EXITSTATUS
+    fi
+    TARGET_ROOT_PATH="$2"
+    shift 2
+  else
+    break
+  fi
+done
+
+check_abs_paths
+
+if [ -z "$TARGET_ROOT_PATH" ] ; then
+  TARGET_ROOT_PATH="/"
+fi
+
+if [ ! -d $TARGET_ROOT_PATH ] ; then
+  echo "ERROR: Target ROOT path specified but not correct."
+  EXITSTATUS=91
+  exit $EXITSTATUS
+fi
+
+: ${DIALOG=dialog}
+: ${DIALOGRC=${TARGET_ROOT_PATH}etc/dialogrc}
+
+#
+# The hardware clock configuration files:
+#
+HWCLOCK_CONF=${TARGET_ROOT_PATH}etc/hardwareclock
+ADJTIME_CONF=${TARGET_ROOT_PATH}etc/adjtime
+
+#
+# setzone( $TIMEZONE )
+#
+# This function accepts a time zone as the only parameter
+# and sets it as the default system time zone.
+#
+setzone()
+{
+  TZ=$1
+
+  cd ${TARGET_ROOT_PATH}etc
+  if [ -r ${TARGET_ROOT_PATH}usr/share/zoneinfo/$TZ -o \
+       -L ${TARGET_ROOT_PATH}usr/share/zoneinfo/$TZ    ] ; then
+      ln -sf ../usr/share/zoneinfo/$TZ localtime-copied-from
+      rm -f localtime-copied-from
+      rm -f localtime
+      ln -sf ../usr/share/zoneinfo/$TZ localtime
+      cd ..
+   fi
+}
+
+#
+# writeconf( $CLOCK_SET_TO )
+#
+# Writes out $HWCLOCK_CONF that tells rc.S how the hardware clock value is stored.
+#
+writeconf()
+{
+   echo "#"                                               > $HWCLOCK_CONF
+   echo "# /etc/hardwareclock"                           >> $HWCLOCK_CONF
+   echo "#"                                              >> $HWCLOCK_CONF
+   echo "# Tells how the hardware clock time is stored." >> $HWCLOCK_CONF
+   echo "# You should run timeconfig to edit this file." >> $HWCLOCK_CONF
+   echo ""                                               >> $HWCLOCK_CONF
+   echo $1 >> $HWCLOCK_CONF
+}
+
+write_adjtime()
+{
+  if [ ! -f "$ADJTIME_CONF" ] ; then
+    echo "0.0 0 0.0"  > $ADJTIME_CONF
+    echo "0"         >> $ADJTIME_CONF
+    echo $1 >> $ADJTIME_CONF
+  else
+    if [ "$1" = "UTC" ] ; then
+      sed -i 's,^LOCAL,UTC,' $ADJTIME_CONF
+    else
+      sed -i 's,^UTC,LOCAL,' $ADJTIME_CONF
+    fi
+  fi
+}
+
+#
+# Ask the user if the hardware clock is set for UTC/GMT
+#
+cat > $TMP/menu-utc$$ << EOF
+--colors \\
+--backtitle "\Z7Radix\Zn \Z1cross\Zn\Z7 Linux\Zn" \\
+--title " \Z4\ZbSet Hardware Clock\ZB\Zn " \\
+--menu "\\n\\
+ Is the hardware clock set to Coordinated Universal Time (UTC/GMT)?\\n\\
+ If it is, select YES here.\\n\\n\\
+ If the hardware clock is set to the current local time (this is how\\n\\
+ most PCs are set up), then say NO here.\\n\\n\\
+ If you are not sure what this is, you should answer NO here.\\n\\
+" 16 74 2 \\
+"NO" "Hardware clock is set to local time" \\
+"YES" "Hardware clock is set to UTC" \\
+EOF
+
+$DIALOG --file $TMP/menu-utc$$ 2> $TMP/utc$$
+if [ $? = 1 -o $? = 255 ]; then
+  rm -f $TMP/utc$$
+  rm -f $TMP/menu-utc$$
+  exit
+fi
+if [ "`cat $TMP/utc$$`" = "YES" ]; then
+  # yes, the hardware clock is UTC
+  writeconf "UTC"
+  write_adjtime "UTC"
+else # must be NO
+  writeconf "localtime"
+  write_adjtime "LOCAL"
+fi
+rm -f $TMP/utc$$
+rm -f $TMP/menu-utc$$
+
+#
+# Ask the user which timezone is preffered
+#
+cat > $TMP/menu-tz$$ << EOF
+--colors \\
+--backtitle "\Z7Radix\Zn \Z1cross\Zn\Z7 Linux\Zn" \\
+--title " \Z4\ZbTimezone Configuration\ZB\Zn " \\
+--menu "\\n\\
+ Please select one of the following timezones for your machine:\\n\\
+" 22 74 14 \\
Index: libs/glibc/2.40-zoneinfo/2024b/scripts/part-02
===================================================================
--- libs/glibc/2.40-zoneinfo/2024b/scripts/part-02	(nonexistent)
+++ libs/glibc/2.40-zoneinfo/2024b/scripts/part-02	(revision 394)
@@ -0,0 +1,16 @@
+EOF
+
+$DIALOG --file $TMP/menu-tz$$ 2> $TMP/tz$$
+ret=$?
+if [ $ret -eq 1 -o $ret -eq 255 ]; then
+  rm -f $TMP/tz$$
+  rm -f $TMP/menu-tz$$
+  exit
+fi
+
+TIMEZONE="`cat $TMP/tz$$`"
+rm -f $TMP/tz$$
+rm -f $TMP/menu-tz$$
+
+setzone $TIMEZONE
+exit
Index: libs/glibc/2.40-zoneinfo/2024b/scripts
===================================================================
--- libs/glibc/2.40-zoneinfo/2024b/scripts	(nonexistent)
+++ libs/glibc/2.40-zoneinfo/2024b/scripts	(revision 394)

Property changes on: libs/glibc/2.40-zoneinfo/2024b/scripts
___________________________________________________________________
Added: svn:ignore
## -0,0 +1,73 ##
+
+# install dir
+dist
+
+# Target build dirs
+.a1x-newlib
+.a2x-newlib
+.at91sam7s-newlib
+
+.build-machine
+
+.a1x-glibc
+.a2x-glibc
+.h3-glibc
+.h5-glibc
+.i586-glibc
+.i686-glibc
+.imx6-glibc
+.jz47xx-glibc
+.makefile
+.am335x-glibc
+.omap543x-glibc
+.p5600-glibc
+.power8-glibc
+.power8le-glibc
+.power9-glibc
+.power9le-glibc
+.m1000-glibc
+.riscv64-glibc
+.rk328x-glibc
+.rk33xx-glibc
+.rk339x-glibc
+.s8xx-glibc
+.s9xx-glibc
+.x86_64-glibc
+
+# Hidden files (each file)
+.makefile
+.dist
+.rootfs
+
+# src & hw requires
+.src_requires
+.src_requires_depend
+.requires
+.requires_depend
+
+# Tarballs
+*.gz
+*.bz2
+*.lz
+*.xz
+*.tgz
+*.txz
+
+# Signatures
+*.asc
+*.sig
+*.sign
+*.sha1sum
+
+# Patches
+*.patch
+
+# Descriptions
+*.dsc
+*.txt
+
+# Default linux config files
+*.defconfig
+
+# backup copies
+*~
Index: libs/glibc/2.40-zoneinfo/2024b
===================================================================
--- libs/glibc/2.40-zoneinfo/2024b	(nonexistent)
+++ libs/glibc/2.40-zoneinfo/2024b	(revision 394)

Property changes on: libs/glibc/2.40-zoneinfo/2024b
___________________________________________________________________
Added: svn:ignore
## -0,0 +1,74 ##
+
+# install dir
+dist
+
+# Target build dirs
+.a1x-newlib
+.a2x-newlib
+.at91sam7s-newlib
+
+.build-machine
+
+.a1x-glibc
+.a2x-glibc
+.h3-glibc
+.h5-glibc
+.i586-glibc
+.i686-glibc
+.imx6-glibc
+.jz47xx-glibc
+.makefile
+.am335x-glibc
+.omap543x-glibc
+.p5600-glibc
+.power8-glibc
+.power8le-glibc
+.power9-glibc
+.power9le-glibc
+.m1000-glibc
+.riscv64-glibc
+.rk328x-glibc
+.rk33xx-glibc
+.rk339x-glibc
+.rk358x-glibc
+.s8xx-glibc
+.s9xx-glibc
+.x86_64-glibc
+
+# Hidden files (each file)
+.makefile
+.dist
+.rootfs
+
+# src & hw requires
+.src_requires
+.src_requires_depend
+.requires
+.requires_depend
+
+# Tarballs
+*.gz
+*.bz2
+*.lz
+*.xz
+*.tgz
+*.txz
+
+# Signatures
+*.asc
+*.sig
+*.sign
+*.sha1sum
+
+# Patches
+*.patch
+
+# Descriptions
+*.dsc
+*.txt
+
+# Default linux config files
+*.defconfig
+
+# backup copies
+*~
Index: libs/glibc/2.40-zoneinfo
===================================================================
--- libs/glibc/2.40-zoneinfo	(nonexistent)
+++ libs/glibc/2.40-zoneinfo	(revision 394)

Property changes on: libs/glibc/2.40-zoneinfo
___________________________________________________________________
Added: svn:ignore
## -0,0 +1,73 ##
+
+# install dir
+dist
+
+# Target build dirs
+.a1x-newlib
+.a2x-newlib
+.at91sam7s-newlib
+
+.build-machine
+
+.a1x-glibc
+.a2x-glibc
+.h3-glibc
+.h5-glibc
+.i586-glibc
+.i686-glibc
+.imx6-glibc
+.jz47xx-glibc
+.makefile
+.am335x-glibc
+.omap543x-glibc
+.p5600-glibc
+.power8-glibc
+.power8le-glibc
+.power9-glibc
+.power9le-glibc
+.m1000-glibc
+.riscv64-glibc
+.rk328x-glibc
+.rk33xx-glibc
+.rk339x-glibc
+.s8xx-glibc
+.s9xx-glibc
+.x86_64-glibc
+
+# Hidden files (each file)
+.makefile
+.dist
+.rootfs
+
+# src & hw requires
+.src_requires
+.src_requires_depend
+.requires
+.requires_depend
+
+# Tarballs
+*.gz
+*.bz2
+*.lz
+*.xz
+*.tgz
+*.txz
+
+# Signatures
+*.asc
+*.sig
+*.sign
+*.sha1sum
+
+# Patches
+*.patch
+
+# Descriptions
+*.dsc
+*.txt
+
+# Default linux config files
+*.defconfig
+
+# backup copies
+*~
Index: libs/gmp/6.2.1/Makefile
===================================================================
--- libs/gmp/6.2.1/Makefile	(revision 393)
+++ libs/gmp/6.2.1/Makefile	(revision 394)
@@ -60,7 +60,7 @@
 
 SOURCE_REQUIRES    = sources/GNU/gmp
 
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/gmp/6.2.1-ppc32/Makefile
===================================================================
--- libs/gmp/6.2.1-ppc32/Makefile	(revision 393)
+++ libs/gmp/6.2.1-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/GNU/gmp
 
 REQUIRES           = libs/gmp/6.2.1
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/gmp/6.2.1-x86_32/Makefile
===================================================================
--- libs/gmp/6.2.1-x86_32/Makefile	(revision 393)
+++ libs/gmp/6.2.1-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/GNU/gmp
 
 REQUIRES           = libs/gmp/6.2.1
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/hyphen/2.8.8/Makefile
===================================================================
--- libs/hyphen/2.8.8/Makefile	(revision 393)
+++ libs/hyphen/2.8.8/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/l/hyphen
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: libs/hyphen/2.8.8-ppc32/Makefile
===================================================================
--- libs/hyphen/2.8.8-ppc32/Makefile	(revision 393)
+++ libs/hyphen/2.8.8-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/l/hyphen
 
 REQUIRES           = libs/hyphen/2.8.8
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/hyphen/2.8.8-x86_32/Makefile
===================================================================
--- libs/hyphen/2.8.8-x86_32/Makefile	(revision 393)
+++ libs/hyphen/2.8.8-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/l/hyphen
 
 REQUIRES           = libs/hyphen/2.8.8
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/icu4c/73.1/Makefile
===================================================================
--- libs/icu4c/73.1/Makefile	(revision 393)
+++ libs/icu4c/73.1/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/l/icu4c
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: libs/icu4c/73.1-ppc32/Makefile
===================================================================
--- libs/icu4c/73.1-ppc32/Makefile	(revision 393)
+++ libs/icu4c/73.1-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/l/icu4c
 
 REQUIRES           = libs/icu4c/73.1
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/icu4c/73.1-x86_32/Makefile
===================================================================
--- libs/icu4c/73.1-x86_32/Makefile	(revision 393)
+++ libs/icu4c/73.1-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/l/icu4c
 
 REQUIRES           = libs/icu4c/73.1
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/ijs/0.35/Makefile
===================================================================
--- libs/ijs/0.35/Makefile	(revision 393)
+++ libs/ijs/0.35/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/l/ijs
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: libs/ijs/0.35-ppc32/Makefile
===================================================================
--- libs/ijs/0.35-ppc32/Makefile	(revision 393)
+++ libs/ijs/0.35-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/l/ijs
 
 REQUIRES           = libs/ijs/0.35
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/ijs/0.35-x86_32/Makefile
===================================================================
--- libs/ijs/0.35-x86_32/Makefile	(revision 393)
+++ libs/ijs/0.35-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/l/ijs
 
 REQUIRES           = libs/ijs/0.35
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/iniparser/4.1/Makefile
===================================================================
--- libs/iniparser/4.1/Makefile	(revision 393)
+++ libs/iniparser/4.1/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES     = sources/packages/l/iniparser
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES            = dev/gcc/12.2.0
+REQUIRES            = dev/gcc/14.2.0
 else
-REQUIRES            = libs/glibc/2.37
+REQUIRES            = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: libs/jansson/2.13.1/Makefile
===================================================================
--- libs/jansson/2.13.1/Makefile	(revision 393)
+++ libs/jansson/2.13.1/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/l/jansson
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: libs/jemalloc/5.2.1/Makefile
===================================================================
--- libs/jemalloc/5.2.1/Makefile	(revision 393)
+++ libs/jemalloc/5.2.1/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/l/jemalloc
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 REQUIRES          += dev/perl/5.36.0
 
Index: libs/json-c/0.15/Makefile
===================================================================
--- libs/json-c/0.15/Makefile	(revision 393)
+++ libs/json-c/0.15/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/l/json-c
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: libs/json-c/0.15-ppc32/Makefile
===================================================================
--- libs/json-c/0.15-ppc32/Makefile	(revision 393)
+++ libs/json-c/0.15-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/l/json-c
 
 REQUIRES           = libs/json-c/0.15
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/json-c/0.15-x86_32/Makefile
===================================================================
--- libs/json-c/0.15-x86_32/Makefile	(revision 393)
+++ libs/json-c/0.15-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/l/json-c
 
 REQUIRES           = libs/json-c/0.15
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/judy/1.0.5/Makefile
===================================================================
--- libs/judy/1.0.5/Makefile	(revision 393)
+++ libs/judy/1.0.5/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/l/judy
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: libs/keyutils/1.6.3/Makefile
===================================================================
--- libs/keyutils/1.6.3/Makefile	(revision 393)
+++ libs/keyutils/1.6.3/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/l/keyutils
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: libs/keyutils/1.6.3-ppc32/Makefile
===================================================================
--- libs/keyutils/1.6.3-ppc32/Makefile	(revision 393)
+++ libs/keyutils/1.6.3-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/l/keyutils
 
 REQUIRES           = libs/keyutils/1.6.3
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/keyutils/1.6.3-x86_32/Makefile
===================================================================
--- libs/keyutils/1.6.3-x86_32/Makefile	(revision 393)
+++ libs/keyutils/1.6.3-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/l/keyutils
 
 REQUIRES           = libs/keyutils/1.6.3
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/libaio/0.3.112/Makefile
===================================================================
--- libs/libaio/0.3.112/Makefile	(revision 393)
+++ libs/libaio/0.3.112/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/l/libaio
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: libs/libaio/0.3.112-ppc32/Makefile
===================================================================
--- libs/libaio/0.3.112-ppc32/Makefile	(revision 393)
+++ libs/libaio/0.3.112-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/l/libaio
 
 REQUIRES           = libs/libaio/0.3.112
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/libaio/0.3.112-x86_32/Makefile
===================================================================
--- libs/libaio/0.3.112-x86_32/Makefile	(revision 393)
+++ libs/libaio/0.3.112-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/l/libaio
 
 REQUIRES           = libs/libaio/0.3.112
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/libconfuse/3.3/Makefile
===================================================================
--- libs/libconfuse/3.3/Makefile	(revision 393)
+++ libs/libconfuse/3.3/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/l/libconfuse
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: libs/libdaemon/0.14/Makefile
===================================================================
--- libs/libdaemon/0.14/Makefile	(revision 393)
+++ libs/libdaemon/0.14/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/l/libdaemon
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: libs/libdatrie/0.2.13/Makefile
===================================================================
--- libs/libdatrie/0.2.13/Makefile	(revision 393)
+++ libs/libdatrie/0.2.13/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/l/libdatrie
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: libs/libdatrie/0.2.13-ppc32/Makefile
===================================================================
--- libs/libdatrie/0.2.13-ppc32/Makefile	(revision 393)
+++ libs/libdatrie/0.2.13-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/l/libdatrie
 
 REQUIRES           = libs/libdatrie/0.2.13
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/libdatrie/0.2.13-x86_32/Makefile
===================================================================
--- libs/libdatrie/0.2.13-x86_32/Makefile	(revision 393)
+++ libs/libdatrie/0.2.13-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/l/libdatrie
 
 REQUIRES           = libs/libdatrie/0.2.13
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/libexif/0.6.24/Makefile
===================================================================
--- libs/libexif/0.6.24/Makefile	(revision 393)
+++ libs/libexif/0.6.24/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/m/libexif
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: libs/libexif/0.6.24-ppc32/Makefile
===================================================================
--- libs/libexif/0.6.24-ppc32/Makefile	(revision 393)
+++ libs/libexif/0.6.24-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/m/libexif
 
 REQUIRES           = libs/libexif/0.6.24
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/libexif/0.6.24-x86_32/Makefile
===================================================================
--- libs/libexif/0.6.24-x86_32/Makefile	(revision 393)
+++ libs/libexif/0.6.24-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/m/libexif
 
 REQUIRES           = libs/libexif/0.6.24
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/libffi/3.4.4/Makefile
===================================================================
--- libs/libffi/3.4.4/Makefile	(revision 393)
+++ libs/libffi/3.4.4/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/l/libffi
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: libs/libffi/3.4.4-ppc32/Makefile
===================================================================
--- libs/libffi/3.4.4-ppc32/Makefile	(revision 393)
+++ libs/libffi/3.4.4-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/l/libffi
 
 REQUIRES           = libs/libffi/3.4.4
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/libffi/3.4.4-x86_32/Makefile
===================================================================
--- libs/libffi/3.4.4-x86_32/Makefile	(revision 393)
+++ libs/libffi/3.4.4-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/l/libffi
 
 REQUIRES           = libs/libffi/3.4.4
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/libidn/1.36/Makefile
===================================================================
--- libs/libidn/1.36/Makefile	(revision 393)
+++ libs/libidn/1.36/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/GNU/libidn
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: libs/libidn/1.36-ppc32/Makefile
===================================================================
--- libs/libidn/1.36-ppc32/Makefile	(revision 393)
+++ libs/libidn/1.36-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/GNU/libidn
 
 REQUIRES           = libs/libidn/1.36
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/libidn/1.36-x86_32/Makefile
===================================================================
--- libs/libidn/1.36-x86_32/Makefile	(revision 393)
+++ libs/libidn/1.36-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/GNU/libidn
 
 REQUIRES           = libs/libidn/1.36
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/libiodbc/3.52.14/Makefile
===================================================================
--- libs/libiodbc/3.52.14/Makefile	(revision 393)
+++ libs/libiodbc/3.52.14/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/l/libiodbc
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: libs/libjpeg-turbo/2.1.2/Makefile
===================================================================
--- libs/libjpeg-turbo/2.1.2/Makefile	(revision 393)
+++ libs/libjpeg-turbo/2.1.2/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/l/libjpeg-turbo
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: libs/libjpeg-turbo/2.1.2-ppc32/Makefile
===================================================================
--- libs/libjpeg-turbo/2.1.2-ppc32/Makefile	(revision 393)
+++ libs/libjpeg-turbo/2.1.2-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/l/libjpeg-turbo
 
 REQUIRES           = libs/libjpeg-turbo/2.1.2
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/libjpeg-turbo/2.1.2-x86_32/Makefile
===================================================================
--- libs/libjpeg-turbo/2.1.2-x86_32/Makefile	(revision 393)
+++ libs/libjpeg-turbo/2.1.2-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/l/libjpeg-turbo
 
 REQUIRES           = libs/libjpeg-turbo/2.1.2
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/libmd/1.0.4/Makefile
===================================================================
--- libs/libmd/1.0.4/Makefile	(revision 393)
+++ libs/libmd/1.0.4/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/l/libmd
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: libs/libmd/1.0.4-ppc32/Makefile
===================================================================
--- libs/libmd/1.0.4-ppc32/Makefile	(revision 393)
+++ libs/libmd/1.0.4-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/l/libmd
 
 REQUIRES           = libs/libmd/1.0.4
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/libmd/1.0.4-x86_32/Makefile
===================================================================
--- libs/libmd/1.0.4-x86_32/Makefile	(revision 393)
+++ libs/libmd/1.0.4-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/l/libmd
 
 REQUIRES           = libs/libmd/1.0.4
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/libnfs/5.0.2/Makefile
===================================================================
--- libs/libnfs/5.0.2/Makefile	(revision 393)
+++ libs/libnfs/5.0.2/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/l/libnfs
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: libs/libpipeline/1.5.4/Makefile
===================================================================
--- libs/libpipeline/1.5.4/Makefile	(revision 393)
+++ libs/libpipeline/1.5.4/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/l/libpipeline
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: libs/libpng/libpng16/1.6.37/Makefile
===================================================================
--- libs/libpng/libpng16/1.6.37/Makefile	(revision 393)
+++ libs/libpng/libpng16/1.6.37/Makefile	(revision 394)
@@ -61,7 +61,7 @@
 SOURCE_REQUIRES    = sources/packages/l/libpng/libpng16
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
 REQUIRES           = libs/zlib/1.2.13
 endif
Index: libs/libraw1394/2.1.2/Makefile
===================================================================
--- libs/libraw1394/2.1.2/Makefile	(revision 393)
+++ libs/libraw1394/2.1.2/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/l/ieee1394/libraw1394
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: libs/libraw1394/2.1.2-ppc32/Makefile
===================================================================
--- libs/libraw1394/2.1.2-ppc32/Makefile	(revision 393)
+++ libs/libraw1394/2.1.2-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/l/ieee1394/libraw1394
 
 REQUIRES           = libs/libraw1394/2.1.2
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/libraw1394/2.1.2-x86_32/Makefile
===================================================================
--- libs/libraw1394/2.1.2-x86_32/Makefile	(revision 393)
+++ libs/libraw1394/2.1.2-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/l/ieee1394/libraw1394
 
 REQUIRES           = libs/libraw1394/2.1.2
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/libseccomp/2.5.4/Makefile
===================================================================
--- libs/libseccomp/2.5.4/Makefile	(revision 393)
+++ libs/libseccomp/2.5.4/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/l/libseccomp
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: libs/libseccomp/2.5.4-ppc32/Makefile
===================================================================
--- libs/libseccomp/2.5.4-ppc32/Makefile	(revision 393)
+++ libs/libseccomp/2.5.4-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/l/libseccomp
 
 REQUIRES           = libs/libseccomp/2.5.4
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/libseccomp/2.5.4-x86_32/Makefile
===================================================================
--- libs/libseccomp/2.5.4-x86_32/Makefile	(revision 393)
+++ libs/libseccomp/2.5.4-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/l/libseccomp
 
 REQUIRES           = libs/libseccomp/2.5.4
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/libsodium/1.0.18/Makefile
===================================================================
--- libs/libsodium/1.0.18/Makefile	(revision 393)
+++ libs/libsodium/1.0.18/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/l/libsodium
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: libs/libsodium/1.0.18-ppc32/Makefile
===================================================================
--- libs/libsodium/1.0.18-ppc32/Makefile	(revision 393)
+++ libs/libsodium/1.0.18-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/l/libsodium
 
 REQUIRES           = libs/libsodium/1.0.18
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/libsodium/1.0.18-x86_32/Makefile
===================================================================
--- libs/libsodium/1.0.18-x86_32/Makefile	(revision 393)
+++ libs/libsodium/1.0.18-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/l/libsodium
 
 REQUIRES           = libs/libsodium/1.0.18
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/libtasn1/4.16.0/Makefile
===================================================================
--- libs/libtasn1/4.16.0/Makefile	(revision 393)
+++ libs/libtasn1/4.16.0/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/GNU/libtasn1
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: libs/libtasn1/4.16.0-ppc32/Makefile
===================================================================
--- libs/libtasn1/4.16.0-ppc32/Makefile	(revision 393)
+++ libs/libtasn1/4.16.0-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/GNU/libtasn1
 
 REQUIRES           = libs/libtasn1/4.16.0
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/libtasn1/4.16.0-x86_32/Makefile
===================================================================
--- libs/libtasn1/4.16.0-x86_32/Makefile	(revision 393)
+++ libs/libtasn1/4.16.0-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/GNU/libtasn1
 
 REQUIRES           = libs/libtasn1/4.16.0
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/libunistring/0.9.10/Makefile
===================================================================
--- libs/libunistring/0.9.10/Makefile	(revision 393)
+++ libs/libunistring/0.9.10/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/GNU/libunistring
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: libs/libunistring/0.9.10-ppc32/Makefile
===================================================================
--- libs/libunistring/0.9.10-ppc32/Makefile	(revision 393)
+++ libs/libunistring/0.9.10-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/GNU/libunistring
 
 REQUIRES           = libs/libunistring/0.9.10
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/libunistring/0.9.10-x86_32/Makefile
===================================================================
--- libs/libunistring/0.9.10-x86_32/Makefile	(revision 393)
+++ libs/libunistring/0.9.10-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/GNU/libunistring
 
 REQUIRES           = libs/libunistring/0.9.10
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/liburing/2.1/Makefile
===================================================================
--- libs/liburing/2.1/Makefile	(revision 393)
+++ libs/liburing/2.1/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/l/liburing
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: libs/liburing/2.1-ppc32/Makefile
===================================================================
--- libs/liburing/2.1-ppc32/Makefile	(revision 393)
+++ libs/liburing/2.1-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/l/liburing
 
 REQUIRES           = libs/liburing/2.1
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/liburing/2.1-x86_32/Makefile
===================================================================
--- libs/liburing/2.1-x86_32/Makefile	(revision 393)
+++ libs/liburing/2.1-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/l/liburing
 
 REQUIRES           = libs/liburing/2.1
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/libuv/1.41.0/Makefile
===================================================================
--- libs/libuv/1.41.0/Makefile	(revision 393)
+++ libs/libuv/1.41.0/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/l/libuv
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: libs/libuv/1.41.0-ppc32/Makefile
===================================================================
--- libs/libuv/1.41.0-ppc32/Makefile	(revision 393)
+++ libs/libuv/1.41.0-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/l/libuv
 
 REQUIRES           = libs/libuv/1.41.0
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/libuv/1.41.0-x86_32/Makefile
===================================================================
--- libs/libuv/1.41.0-x86_32/Makefile	(revision 393)
+++ libs/libuv/1.41.0-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/l/libuv
 
 REQUIRES           = libs/libuv/1.41.0
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/libvisual/0.4.1/Makefile
===================================================================
--- libs/libvisual/0.4.1/Makefile	(revision 393)
+++ libs/libvisual/0.4.1/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/l/libvisual
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 #
Index: libs/libvisual/0.4.1-ppc32/Makefile
===================================================================
--- libs/libvisual/0.4.1-ppc32/Makefile	(revision 393)
+++ libs/libvisual/0.4.1-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/l/libvisual
 
 REQUIRES           = libs/libvisual/0.4.1
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/libvisual/0.4.1-x86_32/Makefile
===================================================================
--- libs/libvisual/0.4.1-x86_32/Makefile	(revision 393)
+++ libs/libvisual/0.4.1-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/l/libvisual
 
 REQUIRES           = libs/libvisual/0.4.1
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/libyaml/0.2.5/Makefile
===================================================================
--- libs/libyaml/0.2.5/Makefile	(revision 393)
+++ libs/libyaml/0.2.5/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/l/libyaml
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: libs/libyaml/0.2.5-ppc32/Makefile
===================================================================
--- libs/libyaml/0.2.5-ppc32/Makefile	(revision 393)
+++ libs/libyaml/0.2.5-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/l/libyaml
 
 REQUIRES           = libs/libyaml/0.2.5
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/libyaml/0.2.5-x86_32/Makefile
===================================================================
--- libs/libyaml/0.2.5-x86_32/Makefile	(revision 393)
+++ libs/libyaml/0.2.5-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/l/libyaml
 
 REQUIRES           = libs/libyaml/0.2.5
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/lz4/1.9.4/Makefile
===================================================================
--- libs/lz4/1.9.4/Makefile	(revision 393)
+++ libs/lz4/1.9.4/Makefile	(revision 394)
@@ -60,7 +60,7 @@
 
 SOURCE_REQUIRES    = sources/packages/l/lz4
 
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/lz4/1.9.4-ppc32/Makefile
===================================================================
--- libs/lz4/1.9.4-ppc32/Makefile	(revision 393)
+++ libs/lz4/1.9.4-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/l/lz4
 
 REQUIRES           = libs/lz4/1.9.4
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/lz4/1.9.4-x86_32/Makefile
===================================================================
--- libs/lz4/1.9.4-x86_32/Makefile	(revision 393)
+++ libs/lz4/1.9.4-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/l/lz4
 
 REQUIRES           = libs/lz4/1.9.4
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/lzo/2.10/Makefile
===================================================================
--- libs/lzo/2.10/Makefile	(revision 393)
+++ libs/lzo/2.10/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/l/lzo
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: libs/lzo/2.10-ppc32/Makefile
===================================================================
--- libs/lzo/2.10-ppc32/Makefile	(revision 393)
+++ libs/lzo/2.10-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/l/lzo
 
 REQUIRES           = libs/lzo/2.10
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/lzo/2.10-x86_32/Makefile
===================================================================
--- libs/lzo/2.10-x86_32/Makefile	(revision 393)
+++ libs/lzo/2.10-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/l/lzo
 
 REQUIRES           = libs/lzo/2.10
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/md4c/0.4.8/Makefile
===================================================================
--- libs/md4c/0.4.8/Makefile	(revision 393)
+++ libs/md4c/0.4.8/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/l/md4c
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: libs/md4c/0.4.8-ppc32/Makefile
===================================================================
--- libs/md4c/0.4.8-ppc32/Makefile	(revision 393)
+++ libs/md4c/0.4.8-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/l/md4c
 
 REQUIRES           = libs/md4c/0.4.8
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/md4c/0.4.8-x86_32/Makefile
===================================================================
--- libs/md4c/0.4.8-x86_32/Makefile	(revision 393)
+++ libs/md4c/0.4.8-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/l/md4c
 
 REQUIRES           = libs/md4c/0.4.8
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/oniguruma/6.9.7.1/Makefile
===================================================================
--- libs/oniguruma/6.9.7.1/Makefile	(revision 393)
+++ libs/oniguruma/6.9.7.1/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/l/oniguruma
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: libs/oniguruma/6.9.7.1-ppc32/Makefile
===================================================================
--- libs/oniguruma/6.9.7.1-ppc32/Makefile	(revision 393)
+++ libs/oniguruma/6.9.7.1-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/l/oniguruma
 
 REQUIRES           = libs/oniguruma/6.9.7.1
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/oniguruma/6.9.7.1-x86_32/Makefile
===================================================================
--- libs/oniguruma/6.9.7.1-x86_32/Makefile	(revision 393)
+++ libs/oniguruma/6.9.7.1-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/l/oniguruma
 
 REQUIRES           = libs/oniguruma/6.9.7.1
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/pcre/8.44/Makefile
===================================================================
--- libs/pcre/8.44/Makefile	(revision 393)
+++ libs/pcre/8.44/Makefile	(revision 394)
@@ -61,7 +61,7 @@
 SOURCE_REQUIRES    = sources/packages/l/pcre
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
 REQUIRES           = libs/zlib/1.2.13
 endif
Index: libs/pcre2/10.36/Makefile
===================================================================
--- libs/pcre2/10.36/Makefile	(revision 393)
+++ libs/pcre2/10.36/Makefile	(revision 394)
@@ -61,7 +61,7 @@
 SOURCE_REQUIRES    = sources/packages/l/pcre2
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
 REQUIRES           = libs/zlib/1.2.13
 endif
Index: libs/popt/1.18/Makefile
===================================================================
--- libs/popt/1.18/Makefile	(revision 393)
+++ libs/popt/1.18/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/l/popt
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: libs/popt/1.18-ppc32/Makefile
===================================================================
--- libs/popt/1.18-ppc32/Makefile	(revision 393)
+++ libs/popt/1.18-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/l/popt
 
 REQUIRES           = libs/popt/1.18
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/popt/1.18-x86_32/Makefile
===================================================================
--- libs/popt/1.18-x86_32/Makefile	(revision 393)
+++ libs/popt/1.18-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/l/popt
 
 REQUIRES           = libs/popt/1.18
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/protobuf/23.0/Makefile
===================================================================
--- libs/protobuf/23.0/Makefile	(revision 393)
+++ libs/protobuf/23.0/Makefile	(revision 394)
@@ -61,7 +61,7 @@
 SOURCE_REQUIRES    = sources/packages/l/protobuf
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
 REQUIRES           = libs/zlib/1.2.13
 endif
Index: libs/sbc/2.0/Makefile
===================================================================
--- libs/sbc/2.0/Makefile	(revision 393)
+++ libs/sbc/2.0/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/l/sbc
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: libs/sbc/2.0-ppc32/Makefile
===================================================================
--- libs/sbc/2.0-ppc32/Makefile	(revision 393)
+++ libs/sbc/2.0-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/l/sbc
 
 REQUIRES           = libs/sbc/2.0
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/sbc/2.0-x86_32/Makefile
===================================================================
--- libs/sbc/2.0-x86_32/Makefile	(revision 393)
+++ libs/sbc/2.0-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/l/sbc
 
 REQUIRES           = libs/sbc/2.0
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/sg3_utils/1.45/Makefile
===================================================================
--- libs/sg3_utils/1.45/Makefile	(revision 393)
+++ libs/sg3_utils/1.45/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/l/sg3_utils
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: libs/sg3_utils/1.45-ppc32/Makefile
===================================================================
--- libs/sg3_utils/1.45-ppc32/Makefile	(revision 393)
+++ libs/sg3_utils/1.45-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/l/sg3_utils
 
 REQUIRES           = libs/sg3_utils/1.45
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/sg3_utils/1.45-x86_32/Makefile
===================================================================
--- libs/sg3_utils/1.45-x86_32/Makefile	(revision 393)
+++ libs/sg3_utils/1.45-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/l/sg3_utils
 
 REQUIRES           = libs/sg3_utils/1.45
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/tidy-html5/5.8.0/Makefile
===================================================================
--- libs/tidy-html5/5.8.0/Makefile	(revision 393)
+++ libs/tidy-html5/5.8.0/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/l/tidy-html5
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: libs/tidy-html5/5.8.0-ppc32/Makefile
===================================================================
--- libs/tidy-html5/5.8.0-ppc32/Makefile	(revision 393)
+++ libs/tidy-html5/5.8.0-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/l/tidy-html5
 
 REQUIRES           = libs/tidy-html5/5.8.0
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/tidy-html5/5.8.0-x86_32/Makefile
===================================================================
--- libs/tidy-html5/5.8.0-x86_32/Makefile	(revision 393)
+++ libs/tidy-html5/5.8.0-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/l/tidy-html5
 
 REQUIRES           = libs/tidy-html5/5.8.0
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/tslib/1.22/Makefile
===================================================================
--- libs/tslib/1.22/Makefile	(revision 393)
+++ libs/tslib/1.22/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/l/tslib
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: libs/tslib/1.22-ppc32/Makefile
===================================================================
--- libs/tslib/1.22-ppc32/Makefile	(revision 393)
+++ libs/tslib/1.22-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/l/tslib
 
 REQUIRES           = libs/tslib/1.22
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/tslib/1.22-x86_32/Makefile
===================================================================
--- libs/tslib/1.22-x86_32/Makefile	(revision 393)
+++ libs/tslib/1.22-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/l/tslib
 
 REQUIRES           = libs/tslib/1.22
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/utf8proc/2.7.0/Makefile
===================================================================
--- libs/utf8proc/2.7.0/Makefile	(revision 393)
+++ libs/utf8proc/2.7.0/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/l/utf8proc
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: libs/utf8proc/2.7.0-ppc32/Makefile
===================================================================
--- libs/utf8proc/2.7.0-ppc32/Makefile	(revision 393)
+++ libs/utf8proc/2.7.0-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/l/utf8proc
 
 REQUIRES           = libs/utf8proc/2.7.0
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/utf8proc/2.7.0-x86_32/Makefile
===================================================================
--- libs/utf8proc/2.7.0-x86_32/Makefile	(revision 393)
+++ libs/utf8proc/2.7.0-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/l/utf8proc
 
 REQUIRES           = libs/utf8proc/2.7.0
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/xxhash/0.8.2/Makefile
===================================================================
--- libs/xxhash/0.8.2/Makefile	(revision 393)
+++ libs/xxhash/0.8.2/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/l/xxhash
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: libs/zlib/1.2.13/Makefile
===================================================================
--- libs/zlib/1.2.13/Makefile	(revision 393)
+++ libs/zlib/1.2.13/Makefile	(revision 394)
@@ -60,7 +60,7 @@
 
 SOURCE_REQUIRES    = sources/packages/l/zlib
 
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/zlib/1.2.13-ppc32/Makefile
===================================================================
--- libs/zlib/1.2.13-ppc32/Makefile	(revision 393)
+++ libs/zlib/1.2.13-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/l/zlib
 
 REQUIRES           = libs/zlib/1.2.13
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: libs/zlib/1.2.13-x86_32/Makefile
===================================================================
--- libs/zlib/1.2.13-x86_32/Makefile	(revision 393)
+++ libs/zlib/1.2.13-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/l/zlib
 
 REQUIRES           = libs/zlib/1.2.13
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: media/a52dec/0.8.0/Makefile
===================================================================
--- media/a52dec/0.8.0/Makefile	(revision 393)
+++ media/a52dec/0.8.0/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/m/a52dec
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: media/cdparanoia/10.2/Makefile
===================================================================
--- media/cdparanoia/10.2/Makefile	(revision 393)
+++ media/cdparanoia/10.2/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/m/xiph/cdparanoia
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: media/cdparanoia/10.2-ppc32/Makefile
===================================================================
--- media/cdparanoia/10.2-ppc32/Makefile	(revision 393)
+++ media/cdparanoia/10.2-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/m/xiph/cdparanoia
 
 REQUIRES           = media/cdparanoia/10.2
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: media/cdparanoia/10.2-x86_32/Makefile
===================================================================
--- media/cdparanoia/10.2-x86_32/Makefile	(revision 393)
+++ media/cdparanoia/10.2-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/m/xiph/cdparanoia
 
 REQUIRES           = media/cdparanoia/10.2
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: media/dav1d/1.3.0/Makefile
===================================================================
--- media/dav1d/1.3.0/Makefile	(revision 393)
+++ media/dav1d/1.3.0/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/m/VideoLAN/dav1d
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: media/dcadec/0.2.0/Makefile
===================================================================
--- media/dcadec/0.2.0/Makefile	(revision 393)
+++ media/dcadec/0.2.0/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/m/dcadec
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: media/dcadec/0.2.0-ppc32/Makefile
===================================================================
--- media/dcadec/0.2.0-ppc32/Makefile	(revision 393)
+++ media/dcadec/0.2.0-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/m/dcadec
 
 REQUIRES           = media/dcadec/0.2.0
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: media/dcadec/0.2.0-x86_32/Makefile
===================================================================
--- media/dcadec/0.2.0-x86_32/Makefile	(revision 393)
+++ media/dcadec/0.2.0-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/m/dcadec
 
 REQUIRES           = media/dcadec/0.2.0
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: media/faac/1.30/Makefile
===================================================================
--- media/faac/1.30/Makefile	(revision 393)
+++ media/faac/1.30/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/m/audiocoding/faac
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: media/faac/1.30-ppc32/Makefile
===================================================================
--- media/faac/1.30-ppc32/Makefile	(revision 393)
+++ media/faac/1.30-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/m/audiocoding/faac
 
 REQUIRES           = media/faac/1.30
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: media/faac/1.30-x86_32/Makefile
===================================================================
--- media/faac/1.30-x86_32/Makefile	(revision 393)
+++ media/faac/1.30-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/m/audiocoding/faac
 
 REQUIRES           = media/faac/1.30
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: media/faad2/2.10.1/Makefile
===================================================================
--- media/faad2/2.10.1/Makefile	(revision 393)
+++ media/faad2/2.10.1/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/m/audiocoding/faad2
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: media/faad2/2.10.1-ppc32/Makefile
===================================================================
--- media/faad2/2.10.1-ppc32/Makefile	(revision 393)
+++ media/faad2/2.10.1-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/m/audiocoding/faac
 
 REQUIRES           = media/faad2/2.10.1
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: media/faad2/2.10.1-x86_32/Makefile
===================================================================
--- media/faad2/2.10.1-x86_32/Makefile	(revision 393)
+++ media/faad2/2.10.1-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/m/audiocoding/faac
 
 REQUIRES           = media/faad2/2.10.1
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: media/fdk-aac/2.0.2/Makefile
===================================================================
--- media/fdk-aac/2.0.2/Makefile	(revision 393)
+++ media/fdk-aac/2.0.2/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/m/amr/fdk-aac
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: media/fdk-aac/2.0.2-ppc32/Makefile
===================================================================
--- media/fdk-aac/2.0.2-ppc32/Makefile	(revision 393)
+++ media/fdk-aac/2.0.2-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/m/amr/fdk-aac
 
 REQUIRES           = media/fdk-aac/2.0.2
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: media/fdk-aac/2.0.2-x86_32/Makefile
===================================================================
--- media/fdk-aac/2.0.2-x86_32/Makefile	(revision 393)
+++ media/fdk-aac/2.0.2-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/m/amr/fdk-aac
 
 REQUIRES           = media/fdk-aac/2.0.2
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: media/gsm/1.0.22/Makefile
===================================================================
--- media/gsm/1.0.22/Makefile	(revision 393)
+++ media/gsm/1.0.22/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/m/gsm
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: media/gsm/1.0.22-ppc32/Makefile
===================================================================
--- media/gsm/1.0.22-ppc32/Makefile	(revision 393)
+++ media/gsm/1.0.22-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/m/gsm
 
 REQUIRES           = media/gsm/1.0.22
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: media/gsm/1.0.22-x86_32/Makefile
===================================================================
--- media/gsm/1.0.22-x86_32/Makefile	(revision 393)
+++ media/gsm/1.0.22-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/m/gsm
 
 REQUIRES           = media/gsm/1.0.22
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: media/libavtp/0.2.0/Makefile
===================================================================
--- media/libavtp/0.2.0/Makefile	(revision 393)
+++ media/libavtp/0.2.0/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/m/libavtp
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: media/libavtp/0.2.0-ppc32/Makefile
===================================================================
--- media/libavtp/0.2.0-ppc32/Makefile	(revision 393)
+++ media/libavtp/0.2.0-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/m/libavtp
 
 REQUIRES           = media/libavtp/0.2.0
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: media/libavtp/0.2.0-x86_32/Makefile
===================================================================
--- media/libavtp/0.2.0-x86_32/Makefile	(revision 393)
+++ media/libavtp/0.2.0-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/m/libavtp
 
 REQUIRES           = media/libavtp/0.2.0
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: media/libcddb/1.3.2/Makefile
===================================================================
--- media/libcddb/1.3.2/Makefile	(revision 393)
+++ media/libcddb/1.3.2/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/m/libcddb
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: media/libdvbpsi/1.3.3/Makefile
===================================================================
--- media/libdvbpsi/1.3.3/Makefile	(revision 393)
+++ media/libdvbpsi/1.3.3/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/m/VideoLAN/libdvbpsi
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: media/libdvdcss/1.4.3/Makefile
===================================================================
--- media/libdvdcss/1.4.3/Makefile	(revision 393)
+++ media/libdvdcss/1.4.3/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/m/VideoLAN/libdvdcss
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: media/libdvdread/6.1.3/Makefile
===================================================================
--- media/libdvdread/6.1.3/Makefile	(revision 393)
+++ media/libdvdread/6.1.3/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/m/VideoLAN/libdvdread
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: media/libebml/1.4.5/Makefile
===================================================================
--- media/libebml/1.4.5/Makefile	(revision 393)
+++ media/libebml/1.4.5/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/m/libebml
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: media/libid3tag/0.15.1b/Makefile
===================================================================
--- media/libid3tag/0.15.1b/Makefile	(revision 393)
+++ media/libid3tag/0.15.1b/Makefile	(revision 394)
@@ -61,7 +61,7 @@
 SOURCE_REQUIRES    = sources/packages/m/mad/libid3tag
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
 REQUIRES           = libs/zlib/1.2.13
 endif
Index: media/libmad/0.15.1b/Makefile
===================================================================
--- media/libmad/0.15.1b/Makefile	(revision 393)
+++ media/libmad/0.15.1b/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/m/mad/libmad
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: media/libmad/0.15.1b-ppc32/Makefile
===================================================================
--- media/libmad/0.15.1b-ppc32/Makefile	(revision 393)
+++ media/libmad/0.15.1b-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/m/mad/libmad
 
 REQUIRES           = media/libmad/0.15.1b
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: media/libmad/0.15.1b-x86_32/Makefile
===================================================================
--- media/libmad/0.15.1b-x86_32/Makefile	(revision 393)
+++ media/libmad/0.15.1b-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/m/mad/libmad
 
 REQUIRES           = media/libmad/0.15.1b
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: media/libmodplug/0.8.9.0/Makefile
===================================================================
--- media/libmodplug/0.8.9.0/Makefile	(revision 393)
+++ media/libmodplug/0.8.9.0/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/m/libmodplug
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: media/libmodplug/0.8.9.0-ppc32/Makefile
===================================================================
--- media/libmodplug/0.8.9.0-ppc32/Makefile	(revision 393)
+++ media/libmodplug/0.8.9.0-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/m/libmodplug
 
 REQUIRES           = media/libmodplug/0.8.9.0
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: media/libmodplug/0.8.9.0-x86_32/Makefile
===================================================================
--- media/libmodplug/0.8.9.0-x86_32/Makefile	(revision 393)
+++ media/libmodplug/0.8.9.0-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/m/libmodplug
 
 REQUIRES           = media/libmodplug/0.8.9.0
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: media/libogg/1.3.5/Makefile
===================================================================
--- media/libogg/1.3.5/Makefile	(revision 393)
+++ media/libogg/1.3.5/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/m/xiph/libogg
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: media/libogg/1.3.5-ppc32/Makefile
===================================================================
--- media/libogg/1.3.5-ppc32/Makefile	(revision 393)
+++ media/libogg/1.3.5-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/m/xiph/libogg
 
 REQUIRES           = media/libogg/1.3.5
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: media/libogg/1.3.5-x86_32/Makefile
===================================================================
--- media/libogg/1.3.5-x86_32/Makefile	(revision 393)
+++ media/libogg/1.3.5-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/m/xiph/libogg
 
 REQUIRES           = media/libogg/1.3.5
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: media/libomxil-bellagio/0.9.3/Makefile
===================================================================
--- media/libomxil-bellagio/0.9.3/Makefile	(revision 393)
+++ media/libomxil-bellagio/0.9.3/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/m/OpenMAX/libomxil-bellagio
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: media/libomxil-bellagio/0.9.3-ppc32/Makefile
===================================================================
--- media/libomxil-bellagio/0.9.3-ppc32/Makefile	(revision 393)
+++ media/libomxil-bellagio/0.9.3-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/m/OpenMAX/libomxil-bellagio
 
 REQUIRES           = media/libomxil-bellagio/0.9.3
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: media/libomxil-bellagio/0.9.3-x86_32/Makefile
===================================================================
--- media/libomxil-bellagio/0.9.3-x86_32/Makefile	(revision 393)
+++ media/libomxil-bellagio/0.9.3-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/m/OpenMAX/libomxil-bellagio
 
 REQUIRES           = media/libomxil-bellagio/0.9.3
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: media/libsoxr/0.1.3/Makefile
===================================================================
--- media/libsoxr/0.1.3/Makefile	(revision 393)
+++ media/libsoxr/0.1.3/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/m/libsoxr
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES          += libs/glibc/2.37
+REQUIRES          += libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: media/libsoxr/0.1.3-ppc32/Makefile
===================================================================
--- media/libsoxr/0.1.3-ppc32/Makefile	(revision 393)
+++ media/libsoxr/0.1.3-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/m/libsoxr
 
 REQUIRES           = media/libsoxr/0.1.3
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: media/libsoxr/0.1.3-x86_32/Makefile
===================================================================
--- media/libsoxr/0.1.3-x86_32/Makefile	(revision 393)
+++ media/libsoxr/0.1.3-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/m/libsoxr
 
 REQUIRES           = media/libsoxr/0.1.3
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: media/libvidstab/1.1.0/Makefile
===================================================================
--- media/libvidstab/1.1.0/Makefile	(revision 393)
+++ media/libvidstab/1.1.0/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/m/vid-stab
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES          += libs/glibc/2.37
+REQUIRES          += libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: media/libvidstab/1.1.0-ppc32/Makefile
===================================================================
--- media/libvidstab/1.1.0-ppc32/Makefile	(revision 393)
+++ media/libvidstab/1.1.0-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/m/vid-stab
 
 REQUIRES           = media/libvidstab/1.1.0
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: media/libvidstab/1.1.0-x86_32/Makefile
===================================================================
--- media/libvidstab/1.1.0-x86_32/Makefile	(revision 393)
+++ media/libvidstab/1.1.0-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/m/vid-stab
 
 REQUIRES           = media/libvidstab/1.1.0
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: media/libvpx/1.12.0/Makefile
===================================================================
--- media/libvpx/1.12.0/Makefile	(revision 393)
+++ media/libvpx/1.12.0/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/m/libvpx
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: media/libvpx/1.12.0-ppc32/Makefile
===================================================================
--- media/libvpx/1.12.0-ppc32/Makefile	(revision 393)
+++ media/libvpx/1.12.0-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/m/libvpx
 
 REQUIRES           = media/libvpx/1.12.0
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: media/libvpx/1.12.0-x86_32/Makefile
===================================================================
--- media/libvpx/1.12.0-x86_32/Makefile	(revision 393)
+++ media/libvpx/1.12.0-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/m/libvpx
 
 REQUIRES           = media/libvpx/1.12.0
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: media/libx264/0.164.20221217/Makefile
===================================================================
--- media/libx264/0.164.20221217/Makefile	(revision 393)
+++ media/libx264/0.164.20221217/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/m/VideoLAN/x264
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: media/libx264/0.164.20221217-ppc32/Makefile
===================================================================
--- media/libx264/0.164.20221217-ppc32/Makefile	(revision 393)
+++ media/libx264/0.164.20221217-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/m/VideoLAN/x264
 
 REQUIRES           = media/libx264/0.164.20221217
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: media/libx264/0.164.20221217-x86_32/Makefile
===================================================================
--- media/libx264/0.164.20221217-x86_32/Makefile	(revision 393)
+++ media/libx264/0.164.20221217-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/m/VideoLAN/x264
 
 REQUIRES           = media/libx264/0.164.20221217
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: media/mp4v2/2.1.1/Makefile
===================================================================
--- media/mp4v2/2.1.1/Makefile	(revision 393)
+++ media/mp4v2/2.1.1/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/m/mp4v2
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: media/mp4v2/2.1.1-ppc32/Makefile
===================================================================
--- media/mp4v2/2.1.1-ppc32/Makefile	(revision 393)
+++ media/mp4v2/2.1.1-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/m/mp4v2
 
 REQUIRES           = media/mp4v2/2.1.1
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: media/mp4v2/2.1.1-x86_32/Makefile
===================================================================
--- media/mp4v2/2.1.1-x86_32/Makefile	(revision 393)
+++ media/mp4v2/2.1.1-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/m/mp4v2
 
 REQUIRES           = media/mp4v2/2.1.1
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: media/opencore-amr/0.1.6/Makefile
===================================================================
--- media/opencore-amr/0.1.6/Makefile	(revision 393)
+++ media/opencore-amr/0.1.6/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/m/amr/opencore-amr
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: media/opencore-amr/0.1.6-ppc32/Makefile
===================================================================
--- media/opencore-amr/0.1.6-ppc32/Makefile	(revision 393)
+++ media/opencore-amr/0.1.6-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/m/amr/opencore-amr
 
 REQUIRES           = media/opencore-amr/0.1.6
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: media/opencore-amr/0.1.6-x86_32/Makefile
===================================================================
--- media/opencore-amr/0.1.6-x86_32/Makefile	(revision 393)
+++ media/opencore-amr/0.1.6-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/m/amr/opencore-amr
 
 REQUIRES           = media/opencore-amr/0.1.6
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: media/openh264/2.3.1/Makefile
===================================================================
--- media/openh264/2.3.1/Makefile	(revision 393)
+++ media/openh264/2.3.1/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/m/openh264
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES          += libs/glibc/2.37
+REQUIRES          += libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: media/openh264/2.3.1-ppc32/Makefile
===================================================================
--- media/openh264/2.3.1-ppc32/Makefile	(revision 393)
+++ media/openh264/2.3.1-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/m/VideoLAN/x264
 
 REQUIRES           = media/openh264/2.3.1
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: media/openh264/2.3.1-x86_32/Makefile
===================================================================
--- media/openh264/2.3.1-x86_32/Makefile	(revision 393)
+++ media/openh264/2.3.1-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/m/VideoLAN/x264
 
 REQUIRES           = media/openh264/2.3.1
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: media/opus/1.3.1/Makefile
===================================================================
--- media/opus/1.3.1/Makefile	(revision 393)
+++ media/opus/1.3.1/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/m/xiph/opus
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: media/opus/1.3.1-ppc32/Makefile
===================================================================
--- media/opus/1.3.1-ppc32/Makefile	(revision 393)
+++ media/opus/1.3.1-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/m/xiph/opus
 
 REQUIRES           = media/opus/1.3.1
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: media/opus/1.3.1-x86_32/Makefile
===================================================================
--- media/opus/1.3.1-x86_32/Makefile	(revision 393)
+++ media/opus/1.3.1-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/m/xiph/opus
 
 REQUIRES           = media/opus/1.3.1
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: media/speexdsp/1.2.1/Makefile
===================================================================
--- media/speexdsp/1.2.1/Makefile	(revision 393)
+++ media/speexdsp/1.2.1/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/m/xiph/speexdsp
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: media/speexdsp/1.2.1-ppc32/Makefile
===================================================================
--- media/speexdsp/1.2.1-ppc32/Makefile	(revision 393)
+++ media/speexdsp/1.2.1-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/m/xiph/speexdsp
 
 REQUIRES           = media/speexdsp/1.2.1
-REQUIRES           = libs/glibc/2.37-ppc32
+REQUIRES           = libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: media/speexdsp/1.2.1-x86_32/Makefile
===================================================================
--- media/speexdsp/1.2.1-x86_32/Makefile	(revision 393)
+++ media/speexdsp/1.2.1-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/m/xiph/speexdsp
 
 REQUIRES           = media/speexdsp/1.2.1
-REQUIRES           = libs/glibc/2.37-x86_32
+REQUIRES           = libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: media/taglib/1.13/Makefile
===================================================================
--- media/taglib/1.13/Makefile	(revision 393)
+++ media/taglib/1.13/Makefile	(revision 394)
@@ -61,7 +61,7 @@
 SOURCE_REQUIRES    = sources/packages/m/taglib
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
 REQUIRES           = libs/zlib/1.2.13
 endif
Index: media/vo-aacenc/0.1.3/Makefile
===================================================================
--- media/vo-aacenc/0.1.3/Makefile	(revision 393)
+++ media/vo-aacenc/0.1.3/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/m/amr/vo-aacenc
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: media/vo-aacenc/0.1.3-ppc32/Makefile
===================================================================
--- media/vo-aacenc/0.1.3-ppc32/Makefile	(revision 393)
+++ media/vo-aacenc/0.1.3-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/m/amr/vo-aacenc
 
 REQUIRES           = media/vo-aacenc/0.1.3
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: media/vo-aacenc/0.1.3-x86_32/Makefile
===================================================================
--- media/vo-aacenc/0.1.3-x86_32/Makefile	(revision 393)
+++ media/vo-aacenc/0.1.3-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/m/amr/vo-aacenc
 
 REQUIRES           = media/vo-aacenc/0.1.3
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: media/vo-amrwbenc/0.1.3/Makefile
===================================================================
--- media/vo-amrwbenc/0.1.3/Makefile	(revision 393)
+++ media/vo-amrwbenc/0.1.3/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/m/amr/vo-amrwbenc
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: media/vo-amrwbenc/0.1.3-ppc32/Makefile
===================================================================
--- media/vo-amrwbenc/0.1.3-ppc32/Makefile	(revision 393)
+++ media/vo-amrwbenc/0.1.3-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/m/amr/vo-amrwbenc
 
 REQUIRES           = media/vo-amrwbenc/0.1.3
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: media/vo-amrwbenc/0.1.3-x86_32/Makefile
===================================================================
--- media/vo-amrwbenc/0.1.3-x86_32/Makefile	(revision 393)
+++ media/vo-amrwbenc/0.1.3-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/m/amr/vo-amrwbenc
 
 REQUIRES           = media/vo-amrwbenc/0.1.3
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: media/wavpack/5.6.0/Makefile
===================================================================
--- media/wavpack/5.6.0/Makefile	(revision 393)
+++ media/wavpack/5.6.0/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/m/wavpack
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: media/wavpack/5.6.0-ppc32/Makefile
===================================================================
--- media/wavpack/5.6.0-ppc32/Makefile	(revision 393)
+++ media/wavpack/5.6.0-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/m/wavpack
 
 REQUIRES           = media/wavpack/5.6.0
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: media/wavpack/5.6.0-x86_32/Makefile
===================================================================
--- media/wavpack/5.6.0-x86_32/Makefile	(revision 393)
+++ media/wavpack/5.6.0-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/m/wavpack
 
 REQUIRES           = media/wavpack/5.6.0
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: media/x265/3.5/Makefile
===================================================================
--- media/x265/3.5/Makefile	(revision 393)
+++ media/x265/3.5/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/m/VideoLAN/x265
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: media/x265/3.5-ppc32/Makefile
===================================================================
--- media/x265/3.5-ppc32/Makefile	(revision 393)
+++ media/x265/3.5-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/m/VideoLAN/x265
 
 REQUIRES           = media/x265/3.5
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: media/x265/3.5-x86_32/Makefile
===================================================================
--- media/x265/3.5-x86_32/Makefile	(revision 393)
+++ media/x265/3.5-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/m/VideoLAN/x265
 
 REQUIRES           = media/x265/3.5
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: media/xvidcore/1.3.7/Makefile
===================================================================
--- media/xvidcore/1.3.7/Makefile	(revision 393)
+++ media/xvidcore/1.3.7/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/m/xvidcore
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: media/xvidcore/1.3.7-ppc32/Makefile
===================================================================
--- media/xvidcore/1.3.7-ppc32/Makefile	(revision 393)
+++ media/xvidcore/1.3.7-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/m/xvidcore
 
 REQUIRES           = media/xvidcore/1.3.7
-REQUIRES           = libs/glibc/2.37-ppc32
+REQUIRES           = libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: media/xvidcore/1.3.7-x86_32/Makefile
===================================================================
--- media/xvidcore/1.3.7-x86_32/Makefile	(revision 393)
+++ media/xvidcore/1.3.7-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/m/xvidcore
 
 REQUIRES           = media/xvidcore/1.3.7
-REQUIRES           = libs/glibc/2.37-x86_32
+REQUIRES           = libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: net/biff+comsat/0.17/Makefile
===================================================================
--- net/biff+comsat/0.17/Makefile	(revision 393)
+++ net/biff+comsat/0.17/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/n/biff+comsat
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: net/bridge-utils/1.7.1/Makefile
===================================================================
--- net/bridge-utils/1.7.1/Makefile	(revision 393)
+++ net/bridge-utils/1.7.1/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/n/bridge-utils
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: net/bsd-finger/0.17/Makefile
===================================================================
--- net/bsd-finger/0.17/Makefile	(revision 393)
+++ net/bsd-finger/0.17/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/n/bsd-finger
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: net/geoip/1.16.2/Makefile
===================================================================
--- net/geoip/1.16.2/Makefile	(revision 393)
+++ net/geoip/1.16.2/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/n/geoip
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: net/geoip/1.16.2-ppc32/Makefile
===================================================================
--- net/geoip/1.16.2-ppc32/Makefile	(revision 393)
+++ net/geoip/1.16.2-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/n/geoip
 
 REQUIRES           = net/geoip/1.16.2
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: net/geoip/1.16.2-x86_32/Makefile
===================================================================
--- net/geoip/1.16.2-x86_32/Makefile	(revision 393)
+++ net/geoip/1.16.2-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/n/geoip
 
 REQUIRES           = net/geoip/1.16.2
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: net/gnutls/3.8.0/Makefile
===================================================================
--- net/gnutls/3.8.0/Makefile	(revision 393)
+++ net/gnutls/3.8.0/Makefile	(revision 394)
@@ -61,7 +61,7 @@
 SOURCE_REQUIRES    = sources/packages/n/gnutls
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 endif
 REQUIRES          += libs/libidn2/2.3.0
 REQUIRES          += libs/brotli/1.0.9
Index: net/icmpinfo/1.11/Makefile
===================================================================
--- net/icmpinfo/1.11/Makefile	(revision 393)
+++ net/icmpinfo/1.11/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/n/icmpinfo
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: net/libgpg-error/1.41/Makefile
===================================================================
--- net/libgpg-error/1.41/Makefile	(revision 393)
+++ net/libgpg-error/1.41/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/n/libgpg-error
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: net/libgpg-error/1.41-ppc32/Makefile
===================================================================
--- net/libgpg-error/1.41-ppc32/Makefile	(revision 393)
+++ net/libgpg-error/1.41-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/n/libgpg-error
 
 REQUIRES           = net/libgpg-error/1.41
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: net/libgpg-error/1.41-x86_32/Makefile
===================================================================
--- net/libgpg-error/1.41-x86_32/Makefile	(revision 393)
+++ net/libgpg-error/1.41-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/n/libgpg-error
 
 REQUIRES           = net/libgpg-error/1.41
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: net/libmaxminddb/1.6.0/Makefile
===================================================================
--- net/libmaxminddb/1.6.0/Makefile	(revision 393)
+++ net/libmaxminddb/1.6.0/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/n/libmaxminddb
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: net/libmaxminddb/1.6.0-ppc32/Makefile
===================================================================
--- net/libmaxminddb/1.6.0-ppc32/Makefile	(revision 393)
+++ net/libmaxminddb/1.6.0-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/n/libmaxminddb
 
 REQUIRES           = net/libmaxminddb/1.6.0
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: net/libmaxminddb/1.6.0-x86_32/Makefile
===================================================================
--- net/libmaxminddb/1.6.0-x86_32/Makefile	(revision 393)
+++ net/libmaxminddb/1.6.0-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/n/libmaxminddb
 
 REQUIRES           = net/libmaxminddb/1.6.0
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: net/libmilter/8.17.1/Makefile
===================================================================
--- net/libmilter/8.17.1/Makefile	(revision 393)
+++ net/libmilter/8.17.1/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/n/sendmail
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: net/libmnl/1.0.4/Makefile
===================================================================
--- net/libmnl/1.0.4/Makefile	(revision 393)
+++ net/libmnl/1.0.4/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/n/libmnl
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: net/libmnl/1.0.4-ppc32/Makefile
===================================================================
--- net/libmnl/1.0.4-ppc32/Makefile	(revision 393)
+++ net/libmnl/1.0.4-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/n/libmnl
 
 REQUIRES           = net/libmnl/1.0.4
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: net/libmnl/1.0.4-x86_32/Makefile
===================================================================
--- net/libmnl/1.0.4-x86_32/Makefile	(revision 393)
+++ net/libmnl/1.0.4-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/n/libmnl
 
 REQUIRES           = net/libmnl/1.0.4
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: net/libndp/1.7/Makefile
===================================================================
--- net/libndp/1.7/Makefile	(revision 393)
+++ net/libndp/1.7/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/n/libndp
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: net/libndp/1.7-ppc32/Makefile
===================================================================
--- net/libndp/1.7-ppc32/Makefile	(revision 393)
+++ net/libndp/1.7-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/n/libndp
 
 REQUIRES           = net/libndp/1.7
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: net/libndp/1.7-x86_32/Makefile
===================================================================
--- net/libndp/1.7-x86_32/Makefile	(revision 393)
+++ net/libndp/1.7-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/n/libndp
 
 REQUIRES           = net/libndp/1.7
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: net/libnfnetlink/1.0.1/Makefile
===================================================================
--- net/libnfnetlink/1.0.1/Makefile	(revision 393)
+++ net/libnfnetlink/1.0.1/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/n/libnfnetlink
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: net/libnfnetlink/1.0.1-ppc32/Makefile
===================================================================
--- net/libnfnetlink/1.0.1-ppc32/Makefile	(revision 393)
+++ net/libnfnetlink/1.0.1-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/n/libnfnetlink
 
 REQUIRES           = net/libnfnetlink/1.0.1
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: net/libnfnetlink/1.0.1-x86_32/Makefile
===================================================================
--- net/libnfnetlink/1.0.1-x86_32/Makefile	(revision 393)
+++ net/libnfnetlink/1.0.1-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/n/libnfnetlink
 
 REQUIRES           = net/libnfnetlink/1.0.1
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: net/libnl3/3.5.0/Makefile
===================================================================
--- net/libnl3/3.5.0/Makefile	(revision 393)
+++ net/libnl3/3.5.0/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/n/libnl3
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: net/libnl3/3.5.0-ppc32/Makefile
===================================================================
--- net/libnl3/3.5.0-ppc32/Makefile	(revision 393)
+++ net/libnl3/3.5.0-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/n/libnl3
 
 REQUIRES           = net/libnl3/3.5.0
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: net/libnl3/3.5.0-x86_32/Makefile
===================================================================
--- net/libnl3/3.5.0-x86_32/Makefile	(revision 393)
+++ net/libnl3/3.5.0-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/n/libnl3
 
 REQUIRES           = net/libnl3/3.5.0
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: net/libsignal-protocol-c/2.3.3/Makefile
===================================================================
--- net/libsignal-protocol-c/2.3.3/Makefile	(revision 393)
+++ net/libsignal-protocol-c/2.3.3/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/n/libsignal-protocol-c
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: net/libtirpc/1.3.1/Makefile
===================================================================
--- net/libtirpc/1.3.1/Makefile	(revision 393)
+++ net/libtirpc/1.3.1/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/n/libtirpc
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: net/libtirpc/1.3.1-ppc32/Makefile
===================================================================
--- net/libtirpc/1.3.1-ppc32/Makefile	(revision 393)
+++ net/libtirpc/1.3.1-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/n/libtirpc
 
 REQUIRES           = net/libtirpc/1.3.1
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: net/libtirpc/1.3.1-x86_32/Makefile
===================================================================
--- net/libtirpc/1.3.1-x86_32/Makefile	(revision 393)
+++ net/libtirpc/1.3.1-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/n/libtirpc
 
 REQUIRES           = net/libtirpc/1.3.1
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: net/libupnp/1.14.18/Makefile
===================================================================
--- net/libupnp/1.14.18/Makefile	(revision 393)
+++ net/libupnp/1.14.18/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/n/libupnp
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: net/net-tools/1.60/Makefile
===================================================================
--- net/net-tools/1.60/Makefile	(revision 393)
+++ net/net-tools/1.60/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/n/net-tools
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: net/netdate/4/Makefile
===================================================================
--- net/netdate/4/Makefile	(revision 393)
+++ net/netdate/4/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/n/netdate
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: net/netkit-routed/0.17/Makefile
===================================================================
--- net/netkit-routed/0.17/Makefile	(revision 393)
+++ net/netkit-routed/0.17/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/n/netkit-routed
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: net/netkit-rwho/0.17/Makefile
===================================================================
--- net/netkit-rwho/0.17/Makefile	(revision 393)
+++ net/netkit-rwho/0.17/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/n/netkit-rwho
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: net/netkit-timed/0.17/Makefile
===================================================================
--- net/netkit-timed/0.17/Makefile	(revision 393)
+++ net/netkit-timed/0.17/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/n/netkit-timed
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: net/nettle/3.7.1/Makefile
===================================================================
--- net/nettle/3.7.1/Makefile	(revision 393)
+++ net/nettle/3.7.1/Makefile	(revision 394)
@@ -61,7 +61,7 @@
 SOURCE_REQUIRES    = sources/packages/n/nettle
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
 REQUIRES           = libs/gmp/6.2.1
 endif
Index: net/netwrite/0.17/Makefile
===================================================================
--- net/netwrite/0.17/Makefile	(revision 393)
+++ net/netwrite/0.17/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/n/netwrite
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: net/nghttp2/1.43.0/Makefile
===================================================================
--- net/nghttp2/1.43.0/Makefile	(revision 393)
+++ net/nghttp2/1.43.0/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/n/nghttp2
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: net/nghttp2/1.43.0-ppc32/Makefile
===================================================================
--- net/nghttp2/1.43.0-ppc32/Makefile	(revision 393)
+++ net/nghttp2/1.43.0-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/n/nghttp2
 
 REQUIRES           = net/nghttp2/1.43.0
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: net/nghttp2/1.43.0-x86_32/Makefile
===================================================================
--- net/nghttp2/1.43.0-x86_32/Makefile	(revision 393)
+++ net/nghttp2/1.43.0-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/n/nghttp2
 
 REQUIRES           = net/nghttp2/1.43.0
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: net/npth/1.6/Makefile
===================================================================
--- net/npth/1.6/Makefile	(revision 393)
+++ net/npth/1.6/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/n/npth
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: net/npth/1.6-ppc32/Makefile
===================================================================
--- net/npth/1.6-ppc32/Makefile	(revision 393)
+++ net/npth/1.6-ppc32/Makefile	(revision 394)
@@ -16,7 +16,7 @@
 SOURCE_REQUIRES    = sources/packages/n/npth
 
 REQUIRES           = net/npth/1.6
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: net/npth/1.6-x86_32/Makefile
===================================================================
--- net/npth/1.6-x86_32/Makefile	(revision 393)
+++ net/npth/1.6-x86_32/Makefile	(revision 394)
@@ -13,7 +13,7 @@
 SOURCE_REQUIRES    = sources/packages/n/npth
 
 REQUIRES           = net/npth/1.6
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: net/nspr/4.35/Makefile
===================================================================
--- net/nspr/4.35/Makefile	(revision 393)
+++ net/nspr/4.35/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/n/mozilla-nspr
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: net/nss-mdns/0.15.1/Makefile
===================================================================
--- net/nss-mdns/0.15.1/Makefile	(revision 393)
+++ net/nss-mdns/0.15.1/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/n/nss-mdns
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: net/openssl/1.1.1r/Makefile
===================================================================
--- net/openssl/1.1.1r/Makefile	(revision 393)
+++ net/openssl/1.1.1r/Makefile	(revision 394)
@@ -61,7 +61,7 @@
 SOURCE_REQUIRES    = sources/packages/n/openssl
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
 REQUIRES           = libs/zlib/1.2.13
 REQUIRES          += libs/gmp/6.2.1
Index: net/openssl10/1.0.2u/Makefile
===================================================================
--- net/openssl10/1.0.2u/Makefile	(revision 393)
+++ net/openssl10/1.0.2u/Makefile	(revision 394)
@@ -63,7 +63,7 @@
 SOURCE_REQUIRES    = sources/packages/n/openssl10
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
 REQUIRES           = libs/zlib/1.2.13
 REQUIRES          += libs/gmp/6.2.1
Index: net/rfkill/1.0/Makefile
===================================================================
--- net/rfkill/1.0/Makefile	(revision 393)
+++ net/rfkill/1.0/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/n/rfkill
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: net/rpcsvc-proto/1.4.2/Makefile
===================================================================
--- net/rpcsvc-proto/1.4.2/Makefile	(revision 393)
+++ net/rpcsvc-proto/1.4.2/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/n/rpcsvc-proto
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: net/webrtc-audio-processing/0.3.1/Makefile
===================================================================
--- net/webrtc-audio-processing/0.3.1/Makefile	(revision 393)
+++ net/webrtc-audio-processing/0.3.1/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/n/webrtc-audio-processing
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: net/wireless-tools/30/Makefile
===================================================================
--- net/wireless-tools/30/Makefile	(revision 393)
+++ net/wireless-tools/30/Makefile	(revision 394)
@@ -61,9 +61,9 @@
 SOURCE_REQUIRES    = sources/packages/n/wireless-tools
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: products/base/Makefile
===================================================================
--- products/base/Makefile	(revision 393)
+++ products/base/Makefile	(revision 394)
@@ -115,22 +115,22 @@
 # └── base/radix-system
 #     └── dev/kernel-headers
 #         └── dev/gcc-runtime
-#             ├── libs/glibc/2.36
-#             │   ├── libs/glibc/2.36-i18n
-#             │   │   └── libs/glibc/2.36-zoneinfo/2023c ■
+#             ├── libs/glibc/2.40
+#             │   ├── libs/glibc/2.40-i18n
+#             │   │   └── libs/glibc/2.40-zoneinfo/2023c ■
 #             │   │
-#             │   ├── libs/glibc/2.36-ppc32
-#             │   └── libs/glibc/2.36-x86_32
+#             │   ├── libs/glibc/2.40-ppc32
+#             │   └── libs/glibc/2.40-x86_32
 #             │
 #            ...
 #
 
-REQUIRES += libs/glibc/2.37-zoneinfo/2023c
+REQUIRES += libs/glibc/2.40-zoneinfo/2023c
 ifneq ($(filter $(TOOLCHAIN),$(TOOLCHAIN_POWER8_GLIBC) $(TOOLCHAIN_POWER9_GLIBC)),)
-REQUIRES += libs/glibc/2.37-ppc32
+REQUIRES += libs/glibc/2.40-ppc32
 endif
 ifneq ($(filter $(TOOLCHAIN),$(TOOLCHAIN_X86_64_GLIBC)),)
-REQUIRES += libs/glibc/2.37-x86_32
+REQUIRES += libs/glibc/2.40-x86_32
 endif
 
 #            ...
Index: secure/pam/1.5.1/Makefile
===================================================================
--- secure/pam/1.5.1/Makefile	(revision 393)
+++ secure/pam/1.5.1/Makefile	(revision 394)
@@ -62,9 +62,9 @@
 SOURCE_REQUIRES   += sources/packages/s/pam-redhat
 
 ifeq ($(__USE_BUILT_GCC_LIBS__),yes)
-REQUIRES           = dev/gcc/12.2.0
+REQUIRES           = dev/gcc/14.2.0
 else
-REQUIRES           = libs/glibc/2.37
+REQUIRES           = libs/glibc/2.40
 endif
 
 # ======= __END_OF_REQUIRES__ =======
Index: secure/pam/1.5.1-ppc32/Makefile
===================================================================
--- secure/pam/1.5.1-ppc32/Makefile	(revision 393)
+++ secure/pam/1.5.1-ppc32/Makefile	(revision 394)
@@ -17,7 +17,7 @@
 SOURCE_REQUIRES   += sources/packages/s/pam-redhat
 
 REQUIRES           = secure/pam/1.5.1
-REQUIRES          += libs/glibc/2.37-ppc32
+REQUIRES          += libs/glibc/2.40-ppc32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: secure/pam/1.5.1-x86_32/Makefile
===================================================================
--- secure/pam/1.5.1-x86_32/Makefile	(revision 393)
+++ secure/pam/1.5.1-x86_32/Makefile	(revision 394)
@@ -14,7 +14,7 @@
 SOURCE_REQUIRES   += sources/packages/s/pam-redhat
 
 REQUIRES           = secure/pam/1.5.1
-REQUIRES          += libs/glibc/2.37-x86_32
+REQUIRES          += libs/glibc/2.40-x86_32
 
 # ======= __END_OF_REQUIRES__ =======
 
Index: sources/GNU/glibc/2.37/create-2.37-en_US-no-am-pm-patch/file.list
===================================================================
--- sources/GNU/glibc/2.37/create-2.37-en_US-no-am-pm-patch/file.list	(revision 393)
+++ sources/GNU/glibc/2.37/create-2.37-en_US-no-am-pm-patch/file.list	(nonexistent)
@@ -1 +0,0 @@
-glibc-2.37/localedata/locales/en_US
Index: sources/GNU/glibc/2.37/create-2.37-en_US-no-am-pm-patch/create.patch.sh
===================================================================
--- sources/GNU/glibc/2.37/create-2.37-en_US-no-am-pm-patch/create.patch.sh	(revision 393)
+++ sources/GNU/glibc/2.37/create-2.37-en_US-no-am-pm-patch/create.patch.sh	(nonexistent)
@@ -1,15 +0,0 @@
-#!/bin/bash
-
-VERSION=2.37
-
-tar --files-from=file.list -xJvf ../glibc-$VERSION.tar.xz
-mv glibc-$VERSION glibc-$VERSION-orig
-
-cp -rf ./glibc-$VERSION-new ./glibc-$VERSION
-
-diff --unified -Nr  glibc-$VERSION-orig  glibc-$VERSION > glibc-$VERSION-en_US-no-am-pm.patch
-
-mv glibc-$VERSION-en_US-no-am-pm.patch ../patches
-
-rm -rf ./glibc-$VERSION
-rm -rf ./glibc-$VERSION-orig

Property changes on: sources/GNU/glibc/2.37/create-2.37-en_US-no-am-pm-patch/create.patch.sh
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: sources/GNU/glibc/2.37/create-2.37-en_US-no-am-pm-patch/glibc-2.37-new/localedata/locales/en_US
===================================================================
--- sources/GNU/glibc/2.37/create-2.37-en_US-no-am-pm-patch/glibc-2.37-new/localedata/locales/en_US	(revision 393)
+++ sources/GNU/glibc/2.37/create-2.37-en_US-no-am-pm-patch/glibc-2.37-new/localedata/locales/en_US	(nonexistent)
@@ -1,179 +0,0 @@
-comment_char %
-escape_char /
-
-% This file is part of the GNU C Library and contains locale data.
-% The Free Software Foundation does not claim any copyright interest
-% in the locale data contained in this file.  The foregoing does not
-% affect the license of the GNU C Library as a whole.  It does not
-% exempt you from the conditions of the license if your use would
-% otherwise be governed by that license.
-
-% Locale for English locale in the USA
-
-LC_IDENTIFICATION
-title      "English locale for the USA"
-source     "Free Software Foundation, Inc."
-address    "https:////www.gnu.org//software//libc//"
-contact    ""
-email      "bug-glibc-locales@gnu.org"
-tel        ""
-fax        ""
-language   "American English"
-territory  "United States"
-revision   "1.0"
-date       "2000-06-24"
-
-category "i18n:2012";LC_IDENTIFICATION
-category "i18n:2012";LC_CTYPE
-category "i18n:2012";LC_COLLATE
-category "i18n:2012";LC_TIME
-category "i18n:2012";LC_NUMERIC
-category "i18n:2012";LC_MONETARY
-category "i18n:2012";LC_MESSAGES
-category "i18n:2012";LC_PAPER
-category "i18n:2012";LC_NAME
-category "i18n:2012";LC_ADDRESS
-category "i18n:2012";LC_TELEPHONE
-category "i18n:2012";LC_MEASUREMENT
-END LC_IDENTIFICATION
-
-LC_CTYPE
-copy "en_GB"
-END LC_CTYPE
-
-LC_COLLATE
-
-% Copy the template from ISO/IEC 14651
-copy "iso14651_t1"
-
-END LC_COLLATE
-
-LC_MONETARY
-int_curr_symbol     "USD "
-currency_symbol     "$"
-mon_decimal_point   "."
-mon_thousands_sep   ","
-mon_grouping        3;3
-positive_sign       ""
-negative_sign       "-"
-int_frac_digits     2
-frac_digits         2
-p_cs_precedes       1
-int_p_sep_by_space  1
-p_sep_by_space      0
-n_cs_precedes       1
-int_n_sep_by_space  1
-n_sep_by_space      0
-p_sign_posn         1
-n_sign_posn         1
-%
-END LC_MONETARY
-
-LC_NUMERIC
-decimal_point   "."
-thousands_sep   ","
-grouping        3;3
-END LC_NUMERIC
-
-LC_TIME
-abday	"Sun";"Mon";"Tue";"Wed";"Thu";"Fri";"Sat"
-day	"Sunday";/
-	"Monday";/
-	"Tuesday";/
-	"Wednesday";/
-	"Thursday";/
-	"Friday";/
-	"Saturday"
-
-week 7;19971130;1
-abmon	"Jan";"Feb";/
-	"Mar";"Apr";/
-	"May";"Jun";/
-	"Jul";"Aug";/
-	"Sep";"Oct";/
-	"Nov";"Dec"
-mon	"January";/
-	"February";/
-	"March";/
-	"April";/
-	"May";/
-	"June";/
-	"July";/
-	"August";/
-	"September";/
-	"October";/
-	"November";/
-	"December"
-% Appropriate date and time representation (%c)
-d_t_fmt "%a %d %b %Y %r %Z"
-%
-% Appropriate date representation (%x)
-d_fmt   "%m//%d//%Y"
-%
-% Appropriate time representation (%X)
-t_fmt   "%r"
-%
-% Appropriate AM/PM time representation (%r)
-t_fmt_ampm "%I:%M:%S %p"
-%
-% Appropriate date and time representation for date(1).  This is
-% different from d_t_fmt for historical reasons and has been different
-% since 2000 when date_fmt was added as a GNU extension.  At the end
-% of 2018 it was adjusted to use 12H time (bug 24046) instead of 24H.
-% [ Slackware editor's note - no thank you, US users
-% of UNIX-like systems expect a 24 hour clock, just
-% like users in the vast majority of other locales. ]
-%date_fmt "%a %d %b %Y %r %Z"
-%
-% Strings for AM/PM
-%
-am_pm	"AM";"PM"
-END LC_TIME
-
-LC_MESSAGES
-yesexpr "^[+1yY]"
-noexpr  "^[-0nN]"
-yesstr  "yes"
-nostr   "no"
-END LC_MESSAGES
-
-LC_PAPER
-height   279
-width    216
-END LC_PAPER
-
-LC_NAME
-name_fmt    "%d%t%g%t%m%t%f"
-name_miss   "Miss."
-name_mr     "Mr."
-name_mrs    "Mrs."
-name_ms     "Ms."
-END LC_NAME
-
-
-LC_ADDRESS
-postal_fmt    "%a%N%f%N%d%N%b%N%h %s %e %r%N%T, %S %z%N%c%N"
-country_name "United States"
-country_post  "USA"
-country_ab2   "US"
-country_ab3   "USA"
-country_num   840
-country_car   "USA"
-country_isbn  0
-lang_name     "English"
-lang_ab      "en"
-lang_term    "eng"
-lang_lib    "eng"
-END LC_ADDRESS
-
-LC_TELEPHONE
-tel_int_fmt    "+%c (%a) %l"
-tel_dom_fmt    "(%a) %l"
-int_select     "11"
-int_prefix     "1"
-END LC_TELEPHONE
-
-LC_MEASUREMENT
-% US customary units.
-measurement 2
-END LC_MEASUREMENT
Index: sources/GNU/glibc/2.37/create-2.37-ppc64-interpreter-patch/file.list
===================================================================
--- sources/GNU/glibc/2.37/create-2.37-ppc64-interpreter-patch/file.list	(revision 393)
+++ sources/GNU/glibc/2.37/create-2.37-ppc64-interpreter-patch/file.list	(nonexistent)
@@ -1 +0,0 @@
-glibc-2.37/sysdeps/unix/sysv/linux/powerpc/ldd-rewrite.sed
Index: sources/GNU/glibc/2.37/create-2.37-ppc64-interpreter-patch/create.patch.sh
===================================================================
--- sources/GNU/glibc/2.37/create-2.37-ppc64-interpreter-patch/create.patch.sh	(revision 393)
+++ sources/GNU/glibc/2.37/create-2.37-ppc64-interpreter-patch/create.patch.sh	(nonexistent)
@@ -1,15 +0,0 @@
-#!/bin/bash
-
-VERSION=2.37
-
-tar --files-from=file.list -xJvf ../glibc-$VERSION.tar.xz
-mv glibc-$VERSION glibc-$VERSION-orig
-
-cp -rf ./glibc-$VERSION-new ./glibc-$VERSION
-
-diff --unified -Nr  glibc-$VERSION-orig  glibc-$VERSION > glibc-$VERSION-ppc64-interpreter.patch
-
-mv glibc-$VERSION-ppc64-interpreter.patch ../patches
-
-rm -rf ./glibc-$VERSION
-rm -rf ./glibc-$VERSION-orig

Property changes on: sources/GNU/glibc/2.37/create-2.37-ppc64-interpreter-patch/create.patch.sh
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: sources/GNU/glibc/2.37/create-2.37-ppc64-interpreter-patch/glibc-2.37-new/sysdeps/unix/sysv/linux/powerpc/ldd-rewrite.sed
===================================================================
--- sources/GNU/glibc/2.37/create-2.37-ppc64-interpreter-patch/glibc-2.37-new/sysdeps/unix/sysv/linux/powerpc/ldd-rewrite.sed	(revision 393)
+++ sources/GNU/glibc/2.37/create-2.37-ppc64-interpreter-patch/glibc-2.37-new/sysdeps/unix/sysv/linux/powerpc/ldd-rewrite.sed	(nonexistent)
@@ -1,12 +0,0 @@
-# ldd is generated from elf/ldd.bash.in with the name
-# of ld.so as generated in Makeconfig
-
-# that name is replaced by a pair referring to both
-# the 32bit and 64bit dynamic linker.
-
-# /lib(64|)/*(64|).so.(1|2) is replaced with /lib64/*64.so.(1|2) and /lib/*.so.1
-# this works for /lib/ld64.so.x and /lib32/ld.so.x as input
-s_lib64_lib_
-s_64\.so_\.so_
-s_^RTLDLIST=\(.*lib\)\(\|64\|32\)\(/[^/]*\)\(\.so\.[0-9.]*\)[[:blank:]]*$_RTLDLIST="\1\364\4 \132\3\.so\.1"_
-
Index: sources/GNU/glibc/2.37/create-2.37-reenable-DT-HASH-patch/file.list
===================================================================
--- sources/GNU/glibc/2.37/create-2.37-reenable-DT-HASH-patch/file.list	(revision 393)
+++ sources/GNU/glibc/2.37/create-2.37-reenable-DT-HASH-patch/file.list	(nonexistent)
@@ -1,5 +0,0 @@
-glibc-2.37/Makeconfig
-glibc-2.37/Makerules
-glibc-2.37/config.make.in
-glibc-2.37/configure
-glibc-2.37/configure.ac
Index: sources/GNU/glibc/2.37/create-2.37-reenable-DT-HASH-patch/create.patch.sh
===================================================================
--- sources/GNU/glibc/2.37/create-2.37-reenable-DT-HASH-patch/create.patch.sh	(revision 393)
+++ sources/GNU/glibc/2.37/create-2.37-reenable-DT-HASH-patch/create.patch.sh	(nonexistent)
@@ -1,15 +0,0 @@
-#!/bin/bash
-
-VERSION=2.37
-
-tar --files-from=file.list -xJvf ../glibc-$VERSION.tar.xz
-mv glibc-$VERSION glibc-$VERSION-orig
-
-cp -rf ./glibc-$VERSION-new ./glibc-$VERSION
-
-diff --unified -Nr  glibc-$VERSION-orig  glibc-$VERSION > glibc-$VERSION-reenable-DT-HASH.patch
-
-mv glibc-$VERSION-reenable-DT-HASH.patch ../patches
-
-rm -rf ./glibc-$VERSION
-rm -rf ./glibc-$VERSION-orig

Property changes on: sources/GNU/glibc/2.37/create-2.37-reenable-DT-HASH-patch/create.patch.sh
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: sources/GNU/glibc/2.37/create-2.37-reenable-DT-HASH-patch/glibc-2.37-new/configure
===================================================================
--- sources/GNU/glibc/2.37/create-2.37-reenable-DT-HASH-patch/glibc-2.37-new/configure	(revision 393)
+++ sources/GNU/glibc/2.37/create-2.37-reenable-DT-HASH-patch/glibc-2.37-new/configure	(nonexistent)
@@ -1,8244 +0,0 @@
-#! /bin/sh
-# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for GNU C Library (see version.h).
-#
-# Report bugs to <https://sourceware.org/bugzilla/>.
-#
-#
-# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
-#
-#
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-## -------------------- ##
-## M4sh Initialization. ##
-## -------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
-  emulate sh
-  NULLCMD=:
-  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-  setopt NO_GLOB_SUBST
-else
-  case `(set -o) 2>/dev/null` in #(
-  *posix*) :
-    set -o posix ;; #(
-  *) :
-     ;;
-esac
-fi
-
-
-as_nl='
-'
-export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
-    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='print -r --'
-  as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='printf %s\n'
-  as_echo_n='printf %s'
-else
-  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
-    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
-    as_echo_n='/usr/ucb/echo -n'
-  else
-    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
-    as_echo_n_body='eval
-      arg=$1;
-      case $arg in #(
-      *"$as_nl"*)
-	expr "X$arg" : "X\\(.*\\)$as_nl";
-	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
-      esac;
-      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
-    '
-    export as_echo_n_body
-    as_echo_n='sh -c $as_echo_n_body as_echo'
-  fi
-  export as_echo_body
-  as_echo='sh -c $as_echo_body as_echo'
-fi
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  PATH_SEPARATOR=:
-  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
-    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
-      PATH_SEPARATOR=';'
-  }
-fi
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.  Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" ""	$as_nl"
-
-# Find who we are.  Look in the path if we contain no directory separator.
-as_myself=
-case $0 in #((
-  *[\\/]* ) as_myself=$0 ;;
-  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-  done
-IFS=$as_save_IFS
-
-     ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
-  as_myself=$0
-fi
-if test ! -f "$as_myself"; then
-  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
-  exit 1
-fi
-
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there.  '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
-  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-# Use a proper internal environment variable to ensure we don't fall
-  # into an infinite loop, continuously re-executing ourselves.
-  if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
-    _as_can_reexec=no; export _as_can_reexec;
-    # We cannot yet assume a decent shell, so we have to provide a
-# neutralization value for shells without unset; and this also
-# works around shells that cannot unset nonexistent variables.
-# Preserve -v and -x to the replacement shell.
-BASH_ENV=/dev/null
-ENV=/dev/null
-(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-case $- in # ((((
-  *v*x* | *x*v* ) as_opts=-vx ;;
-  *v* ) as_opts=-v ;;
-  *x* ) as_opts=-x ;;
-  * ) as_opts= ;;
-esac
-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
-# Admittedly, this is quite paranoid, since all the known shells bail
-# out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
-as_fn_exit 255
-  fi
-  # We don't want this to propagate to other subprocesses.
-          { _as_can_reexec=; unset _as_can_reexec;}
-if test "x$CONFIG_SHELL" = x; then
-  as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
-  emulate sh
-  NULLCMD=:
-  # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '\${1+\"\$@\"}'='\"\$@\"'
-  setopt NO_GLOB_SUBST
-else
-  case \`(set -o) 2>/dev/null\` in #(
-  *posix*) :
-    set -o posix ;; #(
-  *) :
-     ;;
-esac
-fi
-"
-  as_required="as_fn_return () { (exit \$1); }
-as_fn_success () { as_fn_return 0; }
-as_fn_failure () { as_fn_return 1; }
-as_fn_ret_success () { return 0; }
-as_fn_ret_failure () { return 1; }
-
-exitcode=0
-as_fn_success || { exitcode=1; echo as_fn_success failed.; }
-as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
-as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
-as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
-if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
-
-else
-  exitcode=1; echo positional parameters were not saved.
-fi
-test x\$exitcode = x0 || exit 1
-test -x / || exit 1"
-  as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
-  as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
-  eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
-  test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1"
-  if (eval "$as_required") 2>/dev/null; then :
-  as_have_required=yes
-else
-  as_have_required=no
-fi
-  if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
-
-else
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-as_found=false
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  as_found=:
-  case $as_dir in #(
-	 /*)
-	   for as_base in sh bash ksh sh5; do
-	     # Try only shells that exist, to save several forks.
-	     as_shell=$as_dir/$as_base
-	     if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
-		    { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
-  CONFIG_SHELL=$as_shell as_have_required=yes
-		   if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
-  break 2
-fi
-fi
-	   done;;
-       esac
-  as_found=false
-done
-$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
-	      { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
-  CONFIG_SHELL=$SHELL as_have_required=yes
-fi; }
-IFS=$as_save_IFS
-
-
-      if test "x$CONFIG_SHELL" != x; then :
-  export CONFIG_SHELL
-             # We cannot yet assume a decent shell, so we have to provide a
-# neutralization value for shells without unset; and this also
-# works around shells that cannot unset nonexistent variables.
-# Preserve -v and -x to the replacement shell.
-BASH_ENV=/dev/null
-ENV=/dev/null
-(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-case $- in # ((((
-  *v*x* | *x*v* ) as_opts=-vx ;;
-  *v* ) as_opts=-v ;;
-  *x* ) as_opts=-x ;;
-  * ) as_opts= ;;
-esac
-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
-# Admittedly, this is quite paranoid, since all the known shells bail
-# out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
-exit 255
-fi
-
-    if test x$as_have_required = xno; then :
-  $as_echo "$0: This script requires a shell more modern than all"
-  $as_echo "$0: the shells that I found on your system."
-  if test x${ZSH_VERSION+set} = xset ; then
-    $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
-    $as_echo "$0: be upgraded to zsh 4.3.4 or later."
-  else
-    $as_echo "$0: Please tell bug-autoconf@gnu.org and
-$0: https://sourceware.org/bugzilla/ about your system,
-$0: including any error possibly output before this
-$0: message. Then install a modern shell, or manually run
-$0: the script under such a shell if you do have one."
-  fi
-  exit 1
-fi
-fi
-fi
-SHELL=${CONFIG_SHELL-/bin/sh}
-export SHELL
-# Unset more variables known to interfere with behavior of common tools.
-CLICOLOR_FORCE= GREP_OPTIONS=
-unset CLICOLOR_FORCE GREP_OPTIONS
-
-## --------------------- ##
-## M4sh Shell Functions. ##
-## --------------------- ##
-# as_fn_unset VAR
-# ---------------
-# Portably unset VAR.
-as_fn_unset ()
-{
-  { eval $1=; unset $1;}
-}
-as_unset=as_fn_unset
-
-# as_fn_set_status STATUS
-# -----------------------
-# Set $? to STATUS, without forking.
-as_fn_set_status ()
-{
-  return $1
-} # as_fn_set_status
-
-# as_fn_exit STATUS
-# -----------------
-# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
-as_fn_exit ()
-{
-  set +e
-  as_fn_set_status $1
-  exit $1
-} # as_fn_exit
-
-# as_fn_mkdir_p
-# -------------
-# Create "$as_dir" as a directory, including parents if necessary.
-as_fn_mkdir_p ()
-{
-
-  case $as_dir in #(
-  -*) as_dir=./$as_dir;;
-  esac
-  test -d "$as_dir" || eval $as_mkdir_p || {
-    as_dirs=
-    while :; do
-      case $as_dir in #(
-      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
-      *) as_qdir=$as_dir;;
-      esac
-      as_dirs="'$as_qdir' $as_dirs"
-      as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$as_dir" : 'X\(//\)[^/]' \| \
-	 X"$as_dir" : 'X\(//\)$' \| \
-	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-      test -d "$as_dir" && break
-    done
-    test -z "$as_dirs" || eval "mkdir $as_dirs"
-  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
-
-
-} # as_fn_mkdir_p
-
-# as_fn_executable_p FILE
-# -----------------------
-# Test if FILE is an executable regular file.
-as_fn_executable_p ()
-{
-  test -f "$1" && test -x "$1"
-} # as_fn_executable_p
-# as_fn_append VAR VALUE
-# ----------------------
-# Append the text in VALUE to the end of the definition contained in VAR. Take
-# advantage of any shell optimizations that allow amortized linear growth over
-# repeated appends, instead of the typical quadratic growth present in naive
-# implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
-  eval 'as_fn_append ()
-  {
-    eval $1+=\$2
-  }'
-else
-  as_fn_append ()
-  {
-    eval $1=\$$1\$2
-  }
-fi # as_fn_append
-
-# as_fn_arith ARG...
-# ------------------
-# Perform arithmetic evaluation on the ARGs, and store the result in the
-# global $as_val. Take advantage of shells that can avoid forks. The arguments
-# must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
-  eval 'as_fn_arith ()
-  {
-    as_val=$(( $* ))
-  }'
-else
-  as_fn_arith ()
-  {
-    as_val=`expr "$@" || test $? -eq 1`
-  }
-fi # as_fn_arith
-
-
-# as_fn_error STATUS ERROR [LINENO LOG_FD]
-# ----------------------------------------
-# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
-# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with STATUS, using 1 if that was 0.
-as_fn_error ()
-{
-  as_status=$1; test $as_status -eq 0 && as_status=1
-  if test "$4"; then
-    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
-  fi
-  $as_echo "$as_me: error: $2" >&2
-  as_fn_exit $as_status
-} # as_fn_error
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
-   test "X`expr 00001 : '.*\(...\)'`" = X001; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
-  as_basename=basename
-else
-  as_basename=false
-fi
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
-  as_dirname=dirname
-else
-  as_dirname=false
-fi
-
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-
-  as_lineno_1=$LINENO as_lineno_1a=$LINENO
-  as_lineno_2=$LINENO as_lineno_2a=$LINENO
-  eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
-  test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
-  # Blame Lee E. McMahon (1931-1989) for sed's syntax.  :-)
-  sed -n '
-    p
-    /[$]LINENO/=
-  ' <$as_myself |
-    sed '
-      s/[$]LINENO.*/&-/
-      t lineno
-      b
-      :lineno
-      N
-      :loop
-      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
-      t loop
-      s/-\n.*//
-    ' >$as_me.lineno &&
-  chmod +x "$as_me.lineno" ||
-    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
-
-  # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
-  # already done that, so ensure we don't try to do so again and fall
-  # in an infinite loop.  This has already happened in practice.
-  _as_can_reexec=no; export _as_can_reexec
-  # Don't try to exec as it changes $[0], causing all sort of problems
-  # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensitive to this).
-  . "./$as_me.lineno"
-  # Exit status is that of the last command.
-  exit
-}
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in #(((((
--n*)
-  case `echo 'xy\c'` in
-  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
-  xy)  ECHO_C='\c';;
-  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
-       ECHO_T='	';;
-  esac;;
-*)
-  ECHO_N='-n';;
-esac
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
-  rm -f conf$$.dir/conf$$.file
-else
-  rm -f conf$$.dir
-  mkdir conf$$.dir 2>/dev/null
-fi
-if (echo >conf$$.file) 2>/dev/null; then
-  if ln -s conf$$.file conf$$ 2>/dev/null; then
-    as_ln_s='ln -s'
-    # ... but there are two gotchas:
-    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
-    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-    # In both cases, we have to default to `cp -pR'.
-    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
-      as_ln_s='cp -pR'
-  elif ln conf$$.file conf$$ 2>/dev/null; then
-    as_ln_s=ln
-  else
-    as_ln_s='cp -pR'
-  fi
-else
-  as_ln_s='cp -pR'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-if mkdir -p . 2>/dev/null; then
-  as_mkdir_p='mkdir -p "$as_dir"'
-else
-  test -d ./-p && rmdir ./-p
-  as_mkdir_p=false
-fi
-
-as_test_x='test -x'
-as_executable_p=as_fn_executable_p
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-test -n "$DJDIR" || exec 7<&0 </dev/null
-exec 6>&1
-
-# Name of the host.
-# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
-# so uname gets run too.
-ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
-
-#
-# Initializations.
-#
-ac_default_prefix=/usr/local
-ac_clean_files=
-ac_config_libobj_dir=.
-LIBOBJS=
-cross_compiling=no
-subdirs=
-MFLAGS=
-MAKEFLAGS=
-
-# Identity of this package.
-PACKAGE_NAME='GNU C Library'
-PACKAGE_TARNAME='glibc'
-PACKAGE_VERSION='(see version.h)'
-PACKAGE_STRING='GNU C Library (see version.h)'
-PACKAGE_BUGREPORT='https://sourceware.org/bugzilla/'
-PACKAGE_URL='https://www.gnu.org/software/glibc/'
-
-ac_unique_file="include/features.h"
-enable_option_checking=no
-ac_subst_vars='LTLIBOBJS
-LIBOBJS
-pthread_in_libc
-RELEASE
-VERSION
-mach_interface_list
-DEFINES
-static_nss
-profile
-libc_cv_multidir
-shared
-static
-ldd_rewrite_script
-use_ldconfig
-libc_cv_rootsbindir
-libc_cv_localstatedir
-libc_cv_sysconfdir
-libc_cv_complocaledir
-libc_cv_rtlddir
-libc_cv_slibdir
-use_nscd
-libc_cv_gcc_unwind_find_fde
-libc_extra_cppflags
-libc_extra_cflags
-libc_cv_cxx_thread_local
-CPPUNDEFS
-have_selinux
-have_libcap
-have_libaudit
-LIBGD
-libc_cv_cc_loop_to_function
-libc_cv_cc_submachine
-libc_cv_cc_nofma
-libc_cv_mtls_dialect_gnu2
-libc_cv_has_glob_dat
-libc_cv_hashstyle
-libc_cv_fpie
-libc_cv_z_execstack
-ASFLAGS_config
-libc_cv_cc_with_libunwind
-libc_cv_insert
-libc_cv_protected_data
-INSTALL_INFO
-PERL
-BASH_SHELL
-CXX_BITS_STD_ABS_H
-CXX_CMATH_HEADER
-CXX_CSTDLIB_HEADER
-CXX_SYSINCLUDES
-SYSINCLUDES
-sysnames
-submachine
-multi_arch
-libc_cv_textrel_ifunc
-no_stack_protector
-stack_protector
-libc_cv_ssp
-libc_cv_with_fp
-PYTHON
-PYTHON_PROG
-AUTOCONF
-BISON
-AWK
-SED
-MAKEINFO
-MSGFMT
-MAKE
-LD
-NM
-OBJDUMP
-READELF
-GPROF
-OBJCOPY
-AR
-LN_S
-INSTALL_DATA
-INSTALL_SCRIPT
-INSTALL_PROGRAM
-base_machine
-have_tunables
-build_pt_chown
-build_nscd
-libc_cv_static_nss_crypt
-libc_cv_nss_crypt
-build_crypt
-memory_tagging
-experimental_malloc
-enable_werror
-all_warnings
-force_install
-bindnow
-hardcoded_path_in_tests
-enable_timezone_tools
-rtld_early_cflags
-extra_nonshared_cflags
-use_default_link
-sysheaders
-ac_ct_CXX
-CXXFLAGS
-CXX
-CPP
-cross_compiling
-BUILD_CC
-OBJEXT
-ac_ct_CC
-CPPFLAGS
-LDFLAGS
-CFLAGS
-CC
-host_os
-host_vendor
-host_cpu
-host
-build_os
-build_vendor
-build_cpu
-build
-subdirs
-REPORT_BUGS_TEXI
-REPORT_BUGS_TO
-PKGVERSION_TEXI
-PKGVERSION
-target_alias
-host_alias
-build_alias
-LIBS
-ECHO_T
-ECHO_N
-ECHO_C
-DEFS
-mandir
-localedir
-libdir
-psdir
-pdfdir
-dvidir
-htmldir
-infodir
-docdir
-oldincludedir
-includedir
-localstatedir
-sharedstatedir
-sysconfdir
-datadir
-datarootdir
-libexecdir
-sbindir
-bindir
-program_transform_name
-prefix
-exec_prefix
-PACKAGE_URL
-PACKAGE_BUGREPORT
-PACKAGE_STRING
-PACKAGE_VERSION
-PACKAGE_TARNAME
-PACKAGE_NAME
-PATH_SEPARATOR
-SHELL'
-ac_subst_files=''
-ac_user_opts='
-enable_option_checking
-with_pkgversion
-with_bugurl
-with_gd
-with_gd_include
-with_gd_lib
-with_binutils
-with_selinux
-with_headers
-with_default_link
-with_nonshared_cflags
-with_rtld_early_cflags
-with_timeoutfactor
-enable_sanity_checks
-enable_shared
-enable_profile
-enable_default_pie
-enable_timezone_tools
-enable_hardcoded_path_in_tests
-enable_hidden_plt
-enable_bind_now
-enable_stack_protector
-enable_static_nss
-enable_force_install
-enable_maintainer_mode
-enable_kernel
-enable_all_warnings
-enable_werror
-enable_multi_arch
-enable_experimental_malloc
-enable_memory_tagging
-enable_crypt
-enable_nss_crypt
-enable_systemtap
-enable_build_nscd
-enable_nscd
-enable_pt_chown
-enable_tunables
-enable_mathvec
-enable_cet
-enable_scv
-with_cpu
-'
-      ac_precious_vars='build_alias
-host_alias
-target_alias
-CC
-CFLAGS
-LDFLAGS
-LIBS
-CPPFLAGS
-CPP
-CXX
-CXXFLAGS
-CCC'
-ac_subdirs_all=''
-
-# Initialize some variables set by options.
-ac_init_help=
-ac_init_version=false
-ac_unrecognized_opts=
-ac_unrecognized_sep=
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-cache_file=/dev/null
-exec_prefix=NONE
-no_create=
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-verbose=
-x_includes=NONE
-x_libraries=NONE
-
-# Installation directory options.
-# These are left unexpanded so users can "make install exec_prefix=/foo"
-# and all the variables that are supposed to be based on exec_prefix
-# by default will actually change.
-# Use braces instead of parens because sh, perl, etc. also accept them.
-# (The list follows the same order as the GNU Coding Standards.)
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datarootdir='${prefix}/share'
-datadir='${datarootdir}'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
-infodir='${datarootdir}/info'
-htmldir='${docdir}'
-dvidir='${docdir}'
-pdfdir='${docdir}'
-psdir='${docdir}'
-libdir='${exec_prefix}/lib'
-localedir='${datarootdir}/locale'
-mandir='${datarootdir}/man'
-
-ac_prev=
-ac_dashdash=
-for ac_option
-do
-  # If the previous option needs an argument, assign it.
-  if test -n "$ac_prev"; then
-    eval $ac_prev=\$ac_option
-    ac_prev=
-    continue
-  fi
-
-  case $ac_option in
-  *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
-  *=)   ac_optarg= ;;
-  *)    ac_optarg=yes ;;
-  esac
-
-  # Accept the important Cygnus configure options, so we can diagnose typos.
-
-  case $ac_dashdash$ac_option in
-  --)
-    ac_dashdash=yes ;;
-
-  -bindir | --bindir | --bindi | --bind | --bin | --bi)
-    ac_prev=bindir ;;
-  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
-    bindir=$ac_optarg ;;
-
-  -build | --build | --buil | --bui | --bu)
-    ac_prev=build_alias ;;
-  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
-    build_alias=$ac_optarg ;;
-
-  -cache-file | --cache-file | --cache-fil | --cache-fi \
-  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
-    ac_prev=cache_file ;;
-  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
-  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
-    cache_file=$ac_optarg ;;
-
-  --config-cache | -C)
-    cache_file=config.cache ;;
-
-  -datadir | --datadir | --datadi | --datad)
-    ac_prev=datadir ;;
-  -datadir=* | --datadir=* | --datadi=* | --datad=*)
-    datadir=$ac_optarg ;;
-
-  -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
-  | --dataroo | --dataro | --datar)
-    ac_prev=datarootdir ;;
-  -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
-  | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
-    datarootdir=$ac_optarg ;;
-
-  -disable-* | --disable-*)
-    ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid feature name: $ac_useropt"
-    ac_useropt_orig=$ac_useropt
-    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
-    case $ac_user_opts in
-      *"
-"enable_$ac_useropt"
-"*) ;;
-      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
-	 ac_unrecognized_sep=', ';;
-    esac
-    eval enable_$ac_useropt=no ;;
-
-  -docdir | --docdir | --docdi | --doc | --do)
-    ac_prev=docdir ;;
-  -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
-    docdir=$ac_optarg ;;
-
-  -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
-    ac_prev=dvidir ;;
-  -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
-    dvidir=$ac_optarg ;;
-
-  -enable-* | --enable-*)
-    ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid feature name: $ac_useropt"
-    ac_useropt_orig=$ac_useropt
-    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
-    case $ac_user_opts in
-      *"
-"enable_$ac_useropt"
-"*) ;;
-      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
-	 ac_unrecognized_sep=', ';;
-    esac
-    eval enable_$ac_useropt=\$ac_optarg ;;
-
-  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
-  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
-  | --exec | --exe | --ex)
-    ac_prev=exec_prefix ;;
-  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
-  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
-  | --exec=* | --exe=* | --ex=*)
-    exec_prefix=$ac_optarg ;;
-
-  -gas | --gas | --ga | --g)
-    # Obsolete; use --with-gas.
-    with_gas=yes ;;
-
-  -help | --help | --hel | --he | -h)
-    ac_init_help=long ;;
-  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
-    ac_init_help=recursive ;;
-  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
-    ac_init_help=short ;;
-
-  -host | --host | --hos | --ho)
-    ac_prev=host_alias ;;
-  -host=* | --host=* | --hos=* | --ho=*)
-    host_alias=$ac_optarg ;;
-
-  -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
-    ac_prev=htmldir ;;
-  -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
-  | --ht=*)
-    htmldir=$ac_optarg ;;
-
-  -includedir | --includedir | --includedi | --included | --include \
-  | --includ | --inclu | --incl | --inc)
-    ac_prev=includedir ;;
-  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
-  | --includ=* | --inclu=* | --incl=* | --inc=*)
-    includedir=$ac_optarg ;;
-
-  -infodir | --infodir | --infodi | --infod | --info | --inf)
-    ac_prev=infodir ;;
-  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
-    infodir=$ac_optarg ;;
-
-  -libdir | --libdir | --libdi | --libd)
-    ac_prev=libdir ;;
-  -libdir=* | --libdir=* | --libdi=* | --libd=*)
-    libdir=$ac_optarg ;;
-
-  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
-  | --libexe | --libex | --libe)
-    ac_prev=libexecdir ;;
-  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
-  | --libexe=* | --libex=* | --libe=*)
-    libexecdir=$ac_optarg ;;
-
-  -localedir | --localedir | --localedi | --localed | --locale)
-    ac_prev=localedir ;;
-  -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
-    localedir=$ac_optarg ;;
-
-  -localstatedir | --localstatedir | --localstatedi | --localstated \
-  | --localstate | --localstat | --localsta | --localst | --locals)
-    ac_prev=localstatedir ;;
-  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
-  | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
-    localstatedir=$ac_optarg ;;
-
-  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
-    ac_prev=mandir ;;
-  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
-    mandir=$ac_optarg ;;
-
-  -nfp | --nfp | --nf)
-    # Obsolete; use --without-fp.
-    with_fp=no ;;
-
-  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
-  | --no-cr | --no-c | -n)
-    no_create=yes ;;
-
-  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
-  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
-    no_recursion=yes ;;
-
-  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
-  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
-  | --oldin | --oldi | --old | --ol | --o)
-    ac_prev=oldincludedir ;;
-  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
-  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
-  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
-    oldincludedir=$ac_optarg ;;
-
-  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
-    ac_prev=prefix ;;
-  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
-    prefix=$ac_optarg ;;
-
-  -program-prefix | --program-prefix | --program-prefi | --program-pref \
-  | --program-pre | --program-pr | --program-p)
-    ac_prev=program_prefix ;;
-  -program-prefix=* | --program-prefix=* | --program-prefi=* \
-  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
-    program_prefix=$ac_optarg ;;
-
-  -program-suffix | --program-suffix | --program-suffi | --program-suff \
-  | --program-suf | --program-su | --program-s)
-    ac_prev=program_suffix ;;
-  -program-suffix=* | --program-suffix=* | --program-suffi=* \
-  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
-    program_suffix=$ac_optarg ;;
-
-  -program-transform-name | --program-transform-name \
-  | --program-transform-nam | --program-transform-na \
-  | --program-transform-n | --program-transform- \
-  | --program-transform | --program-transfor \
-  | --program-transfo | --program-transf \
-  | --program-trans | --program-tran \
-  | --progr-tra | --program-tr | --program-t)
-    ac_prev=program_transform_name ;;
-  -program-transform-name=* | --program-transform-name=* \
-  | --program-transform-nam=* | --program-transform-na=* \
-  | --program-transform-n=* | --program-transform-=* \
-  | --program-transform=* | --program-transfor=* \
-  | --program-transfo=* | --program-transf=* \
-  | --program-trans=* | --program-tran=* \
-  | --progr-tra=* | --program-tr=* | --program-t=*)
-    program_transform_name=$ac_optarg ;;
-
-  -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
-    ac_prev=pdfdir ;;
-  -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
-    pdfdir=$ac_optarg ;;
-
-  -psdir | --psdir | --psdi | --psd | --ps)
-    ac_prev=psdir ;;
-  -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
-    psdir=$ac_optarg ;;
-
-  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-  | -silent | --silent | --silen | --sile | --sil)
-    silent=yes ;;
-
-  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
-    ac_prev=sbindir ;;
-  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
-  | --sbi=* | --sb=*)
-    sbindir=$ac_optarg ;;
-
-  -sharedstatedir | --sharedstatedir | --sharedstatedi \
-  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
-  | --sharedst | --shareds | --shared | --share | --shar \
-  | --sha | --sh)
-    ac_prev=sharedstatedir ;;
-  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
-  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
-  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
-  | --sha=* | --sh=*)
-    sharedstatedir=$ac_optarg ;;
-
-  -site | --site | --sit)
-    ac_prev=site ;;
-  -site=* | --site=* | --sit=*)
-    site=$ac_optarg ;;
-
-  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
-    ac_prev=srcdir ;;
-  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
-    srcdir=$ac_optarg ;;
-
-  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
-  | --syscon | --sysco | --sysc | --sys | --sy)
-    ac_prev=sysconfdir ;;
-  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
-  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
-    sysconfdir=$ac_optarg ;;
-
-  -target | --target | --targe | --targ | --tar | --ta | --t)
-    ac_prev=target_alias ;;
-  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
-    target_alias=$ac_optarg ;;
-
-  -v | -verbose | --verbose | --verbos | --verbo | --verb)
-    verbose=yes ;;
-
-  -version | --version | --versio | --versi | --vers | -V)
-    ac_init_version=: ;;
-
-  -with-* | --with-*)
-    ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid package name: $ac_useropt"
-    ac_useropt_orig=$ac_useropt
-    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
-    case $ac_user_opts in
-      *"
-"with_$ac_useropt"
-"*) ;;
-      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
-	 ac_unrecognized_sep=', ';;
-    esac
-    eval with_$ac_useropt=\$ac_optarg ;;
-
-  -without-* | --without-*)
-    ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid package name: $ac_useropt"
-    ac_useropt_orig=$ac_useropt
-    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
-    case $ac_user_opts in
-      *"
-"with_$ac_useropt"
-"*) ;;
-      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
-	 ac_unrecognized_sep=', ';;
-    esac
-    eval with_$ac_useropt=no ;;
-
-  --x)
-    # Obsolete; use --with-x.
-    with_x=yes ;;
-
-  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
-  | --x-incl | --x-inc | --x-in | --x-i)
-    ac_prev=x_includes ;;
-  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
-  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
-    x_includes=$ac_optarg ;;
-
-  -x-libraries | --x-libraries | --x-librarie | --x-librari \
-  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
-    ac_prev=x_libraries ;;
-  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
-  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
-    x_libraries=$ac_optarg ;;
-
-  -*) as_fn_error $? "unrecognized option: \`$ac_option'
-Try \`$0 --help' for more information"
-    ;;
-
-  *=*)
-    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
-    # Reject names that are not valid shell variable names.
-    case $ac_envvar in #(
-      '' | [0-9]* | *[!_$as_cr_alnum]* )
-      as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
-    esac
-    eval $ac_envvar=\$ac_optarg
-    export $ac_envvar ;;
-
-  *)
-    # FIXME: should be removed in autoconf 3.0.
-    $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
-    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
-      $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
-    : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
-    ;;
-
-  esac
-done
-
-if test -n "$ac_prev"; then
-  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
-  as_fn_error $? "missing argument to $ac_option"
-fi
-
-if test -n "$ac_unrecognized_opts"; then
-  case $enable_option_checking in
-    no) ;;
-    fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
-    *)     $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
-  esac
-fi
-
-# Check all directory arguments for consistency.
-for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
-		datadir sysconfdir sharedstatedir localstatedir includedir \
-		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
-		libdir localedir mandir
-do
-  eval ac_val=\$$ac_var
-  # Remove trailing slashes.
-  case $ac_val in
-    */ )
-      ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
-      eval $ac_var=\$ac_val;;
-  esac
-  # Be sure to have absolute directory names.
-  case $ac_val in
-    [\\/$]* | ?:[\\/]* )  continue;;
-    NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
-  esac
-  as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
-done
-
-# There might be people who depend on the old broken behavior: `$host'
-# used to hold the argument of --host etc.
-# FIXME: To remove some day.
-build=$build_alias
-host=$host_alias
-target=$target_alias
-
-# FIXME: To remove some day.
-if test "x$host_alias" != x; then
-  if test "x$build_alias" = x; then
-    cross_compiling=maybe
-  elif test "x$build_alias" != "x$host_alias"; then
-    cross_compiling=yes
-  fi
-fi
-
-ac_tool_prefix=
-test -n "$host_alias" && ac_tool_prefix=$host_alias-
-
-test "$silent" = yes && exec 6>/dev/null
-
-
-ac_pwd=`pwd` && test -n "$ac_pwd" &&
-ac_ls_di=`ls -di .` &&
-ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
-  as_fn_error $? "working directory cannot be determined"
-test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
-  as_fn_error $? "pwd does not report name of working directory"
-
-
-# Find the source files, if location was not specified.
-if test -z "$srcdir"; then
-  ac_srcdir_defaulted=yes
-  # Try the directory containing this script, then the parent directory.
-  ac_confdir=`$as_dirname -- "$as_myself" ||
-$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$as_myself" : 'X\(//\)[^/]' \| \
-	 X"$as_myself" : 'X\(//\)$' \| \
-	 X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_myself" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-  srcdir=$ac_confdir
-  if test ! -r "$srcdir/$ac_unique_file"; then
-    srcdir=..
-  fi
-else
-  ac_srcdir_defaulted=no
-fi
-if test ! -r "$srcdir/$ac_unique_file"; then
-  test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
-  as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
-fi
-ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
-ac_abs_confdir=`(
-	cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
-	pwd)`
-# When building in place, set srcdir=.
-if test "$ac_abs_confdir" = "$ac_pwd"; then
-  srcdir=.
-fi
-# Remove unnecessary trailing slashes from srcdir.
-# Double slashes in file names in object file debugging info
-# mess up M-x gdb in Emacs.
-case $srcdir in
-*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
-esac
-for ac_var in $ac_precious_vars; do
-  eval ac_env_${ac_var}_set=\${${ac_var}+set}
-  eval ac_env_${ac_var}_value=\$${ac_var}
-  eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
-  eval ac_cv_env_${ac_var}_value=\$${ac_var}
-done
-
-#
-# Report the --help message.
-#
-if test "$ac_init_help" = "long"; then
-  # Omit some internal or obsolete options to make the list less imposing.
-  # This message is too long to be a string in the A/UX 3.1 sh.
-  cat <<_ACEOF
-\`configure' configures GNU C Library (see version.h) to adapt to many kinds of systems.
-
-Usage: $0 [OPTION]... [VAR=VALUE]...
-
-To assign environment variables (e.g., CC, CFLAGS...), specify them as
-VAR=VALUE.  See below for descriptions of some of the useful variables.
-
-Defaults for the options are specified in brackets.
-
-Configuration:
-  -h, --help              display this help and exit
-      --help=short        display options specific to this package
-      --help=recursive    display the short help of all the included packages
-  -V, --version           display version information and exit
-  -q, --quiet, --silent   do not print \`checking ...' messages
-      --cache-file=FILE   cache test results in FILE [disabled]
-  -C, --config-cache      alias for \`--cache-file=config.cache'
-  -n, --no-create         do not create output files
-      --srcdir=DIR        find the sources in DIR [configure dir or \`..']
-
-Installation directories:
-  --prefix=PREFIX         install architecture-independent files in PREFIX
-                          [$ac_default_prefix]
-  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
-                          [PREFIX]
-
-By default, \`make install' will install all the files in
-\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
-an installation prefix other than \`$ac_default_prefix' using \`--prefix',
-for instance \`--prefix=\$HOME'.
-
-For better control, use the options below.
-
-Fine tuning of the installation directories:
-  --bindir=DIR            user executables [EPREFIX/bin]
-  --sbindir=DIR           system admin executables [EPREFIX/sbin]
-  --libexecdir=DIR        program executables [EPREFIX/libexec]
-  --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
-  --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
-  --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
-  --libdir=DIR            object code libraries [EPREFIX/lib]
-  --includedir=DIR        C header files [PREFIX/include]
-  --oldincludedir=DIR     C header files for non-gcc [/usr/include]
-  --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]
-  --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]
-  --infodir=DIR           info documentation [DATAROOTDIR/info]
-  --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]
-  --mandir=DIR            man documentation [DATAROOTDIR/man]
-  --docdir=DIR            documentation root [DATAROOTDIR/doc/glibc]
-  --htmldir=DIR           html documentation [DOCDIR]
-  --dvidir=DIR            dvi documentation [DOCDIR]
-  --pdfdir=DIR            pdf documentation [DOCDIR]
-  --psdir=DIR             ps documentation [DOCDIR]
-_ACEOF
-
-  cat <<\_ACEOF
-
-System types:
-  --build=BUILD     configure for building on BUILD [guessed]
-  --host=HOST       cross-compile to build programs to run on HOST [BUILD]
-_ACEOF
-fi
-
-if test -n "$ac_init_help"; then
-  case $ac_init_help in
-     short | recursive ) echo "Configuration of GNU C Library (see version.h):";;
-   esac
-  cat <<\_ACEOF
-
-Optional Features:
-  --disable-option-checking  ignore unrecognized --enable/--with options
-  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
-  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
-  --disable-sanity-checks really do not use threads (should not be used except
-                          in special situations) [default=yes]
-  --enable-shared         build shared library [default=yes if GNU ld]
-  --enable-profile        build profiled library [default=no]
-  --disable-default-pie   Do not build glibc programs and the testsuite as PIE
-                          [default=no]
-  --disable-timezone-tools
-                          do not install timezone tools [default=install]
-  --enable-hardcoded-path-in-tests
-                          hardcode newly built glibc path in tests
-                          [default=no]
-  --disable-hidden-plt    do not hide internal function calls to avoid PLT
-  --enable-bind-now       disable lazy relocations in DSOs
-  --enable-stack-protector=[yes|no|all|strong]
-                          Use -fstack-protector[-all|-strong] to detect glibc
-                          buffer overflows
-  --enable-static-nss     build static NSS modules [default=no]
-  --disable-force-install don't force installation of files from this package,
-                          even if they are older than the installed files
-  --enable-maintainer-mode
-                          enable make rules and dependencies not useful (and
-                          sometimes confusing) to the casual installer
-  --enable-kernel=VERSION compile for compatibility with kernel not older than
-                          VERSION
-  --enable-all-warnings   enable all useful warnings gcc can issue
-  --disable-werror        do not build with -Werror
-  --enable-multi-arch     enable single DSO with optimizations for multiple
-                          architectures
-  --disable-experimental-malloc
-                          disable experimental malloc features
-  --enable-memory-tagging enable memory tagging if supported by the
-                          architecture [default=no]
-  --disable-crypt         do not build nor install the passphrase hashing
-                          library, libcrypt
-  --enable-nss-crypt      enable libcrypt to use nss
-  --enable-systemtap      enable systemtap static probe points [default=no]
-  --disable-build-nscd    disable building and installing the nscd daemon
-  --disable-nscd          library functions will not contact the nscd daemon
-  --enable-pt_chown       Enable building and installing pt_chown
-  --enable-tunables       Enable tunables support. Known values are 'yes',
-                          'no' and 'valstring'
-  --enable-mathvec        Enable building and installing mathvec [default
-                          depends on architecture]
-  --enable-cet            enable Intel Control-flow Enforcement Technology
-                          (CET), x86 only
-  --disable-scv           syscalls will not use scv instruction, even if the
-                          kernel supports it, powerpc only
-
-Optional Packages:
-  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
-  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
-  --with-pkgversion=PKG   Use PKG in the version string in place of "GNU libc"
-  --with-bugurl=URL       Direct users to URL to report a bug
-  --with-gd=DIR           find libgd include dir and library with prefix DIR
-  --with-gd-include=DIR   find libgd include files in DIR
-  --with-gd-lib=DIR       find libgd library files in DIR
-  --with-binutils=PATH    specify location of binutils (as and ld)
-  --with-selinux          if building with SELinux support
-  --with-headers=PATH     location of system headers to use (for example
-                          /usr/src/linux/include) [default=compiler default]
-  --with-default-link     do not use explicit linker scripts
-  --with-nonshared-cflags=CFLAGS
-                          build nonshared libraries with additional CFLAGS
-  --with-rtld-early-cflags=CFLAGS
-                          build early initialization with additional CFLAGS
-  --with-timeoutfactor=NUM
-                          specify an integer to scale the timeout
-  --with-cpu=CPU          select code for CPU variant
-
-Some influential environment variables:
-  CC          C compiler command
-  CFLAGS      C compiler flags
-  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
-              nonstandard directory <lib dir>
-  LIBS        libraries to pass to the linker, e.g. -l<library>
-  CPPFLAGS    (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
-              you have headers in a nonstandard directory <include dir>
-  CPP         C preprocessor
-  CXX         C++ compiler command
-  CXXFLAGS    C++ compiler flags
-
-Use these variables to override the choices made by `configure' or to help
-it to find libraries and programs with nonstandard names/locations.
-
-Report bugs to <https://sourceware.org/bugzilla/>.
-GNU C Library home page: <https://www.gnu.org/software/glibc/>.
-General help using GNU software: <http://www.gnu.org/gethelp/>.
-_ACEOF
-ac_status=$?
-fi
-
-if test "$ac_init_help" = "recursive"; then
-  # If there are subdirs, report their specific --help.
-  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
-    test -d "$ac_dir" ||
-      { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
-      continue
-    ac_builddir=.
-
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
-  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
-  # A ".." for each directory in $ac_dir_suffix.
-  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
-  case $ac_top_builddir_sub in
-  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
-  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
-  esac ;;
-esac
-ac_abs_top_builddir=$ac_pwd
-ac_abs_builddir=$ac_pwd$ac_dir_suffix
-# for backward compatibility:
-ac_top_builddir=$ac_top_build_prefix
-
-case $srcdir in
-  .)  # We are building in place.
-    ac_srcdir=.
-    ac_top_srcdir=$ac_top_builddir_sub
-    ac_abs_top_srcdir=$ac_pwd ;;
-  [\\/]* | ?:[\\/]* )  # Absolute name.
-    ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir
-    ac_abs_top_srcdir=$srcdir ;;
-  *) # Relative name.
-    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_build_prefix$srcdir
-    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
-esac
-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
-
-    cd "$ac_dir" || { ac_status=$?; continue; }
-    # Check for guested configure.
-    if test -f "$ac_srcdir/configure.gnu"; then
-      echo &&
-      $SHELL "$ac_srcdir/configure.gnu" --help=recursive
-    elif test -f "$ac_srcdir/configure"; then
-      echo &&
-      $SHELL "$ac_srcdir/configure" --help=recursive
-    else
-      $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
-    fi || ac_status=$?
-    cd "$ac_pwd" || { ac_status=$?; break; }
-  done
-fi
-
-test -n "$ac_init_help" && exit $ac_status
-if $ac_init_version; then
-  cat <<\_ACEOF
-GNU C Library configure (see version.h)
-generated by GNU Autoconf 2.69
-
-Copyright (C) 2012 Free Software Foundation, Inc.
-This configure script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it.
-_ACEOF
-  exit
-fi
-
-## ------------------------ ##
-## Autoconf initialization. ##
-## ------------------------ ##
-
-# ac_fn_c_try_compile LINENO
-# --------------------------
-# Try to compile conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_compile ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  rm -f conftest.$ac_objext
-  if { { ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_compile") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_retval=1
-fi
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_compile
-
-# ac_fn_cxx_try_compile LINENO
-# ----------------------------
-# Try to compile conftest.$ac_ext, and return whether this succeeded.
-ac_fn_cxx_try_compile ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  rm -f conftest.$ac_objext
-  if { { ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_compile") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && {
-	 test -z "$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_retval=1
-fi
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
-
-} # ac_fn_cxx_try_compile
-
-# ac_fn_cxx_try_link LINENO
-# -------------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded.
-ac_fn_cxx_try_link ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  rm -f conftest.$ac_objext conftest$ac_exeext
-  if { { ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && {
-	 test -z "$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 test -x conftest$ac_exeext
-       }; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_retval=1
-fi
-  # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
-  # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
-  # interfere with the next link command; also delete a directory that is
-  # left behind by Apple's compiler.  We do this before executing the actions.
-  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
-
-} # ac_fn_cxx_try_link
-
-# ac_fn_c_try_link LINENO
-# -----------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_link ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  rm -f conftest.$ac_objext conftest$ac_exeext
-  if { { ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 test -x conftest$ac_exeext
-       }; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_retval=1
-fi
-  # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
-  # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
-  # interfere with the next link command; also delete a directory that is
-  # left behind by Apple's compiler.  We do this before executing the actions.
-  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_link
-
-# ac_fn_c_try_cpp LINENO
-# ----------------------
-# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_cpp ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if { { ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } > conftest.i && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-    ac_retval=1
-fi
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_cpp
-cat >config.log <<_ACEOF
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-
-It was created by GNU C Library $as_me (see version.h), which was
-generated by GNU Autoconf 2.69.  Invocation command line was
-
-  $ $0 $@
-
-_ACEOF
-exec 5>>config.log
-{
-cat <<_ASUNAME
-## --------- ##
-## Platform. ##
-## --------- ##
-
-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
-/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
-
-/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
-/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`
-/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
-/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
-/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
-
-_ASUNAME
-
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    $as_echo "PATH: $as_dir"
-  done
-IFS=$as_save_IFS
-
-} >&5
-
-cat >&5 <<_ACEOF
-
-
-## ----------- ##
-## Core tests. ##
-## ----------- ##
-
-_ACEOF
-
-
-# Keep a trace of the command line.
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Strip out --silent because we don't want to record it for future runs.
-# Also quote any args containing shell meta-characters.
-# Make two passes to allow for proper duplicate-argument suppression.
-ac_configure_args=
-ac_configure_args0=
-ac_configure_args1=
-ac_must_keep_next=false
-for ac_pass in 1 2
-do
-  for ac_arg
-  do
-    case $ac_arg in
-    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
-    -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-    | -silent | --silent | --silen | --sile | --sil)
-      continue ;;
-    *\'*)
-      ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
-    esac
-    case $ac_pass in
-    1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
-    2)
-      as_fn_append ac_configure_args1 " '$ac_arg'"
-      if test $ac_must_keep_next = true; then
-	ac_must_keep_next=false # Got value, back to normal.
-      else
-	case $ac_arg in
-	  *=* | --config-cache | -C | -disable-* | --disable-* \
-	  | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
-	  | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
-	  | -with-* | --with-* | -without-* | --without-* | --x)
-	    case "$ac_configure_args0 " in
-	      "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
-	    esac
-	    ;;
-	  -* ) ac_must_keep_next=true ;;
-	esac
-      fi
-      as_fn_append ac_configure_args " '$ac_arg'"
-      ;;
-    esac
-  done
-done
-{ ac_configure_args0=; unset ac_configure_args0;}
-{ ac_configure_args1=; unset ac_configure_args1;}
-
-# When interrupted or exit'd, cleanup temporary files, and complete
-# config.log.  We remove comments because anyway the quotes in there
-# would cause problems or look ugly.
-# WARNING: Use '\'' to represent an apostrophe within the trap.
-# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
-trap 'exit_status=$?
-  # Save into config.log some information that might help in debugging.
-  {
-    echo
-
-    $as_echo "## ---------------- ##
-## Cache variables. ##
-## ---------------- ##"
-    echo
-    # The following way of writing the cache mishandles newlines in values,
-(
-  for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
-    eval ac_val=\$$ac_var
-    case $ac_val in #(
-    *${as_nl}*)
-      case $ac_var in #(
-      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
-      esac
-      case $ac_var in #(
-      _ | IFS | as_nl) ;; #(
-      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
-      *) { eval $ac_var=; unset $ac_var;} ;;
-      esac ;;
-    esac
-  done
-  (set) 2>&1 |
-    case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
-    *${as_nl}ac_space=\ *)
-      sed -n \
-	"s/'\''/'\''\\\\'\'''\''/g;
-	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
-      ;; #(
-    *)
-      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
-      ;;
-    esac |
-    sort
-)
-    echo
-
-    $as_echo "## ----------------- ##
-## Output variables. ##
-## ----------------- ##"
-    echo
-    for ac_var in $ac_subst_vars
-    do
-      eval ac_val=\$$ac_var
-      case $ac_val in
-      *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
-      esac
-      $as_echo "$ac_var='\''$ac_val'\''"
-    done | sort
-    echo
-
-    if test -n "$ac_subst_files"; then
-      $as_echo "## ------------------- ##
-## File substitutions. ##
-## ------------------- ##"
-      echo
-      for ac_var in $ac_subst_files
-      do
-	eval ac_val=\$$ac_var
-	case $ac_val in
-	*\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
-	esac
-	$as_echo "$ac_var='\''$ac_val'\''"
-      done | sort
-      echo
-    fi
-
-    if test -s confdefs.h; then
-      $as_echo "## ----------- ##
-## confdefs.h. ##
-## ----------- ##"
-      echo
-      cat confdefs.h
-      echo
-    fi
-    test "$ac_signal" != 0 &&
-      $as_echo "$as_me: caught signal $ac_signal"
-    $as_echo "$as_me: exit $exit_status"
-  } >&5
-  rm -f core *.core core.conftest.* &&
-    rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
-    exit $exit_status
-' 0
-for ac_signal in 1 2 13 15; do
-  trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
-done
-ac_signal=0
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -f -r conftest* confdefs.h
-
-$as_echo "/* confdefs.h */" > confdefs.h
-
-# Predefined preprocessor variables.
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_NAME "$PACKAGE_NAME"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_VERSION "$PACKAGE_VERSION"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_STRING "$PACKAGE_STRING"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_URL "$PACKAGE_URL"
-_ACEOF
-
-
-# Let the site file select an alternate cache file if it wants to.
-# Prefer an explicitly selected file to automatically selected ones.
-ac_site_file1=NONE
-ac_site_file2=NONE
-if test -n "$CONFIG_SITE"; then
-  # We do not want a PATH search for config.site.
-  case $CONFIG_SITE in #((
-    -*)  ac_site_file1=./$CONFIG_SITE;;
-    */*) ac_site_file1=$CONFIG_SITE;;
-    *)   ac_site_file1=./$CONFIG_SITE;;
-  esac
-elif test "x$prefix" != xNONE; then
-  ac_site_file1=$prefix/share/config.site
-  ac_site_file2=$prefix/etc/config.site
-else
-  ac_site_file1=$ac_default_prefix/share/config.site
-  ac_site_file2=$ac_default_prefix/etc/config.site
-fi
-for ac_site_file in "$ac_site_file1" "$ac_site_file2"
-do
-  test "x$ac_site_file" = xNONE && continue
-  if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
-$as_echo "$as_me: loading site script $ac_site_file" >&6;}
-    sed 's/^/| /' "$ac_site_file" >&5
-    . "$ac_site_file" \
-      || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "failed to load site script $ac_site_file
-See \`config.log' for more details" "$LINENO" 5; }
-  fi
-done
-
-if test -r "$cache_file"; then
-  # Some versions of bash will fail to source /dev/null (special files
-  # actually), so we avoid doing that.  DJGPP emulates it as a regular file.
-  if test /dev/null != "$cache_file" && test -f "$cache_file"; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
-$as_echo "$as_me: loading cache $cache_file" >&6;}
-    case $cache_file in
-      [\\/]* | ?:[\\/]* ) . "$cache_file";;
-      *)                      . "./$cache_file";;
-    esac
-  fi
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
-$as_echo "$as_me: creating cache $cache_file" >&6;}
-  >$cache_file
-fi
-
-# Check that the precious variables saved in the cache have kept the same
-# value.
-ac_cache_corrupted=false
-for ac_var in $ac_precious_vars; do
-  eval ac_old_set=\$ac_cv_env_${ac_var}_set
-  eval ac_new_set=\$ac_env_${ac_var}_set
-  eval ac_old_val=\$ac_cv_env_${ac_var}_value
-  eval ac_new_val=\$ac_env_${ac_var}_value
-  case $ac_old_set,$ac_new_set in
-    set,)
-      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
-      ac_cache_corrupted=: ;;
-    ,set)
-      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
-      ac_cache_corrupted=: ;;
-    ,);;
-    *)
-      if test "x$ac_old_val" != "x$ac_new_val"; then
-	# differences in whitespace do not lead to failure.
-	ac_old_val_w=`echo x $ac_old_val`
-	ac_new_val_w=`echo x $ac_new_val`
-	if test "$ac_old_val_w" != "$ac_new_val_w"; then
-	  { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
-$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
-	  ac_cache_corrupted=:
-	else
-	  { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
-$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
-	  eval $ac_var=\$ac_old_val
-	fi
-	{ $as_echo "$as_me:${as_lineno-$LINENO}:   former value:  \`$ac_old_val'" >&5
-$as_echo "$as_me:   former value:  \`$ac_old_val'" >&2;}
-	{ $as_echo "$as_me:${as_lineno-$LINENO}:   current value: \`$ac_new_val'" >&5
-$as_echo "$as_me:   current value: \`$ac_new_val'" >&2;}
-      fi;;
-  esac
-  # Pass precious variables to config.status.
-  if test "$ac_new_set" = set; then
-    case $ac_new_val in
-    *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
-    *) ac_arg=$ac_var=$ac_new_val ;;
-    esac
-    case " $ac_configure_args " in
-      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
-      *) as_fn_append ac_configure_args " '$ac_arg'" ;;
-    esac
-  fi
-done
-if $ac_cache_corrupted; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-  { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
-$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
-  as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
-fi
-## -------------------- ##
-## Main body of script. ##
-## -------------------- ##
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-ac_config_headers="$ac_config_headers config.h"
-
-ac_aux_dir=
-for ac_dir in scripts "$srcdir"/scripts; do
-  if test -f "$ac_dir/install-sh"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install-sh -c"
-    break
-  elif test -f "$ac_dir/install.sh"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install.sh -c"
-    break
-  elif test -f "$ac_dir/shtool"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/shtool install -c"
-    break
-  fi
-done
-if test -z "$ac_aux_dir"; then
-  as_fn_error $? "cannot find install-sh, install.sh, or shtool in scripts \"$srcdir\"/scripts" "$LINENO" 5
-fi
-
-# These three variables are undocumented and unsupported,
-# and are intended to be withdrawn in a future Autoconf release.
-# They can cause serious problems if a builder's source tree is in a directory
-# whose full name contains unusual characters.
-ac_config_guess="$SHELL $ac_aux_dir/config.guess"  # Please don't use this var.
-ac_config_sub="$SHELL $ac_aux_dir/config.sub"  # Please don't use this var.
-ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
-
-
-
-
-
-# Check whether --with-pkgversion was given.
-if test "${with_pkgversion+set}" = set; then :
-  withval=$with_pkgversion; case "$withval" in
-      yes) as_fn_error $? "package version not specified" "$LINENO" 5 ;;
-      no)  PKGVERSION= ;;
-      *)   PKGVERSION="($withval) " ;;
-     esac
-else
-  PKGVERSION="(GNU libc) "
-
-fi
-
-  PKGVERSION_TEXI=`echo "$PKGVERSION" | sed 's/@/@@/g'`
-
-
-
-
-
-# Check whether --with-bugurl was given.
-if test "${with_bugurl+set}" = set; then :
-  withval=$with_bugurl; case "$withval" in
-      yes) as_fn_error $? "bug URL not specified" "$LINENO" 5 ;;
-      no)  BUGURL=
-	   ;;
-      *)   BUGURL="$withval"
-	   ;;
-     esac
-else
-  BUGURL="https://www.gnu.org/software/libc/bugs.html"
-
-fi
-
-  case ${BUGURL} in
-  "")
-    REPORT_BUGS_TO=
-    REPORT_BUGS_TEXI=
-    ;;
-  *)
-    REPORT_BUGS_TO="<$BUGURL>"
-    REPORT_BUGS_TEXI=@uref{`echo "$BUGURL" | sed 's/@/@@/g'`}
-    ;;
-  esac;
-
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define PKGVERSION "$PKGVERSION"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define REPORT_BUGS_TO "$REPORT_BUGS_TO"
-_ACEOF
-
-
-# Glibc should not depend on any header files
-
-
-# We require GCC, and by default use its preprocessor.  Override AC_PROG_CPP
-# here to work around the Autoconf issue discussed in
-# <https://sourceware.org/ml/libc-alpha/2013-01/msg00721.html>.
-# AC_PROG_CPP
-
-# We require GCC.  Override _AC_PROG_CC_C89 here to work around the Autoconf
-# issue discussed in
-# <https://sourceware.org/ml/libc-alpha/2013-01/msg00757.html>.
-
-
-
-
-subdirs="$subdirs "
-
-
-# Make sure we can run config.sub.
-$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
-  as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
-$as_echo_n "checking build system type... " >&6; }
-if ${ac_cv_build+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_build_alias=$build_alias
-test "x$ac_build_alias" = x &&
-  ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
-test "x$ac_build_alias" = x &&
-  as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
-ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
-  as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
-$as_echo "$ac_cv_build" >&6; }
-case $ac_cv_build in
-*-*-*) ;;
-*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
-esac
-build=$ac_cv_build
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_build
-shift
-build_cpu=$1
-build_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-build_os=$*
-IFS=$ac_save_IFS
-case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
-$as_echo_n "checking host system type... " >&6; }
-if ${ac_cv_host+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test "x$host_alias" = x; then
-  ac_cv_host=$ac_cv_build
-else
-  ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
-    as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
-$as_echo "$ac_cv_host" >&6; }
-case $ac_cv_host in
-*-*-*) ;;
-*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
-esac
-host=$ac_cv_host
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_host
-shift
-host_cpu=$1
-host_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-host_os=$*
-IFS=$ac_save_IFS
-case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
-
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_CC="${ac_tool_prefix}gcc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_CC"; then
-  ac_ct_CC=$CC
-  # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_CC="gcc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_CC" = x; then
-    CC=""
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    CC=$ac_ct_CC
-  fi
-else
-  CC="$ac_cv_prog_CC"
-fi
-
-if test -z "$CC"; then
-          if test -n "$ac_tool_prefix"; then
-    # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_CC="${ac_tool_prefix}cc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  fi
-fi
-if test -z "$CC"; then
-  # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-  ac_prog_rejected=no
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
-       ac_prog_rejected=yes
-       continue
-     fi
-    ac_cv_prog_CC="cc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-if test $ac_prog_rejected = yes; then
-  # We found a bogon in the path, so make sure we never use it.
-  set dummy $ac_cv_prog_CC
-  shift
-  if test $# != 0; then
-    # We chose a different compiler from the bogus one.
-    # However, it has the same basename, so the bogon will be chosen
-    # first if we set CC to just the basename; use the full file name.
-    shift
-    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
-  fi
-fi
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$CC"; then
-  if test -n "$ac_tool_prefix"; then
-  for ac_prog in cl.exe
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-    test -n "$CC" && break
-  done
-fi
-if test -z "$CC"; then
-  ac_ct_CC=$CC
-  for ac_prog in cl.exe
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_CC="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$ac_ct_CC" && break
-done
-
-  if test "x$ac_ct_CC" = x; then
-    CC=""
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    CC=$ac_ct_CC
-  fi
-fi
-
-fi
-
-
-test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "no acceptable C compiler found in \$PATH
-See \`config.log' for more details" "$LINENO" 5; }
-
-# Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
-set X $ac_compile
-ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
-  { { ac_try="$ac_compiler $ac_option >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    sed '10a\
-... rest of stderr output deleted ...
-         10q' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-  fi
-  rm -f conftest.er1 conftest.err
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-done
-
-EXEEXT=
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
-$as_echo_n "checking for suffix of object files... " >&6; }
-if ${ac_cv_objext+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.o conftest.obj
-if { { ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_compile") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then :
-  for ac_file in conftest.o conftest.obj conftest.*; do
-  test -f "$ac_file" || continue;
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
-    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
-       break;;
-  esac
-done
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot compute suffix of object files: cannot compile
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-rm -f conftest.$ac_cv_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
-$as_echo "$ac_cv_objext" >&6; }
-OBJEXT=$ac_cv_objext
-ac_objext=$OBJEXT
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
-$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if ${ac_cv_c_compiler_gnu+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-#ifndef __GNUC__
-       choke me
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_compiler_gnu=yes
-else
-  ac_compiler_gnu=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
-$as_echo "$ac_cv_c_compiler_gnu" >&6; }
-if test $ac_compiler_gnu = yes; then
-  GCC=yes
-else
-  GCC=
-fi
-ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
-$as_echo_n "checking whether $CC accepts -g... " >&6; }
-if ${ac_cv_prog_cc_g+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_save_c_werror_flag=$ac_c_werror_flag
-   ac_c_werror_flag=yes
-   ac_cv_prog_cc_g=no
-   CFLAGS="-g"
-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_prog_cc_g=yes
-else
-  CFLAGS=""
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
-else
-  ac_c_werror_flag=$ac_save_c_werror_flag
-	 CFLAGS="-g"
-	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_prog_cc_g=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-   ac_c_werror_flag=$ac_save_c_werror_flag
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
-$as_echo "$ac_cv_prog_cc_g" >&6; }
-if test "$ac_test_CFLAGS" = set; then
-  CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
-  if test "$GCC" = yes; then
-    CFLAGS="-g -O2"
-  else
-    CFLAGS="-g"
-  fi
-else
-  if test "$GCC" = yes; then
-    CFLAGS="-O2"
-  else
-    CFLAGS=
-  fi
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-if test $host != $build; then
-  for ac_prog in gcc cc
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_BUILD_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$BUILD_CC"; then
-  ac_cv_prog_BUILD_CC="$BUILD_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_BUILD_CC="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-BUILD_CC=$ac_cv_prog_BUILD_CC
-if test -n "$BUILD_CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BUILD_CC" >&5
-$as_echo "$BUILD_CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$BUILD_CC" && break
-done
-
-fi
-
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
-  CPP=
-fi
-if test -z "$CPP"; then
-  CPP="$CC -E"
-fi
-
-
-# We need the C++ compiler only for testing.
-ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-if test -z "$CXX"; then
-  if test -n "$CCC"; then
-    CXX=$CCC
-  else
-    if test -n "$ac_tool_prefix"; then
-  for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CXX+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CXX"; then
-  ac_cv_prog_CXX="$CXX" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-CXX=$ac_cv_prog_CXX
-if test -n "$CXX"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5
-$as_echo "$CXX" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-    test -n "$CXX" && break
-  done
-fi
-if test -z "$CXX"; then
-  ac_ct_CXX=$CXX
-  for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CXX+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_CXX"; then
-  ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_CXX="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
-if test -n "$ac_ct_CXX"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5
-$as_echo "$ac_ct_CXX" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$ac_ct_CXX" && break
-done
-
-  if test "x$ac_ct_CXX" = x; then
-    CXX="g++"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    CXX=$ac_ct_CXX
-  fi
-fi
-
-  fi
-fi
-# Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5
-set X $ac_compile
-ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
-  { { ac_try="$ac_compiler $ac_option >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    sed '10a\
-... rest of stderr output deleted ...
-         10q' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-  fi
-  rm -f conftest.er1 conftest.err
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-done
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5
-$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; }
-if ${ac_cv_cxx_compiler_gnu+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-#ifndef __GNUC__
-       choke me
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  ac_compiler_gnu=yes
-else
-  ac_compiler_gnu=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5
-$as_echo "$ac_cv_cxx_compiler_gnu" >&6; }
-if test $ac_compiler_gnu = yes; then
-  GXX=yes
-else
-  GXX=
-fi
-ac_test_CXXFLAGS=${CXXFLAGS+set}
-ac_save_CXXFLAGS=$CXXFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5
-$as_echo_n "checking whether $CXX accepts -g... " >&6; }
-if ${ac_cv_prog_cxx_g+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_save_cxx_werror_flag=$ac_cxx_werror_flag
-   ac_cxx_werror_flag=yes
-   ac_cv_prog_cxx_g=no
-   CXXFLAGS="-g"
-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  ac_cv_prog_cxx_g=yes
-else
-  CXXFLAGS=""
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-
-else
-  ac_cxx_werror_flag=$ac_save_cxx_werror_flag
-	 CXXFLAGS="-g"
-	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  ac_cv_prog_cxx_g=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-   ac_cxx_werror_flag=$ac_save_cxx_werror_flag
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5
-$as_echo "$ac_cv_prog_cxx_g" >&6; }
-if test "$ac_test_CXXFLAGS" = set; then
-  CXXFLAGS=$ac_save_CXXFLAGS
-elif test $ac_cv_prog_cxx_g = yes; then
-  if test "$GXX" = yes; then
-    CXXFLAGS="-g -O2"
-  else
-    CXXFLAGS="-g"
-  fi
-else
-  if test "$GXX" = yes; then
-    CXXFLAGS="-O2"
-  else
-    CXXFLAGS=
-  fi
-fi
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-# It's useless to us if it can't link programs (e.g. missing -lstdc++).
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX can link programs" >&5
-$as_echo_n "checking whether $CXX can link programs... " >&6; }
-if ${libc_cv_cxx_link_ok+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-# Default, dynamic case.
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  libc_cv_cxx_link_ok=yes
-else
-  libc_cv_cxx_link_ok=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-# Static case.
-old_LDFLAGS="$LDFLAGS"
-LDFLAGS="$LDFLAGS -static"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <iostream>
-
-int
-main()
-{
-  std::cout << "Hello, world!";
-  return 0;
-}
-
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-
-else
-  libc_cv_cxx_link_ok=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LDFLAGS="$old_LDFLAGS"
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_cxx_link_ok" >&5
-$as_echo "$libc_cv_cxx_link_ok" >&6; }
-if test $libc_cv_cxx_link_ok != yes; then :
-  CXX=
-fi
-
-if test "`cd $srcdir; pwd -P`" = "`pwd -P`"; then
-  as_fn_error $? "you must configure in a separate build directory" "$LINENO" 5
-fi
-
-# This will get text that should go into config.make.
-config_vars=
-
-# Check for a --with-gd argument and set libgd-LDFLAGS in config.make.
-
-# Check whether --with-gd was given.
-if test "${with_gd+set}" = set; then :
-  withval=$with_gd; case "$with_gd" in
-yes|''|no) ;;
-*) libgd_include="-I$withval/include"
-   libgd_ldflags="-L$withval/lib" ;;
-esac
-
-fi
-
-
-# Check whether --with-gd-include was given.
-if test "${with_gd_include+set}" = set; then :
-  withval=$with_gd_include; case "$with_gd_include" in
-''|no) ;;
-*) libgd_include="-I$withval" ;;
-esac
-
-fi
-
-
-# Check whether --with-gd-lib was given.
-if test "${with_gd_lib+set}" = set; then :
-  withval=$with_gd_lib; case "$with_gd_lib" in
-''|no) ;;
-*) libgd_ldflags="-L$withval" ;;
-esac
-
-fi
-
-
-if test -n "$libgd_include"; then
-  config_vars="$config_vars
-CFLAGS-memusagestat.c = $libgd_include"
-fi
-if test -n "$libgd_ldflags"; then
-  config_vars="$config_vars
-libgd-LDFLAGS = $libgd_ldflags"
-fi
-
-
-# Check whether --with-binutils was given.
-if test "${with_binutils+set}" = set; then :
-  withval=$with_binutils; path_binutils=$withval
-else
-  path_binutils=''
-fi
-
-
-# Check whether --with-selinux was given.
-if test "${with_selinux+set}" = set; then :
-  withval=$with_selinux; with_selinux=$withval
-else
-  with_selinux=auto
-fi
-
-
-
-# Check whether --with-headers was given.
-if test "${with_headers+set}" = set; then :
-  withval=$with_headers; sysheaders=$withval
-else
-  sysheaders=''
-fi
-
-
-
-
-
-# Check whether --with-default-link was given.
-if test "${with_default_link+set}" = set; then :
-  withval=$with_default_link; use_default_link=$withval
-else
-  use_default_link=no
-fi
-
-
-
-# Check whether --with-nonshared-cflags was given.
-if test "${with_nonshared_cflags+set}" = set; then :
-  withval=$with_nonshared_cflags; extra_nonshared_cflags=$withval
-else
-  extra_nonshared_cflags=
-fi
-
-
-
-# Check whether --with-rtld-early-cflags was given.
-if test "${with_rtld_early_cflags+set}" = set; then :
-  withval=$with_rtld_early_cflags; rtld_early_cflags=$withval
-else
-  rtld_early_cflags=
-fi
-
-
-
-
-# Check whether --with-timeoutfactor was given.
-if test "${with_timeoutfactor+set}" = set; then :
-  withval=$with_timeoutfactor; timeoutfactor=$withval
-else
-  timeoutfactor=1
-fi
-
-cat >>confdefs.h <<_ACEOF
-#define TIMEOUTFACTOR $timeoutfactor
-_ACEOF
-
-
-# Check whether --enable-sanity-checks was given.
-if test "${enable_sanity_checks+set}" = set; then :
-  enableval=$enable_sanity_checks; enable_sanity=$enableval
-else
-  enable_sanity=yes
-fi
-
-
-# Check whether --enable-shared was given.
-if test "${enable_shared+set}" = set; then :
-  enableval=$enable_shared; shared=$enableval
-else
-  shared=yes
-fi
-
-# Check whether --enable-profile was given.
-if test "${enable_profile+set}" = set; then :
-  enableval=$enable_profile; profile=$enableval
-else
-  profile=no
-fi
-
-# Check whether --enable-default-pie was given.
-if test "${enable_default_pie+set}" = set; then :
-  enableval=$enable_default_pie; default_pie=$enableval
-else
-  default_pie=yes
-fi
-
-# Check whether --enable-timezone-tools was given.
-if test "${enable_timezone_tools+set}" = set; then :
-  enableval=$enable_timezone_tools; enable_timezone_tools=$enableval
-else
-  enable_timezone_tools=yes
-fi
-
-
-
-# Check whether --enable-hardcoded-path-in-tests was given.
-if test "${enable_hardcoded_path_in_tests+set}" = set; then :
-  enableval=$enable_hardcoded_path_in_tests; hardcoded_path_in_tests=$enableval
-else
-  hardcoded_path_in_tests=no
-fi
-
-
-
-# Check whether --enable-hidden-plt was given.
-if test "${enable_hidden_plt+set}" = set; then :
-  enableval=$enable_hidden_plt; hidden=$enableval
-else
-  hidden=yes
-fi
-
-if test "x$hidden" = xno; then
-  $as_echo "#define NO_HIDDEN 1" >>confdefs.h
-
-fi
-
-# Check whether --enable-bind-now was given.
-if test "${enable_bind_now+set}" = set; then :
-  enableval=$enable_bind_now; bindnow=$enableval
-else
-  bindnow=no
-fi
-
-
-if test "x$bindnow" = xyes; then
-  $as_echo "#define BIND_NOW 1" >>confdefs.h
-
-fi
-
-# Check whether --enable-stack-protector was given.
-if test "${enable_stack_protector+set}" = set; then :
-  enableval=$enable_stack_protector; enable_stack_protector=$enableval
-else
-  enable_stack_protector=no
-fi
-
-case "$enable_stack_protector" in
-all|yes|no|strong) ;;
-*) as_fn_error $? "Not a valid argument for --enable-stack-protector: \"$enable_stack_protector\"" "$LINENO" 5;;
-esac
-
-# Check whether --enable-static-nss was given.
-if test "${enable_static_nss+set}" = set; then :
-  enableval=$enable_static_nss; static_nss=$enableval
-else
-  static_nss=no
-fi
-
-if test x"$static_nss" = xyes || test x"$shared" = xno; then
-  static_nss=yes
-  $as_echo "#define DO_STATIC_NSS 1" >>confdefs.h
-
-fi
-
-# Check whether --enable-force-install was given.
-if test "${enable_force_install+set}" = set; then :
-  enableval=$enable_force_install; force_install=$enableval
-else
-  force_install=yes
-fi
-
-
-
-# Check whether --enable-maintainer-mode was given.
-if test "${enable_maintainer_mode+set}" = set; then :
-  enableval=$enable_maintainer_mode; maintainer=$enableval
-else
-  maintainer=no
-fi
-
-
-# Check whether --enable-kernel was given.
-if test "${enable_kernel+set}" = set; then :
-  enableval=$enable_kernel; minimum_kernel=$enableval
-fi
-
-if test "$minimum_kernel" = yes || test "$minimum_kernel" = no; then
-  # Better nothing than this.
-  minimum_kernel=""
-else
-  if test "$minimum_kernel" = current; then
-    minimum_kernel=`uname -r 2>/dev/null` || minimum_kernel=
-  fi
-fi
-
-# Check whether --enable-all-warnings was given.
-if test "${enable_all_warnings+set}" = set; then :
-  enableval=$enable_all_warnings; all_warnings=$enableval
-fi
-
-
-
-# Check whether --enable-werror was given.
-if test "${enable_werror+set}" = set; then :
-  enableval=$enable_werror; enable_werror=$enableval
-else
-  enable_werror=yes
-fi
-
-
-
-# Check whether --enable-multi-arch was given.
-if test "${enable_multi_arch+set}" = set; then :
-  enableval=$enable_multi_arch; multi_arch=$enableval
-else
-  multi_arch=default
-fi
-
-
-# Check whether --enable-experimental-malloc was given.
-if test "${enable_experimental_malloc+set}" = set; then :
-  enableval=$enable_experimental_malloc; experimental_malloc=$enableval
-else
-  experimental_malloc=yes
-fi
-
-
-
-# Check whether --enable-memory-tagging was given.
-if test "${enable_memory_tagging+set}" = set; then :
-  enableval=$enable_memory_tagging; memory_tagging=$enableval
-else
-  memory_tagging=no
-fi
-
-if test "$memory_tagging" = yes; then
-  # Only enable this on architectures that support it.
-  case $host_cpu in
-    aarch64)
-      $as_echo "#define USE_MTAG 1" >>confdefs.h
-
-      ;;
-  esac
-fi
-
-
-# Check whether --enable-crypt was given.
-if test "${enable_crypt+set}" = set; then :
-  enableval=$enable_crypt; build_crypt=$enableval
-else
-  build_crypt=yes
-fi
-
-
-
-# Check whether --enable-nss-crypt was given.
-if test "${enable_nss_crypt+set}" = set; then :
-  enableval=$enable_nss_crypt; nss_crypt=$enableval
-else
-  nss_crypt=no
-fi
-
-if test x$build_libcrypt = xno && test x$nss_crypt = xyes; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: --enable-nss-crypt has no effect when libcrypt is disabled" >&5
-$as_echo "$as_me: WARNING: --enable-nss-crypt has no effect when libcrypt is disabled" >&2;}
-  nss_crypt=no
-fi
-if test x$nss_crypt = xyes; then
-  nss_includes=-I$(nss-config --includedir 2>/dev/null)
-  if test $? -ne 0; then
-    as_fn_error $? "cannot find include directory with nss-config" "$LINENO" 5
-  fi
-  nspr_includes=-I$(nspr-config --includedir 2>/dev/null)
-  if test $? -ne 0; then
-    as_fn_error $? "cannot find include directory with nspr-config" "$LINENO" 5
-  fi
-  old_CFLAGS="$CFLAGS"
-  CFLAGS="$CFLAGS $nss_includes $nspr_includes"
-
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-typedef int PRBool;
-#include <hasht.h>
-#include <nsslowhash.h>
-void f (void) { NSSLOW_Init (); }
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  libc_cv_nss_crypt=yes
-else
-  as_fn_error $? "
-cannot find NSS headers with lowlevel hash function interfaces" "$LINENO" 5
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  old_LIBS="$LIBS"
-  old_LDFLAGS="$LDFLAGS"
-  LIBS="$LIBS -lfreebl3"
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-typedef int PRBool;
-#include <hasht.h>
-#include <nsslowhash.h>
-int
-main ()
-{
-NSSLOW_Init();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  libc_cv_nss_crypt=yes
-else
-  as_fn_error $? "
-cannot link program using lowlevel NSS hash functions" "$LINENO" 5
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-  # Check to see if there is a static NSS cryptographic library.
-  # If there isn't then we can't link anything with libcrypt.a,
-  # and that might mean disabling some static tests.
-  LDFLAGS="$LDFLAGS -static"
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-typedef int PRBool;
-#include <hasht.h>
-#include <nsslowhash.h>
-int
-main ()
-{
-NSSLOW_Init();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  libc_cv_static_nss_crypt=yes
-else
-  libc_cv_static_nss_crypt=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-  LDFLAGS="$old_LDFLAGS"
-  CFLAGS="$old_CFLAGS"
-  LIBS="$old_LIBS"
-else
-  libc_cv_nss_crypt=no
-  libc_cv_static_nss_crypt=no
-fi
-
-
-
-
-# Check whether --enable-systemtap was given.
-if test "${enable_systemtap+set}" = set; then :
-  enableval=$enable_systemtap; systemtap=$enableval
-else
-  systemtap=no
-fi
-
-if test "x$systemtap" != xno; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for systemtap static probe support" >&5
-$as_echo_n "checking for systemtap static probe support... " >&6; }
-if ${libc_cv_sdt+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-    old_CFLAGS="$CFLAGS"
-  CFLAGS="-std=gnu11 $CFLAGS"
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <sys/sdt.h>
-void foo (int i, void *p)
-{
-  asm ("" STAP_PROBE_ASM (foo, bar, STAP_PROBE_ASM_TEMPLATE (2)) ""
-       :: STAP_PROBE_ASM_OPERANDS (2, i, p));
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  libc_cv_sdt=yes
-else
-  libc_cv_sdt=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  CFLAGS="$old_CFLAGS"
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_sdt" >&5
-$as_echo "$libc_cv_sdt" >&6; }
-  if test $libc_cv_sdt = yes; then
-    $as_echo "#define USE_STAP_PROBE 1" >>confdefs.h
-
-  elif test "x$systemtap" != xauto; then
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "systemtap support needs sys/sdt.h with asm support
-See \`config.log' for more details" "$LINENO" 5; }
-  fi
-fi
-
-# Check whether --enable-build-nscd was given.
-if test "${enable_build_nscd+set}" = set; then :
-  enableval=$enable_build_nscd; build_nscd=$enableval
-else
-  build_nscd=default
-fi
-
-
-
-# Note the use of $use_nscd is near the bottom of the file.
-# Check whether --enable-nscd was given.
-if test "${enable_nscd+set}" = set; then :
-  enableval=$enable_nscd; use_nscd=$enableval
-else
-  use_nscd=yes
-fi
-
-
-# Check whether --enable-pt_chown was given.
-if test "${enable_pt_chown+set}" = set; then :
-  enableval=$enable_pt_chown; build_pt_chown=$enableval
-else
-  build_pt_chown=no
-fi
-
-
-if test "$build_pt_chown" = yes; then
-  $as_echo "#define HAVE_PT_CHOWN 1" >>confdefs.h
-
-fi
-
-# Check whether --enable-tunables was given.
-if test "${enable_tunables+set}" = set; then :
-  enableval=$enable_tunables; have_tunables=$enableval
-else
-  have_tunables=yes
-fi
-
-
-if test "$have_tunables" = yes; then
-  $as_echo "#define HAVE_TUNABLES 1" >>confdefs.h
-
-fi
-
-# The abi-tags file uses a fairly simplistic model for name recognition that
-# can't distinguish i486-pc-linux-gnu fully from i486-pc-gnu.  So we mutate a
-# $host_os of `gnu*' here to be `gnu-gnu*' just so that it can tell.
-# This doesn't get used much beyond that, so it's fairly safe.
-case "$host_os" in
-linux*)
-  ;;
-gnu*)
-  host_os=`echo $host_os | sed -e 's/gnu/gnu-gnu/'`
-  ;;
-esac
-
-# Check whether --enable-mathvec was given.
-if test "${enable_mathvec+set}" = set; then :
-  enableval=$enable_mathvec; build_mathvec=$enableval
-else
-  build_mathvec=notset
-fi
-
-
-
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-#ifndef __CET__
-# error no CET compiler support
-#endif
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-  libc_cv_compiler_default_cet=yes
-else
-  libc_cv_compiler_default_cet=no
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-# Check whether --enable-cet was given.
-if test "${enable_cet+set}" = set; then :
-  enableval=$enable_cet; enable_cet=$enableval
-else
-  enable_cet=$libc_cv_compiler_default_cet
-fi
-
-
-# Check whether --enable-scv was given.
-if test "${enable_scv+set}" = set; then :
-  enableval=$enable_scv; use_scv=$enableval
-else
-  use_scv=yes
-fi
-
-
-if test "$use_scv" != "no"; then :
-  $as_echo "#define USE_PPC_SCV 1" >>confdefs.h
-
-fi
-
-# We keep the original values in `$config_*' and never modify them, so we
-# can write them unchanged into config.make.  Everything else uses
-# $machine, $vendor, and $os, and changes them whenever convenient.
-config_machine=$host_cpu config_vendor=$host_vendor config_os=$host_os
-
-# Don't allow vendor == "unknown"
-test "$config_vendor" = unknown && config_vendor=
-config_os="`echo $config_os | sed 's/^unknown-//'`"
-
-# Some configurations imply other options.
-elf=yes
-
-# The configure fragment of a port can modify these to supplement
-# or override the table in the case statement below.  No fragment should
-# ever change the config_* variables, however.
-machine=$config_machine
-vendor=$config_vendor
-os=$config_os
-base_os=''
-
-submachine=
-
-# Check whether --with-cpu was given.
-if test "${with_cpu+set}" = set; then :
-  withval=$with_cpu;   case "$withval" in
-  yes|'') as_fn_error $? "--with-cpu requires an argument" "$LINENO" 5 ;;
-  no) ;;
-  *) submachine="$withval" ;;
-  esac
-
-fi
-
-
-# An preconfigure script can set this when it wants to disable the sanity
-# check below.
-libc_config_ok=no
-
-# A preconfigure script for a system that may or may not use fpu
-# sysdeps directories sets this to a preprocessor conditional for
-# whether to use such directories.
-with_fp_cond=1
-
-if frags=`ls -d $srcdir/sysdeps/*/preconfigure 2> /dev/null`
-then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysdeps preconfigure fragments" >&5
-$as_echo_n "checking for sysdeps preconfigure fragments... " >&6; }
-  for frag in $frags; do
-    name=`echo "$frag" | sed 's@/[^/]*$@@;s@^.*/@@'`
-    echo $ECHO_N "$name $ECHO_C" >&6
-    . "$frag"
-  done
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5
-$as_echo "" >&6; }
-fi
-
-
-###
-### By using the undocumented --enable-hacker-mode option for configure
-### one can skip this test to make the configuration not fail for unsupported
-### platforms.
-###
-if test -z "$enable_hacker_mode" && test x"$libc_config_ok" != xyes; then
-  case "$machine-$host_os" in
-  *-linux* | *-gnu*)
-    ;;
-  *)
-    as_fn_error $? "
-*** The GNU C library is currently unavailable for this platform.
-*** If you are interested in seeing glibc on this platform visit
-*** the \"How to submit a new port\" in the wiki:
-***   https://sourceware.org/glibc/wiki/#Development
-*** and join the community!" "$LINENO" 5
-    ;;
-  esac
-fi
-
-# Set base_machine if not set by a preconfigure fragment.
-test -n "$base_machine" || base_machine=$machine
-
-
-### Locate tools.
-
-# Find a good install program.  We prefer a C program (faster),
-# so one script is as good as another.  But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# AmigaOS /C/install, which installs bootblocks on floppy discs
-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
-# OS/2's system install, which has a completely different semantic
-# ./install, which can be erroneously created by make from ./install.sh.
-# Reject install programs that cannot install multiple files.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
-$as_echo_n "checking for a BSD-compatible install... " >&6; }
-if test -z "$INSTALL"; then
-if ${ac_cv_path_install+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    # Account for people who put trailing slashes in PATH elements.
-case $as_dir/ in #((
-  ./ | .// | /[cC]/* | \
-  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
-  ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
-  /usr/ucb/* ) ;;
-  *)
-    # OSF1 and SCO ODT 3.0 have their own names for install.
-    # Don't use installbsd from OSF since it installs stuff as root
-    # by default.
-    for ac_prog in ginstall scoinst install; do
-      for ac_exec_ext in '' $ac_executable_extensions; do
-	if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
-	  if test $ac_prog = install &&
-	    grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
-	    # AIX install.  It has an incompatible calling convention.
-	    :
-	  elif test $ac_prog = install &&
-	    grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
-	    # program-specific install script used by HP pwplus--don't use.
-	    :
-	  else
-	    rm -rf conftest.one conftest.two conftest.dir
-	    echo one > conftest.one
-	    echo two > conftest.two
-	    mkdir conftest.dir
-	    if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
-	      test -s conftest.one && test -s conftest.two &&
-	      test -s conftest.dir/conftest.one &&
-	      test -s conftest.dir/conftest.two
-	    then
-	      ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
-	      break 3
-	    fi
-	  fi
-	fi
-      done
-    done
-    ;;
-esac
-
-  done
-IFS=$as_save_IFS
-
-rm -rf conftest.one conftest.two conftest.dir
-
-fi
-  if test "${ac_cv_path_install+set}" = set; then
-    INSTALL=$ac_cv_path_install
-  else
-    # As a last resort, use the slow shell script.  Don't cache a
-    # value for INSTALL within a source directory, because that will
-    # break other packages using the cache if that directory is
-    # removed, or if the value is a relative name.
-    INSTALL=$ac_install_sh
-  fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
-$as_echo "$INSTALL" >&6; }
-
-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-# It thinks the first close brace ends the variable substitution.
-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
-
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-if test "$INSTALL" = "${srcdir}/scripts/install-sh -c"; then
-  # The makefiles need to use a different form to find it in $srcdir.
-  INSTALL='\$(..)./scripts/install-sh -c'
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
-$as_echo_n "checking whether ln -s works... " >&6; }
-LN_S=$as_ln_s
-if test "$LN_S" = "ln -s"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
-$as_echo "no, using $LN_S" >&6; }
-fi
-
-
-# Was a --with-binutils option given?
-if test -n "$path_binutils"; then
-    # Make absolute; ensure a single trailing slash.
-    path_binutils=`(cd $path_binutils; pwd) | sed 's%/*$%/%'`
-    CC="$CC -B$path_binutils"
-fi
-case "$CC" in
-    *fuse-ld=lld*) LDNAME=ld.lld;;
-    *)             LDNAME=ld;;
-esac
-if test -z "$LD"; then
-    LD=`$CC -print-prog-name=$LDNAME`
-fi
-if test -z "$AR"; then
-    AR=`$CC -print-prog-name=ar`
-fi
-
-if test -z "$OBJCOPY"; then
-    OBJCOPY=`$CC -print-prog-name=objcopy`
-fi
-
-if test -z "$GPROF"; then
-    GPROF=`$CC -print-prog-name=gprof`
-fi
-
-if test -z "$READELF"; then
-    READELF=`$CC -print-prog-name=readelf`
-fi
-
-if test -z "$OBJDUMP"; then
-    OBJDUMP=`$CC -print-prog-name=objdump`
-fi
-
-if test -z "$NM"; then
-    NM=`$CC -print-prog-name=nm`
-fi
-
-
-
-# Accept binutils 2.25 or newer.
-libc_cv_with_lld=no
-case $($LD --version) in
-  "GNU gold"*)
-  # Accept gold 1.14 or higher
-    for ac_prog in $LD
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_LD+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$LD"; then
-  ac_cv_prog_LD="$LD" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_LD="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-LD=$ac_cv_prog_LD
-if test -n "$LD"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
-$as_echo "$LD" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$LD" && break
-done
-
-if test -z "$LD"; then
-  ac_verc_fail=yes
-else
-  # Found it, now check the version.
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking version of $LD" >&5
-$as_echo_n "checking version of $LD... " >&6; }
-  ac_prog_version=`$LD --version 2>&1 | sed -n 's/^.*GNU gold.* \([0-9][0-9]*\.[0-9.]*\).*$/\1/p'`
-  case $ac_prog_version in
-    '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
-    1.1[4-9]*|1.[2-9][0-9]*|1.1[0-9][0-9]*|[2-9].*|[1-9][0-9]*)
-       ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
-    *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
-
-  esac
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_prog_version" >&5
-$as_echo "$ac_prog_version" >&6; }
-fi
-if test $ac_verc_fail = yes; then
-  LD=: critic_missing="$critic_missing GNU gold"
-fi
-
-    ;;
-  "LLD"*)
-  # Accept LLD 13.0.0 or higher
-    for ac_prog in $LD
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_LD+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$LD"; then
-  ac_cv_prog_LD="$LD" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_LD="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-LD=$ac_cv_prog_LD
-if test -n "$LD"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
-$as_echo "$LD" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$LD" && break
-done
-
-if test -z "$LD"; then
-  ac_verc_fail=yes
-else
-  # Found it, now check the version.
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking version of $LD" >&5
-$as_echo_n "checking version of $LD... " >&6; }
-  ac_prog_version=`$LD --version 2>&1 | sed -n 's/^.*LLD.* \([0-9][0-9]*\.[0-9.]*\).*$/\1/p'`
-  case $ac_prog_version in
-    '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
-    1[3-9].*|[2-9][0-9].*)
-       ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
-    *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
-
-  esac
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_prog_version" >&5
-$as_echo "$ac_prog_version" >&6; }
-fi
-if test $ac_verc_fail = yes; then
-  LD=: critic_missing="$critic_missing LLD"
-fi
-
-    libc_cv_with_lld=yes
-    ;;
-  *)
-    for ac_prog in $LD
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_LD+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$LD"; then
-  ac_cv_prog_LD="$LD" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_LD="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-LD=$ac_cv_prog_LD
-if test -n "$LD"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
-$as_echo "$LD" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$LD" && break
-done
-
-if test -z "$LD"; then
-  ac_verc_fail=yes
-else
-  # Found it, now check the version.
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking version of $LD" >&5
-$as_echo_n "checking version of $LD... " >&6; }
-  ac_prog_version=`$LD --version 2>&1 | sed -n 's/^.*GNU ld.* \([0-9][0-9]*\.[0-9.]*\).*$/\1/p'`
-  case $ac_prog_version in
-    '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
-    2.1[0-9][0-9]*|2.2[5-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*)
-       ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
-    *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
-
-  esac
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_prog_version" >&5
-$as_echo "$ac_prog_version" >&6; }
-fi
-if test $ac_verc_fail = yes; then
-  LD=: critic_missing="$critic_missing GNU ld"
-fi
-
-    ;;
-esac
-config_vars="$config_vars
-with-lld = $libc_cv_with_lld"
-
-# These programs are version sensitive.
-for ac_prog in gnumake gmake make
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_MAKE+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$MAKE"; then
-  ac_cv_prog_MAKE="$MAKE" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_MAKE="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-MAKE=$ac_cv_prog_MAKE
-if test -n "$MAKE"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAKE" >&5
-$as_echo "$MAKE" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$MAKE" && break
-done
-
-if test -z "$MAKE"; then
-  ac_verc_fail=yes
-else
-  # Found it, now check the version.
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking version of $MAKE" >&5
-$as_echo_n "checking version of $MAKE... " >&6; }
-  ac_prog_version=`$MAKE --version 2>&1 | sed -n 's/^.*GNU Make[^0-9]*\([0-9][0-9.]*\).*$/\1/p'`
-  case $ac_prog_version in
-    '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
-    [4-9].* | [1-9][0-9]*)
-       ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
-    *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
-
-  esac
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_prog_version" >&5
-$as_echo "$ac_prog_version" >&6; }
-fi
-if test $ac_verc_fail = yes; then
-  critic_missing="$critic_missing make"
-fi
-
-
-for ac_prog in gnumsgfmt gmsgfmt msgfmt
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_MSGFMT+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$MSGFMT"; then
-  ac_cv_prog_MSGFMT="$MSGFMT" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_MSGFMT="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-MSGFMT=$ac_cv_prog_MSGFMT
-if test -n "$MSGFMT"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5
-$as_echo "$MSGFMT" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$MSGFMT" && break
-done
-
-if test -z "$MSGFMT"; then
-  ac_verc_fail=yes
-else
-  # Found it, now check the version.
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking version of $MSGFMT" >&5
-$as_echo_n "checking version of $MSGFMT... " >&6; }
-  ac_prog_version=`$MSGFMT --version 2>&1 | sed -n 's/^.*GNU gettext.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
-  case $ac_prog_version in
-    '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
-    0.10.3[6-9]* | 0.10.[4-9][0-9]* | 0.1[1-9]* | 0.[2-9][0-9]* | [1-9].*)
-       ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
-    *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
-
-  esac
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_prog_version" >&5
-$as_echo "$ac_prog_version" >&6; }
-fi
-if test $ac_verc_fail = yes; then
-  MSGFMT=: aux_missing="$aux_missing msgfmt"
-fi
-
-for ac_prog in makeinfo
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_MAKEINFO+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$MAKEINFO"; then
-  ac_cv_prog_MAKEINFO="$MAKEINFO" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_MAKEINFO="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-MAKEINFO=$ac_cv_prog_MAKEINFO
-if test -n "$MAKEINFO"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAKEINFO" >&5
-$as_echo "$MAKEINFO" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$MAKEINFO" && break
-done
-
-if test -z "$MAKEINFO"; then
-  ac_verc_fail=yes
-else
-  # Found it, now check the version.
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking version of $MAKEINFO" >&5
-$as_echo_n "checking version of $MAKEINFO... " >&6; }
-  ac_prog_version=`$MAKEINFO --version 2>&1 | sed -n 's/^.*GNU texinfo.* \([0-9][0-9.]*\).*$/\1/p'`
-  case $ac_prog_version in
-    '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
-    4.[7-9]*|4.[1-9][0-9]*|[5-9].*)
-       ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
-    *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
-
-  esac
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_prog_version" >&5
-$as_echo "$ac_prog_version" >&6; }
-fi
-if test $ac_verc_fail = yes; then
-  MAKEINFO=: aux_missing="$aux_missing makeinfo"
-fi
-
-for ac_prog in sed
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_SED+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$SED"; then
-  ac_cv_prog_SED="$SED" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_SED="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-SED=$ac_cv_prog_SED
-if test -n "$SED"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SED" >&5
-$as_echo "$SED" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$SED" && break
-done
-
-if test -z "$SED"; then
-  ac_verc_fail=yes
-else
-  # Found it, now check the version.
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking version of $SED" >&5
-$as_echo_n "checking version of $SED... " >&6; }
-  ac_prog_version=`$SED --version 2>&1 | sed -n 's/^.*GNU sed[^0-9]* \([0-9]*\.[0-9.]*\).*$/\1/p'`
-  case $ac_prog_version in
-    '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
-    3.0[2-9]*|3.[1-9]*|[4-9]*)
-       ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
-    *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
-
-  esac
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_prog_version" >&5
-$as_echo "$ac_prog_version" >&6; }
-fi
-if test $ac_verc_fail = yes; then
-  SED=: aux_missing="$aux_missing sed"
-fi
-
-for ac_prog in gawk
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_AWK+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$AWK"; then
-  ac_cv_prog_AWK="$AWK" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_AWK="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-AWK=$ac_cv_prog_AWK
-if test -n "$AWK"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
-$as_echo "$AWK" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$AWK" && break
-done
-
-if test -z "$AWK"; then
-  ac_verc_fail=yes
-else
-  # Found it, now check the version.
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking version of $AWK" >&5
-$as_echo_n "checking version of $AWK... " >&6; }
-  ac_prog_version=`$AWK --version 2>&1 | sed -n 's/^.*GNU Awk[^0-9]*\([0-9][0-9.]*\).*$/\1/p'`
-  case $ac_prog_version in
-    '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
-    3.1.[2-9]*|3.[2-9]*|[4-9]*)
-       ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
-    *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
-
-  esac
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_prog_version" >&5
-$as_echo "$ac_prog_version" >&6; }
-fi
-if test $ac_verc_fail = yes; then
-  critic_missing="$critic_missing gawk"
-fi
-
-for ac_prog in bison
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_BISON+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$BISON"; then
-  ac_cv_prog_BISON="$BISON" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_BISON="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-BISON=$ac_cv_prog_BISON
-if test -n "$BISON"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BISON" >&5
-$as_echo "$BISON" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$BISON" && break
-done
-
-if test -z "$BISON"; then
-  ac_verc_fail=yes
-else
-  # Found it, now check the version.
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking version of $BISON" >&5
-$as_echo_n "checking version of $BISON... " >&6; }
-  ac_prog_version=`$BISON --version 2>&1 | sed -n 's/^.*bison (GNU Bison) \([0-9]*\.[0-9.]*\).*$/\1/p'`
-  case $ac_prog_version in
-    '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
-    2.7*|[3-9].*|[1-9][0-9]*)
-       ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
-    *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
-
-  esac
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_prog_version" >&5
-$as_echo "$ac_prog_version" >&6; }
-fi
-if test $ac_verc_fail = yes; then
-  critic_missing="$critic_missing bison"
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC is sufficient to build libc" >&5
-$as_echo_n "checking if $CC is sufficient to build libc... " >&6; }
-if ${libc_cv_compiler_ok+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-#if !defined __GNUC__ || __GNUC__ < 6 || (__GNUC__ == 6 && __GNUC_MINOR__ < 2)
-#error insufficient compiler
-#endif
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-  libc_cv_compiler_ok=yes
-else
-  libc_cv_compiler_ok=no
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_compiler_ok" >&5
-$as_echo "$libc_cv_compiler_ok" >&6; }
-if test $libc_cv_compiler_ok != yes; then :
-  critic_missing="$critic_missing compiler"
-fi
-
-if test "x$maintainer" = "xyes"; then
-  for ac_prog in autoconf
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_AUTOCONF+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$AUTOCONF"; then
-  ac_cv_prog_AUTOCONF="$AUTOCONF" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_AUTOCONF="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-AUTOCONF=$ac_cv_prog_AUTOCONF
-if test -n "$AUTOCONF"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AUTOCONF" >&5
-$as_echo "$AUTOCONF" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$AUTOCONF" && break
-done
-test -n "$AUTOCONF" || AUTOCONF="no"
-
-  case "x$AUTOCONF" in
-  xno|x|x:) AUTOCONF=no ;;
-  *)
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking   whether $AUTOCONF${ACFLAGS:+ }$ACFLAGS works" >&5
-$as_echo_n "checking   whether $AUTOCONF${ACFLAGS:+ }$ACFLAGS works... " >&6; }
-if ${libc_cv_autoconf_works+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-      if (cd $srcdir; $AUTOCONF $ACFLAGS configure.ac > /dev/null 2>&1); then
-      libc_cv_autoconf_works=yes
-    else
-      libc_cv_autoconf_works=no
-    fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_autoconf_works" >&5
-$as_echo "$libc_cv_autoconf_works" >&6; }
-    test $libc_cv_autoconf_works = yes || AUTOCONF=no
-    ;;
-  esac
-  if test "x$AUTOCONF" = xno; then
-    aux_missing="$aux_missing autoconf"
-  fi
-else
-  AUTOCONF=no
-fi
-
-# Check for python3 if available, or else python.
-for ac_prog in python3 python
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_PYTHON_PROG+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$PYTHON_PROG"; then
-  ac_cv_prog_PYTHON_PROG="$PYTHON_PROG" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_PYTHON_PROG="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-PYTHON_PROG=$ac_cv_prog_PYTHON_PROG
-if test -n "$PYTHON_PROG"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON_PROG" >&5
-$as_echo "$PYTHON_PROG" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$PYTHON_PROG" && break
-done
-
-if test -z "$PYTHON_PROG"; then
-  ac_verc_fail=yes
-else
-  # Found it, now check the version.
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking version of $PYTHON_PROG" >&5
-$as_echo_n "checking version of $PYTHON_PROG... " >&6; }
-  ac_prog_version=`$PYTHON_PROG --version 2>&1 | sed -n 's/^.*Python \([0-9][0-9.]*\).*$/\1/p'`
-  case $ac_prog_version in
-    '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
-    3.[4-9]*|3.[1-9][0-9]*|[4-9].*|[1-9][0-9]*)
-       ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
-    *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
-
-  esac
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_prog_version" >&5
-$as_echo "$ac_prog_version" >&6; }
-fi
-if test $ac_verc_fail = yes; then
-  critic_missing="$critic_missing python"
-fi
-
-PYTHON="$PYTHON_PROG -B"
-
-
-test -n "$critic_missing" && as_fn_error $? "
-*** These critical programs are missing or too old:$critic_missing
-*** Check the INSTALL file for required versions." "$LINENO" 5
-
-test -n "$aux_missing" && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING:
-*** These auxiliary programs are missing or incompatible versions:$aux_missing
-*** some features or tests will be disabled.
-*** Check the INSTALL file for required versions." >&5
-$as_echo "$as_me: WARNING:
-*** These auxiliary programs are missing or incompatible versions:$aux_missing
-*** some features or tests will be disabled.
-*** Check the INSTALL file for required versions." >&2;}
-
-
-# Determine whether to use fpu or nofpu sysdeps directories.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for use of fpu sysdeps directories" >&5
-$as_echo_n "checking for use of fpu sysdeps directories... " >&6; }
-if ${libc_cv_with_fp+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat > conftest.c <<EOF
-#if $with_fp_cond
-int dummy;
-#else
-# error "no hardware floating point"
-#endif
-EOF
-libc_cv_with_fp=no
-if ${CC-cc} $CFLAGS $CPPFLAGS -S conftest.c -o conftest.s \
-   1>&5 2>&5 ; then
-  libc_cv_with_fp=yes
-fi
-rm -f conftest*
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_with_fp" >&5
-$as_echo "$libc_cv_with_fp" >&6; }
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -fstack-protector" >&5
-$as_echo_n "checking for -fstack-protector... " >&6; }
-if ${libc_cv_ssp+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -Werror -fstack-protector -xc /dev/null -S -o /dev/null'
-  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }; then :
-  libc_cv_ssp=yes
-else
-  libc_cv_ssp=no
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_ssp" >&5
-$as_echo "$libc_cv_ssp" >&6; }
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -fstack-protector-strong" >&5
-$as_echo_n "checking for -fstack-protector-strong... " >&6; }
-if ${libc_cv_ssp_strong+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -Werror -fstack-protector-strong -xc /dev/null -S -o /dev/null'
-  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }; then :
-  libc_cv_ssp_strong=yes
-else
-  libc_cv_ssp_strong=no
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_ssp_strong" >&5
-$as_echo "$libc_cv_ssp_strong" >&6; }
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -fstack-protector-all" >&5
-$as_echo_n "checking for -fstack-protector-all... " >&6; }
-if ${libc_cv_ssp_all+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -Werror -fstack-protector-all -xc /dev/null -S -o /dev/null'
-  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }; then :
-  libc_cv_ssp_all=yes
-else
-  libc_cv_ssp_all=no
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_ssp_all" >&5
-$as_echo "$libc_cv_ssp_all" >&6; }
-
-stack_protector=
-no_stack_protector=
-if test "$libc_cv_ssp" = yes; then
-  no_stack_protector="-fno-stack-protector -DSTACK_PROTECTOR_LEVEL=0"
-  $as_echo "#define HAVE_CC_NO_STACK_PROTECTOR 1" >>confdefs.h
-
-fi
-
-if test "$enable_stack_protector" = yes && test "$libc_cv_ssp" = yes; then
-  stack_protector="-fstack-protector"
-  $as_echo "#define STACK_PROTECTOR_LEVEL 1" >>confdefs.h
-
-elif test "$enable_stack_protector" = all && test "$libc_cv_ssp_all" = yes; then
-  stack_protector="-fstack-protector-all"
-  $as_echo "#define STACK_PROTECTOR_LEVEL 2" >>confdefs.h
-
-elif test "$enable_stack_protector" = strong && test "$libc_cv_ssp_strong" = yes; then
-  stack_protector="-fstack-protector-strong"
-  $as_echo "#define STACK_PROTECTOR_LEVEL 3" >>confdefs.h
-
-else
-  stack_protector="-fno-stack-protector"
-  $as_echo "#define STACK_PROTECTOR_LEVEL 0" >>confdefs.h
-
-fi
-
-
-
-
-if test -n "$stack_protector"; then
-      no_ssp=-fno-stack-protector
-else
-  no_ssp=
-
-  if test "$enable_stack_protector" != no; then
-    as_fn_error $? "--enable-stack-protector=$enable_stack_protector specified, but specified level of stack protection is not supported by the compiler." "$LINENO" 5
-  fi
-fi
-
-# For the multi-arch option we need support in the assembler & linker.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for assembler and linker STT_GNU_IFUNC support" >&5
-$as_echo_n "checking for assembler and linker STT_GNU_IFUNC support... " >&6; }
-if ${libc_cv_ld_gnu_indirect_function+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat > conftest.S <<EOF
-.type foo,%gnu_indirect_function
-foo:
-.globl _start
-_start:
-.globl __start
-__start:
-.data
-#ifdef _LP64
-.quad foo
-#else
-.long foo
-#endif
-EOF
-libc_cv_ld_gnu_indirect_function=no
-if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \
-	    -nostartfiles -nostdlib $no_ssp \
-	    -o conftest conftest.S 1>&5 2>&5; then
-  # Do a link to see if the backend supports IFUNC relocs.
-  $READELF -r conftest 1>&5
-  LC_ALL=C $READELF -Wr conftest | grep -q 'IRELATIVE\|R_SPARC_JMP_IREL' && {
-    libc_cv_ld_gnu_indirect_function=yes
-  }
-fi
-rm -f conftest*
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_ld_gnu_indirect_function" >&5
-$as_echo "$libc_cv_ld_gnu_indirect_function" >&6; }
-
-# Check if gcc supports attribute ifunc as it is used in libc_ifunc macro.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for gcc attribute ifunc support" >&5
-$as_echo_n "checking for gcc attribute ifunc support... " >&6; }
-if ${libc_cv_gcc_indirect_function+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat > conftest.c <<EOF
-extern int func (int);
-int used_func (int a)
-{
-  return a;
-}
-static void *resolver ()
-{
-  return &used_func;
-}
-extern __typeof (func) func __attribute__ ((ifunc ("resolver")));
-EOF
-libc_cv_gcc_indirect_function=no
-if ${CC-cc} -c conftest.c -o conftest.o 1>&5 \
-   2>&5 ; then
-  if $READELF -s conftest.o | grep IFUNC >/dev/null 2>&5; then
-    libc_cv_gcc_indirect_function=yes
-  fi
-fi
-rm -f conftest*
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_gcc_indirect_function" >&5
-$as_echo "$libc_cv_gcc_indirect_function" >&6; }
-
-# Check if linker supports textrel relocation with ifunc (used on elf/tests).
-# Note that it relies on libc_cv_ld_gnu_indirect_function test above.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker supports textrels along with ifunc" >&5
-$as_echo_n "checking whether the linker supports textrels along with ifunc... " >&6; }
-if ${libc_cv_textrel_ifunc+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat > conftest.S <<EOF
-.type foo,%gnu_indirect_function
-foo:
-.globl _start
-_start:
-.globl __start
-__start:
-.data
-#ifdef _LP64
-.quad foo
-#else
-.long foo
-#endif
-.text
-.globl address
-address:
-#ifdef _LP64
-.quad address
-#else
-.long address
-#endif
-EOF
-libc_cv_textrel_ifunc=no
-if test $libc_cv_ld_gnu_indirect_function = yes; then
-   if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -nostartfiles -nostdlib $no_ssp -pie -o conftest conftest.S'
-  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }; then
-     libc_cv_textrel_ifunc=yes
-   fi
-fi
-rm -f conftest*
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_textrel_ifunc" >&5
-$as_echo "$libc_cv_textrel_ifunc" >&6; }
-
-
-# Check if CC supports attribute retain as it is used in attribute_used_retain macro.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU attribute retain support" >&5
-$as_echo_n "checking for GNU attribute retain support... " >&6; }
-if ${libc_cv_gnu_retain+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat > conftest.c <<EOF
-static int var  __attribute__ ((used, retain, section ("__libc_atexit")));
-EOF
-libc_cv_gnu_retain=no
-if ${CC-cc} -Werror -c conftest.c -o /dev/null 1>&5 \
-   2>&5 ; then
-  libc_cv_gnu_retain=yes
-fi
-rm -f conftest*
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_gnu_retain" >&5
-$as_echo "$libc_cv_gnu_retain" >&6; }
-if test $libc_cv_gnu_retain = yes; then
-  $as_echo "#define HAVE_GNU_RETAIN 1" >>confdefs.h
-
-fi
-config_vars="$config_vars
-have-gnu-retain = $libc_cv_gnu_retain"
-
-# Check if gcc warns about alias for function with incompatible types.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler warns about alias for function with incompatible types" >&5
-$as_echo_n "checking if compiler warns about alias for function with incompatible types... " >&6; }
-if ${libc_cv_gcc_incompatible_alias+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat > conftest.c <<EOF
-int __redirect_foo (const void *s, int c);
-
-__typeof (__redirect_foo) *foo_impl (void) __asm__ ("foo");
-__typeof (__redirect_foo) *foo_impl (void)
-{
-  return 0;
-}
-
-extern __typeof (__redirect_foo) foo_alias __attribute__ ((alias ("foo")));
-EOF
-libc_cv_gcc_incompatible_alias=yes
-if ${CC-cc} -Werror -c conftest.c -o conftest.o 1>&5 2>&5 ; then
-  libc_cv_gcc_incompatible_alias=no
-fi
-rm -f conftest*
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_gcc_incompatible_alias" >&5
-$as_echo "$libc_cv_gcc_incompatible_alias" >&6; }
-
-if test x"$libc_cv_ld_gnu_indirect_function" != xyes; then
-  if test x"$multi_arch" = xyes; then
-    as_fn_error $? "--enable-multi-arch support requires assembler and linker support" "$LINENO" 5
-  else
-    multi_arch=no
-  fi
-fi
-if test x"$libc_cv_gcc_indirect_function" != xyes; then
-  # GCC 8+ emits a warning for alias with incompatible types and it might
-  # fail to build ifunc resolvers aliases to either weak or internal
-  # symbols.  Disables multiarch build in this case.
-  if test x"$libc_cv_gcc_incompatible_alias" = xyes; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: gcc emits a warning for alias between functions of incompatible types" >&5
-$as_echo "$as_me: WARNING: gcc emits a warning for alias between functions of incompatible types" >&2;}
-    if test x"$multi_arch" = xyes; then
-      as_fn_error $? "--enable-multi-arch support requires a gcc with gnu-indirect-function support" "$LINENO" 5
-    fi
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Multi-arch is disabled." >&5
-$as_echo "$as_me: WARNING: Multi-arch is disabled." >&2;}
-    multi_arch=no
-  elif test x"$multi_arch" = xyes; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: --enable-multi-arch support recommends a gcc with gnu-indirect-function support.
-Please use a gcc which supports it by default or configure gcc with --enable-gnu-indirect-function" >&5
-$as_echo "$as_me: WARNING: --enable-multi-arch support recommends a gcc with gnu-indirect-function support.
-Please use a gcc which supports it by default or configure gcc with --enable-gnu-indirect-function" >&2;}
-  fi
-fi
-multi_arch_d=
-if test x"$multi_arch" != xno; then
-  multi_arch_d=/multiarch
-fi
-
-# Compute the list of sysdep directories for this configuration.
-# This can take a while to compute.
-sysdep_dir=$srcdir/sysdeps
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking sysdep dirs" >&5
-$as_echo_n "checking sysdep dirs... " >&6; }
-# Make sco3.2v4 become sco3.2.4 and sunos4.1.1_U1 become sunos4.1.1.U1.
-os="`echo $os | sed 's/\([0-9A-Z]\)[v_]\([0-9A-Z]\)/\1.\2/g'`"
-
-test "x$base_os" != x || case "$os" in
-gnu*)
-  base_os=mach/hurd ;;
-linux*)
-  base_os=unix/sysv ;;
-esac
-
-# For sunos4.1.1, try sunos4.1.1, then sunos4.1, then sunos4, then sunos.
-tail=$os
-ostry=$os
-while o=`echo $tail | sed 's/\.[^.]*$//'`; test $o != $tail; do
-  ostry="$ostry /$o"
-  tail=$o
-done
-o=`echo $tail | sed 's/[0-9]*$//'`
-if test $o != $tail; then
-  ostry="$ostry /$o"
-fi
-# For linux-gnu, try linux-gnu, then linux.
-o=`echo $tail | sed 's/-.*$//'`
-if test $o != $tail; then
-  ostry="$ostry /$o"
-fi
-
-# For unix/sysv/sysv4, try unix/sysv/sysv4, then unix/sysv, then unix.
-base=
-tail=$base_os
-while b=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$b"; do
-  set $b
-  base="$base /$1"
-  tail="$2"
-done
-
-# For sparc/sparc32, try sparc/sparc32 and then sparc.
-mach=
-tail=$machine${submachine:+/$submachine}
-while m=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$m"; do
-  set $m
-  # Prepend the machine's FPU directory unless the architecture specific
-  # preconfigure disables it.
-  if test "$libc_cv_with_fp" = yes; then
-    maybe_fpu=/fpu
-  else
-    maybe_fpu=/nofpu
-  fi
-  # For each machine term, try it with and then without /multiarch.
-  for try_fpu in $maybe_fpu ''; do
-    for try_multi in $multi_arch_d ''; do
-      mach="$mach /$1$try_fpu$try_multi"
-    done
-  done
-  tail="$2"
-done
-
-
-# Find what sysdep directories exist.
-sysnames=
-for b in $base ''; do
-  for m0 in $mach ''; do
-    for v in /$vendor ''; do
-      test "$v" = / && continue
-      for o in /$ostry ''; do
-	test "$o" = / && continue
-	for m in $mach ''; do
-	  try_suffix="$m0$b$v$o$m"
-	  if test -n "$try_suffix"; then
-	    try_srcdir="${srcdir}/"
-	    try="sysdeps$try_suffix"
-	    test -n "$enable_debug_configure" &&
-	    echo "$0 DEBUG: try $try" >&2
-	    if test -d "$try_srcdir$try"; then
-	      sysnames="$sysnames $try"
-	      { test -n "$o" || test -n "$b"; } && os_used=t
-	      { test -n "$m" || test -n "$m0"; } && machine_used=t
-	      case x${m0:-$m} in
-	      x*/$submachine) submachine_used=t ;;
-	      esac
-	    fi
-	  fi
-	done
-      done
-    done
-  done
-done
-
-# If the assembler supports gnu_indirect_function symbol type and the
-# architecture supports multi-arch, we enable multi-arch by default.
-case $sysnames in
-*"$multi_arch_d"*)
-  ;;
-*)
-  test x"$multi_arch" = xdefault && multi_arch=no
-  ;;
-esac
-if test x"$multi_arch" != xno; then
-  $as_echo "#define USE_MULTIARCH 1" >>confdefs.h
-
-fi
-
-
-if test -z "$os_used" && test "$os" != none; then
-  as_fn_error $? "Operating system $os is not supported." "$LINENO" 5
-fi
-if test -z "$machine_used" && test "$machine" != none; then
-  as_fn_error $? "The $machine is not supported." "$LINENO" 5
-fi
-if test -z "$submachine_used" && test -n "$submachine"; then
-  as_fn_error $? "The $submachine subspecies of $host_cpu is not supported." "$LINENO" 5
-fi
-
-
-# We have now validated the configuration.
-
-# Expand the list of system names into a full list of directories
-# from each element's parent name and Implies file (if present).
-set $sysnames
-names=
-while test $# -gt 0; do
-  name=$1
-  shift
-
-  case " $names " in *" $name "*)
-    # Already in the list.
-    continue
-  esac
-
-  # Report each name as we discover it, so there is no long pause in output.
-  echo $ECHO_N "$name $ECHO_C" >&6
-
-  name_base=`echo $name | sed -e 's@\(.*sysdeps\)/.*@\1@'`
-
-  case $name in
-    /*) xsrcdir= ;;
-    *)  xsrcdir=$srcdir/ ;;
-  esac
-  test -n "$enable_debug_configure" &&
-  echo "DEBUG: name/Implies $xsrcdir$name/Implies" >&2
-
-  for implies_file in Implies Implies-before Implies-after; do
-    implies_type=`echo $implies_file | sed s/-/_/`
-    eval ${implies_type}=
-    if test -f $xsrcdir$name/$implies_file; then
-      # Collect more names from the `Implies' file (removing comments).
-      implied_candidate="`sed 's/#.*$//' < $xsrcdir$name/$implies_file`"
-      for x in $implied_candidate; do
-	found=no
-	if test -d $xsrcdir$name_base/$x; then
-	  eval "${implies_type}=\"\$${implies_type} \$name_base/\$x\""
-	  found=yes
-	fi
-	try="sysdeps/$x"
-	try_srcdir=$srcdir/
-	test -n "$enable_debug_configure" &&
-	 echo "DEBUG: $name $implies_file $x try() {$try_srcdir}$try" >&2
-	if test $try != $xsrcdir$name_base/$x && test -d $try_srcdir$try;
-	then
-	  eval "${implies_type}=\"\$${implies_type} \$try\""
-	  found=yes
-	fi
-	if test $found = no; then
-	  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $name/$implies_file specifies nonexistent $x" >&5
-$as_echo "$as_me: WARNING: $name/$implies_file specifies nonexistent $x" >&2;}
-	fi
-      done
-    fi
-  done
-
-  # Add NAME to the list of names.
-  names="$names $name"
-
-  # Find the parent of NAME, using the empty string if it has none.
-  parent="`echo $name | sed -n -e 's=/[^/]*$==' -e '/sysdeps$/q' -e p`"
-
-  test -n "$enable_debug_configure" &&
-    echo "DEBUG: $name Implies='$Implies' rest='$*' parent='$parent' \
-Implies_before='$Implies_before' Implies_after='$Implies_after'" >&2
-
-  # Add the names implied by NAME, and NAME's parent (if it has one), to
-  # the list of names to be processed (the argument list).  We prepend the
-  # implied names to the list and append the parent.  We want implied
-  # directories to come before further directories inferred from the
-  # configuration components; this ensures that for sysv4, unix/common
-  # (implied by unix/sysv/sysv4) comes before unix/sysv (in ostry (here $*)
-  # after sysv4).
-  sysnames="`echo $Implies $* $Implies_before $parent $Implies_after`"
-  test -n "$sysnames" && set $sysnames
-done
-
-# Add the default directories.
-default_sysnames="sysdeps/generic"
-sysnames="$names $default_sysnames"
-
-# The other names were emitted during the scan.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $default_sysnames" >&5
-$as_echo "$default_sysnames" >&6; }
-
-# if using special system headers, find out the compiler's sekrit
-# header directory and add that to the list.  NOTE: Only does the right
-# thing on a system that doesn't need fixincludes.  (Not presently a problem.)
-if test -n "$sysheaders"; then
-  SYSINCLUDES=-nostdinc
-  for d in include include-fixed; do
-    i=`$CC -print-file-name="$d"` && test "x$i" != x && test "x$i" != "x$d" &&
-    SYSINCLUDES="$SYSINCLUDES -isystem $i"
-  done
-  SYSINCLUDES="$SYSINCLUDES \
--isystem `echo $sysheaders | sed 's/:/ -isystem /g'`"
-  if test -n "$CXX"; then
-    CXX_SYSINCLUDES=
-    for cxxheaders in `$CXX -v -S -x c++ /dev/null -o /dev/null 2>&1 \
-    | sed -n -e '1,/#include/d' -e 's/^ \(\/.*\/[cg]++\)/\1/p'`; do
-      test "x$cxxheaders" != x &&
-      CXX_SYSINCLUDES="$CXX_SYSINCLUDES -isystem $cxxheaders"
-    done
-  fi
-fi
-
-
-
-# Obtain some C++ header file paths.  This is used to make a local
-# copy of those headers in Makerules.
-if test -n "$CXX"; then
-  find_cxx_header () {
-    echo "#include <$1>" | $CXX -H -fsyntax-only -x c++ - 2>&1 \
-	 | $AWK '$1 == "."{print $2}'
-  }
-  CXX_CSTDLIB_HEADER="$(find_cxx_header cstdlib)"
-  CXX_CMATH_HEADER="$(find_cxx_header cmath)"
-  CXX_BITS_STD_ABS_H="$(find_cxx_header bits/std_abs.h)"
-fi
-
-
-
-
-# Test if LD_LIBRARY_PATH contains the notation for the current directory
-# since this would lead to problems installing/building glibc.
-# LD_LIBRARY_PATH contains the current directory if one of the following
-# is true:
-# - one of the terminals (":" and ";") is the first or last sign
-# - two terminals occur directly after each other
-# - the path contains an element with a dot in it
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking LD_LIBRARY_PATH variable" >&5
-$as_echo_n "checking LD_LIBRARY_PATH variable... " >&6; }
-case ${LD_LIBRARY_PATH} in
-  [:\;]* | *[:\;] | *[:\;][:\;]* |  *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* )
-    ld_library_path_setting="contains current directory"
-    ;;
-  *)
-    ld_library_path_setting="ok"
-    ;;
-esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_library_path_setting" >&5
-$as_echo "$ld_library_path_setting" >&6; }
-if test "$ld_library_path_setting" != "ok"; then
-as_fn_error $? "
-*** LD_LIBRARY_PATH shouldn't contain the current directory when
-*** building glibc. Please change the environment variable
-*** and run configure again." "$LINENO" 5
-fi
-
-# Extract the first word of "bash", so it can be a program name with args.
-set dummy bash; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_BASH_SHELL+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $BASH_SHELL in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_BASH_SHELL="$BASH_SHELL" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_BASH_SHELL="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_path_BASH_SHELL" && ac_cv_path_BASH_SHELL="no"
-  ;;
-esac
-fi
-BASH_SHELL=$ac_cv_path_BASH_SHELL
-if test -n "$BASH_SHELL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BASH_SHELL" >&5
-$as_echo "$BASH_SHELL" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-
-# Extract the first word of "perl", so it can be a program name with args.
-set dummy perl; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_PERL+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $PERL in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_PERL="$PERL" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_path_PERL" && ac_cv_path_PERL="no"
-  ;;
-esac
-fi
-PERL=$ac_cv_path_PERL
-if test -n "$PERL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5
-$as_echo "$PERL" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-if test "$PERL" != no &&
-   (eval `$PERL -V:apiversion`; test `expr "$apiversion" \< 5` -ne 0); then
-  PERL=no
-fi
-# Extract the first word of "install-info", so it can be a program name with args.
-set dummy install-info; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_INSTALL_INFO+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $INSTALL_INFO in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_INSTALL_INFO="$INSTALL_INFO" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-as_dummy="$PATH:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin"
-for as_dir in $as_dummy
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_INSTALL_INFO="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_path_INSTALL_INFO" && ac_cv_path_INSTALL_INFO="no"
-  ;;
-esac
-fi
-INSTALL_INFO=$ac_cv_path_INSTALL_INFO
-if test -n "$INSTALL_INFO"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL_INFO" >&5
-$as_echo "$INSTALL_INFO" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for .set assembler directive" >&5
-$as_echo_n "checking for .set assembler directive... " >&6; }
-if ${libc_cv_asm_set_directive+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat > conftest.s <<EOF
-.text
-foo:
-.set glibc_conftest_frobozz,foo
-.globl glibc_conftest_frobozz
-EOF
-# The alpha-dec-osf1 assembler gives only a warning for `.set'
-# (but it doesn't work), so we must do a linking check to be sure.
-cat > conftest1.c <<\EOF
-extern int glibc_conftest_frobozz;
-void _start() { glibc_conftest_frobozz = 1; }
-EOF
-if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \
-	    -nostartfiles -nostdlib $no_ssp \
-	    -o conftest conftest.s conftest1.c 1>&5 2>&5; then
-  libc_cv_asm_set_directive=yes
-else
-  libc_cv_asm_set_directive=no
-fi
-rm -f conftest*
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_asm_set_directive" >&5
-$as_echo "$libc_cv_asm_set_directive" >&6; }
-if test $libc_cv_asm_set_directive = yes; then
-  $as_echo "#define HAVE_ASM_SET_DIRECTIVE 1" >>confdefs.h
-
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking linker support for protected data symbol" >&5
-$as_echo_n "checking linker support for protected data symbol... " >&6; }
-if ${libc_cv_protected_data+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat > conftest.c <<EOF
-		int bar __attribute__ ((visibility ("protected"))) = 1;
-EOF
-		libc_cv_protected_data=no
-		if { ac_try='${CC-cc} -nostdlib -nostartfiles $no_ssp -fPIC -shared conftest.c -o conftest.so'
-  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }; then
-		  cat > conftest.c <<EOF
-		  extern int bar;
-		  int main (void) { return bar; }
-EOF
-		  if { ac_try='${CC-cc} -nostdlib -nostartfiles $no_ssp conftest.c -o conftest conftest.so'
-  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }; then
-		    libc_cv_protected_data=yes
-		  fi
-		fi
-		rm -f conftest.*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_protected_data" >&5
-$as_echo "$libc_cv_protected_data" >&6; }
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking linker support for INSERT in linker script" >&5
-$as_echo_n "checking linker support for INSERT in linker script... " >&6; }
-if ${libc_cv_insert+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat > conftest.c <<EOF
-		int __attribute__ ((section(".bar"))) bar = 0x12345678;
-		int test (void) { return bar; }
-EOF
-		cat > conftest.t <<EOF
-		SECTIONS
-		{
-		  .bar : { *(.bar) }
-		}
-		INSERT AFTER .rela.dyn;
-EOF
-		libc_cv_insert=no
-		if { ac_try='${CC-cc} -nostdlib -nostartfiles $no_ssp -fPIC -shared conftest.c -Wl,-T,conftest.t -o conftest.so'
-  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }; then
-		  libc_cv_insert=yes
-		fi
-		rm -f conftest.*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_insert" >&5
-$as_echo "$libc_cv_insert" >&6; }
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for broken __attribute__((alias()))" >&5
-$as_echo_n "checking for broken __attribute__((alias()))... " >&6; }
-if ${libc_cv_broken_alias_attribute+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat > conftest.c <<EOF
-	       extern int foo (int x) __asm ("xyzzy");
-	       int bar (int x) { return x; }
-	       extern __typeof (bar) foo __attribute ((weak, alias ("bar")));
-	       extern int dfoo;
-	       extern __typeof (dfoo) dfoo __asm ("abccb");
-	       int dfoo = 1;
-EOF
-	       libc_cv_broken_alias_attribute=yes
-	       if { ac_try='${CC-cc} -Werror -S conftest.c -o conftest.s 1>&5'
-  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }; then
-		 if grep 'xyzzy' conftest.s >/dev/null &&
-		    grep 'abccb' conftest.s >/dev/null; then
-		   libc_cv_broken_alias_attribute=no
-		 fi
-	       fi
-	       rm -f conftest.c conftest.s
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_broken_alias_attribute" >&5
-$as_echo "$libc_cv_broken_alias_attribute" >&6; }
-if test $libc_cv_broken_alias_attribute = yes; then
-  as_fn_error $? "working alias attribute support required" "$LINENO" 5
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to put _rtld_local into .sdata section" >&5
-$as_echo_n "checking whether to put _rtld_local into .sdata section... " >&6; }
-if ${libc_cv_have_sdata_section+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  echo "int i;" > conftest.c
-		libc_cv_have_sdata_section=no
-		if ${CC-cc} $LDFLAGS -fPIC -shared -Wl,--verbose conftest.c -o conftest.so 2>&1 \
-		   | grep '\.sdata' >/dev/null; then
-		  libc_cv_have_sdata_section=yes
-		fi
-		rm -f conftest.c conftest.so
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_have_sdata_section" >&5
-$as_echo "$libc_cv_have_sdata_section" >&6; }
-if test $libc_cv_have_sdata_section = yes; then
-  $as_echo "#define HAVE_SDATA_SECTION 1" >>confdefs.h
-
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libunwind-support in compiler" >&5
-$as_echo_n "checking for libunwind-support in compiler... " >&6; }
-if ${libc_cv_cc_with_libunwind+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-
-  cat > conftest.c <<EOF
-int main (void) { return 0; }
-EOF
-  if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -static -o conftest \
-     conftest.c -v 2>&1 >/dev/null | grep ' -lunwind ' >/dev/null; then
-    libc_cv_cc_with_libunwind=yes
-  else
-    libc_cv_cc_with_libunwind=no
-  fi
-  rm -f conftest*
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_cc_with_libunwind" >&5
-$as_echo "$libc_cv_cc_with_libunwind" >&6; }
-
-if test $libc_cv_cc_with_libunwind = yes; then
-  $as_echo "#define HAVE_CC_WITH_LIBUNWIND 1" >>confdefs.h
-
-fi
-
-ASFLAGS_config=
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether --noexecstack is desirable for .S files" >&5
-$as_echo_n "checking whether --noexecstack is desirable for .S files... " >&6; }
-if ${libc_cv_as_noexecstack+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat > conftest.c <<EOF
-void foo (void) { }
-EOF
-if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS
-		   -S -o conftest.s conftest.c 1>&5'
-  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; } \
-   && grep .note.GNU-stack conftest.s >/dev/null \
-   && { ac_try='${CC-cc} $ASFLAGS -Wa,--noexecstack
-		      -c -o conftest.o conftest.s 1>&5'
-  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }
-then
-  libc_cv_as_noexecstack=yes
-else
-  libc_cv_as_noexecstack=no
-fi
-rm -f conftest*
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_as_noexecstack" >&5
-$as_echo "$libc_cv_as_noexecstack" >&6; }
-if test $libc_cv_as_noexecstack = yes; then
-  ASFLAGS_config="$ASFLAGS_config -Wa,--noexecstack"
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for linker that supports -z execstack" >&5
-$as_echo_n "checking for linker that supports -z execstack... " >&6; }
-libc_linker_feature=no
-cat > conftest.c <<EOF
-int _start (void) { return 42; }
-EOF
-if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS $no_ssp
-		  -Wl,-z,execstack -nostdlib -nostartfiles
-		  -fPIC -shared -o conftest.so conftest.c
-		  1>&5'
-  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }
-then
-  if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS $no_ssp -Wl,-z,execstack -nostdlib \
-      -nostartfiles -fPIC -shared -o conftest.so conftest.c 2>&1 \
-      | grep "warning: -z execstack ignored" > /dev/null 2>&1; then
-    true
-  else
-    libc_linker_feature=yes
-  fi
-fi
-rm -f conftest*
-if test $libc_linker_feature = yes; then
-  libc_cv_z_execstack=yes
-else
-  libc_cv_z_execstack=no
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_linker_feature" >&5
-$as_echo "$libc_linker_feature" >&6; }
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for linker that supports -z start-stop-gc" >&5
-$as_echo_n "checking for linker that supports -z start-stop-gc... " >&6; }
-libc_linker_feature=no
-cat > conftest.c <<EOF
-int _start (void) { return 42; }
-EOF
-if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS $no_ssp
-		  -Wl,-z,start-stop-gc -nostdlib -nostartfiles
-		  -fPIC -shared -o conftest.so conftest.c
-		  1>&5'
-  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }
-then
-  if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS $no_ssp -Wl,-z,start-stop-gc -nostdlib \
-      -nostartfiles -fPIC -shared -o conftest.so conftest.c 2>&1 \
-      | grep "warning: -z start-stop-gc ignored" > /dev/null 2>&1; then
-    true
-  else
-    libc_linker_feature=yes
-  fi
-fi
-rm -f conftest*
-if test $libc_linker_feature = yes; then
-  libc_cv_z_start_stop_gc=yes
-else
-  libc_cv_z_start_stop_gc=no
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_linker_feature" >&5
-$as_echo "$libc_linker_feature" >&6; }
-config_vars="$config_vars
-have-z-start-stop-gc = $libc_cv_z_start_stop_gc"
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for linker that supports --depaudit" >&5
-$as_echo_n "checking for linker that supports --depaudit... " >&6; }
-libc_linker_feature=no
-cat > conftest.c <<EOF
-int _start (void) { return 42; }
-EOF
-if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS $no_ssp
-		  -Wl,--depaudit,x -nostdlib -nostartfiles
-		  -fPIC -shared -o conftest.so conftest.c
-		  1>&5'
-  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }
-then
-  if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS $no_ssp -Wl,--depaudit,x -nostdlib \
-      -nostartfiles -fPIC -shared -o conftest.so conftest.c 2>&1 \
-      | grep "warning: --depaudit ignored" > /dev/null 2>&1; then
-    true
-  else
-    libc_linker_feature=yes
-  fi
-fi
-rm -f conftest*
-if test $libc_linker_feature = yes; then
-  libc_cv_depaudit=yes
-else
-  libc_cv_depaudit=no
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_linker_feature" >&5
-$as_echo "$libc_linker_feature" >&6; }
-config_vars="$config_vars
-have-depaudit = $libc_cv_depaudit"
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for linker that supports -z pack-relative-relocs" >&5
-$as_echo_n "checking for linker that supports -z pack-relative-relocs... " >&6; }
-libc_linker_feature=no
-cat > conftest.c <<EOF
-int _start (void) { return 42; }
-EOF
-if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS $no_ssp
-		  -Wl,-z,pack-relative-relocs -nostdlib -nostartfiles
-		  -fPIC -shared -o conftest.so conftest.c
-		  1>&5'
-  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }
-then
-  if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS $no_ssp -Wl,-z,pack-relative-relocs -nostdlib \
-      -nostartfiles -fPIC -shared -o conftest.so conftest.c 2>&1 \
-      | grep "warning: -z pack-relative-relocs ignored" > /dev/null 2>&1; then
-    true
-  else
-    libc_linker_feature=yes
-  fi
-fi
-rm -f conftest*
-if test $libc_linker_feature = yes; then
-  libc_cv_dt_relr=yes
-else
-  libc_cv_dt_relr=no
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_linker_feature" >&5
-$as_echo "$libc_linker_feature" >&6; }
-config_vars="$config_vars
-have-dt-relr = $libc_cv_dt_relr"
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for linker that supports --no-dynamic-linker" >&5
-$as_echo_n "checking for linker that supports --no-dynamic-linker... " >&6; }
-libc_linker_feature=no
-cat > conftest.c <<EOF
-int _start (void) { return 42; }
-EOF
-if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS $no_ssp
-		  -Wl,--no-dynamic-linker -nostdlib -nostartfiles
-		  -fPIC -shared -o conftest.so conftest.c
-		  1>&5'
-  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }
-then
-  if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS $no_ssp -Wl,--no-dynamic-linker -nostdlib \
-      -nostartfiles -fPIC -shared -o conftest.so conftest.c 2>&1 \
-      | grep "warning: --no-dynamic-linker ignored" > /dev/null 2>&1; then
-    true
-  else
-    libc_linker_feature=yes
-  fi
-fi
-rm -f conftest*
-if test $libc_linker_feature = yes; then
-  libc_cv_no_dynamic_linker=yes
-else
-  libc_cv_no_dynamic_linker=no
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_linker_feature" >&5
-$as_echo "$libc_linker_feature" >&6; }
-config_vars="$config_vars
-have-no-dynamic-linker = $libc_cv_no_dynamic_linker"
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -static-pie" >&5
-$as_echo_n "checking for -static-pie... " >&6; }
-if ${libc_cv_static_pie+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if { ac_try='${CC-cc} -static-pie -xc /dev/null -S -o /dev/null'
-  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }; then :
-  libc_cv_static_pie=yes
-else
-  libc_cv_static_pie=no
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_static_pie" >&5
-$as_echo "$libc_cv_static_pie" >&6; }
-config_vars="$config_vars
-have-static-pie = $libc_cv_static_pie"
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -fpie" >&5
-$as_echo_n "checking for -fpie... " >&6; }
-if ${libc_cv_fpie+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if { ac_try='${CC-cc} -fpie -xc /dev/null -S -o /dev/null'
-  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }; then :
-  libc_cv_fpie=yes
-else
-  libc_cv_fpie=no
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_fpie" >&5
-$as_echo "$libc_cv_fpie" >&6; }
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --hash-style option" >&5
-$as_echo_n "checking for --hash-style option... " >&6; }
-if ${libc_cv_hashstyle+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat > conftest.c <<EOF
-int _start (void) { return 42; }
-EOF
-if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS $no_ssp
-			    -fPIC -shared -o conftest.so conftest.c
-			    -Wl,--hash-style=both -nostdlib 1>&5'
-  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }
-then
-  libc_cv_hashstyle=yes
-else
-  libc_cv_hashstyle=no
-fi
-rm -f conftest*
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_hashstyle" >&5
-$as_echo "$libc_cv_hashstyle" >&6; }
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GLOB_DAT reloc" >&5
-$as_echo_n "checking for GLOB_DAT reloc... " >&6; }
-if ${libc_cv_has_glob_dat+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat > conftest.c <<EOF
-extern int mumble;
-int foo (void) { return mumble; }
-EOF
-if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
-			-fPIC -shared -o conftest.so conftest.c
-			-nostdlib -nostartfiles $no_ssp
-			1>&5'
-  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }
-then
-  if $READELF -rW conftest.so | grep '_GLOB_DAT' > /dev/null; then
-    libc_cv_has_glob_dat=yes
-  else
-    libc_cv_has_glob_dat=no
-  fi
-else
-  libc_cv_has_glob_dat=no
-fi
-rm -f conftest*
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_has_glob_dat" >&5
-$as_echo "$libc_cv_has_glob_dat" >&6; }
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -mtls-dialect=gnu2" >&5
-$as_echo_n "checking for -mtls-dialect=gnu2... " >&6; }
-if ${libc_cv_mtls_dialect_gnu2+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat > conftest.c <<EOF
-__thread int i;
-void foo (void)
-{
-  i = 10;
-}
-EOF
-if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -fPIC -mtls-dialect=gnu2 -nostdlib -nostartfiles
-		   conftest.c -o conftest 1>&5'
-  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }
-then
-  libc_cv_mtls_dialect_gnu2=yes
-else
-  libc_cv_mtls_dialect_gnu2=no
-fi
-rm -f conftest*
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_mtls_dialect_gnu2" >&5
-$as_echo "$libc_cv_mtls_dialect_gnu2" >&6; }
-
-config_vars="$config_vars
-have-mtls-dialect-gnu2 = $libc_cv_mtls_dialect_gnu2"
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if -Wno-ignored-attributes is required for aliases" >&5
-$as_echo_n "checking if -Wno-ignored-attributes is required for aliases... " >&6; }
-if ${libc_cv_wno_ignored_attributes+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat > conftest.c <<EOF
-void __foo (void)
-{
-}
-extern __typeof (__foo) foo __attribute__ ((weak, alias ("__foo")));
-extern __typeof (__foo) bar __attribute__ ((weak, alias ("foo")));
-EOF
-libc_cv_wno_ignored_attributes=""
-if ! { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -Werror -c conftest.c'
-  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }
-then
-  libc_cv_wno_ignored_attributes="-Wno-ignored-attributes"
-fi
-rm -f conftest*
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_wno_ignored_attributes" >&5
-$as_echo "$libc_cv_wno_ignored_attributes" >&6; }
-config_vars="$config_vars
-config-cflags-wno-ignored-attributes = $libc_cv_wno_ignored_attributes"
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cc puts quotes around section names" >&5
-$as_echo_n "checking whether cc puts quotes around section names... " >&6; }
-if ${libc_cv_have_section_quotes+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat > conftest.c <<EOF
-		static const int foo
-		__attribute__ ((section ("bar"))) = 1;
-EOF
-		if ${CC-cc} -S conftest.c -o conftest.s; then
-		  if grep '\.section.*"bar"' conftest.s >/dev/null; then
-		    libc_cv_have_section_quotes=yes
-		  else
-		    libc_cv_have_section_quotes=no
-		  fi
-		else
-		  libc_cv_have_section_quotes=unknown
-		fi
-		rm -f conftest.{c,s}
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_have_section_quotes" >&5
-$as_echo "$libc_cv_have_section_quotes" >&6; }
-if test $libc_cv_have_section_quotes = yes; then
-  $as_echo "#define HAVE_SECTION_QUOTES 1" >>confdefs.h
-
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __builtin_memset" >&5
-$as_echo_n "checking for __builtin_memset... " >&6; }
-if ${libc_cv_gcc_builtin_memset+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat > conftest.c <<\EOF
-void zero (void *x)
-{
-  __builtin_memset (x, 0, 1000);
-}
-EOF
-if { ac_try='${CC-cc} -O3 -S conftest.c -o - | grep -F "memset" > /dev/null'
-  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; };
-then
-  libc_cv_gcc_builtin_memset=no
-else
-  libc_cv_gcc_builtin_memset=yes
-fi
-rm -f conftest*
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_gcc_builtin_memset" >&5
-$as_echo "$libc_cv_gcc_builtin_memset" >&6; }
-if test "$libc_cv_gcc_builtin_memset" = yes ; then
-  $as_echo "#define HAVE_BUILTIN_MEMSET 1" >>confdefs.h
-
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for redirection of built-in functions" >&5
-$as_echo_n "checking for redirection of built-in functions... " >&6; }
-if ${libc_cv_gcc_builtin_redirection+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat > conftest.c <<\EOF
-extern char *strstr (const char *, const char *) __asm ("my_strstr");
-char *foo (const char *a, const char *b)
-{
-  return __builtin_strstr (a, b);
-}
-EOF
-if { ac_try='${CC-cc} -O3 -S conftest.c -o - | grep -F "my_strstr" > /dev/null'
-  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; };
-then
-  libc_cv_gcc_builtin_redirection=yes
-else
-  libc_cv_gcc_builtin_redirection=no
-fi
-rm -f conftest*
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_gcc_builtin_redirection" >&5
-$as_echo "$libc_cv_gcc_builtin_redirection" >&6; }
-if test "$libc_cv_gcc_builtin_redirection" = no; then
-  as_fn_error $? "support for the symbol redirection needed" "$LINENO" 5
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for compiler option to disable generation of FMA instructions" >&5
-$as_echo_n "checking for compiler option to disable generation of FMA instructions... " >&6; }
-if ${libc_cv_cc_nofma+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  libc_cv_cc_nofma=
-for opt in -ffp-contract=off -mno-fused-madd; do
-  if { ac_try='${CC-cc} $opt -xc /dev/null -S -o /dev/null'
-  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }; then :
-  libc_cv_cc_nofma=$opt; break
-fi
-done
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_cc_nofma" >&5
-$as_echo "$libc_cv_cc_nofma" >&6; }
-
-
-if test -n "$submachine"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for compiler option for CPU variant" >&5
-$as_echo_n "checking for compiler option for CPU variant... " >&6; }
-if ${libc_cv_cc_submachine+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-    libc_cv_cc_submachine=no
-  for opt in "-march=$submachine" "-mcpu=$submachine"; do
-    if { ac_try='${CC-cc} $opt -xc /dev/null -S -o /dev/null'
-  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }; then :
-
-      libc_cv_cc_submachine="$opt"
-      break
-fi
-  done
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_cc_submachine" >&5
-$as_echo "$libc_cv_cc_submachine" >&6; }
-  if test "x$libc_cv_cc_submachine" = xno; then
-    as_fn_error $? "${CC-cc} does not support $submachine" "$LINENO" 5
-  fi
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for compiler option that -fsignaling-nans" >&5
-$as_echo_n "checking for compiler option that -fsignaling-nans... " >&6; }
-if ${libc_cv_cc_signaling_nans+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if { ac_try='${CC-cc} -Werror -fsignaling-nans -xc /dev/null -S -o /dev/null'
-  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }; then :
-  libc_cv_cc_signaling_nans=-fsignaling-nans
-else
-  libc_cv_cc_signaling_nans=
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_cc_signaling_nans" >&5
-$as_echo "$libc_cv_cc_signaling_nans" >&6; }
-config_vars="$config_vars
-config-cflags-signaling-nans = $libc_cv_cc_signaling_nans"
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC accepts -fno-tree-loop-distribute-patterns with \
-__attribute__ ((__optimize__))" >&5
-$as_echo_n "checking if $CC accepts -fno-tree-loop-distribute-patterns with \
-__attribute__ ((__optimize__))... " >&6; }
-if ${libc_cv_cc_loop_to_function+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat > conftest.c <<EOF
-void
-__attribute__ ((__optimize__ ("-fno-tree-loop-distribute-patterns")))
-foo (void) {}
-EOF
-libc_cv_cc_loop_to_function=no
-if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -c conftest.c'
-  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }
-then
-  libc_cv_cc_loop_to_function=yes
-fi
-rm -f conftest*
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_cc_loop_to_function" >&5
-$as_echo "$libc_cv_cc_loop_to_function" >&6; }
-if test $libc_cv_cc_loop_to_function = yes; then
-  $as_echo "#define HAVE_CC_INHIBIT_LOOP_TO_LIBCALL 1" >>confdefs.h
-
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libgd" >&5
-$as_echo_n "checking for libgd... " >&6; }
-if test "$with_gd" != "no"; then
-  old_CFLAGS="$CFLAGS"
-  CFLAGS="$CFLAGS $libgd_include"
-  old_LDFLAGS="$LDFLAGS"
-  LDFLAGS="$LDFLAGS $libgd_ldflags"
-  old_LIBS="$LIBS"
-  LIBS="$LIBS -lgd -lpng -lz -lm"
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <gd.h>
-int
-main ()
-{
-gdImagePng (0, 0)
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  LIBGD=yes
-else
-  LIBGD=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-  CFLAGS="$old_CFLAGS"
-  LDFLAGS="$old_LDFLAGS"
-  LIBS="$old_LIBS"
-else
-  LIBGD=no
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBGD" >&5
-$as_echo "$LIBGD" >&6; }
-
-
-# SELinux detection
-if test x$with_selinux = xno ; then
-  have_selinux=no;
-else
-  # See if we have the SELinux library
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for is_selinux_enabled in -lselinux" >&5
-$as_echo_n "checking for is_selinux_enabled in -lselinux... " >&6; }
-if ${ac_cv_lib_selinux_is_selinux_enabled+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lselinux  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char is_selinux_enabled ();
-int
-main ()
-{
-return is_selinux_enabled ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_selinux_is_selinux_enabled=yes
-else
-  ac_cv_lib_selinux_is_selinux_enabled=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_selinux_is_selinux_enabled" >&5
-$as_echo "$ac_cv_lib_selinux_is_selinux_enabled" >&6; }
-if test "x$ac_cv_lib_selinux_is_selinux_enabled" = xyes; then :
-  have_selinux=yes
-else
-  have_selinux=no
-fi
-
-  if test x$with_selinux = xyes ; then
-    if test x$have_selinux = xno ; then
-      as_fn_error $? "SELinux explicitly required, but SELinux library not found" "$LINENO" 5
-    fi
-  fi
-fi
-# Check if we're building with SELinux support.
-if test "x$have_selinux" = xyes; then
-
-$as_echo "#define HAVE_SELINUX 1" >>confdefs.h
-
-
-  # See if we have the libaudit library
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for audit_log_user_avc_message in -laudit" >&5
-$as_echo_n "checking for audit_log_user_avc_message in -laudit... " >&6; }
-if ${ac_cv_lib_audit_audit_log_user_avc_message+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-laudit  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char audit_log_user_avc_message ();
-int
-main ()
-{
-return audit_log_user_avc_message ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_audit_audit_log_user_avc_message=yes
-else
-  ac_cv_lib_audit_audit_log_user_avc_message=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_audit_audit_log_user_avc_message" >&5
-$as_echo "$ac_cv_lib_audit_audit_log_user_avc_message" >&6; }
-if test "x$ac_cv_lib_audit_audit_log_user_avc_message" = xyes; then :
-  have_libaudit=yes
-else
-  have_libaudit=no
-fi
-
-  if test "x$have_libaudit" = xyes; then
-
-$as_echo "#define HAVE_LIBAUDIT 1" >>confdefs.h
-
-  fi
-
-
-  # See if we have the libcap library
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cap_init in -lcap" >&5
-$as_echo_n "checking for cap_init in -lcap... " >&6; }
-if ${ac_cv_lib_cap_cap_init+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lcap  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char cap_init ();
-int
-main ()
-{
-return cap_init ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_cap_cap_init=yes
-else
-  ac_cv_lib_cap_cap_init=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cap_cap_init" >&5
-$as_echo "$ac_cv_lib_cap_cap_init" >&6; }
-if test "x$ac_cv_lib_cap_cap_init" = xyes; then :
-  have_libcap=yes
-else
-  have_libcap=no
-fi
-
-  if test "x$have_libcap" = xyes; then
-
-$as_echo "#define HAVE_LIBCAP 1" >>confdefs.h
-
-  fi
-
-fi
-
-
-CPPUNDEFS=
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FORTIFY_SOURCE predefine" >&5
-$as_echo_n "checking for _FORTIFY_SOURCE predefine... " >&6; }
-if ${libc_cv_predef_fortify_source+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-#ifdef _FORTIFY_SOURCE
-# error bogon
-#endif
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  libc_cv_predef_fortify_source=no
-else
-  libc_cv_predef_fortify_source=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_predef_fortify_source" >&5
-$as_echo "$libc_cv_predef_fortify_source" >&6; }
-if test $libc_cv_predef_fortify_source = yes; then
-  CPPUNDEFS="${CPPUNDEFS:+$CPPUNDEFS }-U_FORTIFY_SOURCE"
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the assembler requires one version per symbol" >&5
-$as_echo_n "checking whether the assembler requires one version per symbol... " >&6; }
-if ${libc_cv_symver_needs_alias+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-    cat > conftest.s <<EOF
-        .text
-testfunc:
-        .globl testfunc
-        .symver testfunc, testfunc1@VERSION1
-        .symver testfunc, testfunc1@VERSION2
-EOF
-  libc_cv_symver_needs_alias=no
-  if ${CC-cc} $ASFLAGS -c conftest.s 2>&5; then
-    libc_cv_symver_needs_alias=no
-  else
-    libc_cv_symver_needs_alias=yes
-  fi
-  rm conftest.*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_symver_needs_alias" >&5
-$as_echo "$libc_cv_symver_needs_alias" >&6; }
-if test "$libc_cv_symver_needs_alias" = yes; then
-  $as_echo "#define SYMVER_NEEDS_ALIAS 1" >>confdefs.h
-
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __builtin_trap with no external dependencies" >&5
-$as_echo_n "checking for __builtin_trap with no external dependencies... " >&6; }
-if ${libc_cv_builtin_trap+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  libc_cv_builtin_trap=no
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-__builtin_trap ()
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
-libc_undefs=`$NM -u conftest.o |
-  LC_ALL=C $AWK '$1 == "U" { print $2 | "sort -u"; next } { exit(1) }' \
-    2>&5` || {
-  as_fn_error $? "confusing output from $NM -u" "$LINENO" 5
-}
-echo >&5 "libc_undefs='$libc_undefs'"
-if test -z "$libc_undefs"; then
-  libc_cv_builtin_trap=yes
-fi
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_builtin_trap" >&5
-$as_echo "$libc_cv_builtin_trap" >&6; }
-if test $libc_cv_builtin_trap = yes; then
-  $as_echo "#define HAVE_BUILTIN_TRAP 1" >>confdefs.h
-
-fi
-
-ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C++ compiler supports thread_local" >&5
-$as_echo_n "checking whether the C++ compiler supports thread_local... " >&6; }
-if ${libc_cv_cxx_thread_local+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-
-old_CXXFLAGS="$CXXFLAGS"
-CXXFLAGS="$CXXFLAGS -std=gnu++11"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <thread>
-
-// Compiler support.
-struct S
-{
-  S ();
-  ~S ();
-};
-thread_local S s;
-S * get () { return &s; }
-
-// libstdc++ support.
-#ifndef _GLIBCXX_HAVE___CXA_THREAD_ATEXIT_IMPL
-#error __cxa_thread_atexit_impl not supported
-#endif
-
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  libc_cv_cxx_thread_local=yes
-else
-  libc_cv_cxx_thread_local=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-CXXFLAGS="$old_CXXFLAGS"
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_cxx_thread_local" >&5
-$as_echo "$libc_cv_cxx_thread_local" >&6; }
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-### End of automated tests.
-### Now run sysdeps configure fragments.
-
-# They also can set these variables.
-use_ldconfig=no
-ldd_rewrite_script=no
-libc_cv_sysconfdir=$sysconfdir
-libc_cv_localstatedir=$localstatedir
-libc_cv_gcc_unwind_find_fde=no
-libc_cv_idn=no
-pthread_in_libc=yes
-
-# Iterate over all the sysdep directories we will use, running their
-# configure fragments.
-for dir in $sysnames; do
-  case $dir in
-    /*) dest=$dir ;;
-    *)  dest=$srcdir/$dir ;;
-  esac
-  if test -r $dest/configure; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: running configure fragment for $dir" >&5
-$as_echo "running configure fragment for $dir" >&6; }
-    . $dest/configure
-  fi
-done
-
-if test x"$build_mathvec" = xnotset; then
-  build_mathvec=no
-fi
-config_vars="$config_vars
-build-mathvec = $build_mathvec"
-
-
-
-
-if test x$libc_cv_gcc_unwind_find_fde = xyes; then
-  $as_echo "#define EXPORT_UNWIND_FIND_FDE 1" >>confdefs.h
-
-fi
-
-
-# A sysdeps configure fragment can reset this if IFUNC is not actually
-# usable even though the assembler knows how to generate the symbol type.
-if test x"$libc_cv_ld_gnu_indirect_function" = xyes; then
-  $as_echo "#define HAVE_IFUNC 1" >>confdefs.h
-
-fi
-config_vars="$config_vars
-have-ifunc = $libc_cv_ld_gnu_indirect_function"
-
-if test x"$libc_cv_gcc_indirect_function" = xyes; then
-  $as_echo "#define HAVE_GCC_IFUNC 1" >>confdefs.h
-
-fi
-config_vars="$config_vars
-have-gcc-ifunc = $libc_cv_gcc_indirect_function"
-
-# This is far from the AC_ARG_ENABLE that sets it so that a sysdeps
-# configure fragment can override the value to prevent this AC_DEFINE.
-
-if test "x$use_nscd" != xno; then
-  $as_echo "#define USE_NSCD 1" >>confdefs.h
-
-fi
-if test "x$build_nscd" = xdefault; then
-  build_nscd=$use_nscd
-fi
-
-
-
-
-
-
-
-
-if test x$use_ldconfig = xyes; then
-  $as_echo "#define USE_LDCONFIG 1" >>confdefs.h
-
-fi
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -fPIC is default" >&5
-$as_echo_n "checking whether -fPIC is default... " >&6; }
-if ${libc_cv_pic_default+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  libc_cv_pic_default=yes
-cat > conftest.c <<EOF
-#if defined __PIC__ || defined __pic__ || defined PIC || defined pic
-# error PIC is default.
-#endif
-EOF
-if eval "${CC-cc} -S conftest.c 2>&5 1>&5"; then
-  libc_cv_pic_default=no
-fi
-rm -f conftest.*
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_pic_default" >&5
-$as_echo "$libc_cv_pic_default" >&6; }
-config_vars="$config_vars
-build-pic-default = $libc_cv_pic_default"
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -fPIE is default" >&5
-$as_echo_n "checking whether -fPIE is default... " >&6; }
-if ${libc_cv_cc_pie_default+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  libc_cv_cc_pie_default=yes
-cat > conftest.c <<EOF
-#if defined __PIE__ || defined __pie__ || defined PIE || defined pie
-# error PIE is default.
-#endif
-EOF
-if eval "${CC-cc} -S conftest.c 2>&5 1>&5"; then
-  libc_cv_cc_pie_default=no
-fi
-rm -f conftest.*
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_cc_pie_default" >&5
-$as_echo "$libc_cv_cc_pie_default" >&6; }
-config_vars="$config_vars
-cc-pie-default = $libc_cv_cc_pie_default"
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can build programs as PIE" >&5
-$as_echo_n "checking if we can build programs as PIE... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#ifdef PIE_UNSUPPORTED
-# error PIE is not supported
-#endif
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  libc_cv_pie_supported=yes
-else
-  libc_cv_pie_supported=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_pie_supported" >&5
-$as_echo "$libc_cv_pie_supported" >&6; }
-# Disable build-pie-default if target does not support it or glibc is
-# configured with --disable-default-pie.
-if test "x$default_pie" = xno; then
-  build_pie_default=no
-else
-  build_pie_default=$libc_cv_pie_supported
-fi
-config_vars="$config_vars
-build-pie-default = $build_pie_default"
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can build static PIE programs" >&5
-$as_echo_n "checking if we can build static PIE programs... " >&6; }
-libc_cv_static_pie_supported=$libc_cv_pie_supported
-if test "x$libc_cv_pie_supported" != xno \
-   -a "$libc_cv_no_dynamic_linker" = yes; then
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#ifndef SUPPORT_STATIC_PIE
-# error static PIE is not supported
-#endif
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  libc_cv_static_pie_supported=yes
-else
-  libc_cv_static_pie_supported=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_static_pie_supported" >&5
-$as_echo "$libc_cv_static_pie_supported" >&6; }
-
-# Enable static-pie only if it is available and glibc isn't configured
-# with --disable-default-pie.
-if test "x$default_pie" = xno; then
-  libc_cv_static_pie=no
-else
-  libc_cv_static_pie=$libc_cv_static_pie_supported
-fi
-if test "$libc_cv_static_pie" = "yes"; then
-  $as_echo "#define ENABLE_STATIC_PIE 1" >>confdefs.h
-
-fi
-config_vars="$config_vars
-enable-static-pie = $libc_cv_static_pie"
-
-# Set the `multidir' variable by grabbing the variable from the compiler.
-# We do it once and save the result in a generated makefile.
-libc_cv_multidir=`${CC-cc} $CFLAGS $CPPFLAGS -print-multi-directory`
-
-
-
-
-
-
-
-
-
-VERSION=`sed -n -e 's/^#define VERSION "\([^"]*\)"/\1/p' < $srcdir/version.h`
-RELEASE=`sed -n -e 's/^#define RELEASE "\([^"]*\)"/\1/p' < $srcdir/version.h`
-
-
-
-if test "$pthread_in_libc" = yes; then
-  $as_echo "#define PTHREAD_IN_LIBC 1" >>confdefs.h
-
-fi
-
-
-ac_config_files="$ac_config_files config.make Makefile"
-
-ac_config_commands="$ac_config_commands default"
-
-cat >confcache <<\_ACEOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs, see configure's option --config-cache.
-# It is not useful on other systems.  If it contains results you don't
-# want to keep, you may remove or edit it.
-#
-# config.status only pays attention to the cache file if you give it
-# the --recheck option to rerun configure.
-#
-# `ac_cv_env_foo' variables (set or unset) will be overridden when
-# loading this file, other *unset* `ac_cv_foo' will be assigned the
-# following values.
-
-_ACEOF
-
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, we kill variables containing newlines.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-(
-  for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
-    eval ac_val=\$$ac_var
-    case $ac_val in #(
-    *${as_nl}*)
-      case $ac_var in #(
-      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
-      esac
-      case $ac_var in #(
-      _ | IFS | as_nl) ;; #(
-      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
-      *) { eval $ac_var=; unset $ac_var;} ;;
-      esac ;;
-    esac
-  done
-
-  (set) 2>&1 |
-    case $as_nl`(ac_space=' '; set) 2>&1` in #(
-    *${as_nl}ac_space=\ *)
-      # `set' does not quote correctly, so add quotes: double-quote
-      # substitution turns \\\\ into \\, and sed turns \\ into \.
-      sed -n \
-	"s/'/'\\\\''/g;
-	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
-      ;; #(
-    *)
-      # `set' quotes correctly as required by POSIX, so do not add quotes.
-      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
-      ;;
-    esac |
-    sort
-) |
-  sed '
-     /^ac_cv_env_/b end
-     t clear
-     :clear
-     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
-     t end
-     s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
-     :end' >>confcache
-if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
-  if test -w "$cache_file"; then
-    if test "x$cache_file" != "x/dev/null"; then
-      { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
-$as_echo "$as_me: updating cache $cache_file" >&6;}
-      if test ! -f "$cache_file" || test -h "$cache_file"; then
-	cat confcache >"$cache_file"
-      else
-        case $cache_file in #(
-        */* | ?:*)
-	  mv -f confcache "$cache_file"$$ &&
-	  mv -f "$cache_file"$$ "$cache_file" ;; #(
-        *)
-	  mv -f confcache "$cache_file" ;;
-	esac
-      fi
-    fi
-  else
-    { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
-$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
-  fi
-fi
-rm -f confcache
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-DEFS=-DHAVE_CONFIG_H
-
-ac_libobjs=
-ac_ltlibobjs=
-U=
-for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
-  # 1. Remove the extension, and $U if already installed.
-  ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
-  ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
-  # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
-  #    will be set to the directory where LIBOBJS objects are built.
-  as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
-  as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
-done
-LIBOBJS=$ac_libobjs
-
-LTLIBOBJS=$ac_ltlibobjs
-
-
-
-: "${CONFIG_STATUS=./config.status}"
-ac_write_fail=0
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
-$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
-as_write_fail=0
-cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
-#! $SHELL
-# Generated by $as_me.
-# Run this file to recreate the current configuration.
-# Compiler output produced by configure, useful for debugging
-# configure, is in config.log if it exists.
-
-debug=false
-ac_cs_recheck=false
-ac_cs_silent=false
-
-SHELL=\${CONFIG_SHELL-$SHELL}
-export SHELL
-_ASEOF
-cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
-## -------------------- ##
-## M4sh Initialization. ##
-## -------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
-  emulate sh
-  NULLCMD=:
-  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-  setopt NO_GLOB_SUBST
-else
-  case `(set -o) 2>/dev/null` in #(
-  *posix*) :
-    set -o posix ;; #(
-  *) :
-     ;;
-esac
-fi
-
-
-as_nl='
-'
-export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
-    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='print -r --'
-  as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='printf %s\n'
-  as_echo_n='printf %s'
-else
-  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
-    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
-    as_echo_n='/usr/ucb/echo -n'
-  else
-    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
-    as_echo_n_body='eval
-      arg=$1;
-      case $arg in #(
-      *"$as_nl"*)
-	expr "X$arg" : "X\\(.*\\)$as_nl";
-	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
-      esac;
-      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
-    '
-    export as_echo_n_body
-    as_echo_n='sh -c $as_echo_n_body as_echo'
-  fi
-  export as_echo_body
-  as_echo='sh -c $as_echo_body as_echo'
-fi
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  PATH_SEPARATOR=:
-  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
-    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
-      PATH_SEPARATOR=';'
-  }
-fi
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.  Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" ""	$as_nl"
-
-# Find who we are.  Look in the path if we contain no directory separator.
-as_myself=
-case $0 in #((
-  *[\\/]* ) as_myself=$0 ;;
-  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-  done
-IFS=$as_save_IFS
-
-     ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
-  as_myself=$0
-fi
-if test ! -f "$as_myself"; then
-  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
-  exit 1
-fi
-
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there.  '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
-  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-
-# as_fn_error STATUS ERROR [LINENO LOG_FD]
-# ----------------------------------------
-# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
-# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with STATUS, using 1 if that was 0.
-as_fn_error ()
-{
-  as_status=$1; test $as_status -eq 0 && as_status=1
-  if test "$4"; then
-    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
-  fi
-  $as_echo "$as_me: error: $2" >&2
-  as_fn_exit $as_status
-} # as_fn_error
-
-
-# as_fn_set_status STATUS
-# -----------------------
-# Set $? to STATUS, without forking.
-as_fn_set_status ()
-{
-  return $1
-} # as_fn_set_status
-
-# as_fn_exit STATUS
-# -----------------
-# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
-as_fn_exit ()
-{
-  set +e
-  as_fn_set_status $1
-  exit $1
-} # as_fn_exit
-
-# as_fn_unset VAR
-# ---------------
-# Portably unset VAR.
-as_fn_unset ()
-{
-  { eval $1=; unset $1;}
-}
-as_unset=as_fn_unset
-# as_fn_append VAR VALUE
-# ----------------------
-# Append the text in VALUE to the end of the definition contained in VAR. Take
-# advantage of any shell optimizations that allow amortized linear growth over
-# repeated appends, instead of the typical quadratic growth present in naive
-# implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
-  eval 'as_fn_append ()
-  {
-    eval $1+=\$2
-  }'
-else
-  as_fn_append ()
-  {
-    eval $1=\$$1\$2
-  }
-fi # as_fn_append
-
-# as_fn_arith ARG...
-# ------------------
-# Perform arithmetic evaluation on the ARGs, and store the result in the
-# global $as_val. Take advantage of shells that can avoid forks. The arguments
-# must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
-  eval 'as_fn_arith ()
-  {
-    as_val=$(( $* ))
-  }'
-else
-  as_fn_arith ()
-  {
-    as_val=`expr "$@" || test $? -eq 1`
-  }
-fi # as_fn_arith
-
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
-   test "X`expr 00001 : '.*\(...\)'`" = X001; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
-  as_basename=basename
-else
-  as_basename=false
-fi
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
-  as_dirname=dirname
-else
-  as_dirname=false
-fi
-
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in #(((((
--n*)
-  case `echo 'xy\c'` in
-  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
-  xy)  ECHO_C='\c';;
-  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
-       ECHO_T='	';;
-  esac;;
-*)
-  ECHO_N='-n';;
-esac
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
-  rm -f conf$$.dir/conf$$.file
-else
-  rm -f conf$$.dir
-  mkdir conf$$.dir 2>/dev/null
-fi
-if (echo >conf$$.file) 2>/dev/null; then
-  if ln -s conf$$.file conf$$ 2>/dev/null; then
-    as_ln_s='ln -s'
-    # ... but there are two gotchas:
-    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
-    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-    # In both cases, we have to default to `cp -pR'.
-    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
-      as_ln_s='cp -pR'
-  elif ln conf$$.file conf$$ 2>/dev/null; then
-    as_ln_s=ln
-  else
-    as_ln_s='cp -pR'
-  fi
-else
-  as_ln_s='cp -pR'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-
-# as_fn_mkdir_p
-# -------------
-# Create "$as_dir" as a directory, including parents if necessary.
-as_fn_mkdir_p ()
-{
-
-  case $as_dir in #(
-  -*) as_dir=./$as_dir;;
-  esac
-  test -d "$as_dir" || eval $as_mkdir_p || {
-    as_dirs=
-    while :; do
-      case $as_dir in #(
-      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
-      *) as_qdir=$as_dir;;
-      esac
-      as_dirs="'$as_qdir' $as_dirs"
-      as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$as_dir" : 'X\(//\)[^/]' \| \
-	 X"$as_dir" : 'X\(//\)$' \| \
-	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-      test -d "$as_dir" && break
-    done
-    test -z "$as_dirs" || eval "mkdir $as_dirs"
-  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
-
-
-} # as_fn_mkdir_p
-if mkdir -p . 2>/dev/null; then
-  as_mkdir_p='mkdir -p "$as_dir"'
-else
-  test -d ./-p && rmdir ./-p
-  as_mkdir_p=false
-fi
-
-
-# as_fn_executable_p FILE
-# -----------------------
-# Test if FILE is an executable regular file.
-as_fn_executable_p ()
-{
-  test -f "$1" && test -x "$1"
-} # as_fn_executable_p
-as_test_x='test -x'
-as_executable_p=as_fn_executable_p
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-exec 6>&1
-## ----------------------------------- ##
-## Main body of $CONFIG_STATUS script. ##
-## ----------------------------------- ##
-_ASEOF
-test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# Save the log message, to keep $0 and so on meaningful, and to
-# report actual input values of CONFIG_FILES etc. instead of their
-# values after options handling.
-ac_log="
-This file was extended by GNU C Library $as_me (see version.h), which was
-generated by GNU Autoconf 2.69.  Invocation command line was
-
-  CONFIG_FILES    = $CONFIG_FILES
-  CONFIG_HEADERS  = $CONFIG_HEADERS
-  CONFIG_LINKS    = $CONFIG_LINKS
-  CONFIG_COMMANDS = $CONFIG_COMMANDS
-  $ $0 $@
-
-on `(hostname || uname -n) 2>/dev/null | sed 1q`
-"
-
-_ACEOF
-
-case $ac_config_files in *"
-"*) set x $ac_config_files; shift; ac_config_files=$*;;
-esac
-
-case $ac_config_headers in *"
-"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
-esac
-
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-# Files that config.status was made for.
-config_files="$ac_config_files"
-config_headers="$ac_config_headers"
-config_commands="$ac_config_commands"
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-ac_cs_usage="\
-\`$as_me' instantiates files and other configuration actions
-from templates according to the current configuration.  Unless the files
-and actions are specified as TAGs, all are instantiated by default.
-
-Usage: $0 [OPTION]... [TAG]...
-
-  -h, --help       print this help, then exit
-  -V, --version    print version number and configuration settings, then exit
-      --config     print configuration, then exit
-  -q, --quiet, --silent
-                   do not print progress messages
-  -d, --debug      don't remove temporary files
-      --recheck    update $as_me by reconfiguring in the same conditions
-      --file=FILE[:TEMPLATE]
-                   instantiate the configuration file FILE
-      --header=FILE[:TEMPLATE]
-                   instantiate the configuration header FILE
-
-Configuration files:
-$config_files
-
-Configuration headers:
-$config_headers
-
-Configuration commands:
-$config_commands
-
-Report bugs to <https://sourceware.org/bugzilla/>.
-GNU C Library home page: <https://www.gnu.org/software/glibc/>.
-General help using GNU software: <http://www.gnu.org/gethelp/>."
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
-ac_cs_version="\\
-GNU C Library config.status (see version.h)
-configured by $0, generated by GNU Autoconf 2.69,
-  with options \\"\$ac_cs_config\\"
-
-Copyright (C) 2012 Free Software Foundation, Inc.
-This config.status script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it."
-
-ac_pwd='$ac_pwd'
-srcdir='$srcdir'
-INSTALL='$INSTALL'
-test -n "\$AWK" || AWK=awk
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# The default lists apply if the user does not specify any file.
-ac_need_defaults=:
-while test $# != 0
-do
-  case $1 in
-  --*=?*)
-    ac_option=`expr "X$1" : 'X\([^=]*\)='`
-    ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
-    ac_shift=:
-    ;;
-  --*=)
-    ac_option=`expr "X$1" : 'X\([^=]*\)='`
-    ac_optarg=
-    ac_shift=:
-    ;;
-  *)
-    ac_option=$1
-    ac_optarg=$2
-    ac_shift=shift
-    ;;
-  esac
-
-  case $ac_option in
-  # Handling of the options.
-  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
-    ac_cs_recheck=: ;;
-  --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
-    $as_echo "$ac_cs_version"; exit ;;
-  --config | --confi | --conf | --con | --co | --c )
-    $as_echo "$ac_cs_config"; exit ;;
-  --debug | --debu | --deb | --de | --d | -d )
-    debug=: ;;
-  --file | --fil | --fi | --f )
-    $ac_shift
-    case $ac_optarg in
-    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
-    '') as_fn_error $? "missing file argument" ;;
-    esac
-    as_fn_append CONFIG_FILES " '$ac_optarg'"
-    ac_need_defaults=false;;
-  --header | --heade | --head | --hea )
-    $ac_shift
-    case $ac_optarg in
-    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
-    esac
-    as_fn_append CONFIG_HEADERS " '$ac_optarg'"
-    ac_need_defaults=false;;
-  --he | --h)
-    # Conflict between --help and --header
-    as_fn_error $? "ambiguous option: \`$1'
-Try \`$0 --help' for more information.";;
-  --help | --hel | -h )
-    $as_echo "$ac_cs_usage"; exit ;;
-  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-  | -silent | --silent | --silen | --sile | --sil | --si | --s)
-    ac_cs_silent=: ;;
-
-  # This is an error.
-  -*) as_fn_error $? "unrecognized option: \`$1'
-Try \`$0 --help' for more information." ;;
-
-  *) as_fn_append ac_config_targets " $1"
-     ac_need_defaults=false ;;
-
-  esac
-  shift
-done
-
-ac_configure_extra_args=
-
-if $ac_cs_silent; then
-  exec 6>/dev/null
-  ac_configure_extra_args="$ac_configure_extra_args --silent"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-if \$ac_cs_recheck; then
-  set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
-  shift
-  \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
-  CONFIG_SHELL='$SHELL'
-  export CONFIG_SHELL
-  exec "\$@"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-exec 5>>config.log
-{
-  echo
-  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## Running $as_me. ##
-_ASBOX
-  $as_echo "$ac_log"
-} >&5
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-#
-# INIT-COMMANDS
-#
-config_vars='$config_vars'
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-
-# Handling of arguments.
-for ac_config_target in $ac_config_targets
-do
-  case $ac_config_target in
-    "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
-    "config.make") CONFIG_FILES="$CONFIG_FILES config.make" ;;
-    "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
-    "default") CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
-
-  *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
-  esac
-done
-
-
-# If the user did not use the arguments to specify the items to instantiate,
-# then the envvar interface is used.  Set only those that are not.
-# We use the long form for the default assignment because of an extremely
-# bizarre bug on SunOS 4.1.3.
-if $ac_need_defaults; then
-  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
-  test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
-  test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
-fi
-
-# Have a temporary directory for convenience.  Make it in the build tree
-# simply because there is no reason against having it here, and in addition,
-# creating and moving files from /tmp can sometimes cause problems.
-# Hook for its removal unless debugging.
-# Note that there is a small window in which the directory will not be cleaned:
-# after its creation but before its name has been assigned to `$tmp'.
-$debug ||
-{
-  tmp= ac_tmp=
-  trap 'exit_status=$?
-  : "${ac_tmp:=$tmp}"
-  { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
-' 0
-  trap 'as_fn_exit 1' 1 2 13 15
-}
-# Create a (secure) tmp directory for tmp files.
-
-{
-  tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
-  test -d "$tmp"
-}  ||
-{
-  tmp=./conf$$-$RANDOM
-  (umask 077 && mkdir "$tmp")
-} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
-ac_tmp=$tmp
-
-# Set up the scripts for CONFIG_FILES section.
-# No need to generate them if there are no CONFIG_FILES.
-# This happens for instance with `./config.status config.h'.
-if test -n "$CONFIG_FILES"; then
-
-
-ac_cr=`echo X | tr X '\015'`
-# On cygwin, bash can eat \r inside `` if the user requested igncr.
-# But we know of no other shell where ac_cr would be empty at this
-# point, so we can use a bashism as a fallback.
-if test "x$ac_cr" = x; then
-  eval ac_cr=\$\'\\r\'
-fi
-ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
-if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
-  ac_cs_awk_cr='\\r'
-else
-  ac_cs_awk_cr=$ac_cr
-fi
-
-echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
-_ACEOF
-
-
-{
-  echo "cat >conf$$subs.awk <<_ACEOF" &&
-  echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
-  echo "_ACEOF"
-} >conf$$subs.sh ||
-  as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
-ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
-ac_delim='%!_!# '
-for ac_last_try in false false false false false :; do
-  . ./conf$$subs.sh ||
-    as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
-
-  ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
-  if test $ac_delim_n = $ac_delim_num; then
-    break
-  elif $ac_last_try; then
-    as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
-  else
-    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
-  fi
-done
-rm -f conf$$subs.sh
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
-_ACEOF
-sed -n '
-h
-s/^/S["/; s/!.*/"]=/
-p
-g
-s/^[^!]*!//
-:repl
-t repl
-s/'"$ac_delim"'$//
-t delim
-:nl
-h
-s/\(.\{148\}\)..*/\1/
-t more1
-s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
-p
-n
-b repl
-:more1
-s/["\\]/\\&/g; s/^/"/; s/$/"\\/
-p
-g
-s/.\{148\}//
-t nl
-:delim
-h
-s/\(.\{148\}\)..*/\1/
-t more2
-s/["\\]/\\&/g; s/^/"/; s/$/"/
-p
-b
-:more2
-s/["\\]/\\&/g; s/^/"/; s/$/"\\/
-p
-g
-s/.\{148\}//
-t delim
-' <conf$$subs.awk | sed '
-/^[^""]/{
-  N
-  s/\n//
-}
-' >>$CONFIG_STATUS || ac_write_fail=1
-rm -f conf$$subs.awk
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-_ACAWK
-cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
-  for (key in S) S_is_set[key] = 1
-  FS = ""
-
-}
-{
-  line = $ 0
-  nfields = split(line, field, "@")
-  substed = 0
-  len = length(field[1])
-  for (i = 2; i < nfields; i++) {
-    key = field[i]
-    keylen = length(key)
-    if (S_is_set[key]) {
-      value = S[key]
-      line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
-      len += length(value) + length(field[++i])
-      substed = 1
-    } else
-      len += 1 + keylen
-  }
-
-  print line
-}
-
-_ACAWK
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
-  sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
-else
-  cat
-fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
-  || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
-_ACEOF
-
-# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
-# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
-# trailing colons and then remove the whole line if VPATH becomes empty
-# (actually we leave an empty line to preserve line numbers).
-if test "x$srcdir" = x.; then
-  ac_vpsub='/^[	 ]*VPATH[	 ]*=[	 ]*/{
-h
-s///
-s/^/:/
-s/[	 ]*$/:/
-s/:\$(srcdir):/:/g
-s/:\${srcdir}:/:/g
-s/:@srcdir@:/:/g
-s/^:*//
-s/:*$//
-x
-s/\(=[	 ]*\).*/\1/
-G
-s/\n//
-s/^[^=]*=[	 ]*$//
-}'
-fi
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-fi # test -n "$CONFIG_FILES"
-
-# Set up the scripts for CONFIG_HEADERS section.
-# No need to generate them if there are no CONFIG_HEADERS.
-# This happens for instance with `./config.status Makefile'.
-if test -n "$CONFIG_HEADERS"; then
-cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
-BEGIN {
-_ACEOF
-
-# Transform confdefs.h into an awk script `defines.awk', embedded as
-# here-document in config.status, that substitutes the proper values into
-# config.h.in to produce config.h.
-
-# Create a delimiter string that does not exist in confdefs.h, to ease
-# handling of long lines.
-ac_delim='%!_!# '
-for ac_last_try in false false :; do
-  ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
-  if test -z "$ac_tt"; then
-    break
-  elif $ac_last_try; then
-    as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
-  else
-    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
-  fi
-done
-
-# For the awk script, D is an array of macro values keyed by name,
-# likewise P contains macro parameters if any.  Preserve backslash
-# newline sequences.
-
-ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
-sed -n '
-s/.\{148\}/&'"$ac_delim"'/g
-t rset
-:rset
-s/^[	 ]*#[	 ]*define[	 ][	 ]*/ /
-t def
-d
-:def
-s/\\$//
-t bsnl
-s/["\\]/\\&/g
-s/^ \('"$ac_word_re"'\)\(([^()]*)\)[	 ]*\(.*\)/P["\1"]="\2"\
-D["\1"]=" \3"/p
-s/^ \('"$ac_word_re"'\)[	 ]*\(.*\)/D["\1"]=" \2"/p
-d
-:bsnl
-s/["\\]/\\&/g
-s/^ \('"$ac_word_re"'\)\(([^()]*)\)[	 ]*\(.*\)/P["\1"]="\2"\
-D["\1"]=" \3\\\\\\n"\\/p
-t cont
-s/^ \('"$ac_word_re"'\)[	 ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
-t cont
-d
-:cont
-n
-s/.\{148\}/&'"$ac_delim"'/g
-t clear
-:clear
-s/\\$//
-t bsnlc
-s/["\\]/\\&/g; s/^/"/; s/$/"/p
-d
-:bsnlc
-s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
-b cont
-' <confdefs.h | sed '
-s/'"$ac_delim"'/"\\\
-"/g' >>$CONFIG_STATUS || ac_write_fail=1
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-  for (key in D) D_is_set[key] = 1
-  FS = ""
-}
-/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
-  line = \$ 0
-  split(line, arg, " ")
-  if (arg[1] == "#") {
-    defundef = arg[2]
-    mac1 = arg[3]
-  } else {
-    defundef = substr(arg[1], 2)
-    mac1 = arg[2]
-  }
-  split(mac1, mac2, "(") #)
-  macro = mac2[1]
-  prefix = substr(line, 1, index(line, defundef) - 1)
-  if (D_is_set[macro]) {
-    # Preserve the white space surrounding the "#".
-    print prefix "define", macro P[macro] D[macro]
-    next
-  } else {
-    # Replace #undef with comments.  This is necessary, for example,
-    # in the case of _POSIX_SOURCE, which is predefined and required
-    # on some systems where configure will not decide to define it.
-    if (defundef == "undef") {
-      print "/*", prefix defundef, macro, "*/"
-      next
-    }
-  }
-}
-{ print }
-_ACAWK
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-  as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
-fi # test -n "$CONFIG_HEADERS"
-
-
-eval set X "  :F $CONFIG_FILES  :H $CONFIG_HEADERS    :C $CONFIG_COMMANDS"
-shift
-for ac_tag
-do
-  case $ac_tag in
-  :[FHLC]) ac_mode=$ac_tag; continue;;
-  esac
-  case $ac_mode$ac_tag in
-  :[FHL]*:*);;
-  :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
-  :[FH]-) ac_tag=-:-;;
-  :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
-  esac
-  ac_save_IFS=$IFS
-  IFS=:
-  set x $ac_tag
-  IFS=$ac_save_IFS
-  shift
-  ac_file=$1
-  shift
-
-  case $ac_mode in
-  :L) ac_source=$1;;
-  :[FH])
-    ac_file_inputs=
-    for ac_f
-    do
-      case $ac_f in
-      -) ac_f="$ac_tmp/stdin";;
-      *) # Look for the file first in the build tree, then in the source tree
-	 # (if the path is not absolute).  The absolute path cannot be DOS-style,
-	 # because $ac_f cannot contain `:'.
-	 test -f "$ac_f" ||
-	   case $ac_f in
-	   [\\/$]*) false;;
-	   *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
-	   esac ||
-	   as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
-      esac
-      case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
-      as_fn_append ac_file_inputs " '$ac_f'"
-    done
-
-    # Let's still pretend it is `configure' which instantiates (i.e., don't
-    # use $as_me), people would be surprised to read:
-    #    /* config.h.  Generated by config.status.  */
-    configure_input='Generated from '`
-	  $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
-	`' by configure.'
-    if test x"$ac_file" != x-; then
-      configure_input="$ac_file.  $configure_input"
-      { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
-$as_echo "$as_me: creating $ac_file" >&6;}
-    fi
-    # Neutralize special characters interpreted by sed in replacement strings.
-    case $configure_input in #(
-    *\&* | *\|* | *\\* )
-       ac_sed_conf_input=`$as_echo "$configure_input" |
-       sed 's/[\\\\&|]/\\\\&/g'`;; #(
-    *) ac_sed_conf_input=$configure_input;;
-    esac
-
-    case $ac_tag in
-    *:-:* | *:-) cat >"$ac_tmp/stdin" \
-      || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
-    esac
-    ;;
-  esac
-
-  ac_dir=`$as_dirname -- "$ac_file" ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$ac_file" : 'X\(//\)[^/]' \| \
-	 X"$ac_file" : 'X\(//\)$' \| \
-	 X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$ac_file" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-  as_dir="$ac_dir"; as_fn_mkdir_p
-  ac_builddir=.
-
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
-  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
-  # A ".." for each directory in $ac_dir_suffix.
-  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
-  case $ac_top_builddir_sub in
-  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
-  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
-  esac ;;
-esac
-ac_abs_top_builddir=$ac_pwd
-ac_abs_builddir=$ac_pwd$ac_dir_suffix
-# for backward compatibility:
-ac_top_builddir=$ac_top_build_prefix
-
-case $srcdir in
-  .)  # We are building in place.
-    ac_srcdir=.
-    ac_top_srcdir=$ac_top_builddir_sub
-    ac_abs_top_srcdir=$ac_pwd ;;
-  [\\/]* | ?:[\\/]* )  # Absolute name.
-    ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir
-    ac_abs_top_srcdir=$srcdir ;;
-  *) # Relative name.
-    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_build_prefix$srcdir
-    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
-esac
-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
-
-
-  case $ac_mode in
-  :F)
-  #
-  # CONFIG_FILE
-  #
-
-  case $INSTALL in
-  [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
-  *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
-  esac
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# If the template does not know about datarootdir, expand it.
-# FIXME: This hack should be removed a few years after 2.60.
-ac_datarootdir_hack=; ac_datarootdir_seen=
-ac_sed_dataroot='
-/datarootdir/ {
-  p
-  q
-}
-/@datadir@/p
-/@docdir@/p
-/@infodir@/p
-/@localedir@/p
-/@mandir@/p'
-case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
-*datarootdir*) ac_datarootdir_seen=yes;;
-*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
-$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-  ac_datarootdir_hack='
-  s&@datadir@&$datadir&g
-  s&@docdir@&$docdir&g
-  s&@infodir@&$infodir&g
-  s&@localedir@&$localedir&g
-  s&@mandir@&$mandir&g
-  s&\\\${datarootdir}&$datarootdir&g' ;;
-esac
-_ACEOF
-
-# Neutralize VPATH when `$srcdir' = `.'.
-# Shell code in configure.ac might set extrasub.
-# FIXME: do we really want to maintain this feature?
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_sed_extra="$ac_vpsub
-$extrasub
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-:t
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-s|@configure_input@|$ac_sed_conf_input|;t t
-s&@top_builddir@&$ac_top_builddir_sub&;t t
-s&@top_build_prefix@&$ac_top_build_prefix&;t t
-s&@srcdir@&$ac_srcdir&;t t
-s&@abs_srcdir@&$ac_abs_srcdir&;t t
-s&@top_srcdir@&$ac_top_srcdir&;t t
-s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
-s&@builddir@&$ac_builddir&;t t
-s&@abs_builddir@&$ac_abs_builddir&;t t
-s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
-s&@INSTALL@&$ac_INSTALL&;t t
-$ac_datarootdir_hack
-"
-eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
-  >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
-
-test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
-  { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
-  { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' \
-      "$ac_tmp/out"`; test -z "$ac_out"; } &&
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined.  Please make sure it is defined" >&5
-$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined.  Please make sure it is defined" >&2;}
-
-  rm -f "$ac_tmp/stdin"
-  case $ac_file in
-  -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
-  *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
-  esac \
-  || as_fn_error $? "could not create $ac_file" "$LINENO" 5
- ;;
-  :H)
-  #
-  # CONFIG_HEADER
-  #
-  if test x"$ac_file" != x-; then
-    {
-      $as_echo "/* $configure_input  */" \
-      && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
-    } >"$ac_tmp/config.h" \
-      || as_fn_error $? "could not create $ac_file" "$LINENO" 5
-    if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
-      { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
-$as_echo "$as_me: $ac_file is unchanged" >&6;}
-    else
-      rm -f "$ac_file"
-      mv "$ac_tmp/config.h" "$ac_file" \
-	|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
-    fi
-  else
-    $as_echo "/* $configure_input  */" \
-      && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
-      || as_fn_error $? "could not create -" "$LINENO" 5
-  fi
- ;;
-
-  :C)  { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
-$as_echo "$as_me: executing $ac_file commands" >&6;}
- ;;
-  esac
-
-
-  case $ac_file$ac_mode in
-    "default":C)
-case $CONFIG_FILES in *config.make*)
-echo "$config_vars" >> config.make;;
-esac
-test -d bits || mkdir bits ;;
-
-  esac
-done # for ac_tag
-
-
-as_fn_exit 0
-_ACEOF
-ac_clean_files=$ac_clean_files_save
-
-test $ac_write_fail = 0 ||
-  as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
-
-
-# configure is writing to config.log, and then calls config.status.
-# config.status does its own redirection, appending to config.log.
-# Unfortunately, on DOS this fails, as config.log is still kept open
-# by configure, so config.status won't be able to write to it; its
-# output is simply discarded.  So we exec the FD to /dev/null,
-# effectively closing config.log, so it can be properly (re)opened and
-# appended to by config.status.  When coming back to configure, we
-# need to make the FD available again.
-if test "$no_create" != yes; then
-  ac_cs_success=:
-  ac_config_status_args=
-  test "$silent" = yes &&
-    ac_config_status_args="$ac_config_status_args --quiet"
-  exec 5>/dev/null
-  $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
-  exec 5>>config.log
-  # Use ||, not &&, to avoid exiting from the if with $? = 1, which
-  # would make configure fail if this is the last instruction.
-  $ac_cs_success || as_fn_exit 1
-fi
-
-#
-# CONFIG_SUBDIRS section.
-#
-if test "$no_recursion" != yes; then
-
-  # Remove --cache-file, --srcdir, and --disable-option-checking arguments
-  # so they do not pile up.
-  ac_sub_configure_args=
-  ac_prev=
-  eval "set x $ac_configure_args"
-  shift
-  for ac_arg
-  do
-    if test -n "$ac_prev"; then
-      ac_prev=
-      continue
-    fi
-    case $ac_arg in
-    -cache-file | --cache-file | --cache-fil | --cache-fi \
-    | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
-      ac_prev=cache_file ;;
-    -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
-    | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* \
-    | --c=*)
-      ;;
-    --config-cache | -C)
-      ;;
-    -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
-      ac_prev=srcdir ;;
-    -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
-      ;;
-    -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
-      ac_prev=prefix ;;
-    -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
-      ;;
-    --disable-option-checking)
-      ;;
-    *)
-      case $ac_arg in
-      *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
-      esac
-      as_fn_append ac_sub_configure_args " '$ac_arg'" ;;
-    esac
-  done
-
-  # Always prepend --prefix to ensure using the same prefix
-  # in subdir configurations.
-  ac_arg="--prefix=$prefix"
-  case $ac_arg in
-  *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
-  esac
-  ac_sub_configure_args="'$ac_arg' $ac_sub_configure_args"
-
-  # Pass --silent
-  if test "$silent" = yes; then
-    ac_sub_configure_args="--silent $ac_sub_configure_args"
-  fi
-
-  # Always prepend --disable-option-checking to silence warnings, since
-  # different subdirs can have different --enable and --with options.
-  ac_sub_configure_args="--disable-option-checking $ac_sub_configure_args"
-
-  ac_popdir=`pwd`
-  for ac_dir in : $subdirs; do test "x$ac_dir" = x: && continue
-
-    # Do not complain, so a configure script can configure whichever
-    # parts of a large source tree are present.
-    test -d "$srcdir/$ac_dir" || continue
-
-    ac_msg="=== configuring in $ac_dir (`pwd`/$ac_dir)"
-    $as_echo "$as_me:${as_lineno-$LINENO}: $ac_msg" >&5
-    $as_echo "$ac_msg" >&6
-    as_dir="$ac_dir"; as_fn_mkdir_p
-    ac_builddir=.
-
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
-  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
-  # A ".." for each directory in $ac_dir_suffix.
-  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
-  case $ac_top_builddir_sub in
-  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
-  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
-  esac ;;
-esac
-ac_abs_top_builddir=$ac_pwd
-ac_abs_builddir=$ac_pwd$ac_dir_suffix
-# for backward compatibility:
-ac_top_builddir=$ac_top_build_prefix
-
-case $srcdir in
-  .)  # We are building in place.
-    ac_srcdir=.
-    ac_top_srcdir=$ac_top_builddir_sub
-    ac_abs_top_srcdir=$ac_pwd ;;
-  [\\/]* | ?:[\\/]* )  # Absolute name.
-    ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir
-    ac_abs_top_srcdir=$srcdir ;;
-  *) # Relative name.
-    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_build_prefix$srcdir
-    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
-esac
-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
-
-
-    cd "$ac_dir"
-
-    # Check for guested configure; otherwise get Cygnus style configure.
-    if test -f "$ac_srcdir/configure.gnu"; then
-      ac_sub_configure=$ac_srcdir/configure.gnu
-    elif test -f "$ac_srcdir/configure"; then
-      ac_sub_configure=$ac_srcdir/configure
-    elif test -f "$ac_srcdir/configure.in"; then
-      # This should be Cygnus configure.
-      ac_sub_configure=$ac_aux_dir/configure
-    else
-      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: no configuration information is in $ac_dir" >&5
-$as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2;}
-      ac_sub_configure=
-    fi
-
-    # The recursion is here.
-    if test -n "$ac_sub_configure"; then
-      # Make the cache file name correct relative to the subdirectory.
-      case $cache_file in
-      [\\/]* | ?:[\\/]* ) ac_sub_cache_file=$cache_file ;;
-      *) # Relative name.
-	ac_sub_cache_file=$ac_top_build_prefix$cache_file ;;
-      esac
-
-      { $as_echo "$as_me:${as_lineno-$LINENO}: running $SHELL $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&5
-$as_echo "$as_me: running $SHELL $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&6;}
-      # The eval makes quoting arguments work.
-      eval "\$SHELL \"\$ac_sub_configure\" $ac_sub_configure_args \
-	   --cache-file=\"\$ac_sub_cache_file\" --srcdir=\"\$ac_srcdir\"" ||
-	as_fn_error $? "$ac_sub_configure failed for $ac_dir" "$LINENO" 5
-    fi
-
-    cd "$ac_popdir"
-  done
-fi
-if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
-$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
-fi
-

Property changes on: sources/GNU/glibc/2.37/create-2.37-reenable-DT-HASH-patch/glibc-2.37-new/configure
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: sources/GNU/glibc/2.37/create-2.37-reenable-DT-HASH-patch/glibc-2.37-new/configure.ac
===================================================================
--- sources/GNU/glibc/2.37/create-2.37-reenable-DT-HASH-patch/glibc-2.37-new/configure.ac	(revision 393)
+++ sources/GNU/glibc/2.37/create-2.37-reenable-DT-HASH-patch/glibc-2.37-new/configure.ac	(nonexistent)
@@ -1,1862 +0,0 @@
-dnl Process this file with autoconf to produce a configure script.
-dnl Note we do not use AC_PREREQ here!  See aclocal.m4 for what we use instead.
-AC_INIT([GNU C Library], [(see version.h)], [https://sourceware.org/bugzilla/],
-  [glibc], [https://www.gnu.org/software/glibc/])
-AC_CONFIG_SRCDIR([include/features.h])
-AC_CONFIG_HEADERS([config.h])
-AC_CONFIG_AUX_DIR([scripts])
-
-ACX_PKGVERSION([GNU libc])
-ACX_BUGURL([https://www.gnu.org/software/libc/bugs.html])
-AC_DEFINE_UNQUOTED([PKGVERSION], ["$PKGVERSION"],
-		   [Package description])
-AC_DEFINE_UNQUOTED([REPORT_BUGS_TO], ["$REPORT_BUGS_TO"],
-		   [Bug reporting address])
-
-# Glibc should not depend on any header files
-AC_DEFUN([_AC_INCLUDES_DEFAULT_REQUIREMENTS],
-  [m4_divert_text([DEFAULTS],
-    [ac_includes_default='/* none */'])])
-
-# We require GCC, and by default use its preprocessor.  Override AC_PROG_CPP
-# here to work around the Autoconf issue discussed in
-# <https://sourceware.org/ml/libc-alpha/2013-01/msg00721.html>.
-AC_DEFUN([AC_PROG_CPP],
-[AC_REQUIRE([AC_PROG_CC])dnl
-AC_ARG_VAR([CPP],      [C preprocessor])dnl
-_AC_ARG_VAR_CPPFLAGS()dnl
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
-  CPP=
-fi
-if test -z "$CPP"; then
-  CPP="$CC -E"
-fi
-AC_SUBST(CPP)dnl
-])# AC_PROG_CPP
-
-# We require GCC.  Override _AC_PROG_CC_C89 here to work around the Autoconf
-# issue discussed in
-# <https://sourceware.org/ml/libc-alpha/2013-01/msg00757.html>.
-AC_DEFUN([_AC_PROG_CC_C89], [[$1]])
-
-dnl This is here so we can set $subdirs directly based on configure fragments.
-AC_CONFIG_SUBDIRS()
-
-AC_CANONICAL_HOST
-
-AC_PROG_CC
-if test $host != $build; then
-  AC_CHECK_PROGS(BUILD_CC, gcc cc)
-fi
-AC_SUBST(cross_compiling)
-AC_PROG_CPP
-
-# We need the C++ compiler only for testing.
-AC_PROG_CXX
-# It's useless to us if it can't link programs (e.g. missing -lstdc++).
-AC_CACHE_CHECK([whether $CXX can link programs], libc_cv_cxx_link_ok, [dnl
-AC_LANG_PUSH([C++])
-# Default, dynamic case.
-AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])],
-	       [libc_cv_cxx_link_ok=yes],
-	       [libc_cv_cxx_link_ok=no])
-# Static case.
-old_LDFLAGS="$LDFLAGS"
-LDFLAGS="$LDFLAGS -static"
-AC_LINK_IFELSE([AC_LANG_SOURCE([
-#include <iostream>
-
-int
-main()
-{
-  std::cout << "Hello, world!";
-  return 0;
-}
-])],
-	       [],
-	       [libc_cv_cxx_link_ok=no])
-LDFLAGS="$old_LDFLAGS"
-AC_LANG_POP([C++])])
-AS_IF([test $libc_cv_cxx_link_ok != yes], [CXX=])
-
-if test "`cd $srcdir; pwd -P`" = "`pwd -P`"; then
-  AC_MSG_ERROR([you must configure in a separate build directory])
-fi
-
-# This will get text that should go into config.make.
-config_vars=
-
-# Check for a --with-gd argument and set libgd-LDFLAGS in config.make.
-AC_ARG_WITH([gd],
-	    AS_HELP_STRING([--with-gd=DIR],
-			   [find libgd include dir and library with prefix DIR]),
-	    [dnl
-case "$with_gd" in
-yes|''|no) ;;
-*) libgd_include="-I$withval/include"
-   libgd_ldflags="-L$withval/lib" ;;
-esac
-])
-AC_ARG_WITH([gd-include],
-	    AS_HELP_STRING([--with-gd-include=DIR],
-			   [find libgd include files in DIR]),
-	    [dnl
-case "$with_gd_include" in
-''|no) ;;
-*) libgd_include="-I$withval" ;;
-esac
-])
-AC_ARG_WITH([gd-lib],
-	    AS_HELP_STRING([--with-gd-lib=DIR],
-			   [find libgd library files in DIR]),
-	    [dnl
-case "$with_gd_lib" in
-''|no) ;;
-*) libgd_ldflags="-L$withval" ;;
-esac
-])
-
-if test -n "$libgd_include"; then
-  config_vars="$config_vars
-CFLAGS-memusagestat.c = $libgd_include"
-fi
-if test -n "$libgd_ldflags"; then
-  config_vars="$config_vars
-libgd-LDFLAGS = $libgd_ldflags"
-fi
-
-dnl Arguments to specify presence of other packages/features.
-AC_ARG_WITH([binutils],
-	    AS_HELP_STRING([--with-binutils=PATH],
-			   [specify location of binutils (as and ld)]),
-	    [path_binutils=$withval],
-	    [path_binutils=''])
-AC_ARG_WITH([selinux],
-	    AS_HELP_STRING([--with-selinux],
-			   [if building with SELinux support]),
-	    [with_selinux=$withval],
-	    [with_selinux=auto])
-
-AC_ARG_WITH([headers],
-	    AS_HELP_STRING([--with-headers=PATH],
-			   [location of system headers to use
-			    (for example /usr/src/linux/include)
-			    @<:@default=compiler default@:>@]),
-	    [sysheaders=$withval],
-	    [sysheaders=''])
-AC_SUBST(sysheaders)
-
-AC_SUBST(use_default_link)
-AC_ARG_WITH([default-link],
-	    AS_HELP_STRING([--with-default-link],
-			   [do not use explicit linker scripts]),
-	    [use_default_link=$withval],
-	    [use_default_link=no])
-
-dnl Additional build flags injection.
-AC_ARG_WITH([nonshared-cflags],
-	    AS_HELP_STRING([--with-nonshared-cflags=CFLAGS],
-			   [build nonshared libraries with additional CFLAGS]),
-	    [extra_nonshared_cflags=$withval],
-	    [extra_nonshared_cflags=])
-AC_SUBST(extra_nonshared_cflags)
-AC_ARG_WITH([rtld-early-cflags],
-	    AS_HELP_STRING([--with-rtld-early-cflags=CFLAGS],
-			   [build early initialization with additional CFLAGS]),
-	    [rtld_early_cflags=$withval],
-	    [rtld_early_cflags=])
-AC_SUBST(rtld_early_cflags)
-
-AC_ARG_WITH([timeoutfactor],
-	    AS_HELP_STRING([--with-timeoutfactor=NUM],
-			   [specify an integer to scale the timeout]),
-	    [timeoutfactor=$withval],
-	    [timeoutfactor=1])
-AC_DEFINE_UNQUOTED(TIMEOUTFACTOR, $timeoutfactor)
-
-AC_ARG_ENABLE([sanity-checks],
-	      AS_HELP_STRING([--disable-sanity-checks],
-			     [really do not use threads (should not be used except in special situations) @<:@default=yes@:>@]),
-	      [enable_sanity=$enableval],
-	      [enable_sanity=yes])
-
-AC_ARG_ENABLE([shared],
-	      AS_HELP_STRING([--enable-shared],
-			     [build shared library @<:@default=yes if GNU ld@:>@]),
-	      [shared=$enableval],
-	      [shared=yes])
-AC_ARG_ENABLE([profile],
-	      AS_HELP_STRING([--enable-profile],
-			     [build profiled library @<:@default=no@:>@]),
-	      [profile=$enableval],
-	      [profile=no])
-AC_ARG_ENABLE([default-pie],
-	      AS_HELP_STRING([--disable-default-pie],
-			     [Do not build glibc programs and the testsuite as PIE @<:@default=no@:>@]),
-	      [default_pie=$enableval],
-	      [default_pie=yes])
-AC_ARG_ENABLE([timezone-tools],
-	      AS_HELP_STRING([--disable-timezone-tools],
-			     [do not install timezone tools @<:@default=install@:>@]),
-	      [enable_timezone_tools=$enableval],
-	      [enable_timezone_tools=yes])
-AC_SUBST(enable_timezone_tools)
-
-AC_ARG_ENABLE([hardcoded-path-in-tests],
-	      AS_HELP_STRING([--enable-hardcoded-path-in-tests],
-			     [hardcode newly built glibc path in tests @<:@default=no@:>@]),
-	      [hardcoded_path_in_tests=$enableval],
-	      [hardcoded_path_in_tests=no])
-AC_SUBST(hardcoded_path_in_tests)
-
-AC_ARG_ENABLE([hidden-plt],
-	      AS_HELP_STRING([--disable-hidden-plt],
-			     [do not hide internal function calls to avoid PLT]),
-	      [hidden=$enableval],
-	      [hidden=yes])
-if test "x$hidden" = xno; then
-  AC_DEFINE(NO_HIDDEN)
-fi
-
-AC_ARG_ENABLE([bind-now],
-	      AS_HELP_STRING([--enable-bind-now],
-			     [disable lazy relocations in DSOs]),
-	      [bindnow=$enableval],
-	      [bindnow=no])
-AC_SUBST(bindnow)
-if test "x$bindnow" = xyes; then
-  AC_DEFINE(BIND_NOW)
-fi
-
-dnl Build glibc with -fstack-protector, -fstack-protector-all, or
-dnl -fstack-protector-strong.
-AC_ARG_ENABLE([stack-protector],
-	      AS_HELP_STRING([--enable-stack-protector=@<:@yes|no|all|strong@:>@],
-			     [Use -fstack-protector[-all|-strong] to detect glibc buffer overflows]),
-	      [enable_stack_protector=$enableval],
-	      [enable_stack_protector=no])
-case "$enable_stack_protector" in
-all|yes|no|strong) ;;
-*) AC_MSG_ERROR([Not a valid argument for --enable-stack-protector: \"$enable_stack_protector\"]);;
-esac
-
-dnl On some platforms we cannot use dynamic loading.  We must provide
-dnl static NSS modules.
-AC_ARG_ENABLE([static-nss],
-	      AS_HELP_STRING([--enable-static-nss],
-			     [build static NSS modules @<:@default=no@:>@]),
-	      [static_nss=$enableval],
-	      [static_nss=no])
-dnl Enable static NSS also if we build no shared objects.
-if test x"$static_nss" = xyes || test x"$shared" = xno; then
-  static_nss=yes
-  AC_DEFINE(DO_STATIC_NSS)
-fi
-
-AC_ARG_ENABLE([force-install],
-	      AS_HELP_STRING([--disable-force-install],
-			     [don't force installation of files from this package, even if they are older than the installed files]),
-	      [force_install=$enableval],
-	      [force_install=yes])
-AC_SUBST(force_install)
-
-AC_ARG_ENABLE([maintainer-mode],
-	      AS_HELP_STRING([--enable-maintainer-mode],
-			     [enable make rules and dependencies not useful (and sometimes confusing) to the casual installer]),
-	      [maintainer=$enableval],
-	      [maintainer=no])
-
-dnl On some platforms we allow dropping compatibility with all kernel
-dnl versions.
-AC_ARG_ENABLE([kernel],
-	      AS_HELP_STRING([--enable-kernel=VERSION],
-			     [compile for compatibility with kernel not older than VERSION]),
-	      [minimum_kernel=$enableval],
-	      [])
-dnl Prevent unreasonable values.
-if test "$minimum_kernel" = yes || test "$minimum_kernel" = no; then
-  # Better nothing than this.
-  minimum_kernel=""
-else
-  if test "$minimum_kernel" = current; then
-    minimum_kernel=`uname -r 2>/dev/null` || minimum_kernel=
-  fi
-fi
-
-dnl For the development we sometimes want gcc to issue even more warnings.
-dnl This is not the default since many of the extra warnings are not
-dnl appropriate.
-AC_ARG_ENABLE([all-warnings],
-	      AS_HELP_STRING([--enable-all-warnings],
-			     [enable all useful warnings gcc can issue]),
-	      [all_warnings=$enableval],
-	      [])
-AC_SUBST(all_warnings)
-
-AC_ARG_ENABLE([werror],
-	      AS_HELP_STRING([--disable-werror],
-			     [do not build with -Werror]),
-	      [enable_werror=$enableval],
-	      [enable_werror=yes])
-AC_SUBST(enable_werror)
-
-AC_ARG_ENABLE([multi-arch],
-	      AS_HELP_STRING([--enable-multi-arch],
-			     [enable single DSO with optimizations for multiple architectures]),
-	      [multi_arch=$enableval],
-	      [multi_arch=default])
-
-AC_ARG_ENABLE([experimental-malloc],
-	      AS_HELP_STRING([--disable-experimental-malloc],
-			     [disable experimental malloc features]),
-	      [experimental_malloc=$enableval],
-	      [experimental_malloc=yes])
-AC_SUBST(experimental_malloc)
-
-AC_ARG_ENABLE([memory-tagging],
-	      AS_HELP_STRING([--enable-memory-tagging],
-			     [enable memory tagging if supported by the architecture @<:@default=no@:>@]),
-	      [memory_tagging=$enableval],
-	      [memory_tagging=no])
-if test "$memory_tagging" = yes; then
-  # Only enable this on architectures that support it.
-  case $host_cpu in
-    aarch64)
-      AC_DEFINE(USE_MTAG)
-      ;;
-  esac
-fi
-AC_SUBST(memory_tagging)
-
-AC_ARG_ENABLE([crypt],
-              AS_HELP_STRING([--disable-crypt],
-                             [do not build nor install the passphrase hashing library, libcrypt]),
-              [build_crypt=$enableval],
-              [build_crypt=yes])
-AC_SUBST(build_crypt)
-
-AC_ARG_ENABLE([nss-crypt],
-	      AS_HELP_STRING([--enable-nss-crypt],
-			     [enable libcrypt to use nss]),
-	      [nss_crypt=$enableval],
-	      [nss_crypt=no])
-if test x$build_libcrypt = xno && test x$nss_crypt = xyes; then
-  AC_MSG_WARN([--enable-nss-crypt has no effect when libcrypt is disabled])
-  nss_crypt=no
-fi
-if test x$nss_crypt = xyes; then
-  nss_includes=-I$(nss-config --includedir 2>/dev/null)
-  if test $? -ne 0; then
-    AC_MSG_ERROR([cannot find include directory with nss-config])
-  fi
-  nspr_includes=-I$(nspr-config --includedir 2>/dev/null)
-  if test $? -ne 0; then
-    AC_MSG_ERROR([cannot find include directory with nspr-config])
-  fi
-  old_CFLAGS="$CFLAGS"
-  CFLAGS="$CFLAGS $nss_includes $nspr_includes"
-  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([typedef int PRBool;
-#include <hasht.h>
-#include <nsslowhash.h>
-void f (void) { NSSLOW_Init (); }])],
-	     libc_cv_nss_crypt=yes,
-	     AC_MSG_ERROR([
-cannot find NSS headers with lowlevel hash function interfaces]))
-  old_LIBS="$LIBS"
-  old_LDFLAGS="$LDFLAGS"
-  LIBS="$LIBS -lfreebl3"
-  AC_LINK_IFELSE([AC_LANG_PROGRAM([typedef int PRBool;
-#include <hasht.h>
-#include <nsslowhash.h>],
-				  [NSSLOW_Init();])],
-		 libc_cv_nss_crypt=yes,
-		 AC_MSG_ERROR([
-cannot link program using lowlevel NSS hash functions]))
-  # Check to see if there is a static NSS cryptographic library.
-  # If there isn't then we can't link anything with libcrypt.a,
-  # and that might mean disabling some static tests.
-  LDFLAGS="$LDFLAGS -static"
-  AC_LINK_IFELSE([AC_LANG_PROGRAM([typedef int PRBool;
-#include <hasht.h>
-#include <nsslowhash.h>],
-				  [NSSLOW_Init();])],
-		 libc_cv_static_nss_crypt=yes,
-		 libc_cv_static_nss_crypt=no)
-  LDFLAGS="$old_LDFLAGS"
-  CFLAGS="$old_CFLAGS"
-  LIBS="$old_LIBS"
-else
-  libc_cv_nss_crypt=no
-  libc_cv_static_nss_crypt=no
-fi
-AC_SUBST(libc_cv_nss_crypt)
-AC_SUBST(libc_cv_static_nss_crypt)
-
-
-AC_ARG_ENABLE([systemtap],
-              [AS_HELP_STRING([--enable-systemtap],
-	       [enable systemtap static probe points @<:@default=no@:>@])],
-              [systemtap=$enableval],
-	      [systemtap=no])
-if test "x$systemtap" != xno; then
-  AC_CACHE_CHECK([for systemtap static probe support], libc_cv_sdt, [dnl
-  old_CFLAGS="$CFLAGS"
-  CFLAGS="-std=gnu11 $CFLAGS"
-  AC_COMPILE_IFELSE([AC_LANG_SOURCE([[#include <sys/sdt.h>
-void foo (int i, void *p)
-{
-  asm ("" STAP_PROBE_ASM (foo, bar, STAP_PROBE_ASM_TEMPLATE (2)) ""
-       :: STAP_PROBE_ASM_OPERANDS (2, i, p));
-}]])], [libc_cv_sdt=yes], [libc_cv_sdt=no])
-  CFLAGS="$old_CFLAGS"])
-  if test $libc_cv_sdt = yes; then
-    AC_DEFINE([USE_STAP_PROBE])
-  elif test "x$systemtap" != xauto; then
-    AC_MSG_FAILURE([systemtap support needs sys/sdt.h with asm support])
-  fi
-fi
-
-AC_ARG_ENABLE([build-nscd],
-	      [AS_HELP_STRING([--disable-build-nscd],
-	       [disable building and installing the nscd daemon])],
-	      [build_nscd=$enableval],
-	      [build_nscd=default])
-AC_SUBST(build_nscd)
-
-# Note the use of $use_nscd is near the bottom of the file.
-AC_ARG_ENABLE([nscd],
-	      [AS_HELP_STRING([--disable-nscd],
-	       [library functions will not contact the nscd daemon])],
-	      [use_nscd=$enableval],
-	      [use_nscd=yes])
-
-AC_ARG_ENABLE([pt_chown],
-	      [AS_HELP_STRING([--enable-pt_chown],
-	       [Enable building and installing pt_chown])],
-	      [build_pt_chown=$enableval],
-	      [build_pt_chown=no])
-AC_SUBST(build_pt_chown)
-if test "$build_pt_chown" = yes; then
-  AC_DEFINE(HAVE_PT_CHOWN)
-fi
-
-AC_ARG_ENABLE([tunables],
-	      [AS_HELP_STRING([--enable-tunables],
-	       [Enable tunables support. Known values are 'yes', 'no' and 'valstring'])],
-	      [have_tunables=$enableval],
-	      [have_tunables=yes])
-AC_SUBST(have_tunables)
-if test "$have_tunables" = yes; then
-  AC_DEFINE(HAVE_TUNABLES)
-fi
-
-# The abi-tags file uses a fairly simplistic model for name recognition that
-# can't distinguish i486-pc-linux-gnu fully from i486-pc-gnu.  So we mutate a
-# $host_os of `gnu*' here to be `gnu-gnu*' just so that it can tell.
-# This doesn't get used much beyond that, so it's fairly safe.
-case "$host_os" in
-linux*)
-  ;;
-gnu*)
-  host_os=`echo $host_os | sed -e 's/gnu/gnu-gnu/'`
-  ;;
-esac
-
-AC_ARG_ENABLE([mathvec],
-	      [AS_HELP_STRING([--enable-mathvec],
-	      [Enable building and installing mathvec @<:@default depends on architecture@:>@])],
-	      [build_mathvec=$enableval],
-	      [build_mathvec=notset])
-
-AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[]], [[
-#ifndef __CET__
-# error no CET compiler support
-#endif]])],
-	       [libc_cv_compiler_default_cet=yes],
-	       [libc_cv_compiler_default_cet=no])
-
-AC_ARG_ENABLE([cet],
-	      AS_HELP_STRING([--enable-cet],
-			     [enable Intel Control-flow Enforcement Technology (CET), x86 only]),
-	      [enable_cet=$enableval],
-	      [enable_cet=$libc_cv_compiler_default_cet])
-
-AC_ARG_ENABLE([scv],
-	      AC_HELP_STRING([--disable-scv],
-			     [syscalls will not use scv instruction, even if the kernel supports it, powerpc only]),
-	      [use_scv=$enableval],
-	      [use_scv=yes])
-
-AS_IF([[test "$use_scv" != "no"]],[AC_DEFINE(USE_PPC_SCV)])
-
-# We keep the original values in `$config_*' and never modify them, so we
-# can write them unchanged into config.make.  Everything else uses
-# $machine, $vendor, and $os, and changes them whenever convenient.
-config_machine=$host_cpu config_vendor=$host_vendor config_os=$host_os
-
-# Don't allow vendor == "unknown"
-test "$config_vendor" = unknown && config_vendor=
-config_os="`echo $config_os | sed 's/^unknown-//'`"
-
-# Some configurations imply other options.
-elf=yes
-
-# The configure fragment of a port can modify these to supplement
-# or override the table in the case statement below.  No fragment should
-# ever change the config_* variables, however.
-machine=$config_machine
-vendor=$config_vendor
-os=$config_os
-base_os=''
-
-submachine=
-AC_ARG_WITH([cpu],
-	    AS_HELP_STRING([--with-cpu=CPU], [select code for CPU variant]),
-	    [dnl
-  case "$withval" in
-  yes|'') AC_MSG_ERROR([--with-cpu requires an argument]) ;;
-  no) ;;
-  *) submachine="$withval" ;;
-  esac
-])
-
-# An preconfigure script can set this when it wants to disable the sanity
-# check below.
-libc_config_ok=no
-
-# A preconfigure script for a system that may or may not use fpu
-# sysdeps directories sets this to a preprocessor conditional for
-# whether to use such directories.
-with_fp_cond=1
-
-dnl Let sysdeps/*/preconfigure act here.
-LIBC_PRECONFIGURE([$srcdir], [for sysdeps])
-
-
-###
-### By using the undocumented --enable-hacker-mode option for configure
-### one can skip this test to make the configuration not fail for unsupported
-### platforms.
-###
-if test -z "$enable_hacker_mode" && test x"$libc_config_ok" != xyes; then
-  case "$machine-$host_os" in
-  *-linux* | *-gnu*)
-    ;;
-  *)
-    AC_MSG_ERROR([
-*** The GNU C library is currently unavailable for this platform.
-*** If you are interested in seeing glibc on this platform visit
-*** the "How to submit a new port" in the wiki:
-***   https://sourceware.org/glibc/wiki/#Development
-*** and join the community!])
-    ;;
-  esac
-fi
-
-# Set base_machine if not set by a preconfigure fragment.
-test -n "$base_machine" || base_machine=$machine
-AC_SUBST(base_machine)
-
-### Locate tools.
-
-AC_PROG_INSTALL
-if test "$INSTALL" = "${srcdir}/scripts/install-sh -c"; then
-  # The makefiles need to use a different form to find it in $srcdir.
-  INSTALL='\$(..)./scripts/install-sh -c'
-fi
-AC_PROG_LN_S
-
-LIBC_PROG_BINUTILS
-
-# Accept binutils 2.25 or newer.
-libc_cv_with_lld=no
-case $($LD --version) in
-  "GNU gold"*)
-  # Accept gold 1.14 or higher
-    AC_CHECK_PROG_VER(LD, $LD, --version,
-		    [GNU gold.* \([0-9][0-9]*\.[0-9.]*\)],
-		    [1.1[4-9]*|1.[2-9][0-9]*|1.1[0-9][0-9]*|[2-9].*|[1-9][0-9]*],
-		    LD=: critic_missing="$critic_missing GNU gold")
-    ;;
-  "LLD"*)
-  # Accept LLD 13.0.0 or higher
-    AC_CHECK_PROG_VER(LD, $LD, --version,
-		    [LLD.* \([0-9][0-9]*\.[0-9.]*\)],
-		    [1[3-9].*|[2-9][0-9].*],
-		    LD=: critic_missing="$critic_missing LLD")
-    libc_cv_with_lld=yes
-    ;;
-  *)
-    AC_CHECK_PROG_VER(LD, $LD, --version,
-		    [GNU ld.* \([0-9][0-9]*\.[0-9.]*\)],
-		    [2.1[0-9][0-9]*|2.2[5-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*],
-		    LD=: critic_missing="$critic_missing GNU ld")
-    ;;
-esac
-LIBC_CONFIG_VAR([with-lld], [$libc_cv_with_lld])
-
-# These programs are version sensitive.
-AC_CHECK_PROG_VER(MAKE, gnumake gmake make, --version,
-  [GNU Make[^0-9]*\([0-9][0-9.]*\)],
-  [[4-9].* | [1-9][0-9]*], critic_missing="$critic_missing make")
-
-AC_CHECK_PROG_VER(MSGFMT, gnumsgfmt gmsgfmt msgfmt, --version,
-  [GNU gettext.* \([0-9]*\.[0-9.]*\)],
-  [0.10.3[6-9]* | 0.10.[4-9][0-9]* | 0.1[1-9]* | 0.[2-9][0-9]* | [1-9].*],
-  MSGFMT=: aux_missing="$aux_missing msgfmt")
-AC_CHECK_PROG_VER(MAKEINFO, makeinfo, --version,
-  [GNU texinfo.* \([0-9][0-9.]*\)],
-  [4.[7-9]*|4.[1-9][0-9]*|[5-9].*],
-  MAKEINFO=: aux_missing="$aux_missing makeinfo")
-AC_CHECK_PROG_VER(SED, sed, --version,
-  [GNU sed[^0-9]* \([0-9]*\.[0-9.]*\)],
-  [3.0[2-9]*|3.[1-9]*|[4-9]*],
-  SED=: aux_missing="$aux_missing sed")
-AC_CHECK_PROG_VER(AWK, gawk, --version,
-  [GNU Awk[^0-9]*\([0-9][0-9.]*\)],
-  [3.1.[2-9]*|3.[2-9]*|[4-9]*], critic_missing="$critic_missing gawk")
-AC_CHECK_PROG_VER(BISON, bison, --version,
-  [bison (GNU Bison) \([0-9]*\.[0-9.]*\)],
-  [2.7*|[3-9].*|[1-9][0-9]*], critic_missing="$critic_missing bison")
-
-AC_CACHE_CHECK([if $CC is sufficient to build libc], libc_cv_compiler_ok, [
-AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[]], [[
-#if !defined __GNUC__ || __GNUC__ < 6 || (__GNUC__ == 6 && __GNUC_MINOR__ < 2)
-#error insufficient compiler
-#endif]])],
-	       [libc_cv_compiler_ok=yes],
-	       [libc_cv_compiler_ok=no])])
-AS_IF([test $libc_cv_compiler_ok != yes],
-      [critic_missing="$critic_missing compiler"])
-
-if test "x$maintainer" = "xyes"; then
-  AC_CHECK_PROGS(AUTOCONF, autoconf, no)
-  case "x$AUTOCONF" in
-  xno|x|x:) AUTOCONF=no ;;
-  *)
-    AC_CACHE_CHECK(dnl
-  whether $AUTOCONF${ACFLAGS:+ }$ACFLAGS works, libc_cv_autoconf_works, [dnl
-    if (cd $srcdir; $AUTOCONF $ACFLAGS configure.ac > /dev/null 2>&1); then
-      libc_cv_autoconf_works=yes
-    else
-      libc_cv_autoconf_works=no
-    fi])
-    test $libc_cv_autoconf_works = yes || AUTOCONF=no
-    ;;
-  esac
-  if test "x$AUTOCONF" = xno; then
-    aux_missing="$aux_missing autoconf"
-  fi
-else
-  AUTOCONF=no
-fi
-
-# Check for python3 if available, or else python.
-AC_CHECK_PROG_VER(PYTHON_PROG, python3 python, --version,
-  [Python \([0-9][0-9.]*\)],
-  [3.[4-9]*|3.[1-9][0-9]*|[4-9].*|[1-9][0-9]*],
-  critic_missing="$critic_missing python")
-PYTHON="$PYTHON_PROG -B"
-AC_SUBST(PYTHON)
-
-test -n "$critic_missing" && AC_MSG_ERROR([
-*** These critical programs are missing or too old:$critic_missing
-*** Check the INSTALL file for required versions.])
-
-test -n "$aux_missing" && AC_MSG_WARN([
-*** These auxiliary programs are missing or incompatible versions:$aux_missing
-*** some features or tests will be disabled.
-*** Check the INSTALL file for required versions.])
-
-
-# Determine whether to use fpu or nofpu sysdeps directories.
-AC_CACHE_CHECK([for use of fpu sysdeps directories],
-	       libc_cv_with_fp, [dnl
-cat > conftest.c <<EOF
-#if $with_fp_cond
-int dummy;
-#else
-# error "no hardware floating point"
-#endif
-EOF
-libc_cv_with_fp=no
-if ${CC-cc} $CFLAGS $CPPFLAGS -S conftest.c -o conftest.s \
-   1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD ; then
-  libc_cv_with_fp=yes
-fi
-rm -f conftest*])
-AC_SUBST(libc_cv_with_fp)
-
-AC_CACHE_CHECK(for -fstack-protector, libc_cv_ssp, [dnl
-LIBC_TRY_CC_OPTION([$CFLAGS $CPPFLAGS -Werror -fstack-protector],
-		   [libc_cv_ssp=yes],
-		   [libc_cv_ssp=no])
-])
-
-AC_CACHE_CHECK(for -fstack-protector-strong, libc_cv_ssp_strong, [dnl
-LIBC_TRY_CC_OPTION([$CFLAGS $CPPFLAGS -Werror -fstack-protector-strong],
-		   [libc_cv_ssp_strong=yes],
-		   [libc_cv_ssp_strong=no])
-])
-
-AC_CACHE_CHECK(for -fstack-protector-all, libc_cv_ssp_all, [dnl
-LIBC_TRY_CC_OPTION([$CFLAGS $CPPFLAGS -Werror -fstack-protector-all],
-		   [libc_cv_ssp_all=yes],
-		   [libc_cv_ssp_all=no])
-])
-
-stack_protector=
-no_stack_protector=
-if test "$libc_cv_ssp" = yes; then
-  no_stack_protector="-fno-stack-protector -DSTACK_PROTECTOR_LEVEL=0"
-  AC_DEFINE(HAVE_CC_NO_STACK_PROTECTOR)
-fi
-
-if test "$enable_stack_protector" = yes && test "$libc_cv_ssp" = yes; then
-  stack_protector="-fstack-protector"
-  AC_DEFINE(STACK_PROTECTOR_LEVEL, 1)
-elif test "$enable_stack_protector" = all && test "$libc_cv_ssp_all" = yes; then
-  stack_protector="-fstack-protector-all"
-  AC_DEFINE(STACK_PROTECTOR_LEVEL, 2)
-elif test "$enable_stack_protector" = strong && test "$libc_cv_ssp_strong" = yes; then
-  stack_protector="-fstack-protector-strong"
-  AC_DEFINE(STACK_PROTECTOR_LEVEL, 3)
-else
-  stack_protector="-fno-stack-protector"
-  AC_DEFINE(STACK_PROTECTOR_LEVEL, 0)
-fi
-AC_SUBST(libc_cv_ssp)
-AC_SUBST(stack_protector)
-AC_SUBST(no_stack_protector)
-
-if test -n "$stack_protector"; then
-  dnl Don't run configure tests with stack-protection on, to avoid problems with
-  dnl bootstrapping.
-  no_ssp=-fno-stack-protector
-else
-  no_ssp=
-
-  if test "$enable_stack_protector" != no; then
-    AC_MSG_ERROR([--enable-stack-protector=$enable_stack_protector specified, but specified level of stack protection is not supported by the compiler.])
-  fi
-fi
-
-# For the multi-arch option we need support in the assembler & linker.
-AC_CACHE_CHECK([for assembler and linker STT_GNU_IFUNC support],
-	       libc_cv_ld_gnu_indirect_function, [dnl
-cat > conftest.S <<EOF
-.type foo,%gnu_indirect_function
-foo:
-.globl _start
-_start:
-.globl __start
-__start:
-.data
-#ifdef _LP64
-.quad foo
-#else
-.long foo
-#endif
-EOF
-libc_cv_ld_gnu_indirect_function=no
-if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \
-	    -nostartfiles -nostdlib $no_ssp \
-	    -o conftest conftest.S 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
-  # Do a link to see if the backend supports IFUNC relocs.
-  $READELF -r conftest 1>&AS_MESSAGE_LOG_FD
-  LC_ALL=C $READELF -Wr conftest | grep -q 'IRELATIVE\|R_SPARC_JMP_IREL' && {
-    libc_cv_ld_gnu_indirect_function=yes
-  }
-fi
-rm -f conftest*])
-
-# Check if gcc supports attribute ifunc as it is used in libc_ifunc macro.
-AC_CACHE_CHECK([for gcc attribute ifunc support],
-	       libc_cv_gcc_indirect_function, [dnl
-cat > conftest.c <<EOF
-extern int func (int);
-int used_func (int a)
-{
-  return a;
-}
-static void *resolver ()
-{
-  return &used_func;
-}
-extern __typeof (func) func __attribute__ ((ifunc ("resolver")));
-EOF
-libc_cv_gcc_indirect_function=no
-if ${CC-cc} -c conftest.c -o conftest.o 1>&AS_MESSAGE_LOG_FD \
-   2>&AS_MESSAGE_LOG_FD ; then
-  if $READELF -s conftest.o | grep IFUNC >/dev/null 2>&AS_MESSAGE_LOG_FD; then
-    libc_cv_gcc_indirect_function=yes
-  fi
-fi
-rm -f conftest*])
-
-# Check if linker supports textrel relocation with ifunc (used on elf/tests).
-# Note that it relies on libc_cv_ld_gnu_indirect_function test above.
-AC_CACHE_CHECK([whether the linker supports textrels along with ifunc],
-               libc_cv_textrel_ifunc, [dnl
-cat > conftest.S <<EOF
-.type foo,%gnu_indirect_function
-foo:
-.globl _start
-_start:
-.globl __start
-__start:
-.data
-#ifdef _LP64
-.quad foo
-#else
-.long foo
-#endif
-.text
-.globl address
-address:
-#ifdef _LP64
-.quad address
-#else
-.long address
-#endif
-EOF
-libc_cv_textrel_ifunc=no
-if test $libc_cv_ld_gnu_indirect_function = yes; then
-   if AC_TRY_COMMAND(${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -nostartfiles -nostdlib $no_ssp -pie -o conftest conftest.S); then
-     libc_cv_textrel_ifunc=yes
-   fi
-fi
-rm -f conftest*])
-AC_SUBST(libc_cv_textrel_ifunc)
-
-# Check if CC supports attribute retain as it is used in attribute_used_retain macro.
-AC_CACHE_CHECK([for GNU attribute retain support],
-	       libc_cv_gnu_retain, [dnl
-cat > conftest.c <<EOF
-static int var  __attribute__ ((used, retain, section ("__libc_atexit")));
-EOF
-libc_cv_gnu_retain=no
-if ${CC-cc} -Werror -c conftest.c -o /dev/null 1>&AS_MESSAGE_LOG_FD \
-   2>&AS_MESSAGE_LOG_FD ; then
-  libc_cv_gnu_retain=yes
-fi
-rm -f conftest*])
-if test $libc_cv_gnu_retain = yes; then
-  AC_DEFINE(HAVE_GNU_RETAIN)
-fi
-LIBC_CONFIG_VAR([have-gnu-retain], [$libc_cv_gnu_retain])
-
-# Check if gcc warns about alias for function with incompatible types.
-AC_CACHE_CHECK([if compiler warns about alias for function with incompatible types],
-	       libc_cv_gcc_incompatible_alias, [dnl
-cat > conftest.c <<EOF
-int __redirect_foo (const void *s, int c);
-
-__typeof (__redirect_foo) *foo_impl (void) __asm__ ("foo");
-__typeof (__redirect_foo) *foo_impl (void)
-{
-  return 0;
-}
-
-extern __typeof (__redirect_foo) foo_alias __attribute__ ((alias ("foo")));
-EOF
-libc_cv_gcc_incompatible_alias=yes
-if ${CC-cc} -Werror -c conftest.c -o conftest.o 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD ; then
-  libc_cv_gcc_incompatible_alias=no
-fi
-rm -f conftest*])
-
-if test x"$libc_cv_ld_gnu_indirect_function" != xyes; then
-  if test x"$multi_arch" = xyes; then
-    AC_MSG_ERROR([--enable-multi-arch support requires assembler and linker support])
-  else
-    multi_arch=no
-  fi
-fi
-if test x"$libc_cv_gcc_indirect_function" != xyes; then
-  # GCC 8+ emits a warning for alias with incompatible types and it might
-  # fail to build ifunc resolvers aliases to either weak or internal
-  # symbols.  Disables multiarch build in this case.
-  if test x"$libc_cv_gcc_incompatible_alias" = xyes; then
-    AC_MSG_WARN([gcc emits a warning for alias between functions of incompatible types])
-    if test x"$multi_arch" = xyes; then
-      AC_MSG_ERROR([--enable-multi-arch support requires a gcc with gnu-indirect-function support])
-    fi
-    AC_MSG_WARN([Multi-arch is disabled.])
-    multi_arch=no
-  elif test x"$multi_arch" = xyes; then
-    AC_MSG_WARN([--enable-multi-arch support recommends a gcc with gnu-indirect-function support.
-Please use a gcc which supports it by default or configure gcc with --enable-gnu-indirect-function])
-  fi
-fi
-multi_arch_d=
-if test x"$multi_arch" != xno; then
-  multi_arch_d=/multiarch
-fi
-
-# Compute the list of sysdep directories for this configuration.
-# This can take a while to compute.
-sysdep_dir=$srcdir/sysdeps
-AC_MSG_CHECKING(sysdep dirs)
-dnl We need to use [ and ] for other purposes for a while now.
-changequote(,)dnl
-# Make sco3.2v4 become sco3.2.4 and sunos4.1.1_U1 become sunos4.1.1.U1.
-os="`echo $os | sed 's/\([0-9A-Z]\)[v_]\([0-9A-Z]\)/\1.\2/g'`"
-
-test "x$base_os" != x || case "$os" in
-gnu*)
-  base_os=mach/hurd ;;
-linux*)
-  base_os=unix/sysv ;;
-esac
-
-# For sunos4.1.1, try sunos4.1.1, then sunos4.1, then sunos4, then sunos.
-tail=$os
-ostry=$os
-while o=`echo $tail | sed 's/\.[^.]*$//'`; test $o != $tail; do
-  ostry="$ostry /$o"
-  tail=$o
-done
-o=`echo $tail | sed 's/[0-9]*$//'`
-if test $o != $tail; then
-  ostry="$ostry /$o"
-fi
-# For linux-gnu, try linux-gnu, then linux.
-o=`echo $tail | sed 's/-.*$//'`
-if test $o != $tail; then
-  ostry="$ostry /$o"
-fi
-
-# For unix/sysv/sysv4, try unix/sysv/sysv4, then unix/sysv, then unix.
-base=
-tail=$base_os
-while b=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$b"; do
-  set $b
-  base="$base /$1"
-  tail="$2"
-done
-
-# For sparc/sparc32, try sparc/sparc32 and then sparc.
-mach=
-tail=$machine${submachine:+/$submachine}
-while m=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$m"; do
-  set $m
-  # Prepend the machine's FPU directory unless the architecture specific
-  # preconfigure disables it.
-  if test "$libc_cv_with_fp" = yes; then
-    maybe_fpu=/fpu
-  else
-    maybe_fpu=/nofpu
-  fi
-  # For each machine term, try it with and then without /multiarch.
-  for try_fpu in $maybe_fpu ''; do
-    for try_multi in $multi_arch_d ''; do
-      mach="$mach /$1$try_fpu$try_multi"
-    done
-  done
-  tail="$2"
-done
-
-dnl We are done with glob and regexp uses of [ and ]; return to autoconf.
-changequote([,])dnl
-
-# Find what sysdep directories exist.
-sysnames=
-for b in $base ''; do
-  for m0 in $mach ''; do
-    for v in /$vendor ''; do
-      test "$v" = / && continue
-      for o in /$ostry ''; do
-	test "$o" = / && continue
-	for m in $mach ''; do
-	  try_suffix="$m0$b$v$o$m"
-	  if test -n "$try_suffix"; then
-	    try_srcdir="${srcdir}/"
-	    try="sysdeps$try_suffix"
-	    test -n "$enable_debug_configure" &&
-	    echo "$0 [DEBUG]: try $try" >&2
-	    if test -d "$try_srcdir$try"; then
-	      sysnames="$sysnames $try"
-	      { test -n "$o" || test -n "$b"; } && os_used=t
-	      { test -n "$m" || test -n "$m0"; } && machine_used=t
-	      case x${m0:-$m} in
-	      x*/$submachine) submachine_used=t ;;
-	      esac
-	    fi
-	  fi
-	done
-      done
-    done
-  done
-done
-
-# If the assembler supports gnu_indirect_function symbol type and the
-# architecture supports multi-arch, we enable multi-arch by default.
-case $sysnames in
-*"$multi_arch_d"*)
-  ;;
-*)
-  test x"$multi_arch" = xdefault && multi_arch=no
-  ;;
-esac
-if test x"$multi_arch" != xno; then
-  AC_DEFINE(USE_MULTIARCH)
-fi
-AC_SUBST(multi_arch)
-
-if test -z "$os_used" && test "$os" != none; then
-  AC_MSG_ERROR(Operating system $os is not supported.)
-fi
-if test -z "$machine_used" && test "$machine" != none; then
-  AC_MSG_ERROR(The $machine is not supported.)
-fi
-if test -z "$submachine_used" && test -n "$submachine"; then
-  AC_MSG_ERROR(The $submachine subspecies of $host_cpu is not supported.)
-fi
-AC_SUBST(submachine)
-
-# We have now validated the configuration.
-
-# Expand the list of system names into a full list of directories
-# from each element's parent name and Implies file (if present).
-set $sysnames
-names=
-while test $# -gt 0; do
-  name=$1
-  shift
-
-  case " $names " in *" $name "*)
-    # Already in the list.
-    continue
-  esac
-
-  # Report each name as we discover it, so there is no long pause in output.
-  echo $ECHO_N "$name $ECHO_C" >&AS_MESSAGE_FD
-
-  name_base=`echo $name | sed -e 's@\(.*sysdeps\)/.*@\1@'`
-
-  case $name in
-    /*) xsrcdir= ;;
-    *)  xsrcdir=$srcdir/ ;;
-  esac
-  test -n "$enable_debug_configure" &&
-  echo "[DEBUG]: name/Implies $xsrcdir$name/Implies" >&2
-
-  for implies_file in Implies Implies-before Implies-after; do
-    implies_type=`echo $implies_file | sed s/-/_/`
-    eval ${implies_type}=
-    if test -f $xsrcdir$name/$implies_file; then
-      # Collect more names from the `Implies' file (removing comments).
-      implied_candidate="`sed 's/#.*$//' < $xsrcdir$name/$implies_file`"
-      for x in $implied_candidate; do
-	found=no
-	if test -d $xsrcdir$name_base/$x; then
-	  eval "${implies_type}=\"\$${implies_type} \$name_base/\$x\""
-	  found=yes
-	fi
-	try="sysdeps/$x"
-	try_srcdir=$srcdir/
-	test -n "$enable_debug_configure" &&
-	 echo "[DEBUG]: $name $implies_file $x try() {$try_srcdir}$try" >&2
-	if test $try != $xsrcdir$name_base/$x && test -d $try_srcdir$try;
-	then
-	  eval "${implies_type}=\"\$${implies_type} \$try\""
-	  found=yes
-	fi
-	if test $found = no; then
-	  AC_MSG_WARN($name/$implies_file specifies nonexistent $x)
-	fi
-      done
-    fi
-  done
-
-  # Add NAME to the list of names.
-  names="$names $name"
-
-  # Find the parent of NAME, using the empty string if it has none.
-changequote(,)dnl
-  parent="`echo $name | sed -n -e 's=/[^/]*$==' -e '/sysdeps$/q' -e p`"
-changequote([,])dnl
-
-  test -n "$enable_debug_configure" &&
-    echo "[DEBUG]: $name Implies='$Implies' rest='$*' parent='$parent' \
-Implies_before='$Implies_before' Implies_after='$Implies_after'" >&2
-
-  # Add the names implied by NAME, and NAME's parent (if it has one), to
-  # the list of names to be processed (the argument list).  We prepend the
-  # implied names to the list and append the parent.  We want implied
-  # directories to come before further directories inferred from the
-  # configuration components; this ensures that for sysv4, unix/common
-  # (implied by unix/sysv/sysv4) comes before unix/sysv (in ostry (here $*)
-  # after sysv4).
-  sysnames="`echo $Implies $* $Implies_before $parent $Implies_after`"
-  test -n "$sysnames" && set $sysnames
-done
-
-# Add the default directories.
-default_sysnames="sysdeps/generic"
-sysnames="$names $default_sysnames"
-AC_SUBST(sysnames)
-# The other names were emitted during the scan.
-AC_MSG_RESULT($default_sysnames)
-
-# if using special system headers, find out the compiler's sekrit
-# header directory and add that to the list.  NOTE: Only does the right
-# thing on a system that doesn't need fixincludes.  (Not presently a problem.)
-if test -n "$sysheaders"; then
-  SYSINCLUDES=-nostdinc
-  for d in include include-fixed; do
-    i=`$CC -print-file-name="$d"` && test "x$i" != x && test "x$i" != "x$d" &&
-    SYSINCLUDES="$SYSINCLUDES -isystem $i"
-  done
-  SYSINCLUDES="$SYSINCLUDES \
--isystem `echo $sysheaders | sed 's/:/ -isystem /g'`"
-  if test -n "$CXX"; then
-    CXX_SYSINCLUDES=
-    for cxxheaders in `$CXX -v -S -x c++ /dev/null -o /dev/null 2>&1 \
-    | sed -n -e '1,/#include/d' -e 's/^ \(\/.*\/[cg]++\)/\1/p'`; do
-      test "x$cxxheaders" != x &&
-      CXX_SYSINCLUDES="$CXX_SYSINCLUDES -isystem $cxxheaders"
-    done
-  fi
-fi
-AC_SUBST(SYSINCLUDES)
-AC_SUBST(CXX_SYSINCLUDES)
-
-# Obtain some C++ header file paths.  This is used to make a local
-# copy of those headers in Makerules.
-if test -n "$CXX"; then
-  find_cxx_header () {
-    echo "#include <$1>" | $CXX -H -fsyntax-only -x c++ - 2>&1 \
-	 | $AWK '$1 == "."{print $2}'
-  }
-  CXX_CSTDLIB_HEADER="$(find_cxx_header cstdlib)"
-  CXX_CMATH_HEADER="$(find_cxx_header cmath)"
-  CXX_BITS_STD_ABS_H="$(find_cxx_header bits/std_abs.h)"
-fi
-AC_SUBST(CXX_CSTDLIB_HEADER)
-AC_SUBST(CXX_CMATH_HEADER)
-AC_SUBST(CXX_BITS_STD_ABS_H)
-
-# Test if LD_LIBRARY_PATH contains the notation for the current directory
-# since this would lead to problems installing/building glibc.
-# LD_LIBRARY_PATH contains the current directory if one of the following
-# is true:
-# - one of the terminals (":" and ";") is the first or last sign
-# - two terminals occur directly after each other
-# - the path contains an element with a dot in it
-AC_MSG_CHECKING(LD_LIBRARY_PATH variable)
-changequote(,)dnl
-case ${LD_LIBRARY_PATH} in
-  [:\;]* | *[:\;] | *[:\;][:\;]* |  *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* )
-    ld_library_path_setting="contains current directory"
-    ;;
-  *)
-    ld_library_path_setting="ok"
-    ;;
-esac
-changequote([,])dnl
-AC_MSG_RESULT($ld_library_path_setting)
-if test "$ld_library_path_setting" != "ok"; then
-AC_MSG_ERROR([
-*** LD_LIBRARY_PATH shouldn't contain the current directory when
-*** building glibc. Please change the environment variable
-*** and run configure again.])
-fi
-
-AC_PATH_PROG(BASH_SHELL, bash, no)
-
-AC_PATH_PROG(PERL, perl, no)
-if test "$PERL" != no &&
-   (eval `$PERL -V:apiversion`; test `expr "$apiversion" \< 5` -ne 0); then
-  PERL=no
-fi
-AC_PATH_PROG(INSTALL_INFO, install-info, no,
-	     $PATH:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin)
-
-AC_CACHE_CHECK(for .set assembler directive, libc_cv_asm_set_directive, [dnl
-cat > conftest.s <<EOF
-.text
-foo:
-.set glibc_conftest_frobozz,foo
-.globl glibc_conftest_frobozz
-EOF
-# The alpha-dec-osf1 assembler gives only a warning for `.set'
-# (but it doesn't work), so we must do a linking check to be sure.
-cat > conftest1.c <<\EOF
-extern int glibc_conftest_frobozz;
-void _start() { glibc_conftest_frobozz = 1; }
-EOF
-if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \
-	    -nostartfiles -nostdlib $no_ssp \
-	    -o conftest conftest.s conftest1.c 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
-  libc_cv_asm_set_directive=yes
-else
-  libc_cv_asm_set_directive=no
-fi
-rm -f conftest*])
-if test $libc_cv_asm_set_directive = yes; then
-  AC_DEFINE(HAVE_ASM_SET_DIRECTIVE)
-fi
-
-AC_CACHE_CHECK(linker support for protected data symbol,
-	       libc_cv_protected_data,
-	       [cat > conftest.c <<EOF
-		int bar __attribute__ ((visibility ("protected"))) = 1;
-EOF
-		libc_cv_protected_data=no
-		if AC_TRY_COMMAND(${CC-cc} -nostdlib -nostartfiles $no_ssp -fPIC -shared conftest.c -o conftest.so); then
-		  cat > conftest.c <<EOF
-		  extern int bar;
-		  int main (void) { return bar; }
-EOF
-		  if AC_TRY_COMMAND(${CC-cc} -nostdlib -nostartfiles $no_ssp conftest.c -o conftest conftest.so); then
-		    libc_cv_protected_data=yes
-		  fi
-		fi
-		rm -f conftest.*
-	       ])
-AC_SUBST(libc_cv_protected_data)
-
-AC_CACHE_CHECK(linker support for INSERT in linker script,
-	       libc_cv_insert,
-	       [cat > conftest.c <<EOF
-		int __attribute__ ((section(".bar"))) bar = 0x12345678;
-		int test (void) { return bar; }
-EOF
-		cat > conftest.t <<EOF
-		SECTIONS
-		{
-		  .bar : { *(.bar) }
-		}
-		INSERT AFTER .rela.dyn;
-EOF
-		libc_cv_insert=no
-		if AC_TRY_COMMAND([${CC-cc} -nostdlib -nostartfiles $no_ssp -fPIC -shared conftest.c -Wl,-T,conftest.t -o conftest.so]); then
-		  libc_cv_insert=yes
-		fi
-		rm -f conftest.*
-	       ])
-AC_SUBST(libc_cv_insert)
-
-AC_CACHE_CHECK(for broken __attribute__((alias())),
-	       libc_cv_broken_alias_attribute,
-	       [cat > conftest.c <<EOF
-	       extern int foo (int x) __asm ("xyzzy");
-	       int bar (int x) { return x; }
-	       extern __typeof (bar) foo __attribute ((weak, alias ("bar")));
-	       extern int dfoo;
-	       extern __typeof (dfoo) dfoo __asm ("abccb");
-	       int dfoo = 1;
-EOF
-	       libc_cv_broken_alias_attribute=yes
-	       if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s 1>&AS_MESSAGE_LOG_FD); then
-		 if grep 'xyzzy' conftest.s >/dev/null &&
-		    grep 'abccb' conftest.s >/dev/null; then
-		   libc_cv_broken_alias_attribute=no
-		 fi
-	       fi
-	       rm -f conftest.c conftest.s
-	       ])
-if test $libc_cv_broken_alias_attribute = yes; then
-  AC_MSG_ERROR(working alias attribute support required)
-fi
-
-AC_CACHE_CHECK(whether to put _rtld_local into .sdata section,
-	       libc_cv_have_sdata_section,
-	       [echo "int i;" > conftest.c
-		libc_cv_have_sdata_section=no
-		if ${CC-cc} $LDFLAGS -fPIC -shared -Wl,--verbose conftest.c -o conftest.so 2>&1 \
-		   | grep '\.sdata' >/dev/null; then
-		  libc_cv_have_sdata_section=yes
-		fi
-		rm -f conftest.c conftest.so
-	       ])
-if test $libc_cv_have_sdata_section = yes; then
-  AC_DEFINE(HAVE_SDATA_SECTION)
-fi
-
-AC_CACHE_CHECK(for libunwind-support in compiler,
-	       libc_cv_cc_with_libunwind, [
-  cat > conftest.c <<EOF
-int main (void) { return 0; }
-EOF
-  if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -static -o conftest \
-     conftest.c -v 2>&1 >/dev/null | grep ' -lunwind ' >/dev/null; then
-    libc_cv_cc_with_libunwind=yes
-  else
-    libc_cv_cc_with_libunwind=no
-  fi
-  rm -f conftest*])
-AC_SUBST(libc_cv_cc_with_libunwind)
-if test $libc_cv_cc_with_libunwind = yes; then
-  AC_DEFINE(HAVE_CC_WITH_LIBUNWIND)
-fi
-
-ASFLAGS_config=
-AC_CACHE_CHECK(whether --noexecstack is desirable for .S files,
-	       libc_cv_as_noexecstack, [dnl
-cat > conftest.c <<EOF
-void foo (void) { }
-EOF
-if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS
-		   -S -o conftest.s conftest.c 1>&AS_MESSAGE_LOG_FD]) \
-   && grep .note.GNU-stack conftest.s >/dev/null \
-   && AC_TRY_COMMAND([${CC-cc} $ASFLAGS -Wa,--noexecstack
-		      -c -o conftest.o conftest.s 1>&AS_MESSAGE_LOG_FD])
-then
-  libc_cv_as_noexecstack=yes
-else
-  libc_cv_as_noexecstack=no
-fi
-rm -f conftest*])
-if test $libc_cv_as_noexecstack = yes; then
-  ASFLAGS_config="$ASFLAGS_config -Wa,--noexecstack"
-fi
-AC_SUBST(ASFLAGS_config)
-
-LIBC_LINKER_FEATURE([-z execstack], [-Wl,-z,execstack],
-		    [libc_cv_z_execstack=yes], [libc_cv_z_execstack=no])
-AC_SUBST(libc_cv_z_execstack)
-
-LIBC_LINKER_FEATURE([-z start-stop-gc], [-Wl,-z,start-stop-gc],
-		    [libc_cv_z_start_stop_gc=yes], [libc_cv_z_start_stop_gc=no])
-LIBC_CONFIG_VAR([have-z-start-stop-gc], [$libc_cv_z_start_stop_gc])
-
-LIBC_LINKER_FEATURE([--depaudit], [-Wl,--depaudit,x],
-		    [libc_cv_depaudit=yes], [libc_cv_depaudit=no])
-LIBC_CONFIG_VAR([have-depaudit], [$libc_cv_depaudit])
-
-LIBC_LINKER_FEATURE([-z pack-relative-relocs],
-		    [-Wl,-z,pack-relative-relocs],
-		    [libc_cv_dt_relr=yes], [libc_cv_dt_relr=no])
-LIBC_CONFIG_VAR([have-dt-relr], [$libc_cv_dt_relr])
-
-LIBC_LINKER_FEATURE([--no-dynamic-linker],
-		    [-Wl,--no-dynamic-linker],
-		    [libc_cv_no_dynamic_linker=yes],
-		    [libc_cv_no_dynamic_linker=no])
-LIBC_CONFIG_VAR([have-no-dynamic-linker], [$libc_cv_no_dynamic_linker])
-
-AC_CACHE_CHECK(for -static-pie, libc_cv_static_pie, [dnl
-LIBC_TRY_CC_OPTION([-static-pie],
-		   [libc_cv_static_pie=yes],
-		   [libc_cv_static_pie=no])
-])
-LIBC_CONFIG_VAR([have-static-pie], [$libc_cv_static_pie])
-
-AC_CACHE_CHECK(for -fpie, libc_cv_fpie, [dnl
-LIBC_TRY_CC_OPTION([-fpie], [libc_cv_fpie=yes], [libc_cv_fpie=no])
-])
-
-AC_SUBST(libc_cv_fpie)
-
-AC_CACHE_CHECK(for --hash-style option,
-	       libc_cv_hashstyle, [dnl
-cat > conftest.c <<EOF
-int _start (void) { return 42; }
-EOF
-if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS $no_ssp
-			    -fPIC -shared -o conftest.so conftest.c
-			    -Wl,--hash-style=both -nostdlib 1>&AS_MESSAGE_LOG_FD])
-then
-  libc_cv_hashstyle=yes
-else
-  libc_cv_hashstyle=no
-fi
-rm -f conftest*])
-AC_SUBST(libc_cv_hashstyle)
-
-AC_CACHE_CHECK(for GLOB_DAT reloc,
-	       libc_cv_has_glob_dat, [dnl
-cat > conftest.c <<EOF
-extern int mumble;
-int foo (void) { return mumble; }
-EOF
-if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
-			-fPIC -shared -o conftest.so conftest.c
-			-nostdlib -nostartfiles $no_ssp
-			1>&AS_MESSAGE_LOG_FD])
-then
-dnl look for GLOB_DAT relocation.
-  if $READELF -rW conftest.so | grep '_GLOB_DAT' > /dev/null; then
-    libc_cv_has_glob_dat=yes
-  else
-    libc_cv_has_glob_dat=no
-  fi
-else
-  libc_cv_has_glob_dat=no
-fi
-rm -f conftest*])
-AC_SUBST(libc_cv_has_glob_dat)
-
-AC_CACHE_CHECK([for -mtls-dialect=gnu2], libc_cv_mtls_dialect_gnu2,
-[dnl
-cat > conftest.c <<EOF
-__thread int i;
-void foo (void)
-{
-  i = 10;
-}
-EOF
-if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -fPIC -mtls-dialect=gnu2 -nostdlib -nostartfiles
-		   conftest.c -o conftest 1>&AS_MESSAGE_LOG_FD])
-then
-  libc_cv_mtls_dialect_gnu2=yes
-else
-  libc_cv_mtls_dialect_gnu2=no
-fi
-rm -f conftest*])
-AC_SUBST(libc_cv_mtls_dialect_gnu2)
-LIBC_CONFIG_VAR([have-mtls-dialect-gnu2], [$libc_cv_mtls_dialect_gnu2])
-
-dnl clang emits an warning for a double alias redirection, to warn the
-dnl original symbol is sed even when weak definition overriddes it.
-dnl It is a usual pattern for weak_alias, where multiple alias point to
-dnl same symbol.
-AC_CACHE_CHECK([if -Wno-ignored-attributes is required for aliases],
-	       libc_cv_wno_ignored_attributes, [dnl
-cat > conftest.c <<EOF
-void __foo (void)
-{
-}
-extern __typeof (__foo) foo __attribute__ ((weak, alias ("__foo")));
-extern __typeof (__foo) bar __attribute__ ((weak, alias ("foo")));
-EOF
-libc_cv_wno_ignored_attributes=""
-if ! AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -Werror -c conftest.c])
-then
-  libc_cv_wno_ignored_attributes="-Wno-ignored-attributes"
-fi
-rm -f conftest*])
-LIBC_CONFIG_VAR([config-cflags-wno-ignored-attributes],
-		[$libc_cv_wno_ignored_attributes])
-
-AC_CACHE_CHECK(whether cc puts quotes around section names,
-	       libc_cv_have_section_quotes,
-	       [cat > conftest.c <<EOF
-		static const int foo
-		__attribute__ ((section ("bar"))) = 1;
-EOF
-		if ${CC-cc} -S conftest.c -o conftest.s; then
-		  if grep '\.section.*"bar"' conftest.s >/dev/null; then
-		    libc_cv_have_section_quotes=yes
-		  else
-		    libc_cv_have_section_quotes=no
-		  fi
-		else
-		  libc_cv_have_section_quotes=unknown
-		fi
-		rm -f conftest.{c,s}
-		])
-if test $libc_cv_have_section_quotes = yes; then
-  AC_DEFINE(HAVE_SECTION_QUOTES)
-fi
-
-AC_CACHE_CHECK(for __builtin_memset, libc_cv_gcc_builtin_memset, [dnl
-cat > conftest.c <<\EOF
-void zero (void *x)
-{
-  __builtin_memset (x, 0, 1000);
-}
-EOF
-dnl
-if AC_TRY_COMMAND([${CC-cc} -O3 -S conftest.c -o - | grep -F "memset" > /dev/null]);
-then
-  libc_cv_gcc_builtin_memset=no
-else
-  libc_cv_gcc_builtin_memset=yes
-fi
-rm -f conftest* ])
-if test "$libc_cv_gcc_builtin_memset" = yes ; then
-  AC_DEFINE(HAVE_BUILTIN_MEMSET)
-fi
-
-AC_CACHE_CHECK(for redirection of built-in functions, libc_cv_gcc_builtin_redirection, [dnl
-cat > conftest.c <<\EOF
-extern char *strstr (const char *, const char *) __asm ("my_strstr");
-char *foo (const char *a, const char *b)
-{
-  return __builtin_strstr (a, b);
-}
-EOF
-dnl
-if AC_TRY_COMMAND([${CC-cc} -O3 -S conftest.c -o - | grep -F "my_strstr" > /dev/null]);
-then
-  libc_cv_gcc_builtin_redirection=yes
-else
-  libc_cv_gcc_builtin_redirection=no
-fi
-rm -f conftest* ])
-if test "$libc_cv_gcc_builtin_redirection" = no; then
-  AC_MSG_ERROR([support for the symbol redirection needed])
-fi
-
-dnl Determine how to disable generation of FMA instructions.
-AC_CACHE_CHECK([for compiler option to disable generation of FMA instructions],
-	       libc_cv_cc_nofma, [dnl
-libc_cv_cc_nofma=
-for opt in -ffp-contract=off -mno-fused-madd; do
-  LIBC_TRY_CC_OPTION([$opt], [libc_cv_cc_nofma=$opt; break])
-done])
-AC_SUBST(libc_cv_cc_nofma)
-
-if test -n "$submachine"; then
-  AC_CACHE_CHECK([for compiler option for CPU variant],
-		 libc_cv_cc_submachine, [dnl
-  libc_cv_cc_submachine=no
-  for opt in "-march=$submachine" "-mcpu=$submachine"; do
-    LIBC_TRY_CC_OPTION([$opt], [
-      libc_cv_cc_submachine="$opt"
-      break], [])
-  done])
-  if test "x$libc_cv_cc_submachine" = xno; then
-    AC_MSG_ERROR([${CC-cc} does not support $submachine])
-  fi
-fi
-AC_SUBST(libc_cv_cc_submachine)
-
-dnl Determine if compiler supports -fsignaling-nans
-AC_CACHE_CHECK([for compiler option that -fsignaling-nans],
-	       libc_cv_cc_signaling_nans, [dnl
-LIBC_TRY_CC_OPTION([-Werror -fsignaling-nans],
-		   [libc_cv_cc_signaling_nans=-fsignaling-nans],
-		   [libc_cv_cc_signaling_nans=])
-])
-LIBC_CONFIG_VAR([config-cflags-signaling-nans],
-		[$libc_cv_cc_signaling_nans])
-
-AC_CACHE_CHECK(if $CC accepts -fno-tree-loop-distribute-patterns with \
-__attribute__ ((__optimize__)), libc_cv_cc_loop_to_function, [dnl
-cat > conftest.c <<EOF
-void
-__attribute__ ((__optimize__ ("-fno-tree-loop-distribute-patterns")))
-foo (void) {}
-EOF
-libc_cv_cc_loop_to_function=no
-if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -c conftest.c])
-then
-  libc_cv_cc_loop_to_function=yes
-fi
-rm -f conftest*])
-if test $libc_cv_cc_loop_to_function = yes; then
-  AC_DEFINE(HAVE_CC_INHIBIT_LOOP_TO_LIBCALL)
-fi
-AC_SUBST(libc_cv_cc_loop_to_function)
-
-dnl Check whether we have the gd library available.
-AC_MSG_CHECKING(for libgd)
-if test "$with_gd" != "no"; then
-  old_CFLAGS="$CFLAGS"
-  CFLAGS="$CFLAGS $libgd_include"
-  old_LDFLAGS="$LDFLAGS"
-  LDFLAGS="$LDFLAGS $libgd_ldflags"
-  old_LIBS="$LIBS"
-  LIBS="$LIBS -lgd -lpng -lz -lm"
-  AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <gd.h>]], [[gdImagePng (0, 0)]])],
-		 [LIBGD=yes], [LIBGD=no])
-  CFLAGS="$old_CFLAGS"
-  LDFLAGS="$old_LDFLAGS"
-  LIBS="$old_LIBS"
-else
-  LIBGD=no
-fi
-AC_MSG_RESULT($LIBGD)
-AC_SUBST(LIBGD)
-
-# SELinux detection
-if test x$with_selinux = xno ; then
-  have_selinux=no;
-else
-  # See if we have the SELinux library
-  AC_CHECK_LIB(selinux, is_selinux_enabled,
-	       have_selinux=yes, have_selinux=no)
-  if test x$with_selinux = xyes ; then
-    if test x$have_selinux = xno ; then
-      AC_MSG_ERROR([SELinux explicitly required, but SELinux library not found])
-    fi
-  fi
-fi
-# Check if we're building with SELinux support.
-if test "x$have_selinux" = xyes; then
-  AC_DEFINE(HAVE_SELINUX, 1, [SELinux support])
-
-  # See if we have the libaudit library
-  AC_CHECK_LIB(audit, audit_log_user_avc_message,
-	       have_libaudit=yes, have_libaudit=no)
-  if test "x$have_libaudit" = xyes; then
-    AC_DEFINE(HAVE_LIBAUDIT, 1, [SELinux libaudit support])
-  fi
-  AC_SUBST(have_libaudit)
-
-  # See if we have the libcap library
-  AC_CHECK_LIB(cap, cap_init, have_libcap=yes, have_libcap=no)
-  if test "x$have_libcap" = xyes; then
-    AC_DEFINE(HAVE_LIBCAP, 1, [SELinux libcap support])
-  fi
-  AC_SUBST(have_libcap)
-fi
-AC_SUBST(have_selinux)
-
-CPPUNDEFS=
-dnl Check for silly hacked compilers predefining _FORTIFY_SOURCE.
-dnl Since we are building the implementations of the fortified functions here,
-dnl having the macro defined interacts very badly.
-dnl _FORTIFY_SOURCE requires compiler optimization level 1 (gcc -O1)
-dnl and above (see "man FEATURE_TEST_MACROS").
-dnl So do NOT replace AC_COMPILE_IFELSE with AC_PREPROC_IFELSE.
-AC_CACHE_CHECK([for _FORTIFY_SOURCE predefine], libc_cv_predef_fortify_source,
-[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[
-#ifdef _FORTIFY_SOURCE
-# error bogon
-#endif]])],
-		[libc_cv_predef_fortify_source=no],
-		[libc_cv_predef_fortify_source=yes])])
-if test $libc_cv_predef_fortify_source = yes; then
-  CPPUNDEFS="${CPPUNDEFS:+$CPPUNDEFS }-U_FORTIFY_SOURCE"
-fi
-AC_SUBST(CPPUNDEFS)
-
-dnl Starting with binutils 2.35, GAS can attach multiple symbol versions
-dnl to one symbol (PR 23840).
-AC_CACHE_CHECK(whether the assembler requires one version per symbol,
-               libc_cv_symver_needs_alias, [dnl
-  cat > conftest.s <<EOF
-        .text
-testfunc:
-        .globl testfunc
-        .symver testfunc, testfunc1@VERSION1
-        .symver testfunc, testfunc1@VERSION2
-EOF
-  libc_cv_symver_needs_alias=no
-  if ${CC-cc} $ASFLAGS -c conftest.s 2>&AS_MESSAGE_LOG_FD; then
-    libc_cv_symver_needs_alias=no
-  else
-    libc_cv_symver_needs_alias=yes
-  fi
-  rm conftest.*
-])
-if test "$libc_cv_symver_needs_alias" = yes; then
-  AC_DEFINE(SYMVER_NEEDS_ALIAS)
-fi
-
-AC_CACHE_CHECK(for __builtin_trap with no external dependencies,
-	       libc_cv_builtin_trap, [dnl
-libc_cv_builtin_trap=no
-AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[__builtin_trap ()]])],[
-libc_undefs=`$NM -u conftest.o |
-  LC_ALL=C $AWK '$1 == "U" { print $2 | "sort -u"; next } { exit(1) }' \
-    2>&AS_MESSAGE_LOG_FD` || {
-  AC_MSG_ERROR([confusing output from $NM -u])
-}
-echo >&AS_MESSAGE_LOG_FD "libc_undefs='$libc_undefs'"
-if test -z "$libc_undefs"; then
-  libc_cv_builtin_trap=yes
-fi],[])])
-if test $libc_cv_builtin_trap = yes; then
-  AC_DEFINE([HAVE_BUILTIN_TRAP])
-fi
-
-dnl C++ feature tests.
-AC_LANG_PUSH([C++])
-
-AC_CACHE_CHECK([whether the C++ compiler supports thread_local],
-	       libc_cv_cxx_thread_local, [
-old_CXXFLAGS="$CXXFLAGS"
-CXXFLAGS="$CXXFLAGS -std=gnu++11"
-AC_COMPILE_IFELSE([AC_LANG_SOURCE([
-#include <thread>
-
-// Compiler support.
-struct S
-{
-  S ();
-  ~S ();
-};
-thread_local S s;
-S * get () { return &s; }
-
-// libstdc++ support.
-#ifndef _GLIBCXX_HAVE___CXA_THREAD_ATEXIT_IMPL
-#error __cxa_thread_atexit_impl not supported
-#endif
-])],
-	       [libc_cv_cxx_thread_local=yes],
-	       [libc_cv_cxx_thread_local=no])
-CXXFLAGS="$old_CXXFLAGS"
-])
-AC_SUBST(libc_cv_cxx_thread_local)
-
-AC_LANG_POP([C++])
-dnl End of C++ feature tests.
-
-### End of automated tests.
-### Now run sysdeps configure fragments.
-
-# They also can set these variables.
-use_ldconfig=no
-ldd_rewrite_script=no
-libc_cv_sysconfdir=$sysconfdir
-libc_cv_localstatedir=$localstatedir
-libc_cv_gcc_unwind_find_fde=no
-libc_cv_idn=no
-pthread_in_libc=yes
-
-# Iterate over all the sysdep directories we will use, running their
-# configure fragments.
-for dir in $sysnames; do
-  case $dir in
-    /*) dest=$dir ;;
-    *)  dest=$srcdir/$dir ;;
-  esac
-  if test -r $dest/configure; then
-    AC_MSG_RESULT(running configure fragment for $dir)
-    . $dest/configure
-  fi
-done
-
-if test x"$build_mathvec" = xnotset; then
-  build_mathvec=no
-fi
-LIBC_CONFIG_VAR([build-mathvec], [$build_mathvec])
-
-AC_SUBST(libc_extra_cflags)
-AC_SUBST(libc_extra_cppflags)
-
-if test x$libc_cv_gcc_unwind_find_fde = xyes; then
-  AC_DEFINE(EXPORT_UNWIND_FIND_FDE)
-fi
-AC_SUBST(libc_cv_gcc_unwind_find_fde)
-
-# A sysdeps configure fragment can reset this if IFUNC is not actually
-# usable even though the assembler knows how to generate the symbol type.
-if test x"$libc_cv_ld_gnu_indirect_function" = xyes; then
-  AC_DEFINE(HAVE_IFUNC)
-fi
-LIBC_CONFIG_VAR([have-ifunc], [$libc_cv_ld_gnu_indirect_function])
-
-if test x"$libc_cv_gcc_indirect_function" = xyes; then
-  AC_DEFINE(HAVE_GCC_IFUNC)
-fi
-LIBC_CONFIG_VAR([have-gcc-ifunc], [$libc_cv_gcc_indirect_function])
-
-# This is far from the AC_ARG_ENABLE that sets it so that a sysdeps
-# configure fragment can override the value to prevent this AC_DEFINE.
-AC_SUBST(use_nscd)
-if test "x$use_nscd" != xno; then
-  AC_DEFINE([USE_NSCD])
-fi
-if test "x$build_nscd" = xdefault; then
-  build_nscd=$use_nscd
-fi
-
-AC_SUBST(libc_cv_slibdir)
-AC_SUBST(libc_cv_rtlddir)
-AC_SUBST(libc_cv_complocaledir)
-AC_SUBST(libc_cv_sysconfdir)
-AC_SUBST(libc_cv_localstatedir)
-AC_SUBST(libc_cv_rootsbindir)
-
-if test x$use_ldconfig = xyes; then
-  AC_DEFINE(USE_LDCONFIG)
-fi
-AC_SUBST(use_ldconfig)
-AC_SUBST(ldd_rewrite_script)
-
-AC_SUBST(static)
-AC_SUBST(shared)
-
-AC_CACHE_CHECK([whether -fPIC is default], libc_cv_pic_default,
-[libc_cv_pic_default=yes
-cat > conftest.c <<EOF
-#if defined __PIC__ || defined __pic__ || defined PIC || defined pic
-# error PIC is default.
-#endif
-EOF
-if eval "${CC-cc} -S conftest.c 2>&AS_MESSAGE_LOG_FD 1>&AS_MESSAGE_LOG_FD"; then
-  libc_cv_pic_default=no
-fi
-rm -f conftest.*])
-LIBC_CONFIG_VAR([build-pic-default], [$libc_cv_pic_default])
-
-AC_CACHE_CHECK([whether -fPIE is default], libc_cv_cc_pie_default,
-[libc_cv_cc_pie_default=yes
-cat > conftest.c <<EOF
-#if defined __PIE__ || defined __pie__ || defined PIE || defined pie
-# error PIE is default.
-#endif
-EOF
-if eval "${CC-cc} -S conftest.c 2>&AS_MESSAGE_LOG_FD 1>&AS_MESSAGE_LOG_FD"; then
-  libc_cv_cc_pie_default=no
-fi
-rm -f conftest.*])
-LIBC_CONFIG_VAR([cc-pie-default], [$libc_cv_cc_pie_default])
-
-AC_MSG_CHECKING(if we can build programs as PIE)
-AC_COMPILE_IFELSE([AC_LANG_SOURCE([[#ifdef PIE_UNSUPPORTED
-# error PIE is not supported
-#endif]])], [libc_cv_pie_supported=yes], [libc_cv_pie_supported=no])
-AC_MSG_RESULT($libc_cv_pie_supported)
-# Disable build-pie-default if target does not support it or glibc is
-# configured with --disable-default-pie.
-if test "x$default_pie" = xno; then
-  build_pie_default=no
-else
-  build_pie_default=$libc_cv_pie_supported
-fi
-LIBC_CONFIG_VAR([build-pie-default], [$build_pie_default])
-
-AC_MSG_CHECKING(if we can build static PIE programs)
-libc_cv_static_pie_supported=$libc_cv_pie_supported
-if test "x$libc_cv_pie_supported" != xno \
-   -a "$libc_cv_no_dynamic_linker" = yes; then
-  AC_COMPILE_IFELSE([AC_LANG_SOURCE([[#ifndef SUPPORT_STATIC_PIE
-# error static PIE is not supported
-#endif]])], [libc_cv_static_pie_supported=yes],
-	    [libc_cv_static_pie_supported=no])
-fi
-AC_MSG_RESULT($libc_cv_static_pie_supported)
-
-# Enable static-pie only if it is available and glibc isn't configured
-# with --disable-default-pie.
-if test "x$default_pie" = xno; then
-  libc_cv_static_pie=no
-else
-  libc_cv_static_pie=$libc_cv_static_pie_supported
-fi
-if test "$libc_cv_static_pie" = "yes"; then
-  AC_DEFINE(ENABLE_STATIC_PIE)
-fi
-LIBC_CONFIG_VAR([enable-static-pie], [$libc_cv_static_pie])
-
-# Set the `multidir' variable by grabbing the variable from the compiler.
-# We do it once and save the result in a generated makefile.
-libc_cv_multidir=`${CC-cc} $CFLAGS $CPPFLAGS -print-multi-directory`
-AC_SUBST(libc_cv_multidir)
-
-AC_SUBST(profile)
-AC_SUBST(static_nss)
-
-AC_SUBST(DEFINES)
-
-dnl See sysdeps/mach/configure.ac for this variable.
-AC_SUBST(mach_interface_list)
-
-VERSION=`sed -n -e 's/^#define VERSION "\([^"]*\)"/\1/p' < $srcdir/version.h`
-RELEASE=`sed -n -e 's/^#define RELEASE "\([^"]*\)"/\1/p' < $srcdir/version.h`
-AC_SUBST(VERSION)
-AC_SUBST(RELEASE)
-
-if test "$pthread_in_libc" = yes; then
-  AC_DEFINE(PTHREAD_IN_LIBC)
-fi
-AC_SUBST(pthread_in_libc)
-
-AC_CONFIG_FILES([config.make Makefile])
-AC_CONFIG_COMMANDS([default],[[
-case $CONFIG_FILES in *config.make*)
-echo "$config_vars" >> config.make;;
-esac
-test -d bits || mkdir bits]],[[config_vars='$config_vars']])
-AC_OUTPUT
Index: sources/GNU/glibc/2.37/create-2.37-reenable-DT-HASH-patch/glibc-2.37-new/config.make.in
===================================================================
--- sources/GNU/glibc/2.37/create-2.37-reenable-DT-HASH-patch/glibc-2.37-new/config.make.in	(revision 393)
+++ sources/GNU/glibc/2.37/create-2.37-reenable-DT-HASH-patch/glibc-2.37-new/config.make.in	(nonexistent)
@@ -1,148 +0,0 @@
-# @configure_input@
-# Don't edit this file.  Put configuration parameters in configparms instead.
-
-version = @VERSION@
-release = @RELEASE@
-
-# Installation prefixes.
-install_root = $(DESTDIR)
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-datadir = @datadir@
-libdir = @libdir@
-bindir = @bindir@
-slibdir = @libc_cv_slibdir@
-rtlddir = @libc_cv_rtlddir@
-complocaledir = @libc_cv_complocaledir@
-sysconfdir = @libc_cv_sysconfdir@
-libexecdir = @libexecdir@
-rootsbindir = @libc_cv_rootsbindir@
-infodir = @infodir@
-includedir = @includedir@
-datarootdir = @datarootdir@
-localstatedir = @libc_cv_localstatedir@
-localedir = @localedir@
-multidir= @libc_cv_multidir@
-
-# Should we use and build ldconfig?
-use-ldconfig = @use_ldconfig@
-
-# Maybe the `ldd' script must be rewritten.
-ldd-rewrite-script = @ldd_rewrite_script@
-
-# System configuration.
-config-machine = @host_cpu@
-base-machine = @base_machine@
-config-vendor = @host_vendor@
-config-os = @host_os@
-config-sysdirs = @sysnames@
-cflags-cpu = @libc_cv_cc_submachine@
-asflags-cpu = @libc_cv_cc_submachine@
-
-config-extra-cflags = @libc_extra_cflags@
-config-extra-cppflags = @libc_extra_cppflags@
-config-cflags-nofma = @libc_cv_cc_nofma@
-
-defines = @DEFINES@
-sysheaders = @sysheaders@
-sysincludes = @SYSINCLUDES@
-c++-sysincludes = @CXX_SYSINCLUDES@
-c++-cstdlib-header = @CXX_CSTDLIB_HEADER@
-c++-cmath-header = @CXX_CMATH_HEADER@
-c++-bits-std_abs-h = @CXX_BITS_STD_ABS_H@
-all-warnings = @all_warnings@
-enable-werror = @enable_werror@
-
-have-z-execstack = @libc_cv_z_execstack@
-have-protected-data = @libc_cv_protected_data@
-have-insert = @libc_cv_insert@
-have-glob-dat-reloc = @libc_cv_has_glob_dat@
-with-fp = @libc_cv_with_fp@
-enable-timezone-tools = @enable_timezone_tools@
-unwind-find-fde = @libc_cv_gcc_unwind_find_fde@
-have-fpie = @libc_cv_fpie@
-have-ssp = @libc_cv_ssp@
-stack-protector = @stack_protector@
-no-stack-protector = @no_stack_protector@
-have-selinux = @have_selinux@
-have-libaudit = @have_libaudit@
-have-libcap = @have_libcap@
-have-cc-with-libunwind = @libc_cv_cc_with_libunwind@
-bind-now = @bindnow@
-have-hash-style = @libc_cv_hashstyle@
-use-default-link = @use_default_link@
-have-cxx-thread_local = @libc_cv_cxx_thread_local@
-have-loop-to-function = @libc_cv_cc_loop_to_function@
-have-textrel_ifunc = @libc_cv_textrel_ifunc@
-
-multi-arch = @multi_arch@
-
-mach-interface-list = @mach_interface_list@
-
-experimental-malloc = @experimental_malloc@
-
-memory-tagging = @memory_tagging@
-
-nss-crypt = @libc_cv_nss_crypt@
-static-nss-crypt = @libc_cv_static_nss_crypt@
-
-# Configuration options.
-build-shared = @shared@
-build-profile = @profile@
-build-static-nss = @static_nss@
-cross-compiling = @cross_compiling@
-force-install = @force_install@
-build-crypt = @build_crypt@
-build-nscd = @build_nscd@
-use-nscd = @use_nscd@
-build-hardcoded-path-in-tests= @hardcoded_path_in_tests@
-build-pt-chown = @build_pt_chown@
-have-tunables = @have_tunables@
-pthread-in-libc = @pthread_in_libc@
-
-# Build tools.
-CC = @CC@
-CXX = @CXX@
-BUILD_CC = @BUILD_CC@
-CFLAGS = @CFLAGS@
-CPPFLAGS-config = @CPPFLAGS@
-CPPUNDEFS = @CPPUNDEFS@
-extra-nonshared-cflags = @extra_nonshared_cflags@
-rtld-early-cflags = @rtld_early_cflags@
-ASFLAGS-config = @ASFLAGS_config@
-AR = @AR@
-NM = @NM@
-MAKEINFO = @MAKEINFO@
-AS = $(CC) -c
-BISON = @BISON@
-AUTOCONF = @AUTOCONF@
-OBJDUMP = @OBJDUMP@
-OBJCOPY = @OBJCOPY@
-GPROF = @GPROF@
-READELF = @READELF@
-
-# Installation tools.
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_INFO = @INSTALL_INFO@
-LN_S = @LN_S@
-MSGFMT = @MSGFMT@
-
-# Script execution tools.
-BASH = @BASH_SHELL@
-AWK = @AWK@
-PERL = @PERL@
-PYTHON = @PYTHON@
-
-# Additional libraries.
-LIBGD = @LIBGD@
-
-# Package versions and bug reporting configuration.
-PKGVERSION = @PKGVERSION@
-PKGVERSION_TEXI = @PKGVERSION_TEXI@
-REPORT_BUGS_TO = @REPORT_BUGS_TO@
-REPORT_BUGS_TEXI = @REPORT_BUGS_TEXI@
-
-# More variables may be inserted below by configure.
Index: sources/GNU/glibc/2.37/create-2.37-reenable-DT-HASH-patch/glibc-2.37-new/Makeconfig
===================================================================
--- sources/GNU/glibc/2.37/create-2.37-reenable-DT-HASH-patch/glibc-2.37-new/Makeconfig	(revision 393)
+++ sources/GNU/glibc/2.37/create-2.37-reenable-DT-HASH-patch/glibc-2.37-new/Makeconfig	(nonexistent)
@@ -1,1431 +0,0 @@
-# Copyright (C) 1991-2023 Free Software Foundation, Inc.
-# Copyright The GNU Toolchain Authors.
-# This file is part of the GNU C Library.
-
-# The GNU C Library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-
-# The GNU C Library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-
-# You should have received a copy of the GNU Lesser General Public
-# License along with the GNU C Library; if not, see
-# <https://www.gnu.org/licenses/>.
-
-#
-#	Makefile configuration options for the GNU C library.
-#
-ifneq (,)
-This makefile requires GNU Make.
-endif
-
-all: # Make this the default goal
-
-ifneq "$(origin +included-Makeconfig)" "file"
-
-+included-Makeconfig := yes
-
-ifdef subdir
-.. := ../
-endif
-
-# $(common-objdir) is the place to put objects and
-# such that are not specific to a single subdir.
-ifdef objdir
-objpfx := $(patsubst %//,%/,$(objdir)/$(subdir)/)
-common-objpfx = $(objdir)/
-common-objdir = $(objdir)
-else
-$(error objdir must be defined by the build-directory Makefile)
-endif
-
-# Did we request 'make -s' run? "yes" or "no".
-# Starting from make-4.4 MAKEFLAGS now contains long
-# options like '--shuffle'. To detect presence of 's'
-# we pick first word with short options. Long options
-# are guaranteed to come after whitespace. We use '-'
-# prefix to always have a word before long options
-# even if no short options were passed.
-# Typical MAKEFLAGS values to watch for:
-#   "rs --shuffle=42" (silent)
-#   " --shuffle" (not silent)
-ifeq ($(findstring s, $(firstword -$(MAKEFLAGS))),)
-silent-make := no
-else
-silent-make := yes
-endif
-
-# Root of the sysdeps tree.
-sysdep_dir := $(..)sysdeps
-export sysdep_dir := $(sysdep_dir)
-
-# Get the values defined by options to `configure'.
-include $(common-objpfx)config.make
-
-# What flags to give to sources which call user provided callbacks
-uses-callbacks = -fexceptions
-
-# What flags to give to tests which test stack alignment
-stack-align-test-flags =
-
-# Complete path to sysdep dirs.
-# `configure' writes a definition of `config-sysdirs' in `config.make'.
-sysdirs := $(foreach D,$(config-sysdirs),$(firstword $(filter /%,$D) $(..)$D))
-
-+sysdep_dirs = $(sysdirs)
-ifdef objdir
-+sysdep_dirs := $(objdir) $(+sysdep_dirs)
-endif
-
-# Run config.status to update config.make and config.h.  We don't show the
-# dependence of config.h to Make, because it is only touched when it
-# changes and so config.status would be run every time; the dependence of
-# config.make should suffice to force regeneration and re-exec, and the new
-# image will notice if config.h changed.
-$(common-objpfx)config.make: $(common-objpfx)config.status \
-			     $(..)config.make.in $(..)config.h.in
-	cd $(<D); $(SHELL) $(<F)
-
-# Find all the sysdeps configure fragments, to make sure we re-run
-# configure when any of them changes.
-$(common-objpfx)config.status: $(..)version.h $(..)configure \
-			       $(foreach dir,$(sysdirs),\
-					 $(wildcard $(dir)/Implies) \
-					 $(patsubst %.ac,%,\
-						    $(firstword $(wildcard \
- $(addprefix $(dir)/,configure configure.ac))))) \
-			       $(patsubst %.ac,%,\
- $(wildcard $(..)sysdeps/*/preconfigure $(..)sysdeps/*/preconfigure.ac))
-	@cd $(@D); if test -f $(@F); then exec $(SHELL) $(@F) --recheck; else \
-	 echo The GNU C library has not been configured. >&2; \
-	 echo Run \`configure\' to configure it before building. >&2; \
-	 echo Try \`configure --help\' for more details. >&2; \
-	 exit 1; fi
-
-# We don't want CPPFLAGS to be exported to the command running configure.
-unexport CPPFLAGS
-
-# Get the user's configuration parameters.
-ifneq ($(wildcard $(..)configparms),)
-include $(..)configparms
-endif
-ifneq ($(objpfx),)
-ifneq ($(wildcard $(common-objpfx)configparms),)
-include $(common-objpfx)configparms
-endif
-endif
-
-####
-####	These are the configuration variables.  You can define values for
-####	the variables below in the file `configparms'.
-####	Do NOT edit this file.
-####
-
-
-# Common prefix for machine-independent installation directories.
-ifeq ($(origin prefix),undefined) # ifndef would override explicit empty value.
-prefix = /usr/local
-endif
-
-# Decide whether we shall build the programs or not.  We always do this
-# unless the user tells us (in configparms) or we are building for a
-# standalone target.
-ifndef build-programs
-ifneq ($(config-os),none)
-build-programs=yes
-else
-build-programs=no
-endif
-endif
-
-# Common prefix for machine-dependent installation directories.
-ifeq ($(origin exec_prefix),undefined)
-exec_prefix = $(prefix)
-endif
-
-# Where to install the library and object files.
-ifndef libdir
-libdir = $(exec_prefix)/lib
-endif
-inst_libdir = $(install_root)$(libdir)
-
-# Where to install the shared library.
-ifndef slibdir
-slibdir = $(exec_prefix)/lib
-endif
-inst_slibdir = $(install_root)$(slibdir)
-
-# Where to install the dynamic linker.
-ifndef rtlddir
-rtlddir = $(slibdir)
-endif
-inst_rtlddir = $(install_root)$(rtlddir)
-
-# Prefix to put on files installed in $(libdir).  For libraries `libNAME.a',
-# the prefix is spliced between `lib' and the name, so the linker switch
-# `-l$(libprefix)NAME' finds the library; for other files the prefix is
-# just prepended to the whole file name.
-ifeq ($(origin libprefix),undefined)
-libprefix =
-endif
-
-# Where to install the header files.
-ifndef includedir
-includedir = $(prefix)/include
-endif
-inst_includedir = $(install_root)$(includedir)
-
-# Where to install machine-independent data files.
-# These are the timezone database, and the locale database.
-ifndef datadir
-datadir = $(prefix)/share
-endif
-inst_datadir = $(install_root)$(datadir)
-
-# Where to install the timezone data files (which are machine-independent).
-ifndef zonedir
-zonedir = $(datadir)/zoneinfo
-endif
-inst_zonedir = $(install_root)$(zonedir)
-
-# Where to install the compiled binary locale archive and compiled
-# binary locale files.
-ifndef complocaledir
-complocaledir = $(libdir)/locale
-endif
-inst_complocaledir = $(install_root)$(complocaledir)
-
-# Where to install the message catalog data files (which are
-# machine-independent).
-ifndef localedir
-localedir = $(datadir)/locale
-endif
-inst_localedir = $(install_root)$(localedir)
-
-# Where to install the locale charmap source files.
-ifndef i18ndir
-i18ndir = $(datadir)/i18n
-endif
-inst_i18ndir = $(install_root)$(i18ndir)
-
-# Where to install the shared object for charset transformation.
-ifndef gconvdir
-gconvdir = $(libdir)/gconv
-endif
-inst_gconvdir = $(install_root)$(gconvdir)
-
-# Where to install programs.
-ifndef bindir
-bindir = $(exec_prefix)/bin
-endif
-inst_bindir = $(install_root)$(bindir)
-
-# Where to install internal programs.
-ifndef libexecdir
-libexecdir = $(exec_prefix)/libexec
-endif
-inst_libexecdir = $(install_root)$(libexecdir)
-
-# Where to install administrative programs.
-ifndef rootsbindir
-rootsbindir = $(exec_prefix)/sbin
-endif
-inst_rootsbindir = $(install_root)$(rootsbindir)
-
-ifndef sbindir
-sbindir = $(exec_prefix)/sbin
-endif
-inst_sbindir = $(install_root)$(sbindir)
-
-# Where to install the Info files.
-ifndef infodir
-infodir = $(prefix)/info
-endif
-inst_infodir = $(install_root)$(infodir)
-
-# Where to install audit libraries.
-ifndef auditdir
-auditdir = $(libdir)/audit
-endif
-inst_auditdir = $(install_root)$(auditdir)
-
-# Where to install default configuration files.  These include the local
-# timezone specification and network data base files.
-ifndef sysconfdir
-sysconfdir = $(prefix)/etc
-endif
-inst_sysconfdir = $(install_root)$(sysconfdir)
-
-# Directory for the database files and Makefile for nss_db.
-ifndef vardbdir
-vardbdir = $(localstatedir)/db
-endif
-inst_vardbdir = $(install_root)$(vardbdir)
-
-# Where to install the "localtime" timezone file; this is the file whose
-# contents $(localtime) specifies.  If this is a relative pathname, it is
-# relative to $(zonedir).  It is a good idea to put this somewhere
-# other than there, so the zoneinfo directory contains only universal data,
-# localizing the configuration data elsewhere.
-ifndef localtime-file
-localtime-file = $(sysconfdir)/localtime
-endif
-
-# What to use for leap second specifications in compiling the default
-# timezone files.  Set this to `/dev/null' for no leap second handling as
-# 1003.1 requires, or to `leapseconds' for proper leap second handling.
-# Both zone flavors are always available as `posix/ZONE' and `right/ZONE'.
-# This variable determines the default: if it's `/dev/null',
-# ZONE==posix/ZONE; if it's `leapseconds', ZONE==right/ZONE.
-ifndef leapseconds
-leapseconds = /dev/null
-endif
-
-# What timezone's DST rules should be used when a POSIX-style TZ
-# environment variable doesn't specify any rules.  For 1003.1 compliance
-# this timezone must use rules that are as U.S. federal law defines DST.
-# Run `make -C time echo-zonenames' to see a list of available zone names.
-# This setting can be changed with `zic -p TIMEZONE' at any time.
-# If you want POSIX.1 compatibility, use `America/New_York'.
-ifndef posixrules
-posixrules = America/New_York
-endif
-
-# Where to install the "posixrules" timezone file; this is file
-# whose contents $(posixrules) specifies.  If this is a relative
-# pathname, it is relative to $(zonedir).
-ifndef posixrules-file
-posixrules-file = posixrules
-endif
-
-
-# Directory where your system's native header files live.
-# This is used on Unix systems to generate some GNU libc header files.
-ifndef sysincludedir
-sysincludedir = /usr/include
-endif
-
-
-# Commands to install files.
-ifndef INSTALL_DATA
-INSTALL_DATA = $(INSTALL) -m 644
-endif
-ifndef INSTALL_SCRIPT
-INSTALL_SCRIPT = $(INSTALL)
-endif
-ifndef INSTALL_PROGRAM
-INSTALL_PROGRAM = $(INSTALL)
-endif
-ifndef INSTALL
-INSTALL = install
-endif
-
-
-# The name of the C compiler.
-# If you've got GCC, and it works, use it.
-ifeq ($(origin CC),default)
-CC := gcc
-endif
-
-# The name of the C compiler to use for compilations of programs to run on
-# the host that is building the library.  If you set CC to a
-# cross-compiler, you must set this to the normal compiler.
-ifndef BUILD_CC
-BUILD_CC = $(CC)
-endif
-
-# Default flags to pass the C compiler.
-ifndef default_cflags
-ifeq ($(release),stable)
-default_cflags := -g -O2
-else
-default_cflags := -g -O
-endif
-endif
-
-# Flags to pass the C compiler when assembling preprocessed assembly code
-# (`.S' files).
-ifndef asm-CPPFLAGS
-asm-CPPFLAGS =
-endif
-
-# Must be supported by the linker.
-no-whole-archive = -Wl,--no-whole-archive
-whole-archive = -Wl,--whole-archive
-
-# Installed name of the startup code.
-# The ELF convention is that the startfile is called crt1.o
-start-installed-name = crt1.o
-# On systems that do not need a special startfile for statically linked
-# binaries, simply set it to the normal name.
-ifndef static-start-installed-name
-static-start-installed-name = $(start-installed-name)
-endif
-
-ifeq (yes,$(enable-static-pie))
-# Link with rcrt1.o, instead of crt1.o, to call _dl_relocate_static_pie
-# to relocate static PIE.
-real-static-start-installed-name = r$(static-start-installed-name)
-else
-real-static-start-installed-name = $(static-start-installed-name)
-endif
-
-relro-LDFLAGS = -Wl,-z,relro
-LDFLAGS.so += $(relro-LDFLAGS)
-LDFLAGS-rtld += $(relro-LDFLAGS)
-
-# Linker options to enable and disable DT_RELR.
-ifeq ($(have-dt-relr),yes)
-dt-relr-ldflag = -Wl,-z,pack-relative-relocs
-no-dt-relr-ldflag = -Wl,-z,nopack-relative-relocs
-else
-dt-relr-ldflag =
-no-dt-relr-ldflag =
-endif
-
-ifeq (yes,$(have-hash-style))
-# For the time being we unconditionally use 'both'.  At some time we
-# should declare statically linked code as 'out of luck' and compile
-# with --hash-style=gnu only.
-hashstyle-LDFLAGS = -Wl,--hash-style=both
-LDFLAGS.so += $(hashstyle-LDFLAGS)
-LDFLAGS-rtld += $(hashstyle-LDFLAGS)
-endif
-
-ifeq (no,$(build-pie-default))
-pie-default = $(no-pie-ccflag)
-else # build-pie-default
-pic-default = -DPIC
-# Compile libc.a and libc_p.a with -fPIE/-fpie for static PIE.
-pie-default = $(pie-ccflag)
-
-ifeq (yes,$(enable-static-pie))
-static-pie-dt-relr-ldflag = $(dt-relr-ldflag)
-ifeq (yes,$(have-static-pie))
-static-pie-ldflag = -static-pie
-else
-# Static PIE can't have dynamic relocations in read-only segments since
-# static PIE is mapped into memory by kernel.  --eh-frame-hdr is needed
-# for PIE to support exception.
-static-pie-ldflag = -Wl,-pie,--no-dynamic-linker,--eh-frame-hdr,-z,text
-endif # have-static-pie
-endif # enable-static-pie
-endif # build-pie-default
-
-# If lazy relocations are disabled, add the -z now flag.  Use
-# LDFLAGS-lib.so instead of LDFLAGS.so, to avoid adding the flag to
-# test modules.
-ifeq ($(bind-now),yes)
-LDFLAGS-lib.so += -Wl,-z,now
-# Extra flags for dynamically linked non-test main programs.
-link-extra-flags += -Wl,-z,now
-endif
-
-# Command to run after every final link (executable or shared object).
-# This is invoked with $(call after-link,...), so it should operate on
-# the file $1.  This can be set to do some sort of post-processing on
-# binaries, or to perform some sort of static sanity check.
-ifndef after-link
-after-link =
-endif
-
-# Additional libraries to link into every test.
-link-extra-libs-tests = $(libsupport)
-
-# Command for linking PIE programs with the C library.
-ifndef +link-pie
-+link-pie-before-inputs = $(if $($(@F)-no-pie),$(no-pie-ldflag),-pie) \
-	     $(if $($(@F)-no-dt-relr),$(no-dt-relr-ldflag),$(dt-relr-ldflag)) \
-	     -Wl,-O1 -nostdlib -nostartfiles \
-	     $(sysdep-LDFLAGS) $(LDFLAGS) $(LDFLAGS-$(@F)) \
-	     $(relro-LDFLAGS) $(hashstyle-LDFLAGS) \
-	     $(firstword $(CRT-$(@F)) $(csu-objpfx)S$(start-installed-name)) \
-	     $(+preinit) $(+prectorS)
-+link-pie-before-libc = -o $@ $(+link-pie-before-inputs) \
-	     $(filter-out $(addprefix $(csu-objpfx),start.o \
-						    S$(start-installed-name))\
-			  $(+preinit) $(link-extra-libs) \
-			  $(common-objpfx)libc% $(+postinit),$^) \
-	     $(link-extra-libs)
-+link-pie-after-libc = $(+postctorS) $(+postinit)
-define +link-pie
-$(CC) $(link-libc-rpath-link) $(+link-pie-before-libc) $(rtld-LDFLAGS) \
-  $(link-extra-flags) $(link-libc) $(+link-pie-after-libc)
-$(call after-link,$@)
-endef
-define +link-pie-tests
-$(CC) $(+link-pie-before-libc) $(rtld-tests-LDFLAGS) $(link-libc-tests) \
-  $(+link-pie-after-libc)
-$(call after-link,$@)
-endef
-define +link-pie-printers-tests
-$(CC) $(+link-pie-before-libc) $(built-rtld-LDFLAGS) \
-  $(link-libc-printers-tests) $(+link-pie-after-libc)
-$(call after-link,$@)
-endef
-endif
-# Command for statically linking programs with the C library.
-ifndef +link-static
-+link-static-before-inputs = -nostdlib -nostartfiles -static \
-	      $(if $($(@F)-no-pie),$(no-pie-ldflag),$(static-pie-ldflag)) \
-	      $(if $($(@F)-no-dt-relr),$(no-dt-relr-ldflag),$(static-pie-dt-relr-ldflag)) \
-	      $(sysdep-LDFLAGS) $(LDFLAGS) $(LDFLAGS-$(@F))  \
-	      $(firstword $(CRT-$(@F)) $(csu-objpfx)$(real-static-start-installed-name)) \
-	      $(+preinit) $(+prectorT)
-+link-static-before-libc = -o $@ $(+link-static-before-inputs) \
-	      $(filter-out $(addprefix $(csu-objpfx),start.o \
-						     $(start-installed-name))\
-			   $(+preinit) $(link-extra-libs-static) \
-			   $(common-objpfx)libc% $(+postinit),$^) \
-	      $(link-extra-libs-static)
-+link-static-after-libc = $(+postctorT) $(+postinit)
-define +link-static
-$(CC) $(+link-static-before-libc) $(link-extra-flags) $(link-libc-static) \
-  $(+link-static-after-libc)
-$(call after-link,$@)
-endef
-define +link-static-tests
-$(CC) $(+link-static-before-libc) $(link-libc-static-tests) \
-  $(+link-static-after-libc)
-$(call after-link,$@)
-endef
-endif
-# Commands for linking programs with the C library.
-ifndef +link
-ifeq (yes,$(build-shared))
-ifeq (yes,$(cc-pie-default))
-no-pie-ldflag = -no-pie
-endif
-ifeq (yes,$(build-pie-default))
-+link = $(+link-pie)
-+link-tests = $(+link-pie-tests)
-+link-tests-before-inputs = $(+link-pie-before-inputs) $(rtld-tests-LDFLAGS)
-+link-tests-after-inputs = $(link-libc-tests) $(+link-pie-after-libc)
-+link-printers-tests = $(+link-pie-printers-tests)
-else  # not build-pie-default
-+link-before-inputs = -nostdlib -nostartfiles $(no-pie-ldflag) \
-	      $(sysdep-LDFLAGS) $(LDFLAGS) $(LDFLAGS-$(@F)) \
-	      $(relro-LDFLAGS) $(hashstyle-LDFLAGS) \
-	      $(firstword $(CRT-$(@F)) $(csu-objpfx)$(start-installed-name)) \
-	      $(+preinit) $(+prector)
-+link-before-libc = -o $@ $(+link-before-inputs) \
-	      $(filter-out $(addprefix $(csu-objpfx),start.o \
-						     $(start-installed-name))\
-			   $(+preinit) $(link-extra-libs) \
-			   $(common-objpfx)libc% $(+postinit),$^) \
-	      $(link-extra-libs)
-+link-after-libc = $(+postctor) $(+postinit)
-define +link
-$(CC) $(link-libc-rpath-link) $(+link-before-libc) $(rtld-LDFLAGS) \
-  $(link-extra-flags) $(link-libc) $(+link-after-libc)
-$(call after-link,$@)
-endef
-+link-tests-before-inputs = $(+link-before-inputs) $(rtld-tests-LDFLAGS)
-+link-tests-after-inputs = $(link-libc-tests) $(+link-after-libc)
-define +link-tests
-$(CC) $(+link-before-libc) $(rtld-tests-LDFLAGS) $(link-libc-tests) \
-		     $(+link-after-libc)
-$(call after-link,$@)
-endef
-define +link-printers-tests
-$(CC) $(+link-before-libc) $(built-rtld-LDFLAGS) $(link-libc-printers-tests) \
-		     $(+link-after-libc)
-$(call after-link,$@)
-endef
-endif  # build-pie-default
-else  # build-static
-+link = $(+link-static)
-+link-tests = $(+link-static-tests)
-+link-tests-before-inputs = $(+link-static-before-inputs)
-+link-tests-after-inputs = $(link-libc-static-tests) $(+link-static-after-libc)
-+link-printers-tests = $(+link-static-tests)
-endif  # build-shared
-endif  # +link
-
-# The pretty printer test programs need to be compiled without optimizations
-# so they won't confuse gdb.  We could use either the 'GCC optimize' pragma
-# or the 'optimize' function attribute to achieve this; however, at least on
-# ARM, gcc always produces different debugging symbols when invoked with
-# a -O greater than 0 than when invoked with -O0, regardless of anything else
-# we're using to suppress optimizations.  Therefore, we need to explicitly pass
-# -O0 to it through CFLAGS.
-# Additionally, the build system will try to -include $(common-objpfx)/config.h
-# when compiling the tests, which will throw an error if some special macros
-# (such as __OPTIMIZE__ and IS_IN_build) aren't defined.  To avoid this, we
-# tell gcc to define IS_IN_build.
-CFLAGS-printers-tests := -O0 -ggdb3 -DIS_IN_build
-
-ifeq (yes,$(build-shared))
-# These indicate whether to link using the built ld.so or the installed one.
-installed-rtld-LDFLAGS = -Wl,-dynamic-linker=$(rtlddir)/$(rtld-installed-name)
-built-rtld-LDFLAGS = -Wl,-dynamic-linker=$(elf-objpfx)ld.so
-
-ifndef rtld-LDFLAGS
-rtld-LDFLAGS = $(installed-rtld-LDFLAGS)
-endif
-
-ifndef rtld-tests-LDFLAGS
-ifeq (yes,$(build-hardcoded-path-in-tests))
-rtld-tests-LDFLAGS = $(built-rtld-LDFLAGS)
-else
-rtld-tests-LDFLAGS = $(installed-rtld-LDFLAGS)
-endif  # build-hardcoded-path-in-tests
-endif  # rtld-tests-LDFLAGS
-
-endif  # build-shared
-
-ifndef link-libc
-ifeq (yes,$(build-shared))
-# We need the versioned name of libc.so in the deps of $(others) et al
-# so that the symlink to libc.so is created before anything tries to
-# run the linked programs.
-link-libc-rpath = -Wl,-rpath=$(rpath-link)
-link-libc-rpath-link = -Wl,-rpath-link=$(rpath-link)
-
-# For programs which are not tests, $(link-libc-rpath-link) is added
-# directly in $(+link), $(+link-pie) above, so that -Wl,-rpath-link
-# comes before the expansion of LDLIBS-* and affects libraries added
-# there.  For shared objects, -Wl,-rpath-link is added via
-# $(build-shlib-helper) and $(build-module-helper) in Makerules (also
-# before the expansion of LDLIBS-* variables).
-
-# Tests use -Wl,-rpath instead of -Wl,-rpath-link for
-# build-hardcoded-path-in-tests.
-ifeq (yes,$(build-hardcoded-path-in-tests))
-link-libc-tests-rpath-link = $(link-libc-rpath)
-link-test-modules-rpath-link = $(link-libc-rpath)
-else
-link-libc-tests-rpath-link = $(link-libc-rpath-link)
-link-test-modules-rpath-link =
-endif  # build-hardcoded-path-in-tests
-
-link-libc-between-gnulib = $(common-objpfx)libc.so$(libc.so-version) \
-			   $(common-objpfx)$(patsubst %,$(libtype.oS),c) \
-			   -Wl,--as-needed $(elf-objpfx)ld.so \
-			   -Wl,--no-as-needed
-link-libc = $(link-libc-between-gnulib) $(gnulib)
-
-link-libc-tests-after-rpath-link = $(gnulib-tests) $(link-libc-between-gnulib) $(gnulib-tests)
-link-libc-tests = $(link-libc-tests-rpath-link) \
-		  $(link-libc-tests-after-rpath-link)
-# Pretty printer test programs always require rpath instead of rpath-link.
-link-libc-printers-tests = $(link-libc-rpath) \
-			   $(link-libc-tests-after-rpath-link)
-
-# This is how to find at build-time things that will be installed there.
-rpath-dirs = math elf dlfcn nss nis rt resolv mathvec support
-rpath-link = \
-$(common-objdir):$(subst $(empty) ,:,$(patsubst ../$(subdir),.,$(rpath-dirs:%=$(common-objpfx)%)))
-else  # build-static
-link-libc = $(common-objpfx)libc.a $(otherlibs) $(gnulib) $(common-objpfx)libc.a $(gnulib)
-link-libc-tests = $(common-objpfx)libc.a $(otherlibs) $(gnulib-tests) $(common-objpfx)libc.a $(gnulib-tests)
-endif  # build-shared
-endif  # link-libc
-
-# Differences in the linkers on the various platforms.
-LDFLAGS-rpath-ORIGIN = -Wl,-rpath,'$$ORIGIN'
-LDFLAGS-soname-fname = -Wl,-soname,$(@F)
-LDFLAGS-rdynamic = -rdynamic
-LDFLAGS-Bsymbolic = -Bsymbolic
-
-# Choose the default search path for the dynamic linker based on
-# where we will install libraries.
-ifneq ($(libdir),$(slibdir))
-default-rpath = $(slibdir):$(libdir)
-else
-default-rpath = $(libdir)
-endif
-
-ifndef link-extra-libs
-link-extra-libs = $(LDLIBS-$(@F))
-link-extra-libs-static = $(link-extra-libs)
-endif
-
-# The static libraries.
-link-libc-static = -Wl,--start-group $(common-objpfx)libc.a $(static-gnulib) -Wl,--end-group
-link-libc-static-tests = -Wl,--start-group $(common-objpfx)libc.a $(static-gnulib-tests) -Wl,--end-group
-
-# How to link against libgcc.  Some libgcc functions, such as those
-# for "long long" arithmetic or software floating point, can always be
-# built without use of C library headers and do not have any global
-# state so can safely be linked statically into any executable or
-# shared library requiring them; these functions are in libgcc.a.
-# Other functions, relating to exception handling, may require C
-# library headers to build and it may not be safe to have more than
-# one copy of them in a process; these functions are only in
-# libgcc_s.so and libgcc_eh.a.
-#
-# To avoid circular dependencies when bootstrapping, it is desirable
-# to avoid use of libgcc_s and libgcc_eh in building glibc.  Where any
-# glibc functionality (in particular, thread cancellation) requires
-# exception handling, this is implemented through dlopen of libgcc_s
-# to avoid unnecessary dependencies on libgcc_s by programs not using
-# that functionality; executables built with glibc do not use
-# exception handling other than through thread cancellation.
-#
-# Undefined references to functions from libgcc_eh or libgcc_s may
-# arise for code built with -fexceptions.  In the case of statically
-# linked programs installed by glibc, unwinding will never actually
-# occur at runtime and the use of elf/static-stubs.c to resolve these
-# references is safe.  In the case of statically linked test programs
-# and test programs built with -fexceptions, unwinding may occur in
-# some cases and it is preferable to link with libgcc_eh or libgcc_s
-# so that the testing is as similar as possible to how programs will
-# be built with the installed glibc.
-#
-# Some architectures have architecture-specific systems for exception
-# handling that may involve undefined references to
-# architecture-specific functions.  On those architectures,
-# gnulib-arch and static-gnulib-arch may be defined in sysdeps
-# makefiles to use additional libraries for linking executables and
-# shared libraries built by glibc.
-ifndef gnulib
-ifneq ($(have-cc-with-libunwind),yes)
-  libunwind =
-else
-  libunwind = -lunwind
-endif
-libgcc_eh := -Wl,--as-needed -lgcc_s $(libunwind) -Wl,--no-as-needed
-gnulib-arch =
-gnulib = -lgcc $(gnulib-arch)
-gnulib-tests := -lgcc $(libgcc_eh)
-static-gnulib-arch =
-# By default, elf/static-stubs.o, instead of -lgcc_eh, is used to
-# statically link programs.  When --disable-shared is used, we use
-# -lgcc_eh since elf/static-stubs.o isn't sufficient.
-ifeq (yes,$(build-shared))
-static-gnulib = -lgcc $(static-gnulib-arch)
-else
-static-gnulib = -lgcc -lgcc_eh $(static-gnulib-arch)
-endif
-static-gnulib-tests := -lgcc -lgcc_eh $(libunwind)
-libc.so-gnulib := -lgcc
-endif
-+preinit = $(addprefix $(csu-objpfx),crti.o)
-+postinit = $(addprefix $(csu-objpfx),crtn.o)
-+prector = `$(CC) $(sysdep-LDFLAGS) --print-file-name=crtbegin.o`
-+postctor = `$(CC) $(sysdep-LDFLAGS) --print-file-name=crtend.o`
-# Variants of the two previous definitions for linking PIE programs.
-+prectorS = `$(CC) $(sysdep-LDFLAGS) --print-file-name=crtbeginS.o`
-+postctorS = `$(CC) $(sysdep-LDFLAGS) --print-file-name=crtendS.o`
-# Variants of the two previous definitions for statically linking programs.
-ifeq (yes,$(enable-static-pie))
-# Static PIE must use PIE variants.
-+prectorT = $(+prectorS)
-+postctorT = $(+postctorS)
-else
-+prectorT = `$(CC) $(sysdep-LDFLAGS) --print-file-name=crtbeginT.o`
-+postctorT = `$(CC) $(sysdep-LDFLAGS) --print-file-name=crtend.o`
-endif
-csu-objpfx = $(common-objpfx)csu/
-elf-objpfx = $(common-objpfx)elf/
-
-# A command that, prepended to the name and arguments of a program,
-# and run on the build system, causes that program with those
-# arguments to be run on the host for which the library is built.
-ifndef test-wrapper
-test-wrapper =
-endif
-# Likewise, but the name of the program is preceded by
-# <variable>=<value> assignments for environment variables.
-ifndef test-wrapper-env
-test-wrapper-env = $(test-wrapper) env
-endif
-# Likewise, but the program's environment will be empty except for any
-# explicit <variable>=<value> assignments preceding the program name.
-ifndef test-wrapper-env-only
-test-wrapper-env-only = $(test-wrapper) env -i
-endif
-
-# Whether to run test programs built for the library's host system.
-ifndef run-built-tests
-ifeq (yes|,$(cross-compiling)|$(test-wrapper))
-run-built-tests = no
-else
-run-built-tests = yes
-endif
-endif
-
-# Whether to stop immediately when a test fails.  Nonempty means to
-# stop, empty means not to stop.
-ifndef stop-on-test-failure
-stop-on-test-failure =
-endif
-
-# How to run a program we just linked with our library.
-# The program binary is assumed to be $(word 2,$^).
-built-program-file = $(dir $(word 2,$^))$(notdir $(word 2,$^))
-rtld-prefix = $(elf-objpfx)$(rtld-installed-name)			      \
-	      --library-path						      \
-	      $(rpath-link)$(patsubst %,:%,$(sysdep-library-path))
-ifeq (yes,$(build-shared))
-comma = ,
-sysdep-library-path = \
-$(subst $(empty) ,:,$(strip $(patsubst -Wl$(comma)-rpath-link=%, %,\
-				       $(filter -Wl$(comma)-rpath-link=%,\
-						$(sysdep-LDFLAGS)))))
-# $(run-via-rtld-prefix) is a command that, when prepended to the name
-# of a program built with the newly built library, produces a command
-# that, executed on the host for which the library is built, runs that
-# program.  For tests listed in tests-static or xtests-static, it is
-# empty.
-run-via-rtld-prefix =							      \
-  $(if $(strip $(filter $(notdir $(built-program-file)),		      \
-			$(tests-static) $(xtests-static))),, $(rtld-prefix))
-else
-run-via-rtld-prefix =
-endif
-# $(run-program-env) is the default environment variable settings to
-# use when running a program built with the newly built library.
-run-program-env = GCONV_PATH=$(common-objpfx)iconvdata \
-		  LOCPATH=$(common-objpfx)localedata LC_ALL=C
-# $(run-program-prefix) is a command that, when prepended to the name
-# of a program built with the newly built library, produces a command
-# that, executed on the build system on which "make" is run, runs that
-# program.  $(run-program-prefix-before-env) and
-# $(run-program-prefix-after-env) are similar, but separate parts
-# before and after a list of environment variables.
-run-program-prefix-before-env = $(test-wrapper-env)
-run-program-prefix-after-env = $(run-via-rtld-prefix)
-run-program-prefix = $(run-program-prefix-before-env) $(run-program-env) \
-		     $(run-program-prefix-after-env)
-# $(built-program-cmd) is a command that, executed on the build system
-# on which "make" is run, runs the newly built program that is the
-# second dependency of the makefile target in which
-# $(built-program-cmd) is used.  $(built-program-cmd-before-env) and
-# $(built-program-cmd-after-env) are similar, before and after a list
-# of environment variables.
-built-program-cmd-before-env = $(test-wrapper-env)
-built-program-cmd-after-env = $(run-via-rtld-prefix) $(built-program-file)
-built-program-cmd = $(built-program-cmd-before-env) $(run-program-env) \
-		    $(built-program-cmd-after-env)
-# $(host-built-program-cmd) is a command that, executed on the host
-# for which the library is built, runs the newly built program that is
-# the second dependency of the makefile target in which
-# $(host-built-program-cmd) is used.
-host-built-program-cmd = $(run-via-rtld-prefix) $(built-program-file)
-# $(ld-library-path) is the common content to be set in LD_LIBRARY_PATH
-# for running static binaries that may load dynamic objects.
-ld-library-path = $(objpfx):$(common-objpfx)$(addprefix :,$(sysdep-ld-library-path))
-
-ifndef LD
-LD := ld -X
-endif
-
-# $(test-via-rtld-prefix) is a command that, when prepended to the name
-# of a test program built with the newly built library, produces a command
-# that, executed on the host for which the library is built, runs that
-# program.  For tests listed in tests-static or xtests-static as well
-# as when test programs are hardcoded to the newly built libraries, it
-# is empty.
-
-# $(test-program-prefix) is a command that, when prepended to the name
-# of a test program built with the newly built library, produces a command
-# that, executed on the build system on which "make" is run, runs that
-# test program.  $(test-program-prefix-before-env) and
-# $(test-program-prefix-after-env) are similar, before and after a
-# list of environment variables.
-
-# $(test-program-cmd) is a command that, executed on the build system
-# on which "make" is run, runs the newly built test program that is the
-# second dependency of the makefile target in which
-# $(test-program-cmd) is used.  $(test-program-cmd-before-env) and
-# $(test-program-cmd-after-env) are similar, before and after a list
-# of environment variables.
-
-# $(host-test-program-cmd) is a command that, executed on the host
-# for which the library is built, runs the newly built test program that
-# is the second dependency of the makefile target in which
-# $(host-test-program-cmd) is used.
-
-ifeq (yes,$(build-hardcoded-path-in-tests))
-test-via-rtld-prefix =
-test-program-prefix-before-env = $(test-wrapper-env)
-test-program-prefix-after-env =
-test-program-prefix = $(test-program-prefix-before-env) $(run-program-env) \
-		      $(test-program-prefix-after-env)
-test-program-cmd-before-env = $(test-wrapper-env)
-test-program-cmd-after-env = $(built-program-file)
-test-program-cmd = $(test-program-cmd-before-env) $(run-program-env) \
-		   $(test-program-cmd-after-env)
-host-test-program-cmd = $(built-program-file)
-else
-test-via-rtld-prefix = $(run-via-rtld-prefix)
-test-program-prefix-before-env = $(run-program-prefix-before-env)
-test-program-prefix-after-env = $(run-program-prefix-after-env)
-test-program-prefix = $(run-program-prefix)
-test-program-cmd-before-env = $(built-program-cmd-before-env)
-test-program-cmd-after-env = $(built-program-cmd-after-env)
-test-program-cmd = $(built-program-cmd)
-host-test-program-cmd = $(host-built-program-cmd)
-endif
-
-# Extra flags to pass to GCC.
-ifeq ($(all-warnings),yes)
-+gccwarn := -Wall -Wwrite-strings -Wcast-qual -Wbad-function-cast -Wmissing-noreturn -Wmissing-prototypes -Wmissing-declarations -Wcomment -Wcomments -Wtrigraphs -Wsign-compare -Wfloat-equal -Wmultichar
-else
-+gccwarn := -Wall -Wwrite-strings
-endif
-+gccwarn += -Wundef
-ifeq ($(enable-werror),yes)
-+gccwarn += -Werror
-endif
-+gccwarn-c = -Wstrict-prototypes -Wold-style-definition
-
-# We do not depend on the address of constants in different files to be
-# actually different, so allow the compiler to merge them all.
-+merge-constants = -fmerge-all-constants
-
-# We have to assume that glibc functions are called in any rounding
-# mode and also change the rounding mode in a few functions. So,
-# disable any optimization that assume default rounding mode.
-+math-flags = -frounding-math
-
-# Logically only "libnldbl", "nonlib" and "testsuite" should be using
-# -fno-math-errno. However due to GCC bug #88576, only "libm" can use
-# -fno-math-errno.
-+extra-math-flags = $(if $(filter libm,$(in-module)),-fno-math-errno,-fmath-errno)
-
-# Use 64 bit time_t support for installed programs
-installed-modules = nonlib nscd ldconfig locale_programs \
-		    iconvprogs libnss_files libnss_compat libnss_db libnss_hesiod \
-		    libutil libpcprofile libnsl
-+extra-time-flags = $(if $(filter $(installed-modules),\
-                           $(in-module)),-D_TIME_BITS=64 -D_FILE_OFFSET_BITS=64)
-
-# We might want to compile with some stack-protection flag.
-ifneq ($(stack-protector),)
-+stack-protector=$(stack-protector)
-endif
-
-# Some routines are unsafe to build with stack-protection since they're called
-# before the stack check guard is set up.  Provide a way to disable stack
-# protector.  The first argument is the extension (.o, .os, .oS) and the second
-# is a list of routines that this path should be applied to.
-define elide-stack-protector
-$(if $(filter $(@F),$(patsubst %,%$(1),$(2))), $(no-stack-protector))
-endef
-
-# The program that makes Emacs-style TAGS files.
-ETAGS	:= etags
-
-# The `xgettext' program for producing .pot files from sources.
-ifndef XGETTEXT
-XGETTEXT = xgettext
-endif
-
-# The `m4' macro processor; this is used by sysdeps/sparc/Makefile (and
-# perhaps others) to preprocess assembly code in some cases.
-M4 = m4
-
-# To force installation of files even if they are older than the
-# installed files.  This variable is included in the dependency list
-# of all installation targets.
-ifeq ($(force-install),yes)
-+force = force-install
-else
-+force =
-endif
-
-####
-#### End of configuration variables.
-####
-
-# This tells some versions of GNU make before 3.63 not to export all variables.
-.NOEXPORT:
-
-# We want to echo the commands we're running without
-# umpteen zillion filenames along with it (we use `...' instead)
-# but we don't want this echoing done when the user has said
-# he doesn't want to see commands echoed by using -s.
-ifeq ($(silent-make),yes)			# if -s
-+cmdecho	:= echo >/dev/null
-else						# not -s
-+cmdecho	:= echo
-endif	   					# -s
-
-# These are the flags given to the compiler to tell
-# it what sort of optimization and/or debugging output to do.
-ifndef	+cflags
-# If `CFLAGS' was defined, use that.
-ifdef		CFLAGS
-+cflags	:= $(filter-out -I%,$(CFLAGS))
-endif		# CFLAGS
-endif	# +cflags
-
-# If none of the above worked, default to "-g -O".
-ifeq	"$(strip $(+cflags))" ""
-+cflags	:= $(default_cflags)
-endif	# $(+cflags) == ""
-
-# Force building with -fno-common because hidden_def, compat_symbol
-# and other constructs do not work for common symbols (and would
-# otherwise require specifying __attribute__ ((nocommon)) on a
-# case-by-case basis).
-+cflags += $(cflags-cpu) $(+gccwarn) $(+merge-constants) $(+math-flags) \
-	   $(+stack-protector) -fno-common
-+gcc-nowarn := -w
-
-# Each sysdeps directory can contain header files that both will be
-# used to compile and will be installed.  Each can also contain an
-# include/ subdirectory, whose header files will be used to compile
-# but will not be installed, and will take precedence over the
-# installed files.  This mirrors the top-level include/ subdirectory.
-+sysdep-includes := $(foreach dir,$(+sysdep_dirs),\
-			      $(addprefix -I,$(wildcard $(dir)/include) $(dir)))
-
-# These are flags given to the C compiler to tell it to look for
-# include files (including ones given in angle brackets) in the parent
-# library source directory, in the include directory, and in the
-# current directory.
-+includes = -I$(..)include $(if $(subdir),$(objpfx:%/=-I%)) \
-	    $(+sysdep-includes) $(includes) \
-	    $(patsubst %/,-I%,$(..)) $(libio-include) -I. $(sysincludes)
-
-# Since libio has several internal header files, we use a -I instead
-# of many little headers in the include directory.
-libio-include = -I$(..)libio
-
-# List of non-library modules that we build.
-built-modules = iconvprogs iconvdata ldconfig libmemusage \
-		libpcprofile librpcsvc locale-programs \
-		memusagestat nonlib nscd extramodules libnldbl libsupport \
-		testsuite testsuite-internal
-
-in-module = $(subst -,_,$(firstword $(libof-$(basename $(@F))) \
-				    $(libof-$(<F)) \
-				    $(libof-$(@F)) \
-				    libc))
-
-# Build ld.so, libc.so and libpthread.so with -ftls-model=initial-exec
-tls-model = $(if $(filter libpthread rtld \
-			  libc,$(in-module)),-ftls-model=initial-exec,)
-
-module-cppflags-real = -include $(common-objpfx)libc-modules.h \
-		       -DMODULE_NAME=$(in-module)
-
-# We don't need libc-modules.h and the MODULE_NAME definition for .v.i
-# files.  These targets don't (and will likely never need to) use the IS_IN
-# facility.  In fact, shlib-versions should not use it because that will
-# create a circular dependency as libc-modules.h is generated from
-# shlib-versions.
-module-cppflags = $(if $(filter %.mk.i %.v.i,$(@F)),,$(module-cppflags-real))
-
-# These are the variables that the implicit compilation rules use.
-# Note that we can't use -std=* in CPPFLAGS, because it overrides
-# the implicit -lang-asm and breaks cpp behavior for .S files--notably
-# it causes cpp to stop predefining __ASSEMBLER__.
-CPPFLAGS = $(config-extra-cppflags) $(CPPUNDEFS) $(CPPFLAGS-config) \
-	   $($(subdir)-CPPFLAGS) \
-	   $(+includes) $(defines) $(module-cppflags) \
-	   -include $(..)include/libc-symbols.h $(sysdep-CPPFLAGS) \
-	   $(CPPFLAGS-$(suffix $@)) \
-	   $(foreach lib,$(libof-$(basename $(@F))) \
-			 $(libof-$(<F)) $(libof-$(@F)),$(CPPFLAGS-$(lib))) \
-	   $(CPPFLAGS-$(<F)) $(CPPFLAGS-$(@F)) $(CPPFLAGS-$(basename $(@F)))
-
-ifneq (no,$(have-tunables))
-CPPFLAGS += -DTOP_NAMESPACE=glibc
-endif
-
-override CFLAGS	= -std=gnu11 -fgnu89-inline $(config-extra-cflags) \
-		  $(filter-out %frame-pointer,$(+cflags)) $(+gccwarn-c) \
-		  $(+extra-math-flags) $(+extra-time-flags) \
-		  $(sysdep-CFLAGS) $(CFLAGS-$(suffix $@)) $(CFLAGS-$(<F)) \
-		  $(CFLAGS-$(@F)) $(tls-model) \
-		  $(foreach lib,$(libof-$(basename $(@F))) \
-				$(libof-$(<F)) $(libof-$(@F)),$(CFLAGS-$(lib)))
-# Use our copies of cstdlib and cmath.
-override CXXFLAGS = -I$(common-objpfx) $(c++-sysincludes) \
-		    $(filter-out %frame-pointer,$(+cflags)) $(sysdep-CFLAGS) \
-		    $(CFLAGS-$(suffix $@)) $(CFLAGS-$(<F)) $(CFLAGS-$(@F))
-
-# If everything is compiled with -fPIC (implicitly) we must tell this by
-# defining the PIC symbol.
-ifeq (yes,$(build-pic-default))
-pic-default = -DPIC
-endif
-
-# Enable object files for different versions of the library.
-# Various things use $(object-suffixes) to know what all to make.
-# The compilation rules use $(CPPFLAGS-${SUFFIX}) and $(CFLAGS-${SUFFIX})
-# to pass different flags for each flavor.
-libtypes = $(foreach o,$(object-suffixes-for-libc),$(libtype$o))
-# .op may be added to all-object-suffixes below.
-all-object-suffixes := .o .os .oS
-object-suffixes :=
-CPPFLAGS-.o = $(pic-default)
-# libc.a must be compiled with -fPIE/-fpie for static PIE.
-CFLAGS-.o = $(filter %frame-pointer,$(+cflags)) $(pie-default)
-libtype.o := lib%.a
-object-suffixes += .o
-ifeq (yes,$(build-shared))
-# Under --enable-shared, we will build a shared library of PIC objects.
-# The PIC object files are named foo.os.
-object-suffixes += .os
-pic-cppflags = -DPIC -DSHARED
-CPPFLAGS-.os = $(pic-cppflags)
-CFLAGS-.os = $(filter %frame-pointer,$(+cflags)) $(pic-ccflag)
-libtype.os := lib%_pic.a
-# This can be changed by a sysdep makefile
-pic-ccflag = -fPIC
-# This one should always stay like this unless there is a very good reason.
-PIC-ccflag = -fPIC
-endif
-# This can be changed by a sysdep makefile
-pie-ccflag = -fPIE
-no-pie-ccflag = -fno-pie
-# This one should always stay like this unless there is a very good reason.
-PIE-ccflag = -fPIE
-ifeq (yes,$(build-profile))
-# Under --enable-profile, we will build a static library of profiled objects.
-# The profiled object files are named foo.op.
-all-object-suffixes += .op
-object-suffixes += .op
-CPPFLAGS-.op = -DPROF $(pic-default)
-# libc_p.a must be compiled with -fPIE/-fpie for static PIE.
-CFLAGS-.op = -pg $(pie-default)
-libtype.op = lib%_p.a
-endif
-
-# Convenience variable for when we want to treat shared-library cases
-# differently from the rest.
-object-suffixes-noshared := $(filter-out .os,$(object-suffixes))
-
-object-suffixes-for-libc := $(object-suffixes)
-
-ifeq (yes,$(build-shared))
-# Build special library that contains the static-only routines for libc.
-object-suffixes-for-libc += .oS
-
-# Must build the routines as PIC, though, because they can end up in (users')
-# shared objects.  We don't want to use CFLAGS-os because users may, for
-# example, make that processor-specific.
-CFLAGS-.oS = $(CFLAGS-.o) $(PIC-ccflag) $(extra-nonshared-cflags)
-CPPFLAGS-.oS = $(CPPFLAGS-.o) -DPIC -DLIBC_NONSHARED=1
-libtype.oS = lib%_nonshared.a
-endif
-
-# The assembler can generate debug information too.
-ifndef ASFLAGS
-ASFLAGS := $(filter -g% -fdebug-prefix-map=%,$(CFLAGS))
-endif
-override ASFLAGS += -Werror=undef $(ASFLAGS-config) $(asflags-cpu)
-
-ifndef BUILD_CC
-BUILD_CC = $(CC)
-endif
-
-move-if-change = $(SHELL) $(..)scripts/move-if-change
-
--include $(common-objpfx)sysd-sorted
-subdirs = $(sorted-subdirs)
-subdir-srcdirs = $(foreach dir,$(subdirs),\
-			   $(firstword $($(dir)-srcdir) $(..)$(dir)))
-
-# This is a pair of implicit rules to preprocess a file with # comments,
-# %ifdef et al, based on config.h settings or other %include'd files.
-# We use chained rules instead of a pipeline here so that we can properly
-# check the exit status of cpp rather than using its bad output when there
-# is a preprocessing error.  Another rule should depend on the output file
-# `FOO.v', and along with that `FOO.v.i' should be given dependencies
-# listing both its input files, and any header files that it may reference
-# (but no commands).
-%.v.i: $(common-objpfx)config.h $(..)Makeconfig
-	sed '/^[ 	]*%/!s/#.*$$//;/^[ 	]*$$/d;s/^[ 	]*%/#/' \
-	    $(filter-out FORCE %.h $(..)Makeconfig,$^) \
-	| $(CC) -E -undef $(CPPFLAGS) -x assembler-with-cpp - \
-		   > $@T
-	mv -f $@T $@
-%.v: %.v.i
-	sed '/^[ 	]*#/d;/^[ 	]*$$/d' $< > $@T
-	mv -f $@T $@
-
-ifeq (yes, $(build-shared))
-
-# To generate a header to support more than one ABI for different
-# architecture variants, the CPU/Makefile defines abi-variants to be a
-# list of names for those variants (e.g. 32 64), and, for each variant,
-# defines abi-$(variant)-condition to be the condition for those options
-# to use in a C #if condition.  abi-includes may be defined to a list of
-# headers to include in the generated header, if the default does not
-# suffice.  default-abi is defined to be the ABI for the current glibc
-# build.
-
-ifndef abi-includes
-abi-includes := bits/wordsize.h
-endif
-
-# Process the shlib-versions file, which tells us what shared library
-# version numbers to use when we install shared objects on this system.
-# We need to wait until $(subdirs) is complete.
-ifeq ($(sysd-sorted-done),t)
--include $(common-objpfx)soversions.mk
-ifndef avoid-generated
-$(common-objpfx)shlib-versions.v.i: \
-	$(wildcard $(+sysdep_dirs:=/shlib-versions) \
-		   $(subdir-srcdirs:=/shlib-versions)) \
-	$(..)shlib-versions
-
-$(common-objpfx)soversions.i: $(..)scripts/soversions.awk \
-			      $(common-objpfx)shlib-versions.v
-	$(AWK) -f $^ > $@T
-	mv -f $@T $@
-$(common-objpfx)soversions.mk: $(common-objpfx)soversions.i $(..)Makeconfig
-	(while read which lib number setname; do \
-	   eval seen_$$which=1; \
-	   test x"$$which" = xDEFAULT || continue; \
-	   case $$number in \
-	     [0-9]*) echo "$$lib.so-version=.$$number"; \
-		     echo "all-sonames+=$$lib=$$lib.so\$$($$lib.so-version)";;\
-	     *)	     echo "$$lib.so-version=$$number"; \
-		     echo "all-sonames+=$$lib=\$$($$lib.so-version)";;\
-	   esac; \
-	 done; \
-	 echo soversions.mk-done = t;) < $< > $@T; exit 0
-	mv -f $@T $@
-endif
-endif
-
-postclean-generated += soversions.mk soversions.i \
-		       shlib-versions.v shlib-versions.v.i
-
-before-compile += $(common-objpfx)libc-modules.h
-common-generated += libc-modules.h libc-modules.stmp
-ifeq ($(soversions.mk-done),t)
-# Generate a header with macro definitions for use with the IS_IN macro.
-# These are the possible values for the MODULE_NAME macro defined when building
-# sources, to identify which module the translation unit is going to be built
-# into.
-$(common-objpfx)libc-modules.h: $(common-objpfx)libc-modules.stmp; @:
-$(common-objpfx)libc-modules.stmp: $(..)scripts/gen-libc-modules.awk \
-				   $(common-objpfx)soversions.i
-	$(AWK) -v buildlist="$(subst -,_,$(built-modules))" -f $^ > ${@:stmp=T}
-	$(move-if-change) ${@:stmp=T} ${@:stmp=h}
-	touch $@
-
-endif
-
-# Build the tunables list header early since it could be used by any module in
-# glibc.
-ifneq (no,$(have-tunables))
-before-compile += $(common-objpfx)dl-tunable-list.h
-common-generated += dl-tunable-list.h dl-tunable-list.stmp
-
-$(common-objpfx)dl-tunable-list.h: $(common-objpfx)dl-tunable-list.stmp; @:
-$(common-objpfx)dl-tunable-list.stmp: \
-		$(..)scripts/gen-tunables.awk \
-		$(..)elf/dl-tunables.list \
-		$(wildcard $(subdirs:%=$(..)%/dl-tunables.list)) \
-		$(wildcard $(sysdirs:%=%/dl-tunables.list))
-	$(AWK) -f $^ > ${@:stmp=T}
-	$(move-if-change) ${@:stmp=T} ${@:stmp=h}
-	touch $@
-endif
-
-# Dump the GCC macros used by the default compiler flags to a header
-# file, so that they can be inspected when using different compiler
-# flags.  Add the GCCMACRO prefix to make these macro names unique.
-$(common-objpfx)gcc-macros.h.in: $(common-objpfx)config.status
-	$(CC) $(CFLAGS) $(CPPFLAGS) -E -dM -x c -o $@ /dev/null
-$(common-objpfx)gcc-macros.h: $(common-objpfx)gcc-macros.h.in
-	sed 's/^#define /#define GCCMACRO/' < $< > $@
-before-compile += $(common-objpfx)gcc-macros.h
-
-# Generate version maps, but wait until sysdep-subdirs is known
-ifeq ($(sysd-sorted-done),t)
-ifeq ($(build-shared),yes)
--include $(common-objpfx)sysd-versions
--include $(common-objpfx)Versions.mk
-$(addprefix $(common-objpfx),$(version-maps)): $(common-objpfx)sysd-versions
-common-generated += $(version-maps)
-postclean-generated += sysd-versions Versions.all abi-versions.h \
-		       Versions.def Versions.v.i Versions.v Versions.mk
-
-ifndef avoid-generated
-ifneq ($(sysd-versions-subdirs),$(sorted-subdirs) $(config-sysdirs))
-sysd-versions-force = FORCE
-FORCE:
-endif
-
-$(common-objpfx)Versions.def: $(..)scripts/versionlist.awk \
-			      $(common-objpfx)Versions.v
-	LC_ALL=C $(AWK) -f $^ > $@T
-	mv -f $@T $@
-
-$(common-objpfx)Versions.all: $(..)scripts/firstversions.awk \
-			      $(common-objpfx)soversions.i \
-			      $(common-objpfx)Versions.def
-	{ while read which lib version setname; do \
-	    test x"$$which" = xDEFAULT || continue; \
-	    test -z "$$setname" || echo "$$lib : $$setname"; \
-	  done < $(word 2,$^); \
-	  cat $(word 3,$^); \
-	} | LC_ALL=C $(AWK) -f $< > $@T
-	mv -f $@T $@
-$(common-objpfx)Versions.mk: $(..)scripts/haveversions.awk \
-			     $(common-objpfx)Versions.all
-	$(AWK) -f $^ > $@T
-	mv -f $@T $@
-# See %.v/%.v.i implicit rules in Makeconfig.
-$(common-objpfx)Versions.v.i: $(wildcard $(subdirs:%=$(..)%/Versions)) \
-			      $(wildcard $(sysdirs:%=%/Versions)) \
-			      $(sysd-versions-force)
-$(common-objpfx)sysd-versions: $(common-objpfx)versions.stmp
-$(common-objpfx)versions.stmp: $(common-objpfx)Versions.all \
-			       $(common-objpfx)Versions.v \
-			       $(..)scripts/versions.awk
-	( echo 'sysd-versions-subdirs = $(subdirs) $(config-sysdirs)' ; \
-	  cat $(word 2,$^) \
-	  | LC_ALL=C $(AWK) -v buildroot=$(common-objpfx) -v defsfile=$< \
-			    -v move_if_change='$(move-if-change)' \
-			    -f $(word 3,$^); \
-	) > $(common-objpfx)sysd-versionsT
-	mv -f $(common-objpfx)sysd-versionsT $(common-objpfx)sysd-versions
-	touch $@
-endif # avoid-generated
-endif # $(build-shared) = yes
-
--include $(common-objpfx)time64-compat.mk
-postclean-generated += time64-compat.mk
-
-$(common-objpfx)time64-compat.mk: $(common-objpfx)time64-compat.mk.i \
-				  $(sysd-versions-force)
-	sed '/^[        ]*#/d;/^[       ]*$$/d' $< > $@T
-	mv -f $@T $@
-$(common-objpfx)time64-compat.mk.i: $(..)Makeconfig
-	printf "#include <time64-compat.h>\n#ifdef TIME64_NON_DEFAULT\nhave-time64-compat = yes\n#endif" \
-	| $(CC) -E -undef $(CPPFLAGS) -x assembler-with-cpp - > $@T
-	mv -f $@T $@
-
-
-endif # sysd-sorted-done
-
-# The name under which the run-time dynamic linker is installed.
-# We are currently going for the convention that `/lib/ld.so.1'
-# names the SVR4/ELF ABI-compliant dynamic linker.
-ifndef rtld-installed-name
-ifdef ld.so-version
-rtld-installed-name = $(ld.so-version)
-else
-rtld-installed-name = ld.so.1
-endif
-endif
-
-ifndef rtld-version-installed-name
-rtld-version-installed-name = ld-$(version).so
-endif
-
-endif # build-shared
-
-
-ifeq ($(build-shared),yes)
-libm = $(common-objpfx)math/libm.so$(libm.so-version)
-libmvec = $(common-objpfx)mathvec/libmvec.so$(libmvec.so-version)
-else
-libm = $(common-objpfx)math/libm.a
-libmvec = $(common-objpfx)mathvec/libmvec.a
-endif
-
-ifeq ($(build-shared),yes)
-libsupport = $(common-objpfx)support/libsupport_nonshared.a
-else
-libsupport = $(common-objpfx)support/libsupport.a
-endif
-
-# This is a partial list of subdirectories containing the library source.
-# The order is more or less arbitrary.  The sorting step will take care of the
-# dependencies and generate sorted-subdirs dynamically.
-all-subdirs = csu assert ctype locale intl catgets math setjmp signal	    \
-	      stdlib stdio-common libio malloc string wcsmbs time dirent    \
-	      grp pwd posix io termios resource misc socket sysvipc gmon    \
-	      gnulib iconv iconvdata wctype manual shadow gshadow po argp   \
-	      localedata timezone rt conform debug mathvec support	    \
-	      dlfcn elf
-
-ifeq ($(build-crypt),yes)
-all-subdirs += crypt
-rpath-dirs += crypt
-endif
-
-ifndef avoid-generated
-# sysd-sorted itself will contain rules making the sysd-sorted target
-# depend on Depend files.  But if you just added a Depend file to an
-# existing directory not in all-subdirs, then sysd-sorted needs to
-# be regenerated, so it depends on existing $(sorted-subdirs:=/Depend) files.
-all-Depend-files := $(wildcard $(sort \
-			$(foreach dir,$(all-subdirs),\
-				  $(firstword $($(dir)-srcdir) \
-				  $(..)$(dir))/Depend) \
-			$(sorted-subdirs:=/Depend)))
-$(common-objpfx)sysd-sorted: $(..)scripts/gen-sorted.awk \
-			     $(common-objpfx)config.make $(..)Makeconfig \
-			     $(wildcard $(sysdirs:=/Subdirs)) \
-			     $(all-Depend-files)
-	$(AWK) -f $< \
-	       -v subdirs='$(all-subdirs)' \
-	       -v srcpfx='$(..)' \
-	       $(filter %/Subdirs %/Depend,$^) > $@-tmp
-	mv -f $@-tmp $@
-$(all-Depend-files): ;
-endif
-
-# This gives partial TARGET:SOURCE pattern pairs to have rules
-# emitted into sysd-rules.  A sysdeps Makeconfig fragment can
-# add its own special object file prefix to this list with e.g. foo-%:%
-# to have foo-*.? compiled from *.? using $(foo-CPPFLAGS).
-sysd-rules-patterns := %:% rtld-%:rtld-% rtld-%:% m_%:s_%
-
-# Let sysdeps/ subdirs contain a Makeconfig fragment for us to include here.
-sysdep-makeconfigs := $(wildcard $(+sysdep_dirs:=/Makeconfig))
-ifneq (,$(sysdep-makeconfigs))
-include $(sysdep-makeconfigs)
-endif
-
-# Compute just the target patterns.  Makeconfig has set sysd-rules-patterns.
-sysd-rules-targets := $(sort $(foreach p,$(sysd-rules-patterns),\
-					 $(firstword $(subst :, ,$p))))
-
-# $(libpthread-routines-var) and $(librt-routines-var) are the make
-# variable to which pthread routines need to be added to land in the
-# right library.
-ifeq ($(pthread-in-libc),yes)
-libpthread-routines-var = routines
-librt-routines-var = routines
-libanl-routines-var = routines
-else
-libpthread-routines-var = libpthread-routines
-librt-routines-var = librt-routines
-libanl-routines-var = libanl-routines
-endif
-
-# A sysdeps Makeconfig fragment may set libc-reentrant to yes.
-ifeq (yes,$(libc-reentrant))
-defines += -D_LIBC_REENTRANT
-
-libio-mtsafe = -D_IO_MTSAFE_IO
-endif
-
-# The name to give to a test in test results summaries.
-test-name = $(strip $(patsubst %.out, %, $(patsubst $(common-objpfx)%, %, $@)))
-
-# Likewise, in XFAIL variable names.
-test-xfail-name = $(strip $(patsubst %.out, %, $(patsubst $(objpfx)%, %, $@)))
-
-# Command to output a test status line (such as PASS: test-name).  If
-# test-xfail-$(test-xfail-name) has a nonempty value, the status will be
-# XPASS or XFAIL rather than PASS or FAIL.
-evaluate-test = $(..)scripts/evaluate-test.sh $(test-name) $$? \
-		  $(if $(test-xfail-$(test-xfail-name)),true,false) \
-		  $(if $(stop-on-test-failure),true,false) \
-		  > $(common-objpfx)$(test-name).test-result
-
-endif # Makeconfig not yet included
-
-# Local Variables:
-# mode: makefile
-# End:
Index: sources/GNU/glibc/2.37/create-2.37-reenable-DT-HASH-patch/glibc-2.37-new/Makerules
===================================================================
--- sources/GNU/glibc/2.37/create-2.37-reenable-DT-HASH-patch/glibc-2.37-new/Makerules	(revision 393)
+++ sources/GNU/glibc/2.37/create-2.37-reenable-DT-HASH-patch/glibc-2.37-new/Makerules	(nonexistent)
@@ -1,1506 +0,0 @@
-# Copyright (C) 1991-2023 Free Software Foundation, Inc.
-# This file is part of the GNU C Library.
-
-# The GNU C Library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-
-# The GNU C Library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-
-# You should have received a copy of the GNU Lesser General Public
-# License along with the GNU C Library; if not, see
-# <https://www.gnu.org/licenses/>.
-
-#
-#	Common rules for making the GNU C library.  This file is included
-#	by the top-level Makefile and by all subdirectory makefiles
-#	(through Rules).
-#
-ifneq (,)
-This makefile requires GNU Make.
-endif
-
-REQUIRED_MAKE_VERSION = 3.74
-REAL_MAKE_VERSION = $(firstword $(MAKE_VERSION))
-
-ifneq ($(REQUIRED_MAKE_VERSION), \
-       $(firstword $(sort $(REAL_MAKE_VERSION) $(REQUIRED_MAKE_VERSION))))
-Wrong GNU Make version.  See above for the version needed.
-endif
-
-
-ifdef	subdir
-..	:= ../
-endif	# subdir
-
-# If `sources' was defined by the parent makefile, undefine it so
-# we will later get it from wildcard search in this directory.
-ifneq	"$(findstring env,$(origin sources))" ""
-sources :=
-endif
-
-oPATH := $(PATH)
-PATH := this definition should take precedence over $(oPATH)
-ifeq ($(PATH),$(oPATH))
-You must not use the -e flag when building the GNU C library.
-else
-PATH := $(oPATH)
-endif
-
-ifndef +included-Makeconfig
-include $(..)Makeconfig
-endif
-
-# This variable is used in ``include $(o-iterator)'' after defining
-# $(o-iterator-doit) to produce some desired rule using $o for the object
-# suffix, and setting $(object-suffixes-left) to $(object-suffixes); a copy
-# is produced for each object suffix in use.
-o-iterator = $(patsubst %,$(..)o-iterator.mk,$(object-suffixes-left))
-
-# Include any system-specific makefiles.
-
-# This is here so things in sysdep Makefiles can easily depend on foo.h as
-# appropriate and not worry about where foo.h comes from, which may be
-# system dependent and not known by that Makefile.
-vpath %.h $(subst $(empty) ,:,$(strip $(common-objpfx) $(objpfx) \
-				      $(+sysdep_dirs) $(..)))
-
-# The same is true for RPC source files.
-vpath %.x $(subst $(empty) ,:,$(strip $(common-objpfx) $(objpfx) \
-				      $(+sysdep_dirs) $(..)))
-
-# Some sysdep makefiles use this to distinguish being included here from
-# being included individually by a subdir makefile (hurd/Makefile needs this).
-in-Makerules := yes
-
-sysdep-makefiles := $(wildcard $(sysdirs:=/Makefile))
-ifneq (,$(sysdep-makefiles))
-include $(sysdep-makefiles)
-endif
-
-
-# Reorder before-compile so that mach things come first, and hurd things
-# second, before all else.  The mach and hurd subdirectories have many
-# generated header files which the much of rest of the library depends on,
-# so it is best to build them first (and mach before hurd, at that).
-before-compile := $(filter $(common-objpfx)mach% $(common-objpfx)hurd%,\
-			   $(before-compile)) \
-		  $(filter-out $(common-objpfx)mach% $(common-objpfx)hurd%,\
-			       $(before-compile))
-
-# Even before that, we need abi-versions.h which is generated right here.
-ifeq ($(build-shared),yes)
-ifndef avoid-generated
-before-compile := $(common-objpfx)abi-versions.h $(before-compile)
-$(common-objpfx)abi-versions.h: $(..)scripts/abi-versions.awk \
-				$(common-objpfx)Versions.all
-	LC_ALL=C $(AWK) -f $^ > $@T
-	mv -f $@T $@
-
-$(common-objpfx)%.latest: $(common-objpfx)abi-versions.h
-	sed -n '/ VERSION_$*_/{s/^.*_\([A-Z0-9_]*\).*$$/\1/;h;};$${g;p;}' \
-	    $(common-objpfx)abi-versions.h > $@T
-	mv -f $@T $@
-
-# first-versions.h and ldbl-compat-choose.h provide macros used in
-# various symbol versioning macro calls.
-before-compile := $(common-objpfx)first-versions.h \
-		  $(common-objpfx)ldbl-compat-choose.h $(before-compile)
-$(common-objpfx)first-versions.h: $(common-objpfx)versions.stmp
-$(common-objpfx)ldbl-compat-choose.h: $(common-objpfx)versions.stmp
-endif # avoid-generated
-endif # $(build-shared) = yes
-
-ifndef avoid-generated
-ifneq (,$(CXX))
-# If C++ headers <cstdlib> or <cmath> are used, GCC 6 will include
-# /usr/include/stdlib.h or /usr/include/math.h from "#include_next"
-# (instead of stdlib/stdlib.h or math/math.h in the glibc source
-# directory), and this turns up as a make dependency.  An implicit
-# rule will kick in and make will try to install stdlib/stdlib.h or
-# math/math.h as /usr/include/stdlib.h or /usr/include/math.h because
-# the target is out of date.  We make a copy of <cstdlib> and <cmath>
-# in the glibc build directory so that stdlib/stdlib.h and math/math.h
-# will be used instead of /usr/include/stdlib.h and /usr/include/math.h.
-before-compile := $(common-objpfx)cstdlib $(common-objpfx)cmath \
-	          $(before-compile)
-$(common-objpfx)cstdlib: $(c++-cstdlib-header)
-	$(INSTALL_DATA) $< $@T
-	$(move-if-change) $@T $@
-$(common-objpfx)cmath: $(c++-cmath-header)
-	$(INSTALL_DATA) $< $@T
-	$(move-if-change) $@T $@
-ifneq (,$(c++-bits-std_abs-h))
-# Also make a copy of <bits/std_abs.h> from GCC 7 to prevent it from
-# including /usr/include/stdlib.h.
-before-compile := $(common-objpfx)bits/std_abs.h $(before-compile)
-$(common-objpfx)bits/std_abs.h: $(c++-bits-std_abs-h)
-	$(INSTALL_DATA) $< $@T
-	$(move-if-change) $@T $@
-endif
-endif
-
-before-compile := $(common-objpfx)libc-abis.h $(before-compile)
-$(common-objpfx)libc-abis.h: $(common-objpfx)libc-abis.stamp; @:
-$(common-objpfx)libc-abis.stamp: $(..)scripts/gen-libc-abis \
-			     $(firstword $(wildcard $(sysdirs:=/libc-abis)) \
-					 $(..)libc-abis) \
-			     $(..)Makerules
-	$(SHELL) $< \
-		 $(base-machine)-$(config-vendor)-$(config-os) \
-		 < $(word 2,$^) > $(@:.stamp=.h)T
-	$(move-if-change) $(@:.stamp=.h)T $(@:.stamp=.h)
-	touch $@
-common-generated += $(common-objpfx)libc-abis.h
-endif # avoid-generated
-
-ifeq (yes,$(build-shared))
-$(common-objpfx)runtime-linker.h: $(common-objpfx)runtime-linker.stamp; @:
-$(common-objpfx)runtime-linker.stamp: $(common-objpfx)config.make
-	$(make-target-directory)
-	echo '#define RUNTIME_LINKER "$(rtlddir)/$(rtld-installed-name)"' \
-		> ${@:stamp=T}
-	$(move-if-change) ${@:stamp=T} ${@:stamp=h}
-	touch $@
-endif
-
-# Make sure the subdirectory for object files gets created.
-ifdef objpfx
-ifeq (,$(wildcard $(objpfx).))
-before-compile += $(objpfx).
-$(objpfx).:
-	$(make-target-directory)
-endif
-endif
-
-# Remove existing files from `before-compile'.  Things are added there when
-# they must exist for dependency generation to work right, but once they
-# exist there is no further need for every single file to depend on them,
-# and those gratuitous dependencies result in many gratuitous
-# recompilations.
-before-compile := $(filter-out $(wildcard $(before-compile)),$(before-compile))
-
-# Don't let any before-compile file be an intermediate and get removed.
-ifdef before-compile
-$(before-compile):
-endif
-
-# We don't want $(common-objpfx) files to depend on miscellaneous stuff
-# in subdirs.
-ifdef subdir
-common-before-compile := $(filter-out $(objpfx)%,$(before-compile))
-else
-common-before-compile = $(before-compile)
-endif
-
-ifndef subdir
-# If a makefile needs to do something conditional on something that
-# can only be figured out from headers, write a FOO.make.c input
-# file that uses cpp contructs and contains @@@ LINE @@@ for each LINE
-# to emit in the generated makefile, and use -include $(common-objpfx)FOO.make.
-#
-# We only generate these in the top-level makefile, to avoid any weirdness
-# from subdir-specific makefile tweaks creeping in on an update.
-$(common-objpfx)%.make: $(..)%.make.c $(..)Makerules $(common-before-compile)
-	rm -f $@T $@.dT
-	(echo '# Generated from $*.make.c by Makerules.'; \
-	 $(CC) $(CFLAGS) $(CPPFLAGS) -E -DASSEMBLER $< \
-	       -MD -MP -MT '$$(common-objpfx)$*.make' -MF $@.dT \
-	 | sed -n '/@@@/{s/@@@[	 ]*\(.*\)@@@/\1/;s/[	 ]*$$//p;}'; \
-	 echo 'common-generated += $(@F)'; \
-	 sed $(sed-remove-objpfx) $(sed-remove-dotdot) $@.dT; \
-	 rm -f $@.dT) > $@T
-	mv -f $@T $@
-endif
-
-ifdef subdir
-sed-remove-dotdot := -e 's@  *\.\.\/\([^ 	\]*\)@ $$(..)\1@g' \
-		     -e 's@^\.\.\/\([^ 	\]*\)@$$(..)\1@g'
-else
-sed-remove-dotdot := -e 's@  *\([^ 	\/$$][^ 	\]*\)@ $$(..)\1@g' \
-		     -e 's@^\([^ 	\/$$][^ 	\]*\)@$$(..)\1@g'
-endif
-
-ifdef gen-py-const-headers
-# We'll use a static pattern rule to match .pysym files with their
-# corresponding generated .py files.
-# The generated .py files go in the submodule's dir in the glibc build dir.
-py-const-files := $(patsubst %.pysym,%.py,$(gen-py-const-headers))
-py-const-dir := $(objpfx)
-py-const := $(addprefix $(py-const-dir),$(py-const-files))
-py-const-script := $(..)scripts/gen-as-const.py
-
-# This is a hack we use to generate .py files with constants for
-# Python code.
-#
-# $@.tmp is a temporary file we use to store the partial contents of
-# the target file.  We do this instead of just writing on $@ because,
-# if the build process terminates prematurely, re-running Make
-# wouldn't run this rule since Make would see that the target file
-# already exists (despite it being incomplete).
-#
-# The output is redirected to a .py file; we'll import it in the main
-# Python code to read the constants generated by gen-as-const.py.
-$(py-const): $(py-const-dir)%.py: %.pysym $(py-const-script) \
-	     $(common-before-compile)
-	$(make-target-directory)
-	$(PYTHON) $(py-const-script) --python \
-		  --cc="$(CC) $(CFLAGS) $(CPPFLAGS)" $< \
-		  > $@.tmp
-	mv -f $@.tmp $@
-
-generated += $(py-const)
-endif  # gen-py-const-headers
-
-ifdef gen-as-const-headers
-# Generating headers for assembly constants.
-# We need this defined early to get into before-compile before
-# it's used in sysd-rules, below.
-# Define GEN_AS_CONST_HEADERS to avoid circular dependency [BZ #22792].
-# NB: <tcb-offsets.h> is generated from tcb-offsets.sym to define
-# offsets and sizes of types in <tls.h> and maybe <pthread.h> which
-# may include <tcb-offsets.h>.  Target header files can check if
-# GEN_AS_CONST_HEADERS is defined to avoid circular dependency which
-# may lead to build hang on a many-core machine.
-$(common-objpfx)%.h $(common-objpfx)%.h.d: $(..)scripts/gen-as-const.py \
-					   %.sym $(common-before-compile)
-	$(PYTHON) $< --cc="$(CC) $(CFLAGS) $(CPPFLAGS) -DGEN_AS_CONST_HEADERS \
-			   -MD -MP -MF $(@:.h=.h.d)T \
-			   -MT '$(@:.h=.h.d) $(@:.h.d=.h)'" \
-		  $(filter %.sym,$^) > $(@:.h.d=.h)T
-	sed $(sed-remove-objpfx) $(sed-remove-dotdot) \
-	    $(@:.h=.h.d)T > $(@:.h=.h.d)T2
-	rm -f $(@:.h=.h.d)T
-	mv -f $(@:.h=.h.d)T2 $(@:.h=.h.d)
-	mv -f $(@:.h.d=.h)T $(@:.h.d=.h)
-vpath %.sym $(sysdirs)
-before-compile += $(gen-as-const-headers:%.sym=$(common-objpfx)%.h)
-
-tests-internal += $(gen-as-const-headers:%.sym=test-as-const-%)
-generated += $(gen-as-const-headers:%.sym=test-as-const-%.c)
-$(objpfx)test-as-const-%.c: $(..)scripts/gen-as-const.py $(..)Makerules \
-			    %.sym $(common-objpfx)%.h
-	($(AWK) '{ sub(/^/, "asconst_", $$2); print; }' $(filter %.h,$^); \
-	 $(PYTHON) $< --test $(filter %.sym,$^)) > $@T
-	mv -f $@T $@
-endif
-
-ifeq (yes,$(build-shared))
-# Generate the header containing the names of all shared libraries.
-# We use a stamp file to avoid unnecessary recompilations.
-before-compile += $(common-objpfx)gnu/lib-names.h
-ifeq ($(soversions.mk-done),t)
-ifndef abi-variants
-lib-names-h-abi = gnu/lib-names.h
-lib-names-stmp-abi = gnu/lib-names.stmp
-else
-lib-names-h-abi = gnu/lib-names-$(default-abi).h
-lib-names-stmp-abi = gnu/lib-names-$(default-abi).stmp
-before-compile += $(common-objpfx)$(lib-names-h-abi)
-common-generated += gnu/lib-names.h
-install-others-nosubdir: $(inst_includedir)/$(lib-names-h-abi)
-$(common-objpfx)gnu/lib-names.h:
-	$(make-target-directory)
-	{ \
-	 echo '/* This file is automatically generated.';\
-	 echo '   It defines macros to allow user program to find the shared'; \
-	 echo '   library files which come as part of GNU libc.  */'; \
-	 echo '#ifndef __GNU_LIB_NAMES_H'; \
-	 echo '#define __GNU_LIB_NAMES_H	1'; \
-	 echo ''; \
-	 $(if $(abi-includes), \
-	  $(foreach h,$(abi-includes), echo '#include <$(h)>';) \
-	  echo '';) \
-	 $(foreach v,$(abi-variants),\
-	 $(if $(abi-$(v)-condition),\
-	 echo '#if $(abi-$(v)-condition)'; \
-	 echo '# include <gnu/lib-names-$(v).h>'); \
-	 $(if $(abi-$(v)-condition),echo '#endif';)) \
-	 echo ''; \
-	 echo '#endif	/* gnu/lib-names.h */'; \
-	} >  $@
-endif
-$(common-objpfx)$(lib-names-h-abi): $(common-objpfx)$(lib-names-stmp-abi); @:
-$(common-objpfx)$(lib-names-stmp-abi): $(..)scripts/lib-names.awk \
-				       $(common-objpfx)soversions.i
-	$(make-target-directory)
-	{ \
-	 $(if $(abi-variants), \
-	 echo '/* This file is automatically generated.  */';\
-	 echo '#ifndef __GNU_LIB_NAMES_H'; \
-	 echo '# error "Never use <$(lib-names-h-abi)> directly; include <gnu/lib-names.h> instead."'; \
-	 echo '#endif';, \
-	 echo '/* This file is automatically generated.';\
-	 echo '   It defines macros to allow user program to find the shared'; \
-	 echo '   library files which come as part of GNU libc.  */'; \
-	 echo '#ifndef __GNU_LIB_NAMES_H'; \
-	 echo '#define __GNU_LIB_NAMES_H	1';) \
-	 echo ''; \
-	 ($(foreach s,$(all-sonames), echo $(s);)) \
-	 | LC_ALL=C $(AWK) -f $(firstword $^) | LC_ALL=C sort; \
-	 $(if $(abi-variants),, \
-	 echo ''; \
-	 echo '#endif	/* gnu/lib-names.h */';) \
-	} >  ${@:stmp=T}
-	$(move-if-change) ${@:stmp=T} ${@:stmp=h}
-	touch $@
-endif
-common-generated += $(lib-names-h-abi) $(lib-names-stmp-abi)
-endif
-
-###############################################################################
-# NOTE!  Everything adding to before-compile needs to come before this point! #
-###############################################################################
-
-# Generate an ordered list of implicit rules which find the source files in
-# each sysdep directory.  The old method was to use vpath to search all the
-# sysdep directories.  However, that had the problem that a .S file in a
-# later directory would be chosen over a .c file in an earlier directory,
-# which does not preserve the desired sysdeps ordering behavior.
-
-# System-dependent makefiles can put in `inhibit-sysdep-asm' regexps
-# matching sysdep directories whose assembly source files should be
-# suppressed.
-
--include $(common-objpfx)sysd-rules
-ifneq ($(sysd-rules-sysdirs),$(config-sysdirs))
-# The value of $(+sysdep_dirs) the sysd-rules was computed for
-# differs from the one we are using now.  So force a rebuild of sysd-rules.
-sysd-rules-force = FORCE
-FORCE:
-endif
-$(common-objpfx)sysd-rules: $(..)scripts/sysd-rules.awk \
-			    $(common-objpfx)config.make $(..)Makerules \
-			    $(sysdep-makefiles) $(sysdep-makeconfigs) \
-			    $(sysd-rules-force)
-	-@rm -f $@T
-	LC_ALL=C $(AWK) -f $< > $@T \
-			-v all_object_suffixes='$(all-object-suffixes)' \
-			-v inhibit_sysdep_asm='$(inhibit-sysdep-asm)' \
-			-v sysd_rules_patterns='$(sysd-rules-patterns)' \
-			-v config_sysdirs='$(config-sysdirs)'
-	mv -f $@T $@
-
-ifndef sysd-rules-done
-# Don't do deps until this exists, because it provides rules to make the deps.
-no_deps=t
-endif
-
-define o-iterator-doit
-$(objpfx)%$o: %.S $(before-compile); $$(compile-command.S)
-endef
-object-suffixes-left := $(all-object-suffixes)
-include $(o-iterator)
-
-define o-iterator-doit
-$(objpfx)%$o: %.c $(before-compile); $$(compile-command.c)
-endef
-object-suffixes-left := $(all-object-suffixes)
-include $(o-iterator)
-
-define o-iterator-doit
-$(objpfx)%$o: %.cc $(before-compile); $$(compile-command.cc)
-endef
-object-suffixes-left := $(all-object-suffixes)
-include $(o-iterator)
-
-# Omit the objpfx rules when building in the source tree, because
-# objpfx is empty and so these rules just override the ones above.
-ifdef objpfx
-# Define first rules to find the source files in $(objpfx).
-# Generated source files will end up there.
-define o-iterator-doit
-$(objpfx)%$o: $(objpfx)%.S $(before-compile); $$(compile-command.S)
-endef
-object-suffixes-left := $(all-object-suffixes)
-include $(o-iterator)
-
-define o-iterator-doit
-$(objpfx)%$o: $(objpfx)%.c $(before-compile); $$(compile-command.c)
-endef
-object-suffixes-left := $(all-object-suffixes)
-include $(o-iterator)
-
-define o-iterator-doit
-$(objpfx)%$o: $(objpfx)%.cc $(before-compile); $$(compile-command.cc)
-endef
-object-suffixes-left := $(all-object-suffixes)
-include $(o-iterator)
-endif
-
-# Generate .dT files as we compile.
-compile-mkdep-flags = -MD -MP -MF $@.dt -MT $@
-compile-command.S = $(compile.S) $(OUTPUT_OPTION) $(compile-mkdep-flags)
-compile-command.c = $(compile.c) $(OUTPUT_OPTION) $(compile-mkdep-flags)
-compile-command.cc = $(compile.cc) $(OUTPUT_OPTION) $(compile-mkdep-flags)
-
-# Like compile-mkdep-flags, but for use with $(BUILD_CC).  We don't want to
-# track system includes here, they may spuriously trigger an install rule,
-# and would cause the check-local-headers test to fail.
-native-compile-mkdep-flags = -MMD -MP -MF $@.dt -MT $@
-
-# GCC can grok options after the file name, and it looks nicer that way.
-compile.c = $(CC) $< -c $(CFLAGS) $(CPPFLAGS)
-compile.cc = $(CXX) $< -c $(CXXFLAGS) $(CPPFLAGS)
-compile.S = $(CC) $< -c $(CPPFLAGS) $(S-CPPFLAGS) \
-		  $(ASFLAGS) $(ASFLAGS-$(suffix $@))
-COMPILE.c = $(CC) -c $(CFLAGS) $(CPPFLAGS)
-COMPILE.S = $(CC) -c $(CPPFLAGS) $(S-CPPFLAGS) \
-		  $(ASFLAGS) $(ASFLAGS-$(suffix $@))
-
-# We need this for the output to go in the right place.  It will default to
-# empty if make was configured to work with a cc that can't grok -c and -o
-# together.  You can't compile the C library with such a compiler.
-OUTPUT_OPTION = -o $@
-
-# This is the end of the pipeline for compiling generated C code.
-compile-stdin.c = $(COMPILE.c) -o $@ -x c - $(compile-mkdep-flags)
-
-# We need the $(CFLAGS) to be in there to have the right predefines during
-# the dependency run for C sources.  But having it for assembly sources can
-# get the wrong predefines.
-S-CPPFLAGS = -DASSEMBLER $(asm-CPPFLAGS)
-
-ifneq (,$(objpfx))
-# Continuation lines here are dangerous because they introduce spaces!
-define sed-remove-objpfx
--e 's@ $(subst .,\.,$(subst @,\@,$(common-objpfx)))@ $$(common-objpfx)@g' \
--e 's@^$(subst .,\.,$(subst @,\@,$(common-objpfx)))@$$(common-objpfx)@g'
-endef
-endif
-
-# Modify the list of routines we build for different targets
-
-ifeq (yes,$(build-shared))
-ifndef libc.so-version
-# Undefine this because it can't work when we libc.so is unversioned.
-static-only-routines =
-endif
-endif
-
-elide-routines.oS += $(filter-out $(static-only-routines),\
-				  $(routines) $(aux) $(sysdep_routines))
-elide-routines.os += $(static-only-routines)
-
-# If we have versioned code we don't need the old versions in any of the
-# static libraries.
-elide-routines.o  += $(shared-only-routines)
-elide-routines.op += $(shared-only-routines)
-
-# Shared library building.
-
-ifeq (yes,$(build-shared))
-
-# Reference map file only when shared libraries are built and a map file name
-# is given.
-ifeq ($(build-shared),yes)
-map-file = $(firstword $($(@F:.so=-map)) \
-		       $(addprefix $(common-objpfx), \
-				   $(filter $(@F:.so=.map),$(version-maps))))
-load-map-file = $(map-file:%=-Wl,--version-script=%)
-endif
-
-# Compiler arguments to use to link a shared object with libc and
-# ld.so.  This is intended to be as similar as possible to a default
-# link with an installed libc.
-link-libc-args = -Wl,--start-group \
-		 $(libc-for-link) \
-		 $(common-objpfx)libc_nonshared.a \
-		 -Wl,--as-needed $(elf-objpfx)ld.so -Wl,--no-as-needed \
-		 -Wl,--end-group
-
-# The corresponding shared libc to use.  This may be modified for a
-# particular target.
-libc-for-link = $(common-objpfx)libc.so
-
-# The corresponding dependencies.  As these are used in dependencies,
-# not just commands, they cannot use target-specific variables so need
-# to name both possible libc.so objects.
-link-libc-deps = $(common-objpfx)libc.so $(common-objpfx)linkobj/libc.so \
-		 $(common-objpfx)libc_nonshared.a $(elf-objpfx)ld.so
-
-# Pattern rule to build a shared object from an archive of PIC objects.
-# This must come after the installation rules so Make doesn't try to
-# build shared libraries in place from the installed *_pic.a files.
-# $(LDLIBS-%.so) may contain -l switches to generate run-time dependencies
-# on other shared objects.  The linking with libc and ld.so is intended
-# to be as similar as possible to a default link with an installed libc.
-lib%.so: lib%_pic.a $(+preinit) $(+postinit) $(link-libc-deps)
-	$(build-shlib) $(link-libc-args)
-	$(call after-link,$@)
-
-define build-shlib-helper
-$(LINK.o) -shared -static-libgcc -Wl,-O1 $(sysdep-LDFLAGS) \
-	  $(if $($(@F)-no-z-defs)$(no-z-defs),,-Wl,-z,defs) $(rtld-LDFLAGS) \
-	  $(if $($(@F)-no-dt-relr),$(no-dt-relr-ldflag),$(dt-relr-ldflag)) \
-	  $(extra-B-$(@F:lib%.so=%).so) -B$(csu-objpfx) \
-	  $(extra-B-$(@F:lib%.so=%).so) $(load-map-file) \
-	  -Wl,-soname=lib$(libprefix)$(@F:lib%.so=%).so$($(@F)-version) \
-	  $(LDFLAGS.so) $(LDFLAGS-lib.so) $(LDFLAGS-$(@F:lib%.so=%).so) \
-	  -L$(subst :, -L,$(rpath-link)) -Wl,-rpath-link=$(rpath-link)
-endef
-
-ifeq (yes,$(use-default-link))
-# If the linker is good enough, we can let it use its default linker script.
-# In the long term the custom linker script will be removed.
-shlib-lds =
-shlib-lds-flags =
-else
-# binutils only position loadable notes into the first page for binaries,
-# not for shared objects
-# lld --verbose does not dump a linker script.  Use -fuse-ld=bfd.
-$(common-objpfx)shlib.lds: $(common-objpfx)config.make $(..)Makerules
-	$(LINK.o) -shared -Wl,-O1 \
-		  -nostdlib -nostartfiles -fuse-ld=bfd \
-		  $(sysdep-LDFLAGS) $(rtld-LDFLAGS) $(LDFLAGS.so) \
-		  -Wl,--verbose 2>/dev/null | \
-	  sed > $@T \
-	      -e '/^=========/,/^=========/!d;/^=========/d' \
-	      $(if $(filter yes,$(have-hash-style)), \
-		   -e 's/^.*\.gnu\.hash[ 	]*:.*$$/  .note.ABI-tag : { *(.note.ABI-tag) } &/' \
-		   -e '/^[ 	]*\.hash[ 	]*:.*$$/{h;d;}' \
-		   -e '/DATA_SEGMENT_ALIGN/{H;g}' \
-		, \
-		   -e 's/^.*\.hash[ 	]*:.*$$/  .note.ABI-tag : { *(.note.ABI-tag) } &/' \
-	       ) \
-	      -e 's/^.*\*(\.dynbss).*$$/& \
-		 PROVIDE(__start___libc_freeres_ptrs = .); \
-		 *(__libc_freeres_ptrs) \
-		 PROVIDE(__stop___libc_freeres_ptrs = .);/'\
-	      -e 's@^.*\*(\.jcr).*$$@& \
-		 PROVIDE(__start___libc_subfreeres = .);\
-		 __libc_subfreeres : { *(__libc_subfreeres) }\
-		 PROVIDE(__stop___libc_subfreeres = .);\
-		 PROVIDE(__start___libc_IO_vtables = .);\
-		 __libc_IO_vtables : { *(__libc_IO_vtables) }\
-		 PROVIDE(__stop___libc_IO_vtables = .);\
-		 /DISCARD/ : { *(.gnu.glibc-stub.*) }@'
-	test -s $@T
-	mv -f $@T $@
-common-generated += shlib.lds
-
-shlib-lds = $(common-objpfx)shlib.lds
-shlib-lds-flags = -T $(shlib-lds)
-endif
-
-define build-shlib
-$(build-shlib-helper) -o $@ $(shlib-lds-flags) \
-	  $(csu-objpfx)abi-note.o $(build-shlib-objlist)
-endef
-
-define build-module-helper
-$(LINK.o) -shared -static-libgcc $(sysdep-LDFLAGS) $(rtld-LDFLAGS) \
-	  $(if $($(@F)-no-z-defs)$(no-z-defs),,-Wl,-z,defs) \
-	  $(if $($(@F)-no-dt-relr),$(no-dt-relr-ldflag),$(dt-relr-ldflag)) \
-	  -B$(csu-objpfx) $(load-map-file) \
-	  $(LDFLAGS.so) $(LDFLAGS-$(@F:%.so=%).so) \
-	  $(link-test-modules-rpath-link) \
-	  -L$(subst :, -L,$(rpath-link)) -Wl,-rpath-link=$(rpath-link)
-endef
-
-# This macro is similar to build-shlib but it does not define a soname
-# and it does not depend on the destination name to start with `lib'.
-# binutils only position loadable notes into the first page for binaries,
-# not for shared objects
-define build-module
-$(build-module-helper) -o $@ $(shlib-lds-flags) \
-	  $(csu-objpfx)abi-note.o $(build-module-objlist) $(link-libc-args)
-$(call after-link,$@)
-endef
-define build-module-asneeded
-$(build-module-helper) -o $@ $(shlib-lds-flags) \
-	  $(csu-objpfx)abi-note.o \
-	  -Wl,--as-needed $(build-module-objlist) -Wl,--no-as-needed \
-	  $(link-libc-args)
-$(call after-link,$@)
-endef
-
-# sofini.os must be placed last since it terminates .eh_frame section.
-build-module-helper-objlist = \
-	$(patsubst %_pic.a,$(whole-archive) %_pic.a $(no-whole-archive),\
-		   $(filter-out %.lds $(map-file) $(+preinit) $(+postinit) \
-				$(elf-objpfx)sofini.os \
-				$(link-libc-deps),$^))
-
-build-module-objlist = $(build-module-helper-objlist) $(LDLIBS-$(@F:%.so=%).so)
-build-shlib-objlist = $(build-module-helper-objlist) \
-		      $(LDLIBS-$(@F:lib%.so=%).so) \
-		      $(filter $(elf-objpfx)sofini.os,$^)
-
-# Don't try to use -lc when making libc.so itself.
-# Also omits crti.o and crtn.o, which we do not want
-# since we define our own `.init' section specially.
-LDFLAGS-c.so = -nostdlib -nostartfiles
-# But we still want to link libc.so against $(libc.so-gnulib).
-LDLIBS-c.so += $(libc.so-gnulib)
-# Give libc.so an entry point and make it directly runnable itself.
-LDFLAGS-c.so += -e __libc_main
-# Pre-link the objects of libc_pic.a for .gnu.glibc-stub.* processing.
-$(common-objpfx)libc_pic.os: $(common-objpfx)libc_pic.a
-	$(LINK.o) -nostdlib -nostartfiles -r -o $@ \
-	$(LDFLAGS-c_pic.os) $(whole-archive) $^ -o $@
-
-ifeq (,$(strip $(shlib-lds-flags)))
-# Generate a list of -R options to excise .gnu.glibc-stub.* sections.
-$(common-objpfx)libc_pic.opts: $(common-objpfx)libc_pic.os
-	$(OBJDUMP) -h $< | \
-	$(AWK) '$$2 ~ /\.gnu\.glibc-stub\./ { print "-R", $$2 }' \
-		> $@T
-	mv -f $@T $@
-# Apply those -R options.
-$(common-objpfx)libc_pic.os.clean: $(common-objpfx)libc_pic.opts \
-				   $(common-objpfx)libc_pic.os
-	$(OBJCOPY) @$^ $@
-generated += libc_pic.opts libc_pic.os.clean
-
-libc_pic_clean := .clean
-endif
-
-# Build a possibly-modified version of libc_pic.a for use in building
-# linkobj/libc.so.
-ifeq (,$(filter sunrpc,$(subdirs)))
-$(common-objpfx)linkobj/libc_pic.a: $(common-objpfx)libc_pic.a
-	$(make-target-directory)
-	ln -f $< $@
-else
-$(common-objpfx)linkobj/libc_pic.a: $(common-objpfx)libc_pic.a \
-				    $(common-objpfx)sunrpc/librpc_compat_pic.a
-	$(make-target-directory)
-	(cd $(common-objpfx)linkobj; \
-	 $(AR) x ../libc_pic.a; \
-	 rm $$($(AR) t ../sunrpc/librpc_compat_pic.a | sed 's/^compat-//'); \
-	 $(AR) x ../sunrpc/librpc_compat_pic.a; \
-	 $(AR) cr libc_pic.a *.os; \
-	 rm *.os)
-endif # $(subdirs) contains sunrpc
-
-# Clear link-libc-deps for the libc.so libraries so build-shlibs does not
-# filter ld.so out of the list of linked objects.
-$(common-objpfx)libc.so: link-libc-deps = # empty
-$(common-objpfx)linkobj/libc.so: link-libc-deps = # empty
-
-# Use our own special initializer and finalizer files for the libc.so
-# libraries.
-$(common-objpfx)libc.so: $(common-objpfx)libc_pic.os$(libc_pic_clean) \
-			 $(elf-objpfx)sofini.os \
-			 $(elf-objpfx)interp.os \
-			 $(elf-objpfx)ld.so \
-			 $(shlib-lds)
-	$(build-shlib)
-	$(call after-link,$@)
-
-$(common-objpfx)linkobj/libc.so: $(common-objpfx)linkobj/libc_pic.a \
-			 $(elf-objpfx)sofini.os \
-			 $(elf-objpfx)interp.os \
-			 $(elf-objpfx)ld.so \
-			 $(shlib-lds)
-	$(build-shlib)
-	$(call after-link,$@)
-
-ifeq ($(build-shared),yes)
-$(common-objpfx)libc.so: $(common-objpfx)libc.map
-endif
-common-generated += libc.so libc_pic.os
-ifdef libc.so-version
-$(common-objpfx)libc.so$(libc.so-version): $(common-objpfx)libc.so
-	$(make-link)
-common-generated += libc.so$(libc.so-version)
-endif
-endif
-
-# Figure out the source filenames in this directory.
-
-override sources := $(addsuffix .c,\
-			$(filter-out $(elided-routines),\
-			    $(routines) $(aux) \
-			    $(sysdep_routines)))
-sysdep_routines := $(sysdep_routines)
-
-headers := $(headers) $(sysdep_headers)
-
-# This is the list of all object files, gotten by
-# replacing every ".c" in `sources' with a ".o".
-override objects := $(addprefix $(objpfx),$(sources:.c=.o))
-
-
-# The makefile may define $(extra-libs) with `libfoo libbar'
-# to build libfoo.a et al from the modules listed in $(libfoo-routines).
-ifdef extra-libs
-# extra-lib.mk is included once for each extra lib to define rules
-# to build it, and to add its objects to the various variables.
-# During its evaluation, $(lib) is set to the name of the library.
-extra-libs-left := $(extra-libs)
-include $(patsubst %,$(..)extra-lib.mk,$(extra-libs))
-endif
-
-
-# The makefile may define $(modules-names) to build additional modules.
-# These are built with $(build-module), except any in $(modules-names-nobuild).
-# MODULE_NAME=extramodules, except any in $(modules-names-tests).
-ifdef modules-names
-cpp-srcs-left := $(filter-out $(modules-names-tests),$(modules-names))
-ifneq (,$(cpp-srcs-left))
-lib := extramodules
-include $(patsubst %,$(..)libof-iterator.mk,$(cpp-srcs-left))
-endif
-
-ifdef modules-names-tests
-cpp-srcs-left := $(filter $(modules-names-tests),$(modules-names))
-ifneq (,$(cpp-srcs-left))
-lib := testsuite
-include $(patsubst %,$(..)libof-iterator.mk,$(cpp-srcs-left))
-endif
-endif
-
-extra-modules-build := $(filter-out $(modules-names-nobuild),$(modules-names))
-$(extra-modules-build:%=$(objpfx)%.so): $(objpfx)%.so: \
-		$(objpfx)%.os $(shlib-lds) $(link-libs-deps)
-	$(build-module)
-endif
-
-+depfiles := $(sources:.c=.d) \
-	     $(patsubst %.o,%.d,$(filter %.o,$(extra-objs:.os=.o))) \
-	     $(patsubst %.oS,%.d,$(filter %.oS,$(extra-objs))) \
-	     $(patsubst %.o,%.d,$(filter %.o,$(extra-test-objs:.os=.o))) \
-	     $(addsuffix .d,$(tests) $(tests-internal) $(xtests) \
-		$(tests-container) $(tests-printers) \
-		$(test-srcs) $(tests-time64) $(xtests-time64))
-ifeq ($(build-programs),yes)
-+depfiles += $(addsuffix .d,$(others) $(sysdep-others))
-endif
-+depfiles := $(addprefix $(objpfx),\
-			 $(filter-out $(addsuffix .d,$(omit-deps)),\
-				      $(+depfiles)))
-all-dt-files := $(foreach o,$(object-suffixes-for-libc),$(+depfiles:.d=$o.dt))
-+depfiles := $(patsubst %.dt,%.d,$(wildcard $(all-dt-files))) \
-	     $(wildcard $(all-dt-files:.dt=.d))
-
-# This is a funny rule in that it removes its input file.
-%.d: %.dt
-	@sed $(sed-remove-objpfx) $< > $(@:.d=.T) && \
-	 mv -f $(@:.d=.T) $@ && \
-	 rm -f $<
-
-# Avoid the .h.d files for any .sym files whose .h files don't exist yet.
-# They will be generated when they're needed, and trying too early won't work.
-+gen-as-const := $(gen-as-const-headers:%.sym=$(common-objpfx)%.h)
-+depfiles += $(addsuffix .d,$(filter $(wildcard $(+gen-as-const)),\
-						$(+gen-as-const)))
-
-ifdef +depfiles
-ifneq ($(no_deps),t)
--include $(+depfiles)
-endif
-endif
-
-# Maximize efficiency by minimizing the number of rules.
-.SUFFIXES:	# Clear the suffix list.  We don't use suffix rules.
-# Don't define any builtin rules.
-MAKEFLAGS := $(MAKEFLAGS) -r
-
-# Generic rule for making directories.
-%/:
-# mkdir isn't smart enough to strip a trailing /.
-# We always require a mkdir which supports the -p option to avoid error
-# messages in case of races.
-	mkdir -p $(@:%/=%)
-
-# Make sure that object files are not removed
-# when they are intermediates between sources and library members.
-.PRECIOUS: $(addprefix $(objpfx)%,$(all-object-suffixes))
-
-# Make sure that the parent library archive is never removed.
-.PRECIOUS: $(foreach l,$(libtypes),$(patsubst %,$(common-objpfx)$l,c))
-
-# Use the verbose option of ar and tar when not running silently.
-ifeq ($(silent-make),no)			# if not -s
-verbose := v
-else	   					# -s
-verbose	:=
-endif						# not -s
-
-ARFLAGS := r$(verbose)
-CREATE_ARFLAGS := cru$(verbose)
-
-# This makes all the object files in the parent library archive.
-
-.PHONY: lib lib-noranlib
-lib: lib-noranlib $(foreach l,$(libtypes),$(patsubst %,$(common-objpfx)$l,c))
-lib-noranlib: libobjs
-
-# For object-suffix $o, the list of objects with that suffix.
-# Makefiles can define `elide-routines.so = foo' to leave foo.so out.
-o-objects = $(patsubst %.o,%$o,$(filter-out $(patsubst %,$(objpfx)%.o,\
-						       $(elide-routines$o)),\
-					    $(objects))) \
-	    $(addprefix $(objpfx),$(o-objects$o))
-
-others: $(addprefix $(objpfx),$(install-lib))
-
-ifndef objects
-
-# Create the stamp$o files to keep the parent makefile happy.
-subdir_lib: $(foreach o,$(object-suffixes-for-libc),$(objpfx)stamp$o)
-$(foreach o,$(object-suffixes-for-libc),$(objpfx)stamp$o):
-	$(make-target-directory)
-	rm -f $@; > $@
-else
-
-# Define explicit rules to update each $(objpfx)stamp.SUFFIX
-# timestamp file; these rules (one explicit rule is generated for each
-# object suffix) write a list of objects to update in the stamp file.
-# The parent will then actually add them all to the archive in the
-# archive rule, below.
-define o-iterator-doit
-$(objpfx)stamp$o: $(o-objects); $$(do-stamp)
-endef
-define do-stamp
-$(make-target-directory)
-echo '$(patsubst $(objpfx)%,$(addsuffix /,$(subdir))%,$^)' > $@T
-mv -f $@T $@
-endef
-object-suffixes-left := $(object-suffixes-for-libc)
-include $(o-iterator)
-
-endif
-
-# Now define explicit rules to build the library archives; these depend
-# on the stamp files built above.
-define o-iterator-doit
-$(common-objpfx)$(patsubst %,$(libtype$o),c): \
-		$(subdirs-stamp-o) $(common-objpfx)stamp$o; $$(do-makelib)
-endef
-define do-makelib
-cd $(common-objdir) && \
-$(AR) $(CREATE_ARFLAGS) $(@F) `cat $(patsubst $(common-objpfx)%,%,$^)`
-endef
-subdirs-stamps := $(foreach d,$(subdirs),$(common-objpfx)$d/stamp%)
-subdirs-stamp-o = $(subst %,$o,$(subdirs-stamps))
-ifndef subdir
-$(subdirs-stamps): subdir_lib;
-endif
-object-suffixes-left = $(object-suffixes-for-libc)
-include $(o-iterator)
-
-
-# This makes all the object files.
-.PHONY: objects objs libobjs extra-objs
-objects objs: libobjs extra-objs
-libobjs: $(foreach o,$(object-suffixes-for-libc),$(objpfx)stamp$o)
-extra-objs: $(addprefix $(objpfx),$(extra-objs))
-
-# Canned sequence for building an extra library archive.
-define build-extra-lib
-$(patsubst %/,cd % &&,$(objpfx)) \
-$(AR) $(CREATE_ARFLAGS) $(@:$(objpfx)%=%) \
-      $(patsubst $(objpfx)%,%,$^)
-endef
-
-# Installation.
-
-.PHONY: force-install
-force-install:
-
-# $(install-lib) are installed from the object directory into $(libdir);
-# files in $(install-lib) matching `lib%.a' are ranlib'd after installation
-# unless they also appear in $(non-lib.a).  $(install-data) are installed as
-# they are into $(datadir).  $(headers) are installed as they are in
-# $(includedir).  $(install-bin), $(install-bin-script) and $(install-sbin)
-# are installed from the object directory into $(bindir), $(bindir) and
-# $(sbindir), respectively.  $(install-others) and $(install-others-programs)
-# are absolute path names of files to install; rules to install them are
-# defined elsewhere.
-
-# The simple library name to install libc.a under.
-# This could be defined by a sysdep Makefile.
-ifndef libc-name
-libc-name := c
-endif
-
-define do-install
-$(make-target-directory)
-$(INSTALL_DATA) $< $@
-endef
-
-# Make the target directory if it doesn't exist, using the `mkinstalldirs'
-# script that does `mkdir -p' even if `mkdir' doesn't support that flag.
-define make-target-directory
-$(addprefix $(..)./scripts/mkinstalldirs ,\
-	    $(filter-out $(wildcard $(@D:%/=%)),$(@D:%/=%)))
-endef
-
-# Any directory (parent or subdir) should install libc.a; this way
-# "make install" in a subdir is guaranteed to install everything it changes.
-installed-libcs := $(foreach o,$(filter-out .os,$(object-suffixes-for-libc)),\
-			     $(inst_libdir)/$(patsubst %,$(libtype$o),\
-						     $(libprefix)$(libc-name)))
-
-.PHONY: check-install-supported
-check-install-supported:
-
-# Check to see if the prefix or exec_prefix GNU standard variable
-# has been overridden on the command line and, if so, fail with
-# an error message since doing so is not supported (set DESTDIR
-# instead).
-ifeq ($(origin prefix),command line)
-check-install-supported:
-	$(error Overriding prefix is not supported. Set DESTDIR instead.)
-endif
-
-ifeq ($(origin exec_prefix),command line)
-check-install-supported:
-	$(error Overriding exec_prefix is not supported. Set DESTDIR instead.)
-endif
-
-install: check-install-supported
-
-install: $(installed-libcs)
-$(installed-libcs): $(inst_libdir)/lib$(libprefix)%: lib $(+force)
-	$(make-target-directory)
-	$(INSTALL_DATA) $(common-objpfx)lib$(*:$(libc-name)%=c%) $@
-
-define do-install-program
-$(make-target-directory)
-$(INSTALL_PROGRAM) $< $@.new
-mv -f $@.new $@
-endef
-
-define do-install-script
-$(make-target-directory)
-$(INSTALL_SCRIPT) $< $@.new
-mv -f $@.new $@
-endef
-
-install-lib.so := $(filter %.so,$(install-lib:%_pic.a=%.so))
-install-lib := $(filter-out %.so %_pic.a,$(install-lib))
-
-ifeq (yes,$(build-shared))
-# Find which .so's have a version number in their soname.
-versioned := $(strip $(foreach so,$(install-lib.so),\
-			       $(patsubst %,$(so),$($(so)-version))))
-
-install-lib.so-versioned := $(filter $(versioned), $(install-lib.so))
-install-lib.so-unversioned := $(filter-out $(versioned), $(install-lib.so))
-
-# For libraries whose soname have version numbers, we install two files:
-#	$(inst_libdir)/libfoo.so	-- for linking, symlink or ld script
-#	$(inst_slibdir)/libfoo.so.NN	-- for loading by SONAME
-install-lib-nosubdir: $(install-lib.so-unversioned:%=$(inst_slibdir)/%) \
-		      $(foreach L,$(install-lib.so-versioned),\
-				$(inst_libdir)/$L \
-				$(inst_slibdir)/$L$($L-version))
-
-# Install all the unversioned shared libraries.
-$(install-lib.so-unversioned:%=$(inst_slibdir)/%): $(inst_slibdir)/%.so: \
-    $(objpfx)%.so $(+force)
-	$(do-install-program)
-
-ifneq ($(findstring -s,$(LN_S)),)
-define make-link
-rm -f $@.new
-$(SHELL) $(..)scripts/rellns-sh $< $@.new
-mv -f $@.new $@
-endef
-define make-link-multidir
-$(patsubst %/,cd %,$(objpfx)); \
-  $(addprefix $(abspath $(..)scripts/mkinstalldirs) ,$(dir $(multidir))); \
-  $(LN_S) . $(multidir) 2> /dev/null; \
-  test -L $(multidir)
-endef
-else
-# If we have no symbolic links don't bother with rellns-sh.
-define make-link
-rm -f $@.new
-$(LN_S) $< $@.new
-mv -f $@.new $@
-endef
-define make-link-multidir
-$(make-target-directory)
-ln -f $(objpfx)/$(@F) $@
-endef
-endif
-
-ifdef libc.so-version
-$(inst_slibdir)/libc.so$(libc.so-version): $(common-objpfx)libc.so $(+force)
-	$(do-install-program)
-
-install: $(inst_slibdir)/libc.so$(libc.so-version)
-
-# This fragment of linker script gives the OUTPUT_FORMAT statement
-# for the configuration we are building.  We put this statement into
-# the linker scripts we install for -lc et al so that they will not be
-# used by a link for a different format on a multi-architecture system.
-$(common-objpfx)format.lds: $(common-objpfx)config.make \
-			    $(common-objpfx)config.h $(..)Makerules
-	$(LINK.o) -shared -nostdlib -nostartfiles \
-		  -x assembler /dev/null -o $@.so
-	$(OBJDUMP) -f $@.so | sed -n 's/.*file format \(.*\)/OUTPUT_FORMAT(\1)/;T;p' > $@
-	rm -f $@.so
-common-generated += format.lds
-
-ifndef subdir
-# What we install as libc.so for programs to link against is in fact a
-# link script.  It contains references for the various libraries we need.
-# The libc.so object is not complete since some functions are only defined
-# in libc_nonshared.a.
-# We need to use absolute paths since otherwise local copies (if they exist)
-# of the files are taken by the linker.
-install: $(inst_libdir)/libc.so
-$(inst_libdir)/libc.so: $(common-objpfx)format.lds \
-			$(common-objpfx)libc.so$(libc.so-version) \
-			$(inst_libdir)/$(patsubst %,$(libtype.oS),\
-						  $(libprefix)$(libc-name)) \
-			$(+force)
-	(echo '/* GNU ld script';\
-	 echo '   Use the shared library, but some functions are only in';\
-	 echo '   the static library, so try that secondarily.  */';\
-	 cat $<; \
-	 echo 'GROUP ( $(slibdir)/libc.so$(libc.so-version)' \
-	      '$(libdir)/$(patsubst %,$(libtype.oS),$(libprefix)$(libc-name))'\
-	      ' AS_NEEDED (' $(rtlddir)/$(rtld-installed-name) ') )' \
-	) > $@.new
-	mv -f $@.new $@
-
-endif
-
-else
-install: $(inst_slibdir)/libc.so
-$(inst_slibdir)/libc.so: $(common-objpfx)libc.so $(+force)
-	$(do-install-program)
-endif
-
-ifneq (,$(versioned))
-# Produce three sets of rules as above for all the smaller versioned libraries.
-
-define o-iterator-doit
-$(inst_libdir)/$o: $(inst_slibdir)/$o$($o-version) $(+force); $$(make-link)
-endef
-object-suffixes-left := $(filter-out $(install-lib-ldscripts),$(versioned))
-ifneq (,$(object-suffixes-left))
-include $(o-iterator)
-endif
-
-# Make symlinks in the build directory, because the versioned names might
-# be referenced by a DT_NEEDED in another library.
-define o-iterator-doit
-$(objpfx)$o$($o-version): $(objpfx)$o; $$(make-link)
-endef
-object-suffixes-left := $(versioned)
-include $(o-iterator)
-
-generated += $(foreach o,$(versioned),$o$($o-version))
-
-define o-iterator-doit
-$(inst_slibdir)/$o$($o-version): $(objpfx)$o $(+force);
-	$$(do-install-program)
-endef
-object-suffixes-left := $(versioned)
-include $(o-iterator)
-endif # ifneq (,$(versioned))
-
-define do-install-so
-$(do-install-program)
-$(patsubst %,$(LN_S) -f $(@F) \
-			$(@D)/$(patsubst %$*.so,%,$(<F))$(libprefix)$*.so,\
-	   $(filter-out %.so,$@))
-endef
-
-so-versions := $(sort $(foreach so,$(install-lib.so),.so$($(so)-version)))
-$(foreach v,$(so-versions),\
-	  $(inst_slibdir)/lib$(libprefix)%$v): $(common-objpfx)lib%.so \
-					       $(+force)
-	$(do-install-so)
-$(foreach v,$(so-versions),\
-	  $(inst_slibdir)/$(libprefix)%$v): $(common-objpfx)%.so $(+force)
-	$(do-install-so)
-endif
-
-ifdef install-bin
-$(addprefix $(inst_bindir)/,$(install-bin)): \
-    $(inst_bindir)/%: $(objpfx)% $(+force)
-	$(do-install-program)
-endif
-ifdef install-bin-script
-$(addprefix $(inst_bindir)/,$(install-bin-script)): \
-    $(inst_bindir)/%: $(objpfx)% $(+force)
-	$(do-install-script)
-endif
-ifdef install-rootsbin
-$(addprefix $(inst_rootsbindir)/,$(install-rootsbin)): \
-   $(inst_rootsbindir)/%: $(objpfx)% $(+force)
-	$(do-install-program)
-endif
-ifdef install-sbin
-$(addprefix $(inst_sbindir)/,$(install-sbin)): \
-    $(inst_sbindir)/%: $(objpfx)% $(+force)
-	$(do-install-program)
-endif
-ifdef install-lib
-install-lib.a := $(filter lib%.a,$(install-lib))
-install-lib.a := $(filter-out $(install-lib-ldscripts),$(install-lib.a))
-install-lib-non.a := $(filter-out lib%.a,$(install-lib))
-ifdef install-lib-non.a
-$(addprefix $(inst_libdir)/$(libprefix),$(install-lib-non.a)): \
-  $(inst_libdir)/$(libprefix)%: $(objpfx)% $(+force)
-	$(do-install)
-endif
-ifdef install-lib.a
-$(install-lib.a:lib%.a=$(inst_libdir)/lib$(libprefix)%.a): \
-  $(inst_libdir)/lib$(libprefix)%.a: $(objpfx)lib%.a $(+force)
-	$(do-install)
-endif
-endif
-ifdef install-data
-$(addprefix $(inst_datadir)/,$(install-data)): $(inst_datadir)/%: % $(+force)
-	$(do-install)
-endif
-headers := $(strip $(headers))
-ifdef headers
-# This implicit rule installs headers from the source directory.
-# It may be ignored in preference to rules from sysd-rules to find
-# headers in the sysdeps tree.
-$(inst_includedir)/%.h: $(objpfx)%.h $(+force)
-	$(do-install)
-$(inst_includedir)/%.h: $(common-objpfx)%.h $(+force)
-	$(do-install)
-$(inst_includedir)/%.h: %.h $(+force)
-	$(do-install)
-$(inst_includedir)/%.h: $(..)include/%.h $(+force)
-	$(do-install)
-headers-nonh := $(filter-out %.h,$(headers))
-ifdef headers-nonh
-$(addprefix $(inst_includedir)/,$(headers-nonh)): $(inst_includedir)/%: \
-						 % $(+force)
-	$(do-install)
-endif	# headers-nonh
-endif	# headers
-
-.PHONY: install-bin-nosubdir install-bin-script-nosubdir \
-	install-rootsbin-nosubdir install-sbin-nosubdir install-lib-nosubdir \
-	install-data-nosubdir install-headers-nosubdir
-install-bin-nosubdir: $(addprefix $(inst_bindir)/,$(install-bin))
-install-bin-script-nosubdir: $(addprefix $(inst_bindir)/,$(install-bin-script))
-install-rootsbin-nosubdir: \
-	$(addprefix $(inst_rootsbindir)/,$(install-rootsbin))
-install-sbin-nosubdir: $(addprefix $(inst_sbindir)/,$(install-sbin))
-install-lib-nosubdir: $(addprefix $(inst_libdir)/,\
-		       $(patsubst lib%.a,lib$(libprefix)%.a,$(install-lib.a)) \
-		       $(addprefix $(libprefix),$(install-lib-non.a)))
-install-data-nosubdir: $(addprefix $(inst_datadir)/,$(install-data))
-install-headers-nosubdir: $(addprefix $(inst_includedir)/,$(headers))
-install-others-nosubdir: $(install-others)
-install-others-programs-nosubdir: $(install-others-programs)
-
-# We need all the `-nosubdir' targets so that `install' in the parent
-# doesn't depend on several things which each iterate over the subdirs.
-# This rule makes `install-FOO' always use `install-FOO-nosubdir' as a
-# subroutine.  Then in the parent `install-FOO' also causes subdir makes.
-install-%:: install-%-nosubdir ;
-
-.PHONY: install install-no-libc.a-nosubdir
-install-no-libc.a-nosubdir: install-headers-nosubdir install-data-nosubdir \
-			    install-lib-nosubdir install-others-nosubdir
-ifeq ($(build-programs),yes)
-install-no-libc.a-nosubdir: install-bin-nosubdir install-bin-script-nosubdir \
-			    install-rootsbin-nosubdir install-sbin-nosubdir \
-			    install-others-programs-nosubdir
-endif
-install: install-no-libc.a-nosubdir
-
-# Command to compile $< using the native libraries.
-define native-compile
-$(make-target-directory)
-$(BUILD_CC) $($(basename $(<F))-CFLAGS) $(ALL_BUILD_CFLAGS) \
-	    $< $(OUTPUT_OPTION) $(BUILD_LDFLAGS)
-endef
-
-# We always want to use configuration definitions.
-ALL_BUILD_CFLAGS = $(BUILD_CFLAGS) $(BUILD_CPPFLAGS) -D_GNU_SOURCE \
-		   -DIS_IN_build -include $(common-objpfx)config.h
-
-# Support the GNU standard name for this target.
-.PHONY: check
-check: tests
-# Special target to run tests which cannot be run unconditionally.
-# Maintainers should use this target.
-.PHONY: xcheck
-xcheck: xtests
-
-# Handle tests-time64 and xtests-time64 that should built with LFS
-# and 64-bit time support.
-include $(o-iterator)
-define o-iterator-doit
-$(foreach f,$(tests-time64) $(xtests-time64),\
-	    $(objpfx)$(f)$(o)): CFLAGS += -D_TIME_BITS=64 -D_FILE_OFFSET_BITS=64
-endef
-object-suffixes-left := $(all-object-suffixes)
-include $(o-iterator)
-
-ifeq ($(have-time64-compat),yes)
-tests += $(foreach t,$(tests-time64),$(t))
-xtests += $(foreach t,$(xtests-time64),$(t))
-endif
-
-# The only difference between MODULE_NAME=testsuite and MODULE_NAME=nonlib is
-# that almost all internal declarations from config.h, libc-symbols.h, and
-# include/*.h are not available to 'testsuite' code, but are to 'nonlib' code.
-all-testsuite := $(strip $(tests) $(xtests) $(test-srcs) $(test-extras) \
-		 $(tests-container))
-ifneq (,$(all-testsuite))
-cpp-srcs-left = $(all-testsuite)
-lib := testsuite
-include $(patsubst %,$(..)libof-iterator.mk,$(cpp-srcs-left))
-endif
-
-all-nonlib := $(strip $(others) $(others-extras))
-ifneq (,$(all-nonlib))
-cpp-srcs-left = $(all-nonlib)
-lib := nonlib
-include $(patsubst %,$(..)libof-iterator.mk,$(cpp-srcs-left))
-endif
-
-# All internal tests use testsuite-internal module since for 64 bit time
-# support is set as default for MODULE_NAME=nonlib (which include some
-# installed programs).
-all-testsuite-internal := $(strip $(tests-internal) $(test-internal-extras))
-ifneq (,$(all-testsuite-internal))
-cpp-srcs-left = $(all-testsuite-internal)
-lib := testsuite-internal
-include $(patsubst %,$(..)libof-iterator.mk,$(cpp-srcs-left))
-endif
-
-ifeq ($(build-shared),yes)
-# Generate normalized lists of symbols, versions, and data sizes.
-# This is handy for checking against existing library binaries.
-
-%.symlist: $(..)scripts/abilist.awk %.dynsym
-	LC_ALL=C $(AWK) -f $^ > $@T
-	mv -f $@T $@
-
-%.dynsym: %.so
-	LC_ALL=C $(OBJDUMP) --dynamic-syms $< > $@T
-	mv -f $@T $@
-
-vpath %.abilist $(+sysdep_dirs)
-
-# The .PRECIOUS rule prevents the files built by an implicit rule whose
-# target pattern is %.symlist from being considered "intermediate files"
-# and automatically removed.  We only want these files to be removed by
-# 'make clean', which is handled by the 'generated' variable.
-.PRECIOUS: %.symlist
-generated += $(extra-libs:=.symlist)
-
-$(objpfx)check-abi-%.out: $(common-objpfx)config.make %.abilist \
-			  $(objpfx)%.symlist
-	$(check-abi); \
-	$(evaluate-test)
-$(objpfx)check-abi-%.out: $(common-objpfx)config.make %.abilist \
-			  $(common-objpfx)%.symlist
-	$(check-abi); \
-	$(evaluate-test)
-define check-abi
-	diff -p -U 0 $(filter %.abilist,$^) $(filter %.symlist,$^) > $@
-endef
-
-update-abi-%: $(objpfx)%.symlist %.abilist
-	$(update-abi)
-update-abi-%: $(common-objpfx)%.symlist %.abilist
-	$(update-abi)
-define update-abi
-@if cmp -s $^ 2> /dev/null; \
- then \
-      echo '+++ $(filter %.abilist,$^) is unchanged'; \
- else cp -f $^; \
-      echo '*** Now check $(filter %.abilist,$^) changes for correctness ***'; \
- fi
-endef
-
-# Patch all .abilist files for one DSO.  The find command locates abilist
-# files for all architectures.  The abilist files in /generic/ are
-# filtered out because these are expected to remain empty.
-define update-all-abi
-$(SHELL) $(..)scripts/update-abilist.sh $^ \
-  $$(find $(..)sysdeps -name '$*.abilist' \! -path '*/generic/*')
-endef
-update-all-abi-%: %.abilist $(objpfx)%.symlist
-	$(update-all-abi)
-update-all-abi-%: %.abilist $(common-objpfx)%.symlist
-	$(update-all-abi)
-
-.PHONY: update-abi update-all-abi check-abi
-update-abi: $(patsubst %.so,update-abi-%,$(install-lib.so-versioned))
-update-all-abi: $(patsubst %.so,update-all-abi-%,$(install-lib.so-versioned))
-check-abi-list = $(patsubst %.so,$(objpfx)check-abi-%.out, \
-				 $(install-lib.so-versioned))
-check-abi: $(check-abi-list)
-ifdef subdir
-subdir_check-abi: check-abi
-subdir_update-abi: update-abi
-subdir_update-all-abi: update-all-abi
-else
-check-abi: subdir_check-abi
-	if grep -q '^FAIL:' $(objpfx)*/check-abi*.test-result; then \
-		cat $(objpfx)*/check-abi*.out && exit 1; fi
-update-abi: subdir_update-abi
-update-all-abi: subdir_update-all-abi
-endif
-
-ifeq ($(subdir),elf)
-check-abi: $(objpfx)check-abi-libc.out
-tests-special += $(objpfx)check-abi-libc.out
-update-abi: update-abi-libc
-update-all-abi: update-all-abi-libc
-common-generated += libc.symlist
-endif
-
-ifeq ($(build-shared),yes)
-ifdef subdir
-tests-special += $(check-abi-list)
-endif
-endif
-
-endif
-
-# These will have been set by sysdeps/posix/Makefile.
-L_tmpnam  ?= 1
-TMP_MAX   ?= 0
-L_ctermid ?= 1
-L_cuserid ?= 1
-
-stdio_lim = $(common-objpfx)bits/stdio_lim.h
-
-$(stdio_lim:lim.h=%.h) $(stdio_lim:lim.h=%.d): $(stdio_lim:lim.h=%.st); @:
-$(stdio_lim:h=st): $(..)stdio-common/stdio_lim.h.in $(..)Rules \
-		   $(common-objpfx)config.make
-	$(make-target-directory)
-	{ echo '#include "$(..)posix/bits/posix1_lim.h"';		\
-	} |								\
-	$(CC) -E -dM -MD -MP -MF $(@:st=dT) -MT '$(@:st=h) $(@:st=d)' 	\
-	      $(CPPUNDEFS) $(+includes) -xc - -o $(@:st=hT)
-	sed $(sed-remove-objpfx) $(sed-remove-dotdot)			\
-	    $(@:st=dT) > $(@:st=dt)
-	mv -f $(@:st=dt) $(@:st=d)
-	fopen_max=`sed -n 's/^#define OPEN_MAX //1p' $(@:st=hT)`; 	\
-	filename_max=`sed -n 's/^#define PATH_MAX //1p' $(@:st=hT)`;	\
-	fopen_max=$${fopen_max:-16};					\
-	filename_max=$${filename_max:-1024};				\
-	sed -e "s/@FOPEN_MAX@/$$fopen_max/"				\
-	    -e "s/@FILENAME_MAX@/$$filename_max/"			\
-	    -e "s/@L_tmpnam@/$(L_tmpnam)/"				\
-	    -e "s/@TMP_MAX@/$(TMP_MAX)/"				\
-	    -e "s/@L_ctermid@/$(L_ctermid)/"				\
-	    -e "s/@L_cuserid@/$(L_cuserid)/"				\
-	    $< > $(@:st=h.new)
-	$(move-if-change) $(@:st=h.new) $(@:st=h)
-# Remove these last so that they can be examined if something went wrong.
-	rm -f $(@:st=hT) $(@:st=dT) $(@:st=dt)
-	touch $@
-# Get dependencies.
-ifndef no_deps
--include $(stdio_lim:h=d)
-endif
-common-generated += bits/stdio_lim.h bits/stdio_lim.d bits/stdio_lim.st
-
-FORCE:
-
-.PHONY: echo-headers
-echo-headers:
-	@echo $(headers)
-
-%.bz2: %; bzip2 -9vk $<
-%.gz: %; gzip -9vnc $< > $@.new && mv -f $@.new $@
-%.xz: %; xz -9evk $<
-
-# Common cleaning targets.
-
-.PHONY: common-mostlyclean common-clean mostlyclean clean do-tests-clean
-clean: common-clean
-mostlyclean: common-mostlyclean
-
-do-tests-clean:
-	-rm -f $(addprefix $(objpfx),$(addsuffix .out,$(tests) \
-						      $(tests-internal) \
-						      $(xtests) \
-						      $(test-srcs)) \
-				     $(addsuffix .test-result,$(tests) \
-							      $(tests-internal) \
-							      $(xtests) \
-							      $(test-srcs)))
-
-# Remove the object files.
-common-mostlyclean:
-	-rm -f $(addprefix $(objpfx),$(tests) $(tests-internal) $(xtests) \
-				     $(test-srcs) \
-				     $(others) $(sysdep-others) stubs \
-				     $(addsuffix .o,$(tests) \
-						    $(tests-internal) \
-						    $(xtests) \
-						    $(test-srcs) \
-						    $(others) \
-						    $(sysdep-others)) \
-				     $(addsuffix .out,$(tests) \
-						      $(tests-internal) \
-						      $(xtests) \
-						      $(test-srcs)) \
-				     $(addsuffix .test-result,$(tests) \
-							      $(tests-internal) \
-							      $(xtests) \
-							      $(test-srcs)))
-	-rm -f $(addprefix $(objpfx),$(extra-objs) $(extra-test-objs) \
-				     $(install-lib) $(install-lib.so) \
-				     $(install-lib.so:%.so=%_pic.a))
-	-rm -f core
-	-rm -f $(objpfx)rtld-*.os
-	$(rmobjs)
-define rmobjs
-$(foreach o,$(object-suffixes-for-libc),
--rm -f $(objpfx)stamp$o $(o-objects))
-endef
-
-# Also remove the dependencies and generated source files.
-common-clean: common-mostlyclean
-	-rm -f $(addprefix $(objpfx),$(generated))
-	-rm -f $(objpfx)*.d $(objpfx)*.dt
-	-rm -fr $(addprefix $(objpfx),$(generated-dirs))
-	-rm -f $(addprefix $(common-objpfx),$(common-generated))
-	-rm -f $(gen-as-const-headers:%.sym=$(common-objpfx)%.h)
-
-# Produce a file `stubs' which contains `#define __stub_FUNCTION'
-# for each function which is a stub.
-
-ifdef objpfx
-.PHONY: stubs # The parent Makefile calls this target.
-stubs: $(objpfx)stubs
-endif
-objs-for-stubs := $(foreach o,$(object-suffixes-for-libc),$(o-objects)) \
-		  $(addprefix $(objpfx),$(extra-objs))
-$(objpfx)stubs: $(objs-for-stubs)
-ifneq (,$(strip $(objs-for-stubs)))
-	(cd $(objpfx).; $(OBJDUMP) -h $(patsubst $(objpfx)%,%,$^)) | \
-	$(AWK) '/\.gnu\.glibc-stub\./ { \
-		  sub(/\.gnu\.glibc-stub\./, "", $$2); \
-		  stubs[$$2] = 1; } \
-		END { for (s in stubs) print "#define __stub_" s }' > $@T
-	mv -f $@T $@
-else
-	> $@
-endif
-
-ifneq (,$(strip $(gpl2lgpl)))
-ifneq (,$(wildcard $(..)gpl2lgpl.sed))
-# Snarf from the master source and frob the copying notice.
-$(gpl2lgpl): %: $(..)gpl2lgpl.sed /home/gd/gnu/lib/%
-	sed -f $^ > $@-tmp
-# So I don't edit them by mistake.
-	chmod a-w $@-tmp
-	mv -f $@-tmp $@
-endif
-endif
-
-# Local Variables:
-# mode: makefile
-# End:
Index: sources/GNU/glibc/2.37/create-2.37-i18n-patch/file.list
===================================================================
--- sources/GNU/glibc/2.37/create-2.37-i18n-patch/file.list	(revision 393)
+++ sources/GNU/glibc/2.37/create-2.37-i18n-patch/file.list	(nonexistent)
@@ -1,2 +0,0 @@
-glibc-2.37/localedata/SUPPORTED
-glibc-2.37/localedata/locales/ru_RU
Index: sources/GNU/glibc/2.37/create-2.37-i18n-patch/create.patch.sh
===================================================================
--- sources/GNU/glibc/2.37/create-2.37-i18n-patch/create.patch.sh	(revision 393)
+++ sources/GNU/glibc/2.37/create-2.37-i18n-patch/create.patch.sh	(nonexistent)
@@ -1,15 +0,0 @@
-#!/bin/bash
-
-VERSION=2.37
-
-tar --files-from=file.list -xJvf ../glibc-$VERSION.tar.xz
-mv glibc-$VERSION glibc-$VERSION-orig
-
-cp -rf ./glibc-$VERSION-new ./glibc-$VERSION
-
-diff --unified -Nr  glibc-$VERSION-orig  glibc-$VERSION > glibc-$VERSION-i18n.patch
-
-mv glibc-$VERSION-i18n.patch ../patches
-
-rm -rf ./glibc-$VERSION
-rm -rf ./glibc-$VERSION-orig

Property changes on: sources/GNU/glibc/2.37/create-2.37-i18n-patch/create.patch.sh
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: sources/GNU/glibc/2.37/create-2.37-i18n-patch/glibc-2.37-new/localedata/locales/ru_RU
===================================================================
--- sources/GNU/glibc/2.37/create-2.37-i18n-patch/glibc-2.37-new/localedata/locales/ru_RU	(revision 393)
+++ sources/GNU/glibc/2.37/create-2.37-i18n-patch/glibc-2.37-new/localedata/locales/ru_RU	(nonexistent)
@@ -1,208 +0,0 @@
-comment_char %
-escape_char /
-
-% This file is part of the GNU C Library and contains locale data.
-% The Free Software Foundation does not claim any copyright interest
-% in the locale data contained in this file.  The foregoing does not
-% affect the license of the GNU C Library as a whole.  It does not
-% exempt you from the conditions of the license if your use would
-% otherwise be governed by that license.
-
-% Russian Language Locale for Russia
-% Source: RAP
-% Address: Sankt Jo//rgens Alle 8
-%    DK-1615 Ko//benhavn V, Danmark
-% Contact: Keld Simonsen
-% Email: Keld.Simonsen@dkuug.dk
-% Tel: +45 - 31226543
-% Fax: +45 - 33256543
-% Language: ru
-% Territory: RU
-% Revision: 4.3
-% Date: 1996-10-15
-% Application: general
-% Users: general
-
-LC_IDENTIFICATION
-title      "Russian locale for Russia"
-source     "RAP"
-address    "Sankt Jorgens Alle 8, DK-1615 Kobenhavn V, Danmark"
-contact    ""
-email      "bug-glibc-locales@gnu.org"
-tel        ""
-fax        ""
-language   "Russian"
-territory  "Russia"
-revision   "1.0"
-date       "2000-06-29"
-
-category "i18n:2012";LC_IDENTIFICATION
-category "i18n:2012";LC_CTYPE
-category "i18n:2012";LC_COLLATE
-category "i18n:2012";LC_TIME
-category "i18n:2012";LC_NUMERIC
-category "i18n:2012";LC_MONETARY
-category "i18n:2012";LC_MESSAGES
-category "i18n:2012";LC_PAPER
-category "i18n:2012";LC_NAME
-category "i18n:2012";LC_ADDRESS
-category "i18n:2012";LC_TELEPHONE
-category "i18n:2012";LC_MEASUREMENT
-END LC_IDENTIFICATION
-
-LC_COLLATE
-% CLDR collation rules for Russian:
-% (see: https://unicode.org/cldr/trac/browser/trunk/common/collation/ru.xml)
-%
-% <collation type="standard">
-% 	<cr><![CDATA[
-% 		[reorder Cyrl]
-% 		# The root collation already sorts й/Й as a base letter.
-% 	]]></cr>
-% </collation>
-%
-copy "iso14651_t1"
-END LC_COLLATE
-
-LC_CTYPE
-copy "i18n"
-
-translit_start
-include  "translit_combining";""
-translit_end
-END LC_CTYPE
-
-LC_MESSAGES
-yesexpr "^[+1yY<U0414><U0434>]"
-noexpr  "^[-0nN<U041D><U043D>]"
-yesstr  "<U0434><U0430>"
-nostr   "<U043D><U0435><U0442>"
-END LC_MESSAGES
-
-LC_MONETARY
-int_curr_symbol           "RUB "
-currency_symbol           "<U20BD>"
-mon_decimal_point         "."
-mon_thousands_sep         "<U202F>"
-mon_grouping              3;3
-positive_sign             ""
-negative_sign             "-"
-int_frac_digits           2
-frac_digits               2
-p_cs_precedes             0
-p_sep_by_space            1
-n_cs_precedes             0
-n_sep_by_space            1
-p_sign_posn               1
-n_sign_posn               1
-END LC_MONETARY
-
-LC_NUMERIC
-decimal_point             ","
-thousands_sep             "<U202F>"
-grouping                  3;3
-END LC_NUMERIC
-
-LC_TIME
-day     "<U0412><U043E><U0441><U043A><U0440><U0435><U0441><U0435><U043D><U044C><U0435>";/
-        "<U041F><U043E><U043D><U0435><U0434><U0435><U043B><U044C><U043D><U0438><U043A>";/
-        "<U0412><U0442><U043E><U0440><U043D><U0438><U043A>";/
-        "<U0421><U0440><U0435><U0434><U0430>";/
-        "<U0427><U0435><U0442><U0432><U0435><U0440><U0433>";/
-        "<U041F><U044F><U0442><U043D><U0438><U0446><U0430>";/
-        "<U0421><U0443><U0431><U0431><U043E><U0442><U0430>"
-abday   "<U0412><U0441>";/
-        "<U041F><U043D>";/
-        "<U0412><U0442>";/
-        "<U0421><U0440>";/
-        "<U0427><U0442>";/
-        "<U041F><U0442>";/
-        "<U0421><U0431>"
-alt_mon "<U042F><U043D><U0432><U0430><U0440><U044C>";/
-        "<U0424><U0435><U0432><U0440><U0430><U043B><U044C>";/
-        "<U041C><U0430><U0440><U0442>";/
-        "<U0410><U043F><U0440><U0435><U043B><U044C>";/
-        "<U041C><U0430><U0439>";/
-        "<U0418><U044E><U043D><U044C>";/
-        "<U0418><U044E><U043B><U044C>";/
-        "<U0410><U0432><U0433><U0443><U0441><U0442>";/
-        "<U0421><U0435><U043D><U0442><U044F><U0431><U0440><U044C>";/
-        "<U041E><U043A><U0442><U044F><U0431><U0440><U044C>";/
-        "<U041D><U043E><U044F><U0431><U0440><U044C>";/
-        "<U0414><U0435><U043A><U0430><U0431><U0440><U044C>"
-mon     "<U044F><U043D><U0432><U0430><U0440><U044F>";/
-        "<U0444><U0435><U0432><U0440><U0430><U043B><U044F>";/
-        "<U043C><U0430><U0440><U0442><U0430>";/
-        "<U0430><U043F><U0440><U0435><U043B><U044F>";/
-        "<U043C><U0430><U044F>";/
-        "<U0438><U044E><U043D><U044F>";/
-        "<U0438><U044E><U043B><U044F>";/
-        "<U0430><U0432><U0433><U0443><U0441><U0442><U0430>";/
-        "<U0441><U0435><U043D><U0442><U044F><U0431><U0440><U044F>";/
-        "<U043E><U043A><U0442><U044F><U0431><U0440><U044F>";/
-        "<U043D><U043E><U044F><U0431><U0440><U044F>";/
-        "<U0434><U0435><U043A><U0430><U0431><U0440><U044F>"
-ab_alt_mon "<U044F><U043D><U0432>";/
-        "<U0444><U0435><U0432>";/
-        "<U043C><U0430><U0440>";/
-        "<U0430><U043F><U0440>";/
-        "<U043C><U0430><U0439>";/
-        "<U0438><U044E><U043D>";/
-        "<U0438><U044E><U043B>";/
-        "<U0430><U0432><U0433>";/
-        "<U0441><U0435><U043D>";/
-        "<U043E><U043A><U0442>";/
-        "<U043D><U043E><U044F>";/
-        "<U0434><U0435><U043A>"
-abmon   "<U044F><U043D><U0432>";/
-        "<U0444><U0435><U0432>";/
-        "<U043C><U0430><U0440>";/
-        "<U0430><U043F><U0440>";/
-        "<U043C><U0430><U044F>";/
-        "<U0438><U044E><U043D>";/
-        "<U0438><U044E><U043B>";/
-        "<U0430><U0432><U0433>";/
-        "<U0441><U0435><U043D>";/
-        "<U043E><U043A><U0442>";/
-        "<U043D><U043E><U044F>";/
-        "<U0434><U0435><U043A>"
-d_t_fmt   "%a %d %b %Y %T"
-date_fmt  "%a %d %b %Y %T %Z"
-d_fmt     "%d.%m.%Y"
-t_fmt     "%T"
-am_pm     "";""
-t_fmt_ampm ""
-week 7;19971130;1
-first_weekday 2
-END LC_TIME
-
-LC_PAPER
-copy "i18n"
-END LC_PAPER
-
-LC_TELEPHONE
-tel_int_fmt    "+%c %a %l"
-int_prefix     "7"
-int_select     "0~10"
-END LC_TELEPHONE
-
-LC_MEASUREMENT
-copy "i18n"
-END LC_MEASUREMENT
-
-LC_NAME
-name_fmt    "%d%t%g%t%m%t%f"
-END LC_NAME
-
-LC_ADDRESS
-postal_fmt    "%f%N%a%N%d%N%b%N%s %h %e %r%N%z %T%N%c%N"
-country_name "<U0420><U043E><U0441><U0441><U0438><U044F>"
-country_ab2 "RU"
-country_ab3 "RUS"
-country_num 643
-country_car    "RUS"
-lang_name   "<U0440><U0443><U0441><U0441><U043A><U0438><U0439>"
-lang_ab      "ru"
-lang_term    "rus"
-lang_lib    "rus"
-END LC_ADDRESS
Index: sources/GNU/glibc/2.37/create-2.37-i18n-patch/glibc-2.37-new/localedata/locales/en_RU
===================================================================
--- sources/GNU/glibc/2.37/create-2.37-i18n-patch/glibc-2.37-new/localedata/locales/en_RU	(revision 393)
+++ sources/GNU/glibc/2.37/create-2.37-i18n-patch/glibc-2.37-new/localedata/locales/en_RU	(nonexistent)
@@ -1,167 +0,0 @@
-comment_char %
-escape_char  /
-
-% English Language Locale for Russia
-% Source: RADIX.PRO
-% Address: Russia, 193231, St. Petersburg, Solidarnosty av., 25-1-105
-% Contact: Andrey V.Kosteltsev
-% Email: kosteltsev@gmail.com
-% Tel: +7 (911) 970-91-61
-% Fax: +7 (911) 970-91-61
-% Language: en
-% Territory: RU
-% Revision: 1.0
-% Date: 2012-09-24
-% Application: general
-% Users: general
-% Charset: ISO-8859-5
-% Distribution and use is free, also
-% for commercial purposes.
-
-LC_IDENTIFICATION
-title      "English locale for Russia"
-source     "RADIX.PRO"
-address    "Russia, 193231, St. Petersburg, Solidarnosty av., 25-1-105"
-contact    ""
-email      "bug-glibc-locales@gnu.org"
-tel        ""
-fax        ""
-language   "English"
-territory  "Russia"
-revision   "1.0"
-date       "2016-07-29"
-%
-category  "i18n:2012";LC_IDENTIFICATION
-category  "i18n:2012";LC_CTYPE
-category  "i18n:2012";LC_COLLATE
-category  "i18n:2012";LC_TIME
-category  "i18n:2012";LC_NUMERIC
-category  "i18n:2012";LC_MONETARY
-category  "i18n:2012";LC_MESSAGES
-category  "i18n:2012";LC_PAPER
-category  "i18n:2012";LC_NAME
-category  "i18n:2012";LC_ADDRESS
-category  "i18n:2012";LC_TELEPHONE
-
-END LC_IDENTIFICATION
-
-LC_COLLATE
-% Copy the template from ISO/IEC 14651
-copy "iso14651_t1"
-END LC_COLLATE
-
-LC_CTYPE
-copy "i18n"
-
-translit_start
-include  "translit_combining";""
-translit_end
-END LC_CTYPE
-
-LC_MESSAGES
-yesexpr "<U005E><U005B><U0079><U0059><U005D><U002E><U002A>"
-noexpr  "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
-yesstr  "<U0059><U0065><U0073>"
-nostr   "<U004E><U006F>"
-END LC_MESSAGES
-
-LC_MONETARY
-int_curr_symbol           "<U0052><U0055><U0042><U0020>"
-currency_symbol           "<U0072><U0075><U0062>"
-mon_decimal_point         "<U002E>"
-mon_thousands_sep         "<U00A0>"
-mon_grouping              3;3
-positive_sign             ""
-negative_sign             "<U002D>"
-int_frac_digits           2
-frac_digits               2
-p_cs_precedes             0
-p_sep_by_space            1
-n_cs_precedes             0
-n_sep_by_space            1
-p_sign_posn               1
-n_sign_posn               1
-END LC_MONETARY
-
-LC_NUMERIC
-decimal_point             "<U002E>"
-thousands_sep             "<U00A0>"
-grouping                  3;3
-END LC_NUMERIC
-
-LC_TIME
-abday    "<U0053><U0075><U006E>";"<U004D><U006F><U006E>";/
-	 "<U0054><U0075><U0065>";"<U0057><U0065><U0064>";/
-	 "<U0054><U0068><U0075>";"<U0046><U0072><U0069>";/
-	 "<U0053><U0061><U0074>"
-day      "<U0053><U0075><U006E><U0064><U0061><U0079>";/
-	 "<U004D><U006F><U006E><U0064><U0061><U0079>";/
-	 "<U0054><U0075><U0065><U0073><U0064><U0061><U0079>";/
-	 "<U0057><U0065><U0064><U006E><U0065><U0073><U0064><U0061><U0079>";/
-	 "<U0054><U0068><U0075><U0072><U0073><U0064><U0061><U0079>";/
-	 "<U0046><U0072><U0069><U0064><U0061><U0079>";/
-	 "<U0053><U0061><U0074><U0075><U0072><U0064><U0061><U0079>"
-abmon    "<U004A><U0061><U006E>";"<U0046><U0065><U0062>";/
-	 "<U004D><U0061><U0072>";"<U0041><U0070><U0072>";/
-	 "<U004D><U0061><U0079>";"<U004A><U0075><U006E>";/
-	 "<U004A><U0075><U006C>";"<U0041><U0075><U0067>";/
-	 "<U0053><U0065><U0070>";"<U004F><U0063><U0074>";/
-	 "<U004E><U006F><U0076>";"<U0044><U0065><U0063>"
-mon      "<U004A><U0061><U006E><U0075><U0061><U0072><U0079>";/
-	 "<U0046><U0065><U0062><U0072><U0075><U0061><U0072><U0079>";/
-	 "<U004D><U0061><U0072><U0063><U0068>";/
-	 "<U0041><U0070><U0072><U0069><U006C>";/
-	 "<U004D><U0061><U0079>";/
-	 "<U004A><U0075><U006E><U0065>";/
-	 "<U004A><U0075><U006C><U0079>";/
-	 "<U0041><U0075><U0067><U0075><U0073><U0074>";/
-	 "<U0053><U0065><U0070><U0074><U0065><U006D><U0062><U0065><U0072>";/
-	 "<U004F><U0063><U0074><U006F><U0062><U0065><U0072>";/
-	 "<U004E><U006F><U0076><U0065><U006D><U0062><U0065><U0072>";/
-	 "<U0044><U0065><U0063><U0065><U006D><U0062><U0065><U0072>"
-d_t_fmt       "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062>/
-<U0020><U0025><U0059><U0020><U0025><U0054>"
-d_fmt         "<U0025><U0064><U002E><U0025><U006D><U002E><U0025><U0059>"
-t_fmt         "<U0025><U0054>"
-am_pm         "";""
-t_fmt_ampm    ""
-date_fmt      "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065>/
-<U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/
-<U0025><U005A><U0020><U0025><U0059>"
-week          7;19971130;4
-first_weekday 2
-first_workday 2
-END LC_TIME
-
-LC_PAPER
-height   297
-width    210
-END LC_PAPER
-
-LC_TELEPHONE
-tel_int_fmt    "<U002B><U0025><U0063><U0020><U0028><U0025><U0061><U0029>/
-<U0020><U0025><U006C>"
-int_prefix     "<U0037>"
-int_select     "<U0030><U007E><U0031><U0030>"
-END LC_TELEPHONE
-
-LC_MEASUREMENT
-% 1 for Metric system, 2 for US
-measurement    1
-END LC_MEASUREMENT
-
-LC_NAME
-name_fmt    "<U0025><U0064><U0025><U0074><U0025><U0067><U0025><U0074>/
-<U0025><U006D><U0025><U0074><U0025><U0066>"
-END LC_NAME
-
-LC_ADDRESS
-postal_fmt    "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
-<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/
-<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
-<U004E><U0025><U007A><U0020><U0025><U0054><U0025>/
-<U004E><U0025><U0063><U0025><U004E>"
-country_ab2 "<U0052><U0055>"
-country_ab3 "<U0052><U0055><U0053>"
-country_num 643
-END LC_ADDRESS
Index: sources/GNU/glibc/2.37/create-2.37-i18n-patch/glibc-2.37-new/localedata/SUPPORTED
===================================================================
--- sources/GNU/glibc/2.37/create-2.37-i18n-patch/glibc-2.37-new/localedata/SUPPORTED	(revision 393)
+++ sources/GNU/glibc/2.37/create-2.37-i18n-patch/glibc-2.37-new/localedata/SUPPORTED	(nonexistent)
@@ -1,501 +0,0 @@
-# This file names the currently supported and somewhat tested locales.
-# If you have any additions please file a glibc bug report.
-SUPPORTED-LOCALES=\
-aa_DJ.UTF-8/UTF-8 \
-aa_DJ/ISO-8859-1 \
-aa_ER/UTF-8 \
-aa_ER@saaho/UTF-8 \
-aa_ET/UTF-8 \
-af_ZA.UTF-8/UTF-8 \
-af_ZA/ISO-8859-1 \
-agr_PE/UTF-8 \
-ak_GH/UTF-8 \
-am_ET/UTF-8 \
-an_ES.UTF-8/UTF-8 \
-an_ES/ISO-8859-15 \
-anp_IN/UTF-8 \
-ar_AE.UTF-8/UTF-8 \
-ar_AE/ISO-8859-6 \
-ar_BH.UTF-8/UTF-8 \
-ar_BH/ISO-8859-6 \
-ar_DZ.UTF-8/UTF-8 \
-ar_DZ/ISO-8859-6 \
-ar_EG.UTF-8/UTF-8 \
-ar_EG/ISO-8859-6 \
-ar_IN/UTF-8 \
-ar_IQ.UTF-8/UTF-8 \
-ar_IQ/ISO-8859-6 \
-ar_JO.UTF-8/UTF-8 \
-ar_JO/ISO-8859-6 \
-ar_KW.UTF-8/UTF-8 \
-ar_KW/ISO-8859-6 \
-ar_LB.UTF-8/UTF-8 \
-ar_LB/ISO-8859-6 \
-ar_LY.UTF-8/UTF-8 \
-ar_LY/ISO-8859-6 \
-ar_MA.UTF-8/UTF-8 \
-ar_MA/ISO-8859-6 \
-ar_OM.UTF-8/UTF-8 \
-ar_OM/ISO-8859-6 \
-ar_QA.UTF-8/UTF-8 \
-ar_QA/ISO-8859-6 \
-ar_SA.UTF-8/UTF-8 \
-ar_SA/ISO-8859-6 \
-ar_SD.UTF-8/UTF-8 \
-ar_SD/ISO-8859-6 \
-ar_SS/UTF-8 \
-ar_SY.UTF-8/UTF-8 \
-ar_SY/ISO-8859-6 \
-ar_TN.UTF-8/UTF-8 \
-ar_TN/ISO-8859-6 \
-ar_YE.UTF-8/UTF-8 \
-ar_YE/ISO-8859-6 \
-ayc_PE/UTF-8 \
-az_AZ/UTF-8 \
-az_IR/UTF-8 \
-as_IN/UTF-8 \
-ast_ES.UTF-8/UTF-8 \
-ast_ES/ISO-8859-15 \
-be_BY.UTF-8/UTF-8 \
-be_BY/CP1251 \
-be_BY@latin/UTF-8 \
-bem_ZM/UTF-8 \
-ber_DZ/UTF-8 \
-ber_MA/UTF-8 \
-bg_BG.UTF-8/UTF-8 \
-bg_BG/CP1251 \
-bhb_IN.UTF-8/UTF-8 \
-bho_IN/UTF-8 \
-bho_NP/UTF-8 \
-bi_VU/UTF-8 \
-bn_BD/UTF-8 \
-bn_IN/UTF-8 \
-bo_CN/UTF-8 \
-bo_IN/UTF-8 \
-br_FR.UTF-8/UTF-8 \
-br_FR/ISO-8859-1 \
-br_FR@euro/ISO-8859-15 \
-brx_IN/UTF-8 \
-bs_BA.UTF-8/UTF-8 \
-bs_BA/ISO-8859-2 \
-byn_ER/UTF-8 \
-C.UTF-8/UTF-8 \
-ca_AD.UTF-8/UTF-8 \
-ca_AD/ISO-8859-15 \
-ca_ES.UTF-8/UTF-8 \
-ca_ES/ISO-8859-1 \
-ca_ES@euro/ISO-8859-15 \
-ca_ES@valencia/UTF-8 \
-ca_FR.UTF-8/UTF-8 \
-ca_FR/ISO-8859-15 \
-ca_IT.UTF-8/UTF-8 \
-ca_IT/ISO-8859-15 \
-ce_RU/UTF-8 \
-chr_US/UTF-8 \
-ckb_IQ/UTF-8 \
-cmn_TW/UTF-8 \
-crh_UA/UTF-8 \
-cs_CZ.UTF-8/UTF-8 \
-cs_CZ/ISO-8859-2 \
-csb_PL/UTF-8 \
-cv_RU/UTF-8 \
-cy_GB.UTF-8/UTF-8 \
-cy_GB/ISO-8859-14 \
-da_DK.UTF-8/UTF-8 \
-da_DK/ISO-8859-1 \
-de_AT.UTF-8/UTF-8 \
-de_AT/ISO-8859-1 \
-de_AT@euro/ISO-8859-15 \
-de_BE.UTF-8/UTF-8 \
-de_BE/ISO-8859-1 \
-de_BE@euro/ISO-8859-15 \
-de_CH.UTF-8/UTF-8 \
-de_CH/ISO-8859-1 \
-de_DE.UTF-8/UTF-8 \
-de_DE/ISO-8859-1 \
-de_DE@euro/ISO-8859-15 \
-de_IT.UTF-8/UTF-8 \
-de_IT/ISO-8859-1 \
-de_LI.UTF-8/UTF-8 \
-de_LU.UTF-8/UTF-8 \
-de_LU/ISO-8859-1 \
-de_LU@euro/ISO-8859-15 \
-doi_IN/UTF-8 \
-dsb_DE/UTF-8 \
-dv_MV/UTF-8 \
-dz_BT/UTF-8 \
-el_GR.UTF-8/UTF-8 \
-el_GR/ISO-8859-7 \
-el_GR@euro/ISO-8859-7 \
-el_CY.UTF-8/UTF-8 \
-el_CY/ISO-8859-7 \
-en_AG/UTF-8 \
-en_AU.UTF-8/UTF-8 \
-en_AU/ISO-8859-1 \
-en_BW.UTF-8/UTF-8 \
-en_BW/ISO-8859-1 \
-en_CA.UTF-8/UTF-8 \
-en_CA/ISO-8859-1 \
-en_DK.UTF-8/UTF-8 \
-en_DK/ISO-8859-1 \
-en_GB.UTF-8/UTF-8 \
-en_GB/ISO-8859-1 \
-en_HK.UTF-8/UTF-8 \
-en_HK/ISO-8859-1 \
-en_IE.UTF-8/UTF-8 \
-en_IE/ISO-8859-1 \
-en_IE@euro/ISO-8859-15 \
-en_IL/UTF-8 \
-en_IN/UTF-8 \
-en_NG/UTF-8 \
-en_NZ.UTF-8/UTF-8 \
-en_NZ/ISO-8859-1 \
-en_PH.UTF-8/UTF-8 \
-en_PH/ISO-8859-1 \
-en_RU.KOI8-R/KOI8-R \
-en_RU.UTF-8/UTF-8 \
-en_RU.CP1251/CP1251 \
-en_RU.ISO-8859-5/ISO-8859-5 \
-en_RU/ISO-8859-5 \
-en_SC.UTF-8/UTF-8 \
-en_SG.UTF-8/UTF-8 \
-en_SG/ISO-8859-1 \
-en_US.UTF-8/UTF-8 \
-en_US/ISO-8859-1 \
-en_ZA.UTF-8/UTF-8 \
-en_ZA/ISO-8859-1 \
-en_ZM/UTF-8 \
-en_ZW.UTF-8/UTF-8 \
-en_ZW/ISO-8859-1 \
-eo/UTF-8 \
-es_AR.UTF-8/UTF-8 \
-es_AR/ISO-8859-1 \
-es_BO.UTF-8/UTF-8 \
-es_BO/ISO-8859-1 \
-es_CL.UTF-8/UTF-8 \
-es_CL/ISO-8859-1 \
-es_CO.UTF-8/UTF-8 \
-es_CO/ISO-8859-1 \
-es_CR.UTF-8/UTF-8 \
-es_CR/ISO-8859-1 \
-es_CU/UTF-8 \
-es_DO.UTF-8/UTF-8 \
-es_DO/ISO-8859-1 \
-es_EC.UTF-8/UTF-8 \
-es_EC/ISO-8859-1 \
-es_ES.UTF-8/UTF-8 \
-es_ES/ISO-8859-1 \
-es_ES@euro/ISO-8859-15 \
-es_GT.UTF-8/UTF-8 \
-es_GT/ISO-8859-1 \
-es_HN.UTF-8/UTF-8 \
-es_HN/ISO-8859-1 \
-es_MX.UTF-8/UTF-8 \
-es_MX/ISO-8859-1 \
-es_NI.UTF-8/UTF-8 \
-es_NI/ISO-8859-1 \
-es_PA.UTF-8/UTF-8 \
-es_PA/ISO-8859-1 \
-es_PE.UTF-8/UTF-8 \
-es_PE/ISO-8859-1 \
-es_PR.UTF-8/UTF-8 \
-es_PR/ISO-8859-1 \
-es_PY.UTF-8/UTF-8 \
-es_PY/ISO-8859-1 \
-es_SV.UTF-8/UTF-8 \
-es_SV/ISO-8859-1 \
-es_US.UTF-8/UTF-8 \
-es_US/ISO-8859-1 \
-es_UY.UTF-8/UTF-8 \
-es_UY/ISO-8859-1 \
-es_VE.UTF-8/UTF-8 \
-es_VE/ISO-8859-1 \
-et_EE.UTF-8/UTF-8 \
-et_EE/ISO-8859-1 \
-et_EE.ISO-8859-15/ISO-8859-15 \
-eu_ES.UTF-8/UTF-8 \
-eu_ES/ISO-8859-1 \
-eu_ES@euro/ISO-8859-15 \
-fa_IR/UTF-8 \
-ff_SN/UTF-8 \
-fi_FI.UTF-8/UTF-8 \
-fi_FI/ISO-8859-1 \
-fi_FI@euro/ISO-8859-15 \
-fil_PH/UTF-8 \
-fo_FO.UTF-8/UTF-8 \
-fo_FO/ISO-8859-1 \
-fr_BE.UTF-8/UTF-8 \
-fr_BE/ISO-8859-1 \
-fr_BE@euro/ISO-8859-15 \
-fr_CA.UTF-8/UTF-8 \
-fr_CA/ISO-8859-1 \
-fr_CH.UTF-8/UTF-8 \
-fr_CH/ISO-8859-1 \
-fr_FR.UTF-8/UTF-8 \
-fr_FR/ISO-8859-1 \
-fr_FR@euro/ISO-8859-15 \
-fr_LU.UTF-8/UTF-8 \
-fr_LU/ISO-8859-1 \
-fr_LU@euro/ISO-8859-15 \
-fur_IT/UTF-8 \
-fy_NL/UTF-8 \
-fy_DE/UTF-8 \
-ga_IE.UTF-8/UTF-8 \
-ga_IE/ISO-8859-1 \
-ga_IE@euro/ISO-8859-15 \
-gd_GB.UTF-8/UTF-8 \
-gd_GB/ISO-8859-15 \
-gez_ER/UTF-8 \
-gez_ER@abegede/UTF-8 \
-gez_ET/UTF-8 \
-gez_ET@abegede/UTF-8 \
-gl_ES.UTF-8/UTF-8 \
-gl_ES/ISO-8859-1 \
-gl_ES@euro/ISO-8859-15 \
-gu_IN/UTF-8 \
-gv_GB.UTF-8/UTF-8 \
-gv_GB/ISO-8859-1 \
-ha_NG/UTF-8 \
-hak_TW/UTF-8 \
-he_IL.UTF-8/UTF-8 \
-he_IL/ISO-8859-8 \
-hi_IN/UTF-8 \
-hif_FJ/UTF-8 \
-hne_IN/UTF-8 \
-hr_HR.UTF-8/UTF-8 \
-hr_HR/ISO-8859-2 \
-hsb_DE/ISO-8859-2 \
-hsb_DE.UTF-8/UTF-8 \
-ht_HT/UTF-8 \
-hu_HU.UTF-8/UTF-8 \
-hu_HU/ISO-8859-2 \
-hy_AM/UTF-8 \
-hy_AM.ARMSCII-8/ARMSCII-8 \
-ia_FR/UTF-8 \
-id_ID.UTF-8/UTF-8 \
-id_ID/ISO-8859-1 \
-ig_NG/UTF-8 \
-ik_CA/UTF-8 \
-is_IS.UTF-8/UTF-8 \
-is_IS/ISO-8859-1 \
-it_CH.UTF-8/UTF-8 \
-it_CH/ISO-8859-1 \
-it_IT.UTF-8/UTF-8 \
-it_IT/ISO-8859-1 \
-it_IT@euro/ISO-8859-15 \
-iu_CA/UTF-8 \
-ja_JP.EUC-JP/EUC-JP \
-ja_JP.UTF-8/UTF-8 \
-ka_GE.UTF-8/UTF-8 \
-ka_GE/GEORGIAN-PS \
-kab_DZ/UTF-8 \
-kk_KZ.UTF-8/UTF-8 \
-kk_KZ/PT154 \
-kl_GL.UTF-8/UTF-8 \
-kl_GL/ISO-8859-1 \
-km_KH/UTF-8 \
-kn_IN/UTF-8 \
-ko_KR.EUC-KR/EUC-KR \
-ko_KR.UTF-8/UTF-8 \
-kok_IN/UTF-8 \
-ks_IN/UTF-8 \
-ks_IN@devanagari/UTF-8 \
-ku_TR.UTF-8/UTF-8 \
-ku_TR/ISO-8859-9 \
-kw_GB.UTF-8/UTF-8 \
-kw_GB/ISO-8859-1 \
-ky_KG/UTF-8 \
-lb_LU/UTF-8 \
-lg_UG.UTF-8/UTF-8 \
-lg_UG/ISO-8859-10 \
-li_BE/UTF-8 \
-li_NL/UTF-8 \
-lij_IT/UTF-8 \
-ln_CD/UTF-8 \
-lo_LA/UTF-8 \
-lt_LT.UTF-8/UTF-8 \
-lt_LT/ISO-8859-13 \
-lv_LV.UTF-8/UTF-8 \
-lv_LV/ISO-8859-13 \
-lzh_TW/UTF-8 \
-mag_IN/UTF-8 \
-mai_IN/UTF-8 \
-mai_NP/UTF-8 \
-mfe_MU/UTF-8 \
-mg_MG.UTF-8/UTF-8 \
-mg_MG/ISO-8859-15 \
-mhr_RU/UTF-8 \
-mi_NZ.UTF-8/UTF-8 \
-mi_NZ/ISO-8859-13 \
-miq_NI/UTF-8 \
-mjw_IN/UTF-8 \
-mk_MK.UTF-8/UTF-8 \
-mk_MK/ISO-8859-5 \
-ml_IN/UTF-8 \
-mn_MN/UTF-8 \
-mni_IN/UTF-8 \
-mnw_MM/UTF-8 \
-mr_IN/UTF-8 \
-ms_MY.UTF-8/UTF-8 \
-ms_MY/ISO-8859-1 \
-mt_MT.UTF-8/UTF-8 \
-mt_MT/ISO-8859-3 \
-my_MM/UTF-8 \
-nan_TW/UTF-8 \
-nan_TW@latin/UTF-8 \
-nb_NO.UTF-8/UTF-8 \
-nb_NO/ISO-8859-1 \
-nds_DE/UTF-8 \
-nds_NL/UTF-8 \
-ne_NP/UTF-8 \
-nhn_MX/UTF-8 \
-niu_NU/UTF-8 \
-niu_NZ/UTF-8 \
-nl_AW/UTF-8 \
-nl_BE.UTF-8/UTF-8 \
-nl_BE/ISO-8859-1 \
-nl_BE@euro/ISO-8859-15 \
-nl_NL.UTF-8/UTF-8 \
-nl_NL/ISO-8859-1 \
-nl_NL@euro/ISO-8859-15 \
-nn_NO.UTF-8/UTF-8 \
-nn_NO/ISO-8859-1 \
-nr_ZA/UTF-8 \
-nso_ZA/UTF-8 \
-oc_FR.UTF-8/UTF-8 \
-oc_FR/ISO-8859-1 \
-om_ET/UTF-8 \
-om_KE.UTF-8/UTF-8 \
-om_KE/ISO-8859-1 \
-or_IN/UTF-8 \
-os_RU/UTF-8 \
-pa_IN/UTF-8 \
-pa_PK/UTF-8 \
-pap_AW/UTF-8 \
-pap_CW/UTF-8 \
-pl_PL.UTF-8/UTF-8 \
-pl_PL/ISO-8859-2 \
-ps_AF/UTF-8 \
-pt_BR.UTF-8/UTF-8 \
-pt_BR/ISO-8859-1 \
-pt_PT.UTF-8/UTF-8 \
-pt_PT/ISO-8859-1 \
-pt_PT@euro/ISO-8859-15 \
-quz_PE/UTF-8 \
-raj_IN/UTF-8 \
-rif_MA/UTF-8 \
-ro_RO.UTF-8/UTF-8 \
-ro_RO/ISO-8859-2 \
-ru_RU.KOI8-R/KOI8-R \
-ru_RU.UTF-8/UTF-8 \
-ru_RU.CP1251/CP1251 \
-ru_RU.ISO-8859-5/ISO-8859-5 \
-ru_RU/ISO-8859-5 \
-ru_UA.UTF-8/UTF-8 \
-ru_UA/KOI8-U \
-rw_RW/UTF-8 \
-sa_IN/UTF-8 \
-sah_RU/UTF-8 \
-sat_IN/UTF-8 \
-sc_IT/UTF-8 \
-sd_IN/UTF-8 \
-sd_IN@devanagari/UTF-8 \
-se_NO/UTF-8 \
-sgs_LT/UTF-8 \
-shn_MM/UTF-8 \
-shs_CA/UTF-8 \
-si_LK/UTF-8 \
-sid_ET/UTF-8 \
-sk_SK.UTF-8/UTF-8 \
-sk_SK/ISO-8859-2 \
-sl_SI.UTF-8/UTF-8 \
-sl_SI/ISO-8859-2 \
-sm_WS/UTF-8 \
-so_DJ.UTF-8/UTF-8 \
-so_DJ/ISO-8859-1 \
-so_ET/UTF-8 \
-so_KE.UTF-8/UTF-8 \
-so_KE/ISO-8859-1 \
-so_SO.UTF-8/UTF-8 \
-so_SO/ISO-8859-1 \
-sq_AL.UTF-8/UTF-8 \
-sq_AL/ISO-8859-1 \
-sq_MK/UTF-8 \
-sr_ME/UTF-8 \
-sr_RS/UTF-8 \
-sr_RS@latin/UTF-8 \
-ss_ZA/UTF-8 \
-st_ZA.UTF-8/UTF-8 \
-st_ZA/ISO-8859-1 \
-sv_FI.UTF-8/UTF-8 \
-sv_FI/ISO-8859-1 \
-sv_FI@euro/ISO-8859-15 \
-sv_SE.UTF-8/UTF-8 \
-sv_SE/ISO-8859-1 \
-sw_KE/UTF-8 \
-sw_TZ/UTF-8 \
-syr/UTF-8 \
-szl_PL/UTF-8 \
-ta_IN/UTF-8 \
-ta_LK/UTF-8 \
-tcy_IN.UTF-8/UTF-8 \
-te_IN/UTF-8 \
-tg_TJ.UTF-8/UTF-8 \
-tg_TJ/KOI8-T \
-th_TH.UTF-8/UTF-8 \
-th_TH/TIS-620 \
-the_NP/UTF-8 \
-ti_ER/UTF-8 \
-ti_ET/UTF-8 \
-tig_ER/UTF-8 \
-tk_TM/UTF-8 \
-tl_PH.UTF-8/UTF-8 \
-tl_PH/ISO-8859-1 \
-tn_ZA/UTF-8 \
-to_TO/UTF-8 \
-tpi_PG/UTF-8 \
-tr_CY.UTF-8/UTF-8 \
-tr_CY/ISO-8859-9 \
-tr_TR.UTF-8/UTF-8 \
-tr_TR/ISO-8859-9 \
-ts_ZA/UTF-8 \
-tt_RU/UTF-8 \
-tt_RU@iqtelif/UTF-8 \
-ug_CN/UTF-8 \
-uk_UA.UTF-8/UTF-8 \
-uk_UA/KOI8-U \
-unm_US/UTF-8 \
-ur_IN/UTF-8 \
-ur_PK/UTF-8 \
-uz_UZ.UTF-8/UTF-8 \
-uz_UZ/ISO-8859-1 \
-uz_UZ@cyrillic/UTF-8 \
-ve_ZA/UTF-8 \
-vi_VN/UTF-8 \
-wa_BE/ISO-8859-1 \
-wa_BE@euro/ISO-8859-15 \
-wa_BE.UTF-8/UTF-8 \
-wae_CH/UTF-8 \
-wal_ET/UTF-8 \
-wo_SN/UTF-8 \
-xh_ZA.UTF-8/UTF-8 \
-xh_ZA/ISO-8859-1 \
-yi_US.UTF-8/UTF-8 \
-yi_US/CP1255 \
-yo_NG/UTF-8 \
-yue_HK/UTF-8 \
-yuw_PG/UTF-8 \
-zh_CN.GB18030/GB18030 \
-zh_CN.GBK/GBK \
-zh_CN.UTF-8/UTF-8 \
-zh_CN/GB2312 \
-zh_HK.UTF-8/UTF-8 \
-zh_HK/BIG5-HKSCS \
-zh_SG.UTF-8/UTF-8 \
-zh_SG.GBK/GBK \
-zh_SG/GB2312 \
-zh_TW.EUC-TW/EUC-TW \
-zh_TW.UTF-8/UTF-8 \
-zh_TW/BIG5 \
-zu_ZA.UTF-8/UTF-8 \
-zu_ZA/ISO-8859-1 \
Index: sources/GNU/glibc/2.37/create-2.37-x86_64-interpreter-patch/file.list
===================================================================
--- sources/GNU/glibc/2.37/create-2.37-x86_64-interpreter-patch/file.list	(revision 393)
+++ sources/GNU/glibc/2.37/create-2.37-x86_64-interpreter-patch/file.list	(nonexistent)
@@ -1 +0,0 @@
-glibc-2.37/sysdeps/unix/sysv/linux/x86_64/ldd-rewrite.sed
Index: sources/GNU/glibc/2.37/create-2.37-x86_64-interpreter-patch/create.patch.sh
===================================================================
--- sources/GNU/glibc/2.37/create-2.37-x86_64-interpreter-patch/create.patch.sh	(revision 393)
+++ sources/GNU/glibc/2.37/create-2.37-x86_64-interpreter-patch/create.patch.sh	(nonexistent)
@@ -1,15 +0,0 @@
-#!/bin/bash
-
-VERSION=2.37
-
-tar --files-from=file.list -xJvf ../glibc-$VERSION.tar.xz
-mv glibc-$VERSION glibc-$VERSION-orig
-
-cp -rf ./glibc-$VERSION-new ./glibc-$VERSION
-
-diff --unified -Nr  glibc-$VERSION-orig  glibc-$VERSION > glibc-$VERSION-x86_64-interpreter.patch
-
-mv glibc-$VERSION-x86_64-interpreter.patch ../patches
-
-rm -rf ./glibc-$VERSION
-rm -rf ./glibc-$VERSION-orig

Property changes on: sources/GNU/glibc/2.37/create-2.37-x86_64-interpreter-patch/create.patch.sh
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: sources/GNU/glibc/2.37/create-2.37-x86_64-interpreter-patch/glibc-2.37-new/sysdeps/unix/sysv/linux/x86_64/ldd-rewrite.sed
===================================================================
--- sources/GNU/glibc/2.37/create-2.37-x86_64-interpreter-patch/glibc-2.37-new/sysdeps/unix/sysv/linux/x86_64/ldd-rewrite.sed	(revision 393)
+++ sources/GNU/glibc/2.37/create-2.37-x86_64-interpreter-patch/glibc-2.37-new/sysdeps/unix/sysv/linux/x86_64/ldd-rewrite.sed	(nonexistent)
@@ -1 +0,0 @@
-s_^\(RTLDLIST=\)\(.*lib\)\(\|64\|32\|x32\)\(/ld-linux\)\(\|-x86-64\|-x32\)\(\.so\.[0-9.]*\)[ 	]*$_\1"\2\4-x86-64\6 \232\4\6 \2x32\4-x32\6"_
Index: sources/GNU/glibc/2.37/create-2.37-locale-no-archive-patch/file.list
===================================================================
--- sources/GNU/glibc/2.37/create-2.37-locale-no-archive-patch/file.list	(revision 393)
+++ sources/GNU/glibc/2.37/create-2.37-locale-no-archive-patch/file.list	(nonexistent)
@@ -1 +0,0 @@
-glibc-2.37/localedata/Makefile
Index: sources/GNU/glibc/2.37/create-2.37-locale-no-archive-patch/create.patch.sh
===================================================================
--- sources/GNU/glibc/2.37/create-2.37-locale-no-archive-patch/create.patch.sh	(revision 393)
+++ sources/GNU/glibc/2.37/create-2.37-locale-no-archive-patch/create.patch.sh	(nonexistent)
@@ -1,15 +0,0 @@
-#!/bin/bash
-
-VERSION=2.37
-
-tar --files-from=file.list -xJvf ../glibc-$VERSION.tar.xz
-mv glibc-$VERSION glibc-$VERSION-orig
-
-cp -rf ./glibc-$VERSION-new ./glibc-$VERSION
-
-diff --unified -Nr  glibc-$VERSION-orig  glibc-$VERSION > glibc-$VERSION-locale-no-archive.patch
-
-mv glibc-$VERSION-locale-no-archive.patch ../patches
-
-rm -rf ./glibc-$VERSION
-rm -rf ./glibc-$VERSION-orig

Property changes on: sources/GNU/glibc/2.37/create-2.37-locale-no-archive-patch/create.patch.sh
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: sources/GNU/glibc/2.37/create-2.37-locale-no-archive-patch/glibc-2.37-new/localedata/Makefile
===================================================================
--- sources/GNU/glibc/2.37/create-2.37-locale-no-archive-patch/glibc-2.37-new/localedata/Makefile	(revision 393)
+++ sources/GNU/glibc/2.37/create-2.37-locale-no-archive-patch/glibc-2.37-new/localedata/Makefile	(nonexistent)
@@ -1,496 +0,0 @@
-# Copyright (C) 1996-2023 Free Software Foundation, Inc.
-# This file is part of the GNU C Library.
-
-# The GNU C Library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-
-# The GNU C Library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-
-# You should have received a copy of the GNU Lesser General Public
-# License along with the GNU C Library; if not, see
-# <https://www.gnu.org/licenses/>.
-
-# Makefile for installing locale data source files.
-
-subdir := localedata
-
-include ../Makeconfig
-
-# List with all available character set descriptions.
-charmaps := $(wildcard charmaps/[A-I]*) $(wildcard charmaps/[J-Z]*)
-
-# List with all available character set descriptions.
-locales := $(wildcard locales/*)
-
-
-subdir-dirs = tests-mbwc
-vpath %.c tests-mbwc
-vpath %.h tests-mbwc
-
-
-test-srcs := collate-test xfrm-test tst-fmon tst-rpmatch tst-trans \
-	     tst-ctype tst-langinfo-newlocale tst-langinfo-setlocale \
-	     tst-langinfo-newlocale-static tst-langinfo-setlocale-static \
-	     tst-numeric
-# List of test input files (list sorted alphabetically):
-test-input := \
-	am_ET.UTF-8 \
-	az_AZ.UTF-8 \
-	be_BY.UTF-8 \
-	ber_DZ.UTF-8 \
-	ber_MA.UTF-8 \
-	bg_BG.UTF-8 \
-	br_FR.UTF-8 \
-	bs_BA.UTF-8 \
-	C.UTF-8 \
-	ckb_IQ.UTF-8 \
-	cmn_TW.UTF-8 \
-	crh_UA.UTF-8 \
-	cs_CZ.UTF-8 \
-	csb_PL.UTF-8 \
-	cv_RU.UTF-8 \
-	cy_GB.UTF-8 \
-	da_DK.ISO-8859-1 \
-	de_DE.ISO-8859-1 \
-	dsb_DE.UTF-8 \
-	dz_BT.UTF-8 \
-	en_US.ISO-8859-1 \
-	en_US.UTF-8 \
-	eo.UTF-8 \
-	es_ES.UTF-8 \
-	et_EE.UTF-8 \
-	fa_IR.UTF-8 \
-	fi_FI.UTF-8 \
-	fil_PH.UTF-8 \
-	fr_CA.UTF-8 \
-	fr_FR.UTF-8 \
-	fur_IT.UTF-8 \
-	gez_ER.UTF-8@abegede \
-	ha_NG.UTF-8 \
-	hr_HR.ISO-8859-2 \
-	hr_HR.UTF-8 \
-	hsb_DE.UTF-8 \
-	hu_HU.UTF-8 \
-	ig_NG.UTF-8 \
-	ik_CA.UTF-8 \
-	is_IS.UTF-8 \
-	kk_KZ.UTF-8 \
-	ku_TR.UTF-8 \
-	ky_KG.UTF-8 \
-	ln_CD.UTF-8 \
-	lt_LT.UTF-8 \
-	lv_LV.UTF-8 \
-	mi_NZ.UTF-8 \
-	ml_IN.UTF-8 \
-	mn_MN.UTF-8 \
-	mr_IN.UTF-8 \
-	mt_MT.UTF-8 \
-	nan_TW.UTF-8@latin \
-	nb_NO.UTF-8 \
-	om_KE.UTF-8 \
-	or_IN.UTF-8 \
-	os_RU.UTF-8 \
-	pl_PL.UTF-8 \
-	ps_AF.UTF-8 \
-	rif_MA.UTF-8 \
-	ro_RO.UTF-8 \
-	ru_RU.UTF-8 \
-	sah_RU.UTF-8 \
-	sc_IT.UTF-8 \
-	se_NO.UTF-8 \
-	si_LK.UTF-8 \
-	sq_AL.UTF-8 \
-	sr_RS.UTF-8 \
-	sv_SE.ISO-8859-1 \
-	sv_SE.UTF-8 \
-	syr.UTF-8 \
-	szl_PL.UTF-8 \
-	tg_TJ.UTF-8 \
-	tk_TM.UTF-8 \
-	tr_TR.UTF-8 \
-	tt_RU.UTF-8 \
-	tt_RU.UTF-8@iqtelif \
-	ug_CN.UTF-8 \
-	uk_UA.UTF-8 \
-	uz_UZ.UTF-8 \
-	vi_VN.UTF-8 \
-	yi_US.UTF-8 \
-	yo_NG.UTF-8 \
-	zh_CN.UTF-8 \
-	$(NULL)
-
-test-input-data = $(addsuffix .in, $(test-input))
-test-output := $(foreach s, .out .xout, \
-			 $(addsuffix $s, $(basename $(test-input))))
-ld-test-names := test1 test2 test3 test4 test5 test6 test7
-ld-test-srcs := $(addprefix tests/,$(addsuffix .cm,$(ld-test-names)) \
-				   $(addsuffix .def,$(ld-test-names)) \
-				   $(addsuffix .ds,test5 test6) \
-				   test6.c trans.def)
-
-fmon-tests = n01y12 n02n40 n10y31 n11y41 n12y11 n20n32 n30y20 n41n00 \
-	     y01y10 y02n22 y22n42 y30y21 y32n31 y40y00 y42n21
-
-generated += $(test-input) $(test-output) sort-test.out tst-locale.out \
-	     tst-leaks.mtrace mtrace-tst-leaks.out
-generated-dirs += $(ld-test-names) tt_TT de_DE.437			\
-		  $(addprefix tstfmon_,$(fmon-tests))			\
-
-ifeq ($(run-built-tests),yes)
-locale_test_suite := tst_iswalnum tst_iswalpha tst_iswcntrl            \
-		     tst_iswctype tst_iswdigit tst_iswgraph            \
-		     tst_iswlower tst_iswprint tst_iswpunct            \
-		     tst_iswspace tst_iswupper tst_iswxdigit tst_mblen \
-		     tst_mbrlen tst_mbrtowc tst_mbsrtowcs tst_mbstowcs \
-		     tst_mbtowc tst_strcoll tst_strfmon tst_strxfrm    \
-		     tst_swscanf tst_towctrans tst_towlower            \
-		     tst_towupper tst_wcrtomb tst_wcscat tst_wcschr    \
-		     tst_wcscmp tst_wcscoll tst_wcscpy tst_wcscspn     \
-		     tst_wcslen tst_wcsncat tst_wcsncmp tst_wcsncpy    \
-		     tst_wcspbrk tst_wcsrtombs tst_wcsspn tst_wcsstr   \
-		     tst_wcstod tst_wcstok tst_wcstombs tst_wcswidth   \
-		     tst_wcsxfrm tst_wctob tst_wctomb tst_wctrans      \
-		     tst_wctype tst_wcwidth
-
-tests = \
-  $(locale_test_suite) \
-  bug-iconv-trans \
-  bug-setlocale1 \
-  bug-usesetlocale \
-  tst-c-utf8-consistency \
-  tst-digits \
-  tst-iconv-math-trans \
-  tst-leaks \
-  tst-mbswcs1 \
-  tst-mbswcs2 \
-  tst-mbswcs3 \
-  tst-mbswcs4 \
-  tst-mbswcs5 \
-  tst-mbswcs6 \
-  tst-setlocale \
-  tst-setlocale2 \
-  tst-setlocale3 \
-  tst-sscanf \
-  tst-strfmon1 \
-  tst-wctype \
-  tst-xlocale1 \
-  tst-xlocale2 \
-  # tests
-
-tests-static = bug-setlocale1-static
-tests += $(tests-static)
-ifeq (yes,$(build-shared))
-ifneq (no,$(PERL))
-tests-special += $(objpfx)mtrace-tst-leaks.out
-endif
-endif
-endif
-tests-container = \
-			tst-localedef-hardlinks
-
-# Files to install.
-ifeq ($(INSTALL_UNCOMPRESSED),yes)
-# This option is for testing inside the testroot container, as the
-# container does not include a working gunzip program.
-install-others := $(addprefix $(inst_i18ndir)/, \
-			      $(charmaps) \
-			      $(locales))
-else
-install-others := $(addprefix $(inst_i18ndir)/, \
-			      $(addsuffix .gz, $(charmaps)) \
-			      $(locales))
-endif
-
-tests: $(objdir)/iconvdata/gconv-modules
-
-tests-static += tst-langinfo-newlocale-static tst-langinfo-setlocale-static
-
-ifeq ($(run-built-tests),yes)
-tests-special += $(objpfx)sort-test.out $(objpfx)tst-fmon.out \
-		 $(objpfx)tst-locale.out $(objpfx)tst-rpmatch.out \
-		 $(objpfx)tst-trans.out $(objpfx)tst-ctype.out \
-		 $(objpfx)tst-langinfo-newlocale.out \
-		 $(objpfx)tst-langinfo-setlocale.out \
-		 $(objpfx)tst-langinfo-newlocale-static.out \
-		 $(objpfx)tst-langinfo-setlocale-static.out \
-		 $(objpfx)tst-numeric.out
-# We have to generate locales (list sorted alphabetically)
-LOCALES := \
-	am_ET.UTF-8 \
-	az_AZ.UTF-8 \
-	be_BY.UTF-8 \
-	ber_DZ.UTF-8 \
-	ber_MA.UTF-8 \
-	bg_BG.UTF-8 \
-	br_FR.UTF-8 \
-	bs_BA.UTF-8 \
-	C.UTF-8 \
-	ckb_IQ.UTF-8 \
-	cmn_TW.UTF-8 \
-	crh_UA.UTF-8 \
-	cs_CZ.UTF-8 \
-	csb_PL.UTF-8 \
-	cv_RU.UTF-8 \
-	cy_GB.UTF-8 \
-	da_DK.ISO-8859-1 \
-	de_DE.ISO-8859-1 \
-	de_DE.UTF-8 \
-	dsb_DE.UTF-8 \
-	dz_BT.UTF-8 \
-	en_GB.UTF-8 \
-	en_US.ANSI_X3.4-1968 \
-	en_US.ISO-8859-1\
-	en_US.UTF-8 \
-	eo.UTF-8 \
-	es_ES.UTF-8 \
-	et_EE.UTF-8 \
-	fa_IR.UTF-8 \
-	fi_FI.UTF-8 \
-	fil_PH.UTF-8 \
-	fr_CA.UTF-8 \
-	fr_FR.ISO-8859-1 \
-	fr_FR.UTF-8 \
-	fur_IT.UTF-8 \
-	gez_ER.UTF-8@abegede \
-	ha_NG.UTF-8 \
-	hr_HR.ISO-8859-2 \
-	hr_HR.UTF-8 \
-	hsb_DE.UTF-8 \
-	hu_HU.UTF-8 \
-	ig_NG.UTF-8 \
-	ik_CA.UTF-8 \
-	is_IS.UTF-8 \
-	ja_JP.EUC-JP \
-	ja_JP.SJIS \
-	ja_JP.UTF-8 \
-	kk_KZ.UTF-8 \
-	ku_TR.UTF-8 \
-	ky_KG.UTF-8 \
-	ln_CD.UTF-8 \
-	lt_LT.UTF-8 \
-	lv_LV.UTF-8 \
-	mi_NZ.UTF-8 \
-	ml_IN.UTF-8 \
-	mn_MN.UTF-8 \
-	mr_IN.UTF-8 \
-	mt_MT.UTF-8 \
-	nan_TW.UTF-8@latin \
-	nb_NO.ISO-8859-1 \
-	nb_NO.UTF-8 \
-	nl_NL.UTF-8 \
-	nn_NO.ISO-8859-1 \
-	om_KE.UTF-8 \
-	or_IN.UTF-8 \
-	os_RU.UTF-8 \
-	pl_PL.UTF-8 \
-	ps_AF.UTF-8 \
-	rif_MA.UTF-8 \
-	ro_RO.UTF-8 \
-	ru_RU.UTF-8 \
-	sah_RU.UTF-8 \
-	sc_IT.UTF-8 \
-	se_NO.UTF-8 \
-	si_LK.UTF-8 \
-	sq_AL.UTF-8 \
-	sr_RS.UTF-8 \
-	sv_SE.ISO-8859-1 \
-	sv_SE.UTF-8 \
-	syr.UTF-8 \
-	szl_PL.UTF-8 \
-	tg_TJ.UTF-8 \
-	tk_TM.UTF-8 \
-	tr_TR.ISO-8859-9 \
-	tr_TR.UTF-8 \
-	tt_RU.UTF-8 \
-	tt_RU.UTF-8@iqtelif \
-	ug_CN.UTF-8 \
-	uk_UA.UTF-8 \
-	uz_UZ.UTF-8 \
-	vi_VN.UTF-8 \
-	yi_US.UTF-8 \
-	yo_NG.UTF-8 \
-	zh_CN.UTF-8 \
-	zh_TW.EUC-TW \
-	$(NULL)
-
-include ../gen-locales.mk
-
-$(objpfx)tst-iconv-math-trans.out: $(gen-locales)
-endif
-
-include ../Rules
-
-ifeq ($(INSTALL_UNCOMPRESSED),yes)
-# Install the charmap files as-is.  This option is for testing inside
-# the testroot container, as the container does not include a working
-# gunzip program.
-$(inst_i18ndir)/charmaps/%: charmaps/% $(+force)
-	$(make-target-directory)
-	rm -f $@
-	$(INSTALL_DATA) $< $@
-else
-# Install the charmap files in gzipped format.
-$(inst_i18ndir)/charmaps/%.gz: charmaps/% $(+force)
-	$(make-target-directory)
-	rm -f $(@:.gz=) $@
-	$(INSTALL_DATA) $< $(@:.gz=)
-	gzip -9n $(@:.gz=)
-endif
-
-# Install the locale source files in the appropriate directory.
-$(inst_i18ndir)/locales/%: locales/% $(+force); $(do-install)
-
-ifeq ($(run-built-tests),yes)
-generated-dirs += $(LOCALES)
-
-$(addsuffix .out,$(addprefix $(objpfx),$(tests))): %: \
-  $(addprefix $(objpfx),$(CTYPE_FILES))
-
-$(objpfx)sort-test.out: sort-test.sh $(objpfx)collate-test $(objpfx)xfrm-test \
-		       $(test-input-data) $(addprefix $(objpfx),$(CTYPE_FILES))
-	$(SHELL) $< $(common-objpfx) '$(test-program-prefix-before-env)' \
-	  '$(run-program-env)' '$(test-program-prefix-after-env)' \
-	  $(test-input) \
-	  > $@; \
-	$(evaluate-test)
-$(objpfx)tst-fmon.out: tst-fmon.sh $(objpfx)tst-fmon tst-fmon.data \
-		       $(objpfx)sort-test.out \
-		       $(addprefix $(objpfx),$(CTYPE_FILES))
-	$(SHELL) $< $(common-objpfx) '$(run-program-prefix-before-env)' \
-		 '$(run-program-env)' '$(run-program-prefix-after-env)' \
-		 '$(test-program-prefix)' tst-fmon.data \
-	  > $@; \
-	$(evaluate-test)
-$(objpfx)tst-numeric.out: tst-numeric.sh $(objpfx)tst-numeric tst-numeric.data \
-		       $(objpfx)sort-test.out \
-		       $(addprefix $(objpfx),$(CTYPE_FILES))
-	$(SHELL) $< $(common-objpfx) '$(test-program-prefix)' tst-numeric.data \
-	  > $@; \
-	$(evaluate-test)
-$(objpfx)tst-locale.out: tst-locale.sh $(common-objpfx)locale/localedef \
-			 $(ld-test-srcs) $(addprefix $(objpfx),$(CTYPE_FILES))
-	$(SHELL) $< $(common-objpfx) '$(built-program-cmd-before-env)' \
-		 '$(run-program-env)' '$(built-program-cmd-after-env)' > $@; \
-	$(evaluate-test)
-$(objpfx)tst-rpmatch.out: tst-rpmatch.sh $(objpfx)tst-rpmatch \
-			  $(objpfx)tst-fmon.out \
-			  $(addprefix $(objpfx),$(CTYPE_FILES))
-	$(SHELL) $< $(common-objpfx) '$(test-program-cmd)' > $@; \
-	$(evaluate-test)
-$(objpfx)tst-trans.out: tst-trans.sh $(objpfx)tst-trans \
-			$(addprefix $(objpfx),$(CTYPE_FILES))
-	$(SHELL) $< $(common-objpfx) '$(run-program-prefix-before-env)' \
-		 '$(run-program-env)' '$(run-program-prefix-after-env)' \
-		 '$(test-program-prefix-before-env)' \
-		 '$(test-program-prefix-after-env)'; \
-	$(evaluate-test)
-$(objpfx)tst-ctype.out: tst-ctype.sh $(objpfx)tst-ctype \
-			$(objpfx)sort-test.out \
-			$(addprefix $(objpfx),$(CTYPE_FILES))
-	$(SHELL) $< $(common-objpfx) '$(test-program-cmd-before-env)' \
-		 '$(run-program-env)' '$(test-program-cmd-after-env)'; \
-	$(evaluate-test)
-$(objpfx)tst-langinfo-newlocale.out: tst-langinfo.sh \
-			$(objpfx)tst-langinfo-newlocale \
-			$(objpfx)sort-test.out \
-			$(addprefix $(objpfx),$(CTYPE_FILES))
-	$(SHELL) $< $(common-objpfx) '$(test-program-cmd-before-env)' \
-		 '$(run-program-env)' '$(test-program-cmd-after-env)' > $@; \
-	$(evaluate-test)
-$(objpfx)tst-langinfo-newlocale-static.out: tst-langinfo.sh \
-			$(objpfx)tst-langinfo-newlocale-static \
-			$(objpfx)sort-test.out \
-			$(addprefix $(objpfx),$(CTYPE_FILES))
-	$(SHELL) $< $(common-objpfx) '$(test-program-cmd-before-env)' \
-		 '$(run-program-env)' '$(test-program-cmd-after-env)' > $@; \
-	$(evaluate-test)
-# Static use of newlocale is known not to work. See Bug 23164.
-test-xfail-tst-langinfo-newlocale-static = yes
-
-$(objpfx)tst-langinfo-setlocale.out: tst-langinfo.sh \
-			$(objpfx)tst-langinfo-setlocale \
-			$(objpfx)sort-test.out \
-			$(addprefix $(objpfx),$(CTYPE_FILES))
-	$(SHELL) $< $(common-objpfx) '$(test-program-cmd-before-env)' \
-		 '$(run-program-env)' '$(test-program-cmd-after-env)' > $@; \
-	$(evaluate-test)
-$(objpfx)tst-langinfo-setlocale-static.out: tst-langinfo.sh \
-			$(objpfx)tst-langinfo-setlocale-static \
-			$(objpfx)sort-test.out \
-			$(addprefix $(objpfx),$(CTYPE_FILES))
-	$(SHELL) $< $(common-objpfx) '$(test-program-cmd-before-env)' \
-		 '$(run-program-env)' '$(test-program-cmd-after-env)' > $@; \
-	$(evaluate-test)
-
-$(objpfx)tst-digits.out: $(objpfx)tst-locale.out
-$(objpfx)tst-mbswcs6.out: $(addprefix $(objpfx),$(CTYPE_FILES))
-endif
-
-include SUPPORTED
-
-INSTALL-SUPPORTED-LOCALE-ARCHIVE=$(addprefix install-archive-, $(SUPPORTED-LOCALES))
-INSTALL-SUPPORTED-LOCALE-FILES=$(addprefix install-files-, $(SUPPORTED-LOCALES))
-
-# Sometimes the whole collection of locale files should be installed.
-LOCALEDEF=I18NPATH=. GCONV_PATH=$(common-objpfx)iconvdata LC_ALL=C \
-$(rtld-prefix) $(common-objpfx)locale/localedef
-install-locales: install-locale-archive
-
-# Create and install the locale-archive file.
-install-locale-archive: $(INSTALL-SUPPORTED-LOCALE-ARCHIVE)
-# Create and install the locales individually (no archive).
-install-locale-files: $(INSTALL-SUPPORTED-LOCALE-FILES)
-
-install-locales-dir:
-	$(..)./scripts/mkinstalldirs $(inst_complocaledir)
-
-# The SHIFT_JIS and SHIFT_JISX0213 character maps are not ASCII compatible,
-# therefore we have to use --no-warnings=ascii to disable the ASCII check.
-# See localedata/gen-locale.sh for the same logic.
-define build-one-locale
-	locale=`echo $@ | sed -e 's/^install-[a-z]*-//'`; \
-	charset=`echo $$locale | sed -e 's,.*/,,'`; \
-	locale=`echo $$locale | sed -e 's,/[^/]*,,'`; \
-	if [ "$$charset" = 'SHIFT_JIS' ] \
-	   || [ "$$charset" = 'SHIFT_JISX0213' ]; then \
-	   flags="$$flags --no-warnings=ascii"; \
-	fi; \
-	echo -n `echo $$locale | sed 's/\([^.\@]*\).*/\1/'`; \
-	echo -n ".$$charset"; \
-	echo -n `echo $$locale | sed 's/\([^\@]*\)\(\@.*\)*/\2/'`; \
-	echo -n '...'; \
-	input=`echo $$locale | sed 's/\([^.]*\)[^@]*\(.*\)/\1\2/'`; \
-	$(LOCALEDEF) $$flags --alias-file=../intl/locale.alias \
-		     --no-archive \
-		     -i locales/$$input -f charmaps/$$charset \
-		     $(addprefix --prefix=,$(install_root)) $$locale \
-	&& echo ' done';
-endef
-
-$(INSTALL-SUPPORTED-LOCALE-ARCHIVE): install-locales-dir
-	@flags=""; \
-	$(build-one-locale)
-
-$(INSTALL-SUPPORTED-LOCALE-FILES): install-locales-dir
-	@flags="--no-archive --no-hard-links"; \
-	$(build-one-locale)
-
-tst-setlocale-ENV = LC_ALL=ja_JP.EUC-JP
-tst-wctype-ENV = LC_ALL=ja_JP.EUC-JP
-
-tst-leaks-ENV = MALLOC_TRACE=$(objpfx)tst-leaks.mtrace \
-		LD_PRELOAD=$(common-objpfx)/malloc/libc_malloc_debug.so
-$(objpfx)mtrace-tst-leaks.out: $(objpfx)tst-leaks.out
-	$(common-objpfx)malloc/mtrace $(objpfx)tst-leaks.mtrace > $@; \
-	$(evaluate-test)
-
-bug-setlocale1-ENV-only = LOCPATH=$(objpfx) LC_CTYPE=de_DE.UTF-8
-bug-setlocale1-static-ENV-only = $(bug-setlocale1-ENV-only)
-
-$(objdir)/iconvdata/gconv-modules:
-	$(MAKE) -C ../iconvdata subdir=iconvdata $@
Index: sources/GNU/glibc/2.37/create-2.37-CVE-2023-25139-patch/file.list
===================================================================
--- sources/GNU/glibc/2.37/create-2.37-CVE-2023-25139-patch/file.list	(revision 393)
+++ sources/GNU/glibc/2.37/create-2.37-CVE-2023-25139-patch/file.list	(nonexistent)
@@ -1,2 +0,0 @@
-glibc-2.37/stdio-common/Makefile
-glibc-2.37/stdio-common/vfprintf-process-arg.c
Index: sources/GNU/glibc/2.37/create-2.37-CVE-2023-25139-patch/create.patch.sh
===================================================================
--- sources/GNU/glibc/2.37/create-2.37-CVE-2023-25139-patch/create.patch.sh	(revision 393)
+++ sources/GNU/glibc/2.37/create-2.37-CVE-2023-25139-patch/create.patch.sh	(nonexistent)
@@ -1,15 +0,0 @@
-#!/bin/bash
-
-VERSION=2.37
-
-tar --files-from=file.list -xJvf ../glibc-$VERSION.tar.xz
-mv glibc-$VERSION glibc-$VERSION-orig
-
-cp -rf ./glibc-$VERSION-new ./glibc-$VERSION
-
-diff --unified -Nr  glibc-$VERSION-orig  glibc-$VERSION > glibc-$VERSION-CVE-2023-25139.patch
-
-mv glibc-$VERSION-CVE-2023-25139.patch ../patches
-
-rm -rf ./glibc-$VERSION
-rm -rf ./glibc-$VERSION-orig

Property changes on: sources/GNU/glibc/2.37/create-2.37-CVE-2023-25139-patch/create.patch.sh
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: sources/GNU/glibc/2.37/create-2.37-CVE-2023-25139-patch/glibc-2.37-new/stdio-common/tst-grouping3.c
===================================================================
--- sources/GNU/glibc/2.37/create-2.37-CVE-2023-25139-patch/glibc-2.37-new/stdio-common/tst-grouping3.c	(revision 393)
+++ sources/GNU/glibc/2.37/create-2.37-CVE-2023-25139-patch/glibc-2.37-new/stdio-common/tst-grouping3.c	(nonexistent)
@@ -1,37 +0,0 @@
-/* Test printf with grouping and padding (bug 23432)
-   Copyright (C) 2023 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <https://www.gnu.org/licenses/>.  */
-
-#include <locale.h>
-#include <stdio.h>
-#include <support/check.h>
-#include <support/support.h>
-
-static int
-do_test (void)
-{
-  char buf[80];
-
-  xsetlocale (LC_NUMERIC, "de_DE.UTF-8");
-
-  sprintf (buf, "%+-'13.9d", 1234567);
-  TEST_COMPARE_STRING (buf, "+001.234.567 ");
-
-  return 0;
-}
-
-#include <support/test-driver.c>
Index: sources/GNU/glibc/2.37/create-2.37-CVE-2023-25139-patch/glibc-2.37-new/stdio-common/vfprintf-process-arg.c
===================================================================
--- sources/GNU/glibc/2.37/create-2.37-CVE-2023-25139-patch/glibc-2.37-new/stdio-common/vfprintf-process-arg.c	(revision 393)
+++ sources/GNU/glibc/2.37/create-2.37-CVE-2023-25139-patch/glibc-2.37-new/stdio-common/vfprintf-process-arg.c	(nonexistent)
@@ -1,495 +0,0 @@
-/* Argument-processing fragment for vfprintf.
-   Copyright (C) 1991-2023 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <https://www.gnu.org/licenses/>.  */
-
-/* This file is included twice from vfprintf-internal.c, for standard
-   and GNU-style positional (%N$) arguments.  Before that,
-   process_arg_int etc. macros have to be defined to extract one
-   argument of the appropriate type, in addition to the file-specific
-   macros in vfprintf-internal.c.  */
-
-{
-  /* Start real work.  We know about all flags and modifiers and
-     now process the wanted format specifier.  */
-LABEL (form_percent):
-  /* Write a literal "%".  */
-  Xprintf_buffer_putc (buf, L_('%'));
-  break;
-
-LABEL (form_integer):
-  /* Signed decimal integer.  */
-  base = 10;
-
-  if (is_longlong)
-    {
-      long long int signed_number = process_arg_long_long_int ();
-      is_negative = signed_number < 0;
-      number.longlong = is_negative ? (- signed_number) : signed_number;
-
-      goto LABEL (longlong_number);
-    }
-  else
-    {
-      long int signed_number;
-      if (is_long_num)
-        signed_number = process_arg_long_int ();
-      else if (is_char)
-        signed_number = (signed char) process_arg_unsigned_int ();
-      else if (!is_short)
-        signed_number = process_arg_int ();
-      else
-        signed_number = (short int) process_arg_unsigned_int ();
-
-      is_negative = signed_number < 0;
-      number.word = is_negative ? (- signed_number) : signed_number;
-
-      goto LABEL (number);
-    }
-  /* NOTREACHED */
-
-LABEL (form_unsigned):
-  /* Unsigned decimal integer.  */
-  base = 10;
-  goto LABEL (unsigned_number);
-  /* NOTREACHED */
-
-LABEL (form_octal):
-  /* Unsigned octal integer.  */
-  base = 8;
-  goto LABEL (unsigned_number);
-  /* NOTREACHED */
-
-LABEL (form_hexa):
-  /* Unsigned hexadecimal integer.  */
-  base = 16;
-  goto LABEL (unsigned_number);
-  /* NOTREACHED */
-
-LABEL (form_binary):
-  /* Unsigned binary integer.  */
-  base = 2;
-  goto LABEL (unsigned_number);
-  /* NOTREACHED */
-
-LABEL (unsigned_number):      /* Unsigned number of base BASE.  */
-
-  /* ISO specifies the `+' and ` ' flags only for signed
-     conversions.  */
-  is_negative = 0;
-  showsign = 0;
-  space = 0;
-
-  if (is_longlong)
-    {
-      number.longlong = process_arg_unsigned_long_long_int ();
-
-      LABEL (longlong_number):
-      if (prec < 0)
-        /* Supply a default precision if none was given.  */
-        prec = 1;
-      else
-        /* We have to take care for the '0' flag.  If a precision
-           is given it must be ignored.  */
-        pad = L_(' ');
-
-      /* If the precision is 0 and the number is 0 nothing has to
-         be written for the number, except for the 'o' format in
-         alternate form.  */
-      if (prec == 0 && number.longlong == 0)
-        {
-          string = workend;
-          if (base == 8 && alt)
-            *--string = L_('0');
-        }
-      else
-        /* Put the number in WORK.  */
-        string = _itoa (number.longlong, workend, base, spec == L_('X'));
-      /* Simplify further test for num != 0.  */
-      number.word = number.longlong != 0;
-    }
-  else
-    {
-      if (is_long_num)
-        number.word = process_arg_unsigned_long_int ();
-      else if (is_char)
-        number.word = (unsigned char) process_arg_unsigned_int ();
-      else if (!is_short)
-        number.word = process_arg_unsigned_int ();
-      else
-        number.word = (unsigned short int) process_arg_unsigned_int ();
-
-      LABEL (number):
-      if (prec < 0)
-        /* Supply a default precision if none was given.  */
-        prec = 1;
-      else
-        /* We have to take care for the '0' flag.  If a precision
-           is given it must be ignored.  */
-        pad = L_(' ');
-
-      /* If the precision is 0 and the number is 0 nothing has to
-         be written for the number, except for the 'o' format in
-         alternate form.  */
-      if (prec == 0 && number.word == 0)
-        {
-          string = workend;
-          if (base == 8 && alt)
-            *--string = L_('0');
-        }
-      else
-        /* Put the number in WORK.  */
-        string = _itoa_word (number.word, workend, base,
-                             spec == L_('X'));
-    }
-
-  /* Grouping is also used for outdigits translation.  */
-  struct grouping_iterator iter;
-  bool number_slow_path = group || (use_outdigits && base == 10);
-  if (group)
-    __grouping_iterator_init (&iter, LC_NUMERIC, _NL_CURRENT_LOCALE,
-                              workend - string);
-  else if (use_outdigits && base == 10)
-    __grouping_iterator_init_none (&iter, workend - string);
-
-  int number_length;
-#ifndef COMPILE_WPRINTF
-  if (use_outdigits && base == 10)
-    number_length = __translated_number_width (_NL_CURRENT_LOCALE,
-                                               string, workend);
-  else
-    number_length = workend - string;
-  if (group)
-    number_length += iter.separators * strlen (thousands_sep);
-#else
-  number_length = workend - string;
-  /* All wide separators have length 1.  */
-  if (group && thousands_sep != L'\0')
-    number_length += iter.separators;
-#endif
-
-  /* The marker comes right before the number, but is not subject
-     to grouping.  */
-  bool octal_marker = (prec <= number_length && number.word != 0
-                       && alt && base == 8);
-
-  prec = MAX (0, prec - (workend - string));
-
-  if (!left)
-    {
-      width -= number_length + prec;
-
-      if (number.word != 0 && alt && (base == 16 || base == 2))
-        /* Account for 0X, 0x, 0B or 0b hex or binary marker.  */
-        width -= 2;
-
-      if (octal_marker)
-        --width;
-
-      if (is_negative || showsign || space)
-        --width;
-
-      if (pad == L_(' '))
-        {
-          Xprintf_buffer_pad (buf, L_(' '), width);
-          width = 0;
-        }
-
-      if (is_negative)
-        Xprintf_buffer_putc (buf, L_('-'));
-      else if (showsign)
-        Xprintf_buffer_putc (buf, L_('+'));
-      else if (space)
-        Xprintf_buffer_putc (buf, L_(' '));
-
-      if (number.word != 0 && alt && (base == 16 || base == 2))
-        {
-          Xprintf_buffer_putc (buf, L_('0'));
-          Xprintf_buffer_putc (buf, spec);
-        }
-
-      width += prec;
-      Xprintf_buffer_pad (buf, L_('0'), width);
-
-      if (octal_marker)
-        Xprintf_buffer_putc (buf, L_('0'));
-
-      if (number_slow_path)
-        group_number (buf, &iter, string, workend, thousands_sep,
-                      use_outdigits && base == 10);
-      else
-        Xprintf_buffer_write (buf, string, workend - string);
-
-      break;
-    }
-  else
-    {
-      if (is_negative)
-        {
-          Xprintf_buffer_putc (buf, L_('-'));
-          --width;
-        }
-      else if (showsign)
-        {
-          Xprintf_buffer_putc (buf, L_('+'));
-          --width;
-        }
-      else if (space)
-        {
-          Xprintf_buffer_putc (buf, L_(' '));
-          --width;
-        }
-
-      if (number.word != 0 && alt && (base == 16 || base == 2))
-        {
-          Xprintf_buffer_putc (buf, L_('0'));
-          Xprintf_buffer_putc (buf, spec);
-          width -= 2;
-        }
-
-      if (octal_marker)
-	--width;
-
-      width -= number_length + prec;
-
-      Xprintf_buffer_pad (buf, L_('0'), prec);
-
-      if (octal_marker)
-        Xprintf_buffer_putc (buf, L_('0'));
-
-      if (number_slow_path)
-        group_number (buf, &iter, string, workend, thousands_sep,
-                      use_outdigits && base == 10);
-      else
-        Xprintf_buffer_write (buf, string, workend - string);
-
-      Xprintf_buffer_pad (buf, L_(' '), width);
-      break;
-    }
-
-LABEL (form_pointer):
-  /* Generic pointer.  */
-  {
-    const void *ptr = process_arg_pointer ();
-    if (ptr != NULL)
-      {
-        /* If the pointer is not NULL, write it as a %#x spec.  */
-        base = 16;
-        number.word = (unsigned long int) ptr;
-        is_negative = 0;
-        alt = 1;
-        group = 0;
-        spec = L_('x');
-        goto LABEL (number);
-      }
-    else
-      {
-        /* Write "(nil)" for a nil pointer.  */
-        string = (CHAR_T *) L_("(nil)");
-        /* Make sure the full string "(nil)" is printed.  */
-        if (prec < 5)
-          prec = 5;
-        /* This is a wide string iff compiling wprintf.  */
-        is_long = sizeof (CHAR_T) > 1;
-        goto LABEL (print_string);
-      }
-  }
-  /* NOTREACHED */
-
-LABEL (form_number):
-  if ((mode_flags & PRINTF_FORTIFY) != 0)
-    {
-      if (! readonly_format)
-        {
-          extern int __readonly_area (const void *, size_t)
-            attribute_hidden;
-          readonly_format
-            = __readonly_area (format, ((STR_LEN (format) + 1)
-                                        * sizeof (CHAR_T)));
-        }
-      if (readonly_format < 0)
-        __libc_fatal ("*** %n in writable segment detected ***\n");
-    }
-  /* Answer the count of characters written.  */
-  void *ptrptr = process_arg_pointer ();
-  unsigned int written = Xprintf_buffer_done (buf);
-  if (is_longlong)
-    *(long long int *) ptrptr = written;
-  else if (is_long_num)
-    *(long int *) ptrptr = written;
-  else if (is_char)
-    *(char *) ptrptr = written;
-  else if (!is_short)
-    *(int *) ptrptr = written;
-  else
-    *(short int *) ptrptr = written;
-  break;
-
-LABEL (form_strerror):
-  /* Print description of error ERRNO.  */
-  if (alt)
-    string = (CHAR_T *) __get_errname (save_errno);
-  else
-    string = (CHAR_T *) __strerror_r (save_errno, (char *) work_buffer,
-                                      WORK_BUFFER_SIZE * sizeof (CHAR_T));
-  if (string == NULL)
-    {
-      /* Print as a decimal number. */
-      base = 10;
-      is_negative = save_errno < 0;
-      number.word = save_errno;
-      if (is_negative)
-        number.word = -number.word;
-      goto LABEL (number);
-    }
-  else
-    {
-      is_long = 0;  /* This is no wide-char string.  */
-      goto LABEL (print_string);
-    }
-
-LABEL (form_character):
-  /* Character.  */
-  if (is_long)
-    goto LABEL (form_wcharacter);
-  --width;  /* Account for the character itself.  */
-  if (!left)
-    Xprintf_buffer_pad (buf, L_(' '), width);
-#ifdef COMPILE_WPRINTF
-  __wprintf_buffer_putc (buf, __btowc ((unsigned char) /* Promoted. */
-                                       process_arg_int ()));
-#else
-  __printf_buffer_putc (buf, (unsigned char) /* Promoted.  */
-                        process_arg_int ());
-#endif
-  if (left)
-    Xprintf_buffer_pad (buf, L_(' '), width);
-  break;
-
-LABEL (form_string):
-  {
-    size_t len;
-
-    /* The string argument could in fact be `char *' or `wchar_t *'.
-       But this should not make a difference here.  */
-#ifdef COMPILE_WPRINTF
-    string = (CHAR_T *) process_arg_wstring ();
-#else
-    string = (CHAR_T *) process_arg_string ();
-#endif
-    /* Entry point for printing other strings.  */
-    LABEL (print_string):
-
-    if (string == NULL)
-      {
-        /* Write "(null)" if there's space.  */
-        if (prec == -1 || prec >= (int) array_length (null) - 1)
-          {
-            string = (CHAR_T *) null;
-            len = array_length (null) - 1;
-          }
-        else
-          {
-            string = (CHAR_T *) L"";
-            len = 0;
-          }
-      }
-    else if (!is_long && spec != L_('S'))
-      {
-#ifdef COMPILE_WPRINTF
-        outstring_converted_wide_string (buf, (const char *) string,
-                                         prec, width, left);
-        /* The padding has already been written.  */
-        break;
-#else
-        if (prec != -1)
-          /* Search for the end of the string, but don't search past
-             the length (in bytes) specified by the precision.  */
-          len = __strnlen (string, prec);
-        else
-          len = strlen (string);
-#endif
-      }
-    else
-      {
-#ifdef COMPILE_WPRINTF
-        if (prec != -1)
-          /* Search for the end of the string, but don't search past
-             the length specified by the precision.  */
-          len = __wcsnlen (string, prec);
-        else
-          len = __wcslen (string);
-#else
-        outstring_converted_wide_string (buf, (const wchar_t *) string,
-                                         prec, width, left);
-        /* The padding has already been written.  */
-        break;
-#endif
-      }
-
-    if ((width -= len) < 0)
-      {
-        Xprintf_buffer_write (buf, string, len);
-        break;
-      }
-
-    if (!left)
-      Xprintf_buffer_pad (buf, L_(' '), width);
-    Xprintf_buffer_write (buf, string, len);
-    if (left)
-      Xprintf_buffer_pad (buf, L_(' '), width);
-  }
-  break;
-
-#ifdef COMPILE_WPRINTF
-LABEL (form_wcharacter):
-  {
-    /* Wide character.  */
-    --width;
-    if (!left)
-      Xprintf_buffer_pad (buf, L_(' '), width);
-    Xprintf_buffer_putc (buf, process_arg_wchar_t ());
-    if (left)
-      Xprintf_buffer_pad (buf, L_(' '), width);
-  }
-  break;
-
-#else /* !COMPILE_WPRINTF */
-LABEL (form_wcharacter):
-  {
-    /* Wide character.  */
-    char wcbuf[MB_LEN_MAX];
-    mbstate_t mbstate;
-    size_t len;
-
-    memset (&mbstate, '\0', sizeof (mbstate_t));
-    len = __wcrtomb (wcbuf, process_arg_wchar_t (), &mbstate);
-    if (len == (size_t) -1)
-      {
-        /* Something went wrong during the conversion.  Bail out.  */
-        __printf_buffer_mark_failed (buf);
-        goto all_done;
-      }
-    width -= len;
-    if (!left)
-      Xprintf_buffer_pad (buf, L_(' '), width);
-    Xprintf_buffer_write (buf, wcbuf, len);
-    if (left)
-      Xprintf_buffer_pad (buf, L_(' '), width);
-  }
-  break;
-#endif /* !COMPILE_WPRINTF */
-}
Index: sources/GNU/glibc/2.37/create-2.37-CVE-2023-25139-patch/glibc-2.37-new/stdio-common/Makefile
===================================================================
--- sources/GNU/glibc/2.37/create-2.37-CVE-2023-25139-patch/glibc-2.37-new/stdio-common/Makefile	(revision 393)
+++ sources/GNU/glibc/2.37/create-2.37-CVE-2023-25139-patch/glibc-2.37-new/stdio-common/Makefile	(nonexistent)
@@ -1,450 +0,0 @@
-# Copyright (C) 1991-2023 Free Software Foundation, Inc.
-# This file is part of the GNU C Library.
-
-# The GNU C Library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-
-# The GNU C Library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-
-# You should have received a copy of the GNU Lesser General Public
-# License along with the GNU C Library; if not, see
-# <https://www.gnu.org/licenses/>.
-
-#
-#	Specific makefile for stdio-common.
-#
-subdir	:= stdio-common
-
-include ../Makeconfig
-
-headers	:= stdio_ext.h printf.h bits/printf-ldbl.h bits/stdio_lim.h
-
-routines := \
-  _itoa \
-  _itowa \
-  asprintf \
-  ctermid \
-  cuserid \
-  dprintf \
-  flockfile \
-  fprintf \
-  fscanf \
-  ftrylockfile \
-  funlockfile \
-  gentempfd \
-  getline \
-  getw \
-  grouping_iterator \
-  iovfscanf \
-  isoc99_fscanf \
-  isoc99_scanf \
-  isoc99_sscanf \
-  isoc99_vfscanf \
-  isoc99_vscanf \
-  isoc99_vsscanf \
-  itoa-digits \
-  itoa-udigits \
-  itowa-digits \
-  perror \
-  printf \
-  printf-prs \
-  printf_buffer_as_file \
-  printf_buffer_done \
-  printf_buffer_flush \
-  printf_buffer_pad_1 \
-  printf_buffer_putc_1 \
-  printf_buffer_puts_1 \
-  printf_buffer_to_file \
-  printf_buffer_write \
-  printf_fp \
-  printf_fphex \
-  printf_function_invoke \
-  printf_size \
-  psiginfo \
-  psignal \
-  putw \
-  reg-modifier \
-  reg-printf \
-  reg-type \
-  remove \
-  rename \
-  renameat \
-  renameat2 \
-  scanf \
-  snprintf \
-  sprintf \
-  sscanf \
-  tempnam \
-  tempname \
-  tmpfile \
-  tmpfile64 \
-  tmpnam \
-  tmpnam_r \
-  translated_number_width \
-  vfprintf \
-  vfprintf-internal \
-  vfscanf \
-  vfscanf-internal \
-  vfwprintf \
-  vfwprintf-internal \
-  vfwscanf \
-  vfwscanf-internal \
-  vprintf \
-  wprintf_buffer_as_file \
-  wprintf_buffer_done \
-  wprintf_buffer_flush \
-  wprintf_buffer_pad_1 \
-  wprintf_buffer_putc_1 \
-  wprintf_buffer_puts_1 \
-  wprintf_buffer_to_file \
-  wprintf_buffer_write \
-  wprintf_function_invoke \
-  # routines
-
-aux := \
-  errlist \
-  errlist-data \
-  errname \
-  fxprintf \
-  printf-parsemb \
-  printf-parsewc \
-  siglist \
-  # aux
-
-tests := \
-  bug-vfprintf-nargs \
-  bug1 \
-  bug10 \
-  bug11 \
-  bug12 \
-  bug13 \
-  bug14 \
-  bug16 \
-  bug17 \
-  bug18 \
-  bug18a \
-  bug19 \
-  bug19a \
-  bug2 \
-  bug20 \
-  bug21 \
-  bug22 \
-  bug23 \
-  bug23-2 \
-  bug23-3 \
-  bug23-4 \
-  bug24 \
-  bug25 \
-  bug26 \
-  bug3 \
-  bug4 \
-  bug5 \
-  bug6 \
-  bug7 \
-  bug8 \
-  bug9 \
-  errnobug \
-  scanf1 \
-  scanf10 \
-  scanf11 \
-  scanf12 \
-  scanf13 \
-  scanf14 \
-  scanf14a \
-  scanf15 \
-  scanf16 \
-  scanf16a \
-  scanf17 \
-  scanf2 \
-  scanf3 \
-  scanf4 \
-  scanf5 \
-  scanf7 \
-  scanf8 \
-  scanf9 \
-  temptest \
-  test-fseek \
-  test-fwrite \
-  test-popen \
-  test-strerr \
-  test-vfprintf \
-  test_rdwr \
-  tfformat \
-  tiformat \
-  tllformat \
-  tst-bz11319 \
-  tst-bz11319-fortify2 \
-  tst-cookie \
-  tst-dprintf-length \
-  tst-fdopen \
-  tst-ferror \
-  tst-fgets \
-  tst-fileno \
-  tst-fmemopen \
-  tst-fmemopen2 \
-  tst-fmemopen3 \
-  tst-fmemopen4 \
-  tst-fphex \
-  tst-fphex-wide \
-  tst-fseek \
-  tst-fwrite \
-  tst-gets \
-  tst-grouping \
-  tst-grouping2 \
-  tst-grouping3 \
-  tst-long-dbl-fphex \
-  tst-memstream-string \
-  tst-obprintf \
-  tst-perror \
-  tst-popen \
-  tst-popen2 \
-  tst-printf-binary \
-  tst-printf-bz18872 \
-  tst-printf-bz25691 \
-  tst-printf-fp-free \
-  tst-printf-fp-leak \
-  tst-printf-oct \
-  tst-printf-round \
-  tst-printfsz \
-  tst-put-error \
-  tst-renameat2 \
-  tst-rndseek \
-  tst-scanf-round \
-  tst-setvbuf1 \
-  tst-sprintf \
-  tst-sprintf-errno \
-  tst-sprintf2 \
-  tst-sprintf3 \
-  tst-sscanf \
-  tst-swprintf \
-  tst-swscanf \
-  tst-tmpnam \
-  tst-ungetc \
-  tst-unlockedio \
-  tst-vfprintf-mbs-prec \
-  tst-vfprintf-user-type \
-  tst-vfprintf-width-prec \
-  tst-vfprintf-width-prec-alloc \
-  tst-vfprintf-width-i18n \
-  tst-wc-printf \
-  tstdiomisc \
-  tstgetln \
-  tstscanf \
-  xbug \
-  # tests
-
-generated += \
-  errlist-data-aux-shared.S \
-  errlist-data-aux.S \
-  siglist-aux-shared.S \
-  siglist-aux.S \
-  # generated
-
-tests-internal = \
-  tst-grouping_iterator \
-  # tests-internal
-
-test-srcs = tst-unbputc tst-printf tst-printfsz-islongdouble
-
-ifeq ($(run-built-tests),yes)
-tests-special += \
-  $(objpfx)tst-printf-bz18872-mem.out \
-  $(objpfx)tst-printf-bz25691-mem.out \
-  $(objpfx)tst-printf-fp-free-mem.out \
-  $(objpfx)tst-printf-fp-leak-mem.out \
-  $(objpfx)tst-printf.out \
-  $(objpfx)tst-printfsz-islongdouble.out \
-  $(objpfx)tst-setvbuf1-cmp.out \
-  $(objpfx)tst-unbputc.out \
-  $(objpfx)tst-vfprintf-width-prec-mem.out \
-  # tests-special
-
-generated += \
-  tst-printf-bz18872-mem.out \
-  tst-printf-bz18872.c \
-  tst-printf-bz18872.mtrace \
-  tst-printf-bz25691-mem.out \
-  tst-printf-bz25691.mtrace \
-  tst-printf-fp-free-mem.out \
-  tst-printf-fp-free.mtrace \
-  tst-printf-fp-leak-mem.out \
-  tst-printf-fp-leak.mtrace \
-  tst-vfprintf-width-prec-mem.out \
-  tst-vfprintf-width-prec.mtrace \
-  # generated
-endif # $(run-built-tests)
-
-tests-special += $(objpfx)tst-errno-manual.out
-
-include ../Rules
-
-# The errlist.c is built in two phases because compiler might reorder the
-# compat_symbol directive prior the object itself and on binutils older
-# than 2.29 it might generate object sizes different than the expected ones.
-$(objpfx)errlist-data-aux-shared.S: errlist-data-gen.c
-	$(make-target-directory)
-	$(compile-command.c) $(pic-cppflags) $(pic-ccflag) $(no-stack-protector) -S
-
-$(objpfx)errlist-data-aux.S: errlist-data-gen.c
-	$(make-target-directory)
-	$(compile-command.c) $(pie-default) $(no-stack-protector) -S
-
-ifndef no_deps
--include $(objpfx)errlist-data-aux.S.d $(objpfx)errlist-data-aux-shared.S.d
-endif
-
-$(objpfx)errlist-data.os: $(objpfx)errlist-data-aux-shared.S
-$(addprefix $(objpfx)errlist-data, $(object-suffixes-noshared)): \
-  $(objpfx)errlist-data-aux.S
-
-$(objpfx)siglist-aux-shared.S: siglist-gen.c
-	$(make-target-directory)
-	$(compile-command.c) $(pic-cppflags) $(pic-ccflag) $(no-stack-protector) -S
-
-$(objpfx)siglist-aux.S: siglist-gen.c
-	$(make-target-directory)
-	$(compile-command.c) $(pie-default) $(no-stack-protector) -S
-
-ifndef no_deps
--include $(objpfx)siglist-aux.S.d $(objpfx)siglist-aux-shared.S.d
-endif
-
-$(objpfx)siglist.os: $(objpfx)siglist-aux-shared.S
-$(addprefix $(objpfx)siglist, $(object-suffixes-noshared)): \
-  $(objpfx)siglist-aux.S
-
-ifeq ($(run-built-tests),yes)
-LOCALES := \
-  de_DE.ISO-8859-1 \
-  de_DE.UTF-8 \
-  en_US.ISO-8859-1 \
-  hi_IN.UTF-8 \
-  ja_JP.EUC-JP \
-  ps_AF.UTF-8 \
-  tg_TJ.UTF-8 \
- # LOCALES
-include ../gen-locales.mk
-
-$(objpfx)bug14.out: $(gen-locales)
-$(objpfx)scanf13.out: $(gen-locales)
-$(objpfx)test-vfprintf.out: $(gen-locales)
-$(objpfx)tst-grouping.out: $(gen-locales)
-$(objpfx)tst-grouping2.out: $(gen-locales)
-$(objpfx)tst-grouping_iterator.out: $(gen-locales)
-$(objpfx)tst-sprintf.out: $(gen-locales)
-$(objpfx)tst-sscanf.out: $(gen-locales)
-$(objpfx)tst-swprintf.out: $(gen-locales)
-$(objpfx)tst-vfprintf-mbs-prec.out: $(gen-locales)
-$(objpfx)tst-vfprintf-width-i18n.out: $(gen-locales)
-endif
-
-tst-printf-bz18872-ENV = MALLOC_TRACE=$(objpfx)tst-printf-bz18872.mtrace \
-			LD_PRELOAD=$(common-objpfx)/malloc/libc_malloc_debug.so
-tst-vfprintf-width-prec-ENV = \
-  MALLOC_TRACE=$(objpfx)tst-vfprintf-width-prec.mtrace \
-  LD_PRELOAD=$(common-objpfx)/malloc/libc_malloc_debug.so
-tst-printf-bz25691-ENV = \
-  MALLOC_TRACE=$(objpfx)tst-printf-bz25691.mtrace \
-  LD_PRELOAD=$(common-objpfx)/malloc/libc_malloc_debug.so
-tst-printf-fp-free-ENV = \
-  MALLOC_TRACE=$(objpfx)tst-printf-fp-free.mtrace \
-  LD_PRELOAD=$(common-objpfx)/malloc/libc_malloc_debug.so
-tst-printf-fp-leak-ENV = \
-  MALLOC_TRACE=$(objpfx)tst-printf-fp-leak.mtrace \
-  LD_PRELOAD=$(common-objpfx)/malloc/libc_malloc_debug.so
-
-$(objpfx)tst-unbputc.out: tst-unbputc.sh $(objpfx)tst-unbputc
-	$(SHELL) $< $(common-objpfx) '$(test-program-prefix)'; \
-	$(evaluate-test)
-
-$(objpfx)tst-printf.out: tst-printf.sh $(objpfx)tst-printf
-	$(SHELL) $< $(common-objpfx) '$(test-program-prefix)'; \
-	$(evaluate-test)
-
-$(objpfx)tst-printfsz-islongdouble.out: \
-  tst-printfsz-islongdouble.sh $(objpfx)tst-printfsz-islongdouble
-	$(SHELL) $^ '$(test-program-prefix)' $@; \
-	$(evaluate-test)
-
-# We generate this source because it requires a printf invocation with
-# 10K arguments.
-$(objpfx)tst-printf-bz18872.c: tst-printf-bz18872.sh
-	rm -f $@ && $(BASH) $^ > $@.new && mv $@.new $@
-
-$(objpfx)tst-%-mem.out: $(objpfx)tst-%.out
-	$(common-objpfx)malloc/mtrace $(objpfx)tst-$*.mtrace > $@; \
-	$(evaluate-test)
-
-errlist-h = $(firstword $(wildcard $(addsuffix /errlist.h,$(sysdirs) .)))
-
-$(objpfx)tst-errno-manual.out: tst-errno-manual.py \
-			       $(errlist-h) \
-			       $(..)manual/errno.texi
-	$(PYTHON) tst-errno-manual.py -m $(..)manual/errno.texi \
-				      -e $(errlist-h) > $@; \
-	$(evaluate-test)
-
-CFLAGS-vfprintf.c += -Wno-uninitialized
-CFLAGS-vfwprintf.c += -Wno-uninitialized
-
-CFLAGS-tmpfile.c += -fexceptions
-CFLAGS-tmpfile64.c += -fexceptions
-CFLAGS-tempname.c += -fexceptions
-CFLAGS-psignal.c += -fexceptions
-CFLAGS-vprintf.c += -fexceptions
-CFLAGS-cuserid.c += -fexceptions
-
-CFLAGS-vfprintf.c += -fexceptions
-CFLAGS-fprintf.c += -fexceptions
-CFLAGS-printf.c += -fexceptions
-CFLAGS-vfwprintf.c += -fexceptions
-CFLAGS-vfscanf.c += -fexceptions
-CFLAGS-vfwscanf.c += -fexceptions
-CFLAGS-fscanf.c += -fexceptions
-CFLAGS-scanf.c += -fexceptions
-CFLAGS-isoc99_vfscanf.c += -fexceptions
-CFLAGS-isoc99_vscanf.c += -fexceptions
-CFLAGS-isoc99_fscanf.c += -fexceptions
-CFLAGS-isoc99_scanf.c += -fexceptions
-
-CFLAGS-dprintf.c += $(config-cflags-wno-ignored-attributes)
-
-# scanf14a.c and scanf16a.c test a deprecated extension which is no
-# longer visible under most conformance levels; see the source files
-# for more detail.
-CFLAGS-scanf14a.c += -std=gnu89
-CFLAGS-scanf16a.c += -std=gnu89
-
-CFLAGS-bug3.c += -DOBJPFX=\"$(objpfx)\"
-CFLAGS-bug4.c += -DOBJPFX=\"$(objpfx)\"
-CFLAGS-bug5.c += -DOBJPFX=\"$(objpfx)\"
-CFLAGS-test-fseek.c += -DOBJPFX=\"$(objpfx)\"
-CFLAGS-test-popen.c += -DOBJPFX=\"$(objpfx)\"
-CFLAGS-test_rdwr.c += -DOBJPFX=\"$(objpfx)\"
-
-# tst-gets.c tests a deprecated function.
-CFLAGS-tst-gets.c += -Wno-deprecated-declarations
-
-# BZ #11319 was first fixed for regular vdprintf, then reopened because
-# the fortified version had the same bug.
-CFLAGS-tst-bz11319-fortify2.c += -D_FORTIFY_SOURCE=2
-
-CFLAGS-tst-memstream-string.c += -fno-builtin-fprintf
-
-CPPFLAGS += $(libio-mtsafe)
-
-$(objpfx)tst-setvbuf1.out: /dev/null $(objpfx)tst-setvbuf1
-	$(test-program-cmd) > $@ 2>&1; \
-	$(evaluate-test)
-
-$(objpfx)tst-setvbuf1-cmp.out: tst-setvbuf1.expect $(objpfx)tst-setvbuf1.out
-	cmp $^ > $@; \
-	$(evaluate-test)
-
-$(objpfx)tst-printf-round: $(libm)
-$(objpfx)tst-scanf-round: $(libm)
Index: sources/GNU/glibc/2.37/patches/README
===================================================================
--- sources/GNU/glibc/2.37/patches/README	(revision 393)
+++ sources/GNU/glibc/2.37/patches/README	(nonexistent)
@@ -1,21 +0,0 @@
-
-/* begin *
-
-   NOTE:
-   ====
-     glibc-2.37-reenable-DT-HASH.patch  - From e47de5cb2d4dbecb58f569ed241e8e95c568f03c Mon Sep 17 00:00:00 2001
-                                          From: Florian Weimer <fweimer@redhat.com>
-                                          Date: Fri, 29 Apr 2022 16:37:51 +0200
-                                          Subject: [PATCH] Do not use --hash-style=both for building glibc shared
-                                           objects
-
-                                          The comment indicates that --hash-style=both was used to maintain
-                                          compatibility with static dlopen, but we had many internal ABI
-                                          changes since then, so this compatiblity does not add value anymore.
-
-                                          Reviewed-by: Carlos O'Donell <carlos@redhat.com>
-
-     glibc-2.37-zonefile.patch          - required if IANA timezone version 2022f or later is applyed.
-
-
- * end */
Index: sources/GNU/glibc/2.37/patches
===================================================================
--- sources/GNU/glibc/2.37/patches	(revision 393)
+++ sources/GNU/glibc/2.37/patches	(nonexistent)

Property changes on: sources/GNU/glibc/2.37/patches
___________________________________________________________________
Deleted: svn:ignore
## -1,73 +0,0 ##
-
-# install dir
-dist
-
-# Target build dirs
-.a1x-newlib
-.a2x-newlib
-.at91sam7s-newlib
-
-.build-machine
-
-.a1x-glibc
-.a2x-glibc
-.h3-glibc
-.h5-glibc
-.i586-glibc
-.i686-glibc
-.imx6-glibc
-.jz47xx-glibc
-.makefile
-.am335x-glibc
-.omap543x-glibc
-.p5600-glibc
-.power8-glibc
-.power8le-glibc
-.power9-glibc
-.power9le-glibc
-.m1000-glibc
-.riscv64-glibc
-.rk328x-glibc
-.rk33xx-glibc
-.rk339x-glibc
-.s8xx-glibc
-.s9xx-glibc
-.x86_64-glibc
-
-# Hidden files (each file)
-.makefile
-.dist
-.rootfs
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-.requires
-.requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Descriptions
-*.dsc
-*.txt
-
-# Default linux config files
-*.defconfig
-
-# backup copies
-*~
Index: sources/GNU/glibc/2.37/create-2.37-malloc-hooks-patch/file.list
===================================================================
--- sources/GNU/glibc/2.37/create-2.37-malloc-hooks-patch/file.list	(revision 393)
+++ sources/GNU/glibc/2.37/create-2.37-malloc-hooks-patch/file.list	(nonexistent)
@@ -1 +0,0 @@
-glibc-2.37/malloc/malloc-check.c
Index: sources/GNU/glibc/2.37/create-2.37-malloc-hooks-patch/create.patch.sh
===================================================================
--- sources/GNU/glibc/2.37/create-2.37-malloc-hooks-patch/create.patch.sh	(revision 393)
+++ sources/GNU/glibc/2.37/create-2.37-malloc-hooks-patch/create.patch.sh	(nonexistent)
@@ -1,15 +0,0 @@
-#!/bin/bash
-
-VERSION=2.37
-
-tar --files-from=file.list -xJvf ../glibc-$VERSION.tar.xz
-mv glibc-$VERSION glibc-$VERSION-orig
-
-cp -rf ./glibc-$VERSION-new ./glibc-$VERSION
-
-diff --unified -Nr  glibc-$VERSION-orig  glibc-$VERSION > glibc-$VERSION-malloc-hooks.patch
-
-mv glibc-$VERSION-malloc-hooks.patch ../patches
-
-rm -rf ./glibc-$VERSION
-rm -rf ./glibc-$VERSION-orig

Property changes on: sources/GNU/glibc/2.37/create-2.37-malloc-hooks-patch/create.patch.sh
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: sources/GNU/glibc/2.37/create-2.37-malloc-hooks-patch/glibc-2.37-new/malloc/malloc-check.c
===================================================================
--- sources/GNU/glibc/2.37/create-2.37-malloc-hooks-patch/glibc-2.37-new/malloc/malloc-check.c	(revision 393)
+++ sources/GNU/glibc/2.37/create-2.37-malloc-hooks-patch/glibc-2.37-new/malloc/malloc-check.c	(nonexistent)
@@ -1,403 +0,0 @@
-/* glibc.malloc.check implementation.
-   Copyright (C) 2001-2023 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public License as
-   published by the Free Software Foundation; either version 2.1 of the
-   License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If
-   not, see <https://www.gnu.org/licenses/>.  */
-
-#define __mremap mremap
-#include "malloc.c"
-
-/* When memory is tagged, the checking data is stored in the user part
-   of the chunk.  We can't rely on the user not having modified the
-   tags, so fetch the tag at each location before dereferencing
-   it.  */
-#define SAFE_CHAR_OFFSET(p,offset) \
-  ((unsigned char *) tag_at (((unsigned char *) p) + offset))
-
-/* A simple, standard set of debugging hooks.  Overhead is `only' one
-   byte per chunk; still this will catch most cases of double frees or
-   overruns.  The goal here is to avoid obscure crashes due to invalid
-   usage, unlike in the MALLOC_DEBUG code. */
-
-static unsigned char
-magicbyte (const void *p)
-{
-  unsigned char magic;
-
-  magic = (((uintptr_t) p >> 3) ^ ((uintptr_t) p >> 11)) & 0xFF;
-  /* Do not return 1.  See the comment in mem2mem_check().  */
-  if (magic == 1)
-    ++magic;
-  return magic;
-}
-
-/* Visualize the chunk as being partitioned into blocks of 255 bytes from the
-   highest address of the chunk, downwards.  The end of each block tells
-   us the size of that block, up to the actual size of the requested
-   memory.  Our magic byte is right at the end of the requested size, so we
-   must reach it with this iteration, otherwise we have witnessed a memory
-   corruption.  */
-static size_t
-malloc_check_get_size (void *mem)
-{
-  size_t size;
-  unsigned char c;
-  mchunkptr p = mem2chunk (mem);
-  unsigned char magic = magicbyte (p);
-
-  for (size = CHUNK_HDR_SZ + memsize (p) - 1;
-       (c = *SAFE_CHAR_OFFSET (p, size)) != magic;
-       size -= c)
-    {
-      if (c <= 0 || size < (c + CHUNK_HDR_SZ))
-	malloc_printerr ("malloc_check_get_size: memory corruption");
-    }
-
-  /* chunk2mem size.  */
-  return size - CHUNK_HDR_SZ;
-}
-
-/* Instrument a chunk with overrun detector byte(s) and convert it
-   into a user pointer with requested size req_sz. */
-
-static void *
-mem2mem_check (void *ptr, size_t req_sz)
-{
-  mchunkptr p;
-  unsigned char *m_ptr = ptr;
-  size_t max_sz, block_sz, i;
-  unsigned char magic;
-
-  if (!ptr)
-    return ptr;
-
-  p = mem2chunk (ptr);
-  magic = magicbyte (p);
-  max_sz = memsize (p);
-
-  for (i = max_sz - 1; i > req_sz; i -= block_sz)
-    {
-      block_sz = MIN (i - req_sz, 0xff);
-      /* Don't allow the magic byte to appear in the chain of length bytes.
-         For the following to work, magicbyte cannot return 0x01.  */
-      if (block_sz == magic)
-        --block_sz;
-
-      *SAFE_CHAR_OFFSET (m_ptr, i) = block_sz;
-    }
-  *SAFE_CHAR_OFFSET (m_ptr, req_sz) = magic;
-  return (void *) m_ptr;
-}
-
-/* Convert a pointer to be free()d or realloc()ed to a valid chunk
-   pointer.  If the provided pointer is not valid, return NULL. */
-
-static mchunkptr
-mem2chunk_check (void *mem, unsigned char **magic_p)
-{
-  mchunkptr p;
-  INTERNAL_SIZE_T sz, c;
-  unsigned char magic;
-
-  if (!aligned_OK (mem))
-    return NULL;
-
-  p = mem2chunk (mem);
-  sz = chunksize (p);
-  magic = magicbyte (p);
-  if (!chunk_is_mmapped (p))
-    {
-      /* Must be a chunk in conventional heap memory. */
-      int contig = contiguous (&main_arena);
-      if ((contig &&
-           ((char *) p < mp_.sbrk_base ||
-            ((char *) p + sz) >= (mp_.sbrk_base + main_arena.system_mem))) ||
-          sz < MINSIZE || sz & MALLOC_ALIGN_MASK || !inuse (p) ||
-          (!prev_inuse (p) && ((prev_size (p) & MALLOC_ALIGN_MASK) != 0 ||
-                               (contig && (char *) prev_chunk (p) < mp_.sbrk_base) ||
-                               next_chunk (prev_chunk (p)) != p)))
-        return NULL;
-
-      for (sz = CHUNK_HDR_SZ + memsize (p) - 1;
-	   (c = *SAFE_CHAR_OFFSET (p, sz)) != magic;
-	   sz -= c)
-        {
-          if (c == 0 || sz < (c + CHUNK_HDR_SZ))
-            return NULL;
-        }
-    }
-  else
-    {
-      unsigned long offset, page_mask = GLRO (dl_pagesize) - 1;
-
-      /* mmap()ed chunks have MALLOC_ALIGNMENT or higher power-of-two
-         alignment relative to the beginning of a page.  Check this
-         first. */
-      offset = (unsigned long) mem & page_mask;
-      if ((offset != MALLOC_ALIGNMENT && offset != 0 && offset != 0x10 &&
-           offset != 0x20 && offset != 0x40 && offset != 0x80 && offset != 0x100 &&
-           offset != 0x200 && offset != 0x400 && offset != 0x800 && offset != 0x1000 &&
-           offset < 0x2000) ||
-          !chunk_is_mmapped (p) || prev_inuse (p) ||
-          ((((unsigned long) p - prev_size (p)) & page_mask) != 0) ||
-          ((prev_size (p) + sz) & page_mask) != 0)
-        return NULL;
-
-      for (sz = CHUNK_HDR_SZ + memsize (p) - 1;
-	   (c = *SAFE_CHAR_OFFSET (p, sz)) != magic;
-	   sz -= c)
-        {
-          if (c == 0 || sz < (c + CHUNK_HDR_SZ))
-            return NULL;
-        }
-    }
-
-  unsigned char* safe_p = SAFE_CHAR_OFFSET (p, sz);
-  *safe_p ^= 0xFF;
-  if (magic_p)
-    *magic_p = safe_p;
-  return p;
-}
-
-/* Check for corruption of the top chunk.  */
-static void
-top_check (void)
-{
-  mchunkptr t = top (&main_arena);
-
-  if (t == initial_top (&main_arena) ||
-      (!chunk_is_mmapped (t) &&
-       chunksize (t) >= MINSIZE &&
-       prev_inuse (t) &&
-       (!contiguous (&main_arena) ||
-        (char *) t + chunksize (t) == mp_.sbrk_base + main_arena.system_mem)))
-    return;
-
-  malloc_printerr ("malloc: top chunk is corrupt");
-}
-
-static void *
-malloc_check (size_t sz)
-{
-  void *victim;
-  size_t nb;
-
-  if (__builtin_add_overflow (sz, 1, &nb))
-    {
-      __set_errno (ENOMEM);
-      return NULL;
-    }
-
-  __libc_lock_lock (main_arena.mutex);
-  top_check ();
-  victim = _int_malloc (&main_arena, nb);
-  __libc_lock_unlock (main_arena.mutex);
-  return mem2mem_check (tag_new_usable (victim), sz);
-}
-
-static void
-free_check (void *mem)
-{
-  mchunkptr p;
-
-  if (!mem)
-    return;
-
-  int err = errno;
-
-  /* Quickly check that the freed pointer matches the tag for the memory.
-     This gives a useful double-free detection.  */
-  if (__glibc_unlikely (mtag_enabled))
-    *(volatile char *)mem;
-
-  __libc_lock_lock (main_arena.mutex);
-  p = mem2chunk_check (mem, NULL);
-  if (!p)
-    malloc_printerr ("free(): invalid pointer");
-  if (chunk_is_mmapped (p))
-    {
-      __libc_lock_unlock (main_arena.mutex);
-      munmap_chunk (p);
-    }
-  else
-    {
-      /* Mark the chunk as belonging to the library again.  */
-      (void)tag_region (chunk2mem (p), memsize (p));
-      _int_free (&main_arena, p, 1);
-      __libc_lock_unlock (main_arena.mutex);
-    }
-  __set_errno (err);
-}
-
-static void *
-realloc_check (void *oldmem, size_t bytes)
-{
-  INTERNAL_SIZE_T chnb;
-  void *newmem = 0;
-  unsigned char *magic_p = NULL;
-  size_t rb;
-
-  if (__builtin_add_overflow (bytes, 1, &rb))
-    {
-      __set_errno (ENOMEM);
-      return NULL;
-    }
-  if (oldmem == 0)
-    return malloc_check (bytes);
-
-  if (bytes == 0)
-    {
-      free_check (oldmem);
-      return NULL;
-    }
-
-  /* Quickly check that the freed pointer matches the tag for the memory.
-     This gives a useful double-free detection.  */
-  if (__glibc_unlikely (mtag_enabled))
-    *(volatile char *)oldmem;
-
-  __libc_lock_lock (main_arena.mutex);
-  const mchunkptr oldp = mem2chunk_check (oldmem, &magic_p);
-  __libc_lock_unlock (main_arena.mutex);
-  if (!oldp)
-    malloc_printerr ("realloc(): invalid pointer");
-  const INTERNAL_SIZE_T oldsize = chunksize (oldp);
-
-  chnb = checked_request2size (rb);
-  if (chnb == 0)
-    {
-      __set_errno (ENOMEM);
-      goto invert;
-    }
-
-  __libc_lock_lock (main_arena.mutex);
-
-  if (chunk_is_mmapped (oldp))
-    {
-#if HAVE_MREMAP
-      mchunkptr newp = mremap_chunk (oldp, chnb);
-      if (newp)
-        newmem = chunk2mem_tag (newp);
-      else
-#endif
-      {
-	/* Note the extra SIZE_SZ overhead. */
-        if (oldsize - SIZE_SZ >= chnb)
-          newmem = oldmem; /* do nothing */
-        else
-          {
-            /* Must alloc, copy, free. */
-	    top_check ();
-	    newmem = _int_malloc (&main_arena, rb);
-            if (newmem)
-              {
-                memcpy (newmem, oldmem, oldsize - CHUNK_HDR_SZ);
-                munmap_chunk (oldp);
-              }
-          }
-      }
-    }
-  else
-    {
-      top_check ();
-      newmem = _int_realloc (&main_arena, oldp, oldsize, chnb);
-    }
-
-  DIAG_PUSH_NEEDS_COMMENT;
-#if __GNUC_PREREQ (7, 0)
-  /* GCC 7 warns about magic_p may be used uninitialized.  But we never
-     reach here if magic_p is uninitialized.  */
-  DIAG_IGNORE_NEEDS_COMMENT (7, "-Wmaybe-uninitialized");
-#endif
-  /* mem2chunk_check changed the magic byte in the old chunk.
-     If newmem is NULL, then the old chunk will still be used though,
-     so we need to invert that change here.  */
-invert:
-  if (newmem == NULL)
-    *magic_p ^= 0xFF;
-  DIAG_POP_NEEDS_COMMENT;
-
-  __libc_lock_unlock (main_arena.mutex);
-
-  return mem2mem_check (tag_new_usable (newmem), bytes);
-}
-
-static void *
-memalign_check (size_t alignment, size_t bytes)
-{
-  void *mem;
-
-  if (alignment <= MALLOC_ALIGNMENT)
-    return malloc_check (bytes);
-
-  if (alignment < MINSIZE)
-    alignment = MINSIZE;
-
-  /* If the alignment is greater than SIZE_MAX / 2 + 1 it cannot be a
-     power of 2 and will cause overflow in the check below.  */
-  if (alignment > SIZE_MAX / 2 + 1)
-    {
-      __set_errno (EINVAL);
-      return NULL;
-    }
-
-  /* Check for overflow.  */
-  if (bytes > SIZE_MAX - alignment - MINSIZE)
-    {
-      __set_errno (ENOMEM);
-      return NULL;
-    }
-
-  /* Make sure alignment is power of 2.  */
-  if (!powerof2 (alignment))
-    {
-      size_t a = MALLOC_ALIGNMENT * 2;
-      while (a < alignment)
-        a <<= 1;
-      alignment = a;
-    }
-
-  __libc_lock_lock (main_arena.mutex);
-  top_check ();
-  mem = _int_memalign (&main_arena, alignment, bytes + 1);
-  __libc_lock_unlock (main_arena.mutex);
-  return mem2mem_check (tag_new_usable (mem), bytes);
-}
-
-#if HAVE_TUNABLES
-static void
-TUNABLE_CALLBACK (set_mallopt_check) (tunable_val_t *valp)
-{
-  int32_t value = (int32_t) valp->numval;
-  if (value != 0)
-    __malloc_debug_enable (MALLOC_CHECK_HOOK);
-}
-#endif
-
-static bool
-initialize_malloc_check (void)
-{
-  /* This is the copy of the malloc initializer that we pulled in along with
-     malloc-check.  This does not affect any of the libc malloc structures.  */
-  ptmalloc_init ();
-#if HAVE_TUNABLES
-  TUNABLE_GET (check, int32_t, TUNABLE_CALLBACK (set_mallopt_check));
-#else
-  const char *s = secure_getenv ("MALLOC_CHECK_");
-  if (s && s[0] != '\0' && s[0] != '0')
-    __malloc_debug_enable (MALLOC_CHECK_HOOK);
-#endif
-  return __is_malloc_debug_enabled (MALLOC_CHECK_HOOK);
-}
Index: sources/GNU/glibc/2.37/create-2.37-zonefile-patch/file.list
===================================================================
--- sources/GNU/glibc/2.37/create-2.37-zonefile-patch/file.list	(revision 393)
+++ sources/GNU/glibc/2.37/create-2.37-zonefile-patch/file.list	(nonexistent)
@@ -1 +0,0 @@
-glibc-2.37/time/tzfile.c
Index: sources/GNU/glibc/2.37/create-2.37-zonefile-patch/create.patch.sh
===================================================================
--- sources/GNU/glibc/2.37/create-2.37-zonefile-patch/create.patch.sh	(revision 393)
+++ sources/GNU/glibc/2.37/create-2.37-zonefile-patch/create.patch.sh	(nonexistent)
@@ -1,15 +0,0 @@
-#!/bin/sh
-
-VERSION=2.37
-
-tar --files-from=file.list -xJvf ../glibc-$VERSION.tar.xz
-mv glibc-$VERSION glibc-$VERSION-orig
-
-cp -rf ./glibc-$VERSION-new ./glibc-$VERSION
-
-diff --unified -Nr  glibc-$VERSION-orig  glibc-$VERSION > glibc-$VERSION-zonefile.patch
-
-mv glibc-$VERSION-zonefile.patch ../patches
-
-rm -rf ./glibc-$VERSION
-rm -rf ./glibc-$VERSION-orig

Property changes on: sources/GNU/glibc/2.37/create-2.37-zonefile-patch/create.patch.sh
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: sources/GNU/glibc/2.37/create-2.37-zonefile-patch/glibc-2.37-new/time/tzfile.c
===================================================================
--- sources/GNU/glibc/2.37/create-2.37-zonefile-patch/glibc-2.37-new/time/tzfile.c	(revision 393)
+++ sources/GNU/glibc/2.37/create-2.37-zonefile-patch/glibc-2.37-new/time/tzfile.c	(nonexistent)
@@ -1,782 +0,0 @@
-/* Copyright (C) 1991-2023 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <https://www.gnu.org/licenses/>.  */
-
-#include <assert.h>
-#include <limits.h>
-#include <stdio.h>
-#include <stdio_ext.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-#include <unistd.h>
-#include <sys/stat.h>
-#include <stdint.h>
-#include <alloc_buffer.h>
-
-#include <timezone/tzfile.h>
-
-int __use_tzfile;
-static dev_t tzfile_dev;
-static ino64_t tzfile_ino;
-static __time64_t tzfile_mtime;
-
-struct ttinfo
-  {
-    int offset;			/* Seconds east of GMT.  */
-    unsigned char isdst;	/* Used to set tm_isdst.  */
-    unsigned char idx;		/* Index into `zone_names'.  */
-    unsigned char isstd;	/* Transition times are in standard time.  */
-    unsigned char isut;		/* Transition times are in UT.  */
-  };
-
-struct leap
-  {
-    __time64_t transition;	/* Time the transition takes effect.  */
-    long int change;		/* Seconds of correction to apply.  */
-  };
-
-static size_t num_transitions;
-libc_freeres_ptr (static __time64_t *transitions);
-static unsigned char *type_idxs;
-static size_t num_types;
-static struct ttinfo *types;
-static char *zone_names;
-static long int rule_stdoff;
-static long int rule_dstoff;
-static size_t num_leaps;
-static struct leap *leaps;
-static char *tzspec;
-
-/* Used to restore the daylight variable during time conversion, as if
-   tzset had been called.  */
-static int daylight_saved;
-
-#include <endian.h>
-#include <byteswap.h>
-
-/* Decode the four bytes at PTR as a signed integer in network byte order.  */
-static inline int
-__attribute ((always_inline))
-decode (const void *ptr)
-{
-  if (BYTE_ORDER == BIG_ENDIAN && sizeof (int) == 4)
-    return *(const int *) ptr;
-  if (sizeof (int) == 4)
-    return bswap_32 (*(const int *) ptr);
-
-  const unsigned char *p = ptr;
-  int result = *p & (1 << (CHAR_BIT - 1)) ? ~0 : 0;
-
-  result = (result << 8) | *p++;
-  result = (result << 8) | *p++;
-  result = (result << 8) | *p++;
-  result = (result << 8) | *p++;
-
-  return result;
-}
-
-
-static inline int64_t
-__attribute ((always_inline))
-decode64 (const void *ptr)
-{
-  if ((BYTE_ORDER == BIG_ENDIAN))
-    return *(const int64_t *) ptr;
-
-  return bswap_64 (*(const int64_t *) ptr);
-}
-
-
-void
-__tzfile_read (const char *file, size_t extra, char **extrap)
-{
-  static const char default_tzdir[] = TZDIR;
-  size_t num_isstd, num_isut;
-  FILE *f;
-  struct tzhead tzhead;
-  size_t chars;
-  size_t i;
-  int was_using_tzfile = __use_tzfile;
-  int trans_width = 4;
-  char *new = NULL;
-
-  _Static_assert (sizeof (__time64_t) == 8,
-		  "__time64_t must be eight bytes");
-
-  __use_tzfile = 0;
-
-  if (file == NULL)
-    /* No user specification; use the site-wide default.  */
-    file = TZDEFAULT;
-  else if (*file == '\0')
-    /* User specified the empty string; use UTC with no leap seconds.  */
-    goto ret_free_transitions;
-  else
-    {
-      /* We must not allow to read an arbitrary file in a setuid
-	 program.  So we fail for any file which is not in the
-	 directory hierachy starting at TZDIR
-	 and which is not the system wide default TZDEFAULT.  */
-      if (__libc_enable_secure
-	  && ((*file == '/'
-	       && memcmp (file, TZDEFAULT, sizeof TZDEFAULT)
-	       && memcmp (file, default_tzdir, sizeof (default_tzdir) - 1))
-	      || strstr (file, "../") != NULL))
-	/* This test is certainly a bit too restrictive but it should
-	   catch all critical cases.  */
-	goto ret_free_transitions;
-    }
-
-  if (*file != '/')
-    {
-      const char *tzdir;
-
-      tzdir = getenv ("TZDIR");
-      if (tzdir == NULL || *tzdir == '\0')
-	tzdir = default_tzdir;
-      if (__asprintf (&new, "%s/%s", tzdir, file) == -1)
-	goto ret_free_transitions;
-      file = new;
-    }
-
-  /* If we were already using tzfile, check whether the file changed.  */
-  struct __stat64_t64 st;
-  if (was_using_tzfile
-      && __stat64_time64 (file, &st) == 0
-      && tzfile_ino == st.st_ino && tzfile_dev == st.st_dev
-      && tzfile_mtime == st.st_mtime)
-    goto done;  /* Nothing to do.  */
-
-  /* Note the file is opened with cancellation in the I/O functions
-     disabled and if available FD_CLOEXEC set.  */
-  f = fopen (file, "rce");
-  if (f == NULL)
-    goto ret_free_transitions;
-
-  /* Get information about the file we are actually using.  */
-  if (__fstat64_time64 (__fileno (f), &st) != 0)
-    goto lose;
-
-  free ((void *) transitions);
-  transitions = NULL;
-
-  /* Remember the inode and device number and modification time.  */
-  tzfile_dev = st.st_dev;
-  tzfile_ino = st.st_ino;
-  tzfile_mtime = st.st_mtime;
-
-  /* No threads reading this stream.  */
-  __fsetlocking (f, FSETLOCKING_BYCALLER);
-
- read_again:
-  if (__builtin_expect (__fread_unlocked ((void *) &tzhead, sizeof (tzhead),
-					  1, f) != 1, 0)
-      || memcmp (tzhead.tzh_magic, TZ_MAGIC, sizeof (tzhead.tzh_magic)) != 0)
-    goto lose;
-
-  num_transitions = (size_t) decode (tzhead.tzh_timecnt);
-  num_types = (size_t) decode (tzhead.tzh_typecnt);
-  chars = (size_t) decode (tzhead.tzh_charcnt);
-  num_leaps = (size_t) decode (tzhead.tzh_leapcnt);
-  num_isstd = (size_t) decode (tzhead.tzh_ttisstdcnt);
-  num_isut  = (size_t) decode (tzhead.tzh_ttisutcnt);
-
-  if (__glibc_unlikely (num_isstd > num_types || num_isut > num_types))
-    goto lose;
-
-  if (trans_width == 4 && tzhead.tzh_version[0] != '\0')
-    {
-      /* We use the 8-byte format.  */
-      trans_width = 8;
-
-      /* Position the stream before the second header.  */
-      size_t to_skip = (num_transitions * (4 + 1)
-			+ num_types * 6
-			+ chars
-			+ num_leaps * 8
-			+ num_isstd
-			+ num_isut);
-      if (fseek (f, to_skip, SEEK_CUR) != 0)
-	goto lose;
-
-      goto read_again;
-    }
-
-  /* Compute the size of the POSIX time zone specification in the
-     file.  */
-  size_t tzspec_len;
-  if (trans_width == 8)
-    {
-      off_t rem = st.st_size - __ftello (f);
-      if (__builtin_expect (rem < 0
-			    || (size_t) rem < (num_transitions * (8 + 1)
-					       + num_types * 6
-					       + chars), 0))
-	goto lose;
-      tzspec_len = (size_t) rem - (num_transitions * (8 + 1)
-				   + num_types * 6
-				   + chars);
-      if (__builtin_expect (num_leaps > SIZE_MAX / 12
-			    || tzspec_len < num_leaps * 12, 0))
-	goto lose;
-      tzspec_len -= num_leaps * 12;
-      if (__glibc_unlikely (tzspec_len < num_isstd))
-	goto lose;
-      tzspec_len -= num_isstd;
-      if (__glibc_unlikely (tzspec_len == 0 || tzspec_len - 1 < num_isut))
-	goto lose;
-      tzspec_len -= num_isut + 1;
-      if (tzspec_len == 0)
-	goto lose;
-    }
-  else
-    tzspec_len = 0;
-
-  /* The file is parsed into a single heap allocation, comprising of
-     the following arrays:
-
-     __time64_t transitions[num_transitions];
-     struct leap leaps[num_leaps];
-     struct ttinfo types[num_types];
-     unsigned char type_idxs[num_types];
-     char zone_names[chars];
-     char tzspec[tzspec_len];
-     char extra_array[extra]; // Stored into *pextras if requested.
-
-     The piece-wise allocations from buf below verify that no
-     overflow/wraparound occurred in these computations.
-
-     The order of the suballocations is important for alignment
-     purposes.  __time64_t outside a struct may require more alignment
-     then inside a struct on some architectures, so it must come
-     first. */
-  _Static_assert (__alignof (__time64_t) >= __alignof (struct leap),
-		  "alignment of __time64_t");
-  _Static_assert (__alignof (struct leap) >= __alignof (struct ttinfo),
-		  "alignment of struct leap");
-  struct alloc_buffer buf;
-  {
-    size_t total_size = (num_transitions * sizeof (__time64_t)
-			 + num_leaps * sizeof (struct leap)
-			 + num_types * sizeof (struct ttinfo)
-			 + num_transitions /* type_idxs */
-			 + chars /* zone_names */
-			 + tzspec_len + extra);
-    transitions = malloc (total_size);
-    if (transitions == NULL)
-      goto lose;
-    buf = alloc_buffer_create (transitions, total_size);
-  }
-
-  /* The address of the first allocation is already stored in the
-     pointer transitions.  */
-  (void) alloc_buffer_alloc_array (&buf, __time64_t, num_transitions);
-  leaps = alloc_buffer_alloc_array (&buf, struct leap, num_leaps);
-  types = alloc_buffer_alloc_array (&buf, struct ttinfo, num_types);
-  type_idxs = alloc_buffer_alloc_array (&buf, unsigned char, num_transitions);
-  zone_names = alloc_buffer_alloc_array (&buf, char, chars);
-  if (trans_width == 8)
-    tzspec = alloc_buffer_alloc_array (&buf, char, tzspec_len);
-  else
-    tzspec = NULL;
-  if (extra > 0)
-    *extrap = alloc_buffer_alloc_array (&buf, char, extra);
-  if (alloc_buffer_has_failed (&buf))
-    goto lose;
-
-  if (__glibc_unlikely (__fread_unlocked (transitions, trans_width,
-					  num_transitions, f)
-			!= num_transitions)
-      || __glibc_unlikely (__fread_unlocked (type_idxs, 1, num_transitions, f)
-			   != num_transitions))
-	goto lose;
-
-  /* Check for bogus indices in the data file, so we can hereafter
-     safely use type_idxs[T] as indices into `types' and never crash.  */
-  for (i = 0; i < num_transitions; ++i)
-    if (__glibc_unlikely (type_idxs[i] >= num_types))
-      goto lose;
-
-  if (trans_width == 4)
-    {
-      /* Decode the transition times, stored as 4-byte integers in
-	 network (big-endian) byte order.  We work from the end of the
-	 array so as not to clobber the next element to be
-	 processed.  */
-      i = num_transitions;
-      while (i-- > 0)
-	transitions[i] = decode ((char *) transitions + i * 4);
-    }
-  else if (BYTE_ORDER != BIG_ENDIAN)
-    {
-      /* Decode the transition times, stored as 8-byte integers in
-	 network (big-endian) byte order.  */
-      for (i = 0; i < num_transitions; ++i)
-	transitions[i] = decode64 ((char *) transitions + i * 8);
-    }
-
-  for (i = 0; i < num_types; ++i)
-    {
-      unsigned char x[4];
-      int c;
-      if (__builtin_expect (__fread_unlocked (x, 1,
-					      sizeof (x), f) != sizeof (x),
-			    0))
-	goto lose;
-      c = __getc_unlocked (f);
-      if (__glibc_unlikely ((unsigned int) c > 1u))
-	goto lose;
-      types[i].isdst = c;
-      c = __getc_unlocked (f);
-      if (__glibc_unlikely ((size_t) c > chars))
-	/* Bogus index in data file.  */
-	goto lose;
-      types[i].idx = c;
-      types[i].offset = decode (x);
-    }
-
-  if (__glibc_unlikely (__fread_unlocked (zone_names, 1, chars, f) != chars))
-    goto lose;
-
-  for (i = 0; i < num_leaps; ++i)
-    {
-      unsigned char x[8];
-      if (__builtin_expect (__fread_unlocked (x, 1, trans_width, f)
-			    != trans_width, 0))
-	goto lose;
-      if (trans_width == 4)
-	leaps[i].transition = decode (x);
-      else
-	leaps[i].transition = decode64 (x);
-
-      if (__glibc_unlikely (__fread_unlocked (x, 1, 4, f) != 4))
-	goto lose;
-      leaps[i].change = (long int) decode (x);
-    }
-
-  for (i = 0; i < num_isstd; ++i)
-    {
-      int c = __getc_unlocked (f);
-      if (__glibc_unlikely (c == EOF))
-	goto lose;
-      types[i].isstd = c != 0;
-    }
-  while (i < num_types)
-    types[i++].isstd = 0;
-
-  for (i = 0; i < num_isut; ++i)
-    {
-      int c = __getc_unlocked (f);
-      if (__glibc_unlikely (c == EOF))
-	goto lose;
-      types[i].isut = c != 0;
-    }
-  while (i < num_types)
-    types[i++].isut = 0;
-
-  /* Read the POSIX TZ-style information if possible.  */
-  if (tzspec != NULL)
-    {
-      assert (tzspec_len > 0);
-      /* Skip over the newline first.  */
-      if (__getc_unlocked (f) != '\n'
-	  || (__fread_unlocked (tzspec, 1, tzspec_len - 1, f)
-	      != tzspec_len - 1))
-	tzspec = NULL;
-      else
-	tzspec[tzspec_len - 1] = '\0';
-    }
-
-  /* Don't use an empty TZ string.  */
-  if (tzspec != NULL && tzspec[0] == '\0')
-    tzspec = NULL;
-
-  fclose (f);
-
-  /* First "register" all timezone names.  */
-  for (i = 0; i < num_types; ++i)
-    if (__tzstring (&zone_names[types[i].idx]) == NULL)
-      goto ret_free_transitions;
-
-  /* Find the standard and daylight time offsets used by the rule file.
-     We choose the offsets in the types of each flavor that are
-     transitioned to earliest in time.  */
-  __tzname[0] = NULL;
-  __tzname[1] = NULL;
-  for (i = num_transitions; i > 0; )
-    {
-      int type = type_idxs[--i];
-      int dst = types[type].isdst;
-
-      if (__tzname[dst] == NULL)
-	{
-	  int idx = types[type].idx;
-
-	  __tzname[dst] = __tzstring (&zone_names[idx]);
-
-	  if (__tzname[1 - dst] != NULL)
-	    break;
-	}
-    }
-  if (__tzname[0] == NULL)
-    {
-      /* This should only happen if there are no transition rules.
-	 In this case there's usually only one single type, unless
-	 e.g. the data file has a truncated time-range.  */
-      __tzname[0] = __tzstring (zone_names);
-    }
-  if (__tzname[1] == NULL)
-    __tzname[1] = __tzname[0];
-
-  daylight_saved = 0;
-  if (num_transitions == 0)
-    /* Use the first rule (which should also be the only one).  */
-    rule_stdoff = rule_dstoff = types[0].offset;
-  else
-    {
-      rule_stdoff = 0;
-
-      /* Search for the last rule with a standard time offset.  This
-	 will be used for the global timezone variable.  */
-      i = num_transitions - 1;
-      do
-	if (!types[type_idxs[i]].isdst)
-	  {
-	    rule_stdoff = types[type_idxs[i]].offset;
-	    break;
-	  }
-	else
-	  daylight_saved = 1;
-      while (i-- > 0);
-
-      /* Keep searching to see if there is a DST rule.  This
-	 information will be used to set the global daylight
-	 variable.  */
-      while (i-- > 0 && !daylight_saved)
-	daylight_saved = types[type_idxs[i]].isdst;
-    }
-
-  __daylight = daylight_saved;
-  __timezone = -rule_stdoff;
-
- done:
-  __use_tzfile = 1;
-  free (new);
-  return;
-
- lose:
-  fclose (f);
- ret_free_transitions:
-  free (new);
-  free ((void *) transitions);
-  transitions = NULL;
-}
-
-/* The user specified a hand-made timezone, but not its DST rules.
-   We will use the names and offsets from the user, and the rules
-   from the TZDEFRULES file.  */
-
-void
-__tzfile_default (const char *std, const char *dst,
-		  int stdoff, int dstoff)
-{
-  size_t stdlen = strlen (std) + 1;
-  size_t dstlen = strlen (dst) + 1;
-  size_t i;
-  int isdst;
-  char *cp;
-
-  __tzfile_read (TZDEFRULES, stdlen + dstlen, &cp);
-  if (!__use_tzfile)
-    return;
-
-  if (num_types < 2)
-    {
-      __use_tzfile = 0;
-      return;
-    }
-
-  /* Ignore the zone names read from the file and use the given ones
-     instead.  */
-  __mempcpy (__mempcpy (cp, std, stdlen), dst, dstlen);
-  zone_names = cp;
-
-  /* Now there are only two zones, regardless of what the file contained.  */
-  num_types = 2;
-
-  /* Now correct the transition times for the user-specified standard and
-     daylight offsets from GMT.  */
-  isdst = 0;
-  for (i = 0; i < num_transitions; ++i)
-    {
-      struct ttinfo *trans_type = &types[type_idxs[i]];
-
-      /* We will use only types 0 (standard) and 1 (daylight).
-	 Fix up this transition to point to whichever matches
-	 the flavor of its original type.  */
-      type_idxs[i] = trans_type->isdst;
-
-      if (trans_type->isut)
-	/* The transition time is in UT.  No correction to apply.  */ ;
-      else if (isdst && !trans_type->isstd)
-	/* The type says this transition is in "local wall clock time", and
-	   wall clock time as of the previous transition was DST.  Correct
-	   for the difference between the rule's DST offset and the user's
-	   DST offset.  */
-	transitions[i] += dstoff - rule_dstoff;
-      else
-	/* This transition is in "local wall clock time", and wall clock
-	   time as of this iteration is non-DST.  Correct for the
-	   difference between the rule's standard offset and the user's
-	   standard offset.  */
-	transitions[i] += stdoff - rule_stdoff;
-
-      /* The DST state of "local wall clock time" for the next iteration is
-	 as specified by this transition.  */
-      isdst = trans_type->isdst;
-    }
-
-  /* Now that we adjusted the transitions to the requested offsets,
-     reset the rule_stdoff and rule_dstoff values appropriately.  They
-     are used elsewhere.  */
-  rule_stdoff = stdoff;
-  rule_dstoff = dstoff;
-
-  /* Reset types 0 and 1 to describe the user's settings.  */
-  types[0].idx = 0;
-  types[0].offset = stdoff;
-  types[0].isdst = 0;
-  types[1].idx = stdlen;
-  types[1].offset = dstoff;
-  types[1].isdst = 1;
-
-  /* Reset the zone names to point to the user's names.  */
-  __tzname[0] = (char *) std;
-  __tzname[1] = (char *) dst;
-
-  /* Set the timezone.  */
-  __timezone = -types[0].offset;
-
-  /* Invalidate the tzfile attribute cache to force rereading
-     TZDEFRULES the next time it is used.  */
-  tzfile_dev = 0;
-  tzfile_ino = 0;
-  tzfile_mtime = 0;
-}
-
-void
-__tzfile_compute (__time64_t timer, int use_localtime,
-		  long int *leap_correct, int *leap_hit,
-		  struct tm *tp)
-{
-  size_t i;
-
-  if (use_localtime)
-    {
-      __tzname[0] = NULL;
-      __tzname[1] = NULL;
-
-      if (__glibc_unlikely (num_transitions == 0 || timer < transitions[0]))
-	{
-	  /* TIMER is before any transition (or there are no transitions).
-	     Choose the first non-DST type
-	     (or the first if they're all DST types).  */
-	  i = 0;
-	  while (i < num_types && types[i].isdst)
-	    {
-	      if (__tzname[1] == NULL)
-		__tzname[1] = __tzstring (&zone_names[types[i].idx]);
-
-	      ++i;
-	    }
-
-	  if (i == num_types)
-	    i = 0;
-	  __tzname[0] = __tzstring (&zone_names[types[i].idx]);
-	  if (__tzname[1] == NULL)
-	    {
-	      size_t j = i;
-	      while (j < num_types)
-		if (types[j].isdst)
-		  {
-		    __tzname[1] = __tzstring (&zone_names[types[j].idx]);
-		    break;
-		  }
-		else
-		  ++j;
-	    }
-	}
-      else if (__glibc_unlikely (timer >= transitions[num_transitions - 1]))
-	{
-	  if (__glibc_unlikely (tzspec == NULL))
-	    {
-	    use_last:
-	      i = num_transitions;
-	      goto found;
-	    }
-
-	  /* Parse the POSIX TZ-style string.  */
-	  __tzset_parse_tz (tzspec);
-
-	  /* Convert to broken down structure.  If this fails do not
-	     use the string.  */
-	  if (__glibc_unlikely (! __offtime (timer, 0, tp)))
-	    goto use_last;
-
-	  /* Use the rules from the TZ string to compute the change.  */
-	  __tz_compute (timer, tp, 1);
-
-	  /* If tzspec comes from posixrules loaded by __tzfile_default,
-	     override the STD and DST zone names with the ones user
-	     requested in TZ envvar.  */
-	  if (__glibc_unlikely (zone_names == (char *) &leaps[num_leaps]))
-	    {
-	      assert (num_types == 2);
-	      __tzname[0] = __tzstring (zone_names);
-	      __tzname[1] = __tzstring (&zone_names[strlen (zone_names) + 1]);
-	    }
-
-	  goto leap;
-	}
-      else
-	{
-	  /* Find the first transition after TIMER, and
-	     then pick the type of the transition before it.  */
-	  size_t lo = 0;
-	  size_t hi = num_transitions - 1;
-	  /* Assume that DST is changing twice a year and guess
-	     initial search spot from it.  Half of a gregorian year
-	     has on average 365.2425 * 86400 / 2 = 15778476 seconds.
-	     The value i can be truncated if size_t is smaller than
-	     __time64_t, but this is harmless because it is just
-	     a guess.  */
-	  i = (transitions[num_transitions - 1] - timer) / 15778476;
-	  if (i < num_transitions)
-	    {
-	      i = num_transitions - 1 - i;
-	      if (timer < transitions[i])
-		{
-		  if (i < 10 || timer >= transitions[i - 10])
-		    {
-		      /* Linear search.  */
-		      while (timer < transitions[i - 1])
-			--i;
-		      goto found;
-		    }
-		  hi = i - 10;
-		}
-	      else
-		{
-		  if (i + 10 >= num_transitions || timer < transitions[i + 10])
-		    {
-		      /* Linear search.  */
-		      while (timer >= transitions[i])
-			++i;
-		      goto found;
-		    }
-		  lo = i + 10;
-		}
-	    }
-
-	  /* Binary search.  */
-	  /* assert (timer >= transitions[lo] && timer < transitions[hi]); */
-	  while (lo + 1 < hi)
-	    {
-	      i = (lo + hi) / 2;
-	      if (timer < transitions[i])
-		hi = i;
-	      else
-		lo = i;
-	    }
-	  i = hi;
-
-	found:
-	  /* assert (timer >= transitions[i - 1]
-	     && (i == num_transitions || timer < transitions[i])); */
-	  __tzname[types[type_idxs[i - 1]].isdst]
-	    = __tzstring (&zone_names[types[type_idxs[i - 1]].idx]);
-	  size_t j = i;
-	  while (j < num_transitions)
-	    {
-	      int type = type_idxs[j];
-	      int dst = types[type].isdst;
-	      int idx = types[type].idx;
-
-	      if (__tzname[dst] == NULL)
-		{
-		  __tzname[dst] = __tzstring (&zone_names[idx]);
-
-		  if (__tzname[1 - dst] != NULL)
-		    break;
-		}
-
-	      ++j;
-	    }
-
-	  if (__glibc_unlikely (__tzname[0] == NULL))
-	    __tzname[0] = __tzname[1];
-
-	  i = type_idxs[i - 1];
-	}
-
-      struct ttinfo *info = &types[i];
-      __daylight = daylight_saved;
-      __timezone = -rule_stdoff;
-
-      if (__tzname[0] == NULL)
-	{
-	  /* This should only happen if there are no transition rules.
-	     In this case there should be only one single type.  */
-	  assert (num_types == 1);
-	  __tzname[0] = __tzstring (zone_names);
-	}
-      if (__tzname[1] == NULL)
-	/* There is no daylight saving time.  */
-	__tzname[1] = __tzname[0];
-      tp->tm_isdst = info->isdst;
-      assert (strcmp (&zone_names[info->idx], __tzname[tp->tm_isdst]) == 0);
-      tp->tm_zone = __tzname[tp->tm_isdst];
-      tp->tm_gmtoff = info->offset;
-    }
-
- leap:
-  *leap_correct = 0L;
-  *leap_hit = 0;
-
-  /* Find the last leap second correction transition time before TIMER.  */
-  i = num_leaps;
-  do
-    if (i-- == 0)
-      return;
-  while (timer < leaps[i].transition);
-
-  /* Apply its correction.  */
-  *leap_correct = leaps[i].change;
-
-  if (timer == leaps[i].transition /* Exactly at the transition time.  */
-      && (leaps[i].change > (i == 0 ? 0 : leaps[i - 1].change)))
-    {
-      *leap_hit = 1;
-      while (i > 0
-	     && leaps[i].transition == leaps[i - 1].transition + 1
-	     && leaps[i].change == leaps[i - 1].change + 1)
-	{
-	  ++*leap_hit;
-	  --i;
-	}
-    }
-}
Index: sources/GNU/glibc/2.37/create-2.37-zoneinfo-patch/file.list
===================================================================
--- sources/GNU/glibc/2.37/create-2.37-zoneinfo-patch/file.list	(revision 393)
+++ sources/GNU/glibc/2.37/create-2.37-zoneinfo-patch/file.list	(nonexistent)
@@ -1 +0,0 @@
-glibc-2.37/timezone/Makefile
Index: sources/GNU/glibc/2.37/create-2.37-zoneinfo-patch/create.patch.sh
===================================================================
--- sources/GNU/glibc/2.37/create-2.37-zoneinfo-patch/create.patch.sh	(revision 393)
+++ sources/GNU/glibc/2.37/create-2.37-zoneinfo-patch/create.patch.sh	(nonexistent)
@@ -1,15 +0,0 @@
-#!/bin/sh
-
-VERSION=2.37
-
-tar --files-from=file.list -xJvf ../glibc-$VERSION.tar.xz
-mv glibc-$VERSION glibc-$VERSION-orig
-
-cp -rf ./glibc-$VERSION-new ./glibc-$VERSION
-
-diff --unified -Nr  glibc-$VERSION-orig  glibc-$VERSION > glibc-$VERSION-zoneinfo.patch
-
-mv glibc-$VERSION-zoneinfo.patch ../patches
-
-rm -rf ./glibc-$VERSION
-rm -rf ./glibc-$VERSION-orig

Property changes on: sources/GNU/glibc/2.37/create-2.37-zoneinfo-patch/create.patch.sh
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: sources/GNU/glibc/2.37/create-2.37-zoneinfo-patch/glibc-2.37-new/timezone/Makefile
===================================================================
--- sources/GNU/glibc/2.37/create-2.37-zoneinfo-patch/glibc-2.37-new/timezone/Makefile	(revision 393)
+++ sources/GNU/glibc/2.37/create-2.37-zoneinfo-patch/glibc-2.37-new/timezone/Makefile	(nonexistent)
@@ -1,141 +0,0 @@
-# Copyright (C) 1998-2023 Free Software Foundation, Inc.
-# This file is part of the GNU C Library.
-
-# The GNU C Library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-
-# The GNU C Library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-
-# You should have received a copy of the GNU Lesser General Public
-# License along with the GNU C Library; if not, see
-# <https://www.gnu.org/licenses/>.
-
-#
-#	Makefile for timezone information
-#
-subdir	:= timezone
-
-include ../Makeconfig
-
-others	:= zdump zic
-tests	:= test-tz tst-timezone tst-tzset tst-bz28707 tst-bz29951
-
-generated-dirs += testdata
-
-generated += tzselect
-
-testdata = $(objpfx)testdata
-
-ifeq ($(enable-timezone-tools),yes)
-install-sbin := zic
-install-bin := zdump
-install-bin-script = tzselect
-endif
-
-ifeq ($(run-built-tests),yes)
-# List zones generated by separate commands running zic on the host.
-# Each such zic run counts as a separate test.
-test-zones := America/New_York Etc/UTC UTC Europe/Berlin \
-	      Australia/Melbourne America/Sao_Paulo Asia/Tokyo \
-	      $(posixrules-file)
-tests-special += $(addprefix $(testdata)/, $(test-zones))
-endif
-
-include ../Rules
-
-
-$(objpfx)zic.o $(objpfx)zdump.o: $(objpfx)version.h
-
-$(objpfx)version.h: $(common-objpfx)config.make
-	echo 'static char const TZVERSION[]="$(version)";' \
-	    > $@.new
-	mv -f $@.new $@
-
-tz-cflags = -DTZDIR='"$(zonedir)"' \
-	    -DTZDEFAULT='"$(localtime-file)"' \
-	    -DTZDEFRULES='"$(posixrules-file)"' \
-	    -DTM_GMTOFF=tm_gmtoff -DTM_ZONE=tm_zone \
-	    -DHAVE_GETTEXT -DUSE_LTZ=0 -D_ISOMAC -DTZ_DOMAIN='"libc"' \
-	    -include $(common-objpfx)config.h -Wno-maybe-uninitialized
-
-# The -Wno-unused-variable flag is used to prevent GCC 6
-# from warning about time_t_min and time_t_max which are
-# defined in private.h but not used.
-CFLAGS-zdump.c += $(tz-cflags)
-CFLAGS-zic.c += $(tz-cflags) -Wno-unused-variable
-
-# We have to make sure the data for testing the tz functions is available.
-# Don't add leapseconds here since test-tz made checks that work only without
-# leapseconds.
-define build-testdata
-$(built-program-cmd) -d $(testdata) -y ./yearistype $<; \
-$(evaluate-test)
-endef
-
-$(objpfx)test-tz.out: $(addprefix $(testdata)/, America/New_York Etc/UTC UTC)
-$(objpfx)tst-timezone.out: $(addprefix $(testdata)/, \
-				       Europe/Berlin Universal \
-				       Australia/Melbourne \
-				       America/New_York \
-				       America/Sao_Paulo Asia/Tokyo \
-				       Europe/London)
-$(objpfx)tst-tzset.out: $(addprefix $(testdata)/XT, 1 2 3 4)
-$(objpfx)tst-bz28707.out: $(testdata)/XT5
-$(objpfx)tst-bz29951.out: $(testdata)/XT6
-
-test-tz-ENV = TZDIR=$(testdata)
-tst-timezone-ENV = TZDIR=$(testdata)
-tst-tzset-ENV = TZDIR=$(testdata)
-tst-bz28707-ENV = TZDIR=$(testdata)
-tst-bz29951-ENV = TZDIR=$(testdata)
-
-# Note this must come second in the deps list for $(built-program-cmd) to work.
-zic-deps = $(objpfx)zic $(leapseconds) yearistype
-
-$(testdata)/America/New_York: northamerica $(zic-deps)
-	$(build-testdata)
-$(testdata)/$(posixrules-file): $(testdata)/America/New_York
-	$(make-link); $(evaluate-test)
-$(testdata)/Etc/UTC: etcetera $(zic-deps)
-	$(build-testdata)
-# Use a pattern rule to indicate the command produces both targets at once.
-# Two separate targets built separately can collide if in parallel.
-%/UTC %/Universal: simplebackw $(zic-deps) %/Etc/UTC
-	$(build-testdata)
-	{ test -r $(@D)/Universal.test-result \
-	&& cp $(@D)/Universal.test-result $(@D)/UTC.test-result \
-	&& sed -i 's/Universal/UTC/' $(@D)/UTC.test-result ; exit 0; }
-	{ test -r $(@D)/UTC.test-result \
-	&& cp $(@D)/UTC.test-result $(@D)/Universal.test-result \
-	&& sed -i 's/UTC/Universal/' $(@D)/Universal.test-result ; exit 0; }
-$(testdata)/%/Berlin $(testdata)/%/London: europe $(zic-deps)
-	$(build-testdata)
-$(testdata)/Australia/Melbourne: australasia $(zic-deps)
-	$(build-testdata)
-$(testdata)/America/Sao_Paulo: southamerica $(zic-deps)
-	$(build-testdata)
-$(testdata)/Asia/Tokyo: asia $(zic-deps)
-	$(build-testdata)
-
-$(testdata)/XT%: testdata/XT%
-	$(make-target-directory)
-	cp $< $@
-
-$(testdata)/XT5: testdata/gen-XT5.sh
-	$(make-target-directory)
-	$(SHELL) $< > $@.tmp
-	mv $@.tmp $@
-
-$(objpfx)tzselect: tzselect.ksh $(common-objpfx)config.make
-	sed -e '/TZDIR=/s|`pwd`|$(zonedir)|' \
-	    -e '/TZVERSION=/s|see_Makefile|"$(version)"|' \
-	    -e '/PKGVERSION=/s|=.*|="$(PKGVERSION)"|' \
-	    -e '/REPORT_BUGS_TO=/s|=.*|="$(REPORT_BUGS_TO)"|' \
-	    < $< > $@.new
-	chmod 555 $@.new
-	mv -f $@.new $@
Index: sources/GNU/glibc/2.37/Makefile
===================================================================
--- sources/GNU/glibc/2.37/Makefile	(revision 393)
+++ sources/GNU/glibc/2.37/Makefile	(nonexistent)
@@ -1,73 +0,0 @@
-
-COMPONENT_TARGETS = $(HARDWARE_NOARCH)
-
-
-include ../../../../build-system/constants.mk
-
-
-url         = $(DOWNLOAD_SERVER)/sources/GNU/glibc
-
-versions    = 2.37
-
-tarballs    = $(addsuffix .tar.xz, $(addprefix glibc-, $(versions)))
-
-sha1s       = $(addsuffix .sha1sum, $(tarballs))
-
-patches     = $(CURDIR)/patches/glibc-2.37-CVE-2023-25139.patch
-patches    += $(CURDIR)/patches/glibc-2.37-reenable-DT-HASH.patch
-patches    += $(CURDIR)/patches/glibc-2.37-en_US-no-am-pm.patch
-patches    += $(CURDIR)/patches/glibc-2.37-i18n.patch
-patches    += $(CURDIR)/patches/glibc-2.37-locale-no-archive.patch
-patches    += $(CURDIR)/patches/glibc-2.37-malloc-hooks.patch
-patches    += $(CURDIR)/patches/glibc-2.37-ppc64-interpreter.patch
-patches    += $(CURDIR)/patches/glibc-2.37-x86_64-interpreter.patch
-patches    += $(CURDIR)/patches/glibc-2.37-zonefile.patch
-patches    += $(CURDIR)/patches/glibc-2.37-zoneinfo.patch
-
-.NOTPARALLEL: $(patches)
-
-
-BUILD_TARGETS = $(tarballs) $(sha1s) $(patches)
-
-
-include ../../../../build-system/core.mk
-
-
-.PHONY: download_clean
-
-
-$(tarballs):
-	@echo -e "\n======= Downloading source tarballs =======" ; \
-	 for tarball in $(tarballs) ; do \
-	   echo "$(url)/$$tarball" | xargs -n 1 -P 100 wget $(WGET_OPTIONS) - & \
-	 done ; wait
-
-$(sha1s): $(tarballs)
-	@for sha in $@ ; do \
-	   echo -e "\n======= Downloading '$$sha' signature =======\n" ; \
-	   echo "$(url)/$$sha" | xargs -n 1 -P 100 wget $(WGET_OPTIONS) - & wait %1 ; \
-	   touch $$sha ; \
-	   echo -e "\n======= Check the '$$sha' sha1sum =======\n" ; \
-	   sha1sum --check $$sha ; ret="$$?" ; \
-	   if [ "$$ret" == "1" ]; then \
-	     echo -e "\n======= ERROR: Bad '$$sha' sha1sum =======\n" ; \
-	     exit 1 ; \
-	   fi ; \
-	 done
-
-$(patches): $(sha1s)
-	@echo -e "\n======= Create Patches =======\n" ; \
-	 ( cd create-2.37-CVE-2023-25139-patch     ; ./create.patch.sh ) ; \
-	 ( cd create-2.37-reenable-DT-HASH-patch   ; ./create.patch.sh ) ; \
-	 ( cd create-2.37-en_US-no-am-pm-patch     ; ./create.patch.sh ) ; \
-	 ( cd create-2.37-i18n-patch               ; ./create.patch.sh ) ; \
-	 ( cd create-2.37-locale-no-archive-patch  ; ./create.patch.sh ) ; \
-	 ( cd create-2.37-malloc-hooks-patch       ; ./create.patch.sh ) ; \
-	 ( cd create-2.37-ppc64-interpreter-patch  ; ./create.patch.sh ) ; \
-	 ( cd create-2.37-x86_64-interpreter-patch ; ./create.patch.sh ) ; \
-	 ( cd create-2.37-zonefile-patch           ; ./create.patch.sh ) ; \
-	 ( cd create-2.37-zoneinfo-patch           ; ./create.patch.sh ) ; \
-	 echo -e "\n"
-
-download_clean:
-	@rm -f $(tarballs) $(sha1s) $(patches)
Index: sources/GNU/glibc/2.37
===================================================================
--- sources/GNU/glibc/2.37	(revision 393)
+++ sources/GNU/glibc/2.37	(nonexistent)

Property changes on: sources/GNU/glibc/2.37
___________________________________________________________________
Deleted: svn:ignore
## -1,73 +0,0 ##
-
-# install dir
-dist
-
-# Target build dirs
-.a1x-newlib
-.a2x-newlib
-.at91sam7s-newlib
-
-.build-machine
-
-.a1x-glibc
-.a2x-glibc
-.h3-glibc
-.h5-glibc
-.i586-glibc
-.i686-glibc
-.imx6-glibc
-.jz47xx-glibc
-.makefile
-.am335x-glibc
-.omap543x-glibc
-.p5600-glibc
-.power8-glibc
-.power8le-glibc
-.power9-glibc
-.power9le-glibc
-.m1000-glibc
-.riscv64-glibc
-.rk328x-glibc
-.rk33xx-glibc
-.rk339x-glibc
-.s8xx-glibc
-.s9xx-glibc
-.x86_64-glibc
-
-# Hidden files (each file)
-.makefile
-.dist
-.rootfs
-
-# src & hw requires
-.src_requires
-.src_requires_depend
-.requires
-.requires_depend
-
-# Tarballs
-*.gz
-*.bz2
-*.lz
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Descriptions
-*.dsc
-*.txt
-
-# Default linux config files
-*.defconfig
-
-# backup copies
-*~
Index: sources/GNU/glibc/2.40/Makefile
===================================================================
--- sources/GNU/glibc/2.40/Makefile	(nonexistent)
+++ sources/GNU/glibc/2.40/Makefile	(revision 394)
@@ -0,0 +1,71 @@
+
+COMPONENT_TARGETS = $(HARDWARE_NOARCH)
+
+
+include ../../../../build-system/constants.mk
+
+
+url         = $(DOWNLOAD_SERVER)/sources/GNU/glibc
+
+versions    = 2.40
+
+tarballs    = $(addsuffix .tar.xz, $(addprefix glibc-, $(versions)))
+
+sha1s       = $(addsuffix .sha1sum, $(tarballs))
+
+patches     = $(CURDIR)/patches/glibc-2.40-reenable-DT-HASH.patch
+patches    += $(CURDIR)/patches/glibc-2.40-en_US-no-am-pm.patch
+patches    += $(CURDIR)/patches/glibc-2.40-i18n.patch
+patches    += $(CURDIR)/patches/glibc-2.40-locale-no-archive.patch
+patches    += $(CURDIR)/patches/glibc-2.40-malloc-hooks.patch
+patches    += $(CURDIR)/patches/glibc-2.40-ppc64-interpreter.patch
+patches    += $(CURDIR)/patches/glibc-2.40-x86_64-interpreter.patch
+patches    += $(CURDIR)/patches/glibc-2.40-zonefile.patch
+patches    += $(CURDIR)/patches/glibc-2.40-zoneinfo.patch
+
+.NOTPARALLEL: $(patches)
+
+
+BUILD_TARGETS = $(tarballs) $(sha1s) $(patches)
+
+
+include ../../../../build-system/core.mk
+
+
+.PHONY: download_clean
+
+
+$(tarballs):
+	@echo -e "\n======= Downloading source tarballs =======" ; \
+	 for tarball in $(tarballs) ; do \
+	   echo "$(url)/$$tarball" | xargs -n 1 -P 100 wget $(WGET_OPTIONS) - & \
+	 done ; wait
+
+$(sha1s): $(tarballs)
+	@for sha in $@ ; do \
+	   echo -e "\n======= Downloading '$$sha' signature =======\n" ; \
+	   echo "$(url)/$$sha" | xargs -n 1 -P 100 wget $(WGET_OPTIONS) - & wait %1 ; \
+	   touch $$sha ; \
+	   echo -e "\n======= Check the '$$sha' sha1sum =======\n" ; \
+	   sha1sum --check $$sha ; ret="$$?" ; \
+	   if [ "$$ret" == "1" ]; then \
+	     echo -e "\n======= ERROR: Bad '$$sha' sha1sum =======\n" ; \
+	     exit 1 ; \
+	   fi ; \
+	 done
+
+$(patches): $(sha1s)
+	@echo -e "\n======= Create Patches =======\n" ; \
+	 ( cd create-2.40-reenable-DT-HASH-patch   ; ./create.patch.sh ) ; \
+	 ( cd create-2.40-en_US-no-am-pm-patch     ; ./create.patch.sh ) ; \
+	 ( cd create-2.40-i18n-patch               ; ./create.patch.sh ) ; \
+	 ( cd create-2.40-locale-no-archive-patch  ; ./create.patch.sh ) ; \
+	 ( cd create-2.40-malloc-hooks-patch       ; ./create.patch.sh ) ; \
+	 ( cd create-2.40-ppc64-interpreter-patch  ; ./create.patch.sh ) ; \
+	 ( cd create-2.40-x86_64-interpreter-patch ; ./create.patch.sh ) ; \
+	 ( cd create-2.40-zonefile-patch           ; ./create.patch.sh ) ; \
+	 ( cd create-2.40-zoneinfo-patch           ; ./create.patch.sh ) ; \
+	 echo -e "\n"
+
+download_clean:
+	@rm -f $(tarballs) $(sha1s) $(patches)
Index: sources/GNU/glibc/2.40/create-2.40-en_US-no-am-pm-patch/create.patch.sh
===================================================================
--- sources/GNU/glibc/2.40/create-2.40-en_US-no-am-pm-patch/create.patch.sh	(nonexistent)
+++ sources/GNU/glibc/2.40/create-2.40-en_US-no-am-pm-patch/create.patch.sh	(revision 394)
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+VERSION=2.40
+
+tar --files-from=file.list -xJvf ../glibc-$VERSION.tar.xz
+mv glibc-$VERSION glibc-$VERSION-orig
+
+cp -rf ./glibc-$VERSION-new ./glibc-$VERSION
+
+diff --unified -Nr  glibc-$VERSION-orig  glibc-$VERSION > glibc-$VERSION-en_US-no-am-pm.patch
+
+mv glibc-$VERSION-en_US-no-am-pm.patch ../patches
+
+rm -rf ./glibc-$VERSION
+rm -rf ./glibc-$VERSION-orig

Property changes on: sources/GNU/glibc/2.40/create-2.40-en_US-no-am-pm-patch/create.patch.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: sources/GNU/glibc/2.40/create-2.40-en_US-no-am-pm-patch/file.list
===================================================================
--- sources/GNU/glibc/2.40/create-2.40-en_US-no-am-pm-patch/file.list	(nonexistent)
+++ sources/GNU/glibc/2.40/create-2.40-en_US-no-am-pm-patch/file.list	(revision 394)
@@ -0,0 +1 @@
+glibc-2.40/localedata/locales/en_US
Index: sources/GNU/glibc/2.40/create-2.40-en_US-no-am-pm-patch/glibc-2.40-new/localedata/locales/en_US
===================================================================
--- sources/GNU/glibc/2.40/create-2.40-en_US-no-am-pm-patch/glibc-2.40-new/localedata/locales/en_US	(nonexistent)
+++ sources/GNU/glibc/2.40/create-2.40-en_US-no-am-pm-patch/glibc-2.40-new/localedata/locales/en_US	(revision 394)
@@ -0,0 +1,183 @@
+comment_char %
+escape_char /
+
+% This file is part of the GNU C Library and contains locale data.
+% The Free Software Foundation does not claim any copyright interest
+% in the locale data contained in this file.  The foregoing does not
+% affect the license of the GNU C Library as a whole.  It does not
+% exempt you from the conditions of the license if your use would
+% otherwise be governed by that license.
+
+% Locale for English locale in the USA
+
+LC_IDENTIFICATION
+title      "English locale for the USA"
+source     "Free Software Foundation, Inc."
+address    "https:////www.gnu.org//software//libc//"
+contact    ""
+email      "bug-glibc-locales@gnu.org"
+tel        ""
+fax        ""
+language   "American English"
+territory  "United States"
+revision   "1.0"
+date       "2000-06-24"
+
+category "i18n:2012";LC_IDENTIFICATION
+category "i18n:2012";LC_CTYPE
+category "i18n:2012";LC_COLLATE
+category "i18n:2012";LC_TIME
+category "i18n:2012";LC_NUMERIC
+category "i18n:2012";LC_MONETARY
+category "i18n:2012";LC_MESSAGES
+category "i18n:2012";LC_PAPER
+category "i18n:2012";LC_NAME
+category "i18n:2012";LC_ADDRESS
+category "i18n:2012";LC_TELEPHONE
+category "i18n:2012";LC_MEASUREMENT
+END LC_IDENTIFICATION
+
+LC_CTYPE
+copy "i18n"
+
+translit_start
+include "translit_combining";""
+translit_end
+END LC_CTYPE
+
+LC_COLLATE
+
+% Copy the template from ISO/IEC 14651
+copy "iso14651_t1"
+
+END LC_COLLATE
+
+LC_MONETARY
+int_curr_symbol     "USD "
+currency_symbol     "$"
+mon_decimal_point   "."
+mon_thousands_sep   ","
+mon_grouping        3
+positive_sign       ""
+negative_sign       "-"
+int_frac_digits     2
+frac_digits         2
+p_cs_precedes       1
+int_p_sep_by_space  1
+p_sep_by_space      0
+n_cs_precedes       1
+int_n_sep_by_space  1
+n_sep_by_space      0
+p_sign_posn         1
+n_sign_posn         1
+%
+END LC_MONETARY
+
+LC_NUMERIC
+decimal_point   "."
+thousands_sep   ","
+grouping        3
+END LC_NUMERIC
+
+LC_TIME
+abday	"Sun";"Mon";"Tue";"Wed";"Thu";"Fri";"Sat"
+day	"Sunday";/
+	"Monday";/
+	"Tuesday";/
+	"Wednesday";/
+	"Thursday";/
+	"Friday";/
+	"Saturday"
+
+week 7;19971130;1
+abmon	"Jan";"Feb";/
+	"Mar";"Apr";/
+	"May";"Jun";/
+	"Jul";"Aug";/
+	"Sep";"Oct";/
+	"Nov";"Dec"
+mon	"January";/
+	"February";/
+	"March";/
+	"April";/
+	"May";/
+	"June";/
+	"July";/
+	"August";/
+	"September";/
+	"October";/
+	"November";/
+	"December"
+% Appropriate date and time representation (%c)
+d_t_fmt "%a %d %b %Y %r %Z"
+%
+% Appropriate date representation (%x)
+d_fmt   "%m//%d//%Y"
+%
+% Appropriate time representation (%X)
+t_fmt   "%r"
+%
+% Appropriate AM/PM time representation (%r)
+t_fmt_ampm "%I:%M:%S %p"
+%
+% Appropriate date and time representation for date(1).  This is
+% different from d_t_fmt for historical reasons and has been different
+% since 2000 when date_fmt was added as a GNU extension.  At the end
+% of 2018 it was adjusted to use 12H time (bug 24046) instead of 24H.
+% [ Slackware editor's note - no thank you, US users
+% of UNIX-like systems expect a 24 hour clock, just
+% like users in the vast majority of other locales. ]
+%date_fmt "%a %d %b %Y %r %Z"
+%
+% Strings for AM/PM
+%
+am_pm	"AM";"PM"
+END LC_TIME
+
+LC_MESSAGES
+yesexpr "^[+1yY]"
+noexpr  "^[-0nN]"
+yesstr  "yes"
+nostr   "no"
+END LC_MESSAGES
+
+LC_PAPER
+height   279
+width    216
+END LC_PAPER
+
+LC_NAME
+name_fmt    "%d%t%g%t%m%t%f"
+name_miss   "Miss."
+name_mr     "Mr."
+name_mrs    "Mrs."
+name_ms     "Ms."
+END LC_NAME
+
+
+LC_ADDRESS
+postal_fmt    "%a%N%f%N%d%N%b%N%h %s %e %r%N%T, %S %z%N%c%N"
+country_name "United States"
+country_post  "USA"
+country_ab2   "US"
+country_ab3   "USA"
+country_num   840
+country_car   "USA"
+country_isbn  0
+lang_name     "English"
+lang_ab      "en"
+lang_term    "eng"
+lang_lib    "eng"
+END LC_ADDRESS
+
+LC_TELEPHONE
+tel_int_fmt    "+%c (%a) %l"
+tel_dom_fmt    "(%a) %l"
+int_select     "11"
+int_prefix     "1"
+END LC_TELEPHONE
+
+LC_MEASUREMENT
+% US customary units.
+measurement 2
+END LC_MEASUREMENT
Index: sources/GNU/glibc/2.40/create-2.40-i18n-patch/create.patch.sh
===================================================================
--- sources/GNU/glibc/2.40/create-2.40-i18n-patch/create.patch.sh	(nonexistent)
+++ sources/GNU/glibc/2.40/create-2.40-i18n-patch/create.patch.sh	(revision 394)
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+VERSION=2.40
+
+tar --files-from=file.list -xJvf ../glibc-$VERSION.tar.xz
+mv glibc-$VERSION glibc-$VERSION-orig
+
+cp -rf ./glibc-$VERSION-new ./glibc-$VERSION
+
+diff --unified -Nr  glibc-$VERSION-orig  glibc-$VERSION > glibc-$VERSION-i18n.patch
+
+mv glibc-$VERSION-i18n.patch ../patches
+
+rm -rf ./glibc-$VERSION
+rm -rf ./glibc-$VERSION-orig

Property changes on: sources/GNU/glibc/2.40/create-2.40-i18n-patch/create.patch.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: sources/GNU/glibc/2.40/create-2.40-i18n-patch/file.list
===================================================================
--- sources/GNU/glibc/2.40/create-2.40-i18n-patch/file.list	(nonexistent)
+++ sources/GNU/glibc/2.40/create-2.40-i18n-patch/file.list	(revision 394)
@@ -0,0 +1,2 @@
+glibc-2.40/localedata/SUPPORTED
+glibc-2.40/localedata/locales/ru_RU
Index: sources/GNU/glibc/2.40/create-2.40-i18n-patch/glibc-2.40-new/localedata/SUPPORTED
===================================================================
--- sources/GNU/glibc/2.40/create-2.40-i18n-patch/glibc-2.40-new/localedata/SUPPORTED	(nonexistent)
+++ sources/GNU/glibc/2.40/create-2.40-i18n-patch/glibc-2.40-new/localedata/SUPPORTED	(revision 394)
@@ -0,0 +1,510 @@
+# This file names the currently supported and somewhat tested locales.
+# If you have any additions please file a glibc bug report.
+SUPPORTED-LOCALES=\
+aa_DJ.UTF-8/UTF-8 \
+aa_DJ/ISO-8859-1 \
+aa_ER/UTF-8 \
+aa_ET/UTF-8 \
+af_ZA.UTF-8/UTF-8 \
+af_ZA/ISO-8859-1 \
+agr_PE/UTF-8 \
+ak_GH/UTF-8 \
+am_ET/UTF-8 \
+an_ES.UTF-8/UTF-8 \
+an_ES/ISO-8859-15 \
+anp_IN/UTF-8 \
+ar_AE.UTF-8/UTF-8 \
+ar_AE/ISO-8859-6 \
+ar_BH.UTF-8/UTF-8 \
+ar_BH/ISO-8859-6 \
+ar_DZ.UTF-8/UTF-8 \
+ar_DZ/ISO-8859-6 \
+ar_EG.UTF-8/UTF-8 \
+ar_EG/ISO-8859-6 \
+ar_IN/UTF-8 \
+ar_IQ.UTF-8/UTF-8 \
+ar_IQ/ISO-8859-6 \
+ar_JO.UTF-8/UTF-8 \
+ar_JO/ISO-8859-6 \
+ar_KW.UTF-8/UTF-8 \
+ar_KW/ISO-8859-6 \
+ar_LB.UTF-8/UTF-8 \
+ar_LB/ISO-8859-6 \
+ar_LY.UTF-8/UTF-8 \
+ar_LY/ISO-8859-6 \
+ar_MA.UTF-8/UTF-8 \
+ar_MA/ISO-8859-6 \
+ar_OM.UTF-8/UTF-8 \
+ar_OM/ISO-8859-6 \
+ar_QA.UTF-8/UTF-8 \
+ar_QA/ISO-8859-6 \
+ar_SA.UTF-8/UTF-8 \
+ar_SA/ISO-8859-6 \
+ar_SD.UTF-8/UTF-8 \
+ar_SD/ISO-8859-6 \
+ar_SS/UTF-8 \
+ar_SY.UTF-8/UTF-8 \
+ar_SY/ISO-8859-6 \
+ar_TN.UTF-8/UTF-8 \
+ar_TN/ISO-8859-6 \
+ar_YE.UTF-8/UTF-8 \
+ar_YE/ISO-8859-6 \
+ayc_PE/UTF-8 \
+az_AZ/UTF-8 \
+az_IR/UTF-8 \
+as_IN/UTF-8 \
+ast_ES.UTF-8/UTF-8 \
+ast_ES/ISO-8859-15 \
+be_BY.UTF-8/UTF-8 \
+be_BY/CP1251 \
+be_BY@latin/UTF-8 \
+bem_ZM/UTF-8 \
+ber_DZ/UTF-8 \
+ber_MA/UTF-8 \
+bg_BG.UTF-8/UTF-8 \
+bg_BG/CP1251 \
+bhb_IN.UTF-8/UTF-8 \
+bho_IN/UTF-8 \
+bho_NP/UTF-8 \
+bi_VU/UTF-8 \
+bn_BD/UTF-8 \
+bn_IN/UTF-8 \
+bo_CN/UTF-8 \
+bo_IN/UTF-8 \
+br_FR.UTF-8/UTF-8 \
+br_FR/ISO-8859-1 \
+br_FR@euro/ISO-8859-15 \
+brx_IN/UTF-8 \
+bs_BA.UTF-8/UTF-8 \
+bs_BA/ISO-8859-2 \
+byn_ER/UTF-8 \
+C.UTF-8/UTF-8 \
+ca_AD.UTF-8/UTF-8 \
+ca_AD/ISO-8859-15 \
+ca_ES.UTF-8/UTF-8 \
+ca_ES/ISO-8859-1 \
+ca_ES@euro/ISO-8859-15 \
+ca_ES@valencia/UTF-8 \
+ca_FR.UTF-8/UTF-8 \
+ca_FR/ISO-8859-15 \
+ca_IT.UTF-8/UTF-8 \
+ca_IT/ISO-8859-15 \
+ce_RU/UTF-8 \
+chr_US/UTF-8 \
+ckb_IQ/UTF-8 \
+cmn_TW/UTF-8 \
+crh_RU/UTF-8 \
+crh_UA/UTF-8 \
+cs_CZ.UTF-8/UTF-8 \
+cs_CZ/ISO-8859-2 \
+csb_PL/UTF-8 \
+cv_RU/UTF-8 \
+cy_GB.UTF-8/UTF-8 \
+cy_GB/ISO-8859-14 \
+da_DK.UTF-8/UTF-8 \
+da_DK/ISO-8859-1 \
+de_AT.UTF-8/UTF-8 \
+de_AT/ISO-8859-1 \
+de_AT@euro/ISO-8859-15 \
+de_BE.UTF-8/UTF-8 \
+de_BE/ISO-8859-1 \
+de_BE@euro/ISO-8859-15 \
+de_CH.UTF-8/UTF-8 \
+de_CH/ISO-8859-1 \
+de_DE.UTF-8/UTF-8 \
+de_DE/ISO-8859-1 \
+de_DE@euro/ISO-8859-15 \
+de_IT.UTF-8/UTF-8 \
+de_IT/ISO-8859-1 \
+de_LI.UTF-8/UTF-8 \
+de_LU.UTF-8/UTF-8 \
+de_LU/ISO-8859-1 \
+de_LU@euro/ISO-8859-15 \
+doi_IN/UTF-8 \
+dsb_DE/UTF-8 \
+dv_MV/UTF-8 \
+dz_BT/UTF-8 \
+el_GR.UTF-8/UTF-8 \
+el_GR/ISO-8859-7 \
+el_GR@euro/ISO-8859-7 \
+el_CY.UTF-8/UTF-8 \
+el_CY/ISO-8859-7 \
+en_AG/UTF-8 \
+en_AU.UTF-8/UTF-8 \
+en_AU/ISO-8859-1 \
+en_BW.UTF-8/UTF-8 \
+en_BW/ISO-8859-1 \
+en_CA.UTF-8/UTF-8 \
+en_CA/ISO-8859-1 \
+en_DK.UTF-8/UTF-8 \
+en_DK/ISO-8859-1 \
+en_GB.UTF-8/UTF-8 \
+en_GB/ISO-8859-1 \
+en_HK.UTF-8/UTF-8 \
+en_HK/ISO-8859-1 \
+en_IE.UTF-8/UTF-8 \
+en_IE/ISO-8859-1 \
+en_IE@euro/ISO-8859-15 \
+en_IL/UTF-8 \
+en_IN/UTF-8 \
+en_NG/UTF-8 \
+en_NZ.UTF-8/UTF-8 \
+en_NZ/ISO-8859-1 \
+en_PH.UTF-8/UTF-8 \
+en_PH/ISO-8859-1 \
+en_RU.KOI8-R/KOI8-R \
+en_RU.UTF-8/UTF-8 \
+en_RU.CP1251/CP1251 \
+en_RU.ISO-8859-5/ISO-8859-5 \
+en_RU/ISO-8859-5 \
+en_SC.UTF-8/UTF-8 \
+en_SG.UTF-8/UTF-8 \
+en_SG/ISO-8859-1 \
+en_US.UTF-8/UTF-8 \
+en_US/ISO-8859-1 \
+en_ZA.UTF-8/UTF-8 \
+en_ZA/ISO-8859-1 \
+en_ZM/UTF-8 \
+en_ZW.UTF-8/UTF-8 \
+en_ZW/ISO-8859-1 \
+eo/UTF-8 \
+es_AR.UTF-8/UTF-8 \
+es_AR/ISO-8859-1 \
+es_BO.UTF-8/UTF-8 \
+es_BO/ISO-8859-1 \
+es_CL.UTF-8/UTF-8 \
+es_CL/ISO-8859-1 \
+es_CO.UTF-8/UTF-8 \
+es_CO/ISO-8859-1 \
+es_CR.UTF-8/UTF-8 \
+es_CR/ISO-8859-1 \
+es_CU/UTF-8 \
+es_DO.UTF-8/UTF-8 \
+es_DO/ISO-8859-1 \
+es_EC.UTF-8/UTF-8 \
+es_EC/ISO-8859-1 \
+es_ES.UTF-8/UTF-8 \
+es_ES/ISO-8859-1 \
+es_ES@euro/ISO-8859-15 \
+es_GT.UTF-8/UTF-8 \
+es_GT/ISO-8859-1 \
+es_HN.UTF-8/UTF-8 \
+es_HN/ISO-8859-1 \
+es_MX.UTF-8/UTF-8 \
+es_MX/ISO-8859-1 \
+es_NI.UTF-8/UTF-8 \
+es_NI/ISO-8859-1 \
+es_PA.UTF-8/UTF-8 \
+es_PA/ISO-8859-1 \
+es_PE.UTF-8/UTF-8 \
+es_PE/ISO-8859-1 \
+es_PR.UTF-8/UTF-8 \
+es_PR/ISO-8859-1 \
+es_PY.UTF-8/UTF-8 \
+es_PY/ISO-8859-1 \
+es_SV.UTF-8/UTF-8 \
+es_SV/ISO-8859-1 \
+es_US.UTF-8/UTF-8 \
+es_US/ISO-8859-1 \
+es_UY.UTF-8/UTF-8 \
+es_UY/ISO-8859-1 \
+es_VE.UTF-8/UTF-8 \
+es_VE/ISO-8859-1 \
+et_EE.UTF-8/UTF-8 \
+et_EE/ISO-8859-1 \
+et_EE.ISO-8859-15/ISO-8859-15 \
+eu_ES.UTF-8/UTF-8 \
+eu_ES/ISO-8859-1 \
+eu_ES@euro/ISO-8859-15 \
+fa_IR/UTF-8 \
+ff_SN/UTF-8 \
+fi_FI.UTF-8/UTF-8 \
+fi_FI/ISO-8859-1 \
+fi_FI@euro/ISO-8859-15 \
+fil_PH/UTF-8 \
+fo_FO.UTF-8/UTF-8 \
+fo_FO/ISO-8859-1 \
+fr_BE.UTF-8/UTF-8 \
+fr_BE/ISO-8859-1 \
+fr_BE@euro/ISO-8859-15 \
+fr_CA.UTF-8/UTF-8 \
+fr_CA/ISO-8859-1 \
+fr_CH.UTF-8/UTF-8 \
+fr_CH/ISO-8859-1 \
+fr_FR.UTF-8/UTF-8 \
+fr_FR/ISO-8859-1 \
+fr_FR@euro/ISO-8859-15 \
+fr_LU.UTF-8/UTF-8 \
+fr_LU/ISO-8859-1 \
+fr_LU@euro/ISO-8859-15 \
+fur_IT/UTF-8 \
+fy_NL/UTF-8 \
+fy_DE/UTF-8 \
+ga_IE.UTF-8/UTF-8 \
+ga_IE/ISO-8859-1 \
+ga_IE@euro/ISO-8859-15 \
+gbm_IN/UTF-8 \
+gd_GB.UTF-8/UTF-8 \
+gd_GB/ISO-8859-15 \
+gez_ER/UTF-8 \
+gez_ER@abegede/UTF-8 \
+gez_ET/UTF-8 \
+gez_ET@abegede/UTF-8 \
+gl_ES.UTF-8/UTF-8 \
+gl_ES/ISO-8859-1 \
+gl_ES@euro/ISO-8859-15 \
+gu_IN/UTF-8 \
+gv_GB.UTF-8/UTF-8 \
+gv_GB/ISO-8859-1 \
+ha_NG/UTF-8 \
+hak_TW/UTF-8 \
+he_IL.UTF-8/UTF-8 \
+he_IL/ISO-8859-8 \
+hi_IN/UTF-8 \
+hif_FJ/UTF-8 \
+hne_IN/UTF-8 \
+hr_HR.UTF-8/UTF-8 \
+hr_HR/ISO-8859-2 \
+hsb_DE/ISO-8859-2 \
+hsb_DE.UTF-8/UTF-8 \
+ht_HT/UTF-8 \
+hu_HU.UTF-8/UTF-8 \
+hu_HU/ISO-8859-2 \
+hy_AM/UTF-8 \
+hy_AM.ARMSCII-8/ARMSCII-8 \
+ia_FR/UTF-8 \
+id_ID.UTF-8/UTF-8 \
+id_ID/ISO-8859-1 \
+ig_NG/UTF-8 \
+ik_CA/UTF-8 \
+is_IS.UTF-8/UTF-8 \
+is_IS/ISO-8859-1 \
+it_CH.UTF-8/UTF-8 \
+it_CH/ISO-8859-1 \
+it_IT.UTF-8/UTF-8 \
+it_IT/ISO-8859-1 \
+it_IT@euro/ISO-8859-15 \
+iu_CA/UTF-8 \
+ja_JP.EUC-JP/EUC-JP \
+ja_JP.UTF-8/UTF-8 \
+ka_GE.UTF-8/UTF-8 \
+ka_GE/GEORGIAN-PS \
+kab_DZ/UTF-8 \
+kk_KZ.UTF-8/UTF-8 \
+kk_KZ/PT154 \
+kl_GL.UTF-8/UTF-8 \
+kl_GL/ISO-8859-1 \
+km_KH/UTF-8 \
+kn_IN/UTF-8 \
+ko_KR.EUC-KR/EUC-KR \
+ko_KR.UTF-8/UTF-8 \
+kok_IN/UTF-8 \
+ks_IN/UTF-8 \
+ks_IN@devanagari/UTF-8 \
+ku_TR.UTF-8/UTF-8 \
+ku_TR/ISO-8859-9 \
+kv_RU/UTF-8 \
+kw_GB.UTF-8/UTF-8 \
+kw_GB/ISO-8859-1 \
+ky_KG/UTF-8 \
+lb_LU/UTF-8 \
+lg_UG.UTF-8/UTF-8 \
+lg_UG/ISO-8859-10 \
+li_BE/UTF-8 \
+li_NL/UTF-8 \
+lij_IT/UTF-8 \
+ln_CD/UTF-8 \
+lo_LA/UTF-8 \
+lt_LT.UTF-8/UTF-8 \
+lt_LT/ISO-8859-13 \
+ltg_LV.UTF-8/UTF-8 \
+lv_LV.UTF-8/UTF-8 \
+lv_LV/ISO-8859-13 \
+lzh_TW/UTF-8 \
+mag_IN/UTF-8 \
+mai_IN/UTF-8 \
+mai_NP/UTF-8 \
+mdf_RU/UTF-8 \
+mfe_MU/UTF-8 \
+mg_MG.UTF-8/UTF-8 \
+mg_MG/ISO-8859-15 \
+mhr_RU/UTF-8 \
+mi_NZ.UTF-8/UTF-8 \
+mi_NZ/ISO-8859-13 \
+miq_NI/UTF-8 \
+mjw_IN/UTF-8 \
+mk_MK.UTF-8/UTF-8 \
+mk_MK/ISO-8859-5 \
+ml_IN/UTF-8 \
+mn_MN/UTF-8 \
+mni_IN/UTF-8 \
+mnw_MM/UTF-8 \
+mr_IN/UTF-8 \
+ms_MY.UTF-8/UTF-8 \
+ms_MY/ISO-8859-1 \
+mt_MT.UTF-8/UTF-8 \
+mt_MT/ISO-8859-3 \
+my_MM/UTF-8 \
+nan_TW/UTF-8 \
+nan_TW@latin/UTF-8 \
+nb_NO.UTF-8/UTF-8 \
+nb_NO/ISO-8859-1 \
+nds_DE/UTF-8 \
+nds_NL/UTF-8 \
+ne_NP/UTF-8 \
+nhn_MX/UTF-8 \
+niu_NU/UTF-8 \
+niu_NZ/UTF-8 \
+nl_AW/UTF-8 \
+nl_BE.UTF-8/UTF-8 \
+nl_BE/ISO-8859-1 \
+nl_BE@euro/ISO-8859-15 \
+nl_NL.UTF-8/UTF-8 \
+nl_NL/ISO-8859-1 \
+nl_NL@euro/ISO-8859-15 \
+nn_NO.UTF-8/UTF-8 \
+nn_NO/ISO-8859-1 \
+nr_ZA/UTF-8 \
+nso_ZA/UTF-8 \
+oc_FR.UTF-8/UTF-8 \
+oc_FR/ISO-8859-1 \
+om_ET/UTF-8 \
+om_KE.UTF-8/UTF-8 \
+om_KE/ISO-8859-1 \
+or_IN/UTF-8 \
+os_RU/UTF-8 \
+pa_IN/UTF-8 \
+pa_PK/UTF-8 \
+pap_AW/UTF-8 \
+pap_CW/UTF-8 \
+pl_PL.UTF-8/UTF-8 \
+pl_PL/ISO-8859-2 \
+ps_AF/UTF-8 \
+pt_BR.UTF-8/UTF-8 \
+pt_BR/ISO-8859-1 \
+pt_PT.UTF-8/UTF-8 \
+pt_PT/ISO-8859-1 \
+pt_PT@euro/ISO-8859-15 \
+quz_PE/UTF-8 \
+raj_IN/UTF-8 \
+rif_MA/UTF-8 \
+ro_RO.UTF-8/UTF-8 \
+ro_RO/ISO-8859-2 \
+ru_RU.KOI8-R/KOI8-R \
+ru_RU.UTF-8/UTF-8 \
+ru_RU.CP1251/CP1251 \
+ru_RU.ISO-8859-5/ISO-8859-5 \
+ru_RU/ISO-8859-5 \
+ru_UA.UTF-8/UTF-8 \
+ru_UA/KOI8-U \
+rw_RW/UTF-8 \
+sa_IN/UTF-8 \
+sah_RU/UTF-8 \
+sat_IN/UTF-8 \
+sc_IT/UTF-8 \
+scn_IT/UTF-8 \
+sd_IN/UTF-8 \
+sd_IN@devanagari/UTF-8 \
+se_NO/UTF-8 \
+sgs_LT/UTF-8 \
+shn_MM/UTF-8 \
+shs_CA/UTF-8 \
+si_LK/UTF-8 \
+sid_ET/UTF-8 \
+sk_SK.UTF-8/UTF-8 \
+sk_SK/ISO-8859-2 \
+sl_SI.UTF-8/UTF-8 \
+sl_SI/ISO-8859-2 \
+sm_WS/UTF-8 \
+so_DJ.UTF-8/UTF-8 \
+so_DJ/ISO-8859-1 \
+so_ET/UTF-8 \
+so_KE.UTF-8/UTF-8 \
+so_KE/ISO-8859-1 \
+so_SO.UTF-8/UTF-8 \
+so_SO/ISO-8859-1 \
+sq_AL.UTF-8/UTF-8 \
+sq_AL/ISO-8859-1 \
+sq_MK/UTF-8 \
+sr_ME/UTF-8 \
+sr_RS/UTF-8 \
+sr_RS@latin/UTF-8 \
+ss_ZA/UTF-8 \
+ssy_ER/UTF-8 \
+st_ZA.UTF-8/UTF-8 \
+st_ZA/ISO-8859-1 \
+su_ID/UTF-8 \
+sv_FI.UTF-8/UTF-8 \
+sv_FI/ISO-8859-1 \
+sv_FI@euro/ISO-8859-15 \
+sv_SE.UTF-8/UTF-8 \
+sv_SE/ISO-8859-1 \
+sw_KE/UTF-8 \
+sw_TZ/UTF-8 \
+syr/UTF-8 \
+szl_PL/UTF-8 \
+ta_IN/UTF-8 \
+ta_LK/UTF-8 \
+tcy_IN.UTF-8/UTF-8 \
+te_IN/UTF-8 \
+tg_TJ.UTF-8/UTF-8 \
+tg_TJ/KOI8-T \
+th_TH.UTF-8/UTF-8 \
+th_TH/TIS-620 \
+the_NP/UTF-8 \
+ti_ER/UTF-8 \
+ti_ET/UTF-8 \
+tig_ER/UTF-8 \
+tk_TM/UTF-8 \
+tl_PH.UTF-8/UTF-8 \
+tl_PH/ISO-8859-1 \
+tn_ZA/UTF-8 \
+to_TO/UTF-8 \
+tok/UTF-8 \
+tpi_PG/UTF-8 \
+tr_CY.UTF-8/UTF-8 \
+tr_CY/ISO-8859-9 \
+tr_TR.UTF-8/UTF-8 \
+tr_TR/ISO-8859-9 \
+ts_ZA/UTF-8 \
+tt_RU/UTF-8 \
+tt_RU@iqtelif/UTF-8 \
+ug_CN/UTF-8 \
+uk_UA.UTF-8/UTF-8 \
+uk_UA/KOI8-U \
+unm_US/UTF-8 \
+ur_IN/UTF-8 \
+ur_PK/UTF-8 \
+uz_UZ.UTF-8/UTF-8 \
+uz_UZ/ISO-8859-1 \
+uz_UZ@cyrillic/UTF-8 \
+ve_ZA/UTF-8 \
+vi_VN/UTF-8 \
+wa_BE/ISO-8859-1 \
+wa_BE@euro/ISO-8859-15 \
+wa_BE.UTF-8/UTF-8 \
+wae_CH/UTF-8 \
+wal_ET/UTF-8 \
+wo_SN/UTF-8 \
+xh_ZA.UTF-8/UTF-8 \
+xh_ZA/ISO-8859-1 \
+yi_US.UTF-8/UTF-8 \
+yi_US/CP1255 \
+yo_NG/UTF-8 \
+yue_HK/UTF-8 \
+yuw_PG/UTF-8 \
+zgh_MA/UTF-8 \
+zh_CN.GB18030/GB18030 \
+zh_CN.GBK/GBK \
+zh_CN.UTF-8/UTF-8 \
+zh_CN/GB2312 \
+zh_HK.UTF-8/UTF-8 \
+zh_HK/BIG5-HKSCS \
+zh_SG.UTF-8/UTF-8 \
+zh_SG.GBK/GBK \
+zh_SG/GB2312 \
+zh_TW.EUC-TW/EUC-TW \
+zh_TW.UTF-8/UTF-8 \
+zh_TW/BIG5 \
+zu_ZA.UTF-8/UTF-8 \
+zu_ZA/ISO-8859-1 \
Index: sources/GNU/glibc/2.40/create-2.40-i18n-patch/glibc-2.40-new/localedata/locales/en_RU
===================================================================
--- sources/GNU/glibc/2.40/create-2.40-i18n-patch/glibc-2.40-new/localedata/locales/en_RU	(nonexistent)
+++ sources/GNU/glibc/2.40/create-2.40-i18n-patch/glibc-2.40-new/localedata/locales/en_RU	(revision 394)
@@ -0,0 +1,167 @@
+comment_char %
+escape_char  /
+
+% English Language Locale for Russia
+% Source: RADIX.PRO
+% Address: Russia, 193231, St. Petersburg, Solidarnosty av., 25-1-105
+% Contact: Andrey V.Kosteltsev
+% Email: kosteltsev@gmail.com
+% Tel: +7 (911) 970-91-61
+% Fax: +7 (911) 970-91-61
+% Language: en
+% Territory: RU
+% Revision: 1.0
+% Date: 2012-09-24
+% Application: general
+% Users: general
+% Charset: ISO-8859-5
+% Distribution and use is free, also
+% for commercial purposes.
+
+LC_IDENTIFICATION
+title      "English locale for Russia"
+source     "RADIX.PRO"
+address    "Russia, 193231, St. Petersburg, Solidarnosty av., 25-1-105"
+contact    ""
+email      "bug-glibc-locales@gnu.org"
+tel        ""
+fax        ""
+language   "English"
+territory  "Russia"
+revision   "1.0"
+date       "2016-07-29"
+%
+category  "i18n:2012";LC_IDENTIFICATION
+category  "i18n:2012";LC_CTYPE
+category  "i18n:2012";LC_COLLATE
+category  "i18n:2012";LC_TIME
+category  "i18n:2012";LC_NUMERIC
+category  "i18n:2012";LC_MONETARY
+category  "i18n:2012";LC_MESSAGES
+category  "i18n:2012";LC_PAPER
+category  "i18n:2012";LC_NAME
+category  "i18n:2012";LC_ADDRESS
+category  "i18n:2012";LC_TELEPHONE
+
+END LC_IDENTIFICATION
+
+LC_COLLATE
+% Copy the template from ISO/IEC 14651
+copy "iso14651_t1"
+END LC_COLLATE
+
+LC_CTYPE
+copy "i18n"
+
+translit_start
+include  "translit_combining";""
+translit_end
+END LC_CTYPE
+
+LC_MESSAGES
+yesexpr "<U005E><U005B><U0079><U0059><U005D><U002E><U002A>"
+noexpr  "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
+yesstr  "<U0059><U0065><U0073>"
+nostr   "<U004E><U006F>"
+END LC_MESSAGES
+
+LC_MONETARY
+int_curr_symbol           "<U0052><U0055><U0042><U0020>"
+currency_symbol           "<U0072><U0075><U0062>"
+mon_decimal_point         "<U002E>"
+mon_thousands_sep         "<U00A0>"
+mon_grouping              3;3
+positive_sign             ""
+negative_sign             "<U002D>"
+int_frac_digits           2
+frac_digits               2
+p_cs_precedes             0
+p_sep_by_space            1
+n_cs_precedes             0
+n_sep_by_space            1
+p_sign_posn               1
+n_sign_posn               1
+END LC_MONETARY
+
+LC_NUMERIC
+decimal_point             "<U002E>"
+thousands_sep             "<U00A0>"
+grouping                  3;3
+END LC_NUMERIC
+
+LC_TIME
+abday    "<U0053><U0075><U006E>";"<U004D><U006F><U006E>";/
+	 "<U0054><U0075><U0065>";"<U0057><U0065><U0064>";/
+	 "<U0054><U0068><U0075>";"<U0046><U0072><U0069>";/
+	 "<U0053><U0061><U0074>"
+day      "<U0053><U0075><U006E><U0064><U0061><U0079>";/
+	 "<U004D><U006F><U006E><U0064><U0061><U0079>";/
+	 "<U0054><U0075><U0065><U0073><U0064><U0061><U0079>";/
+	 "<U0057><U0065><U0064><U006E><U0065><U0073><U0064><U0061><U0079>";/
+	 "<U0054><U0068><U0075><U0072><U0073><U0064><U0061><U0079>";/
+	 "<U0046><U0072><U0069><U0064><U0061><U0079>";/
+	 "<U0053><U0061><U0074><U0075><U0072><U0064><U0061><U0079>"
+abmon    "<U004A><U0061><U006E>";"<U0046><U0065><U0062>";/
+	 "<U004D><U0061><U0072>";"<U0041><U0070><U0072>";/
+	 "<U004D><U0061><U0079>";"<U004A><U0075><U006E>";/
+	 "<U004A><U0075><U006C>";"<U0041><U0075><U0067>";/
+	 "<U0053><U0065><U0070>";"<U004F><U0063><U0074>";/
+	 "<U004E><U006F><U0076>";"<U0044><U0065><U0063>"
+mon      "<U004A><U0061><U006E><U0075><U0061><U0072><U0079>";/
+	 "<U0046><U0065><U0062><U0072><U0075><U0061><U0072><U0079>";/
+	 "<U004D><U0061><U0072><U0063><U0068>";/
+	 "<U0041><U0070><U0072><U0069><U006C>";/
+	 "<U004D><U0061><U0079>";/
+	 "<U004A><U0075><U006E><U0065>";/
+	 "<U004A><U0075><U006C><U0079>";/
+	 "<U0041><U0075><U0067><U0075><U0073><U0074>";/
+	 "<U0053><U0065><U0070><U0074><U0065><U006D><U0062><U0065><U0072>";/
+	 "<U004F><U0063><U0074><U006F><U0062><U0065><U0072>";/
+	 "<U004E><U006F><U0076><U0065><U006D><U0062><U0065><U0072>";/
+	 "<U0044><U0065><U0063><U0065><U006D><U0062><U0065><U0072>"
+d_t_fmt       "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062>/
+<U0020><U0025><U0059><U0020><U0025><U0054>"
+d_fmt         "<U0025><U0064><U002E><U0025><U006D><U002E><U0025><U0059>"
+t_fmt         "<U0025><U0054>"
+am_pm         "";""
+t_fmt_ampm    ""
+date_fmt      "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065>/
+<U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/
+<U0025><U005A><U0020><U0025><U0059>"
+week          7;19971130;4
+first_weekday 2
+first_workday 2
+END LC_TIME
+
+LC_PAPER
+height   297
+width    210
+END LC_PAPER
+
+LC_TELEPHONE
+tel_int_fmt    "<U002B><U0025><U0063><U0020><U0028><U0025><U0061><U0029>/
+<U0020><U0025><U006C>"
+int_prefix     "<U0037>"
+int_select     "<U0030><U007E><U0031><U0030>"
+END LC_TELEPHONE
+
+LC_MEASUREMENT
+% 1 for Metric system, 2 for US
+measurement    1
+END LC_MEASUREMENT
+
+LC_NAME
+name_fmt    "<U0025><U0064><U0025><U0074><U0025><U0067><U0025><U0074>/
+<U0025><U006D><U0025><U0074><U0025><U0066>"
+END LC_NAME
+
+LC_ADDRESS
+postal_fmt    "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
+<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/
+<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
+<U004E><U0025><U007A><U0020><U0025><U0054><U0025>/
+<U004E><U0025><U0063><U0025><U004E>"
+country_ab2 "<U0052><U0055>"
+country_ab3 "<U0052><U0055><U0053>"
+country_num 643
+END LC_ADDRESS
Index: sources/GNU/glibc/2.40/create-2.40-i18n-patch/glibc-2.40-new/localedata/locales/ru_RU
===================================================================
--- sources/GNU/glibc/2.40/create-2.40-i18n-patch/glibc-2.40-new/localedata/locales/ru_RU	(nonexistent)
+++ sources/GNU/glibc/2.40/create-2.40-i18n-patch/glibc-2.40-new/localedata/locales/ru_RU	(revision 394)
@@ -0,0 +1,208 @@
+comment_char %
+escape_char /
+
+% This file is part of the GNU C Library and contains locale data.
+% The Free Software Foundation does not claim any copyright interest
+% in the locale data contained in this file.  The foregoing does not
+% affect the license of the GNU C Library as a whole.  It does not
+% exempt you from the conditions of the license if your use would
+% otherwise be governed by that license.
+
+% Russian Language Locale for Russia
+% Source: RAP
+% Address: Sankt Jo//rgens Alle 8
+%    DK-1615 Ko//benhavn V, Danmark
+% Contact: Keld Simonsen
+% Email: Keld.Simonsen@dkuug.dk
+% Tel: +45 - 31226543
+% Fax: +45 - 33256543
+% Language: ru
+% Territory: RU
+% Revision: 4.3
+% Date: 1996-10-15
+% Application: general
+% Users: general
+
+LC_IDENTIFICATION
+title      "Russian locale for Russia"
+source     "RAP"
+address    "Sankt Jorgens Alle 8, DK-1615 Kobenhavn V, Danmark"
+contact    ""
+email      "bug-glibc-locales@gnu.org"
+tel        ""
+fax        ""
+language   "Russian"
+territory  "Russia"
+revision   "1.0"
+date       "2000-06-29"
+
+category "i18n:2012";LC_IDENTIFICATION
+category "i18n:2012";LC_CTYPE
+category "i18n:2012";LC_COLLATE
+category "i18n:2012";LC_TIME
+category "i18n:2012";LC_NUMERIC
+category "i18n:2012";LC_MONETARY
+category "i18n:2012";LC_MESSAGES
+category "i18n:2012";LC_PAPER
+category "i18n:2012";LC_NAME
+category "i18n:2012";LC_ADDRESS
+category "i18n:2012";LC_TELEPHONE
+category "i18n:2012";LC_MEASUREMENT
+END LC_IDENTIFICATION
+
+LC_COLLATE
+% CLDR collation rules for Russian:
+% (see: https://unicode.org/cldr/trac/browser/trunk/common/collation/ru.xml)
+%
+% <collation type="standard">
+% 	<cr><![CDATA[
+% 		[reorder Cyrl]
+% 		# The root collation already sorts й/Й as a base letter.
+% 	]]></cr>
+% </collation>
+%
+copy "iso14651_t1"
+END LC_COLLATE
+
+LC_CTYPE
+copy "i18n"
+
+translit_start
+include  "translit_combining";""
+translit_end
+END LC_CTYPE
+
+LC_MESSAGES
+yesexpr "^[+1yY<U0414><U0434>]"
+noexpr  "^[-0nN<U041D><U043D>]"
+yesstr  "<U0434><U0430>"
+nostr   "<U043D><U0435><U0442>"
+END LC_MESSAGES
+
+LC_MONETARY
+int_curr_symbol           "RUB "
+currency_symbol           "<U20BD>"
+mon_decimal_point         "."
+mon_thousands_sep         "<U202F>"
+mon_grouping              3;3
+positive_sign             ""
+negative_sign             "-"
+int_frac_digits           2
+frac_digits               2
+p_cs_precedes             0
+p_sep_by_space            1
+n_cs_precedes             0
+n_sep_by_space            1
+p_sign_posn               1
+n_sign_posn               1
+END LC_MONETARY
+
+LC_NUMERIC
+decimal_point             ","
+thousands_sep             "<U202F>"
+grouping                  3;3
+END LC_NUMERIC
+
+LC_TIME
+day     "<U0412><U043E><U0441><U043A><U0440><U0435><U0441><U0435><U043D><U044C><U0435>";/
+        "<U041F><U043E><U043D><U0435><U0434><U0435><U043B><U044C><U043D><U0438><U043A>";/
+        "<U0412><U0442><U043E><U0440><U043D><U0438><U043A>";/
+        "<U0421><U0440><U0435><U0434><U0430>";/
+        "<U0427><U0435><U0442><U0432><U0435><U0440><U0433>";/
+        "<U041F><U044F><U0442><U043D><U0438><U0446><U0430>";/
+        "<U0421><U0443><U0431><U0431><U043E><U0442><U0430>"
+abday   "<U0412><U0441>";/
+        "<U041F><U043D>";/
+        "<U0412><U0442>";/
+        "<U0421><U0440>";/
+        "<U0427><U0442>";/
+        "<U041F><U0442>";/
+        "<U0421><U0431>"
+alt_mon "<U042F><U043D><U0432><U0430><U0440><U044C>";/
+        "<U0424><U0435><U0432><U0440><U0430><U043B><U044C>";/
+        "<U041C><U0430><U0440><U0442>";/
+        "<U0410><U043F><U0440><U0435><U043B><U044C>";/
+        "<U041C><U0430><U0439>";/
+        "<U0418><U044E><U043D><U044C>";/
+        "<U0418><U044E><U043B><U044C>";/
+        "<U0410><U0432><U0433><U0443><U0441><U0442>";/
+        "<U0421><U0435><U043D><U0442><U044F><U0431><U0440><U044C>";/
+        "<U041E><U043A><U0442><U044F><U0431><U0440><U044C>";/
+        "<U041D><U043E><U044F><U0431><U0440><U044C>";/
+        "<U0414><U0435><U043A><U0430><U0431><U0440><U044C>"
+mon     "<U044F><U043D><U0432><U0430><U0440><U044F>";/
+        "<U0444><U0435><U0432><U0440><U0430><U043B><U044F>";/
+        "<U043C><U0430><U0440><U0442><U0430>";/
+        "<U0430><U043F><U0440><U0435><U043B><U044F>";/
+        "<U043C><U0430><U044F>";/
+        "<U0438><U044E><U043D><U044F>";/
+        "<U0438><U044E><U043B><U044F>";/
+        "<U0430><U0432><U0433><U0443><U0441><U0442><U0430>";/
+        "<U0441><U0435><U043D><U0442><U044F><U0431><U0440><U044F>";/
+        "<U043E><U043A><U0442><U044F><U0431><U0440><U044F>";/
+        "<U043D><U043E><U044F><U0431><U0440><U044F>";/
+        "<U0434><U0435><U043A><U0430><U0431><U0440><U044F>"
+ab_alt_mon "<U044F><U043D><U0432>";/
+        "<U0444><U0435><U0432>";/
+        "<U043C><U0430><U0440>";/
+        "<U0430><U043F><U0440>";/
+        "<U043C><U0430><U0439>";/
+        "<U0438><U044E><U043D>";/
+        "<U0438><U044E><U043B>";/
+        "<U0430><U0432><U0433>";/
+        "<U0441><U0435><U043D>";/
+        "<U043E><U043A><U0442>";/
+        "<U043D><U043E><U044F>";/
+        "<U0434><U0435><U043A>"
+abmon   "<U044F><U043D><U0432>";/
+        "<U0444><U0435><U0432>";/
+        "<U043C><U0430><U0440>";/
+        "<U0430><U043F><U0440>";/
+        "<U043C><U0430><U044F>";/
+        "<U0438><U044E><U043D>";/
+        "<U0438><U044E><U043B>";/
+        "<U0430><U0432><U0433>";/
+        "<U0441><U0435><U043D>";/
+        "<U043E><U043A><U0442>";/
+        "<U043D><U043E><U044F>";/
+        "<U0434><U0435><U043A>"
+d_t_fmt   "%a %d %b %Y %T"
+date_fmt  "%a %d %b %Y %T %Z"
+d_fmt     "%d.%m.%Y"
+t_fmt     "%T"
+am_pm     "";""
+t_fmt_ampm ""
+week 7;19971130;1
+first_weekday 2
+END LC_TIME
+
+LC_PAPER
+copy "i18n"
+END LC_PAPER
+
+LC_TELEPHONE
+tel_int_fmt    "+%c %a %l"
+int_prefix     "7"
+int_select     "0~10"
+END LC_TELEPHONE
+
+LC_MEASUREMENT
+copy "i18n"
+END LC_MEASUREMENT
+
+LC_NAME
+name_fmt    "%d%t%g%t%m%t%f"
+END LC_NAME
+
+LC_ADDRESS
+postal_fmt    "%f%N%a%N%d%N%b%N%s %h %e %r%N%z %T%N%c%N"
+country_name "<U0420><U043E><U0441><U0441><U0438><U044F>"
+country_ab2 "RU"
+country_ab3 "RUS"
+country_num 643
+country_car    "RUS"
+lang_name   "<U0440><U0443><U0441><U0441><U043A><U0438><U0439>"
+lang_ab      "ru"
+lang_term    "rus"
+lang_lib    "rus"
+END LC_ADDRESS
Index: sources/GNU/glibc/2.40/create-2.40-locale-no-archive-patch/create.patch.sh
===================================================================
--- sources/GNU/glibc/2.40/create-2.40-locale-no-archive-patch/create.patch.sh	(nonexistent)
+++ sources/GNU/glibc/2.40/create-2.40-locale-no-archive-patch/create.patch.sh	(revision 394)
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+VERSION=2.40
+
+tar --files-from=file.list -xJvf ../glibc-$VERSION.tar.xz
+mv glibc-$VERSION glibc-$VERSION-orig
+
+cp -rf ./glibc-$VERSION-new ./glibc-$VERSION
+
+diff --unified -Nr  glibc-$VERSION-orig  glibc-$VERSION > glibc-$VERSION-locale-no-archive.patch
+
+mv glibc-$VERSION-locale-no-archive.patch ../patches
+
+rm -rf ./glibc-$VERSION
+rm -rf ./glibc-$VERSION-orig

Property changes on: sources/GNU/glibc/2.40/create-2.40-locale-no-archive-patch/create.patch.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: sources/GNU/glibc/2.40/create-2.40-locale-no-archive-patch/file.list
===================================================================
--- sources/GNU/glibc/2.40/create-2.40-locale-no-archive-patch/file.list	(nonexistent)
+++ sources/GNU/glibc/2.40/create-2.40-locale-no-archive-patch/file.list	(revision 394)
@@ -0,0 +1 @@
+glibc-2.40/localedata/Makefile
Index: sources/GNU/glibc/2.40/create-2.40-locale-no-archive-patch/glibc-2.40-new/localedata/Makefile
===================================================================
--- sources/GNU/glibc/2.40/create-2.40-locale-no-archive-patch/glibc-2.40-new/localedata/Makefile	(nonexistent)
+++ sources/GNU/glibc/2.40/create-2.40-locale-no-archive-patch/glibc-2.40-new/localedata/Makefile	(revision 394)
@@ -0,0 +1,589 @@
+# Copyright (C) 1996-2024 Free Software Foundation, Inc.
+# Copyright The GNU Toolchain Authors.
+# This file is part of the GNU C Library.
+
+# The GNU C Library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+
+# The GNU C Library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+
+# You should have received a copy of the GNU Lesser General Public
+# License along with the GNU C Library; if not, see
+# <https://www.gnu.org/licenses/>.
+
+# Makefile for installing locale data source files.
+
+subdir := localedata
+
+include ../Makeconfig
+
+# List with all available character set descriptions.
+charmaps := $(wildcard charmaps/[A-I]*) $(wildcard charmaps/[J-Z]*)
+
+# List with all available character set descriptions.
+locales := $(wildcard locales/*)
+
+subdir-dirs = tests-mbwc
+vpath %.c tests-mbwc
+vpath %.h tests-mbwc
+
+test-srcs := \
+  collate-test \
+  tst-ctype \
+  tst-fmon \
+  tst-langinfo-newlocale \
+  tst-langinfo-newlocale-static \
+  tst-langinfo-setlocale \
+  tst-langinfo-setlocale-static \
+  tst-numeric \
+  tst-rpmatch \
+  tst-trans \
+  xfrm-test \
+  # test-srcs
+# List of test input files (list sorted alphabetically):
+test-input := \
+  C.UTF-8 \
+  am_ET.UTF-8 \
+  az_AZ.UTF-8 \
+  be_BY.UTF-8 \
+  ber_DZ.UTF-8 \
+  ber_MA.UTF-8 \
+  bg_BG.UTF-8 \
+  br_FR.UTF-8 \
+  bs_BA.UTF-8 \
+  ckb_IQ.UTF-8 \
+  cmn_TW.UTF-8 \
+  crh_UA.UTF-8 \
+  cs_CZ.UTF-8 \
+  csb_PL.UTF-8 \
+  cv_RU.UTF-8 \
+  cy_GB.UTF-8 \
+  da_DK.ISO-8859-1 \
+  de_DE.ISO-8859-1 \
+  dsb_DE.UTF-8 \
+  dz_BT.UTF-8 \
+  en_US.ISO-8859-1 \
+  en_US.UTF-8 \
+  eo.UTF-8 \
+  es_ES.UTF-8 \
+  et_EE.UTF-8 \
+  fa_IR.UTF-8 \
+  fi_FI.UTF-8 \
+  fil_PH.UTF-8 \
+  fr_CA.UTF-8 \
+  fr_FR.UTF-8 \
+  fur_IT.UTF-8 \
+  gez_ER.UTF-8@abegede \
+  ha_NG.UTF-8 \
+  hr_HR.ISO-8859-2 \
+  hr_HR.UTF-8 \
+  hsb_DE.UTF-8 \
+  hu_HU.UTF-8 \
+  ig_NG.UTF-8 \
+  ik_CA.UTF-8 \
+  is_IS.UTF-8 \
+  kk_KZ.UTF-8 \
+  ku_TR.UTF-8 \
+  ky_KG.UTF-8 \
+  ln_CD.UTF-8 \
+  lt_LT.UTF-8 \
+  ltg_LV.UTF-8 \
+  lv_LV.UTF-8 \
+  mdf_RU.UTF-8 \
+  mi_NZ.UTF-8 \
+  ml_IN.UTF-8 \
+  mn_MN.UTF-8 \
+  mr_IN.UTF-8 \
+  mt_MT.UTF-8 \
+  nan_TW.UTF-8@latin \
+  nb_NO.UTF-8 \
+  om_KE.UTF-8 \
+  or_IN.UTF-8 \
+  os_RU.UTF-8 \
+  pl_PL.UTF-8 \
+  ps_AF.UTF-8 \
+  rif_MA.UTF-8 \
+  ro_RO.UTF-8 \
+  ru_RU.UTF-8 \
+  sah_RU.UTF-8 \
+  sc_IT.UTF-8 \
+  se_NO.UTF-8 \
+  si_LK.UTF-8 \
+  sq_AL.UTF-8 \
+  sr_RS.UTF-8 \
+  sv_SE.ISO-8859-1 \
+  sv_SE.UTF-8 \
+  syr.UTF-8 \
+  szl_PL.UTF-8 \
+  tg_TJ.UTF-8 \
+  th_TH.UTF-8 \
+  tk_TM.UTF-8 \
+  tr_TR.UTF-8 \
+  tt_RU.UTF-8 \
+  tt_RU.UTF-8@iqtelif \
+  ug_CN.UTF-8 \
+  uk_UA.UTF-8 \
+  uz_UZ.UTF-8 \
+  vi_VN.UTF-8 \
+  yi_US.UTF-8 \
+  yo_NG.UTF-8 \
+  zh_CN.UTF-8 \
+  # test-input
+
+test-input-data = $(addsuffix .in, $(test-input))
+test-output := $(foreach s, .out .xout, \
+			 $(addsuffix $s, $(basename $(test-input))))
+ld-test-names := test1 test2 test3 test4 test5 test6 test7
+ld-test-srcs := $(addprefix tests/,$(addsuffix .cm,$(ld-test-names)) \
+				   $(addsuffix .def,$(ld-test-names)) \
+				   $(addsuffix .ds,test5 test6) \
+				   test6.c trans.def)
+
+fmon-tests = \
+  n01y12 \
+  n02n40 \
+  n10y31 \
+  n11y41 \
+  n12y11 \
+  n20n32 \
+  n30y20 \
+  n41n00 \
+  y01y10 \
+  y02n22 \
+  y22n42 \
+  y30y21 \
+  y32n31 \
+  y40y00 \
+  y42n21 \
+  # fmon-tests
+
+generated += \
+  $(test-input) \
+  $(test-output) \
+  mtrace-tst-leaks.out \
+  sort-test.out \
+  tst-leaks.mtrace \
+  tst-locale.out \
+  # generated
+generated-dirs += \
+  $(addprefix tstfmon_,$(fmon-tests)) \
+  $(ld-test-names) \
+  de_DE.437 \
+  tt_TT \
+  # generated-dirs
+
+ifeq ($(run-built-tests),yes)
+locale_test_suite := \
+  tst_iswalnum \
+  tst_iswalpha \
+  tst_iswcntrl \
+  tst_iswctype \
+  tst_iswdigit \
+  tst_iswgraph \
+  tst_iswlower \
+  tst_iswprint \
+  tst_iswpunct \
+  tst_iswspace \
+  tst_iswupper \
+  tst_iswxdigit \
+  tst_mblen \
+  tst_mbrlen \
+  tst_mbrtowc \
+  tst_mbsrtowcs \
+  tst_mbstowcs \
+  tst_mbtowc \
+  tst_strcoll \
+  tst_strfmon \
+  tst_strxfrm \
+  tst_swscanf \
+  tst_towctrans \
+  tst_towlower \
+  tst_towupper \
+  tst_wcrtomb \
+  tst_wcscat \
+  tst_wcschr \
+  tst_wcscmp \
+  tst_wcscoll \
+  tst_wcscpy \
+  tst_wcscspn \
+  tst_wcslen \
+  tst_wcsncat \
+  tst_wcsncmp \
+  tst_wcsncpy \
+  tst_wcspbrk \
+  tst_wcsrtombs \
+  tst_wcsspn \
+  tst_wcsstr \
+  tst_wcstod \
+  tst_wcstok \
+  tst_wcstombs \
+  tst_wcswidth \
+  tst_wcsxfrm \
+  tst_wctob \
+  tst_wctomb \
+  tst_wctrans \
+  tst_wctype \
+  tst_wcwidth \
+  # locale_test_suite
+
+tests = \
+  $(locale_test_suite) \
+  bug-iconv-trans \
+  bug-setlocale1 \
+  bug-usesetlocale \
+  tst-c-utf8-consistency \
+  tst-digits \
+  tst-iconv-emojis-trans \
+  tst-iconv-math-trans \
+  tst-leaks \
+  tst-locale-loadlocale \
+  tst-mbswcs1 \
+  tst-mbswcs2 \
+  tst-mbswcs3 \
+  tst-mbswcs4 \
+  tst-mbswcs5 \
+  tst-mbswcs6 \
+  tst-setlocale \
+  tst-setlocale2 \
+  tst-setlocale3 \
+  tst-sscanf \
+  tst-strfmon1 \
+  tst-wctype \
+  tst-xlocale1 \
+  tst-xlocale2 \
+  # tests
+
+tests-static = bug-setlocale1-static
+tests += $(tests-static)
+ifeq (yes,$(build-shared))
+ifneq (no,$(PERL))
+tests-special += $(objpfx)mtrace-tst-leaks.out
+endif
+endif
+endif
+tests-container = \
+  tst-localedef-hardlinks \
+  # tests-container
+
+# Files to install.
+ifeq ($(INSTALL_UNCOMPRESSED),yes)
+# This option is for testing inside the testroot container, as the
+# container does not include a working gunzip program.
+install-others := $(addprefix $(inst_i18ndir)/, \
+			      $(charmaps) \
+			      $(locales))
+else
+install-others := $(addprefix $(inst_i18ndir)/, \
+			      $(addsuffix .gz, $(charmaps)) \
+			      $(locales))
+endif
+
+tests: $(objdir)/iconvdata/gconv-modules
+
+tests-static += \
+  tst-langinfo-newlocale-static \
+  tst-langinfo-setlocale-static \
+  # tests-static
+
+ifeq ($(run-built-tests),yes)
+tests-special += \
+  $(objpfx)sort-test.out \
+  $(objpfx)tst-ctype.out \
+  $(objpfx)tst-fmon.out \
+  $(objpfx)tst-langinfo-newlocale-static.out \
+  $(objpfx)tst-langinfo-newlocale.out \
+  $(objpfx)tst-langinfo-setlocale-static.out \
+  $(objpfx)tst-langinfo-setlocale.out \
+  $(objpfx)tst-locale.out \
+  $(objpfx)tst-numeric.out \
+  $(objpfx)tst-rpmatch.out \
+  $(objpfx)tst-trans.out \
+  # tests-special
+# We have to generate locales (list sorted alphabetically)
+LOCALES := \
+  C.UTF-8 \
+  am_ET.UTF-8 \
+  az_AZ.UTF-8 \
+  be_BY.UTF-8 \
+  ber_DZ.UTF-8 \
+  ber_MA.UTF-8 \
+  bg_BG.UTF-8 \
+  br_FR.UTF-8 \
+  bs_BA.UTF-8 \
+  ckb_IQ.UTF-8 \
+  cmn_TW.UTF-8 \
+  crh_UA.UTF-8 \
+  cs_CZ.UTF-8 \
+  csb_PL.UTF-8 \
+  cv_RU.UTF-8 \
+  cy_GB.UTF-8 \
+  da_DK.ISO-8859-1 \
+  de_DE.ISO-8859-1 \
+  de_DE.UTF-8 \
+  dsb_DE.UTF-8 \
+  dz_BT.UTF-8 \
+  en_GB.UTF-8 \
+  en_US \
+  en_US.ANSI_X3.4-1968 \
+  en_US.ISO-8859-1\
+  en_US.UTF-8 \
+  eo.UTF-8 \
+  es_ES.UTF-8 \
+  et_EE.UTF-8 \
+  fa_IR.UTF-8 \
+  fi_FI.UTF-8 \
+  fil_PH.UTF-8 \
+  fr_CA.UTF-8 \
+  fr_FR.ISO-8859-1 \
+  fr_FR.UTF-8 \
+  fur_IT.UTF-8 \
+  gez_ER.UTF-8@abegede \
+  ha_NG.UTF-8 \
+  hr_HR.ISO-8859-2 \
+  hr_HR.UTF-8 \
+  hsb_DE.UTF-8 \
+  hu_HU.UTF-8 \
+  ig_NG.UTF-8 \
+  ik_CA.UTF-8 \
+  is_IS.UTF-8 \
+  ja_JP.EUC-JP \
+  ja_JP.SJIS \
+  ja_JP.UTF-8 \
+  kk_KZ.UTF-8 \
+  ku_TR.UTF-8 \
+  ky_KG.UTF-8 \
+  ln_CD.UTF-8 \
+  lt_LT.UTF-8 \
+  ltg_LV.UTF-8 \
+  lv_LV.UTF-8 \
+  mdf_RU.UTF-8 \
+  mi_NZ.UTF-8 \
+  ml_IN.UTF-8 \
+  mn_MN.UTF-8 \
+  mr_IN.UTF-8 \
+  mt_MT.UTF-8 \
+  nan_TW.UTF-8@latin \
+  nb_NO.ISO-8859-1 \
+  nb_NO.UTF-8 \
+  nl_NL.UTF-8 \
+  nn_NO.ISO-8859-1 \
+  om_KE.UTF-8 \
+  or_IN.UTF-8 \
+  os_RU.UTF-8 \
+  pl_PL.UTF-8 \
+  ps_AF.UTF-8 \
+  rif_MA.UTF-8 \
+  ro_RO.UTF-8 \
+  ru_RU.UTF-8 \
+  sah_RU.UTF-8 \
+  sc_IT.UTF-8 \
+  se_NO.UTF-8 \
+  si_LK.UTF-8 \
+  sq_AL.UTF-8 \
+  sr_RS.UTF-8 \
+  sv_SE.ISO-8859-1 \
+  sv_SE.UTF-8 \
+  syr.UTF-8 \
+  szl_PL.UTF-8 \
+  tg_TJ.UTF-8 \
+  th_TH.UTF-8 \
+  tk_TM.UTF-8 \
+  tr_TR.ISO-8859-9 \
+  tr_TR.UTF-8 \
+  tt_RU.UTF-8 \
+  tt_RU.UTF-8@iqtelif \
+  ug_CN.UTF-8 \
+  uk_UA.UTF-8 \
+  uz_UZ.UTF-8 \
+  vi_VN.UTF-8 \
+  yi_US.UTF-8 \
+  yo_NG.UTF-8 \
+  zh_CN.UTF-8 \
+  zh_TW.EUC-TW \
+  # LOCALES
+
+include ../gen-locales.mk
+
+$(objpfx)tst-iconv-emojis-trans.out: $(gen-locales)
+
+$(objpfx)tst-iconv-math-trans.out: $(gen-locales)
+# tst-locale-loadlocale: Needs an en_US-named locale for the test.
+$(objpfx)tst-locale-loadlocale.out: $(gen-locales)
+endif
+
+include ../Rules
+
+ifeq ($(INSTALL_UNCOMPRESSED),yes)
+# Install the charmap files as-is.  This option is for testing inside
+# the testroot container, as the container does not include a working
+# gunzip program.
+$(inst_i18ndir)/charmaps/%: charmaps/% $(+force)
+	$(make-target-directory)
+	rm -f $@
+	$(INSTALL_DATA) $< $@
+else
+# Install the charmap files in gzipped format.
+$(inst_i18ndir)/charmaps/%.gz: charmaps/% $(+force)
+	$(make-target-directory)
+	rm -f $(@:.gz=) $@
+	$(INSTALL_DATA) $< $(@:.gz=)
+	gzip -9n $(@:.gz=)
+endif
+
+# Install the locale source files in the appropriate directory.
+$(inst_i18ndir)/locales/%: locales/% $(+force); $(do-install)
+
+ifeq ($(run-built-tests),yes)
+generated-dirs += $(LOCALES)
+
+$(addsuffix .out,$(addprefix $(objpfx),$(tests))): %: \
+  $(addprefix $(objpfx),$(CTYPE_FILES))
+
+$(objpfx)sort-test.out: sort-test.sh $(objpfx)collate-test $(objpfx)xfrm-test \
+		       $(test-input-data) $(addprefix $(objpfx),$(CTYPE_FILES))
+	$(SHELL) $< $(common-objpfx) '$(test-program-prefix-before-env)' \
+	  '$(run-program-env)' '$(test-program-prefix-after-env)' \
+	  $(test-input) \
+	  > $@; \
+	$(evaluate-test)
+$(objpfx)tst-fmon.out: tst-fmon.sh $(objpfx)tst-fmon tst-fmon.data \
+		       $(objpfx)sort-test.out \
+		       $(addprefix $(objpfx),$(CTYPE_FILES))
+	$(SHELL) $< $(common-objpfx) '$(run-program-prefix-before-env)' \
+		 '$(run-program-env)' '$(run-program-prefix-after-env)' \
+		 '$(test-program-prefix)' tst-fmon.data \
+	  > $@; \
+	$(evaluate-test)
+$(objpfx)tst-numeric.out: tst-numeric.sh $(objpfx)tst-numeric tst-numeric.data \
+		       $(objpfx)sort-test.out \
+		       $(addprefix $(objpfx),$(CTYPE_FILES))
+	$(SHELL) $< $(common-objpfx) '$(test-program-prefix)' tst-numeric.data \
+	  > $@; \
+	$(evaluate-test)
+$(objpfx)tst-locale.out: tst-locale.sh $(common-objpfx)locale/localedef \
+			 $(ld-test-srcs) $(addprefix $(objpfx),$(CTYPE_FILES))
+	$(SHELL) $< $(common-objpfx) '$(built-program-cmd-before-env)' \
+		 '$(run-program-env)' '$(built-program-cmd-after-env)' > $@; \
+	$(evaluate-test)
+$(objpfx)tst-rpmatch.out: tst-rpmatch.sh $(objpfx)tst-rpmatch \
+			  $(objpfx)tst-fmon.out \
+			  $(addprefix $(objpfx),$(CTYPE_FILES))
+	$(SHELL) $< $(common-objpfx) '$(test-program-cmd)' > $@; \
+	$(evaluate-test)
+$(objpfx)tst-trans.out: tst-trans.sh $(objpfx)tst-trans \
+			$(addprefix $(objpfx),$(CTYPE_FILES))
+	$(SHELL) $< $(common-objpfx) '$(run-program-prefix-before-env)' \
+		 '$(run-program-env)' '$(run-program-prefix-after-env)' \
+		 '$(test-program-prefix-before-env)' \
+		 '$(test-program-prefix-after-env)'; \
+	$(evaluate-test)
+$(objpfx)tst-ctype.out: tst-ctype.sh $(objpfx)tst-ctype \
+			$(objpfx)sort-test.out \
+			$(addprefix $(objpfx),$(CTYPE_FILES))
+	$(SHELL) $< $(common-objpfx) '$(test-program-cmd-before-env)' \
+		 '$(run-program-env)' '$(test-program-cmd-after-env)'; \
+	$(evaluate-test)
+$(objpfx)tst-langinfo-newlocale.out: tst-langinfo.sh \
+			$(objpfx)tst-langinfo-newlocale \
+			$(objpfx)sort-test.out \
+			$(addprefix $(objpfx),$(CTYPE_FILES))
+	$(SHELL) $< $(common-objpfx) '$(test-program-cmd-before-env)' \
+		 '$(run-program-env)' '$(test-program-cmd-after-env)' > $@; \
+	$(evaluate-test)
+$(objpfx)tst-langinfo-newlocale-static.out: tst-langinfo.sh \
+			$(objpfx)tst-langinfo-newlocale-static \
+			$(objpfx)sort-test.out \
+			$(addprefix $(objpfx),$(CTYPE_FILES))
+	$(SHELL) $< $(common-objpfx) '$(test-program-cmd-before-env)' \
+		 '$(run-program-env)' '$(test-program-cmd-after-env)' > $@; \
+	$(evaluate-test)
+# Static use of newlocale is known not to work. See Bug 23164.
+test-xfail-tst-langinfo-newlocale-static = yes
+
+$(objpfx)tst-langinfo-setlocale.out: tst-langinfo.sh \
+			$(objpfx)tst-langinfo-setlocale \
+			$(objpfx)sort-test.out \
+			$(addprefix $(objpfx),$(CTYPE_FILES))
+	$(SHELL) $< $(common-objpfx) '$(test-program-cmd-before-env)' \
+		 '$(run-program-env)' '$(test-program-cmd-after-env)' > $@; \
+	$(evaluate-test)
+$(objpfx)tst-langinfo-setlocale-static.out: tst-langinfo.sh \
+			$(objpfx)tst-langinfo-setlocale-static \
+			$(objpfx)sort-test.out \
+			$(addprefix $(objpfx),$(CTYPE_FILES))
+	$(SHELL) $< $(common-objpfx) '$(test-program-cmd-before-env)' \
+		 '$(run-program-env)' '$(test-program-cmd-after-env)' > $@; \
+	$(evaluate-test)
+
+$(objpfx)tst-digits.out: $(objpfx)tst-locale.out
+$(objpfx)tst-mbswcs6.out: $(addprefix $(objpfx),$(CTYPE_FILES))
+endif
+
+include SUPPORTED
+
+INSTALL-SUPPORTED-LOCALE-ARCHIVE=$(addprefix install-archive-, $(SUPPORTED-LOCALES))
+INSTALL-SUPPORTED-LOCALE-FILES=$(addprefix install-files-, $(SUPPORTED-LOCALES))
+
+# Sometimes the whole collection of locale files should be installed.
+LOCALEDEF=I18NPATH=. GCONV_PATH=$(common-objpfx)iconvdata LC_ALL=C \
+$(rtld-prefix) $(common-objpfx)locale/localedef
+install-locales: install-locale-archive
+
+# Create and install the locale-archive file.
+install-locale-archive: $(INSTALL-SUPPORTED-LOCALE-ARCHIVE)
+# Create and install the locales individually (no archive).
+install-locale-files: $(INSTALL-SUPPORTED-LOCALE-FILES)
+
+install-locales-dir:
+	$(..)./scripts/mkinstalldirs $(inst_complocaledir)
+
+# The SHIFT_JIS and SHIFT_JISX0213 character maps are not ASCII compatible,
+# therefore we have to use --no-warnings=ascii to disable the ASCII check.
+# See localedata/gen-locale.sh for the same logic.
+define build-one-locale
+	locale=`echo $@ | sed -e 's/^install-[a-z]*-//'`; \
+	charset=`echo $$locale | sed -e 's,.*/,,'`; \
+	locale=`echo $$locale | sed -e 's,/[^/]*,,'`; \
+	if [ "$$charset" = 'SHIFT_JIS' ] \
+	   || [ "$$charset" = 'SHIFT_JISX0213' ]; then \
+	   flags="$$flags --no-warnings=ascii"; \
+	fi; \
+	echo -n `echo $$locale | sed 's/\([^.\@]*\).*/\1/'`; \
+	echo -n ".$$charset"; \
+	echo -n `echo $$locale | sed 's/\([^\@]*\)\(\@.*\)*/\2/'`; \
+	echo -n '...'; \
+	input=`echo $$locale | sed 's/\([^.]*\)[^@]*\(.*\)/\1\2/'`; \
+	$(LOCALEDEF) $$flags --alias-file=../intl/locale.alias \
+		     --no-archive \
+		     -i locales/$$input -f charmaps/$$charset \
+		     $(addprefix --prefix=,$(install_root)) $$locale \
+	&& echo ' done';
+endef
+
+$(INSTALL-SUPPORTED-LOCALE-ARCHIVE): install-locales-dir
+	@flags=""; \
+	$(build-one-locale)
+
+$(INSTALL-SUPPORTED-LOCALE-FILES): install-locales-dir
+	@flags="--no-archive --no-hard-links"; \
+	$(build-one-locale)
+
+tst-setlocale-ENV = LC_ALL=ja_JP.EUC-JP
+tst-wctype-ENV = LC_ALL=ja_JP.EUC-JP
+
+tst-leaks-ENV = MALLOC_TRACE=$(objpfx)tst-leaks.mtrace \
+		LD_PRELOAD=$(common-objpfx)/malloc/libc_malloc_debug.so
+$(objpfx)mtrace-tst-leaks.out: $(objpfx)tst-leaks.out
+	$(common-objpfx)malloc/mtrace $(objpfx)tst-leaks.mtrace > $@; \
+	$(evaluate-test)
+
+bug-setlocale1-ENV-only = LOCPATH=$(objpfx) LC_CTYPE=de_DE.UTF-8
+bug-setlocale1-static-ENV-only = $(bug-setlocale1-ENV-only)
+
+$(objdir)/iconvdata/gconv-modules:
+	$(MAKE) -C ../iconvdata subdir=iconvdata $@
Index: sources/GNU/glibc/2.40/create-2.40-malloc-hooks-patch/create.patch.sh
===================================================================
--- sources/GNU/glibc/2.40/create-2.40-malloc-hooks-patch/create.patch.sh	(nonexistent)
+++ sources/GNU/glibc/2.40/create-2.40-malloc-hooks-patch/create.patch.sh	(revision 394)
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+VERSION=2.40
+
+tar --files-from=file.list -xJvf ../glibc-$VERSION.tar.xz
+mv glibc-$VERSION glibc-$VERSION-orig
+
+cp -rf ./glibc-$VERSION-new ./glibc-$VERSION
+
+diff --unified -Nr  glibc-$VERSION-orig  glibc-$VERSION > glibc-$VERSION-malloc-hooks.patch
+
+mv glibc-$VERSION-malloc-hooks.patch ../patches
+
+rm -rf ./glibc-$VERSION
+rm -rf ./glibc-$VERSION-orig

Property changes on: sources/GNU/glibc/2.40/create-2.40-malloc-hooks-patch/create.patch.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: sources/GNU/glibc/2.40/create-2.40-malloc-hooks-patch/file.list
===================================================================
--- sources/GNU/glibc/2.40/create-2.40-malloc-hooks-patch/file.list	(nonexistent)
+++ sources/GNU/glibc/2.40/create-2.40-malloc-hooks-patch/file.list	(revision 394)
@@ -0,0 +1 @@
+glibc-2.40/malloc/malloc-check.c
Index: sources/GNU/glibc/2.40/create-2.40-malloc-hooks-patch/glibc-2.40-new/malloc/malloc-check.c
===================================================================
--- sources/GNU/glibc/2.40/create-2.40-malloc-hooks-patch/glibc-2.40-new/malloc/malloc-check.c	(nonexistent)
+++ sources/GNU/glibc/2.40/create-2.40-malloc-hooks-patch/glibc-2.40-new/malloc/malloc-check.c	(revision 394)
@@ -0,0 +1,395 @@
+/* glibc.malloc.check implementation.
+   Copyright (C) 2001-2024 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public License as
+   published by the Free Software Foundation; either version 2.1 of the
+   License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If
+   not, see <https://www.gnu.org/licenses/>.  */
+
+#define __mremap mremap
+#include "malloc.c"
+
+/* When memory is tagged, the checking data is stored in the user part
+   of the chunk.  We can't rely on the user not having modified the
+   tags, so fetch the tag at each location before dereferencing
+   it.  */
+#define SAFE_CHAR_OFFSET(p,offset) \
+  ((unsigned char *) tag_at (((unsigned char *) p) + offset))
+
+/* A simple, standard set of debugging hooks.  Overhead is `only' one
+   byte per chunk; still this will catch most cases of double frees or
+   overruns.  The goal here is to avoid obscure crashes due to invalid
+   usage, unlike in the MALLOC_DEBUG code. */
+
+static unsigned char
+magicbyte (const void *p)
+{
+  unsigned char magic;
+
+  magic = (((uintptr_t) p >> 3) ^ ((uintptr_t) p >> 11)) & 0xFF;
+  /* Do not return 1.  See the comment in mem2mem_check().  */
+  if (magic == 1)
+    ++magic;
+  return magic;
+}
+
+/* Visualize the chunk as being partitioned into blocks of 255 bytes from the
+   highest address of the chunk, downwards.  The end of each block tells
+   us the size of that block, up to the actual size of the requested
+   memory.  Our magic byte is right at the end of the requested size, so we
+   must reach it with this iteration, otherwise we have witnessed a memory
+   corruption.  */
+static size_t
+malloc_check_get_size (void *mem)
+{
+  size_t size;
+  unsigned char c;
+  mchunkptr p = mem2chunk (mem);
+  unsigned char magic = magicbyte (p);
+
+  for (size = CHUNK_HDR_SZ + memsize (p) - 1;
+       (c = *SAFE_CHAR_OFFSET (p, size)) != magic;
+       size -= c)
+    {
+      if (c <= 0 || size < (c + CHUNK_HDR_SZ))
+	malloc_printerr ("malloc_check_get_size: memory corruption");
+    }
+
+  /* chunk2mem size.  */
+  return size - CHUNK_HDR_SZ;
+}
+
+/* Instrument a chunk with overrun detector byte(s) and convert it
+   into a user pointer with requested size req_sz. */
+
+static void *
+mem2mem_check (void *ptr, size_t req_sz)
+{
+  mchunkptr p;
+  unsigned char *m_ptr = ptr;
+  size_t max_sz, block_sz, i;
+  unsigned char magic;
+
+  if (!ptr)
+    return ptr;
+
+  p = mem2chunk (ptr);
+  magic = magicbyte (p);
+  max_sz = memsize (p);
+
+  for (i = max_sz - 1; i > req_sz; i -= block_sz)
+    {
+      block_sz = MIN (i - req_sz, 0xff);
+      /* Don't allow the magic byte to appear in the chain of length bytes.
+         For the following to work, magicbyte cannot return 0x01.  */
+      if (block_sz == magic)
+        --block_sz;
+
+      *SAFE_CHAR_OFFSET (m_ptr, i) = block_sz;
+    }
+  *SAFE_CHAR_OFFSET (m_ptr, req_sz) = magic;
+  return (void *) m_ptr;
+}
+
+/* Convert a pointer to be free()d or realloc()ed to a valid chunk
+   pointer.  If the provided pointer is not valid, return NULL. */
+
+static mchunkptr
+mem2chunk_check (void *mem, unsigned char **magic_p)
+{
+  mchunkptr p;
+  INTERNAL_SIZE_T sz, c;
+  unsigned char magic;
+
+  if (!aligned_OK (mem))
+    return NULL;
+
+  p = mem2chunk (mem);
+  sz = chunksize (p);
+  magic = magicbyte (p);
+  if (!chunk_is_mmapped (p))
+    {
+      /* Must be a chunk in conventional heap memory. */
+      int contig = contiguous (&main_arena);
+      if ((contig &&
+           ((char *) p < mp_.sbrk_base ||
+            ((char *) p + sz) >= (mp_.sbrk_base + main_arena.system_mem))) ||
+          sz < MINSIZE || sz & MALLOC_ALIGN_MASK || !inuse (p) ||
+          (!prev_inuse (p) && ((prev_size (p) & MALLOC_ALIGN_MASK) != 0 ||
+                               (contig && (char *) prev_chunk (p) < mp_.sbrk_base) ||
+                               next_chunk (prev_chunk (p)) != p)))
+        return NULL;
+
+      for (sz = CHUNK_HDR_SZ + memsize (p) - 1;
+	   (c = *SAFE_CHAR_OFFSET (p, sz)) != magic;
+	   sz -= c)
+        {
+          if (c == 0 || sz < (c + CHUNK_HDR_SZ))
+            return NULL;
+        }
+    }
+  else
+    {
+      unsigned long offset, page_mask = GLRO (dl_pagesize) - 1;
+
+      /* mmap()ed chunks have MALLOC_ALIGNMENT or higher power-of-two
+         alignment relative to the beginning of a page.  Check this
+         first. */
+      offset = (unsigned long) mem & page_mask;
+      if ((offset != MALLOC_ALIGNMENT && offset != 0 && offset != 0x10 &&
+           offset != 0x20 && offset != 0x40 && offset != 0x80 && offset != 0x100 &&
+           offset != 0x200 && offset != 0x400 && offset != 0x800 && offset != 0x1000 &&
+           offset < 0x2000) ||
+          !chunk_is_mmapped (p) || prev_inuse (p) ||
+          ((((unsigned long) p - prev_size (p)) & page_mask) != 0) ||
+          ((prev_size (p) + sz) & page_mask) != 0)
+        return NULL;
+
+      for (sz = CHUNK_HDR_SZ + memsize (p) - 1;
+	   (c = *SAFE_CHAR_OFFSET (p, sz)) != magic;
+	   sz -= c)
+        {
+          if (c == 0 || sz < (c + CHUNK_HDR_SZ))
+            return NULL;
+        }
+    }
+
+  unsigned char* safe_p = SAFE_CHAR_OFFSET (p, sz);
+  *safe_p ^= 0xFF;
+  if (magic_p)
+    *magic_p = safe_p;
+  return p;
+}
+
+/* Check for corruption of the top chunk.  */
+static void
+top_check (void)
+{
+  mchunkptr t = top (&main_arena);
+
+  if (t == initial_top (&main_arena) ||
+      (!chunk_is_mmapped (t) &&
+       chunksize (t) >= MINSIZE &&
+       prev_inuse (t) &&
+       (!contiguous (&main_arena) ||
+        (char *) t + chunksize (t) == mp_.sbrk_base + main_arena.system_mem)))
+    return;
+
+  malloc_printerr ("malloc: top chunk is corrupt");
+}
+
+static void *
+malloc_check (size_t sz)
+{
+  void *victim;
+  size_t nb;
+
+  if (__builtin_add_overflow (sz, 1, &nb))
+    {
+      __set_errno (ENOMEM);
+      return NULL;
+    }
+
+  __libc_lock_lock (main_arena.mutex);
+  top_check ();
+  victim = _int_malloc (&main_arena, nb);
+  __libc_lock_unlock (main_arena.mutex);
+  return mem2mem_check (tag_new_usable (victim), sz);
+}
+
+static void
+free_check (void *mem)
+{
+  mchunkptr p;
+
+  if (!mem)
+    return;
+
+  int err = errno;
+
+  /* Quickly check that the freed pointer matches the tag for the memory.
+     This gives a useful double-free detection.  */
+  if (__glibc_unlikely (mtag_enabled))
+    *(volatile char *)mem;
+
+  __libc_lock_lock (main_arena.mutex);
+  p = mem2chunk_check (mem, NULL);
+  if (!p)
+    malloc_printerr ("free(): invalid pointer");
+  if (chunk_is_mmapped (p))
+    {
+      __libc_lock_unlock (main_arena.mutex);
+      munmap_chunk (p);
+    }
+  else
+    {
+      /* Mark the chunk as belonging to the library again.  */
+      (void)tag_region (chunk2mem (p), memsize (p));
+      _int_free (&main_arena, p, 1);
+      __libc_lock_unlock (main_arena.mutex);
+    }
+  __set_errno (err);
+}
+
+static void *
+realloc_check (void *oldmem, size_t bytes)
+{
+  INTERNAL_SIZE_T chnb;
+  void *newmem = 0;
+  unsigned char *magic_p = NULL;
+  size_t rb;
+
+  if (__builtin_add_overflow (bytes, 1, &rb))
+    {
+      __set_errno (ENOMEM);
+      return NULL;
+    }
+  if (oldmem == 0)
+    return malloc_check (bytes);
+
+  if (bytes == 0)
+    {
+      free_check (oldmem);
+      return NULL;
+    }
+
+  /* Quickly check that the freed pointer matches the tag for the memory.
+     This gives a useful double-free detection.  */
+  if (__glibc_unlikely (mtag_enabled))
+    *(volatile char *)oldmem;
+
+  __libc_lock_lock (main_arena.mutex);
+  const mchunkptr oldp = mem2chunk_check (oldmem, &magic_p);
+  __libc_lock_unlock (main_arena.mutex);
+  if (!oldp)
+    malloc_printerr ("realloc(): invalid pointer");
+  const INTERNAL_SIZE_T oldsize = chunksize (oldp);
+
+  chnb = checked_request2size (rb);
+  if (chnb == 0)
+    {
+      __set_errno (ENOMEM);
+      goto invert;
+    }
+
+  __libc_lock_lock (main_arena.mutex);
+
+  if (chunk_is_mmapped (oldp))
+    {
+#if HAVE_MREMAP
+      mchunkptr newp = mremap_chunk (oldp, chnb);
+      if (newp)
+        newmem = chunk2mem_tag (newp);
+      else
+#endif
+      {
+	/* Note the extra SIZE_SZ overhead. */
+        if (oldsize - SIZE_SZ >= chnb)
+          newmem = oldmem; /* do nothing */
+        else
+          {
+            /* Must alloc, copy, free. */
+	    top_check ();
+	    newmem = _int_malloc (&main_arena, rb);
+            if (newmem)
+              {
+                memcpy (newmem, oldmem, oldsize - CHUNK_HDR_SZ);
+                munmap_chunk (oldp);
+              }
+          }
+      }
+    }
+  else
+    {
+      top_check ();
+      newmem = _int_realloc (&main_arena, oldp, oldsize, chnb);
+    }
+
+  DIAG_PUSH_NEEDS_COMMENT;
+#if __GNUC_PREREQ (7, 0)
+  /* GCC 7 warns about magic_p may be used uninitialized.  But we never
+     reach here if magic_p is uninitialized.  */
+  DIAG_IGNORE_NEEDS_COMMENT (7, "-Wmaybe-uninitialized");
+#endif
+  /* mem2chunk_check changed the magic byte in the old chunk.
+     If newmem is NULL, then the old chunk will still be used though,
+     so we need to invert that change here.  */
+invert:
+  if (newmem == NULL)
+    *magic_p ^= 0xFF;
+  DIAG_POP_NEEDS_COMMENT;
+
+  __libc_lock_unlock (main_arena.mutex);
+
+  return mem2mem_check (tag_new_usable (newmem), bytes);
+}
+
+static void *
+memalign_check (size_t alignment, size_t bytes)
+{
+  void *mem;
+
+  if (alignment <= MALLOC_ALIGNMENT)
+    return malloc_check (bytes);
+
+  if (alignment < MINSIZE)
+    alignment = MINSIZE;
+
+  /* If the alignment is greater than SIZE_MAX / 2 + 1 it cannot be a
+     power of 2 and will cause overflow in the check below.  */
+  if (alignment > SIZE_MAX / 2 + 1)
+    {
+      __set_errno (EINVAL);
+      return NULL;
+    }
+
+  /* Check for overflow.  */
+  if (bytes > SIZE_MAX - alignment - MINSIZE)
+    {
+      __set_errno (ENOMEM);
+      return NULL;
+    }
+
+  /* Make sure alignment is power of 2.  */
+  if (!powerof2 (alignment))
+    {
+      size_t a = MALLOC_ALIGNMENT * 2;
+      while (a < alignment)
+        a <<= 1;
+      alignment = a;
+    }
+
+  __libc_lock_lock (main_arena.mutex);
+  top_check ();
+  mem = _int_memalign (&main_arena, alignment, bytes + 1);
+  __libc_lock_unlock (main_arena.mutex);
+  return mem2mem_check (tag_new_usable (mem), bytes);
+}
+
+static void
+TUNABLE_CALLBACK (set_mallopt_check) (tunable_val_t *valp)
+{
+  int32_t value = (int32_t) valp->numval;
+  if (value != 0)
+    __malloc_debug_enable (MALLOC_CHECK_HOOK);
+}
+
+static bool
+initialize_malloc_check (void)
+{
+  /* This is the copy of the malloc initializer that we pulled in along with
+     malloc-check.  This does not affect any of the libc malloc structures.  */
+  ptmalloc_init ();
+  TUNABLE_GET (check, int32_t, TUNABLE_CALLBACK (set_mallopt_check));
+  return __is_malloc_debug_enabled (MALLOC_CHECK_HOOK);
+}
Index: sources/GNU/glibc/2.40/create-2.40-ppc64-interpreter-patch/create.patch.sh
===================================================================
--- sources/GNU/glibc/2.40/create-2.40-ppc64-interpreter-patch/create.patch.sh	(nonexistent)
+++ sources/GNU/glibc/2.40/create-2.40-ppc64-interpreter-patch/create.patch.sh	(revision 394)
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+VERSION=2.40
+
+tar --files-from=file.list -xJvf ../glibc-$VERSION.tar.xz
+mv glibc-$VERSION glibc-$VERSION-orig
+
+cp -rf ./glibc-$VERSION-new ./glibc-$VERSION
+
+diff --unified -Nr  glibc-$VERSION-orig  glibc-$VERSION > glibc-$VERSION-ppc64-interpreter.patch
+
+mv glibc-$VERSION-ppc64-interpreter.patch ../patches
+
+rm -rf ./glibc-$VERSION
+rm -rf ./glibc-$VERSION-orig

Property changes on: sources/GNU/glibc/2.40/create-2.40-ppc64-interpreter-patch/create.patch.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: sources/GNU/glibc/2.40/create-2.40-ppc64-interpreter-patch/file.list
===================================================================
--- sources/GNU/glibc/2.40/create-2.40-ppc64-interpreter-patch/file.list	(nonexistent)
+++ sources/GNU/glibc/2.40/create-2.40-ppc64-interpreter-patch/file.list	(revision 394)
@@ -0,0 +1 @@
+glibc-2.40/sysdeps/unix/sysv/linux/powerpc/ldd-rewrite.sed
Index: sources/GNU/glibc/2.40/create-2.40-ppc64-interpreter-patch/glibc-2.40-new/sysdeps/unix/sysv/linux/powerpc/ldd-rewrite.sed
===================================================================
--- sources/GNU/glibc/2.40/create-2.40-ppc64-interpreter-patch/glibc-2.40-new/sysdeps/unix/sysv/linux/powerpc/ldd-rewrite.sed	(nonexistent)
+++ sources/GNU/glibc/2.40/create-2.40-ppc64-interpreter-patch/glibc-2.40-new/sysdeps/unix/sysv/linux/powerpc/ldd-rewrite.sed	(revision 394)
@@ -0,0 +1,12 @@
+# ldd is generated from elf/ldd.bash.in with the name
+# of ld.so as generated in Makeconfig
+
+# that name is replaced by a pair referring to both
+# the 32bit and 64bit dynamic linker.
+
+# /lib(64|)/*(64|).so.(1|2) is replaced with /lib64/*64.so.(1|2) and /lib/*.so.1
+# this works for /lib/ld64.so.x and /lib32/ld.so.x as input
+s_lib64_lib_
+s_64\.so_\.so_
+s_^RTLDLIST=\(.*lib\)\(\|64\|32\)\(/[^/]*\)\(\.so\.[0-9.]*\)[[:blank:]]*$_RTLDLIST="\1\364\4 \132\3\.so\.1"_
+
Index: sources/GNU/glibc/2.40/create-2.40-reenable-DT-HASH-patch/create.patch.sh
===================================================================
--- sources/GNU/glibc/2.40/create-2.40-reenable-DT-HASH-patch/create.patch.sh	(nonexistent)
+++ sources/GNU/glibc/2.40/create-2.40-reenable-DT-HASH-patch/create.patch.sh	(revision 394)
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+VERSION=2.40
+
+tar --files-from=file.list -xJvf ../glibc-$VERSION.tar.xz
+mv glibc-$VERSION glibc-$VERSION-orig
+
+cp -rf ./glibc-$VERSION-new ./glibc-$VERSION
+
+diff --unified -Nr  glibc-$VERSION-orig  glibc-$VERSION > glibc-$VERSION-reenable-DT-HASH.patch
+
+mv glibc-$VERSION-reenable-DT-HASH.patch ../patches
+
+rm -rf ./glibc-$VERSION
+rm -rf ./glibc-$VERSION-orig

Property changes on: sources/GNU/glibc/2.40/create-2.40-reenable-DT-HASH-patch/create.patch.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: sources/GNU/glibc/2.40/create-2.40-reenable-DT-HASH-patch/file.list
===================================================================
--- sources/GNU/glibc/2.40/create-2.40-reenable-DT-HASH-patch/file.list	(nonexistent)
+++ sources/GNU/glibc/2.40/create-2.40-reenable-DT-HASH-patch/file.list	(revision 394)
@@ -0,0 +1,5 @@
+glibc-2.40/Makeconfig
+glibc-2.40/Makerules
+glibc-2.40/config.make.in
+glibc-2.40/configure
+glibc-2.40/configure.ac
Index: sources/GNU/glibc/2.40/create-2.40-reenable-DT-HASH-patch/glibc-2.40-new/Makeconfig
===================================================================
--- sources/GNU/glibc/2.40/create-2.40-reenable-DT-HASH-patch/glibc-2.40-new/Makeconfig	(nonexistent)
+++ sources/GNU/glibc/2.40/create-2.40-reenable-DT-HASH-patch/glibc-2.40-new/Makeconfig	(revision 394)
@@ -0,0 +1,1477 @@
+# Copyright (C) 1991-2024 Free Software Foundation, Inc.
+# Copyright The GNU Toolchain Authors.
+# This file is part of the GNU C Library.
+
+# The GNU C Library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+
+# The GNU C Library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+
+# You should have received a copy of the GNU Lesser General Public
+# License along with the GNU C Library; if not, see
+# <https://www.gnu.org/licenses/>.
+
+#
+#	Makefile configuration options for the GNU C library.
+#
+ifneq (,)
+This makefile requires GNU Make.
+endif
+
+all: # Make this the default goal
+
+ifneq "$(origin +included-Makeconfig)" "file"
+
++included-Makeconfig := yes
+
+ifdef subdir
+.. := ../
+endif
+
+# $(common-objdir) is the place to put objects and
+# such that are not specific to a single subdir.
+ifdef objdir
+objpfx := $(patsubst %//,%/,$(objdir)/$(subdir)/)
+common-objpfx = $(objdir)/
+common-objdir = $(objdir)
+else
+$(error objdir must be defined by the build-directory Makefile)
+endif
+
+# Did we request 'make -s' run? "yes" or "no".
+# Starting from make-4.4 MAKEFLAGS now contains long
+# options like '--shuffle'. To detect presence of 's'
+# we pick first word with short options. Long options
+# are guaranteed to come after whitespace. We use '-'
+# prefix to always have a word before long options
+# even if no short options were passed.
+# Typical MAKEFLAGS values to watch for:
+#   "rs --shuffle=42" (silent)
+#   " --shuffle" (not silent)
+ifeq ($(findstring s, $(firstword -$(MAKEFLAGS))),)
+silent-make := no
+else
+silent-make := yes
+endif
+
+# Root of the sysdeps tree.
+sysdep_dir := $(..)sysdeps
+export sysdep_dir := $(sysdep_dir)
+
+# Get the values defined by options to `configure'.
+include $(common-objpfx)config.make
+
+# What flags to give to sources which call user provided callbacks
+uses-callbacks = -fexceptions
+
+# What flags to give to tests which test stack alignment
+stack-align-test-flags =
+
+# Complete path to sysdep dirs.
+# `configure' writes a definition of `config-sysdirs' in `config.make'.
+sysdirs := $(foreach D,$(config-sysdirs),$(firstword $(filter /%,$D) $(..)$D))
+
++sysdep_dirs = $(sysdirs)
+ifdef objdir
++sysdep_dirs := $(objdir) $(+sysdep_dirs)
+endif
+
+# Run config.status to update config.make and config.h.  We don't show the
+# dependence of config.h to Make, because it is only touched when it
+# changes and so config.status would be run every time; the dependence of
+# config.make should suffice to force regeneration and re-exec, and the new
+# image will notice if config.h changed.
+$(common-objpfx)config.make: $(common-objpfx)config.status \
+			     $(..)config.make.in $(..)config.h.in
+	cd $(<D); $(SHELL) $(<F)
+
+# Find all the sysdeps configure fragments, to make sure we re-run
+# configure when any of them changes.
+$(common-objpfx)config.status: $(..)version.h $(..)configure \
+			       $(foreach dir,$(sysdirs),\
+					 $(wildcard $(dir)/Implies) \
+					 $(patsubst %.ac,%,\
+						    $(firstword $(wildcard \
+ $(addprefix $(dir)/,configure configure.ac))))) \
+			       $(patsubst %.ac,%,\
+ $(wildcard $(..)sysdeps/*/preconfigure $(..)sysdeps/*/preconfigure.ac))
+	@cd $(@D); if test -f $(@F); then exec $(SHELL) $(@F) --recheck; else \
+	 echo The GNU C library has not been configured. >&2; \
+	 echo Run \`configure\' to configure it before building. >&2; \
+	 echo Try \`configure --help\' for more details. >&2; \
+	 exit 1; fi
+
+# We don't want CPPFLAGS to be exported to the command running configure.
+unexport CPPFLAGS
+
+# Get the user's configuration parameters.
+ifneq ($(wildcard $(..)configparms),)
+include $(..)configparms
+endif
+ifneq ($(objpfx),)
+ifneq ($(wildcard $(common-objpfx)configparms),)
+include $(common-objpfx)configparms
+endif
+endif
+
+####
+####	These are the configuration variables.  You can define values for
+####	the variables below in the file `configparms'.
+####	Do NOT edit this file.
+####
+
+
+# Common prefix for machine-independent installation directories.
+ifeq ($(origin prefix),undefined) # ifndef would override explicit empty value.
+prefix = /usr/local
+endif
+
+# Decide whether we shall build the programs or not.  We always do this
+# unless the user tells us (in configparms) or we are building for a
+# standalone target.
+ifndef build-programs
+ifneq ($(config-os),none)
+build-programs=yes
+else
+build-programs=no
+endif
+endif
+
+# Common prefix for machine-dependent installation directories.
+ifeq ($(origin exec_prefix),undefined)
+exec_prefix = $(prefix)
+endif
+
+# Where to install the library and object files.
+ifndef libdir
+libdir = $(exec_prefix)/lib
+endif
+inst_libdir = $(install_root)$(libdir)
+
+# Where to install the shared library.
+ifndef slibdir
+slibdir = $(exec_prefix)/lib
+endif
+inst_slibdir = $(install_root)$(slibdir)
+
+# Where to install the dynamic linker.
+ifndef rtlddir
+rtlddir = $(slibdir)
+endif
+inst_rtlddir = $(install_root)$(rtlddir)
+
+# Prefix to put on files installed in $(libdir).  For libraries `libNAME.a',
+# the prefix is spliced between `lib' and the name, so the linker switch
+# `-l$(libprefix)NAME' finds the library; for other files the prefix is
+# just prepended to the whole file name.
+ifeq ($(origin libprefix),undefined)
+libprefix =
+endif
+
+# Where to install the header files.
+ifndef includedir
+includedir = $(prefix)/include
+endif
+inst_includedir = $(install_root)$(includedir)
+
+# Where to install machine-independent data files.
+# These are the timezone database, and the locale database.
+ifndef datadir
+datadir = $(prefix)/share
+endif
+inst_datadir = $(install_root)$(datadir)
+
+# Where to install the timezone data files (which are machine-independent).
+ifndef zonedir
+zonedir = $(datadir)/zoneinfo
+endif
+inst_zonedir = $(install_root)$(zonedir)
+
+# Where to install the compiled binary locale archive and compiled
+# binary locale files.
+ifndef complocaledir
+complocaledir = $(libdir)/locale
+endif
+inst_complocaledir = $(install_root)$(complocaledir)
+
+# Where to install the message catalog data files (which are
+# machine-independent).
+ifndef localedir
+localedir = $(datadir)/locale
+endif
+inst_localedir = $(install_root)$(localedir)
+
+# Where to install the locale charmap source files.
+ifndef i18ndir
+i18ndir = $(datadir)/i18n
+endif
+inst_i18ndir = $(install_root)$(i18ndir)
+
+# Where to install the shared object for charset transformation.
+ifndef gconvdir
+gconvdir = $(libdir)/gconv
+endif
+inst_gconvdir = $(install_root)$(gconvdir)
+
+# Where to install programs.
+ifndef bindir
+bindir = $(exec_prefix)/bin
+endif
+inst_bindir = $(install_root)$(bindir)
+
+# Where to install internal programs.
+ifndef libexecdir
+libexecdir = $(exec_prefix)/libexec
+endif
+inst_libexecdir = $(install_root)$(libexecdir)
+
+# Where to install administrative programs.
+ifndef rootsbindir
+rootsbindir = $(exec_prefix)/sbin
+endif
+inst_rootsbindir = $(install_root)$(rootsbindir)
+
+ifndef sbindir
+sbindir = $(exec_prefix)/sbin
+endif
+inst_sbindir = $(install_root)$(sbindir)
+
+# Where to install the Info files.
+ifndef infodir
+infodir = $(prefix)/info
+endif
+inst_infodir = $(install_root)$(infodir)
+
+# Where to install audit libraries.
+ifndef auditdir
+auditdir = $(libdir)/audit
+endif
+inst_auditdir = $(install_root)$(auditdir)
+
+# Where to install default configuration files.  These include the local
+# timezone specification and network data base files.
+ifndef sysconfdir
+sysconfdir = $(prefix)/etc
+endif
+inst_sysconfdir = $(install_root)$(sysconfdir)
+
+# Directory for the database files and Makefile for nss_db.
+ifndef vardbdir
+vardbdir = $(localstatedir)/db
+endif
+inst_vardbdir = $(install_root)$(vardbdir)
+
+# Where to install the "localtime" timezone file; this is the file whose
+# contents $(localtime) specifies.  If this is a relative pathname, it is
+# relative to $(zonedir).  It is a good idea to put this somewhere
+# other than there, so the zoneinfo directory contains only universal data,
+# localizing the configuration data elsewhere.
+ifndef localtime-file
+localtime-file = $(sysconfdir)/localtime
+endif
+
+# What to use for leap second specifications in compiling the default
+# timezone files.  Set this to `/dev/null' for no leap second handling as
+# 1003.1 requires, or to `leapseconds' for proper leap second handling.
+# Both zone flavors are always available as `posix/ZONE' and `right/ZONE'.
+# This variable determines the default: if it's `/dev/null',
+# ZONE==posix/ZONE; if it's `leapseconds', ZONE==right/ZONE.
+ifndef leapseconds
+leapseconds = /dev/null
+endif
+
+# What timezone's DST rules should be used when a POSIX-style TZ
+# environment variable doesn't specify any rules.  For 1003.1 compliance
+# this timezone must use rules that are as U.S. federal law defines DST.
+# Run `make -C time echo-zonenames' to see a list of available zone names.
+# This setting can be changed with `zic -p TIMEZONE' at any time.
+# If you want POSIX.1 compatibility, use `America/New_York'.
+ifndef posixrules
+posixrules = America/New_York
+endif
+
+# Where to install the "posixrules" timezone file; this is file
+# whose contents $(posixrules) specifies.  If this is a relative
+# pathname, it is relative to $(zonedir).
+ifndef posixrules-file
+posixrules-file = posixrules
+endif
+
+
+# Directory where your system's native header files live.
+# This is used on Unix systems to generate some GNU libc header files.
+ifndef sysincludedir
+sysincludedir = /usr/include
+endif
+
+
+# Commands to install files.
+ifndef INSTALL_DATA
+INSTALL_DATA = $(INSTALL) -m 644
+endif
+ifndef INSTALL_SCRIPT
+INSTALL_SCRIPT = $(INSTALL)
+endif
+ifndef INSTALL_PROGRAM
+INSTALL_PROGRAM = $(INSTALL)
+endif
+ifndef INSTALL
+INSTALL = install
+endif
+
+
+# The name of the C compiler.
+# If you've got GCC, and it works, use it.
+ifeq ($(origin CC),default)
+CC := gcc
+endif
+
+# The name of the C compiler to use for compilations of programs to run on
+# the host that is building the library.  If you set CC to a
+# cross-compiler, you must set this to the normal compiler.
+ifndef BUILD_CC
+BUILD_CC = $(CC)
+endif
+
+# Default flags to pass the C compiler.
+ifndef default_cflags
+ifeq ($(release),stable)
+default_cflags := -g -O2
+else
+default_cflags := -g -O
+endif
+endif
+
+# Flags to pass the C compiler when assembling preprocessed assembly code
+# (`.S' files).
+ifndef asm-CPPFLAGS
+asm-CPPFLAGS =
+endif
+
+# Must be supported by the linker.
+no-whole-archive = -Wl,--no-whole-archive
+whole-archive = -Wl,--whole-archive
+
+# Installed name of the startup code.
+# The ELF convention is that the startfile is called crt1.o
+start-installed-name = crt1.o
+# Similar to crt1.o, but without _IO_stdin_used.
+start-name-2.0 = crt1-2.0.o
+# On systems that do not need a special startfile for statically linked
+# binaries, simply set it to the normal name.
+ifndef static-start-installed-name
+static-start-installed-name = $(start-installed-name)
+endif
+
+ifeq (yes,$(enable-static-pie))
+# Link with rcrt1.o, instead of crt1.o, to call _dl_relocate_static_pie
+# to relocate static PIE.
+real-static-start-installed-name = r$(static-start-installed-name)
+else
+real-static-start-installed-name = $(static-start-installed-name)
+endif
+
+relro-LDFLAGS = -Wl,-z,relro
+LDFLAGS.so += $(relro-LDFLAGS)
+LDFLAGS-rtld += $(relro-LDFLAGS)
+
+ifeq (yes,$(have-hash-style))
+# For the time being we unconditionally use 'both'.  At some time we
+# should declare statically linked code as 'out of luck' and compile
+# with --hash-style=gnu only.
+hashstyle-LDFLAGS = -Wl,--hash-style=both
+LDFLAGS.so += $(hashstyle-LDFLAGS)
+LDFLAGS-rtld += $(hashstyle-LDFLAGS)
+endif
+
+# Linker options to enable and disable DT_RELR.
+ifeq ($(have-dt-relr),yes)
+dt-relr-ldflag = -Wl,-z,pack-relative-relocs
+no-dt-relr-ldflag = -Wl,-z,nopack-relative-relocs
+else
+dt-relr-ldflag =
+no-dt-relr-ldflag =
+endif
+
+ifeq (no,$(build-pie-default))
+pie-default = $(no-pie-ccflag)
+else # build-pie-default
+pic-default = -DPIC
+# Compile libc.a and libc_p.a with -fPIE/-fpie for static PIE.
+pie-default = $(pie-ccflag)
+
+ifeq (yes,$(enable-static-pie))
+static-pie-dt-relr-ldflag = $(dt-relr-ldflag)
+ifeq (yes,$(have-static-pie))
+static-pie-ldflag = -static-pie
+else
+# Static PIE can't have dynamic relocations in read-only segments since
+# static PIE is mapped into memory by kernel.  --eh-frame-hdr is needed
+# for PIE to support exception.
+static-pie-ldflag = -Wl,-pie,--no-dynamic-linker,--eh-frame-hdr,-z,text
+endif # have-static-pie
+endif # enable-static-pie
+endif # build-pie-default
+
+# If lazy relocations are disabled, add the -z now flag.  Use
+# LDFLAGS-lib.so instead of LDFLAGS.so, to avoid adding the flag to
+# test modules.
+ifeq ($(bind-now),yes)
+LDFLAGS-lib.so += -Wl,-z,now
+# Extra flags for dynamically linked non-test main programs.
+link-extra-flags += -Wl,-z,now
+endif
+
+# Command to run after every final link (executable or shared object).
+# This is invoked with $(call after-link,...), so it should operate on
+# the file $1.  This can be set to do some sort of post-processing on
+# binaries, or to perform some sort of static sanity check.
+ifndef after-link
+after-link =
+endif
+
+# Additional libraries to link into every test.
+link-extra-libs-tests = $(libsupport)
+
+# Command for linking PIE programs with the C library.
+ifndef +link-pie
++link-pie-before-inputs = $(if $($(@F)-no-pie),$(no-pie-ldflag),-pie) \
+	     $(if $($(@F)-no-dt-relr),$(no-dt-relr-ldflag),$(dt-relr-ldflag)) \
+	     -Wl,-O1 -nostdlib -nostartfiles \
+	     $(sysdep-LDFLAGS) $(LDFLAGS) $(LDFLAGS-$(@F)) \
+	     $(relro-LDFLAGS) $(hashstyle-LDFLAGS) \
+	     $(firstword $(CRT-$(@F)) $(csu-objpfx)S$(start-installed-name)) \
+	     $(+preinit) $(+prectorS)
++link-pie-before-libc = -o $@ $(+link-pie-before-inputs) \
+	     $(filter-out $(addprefix $(csu-objpfx),start.o \
+						    S$(start-installed-name))\
+			  $(+preinit) $(link-extra-libs) \
+			  $(common-objpfx)libc% $(+postinit),$^) \
+	     $(link-extra-libs)
++link-pie-after-libc = $(+postctorS) $(+postinit)
+define +link-pie
+$(CC) $(link-libc-rpath-link) $(+link-pie-before-libc) $(rtld-LDFLAGS) \
+  $(link-extra-flags) $(link-libc) $(+link-pie-after-libc)
+$(call after-link,$@)
+endef
+define +link-pie-tests
+$(CC) $(+link-pie-before-libc) $(rtld-tests-LDFLAGS) $(link-libc-tests) \
+  $(+link-pie-after-libc)
+$(call after-link,$@)
+endef
+define +link-pie-printers-tests
+$(CC) $(+link-pie-before-libc) $(built-rtld-LDFLAGS) \
+  $(link-libc-printers-tests) $(+link-pie-after-libc)
+$(call after-link,$@)
+endef
+endif
+# Command for statically linking programs with the C library.
+ifndef +link-static
++link-static-before-inputs = -nostdlib -nostartfiles -static \
+	      $(if $($(@F)-no-pie),$(no-pie-ldflag),$(static-pie-ldflag)) \
+	      $(if $($(@F)-no-dt-relr),$(no-dt-relr-ldflag),$(static-pie-dt-relr-ldflag)) \
+	      $(sysdep-LDFLAGS) $(LDFLAGS) $(LDFLAGS-$(@F))  \
+	      $(firstword $(CRT-$(@F)) $(csu-objpfx)$(real-static-start-installed-name)) \
+	      $(+preinit) $(+prectorT)
++link-static-before-libc = -o $@ $(+link-static-before-inputs) \
+	      $(filter-out $(addprefix $(csu-objpfx),start.o \
+						     $(start-installed-name))\
+			   $(+preinit) $(link-extra-libs-static) \
+			   $(common-objpfx)libc% $(+postinit),$^) \
+	      $(link-extra-libs-static)
++link-static-after-libc = $(+postctorT) $(+postinit)
+define +link-static
+$(CC) $(+link-static-before-libc) $(link-extra-flags) $(link-libc-static) \
+  $(+link-static-after-libc)
+$(call after-link,$@)
+endef
+define +link-static-tests
+$(CC) $(+link-static-before-libc) $(link-libc-static-tests) \
+  $(+link-static-after-libc)
+$(call after-link,$@)
+endef
+endif
+# Commands for linking programs with the C library.
+ifndef +link
+ifeq (yes,$(build-shared))
+ifeq (yes,$(cc-pie-default))
+no-pie-ldflag = -no-pie
+endif
+ifeq (yes,$(build-pie-default))
++link = $(+link-pie)
++link-tests = $(+link-pie-tests)
++link-tests-before-inputs = $(+link-pie-before-inputs) $(rtld-tests-LDFLAGS)
++link-tests-after-inputs = $(link-libc-tests) $(+link-pie-after-libc)
++link-printers-tests = $(+link-pie-printers-tests)
+else  # not build-pie-default
++link-before-inputs = -nostdlib -nostartfiles $(no-pie-ldflag) \
+	      $(sysdep-LDFLAGS) $(LDFLAGS) $(LDFLAGS-$(@F)) \
+	      $(relro-LDFLAGS) $(hashstyle-LDFLAGS) \
+	      $(firstword $(CRT-$(@F)) $(csu-objpfx)$(start-installed-name)) \
+	      $(+preinit) $(+prector)
++link-before-libc = -o $@ $(+link-before-inputs) \
+	      $(filter-out $(addprefix $(csu-objpfx),start.o \
+						     $(start-installed-name))\
+			   $(+preinit) $(link-extra-libs) \
+			   $(common-objpfx)libc% $(+postinit),$^) \
+	      $(link-extra-libs)
++link-after-libc = $(+postctor) $(+postinit)
+define +link
+$(CC) $(link-libc-rpath-link) $(+link-before-libc) $(rtld-LDFLAGS) \
+  $(link-extra-flags) $(link-libc) $(+link-after-libc)
+$(call after-link,$@)
+endef
++link-tests-before-inputs = $(+link-before-inputs) $(rtld-tests-LDFLAGS)
++link-tests-after-inputs = $(link-libc-tests) $(+link-after-libc)
+define +link-tests
+$(CC) $(+link-before-libc) $(rtld-tests-LDFLAGS) $(link-libc-tests) \
+		     $(+link-after-libc)
+$(call after-link,$@)
+endef
+define +link-printers-tests
+$(CC) $(+link-before-libc) $(built-rtld-LDFLAGS) $(link-libc-printers-tests) \
+		     $(+link-after-libc)
+$(call after-link,$@)
+endef
+endif  # build-pie-default
+else  # build-static
++link = $(+link-static)
++link-tests = $(+link-static-tests)
++link-tests-before-inputs = $(+link-static-before-inputs)
++link-tests-after-inputs = $(link-libc-static-tests) $(+link-static-after-libc)
++link-printers-tests = $(+link-static-tests)
+endif  # build-shared
+endif  # +link
+
+# Command for linking test programs with crt1.o from glibc 2.0.
++link-2.0-before-inputs = -nostdlib -nostartfiles $(no-pie-ldflag) \
+	      $(sysdep-LDFLAGS) $(LDFLAGS) $(LDFLAGS-$(@F)) \
+	      $(relro-LDFLAGS) $(hashstyle-LDFLAGS) \
+	      $(firstword $(CRT-$(@F)) $(csu-objpfx)$(start-name-2.0)) \
+	      $(+preinit) $(+prector)
++link-2.0-before-libc = -o $@ $(+link-2.0-before-inputs) \
+	      $(filter-out $(addprefix $(csu-objpfx),start.o \
+						     $(start-name-2.0))\
+			   $(+preinit) $(link-extra-libs) \
+			   $(common-objpfx)libc% $(+postinit),$^) \
+	      $(link-extra-libs)
++link-after-libc = $(+postctor) $(+postinit)
+define +link-2.0-tests
+$(CC) $(+link-2.0-before-libc) $(rtld-tests-LDFLAGS) $(link-libc-tests) \
+  $(+link-after-libc)
+$(call after-link,$@)
+endef
+
+# The pretty printer test programs need to be compiled without optimizations
+# so they won't confuse gdb.  We could use either the 'GCC optimize' pragma
+# or the 'optimize' function attribute to achieve this; however, at least on
+# ARM, gcc always produces different debugging symbols when invoked with
+# a -O greater than 0 than when invoked with -O0, regardless of anything else
+# we're using to suppress optimizations.  Therefore, we need to explicitly pass
+# -O0 to it through CFLAGS. As a result, any fortification needs to be disabled
+# as it needs -O greater than 0.
+# Additionally, the build system will try to -include $(common-objpfx)/config.h
+# when compiling the tests, which will throw an error if some special macros
+# (such as __OPTIMIZE__ and IS_IN_build) aren't defined.  To avoid this, we
+# tell gcc to define IS_IN_build.
+CFLAGS-printers-tests := -O0 -ggdb3 -DIS_IN_build $(no-fortify-source)
+
+ifeq (yes,$(build-shared))
+# These indicate whether to link using the built ld.so or the installed one.
+installed-rtld-LDFLAGS = -Wl,-dynamic-linker=$(rtlddir)/$(rtld-installed-name)
+built-rtld-LDFLAGS = -Wl,-dynamic-linker=$(elf-objpfx)ld.so
+
+ifndef rtld-LDFLAGS
+rtld-LDFLAGS = $(installed-rtld-LDFLAGS)
+endif
+
+ifndef rtld-tests-LDFLAGS
+ifeq (yes,$(build-hardcoded-path-in-tests))
+rtld-tests-LDFLAGS = $(built-rtld-LDFLAGS)
+else
+rtld-tests-LDFLAGS = $(installed-rtld-LDFLAGS)
+endif  # build-hardcoded-path-in-tests
+endif  # rtld-tests-LDFLAGS
+
+endif  # build-shared
+
+ifndef link-libc
+ifeq (yes,$(build-shared))
+# We need the versioned name of libc.so in the deps of $(others) et al
+# so that the symlink to libc.so is created before anything tries to
+# run the linked programs.
+link-libc-rpath = -Wl,-rpath=$(rpath-link)
+link-libc-rpath-link = -Wl,-rpath-link=$(rpath-link)
+
+# For programs which are not tests, $(link-libc-rpath-link) is added
+# directly in $(+link), $(+link-pie) above, so that -Wl,-rpath-link
+# comes before the expansion of LDLIBS-* and affects libraries added
+# there.  For shared objects, -Wl,-rpath-link is added via
+# $(build-shlib-helper) and $(build-module-helper) in Makerules (also
+# before the expansion of LDLIBS-* variables).
+
+# Tests use -Wl,-rpath instead of -Wl,-rpath-link for
+# build-hardcoded-path-in-tests.  Add -Wl,--disable-new-dtags to force
+# DT_RPATH instead of DT_RUNPATH which only applies to DT_NEEDED entries
+# in the executable and doesn't applies to DT_NEEDED entries in shared
+# libraries which are loaded via DT_NEEDED entries in the executable.
+ifeq (yes,$(build-hardcoded-path-in-tests))
+link-libc-tests-rpath-link = $(link-libc-rpath) -Wl,--disable-new-dtags
+link-test-modules-rpath-link = $(link-libc-rpath) -Wl,--disable-new-dtags
+else
+link-libc-tests-rpath-link = $(link-libc-rpath-link)
+link-test-modules-rpath-link =
+endif  # build-hardcoded-path-in-tests
+
+link-libc-between-gnulib = $(common-objpfx)libc.so$(libc.so-version) \
+			   $(common-objpfx)$(patsubst %,$(libtype.oS),c) \
+			   -Wl,--as-needed $(elf-objpfx)ld.so \
+			   -Wl,--no-as-needed
+link-libc = $(link-libc-between-gnulib) $(gnulib)
+
+link-libc-tests-after-rpath-link = $(gnulib-tests) $(link-libc-between-gnulib) $(gnulib-tests)
+link-libc-tests = $(link-libc-tests-rpath-link) \
+		  $(link-libc-tests-after-rpath-link)
+# Pretty printer test programs always require rpath instead of rpath-link.
+link-libc-printers-tests = $(link-libc-rpath) \
+			   $(link-libc-tests-after-rpath-link)
+
+# This is how to find at build-time things that will be installed there.
+rpath-dirs = math elf dlfcn nss nis rt resolv mathvec support
+rpath-link = \
+$(common-objdir):$(subst $(empty) ,:,$(patsubst ../$(subdir),.,$(rpath-dirs:%=$(common-objpfx)%)))
+else  # build-static
+link-libc = $(common-objpfx)libc.a $(otherlibs) $(gnulib) $(common-objpfx)libc.a $(gnulib)
+link-libc-tests = $(common-objpfx)libc.a $(otherlibs) $(gnulib-tests) $(common-objpfx)libc.a $(gnulib-tests)
+endif  # build-shared
+endif  # link-libc
+
+# Differences in the linkers on the various platforms.
+LDFLAGS-rpath-ORIGIN = -Wl,-rpath,'$$ORIGIN'
+LDFLAGS-soname-fname = -Wl,-soname,$(@F)
+LDFLAGS-rdynamic = -rdynamic
+LDFLAGS-Bsymbolic = -Bsymbolic
+
+# Choose the default search path for the dynamic linker based on
+# where we will install libraries.
+ifneq ($(libdir),$(slibdir))
+default-rpath = $(slibdir):$(libdir)
+else
+default-rpath = $(libdir)
+endif
+
+ifndef link-extra-libs
+link-extra-libs = $(LDLIBS-$(@F))
+link-extra-libs-static = $(link-extra-libs)
+endif
+
+# The static libraries.
+link-libc-static = -Wl,--start-group $(common-objpfx)libc.a $(static-gnulib) -Wl,--end-group
+link-libc-static-tests = -Wl,--start-group $(common-objpfx)libc.a $(static-gnulib-tests) -Wl,--end-group
+
+# How to link against libgcc.  Some libgcc functions, such as those
+# for "long long" arithmetic or software floating point, can always be
+# built without use of C library headers and do not have any global
+# state so can safely be linked statically into any executable or
+# shared library requiring them; these functions are in libgcc.a.
+# Other functions, relating to exception handling, may require C
+# library headers to build and it may not be safe to have more than
+# one copy of them in a process; these functions are only in
+# libgcc_s.so and libgcc_eh.a.
+#
+# To avoid circular dependencies when bootstrapping, it is desirable
+# to avoid use of libgcc_s and libgcc_eh in building glibc.  Where any
+# glibc functionality (in particular, thread cancellation) requires
+# exception handling, this is implemented through dlopen of libgcc_s
+# to avoid unnecessary dependencies on libgcc_s by programs not using
+# that functionality; executables built with glibc do not use
+# exception handling other than through thread cancellation.
+#
+# Undefined references to functions from libgcc_eh or libgcc_s may
+# arise for code built with -fexceptions.  In the case of statically
+# linked programs installed by glibc, unwinding will never actually
+# occur at runtime and the use of elf/static-stubs.c to resolve these
+# references is safe.  In the case of statically linked test programs
+# and test programs built with -fexceptions, unwinding may occur in
+# some cases and it is preferable to link with libgcc_eh or libgcc_s
+# so that the testing is as similar as possible to how programs will
+# be built with the installed glibc.
+#
+# Some architectures have architecture-specific systems for exception
+# handling that may involve undefined references to
+# architecture-specific functions.  On those architectures,
+# gnulib-arch and static-gnulib-arch may be defined in sysdeps
+# makefiles to use additional libraries for linking executables and
+# shared libraries built by glibc.
+ifndef gnulib
+ifneq ($(have-cc-with-libunwind),yes)
+  libunwind =
+else
+  libunwind = -lunwind
+endif
+libgcc_eh := -Wl,--as-needed -lgcc_s $(libunwind) -Wl,--no-as-needed
+gnulib-arch =
+gnulib = -lgcc $(gnulib-arch)
+gnulib-tests := -lgcc $(libgcc_eh)
+static-gnulib-arch =
+# By default, elf/static-stubs.o, instead of -lgcc_eh, is used to
+# statically link programs.  When --disable-shared is used, we use
+# -lgcc_eh since elf/static-stubs.o isn't sufficient.
+ifeq (yes,$(build-shared))
+static-gnulib = -lgcc $(static-gnulib-arch)
+else
+static-gnulib = -lgcc -lgcc_eh $(static-gnulib-arch)
+endif
+static-gnulib-tests := -lgcc -lgcc_eh $(libunwind)
+libc.so-gnulib := -lgcc
+endif
++preinit = $(addprefix $(csu-objpfx),crti.o)
++postinit = $(addprefix $(csu-objpfx),crtn.o)
++prector = `$(CC) $(sysdep-LDFLAGS) --print-file-name=crtbegin.o`
++postctor = `$(CC) $(sysdep-LDFLAGS) --print-file-name=crtend.o`
+# Variants of the two previous definitions for linking PIE programs.
++prectorS = `$(CC) $(sysdep-LDFLAGS) --print-file-name=crtbeginS.o`
++postctorS = `$(CC) $(sysdep-LDFLAGS) --print-file-name=crtendS.o`
+# Variants of the two previous definitions for statically linking programs.
+static-prector = `$(CC) $(sysdep-LDFLAGS) --print-file-name=crtbeginT.o`
+static-postctor = `$(CC) $(sysdep-LDFLAGS) --print-file-name=crtend.o`
+ifeq (yes,$(enable-static-pie))
+# Static PIE must use PIE variants.
++prectorT = $(if $($(@F)-no-pie),$(static-prector),$(+prectorS))
++postctorT = $(if $($(@F)-no-pie),$(static-postctor),$(+postctorS))
+else
++prectorT = $(static-prector)
++postctorT =$(static-postctor)
+endif
+csu-objpfx = $(common-objpfx)csu/
+elf-objpfx = $(common-objpfx)elf/
+
+# A command that, prepended to the name and arguments of a program,
+# and run on the build system, causes that program with those
+# arguments to be run on the host for which the library is built.
+ifndef test-wrapper
+test-wrapper =
+endif
+# Likewise, but the name of the program is preceded by
+# <variable>=<value> assignments for environment variables.
+ifndef test-wrapper-env
+test-wrapper-env = $(test-wrapper) env
+endif
+# Likewise, but the program's environment will be empty except for any
+# explicit <variable>=<value> assignments preceding the program name.
+ifndef test-wrapper-env-only
+test-wrapper-env-only = $(test-wrapper) env -i
+endif
+
+# Whether to run test programs built for the library's host system.
+ifndef run-built-tests
+ifeq (yes|,$(cross-compiling)|$(test-wrapper))
+run-built-tests = no
+else
+run-built-tests = yes
+endif
+endif
+
+# Whether to build the static math tests
+ifndef build-math-static-tests
+build-math-static-tests = no
+endif
+
+# Whether to stop immediately when a test fails.  Nonempty means to
+# stop, empty means not to stop.
+ifndef stop-on-test-failure
+stop-on-test-failure =
+endif
+
+# How to run a program we just linked with our library.
+# The program binary is assumed to be $(word 2,$^).
+built-program-file = $(dir $(word 2,$^))$(notdir $(word 2,$^))
+rtld-prefix = $(elf-objpfx)$(rtld-installed-name)			      \
+	      --library-path						      \
+	      $(rpath-link)$(patsubst %,:%,$(sysdep-library-path))
+ifeq (yes,$(build-shared))
+comma = ,
+sysdep-library-path = \
+$(subst $(empty) ,:,$(strip $(patsubst -Wl$(comma)-rpath-link=%, %,\
+				       $(filter -Wl$(comma)-rpath-link=%,\
+						$(sysdep-LDFLAGS)))))
+# $(run-via-rtld-prefix) is a command that, when prepended to the name
+# of a program built with the newly built library, produces a command
+# that, executed on the host for which the library is built, runs that
+# program.  For tests listed in tests-static or xtests-static, it is
+# empty.
+run-via-rtld-prefix =							      \
+  $(if $(strip $(filter $(notdir $(built-program-file)),		      \
+			$(tests-static) $(xtests-static))),, $(rtld-prefix))
+else
+run-via-rtld-prefix =
+endif
+# $(run-program-env) is the default environment variable settings to
+# use when running a program built with the newly built library.
+run-program-env = GCONV_PATH=$(common-objpfx)iconvdata \
+		  LOCPATH=$(common-objpfx)localedata LC_ALL=C
+# $(run-program-prefix) is a command that, when prepended to the name
+# of a program built with the newly built library, produces a command
+# that, executed on the build system on which "make" is run, runs that
+# program.  $(run-program-prefix-before-env) and
+# $(run-program-prefix-after-env) are similar, but separate parts
+# before and after a list of environment variables.
+run-program-prefix-before-env = $(test-wrapper-env)
+run-program-prefix-after-env = $(run-via-rtld-prefix)
+run-program-prefix = $(run-program-prefix-before-env) $(run-program-env) \
+		     $(run-program-prefix-after-env)
+# $(built-program-cmd) is a command that, executed on the build system
+# on which "make" is run, runs the newly built program that is the
+# second dependency of the makefile target in which
+# $(built-program-cmd) is used.  $(built-program-cmd-before-env) and
+# $(built-program-cmd-after-env) are similar, before and after a list
+# of environment variables.
+built-program-cmd-before-env = $(test-wrapper-env)
+built-program-cmd-after-env = $(run-via-rtld-prefix) $(built-program-file)
+built-program-cmd = $(built-program-cmd-before-env) $(run-program-env) \
+		    $(built-program-cmd-after-env)
+# $(host-built-program-cmd) is a command that, executed on the host
+# for which the library is built, runs the newly built program that is
+# the second dependency of the makefile target in which
+# $(host-built-program-cmd) is used.
+host-built-program-cmd = $(run-via-rtld-prefix) $(built-program-file)
+# $(ld-library-path) is the common content to be set in LD_LIBRARY_PATH
+# for running static binaries that may load dynamic objects.
+ld-library-path = $(objpfx):$(common-objpfx)$(addprefix :,$(sysdep-ld-library-path))
+
+ifndef LD
+LD := ld -X
+endif
+
+# $(test-via-rtld-prefix) is a command that, when prepended to the name
+# of a test program built with the newly built library, produces a command
+# that, executed on the host for which the library is built, runs that
+# program.  For tests listed in tests-static or xtests-static as well
+# as when test programs are hardcoded to the newly built libraries, it
+# is empty.
+
+# $(test-program-prefix) is a command that, when prepended to the name
+# of a test program built with the newly built library, produces a command
+# that, executed on the build system on which "make" is run, runs that
+# test program.  $(test-program-prefix-before-env) and
+# $(test-program-prefix-after-env) are similar, before and after a
+# list of environment variables.
+
+# $(test-program-cmd) is a command that, executed on the build system
+# on which "make" is run, runs the newly built test program that is the
+# second dependency of the makefile target in which
+# $(test-program-cmd) is used.  $(test-program-cmd-before-env) and
+# $(test-program-cmd-after-env) are similar, before and after a list
+# of environment variables.
+
+# $(host-test-program-cmd) is a command that, executed on the host
+# for which the library is built, runs the newly built test program that
+# is the second dependency of the makefile target in which
+# $(host-test-program-cmd) is used.
+
+ifeq (yes,$(build-hardcoded-path-in-tests))
+test-via-rtld-prefix =
+test-program-prefix-before-env = $(test-wrapper-env)
+test-program-prefix-after-env =
+test-program-prefix = $(test-program-prefix-before-env) $(run-program-env) \
+		      $(test-program-prefix-after-env)
+test-program-cmd-before-env = $(test-wrapper-env)
+test-program-cmd-after-env = $(built-program-file)
+test-program-cmd = $(test-program-cmd-before-env) $(run-program-env) \
+		   $(test-program-cmd-after-env)
+host-test-program-cmd = $(built-program-file)
+else
+test-via-rtld-prefix = $(run-via-rtld-prefix)
+test-program-prefix-before-env = $(run-program-prefix-before-env)
+test-program-prefix-after-env = $(run-program-prefix-after-env)
+test-program-prefix = $(run-program-prefix)
+test-program-cmd-before-env = $(built-program-cmd-before-env)
+test-program-cmd-after-env = $(built-program-cmd-after-env)
+test-program-cmd = $(built-program-cmd)
+host-test-program-cmd = $(host-built-program-cmd)
+endif
+
+# Extra flags to pass to GCC.
++gccwarn := -Wall -Wwrite-strings -Wundef
+ifeq ($(enable-werror),yes)
++gccwarn += -Werror
+endif
++gccwarn-c = -Wstrict-prototypes -Wold-style-definition
+
+# We do not depend on the address of constants in different files to be
+# actually different, so allow the compiler to merge them all.
++merge-constants = -fmerge-all-constants
+
+# We have to assume that glibc functions are called in any rounding
+# mode and also change the rounding mode in a few functions. So,
+# disable any optimization that assume default rounding mode.
++math-flags = -frounding-math
+
+# Logically only "libnldbl", "nonlib" and "testsuite" should be using
+# -fno-math-errno. However due to GCC bug #88576, only "libm" and
+# "libmvec" can use -fno-math-errno.
++extra-math-flags = $(if $(filter libmvec libm,$(in-module)),\
+                      -fno-math-errno,-fmath-errno)
+
+# Use 64 bit time_t support for installed programs
+installed-modules = nonlib nscd ldconfig locale_programs \
+		    iconvprogs libnss_files libnss_compat libnss_db libnss_hesiod \
+		    libutil libpcprofile libnsl
++extra-time-flags = $(if $(filter $(installed-modules),\
+                           $(in-module)),-D_TIME_BITS=64 -D_FILE_OFFSET_BITS=64)
+
+# We might want to compile with some stack-protection flag.
+ifneq ($(stack-protector),)
++stack-protector=$(stack-protector)
+endif
+
+# Some routines are unsafe to build with stack-protection since they're called
+# before the stack check guard is set up.  Provide a way to disable stack
+# protector.  The first argument is the extension (.o, .os, .oS) and the second
+# is a list of routines that this path should be applied to.
+define elide-stack-protector
+$(if $(filter $(@F),$(patsubst %,%$(1),$(2))), $(no-stack-protector))
+endef
+
+# We might want to compile with fortify-source
+ifneq ($(fortify-source),)
++fortify-source=$(fortify-source)
+endif
+
+# Some routine can't be fortified like the ones used by fortify
+define elide-fortify-source
+$(if $(filter $(@F),$(patsubst %,%$(1),$(2))), $(no-fortify-source))
+endef
+
+# The program that makes Emacs-style TAGS files.
+ETAGS	:= etags
+
+# The `xgettext' program for producing .pot files from sources.
+ifndef XGETTEXT
+XGETTEXT = xgettext
+endif
+
+# The `m4' macro processor; this is used by sysdeps/sparc/Makefile (and
+# perhaps others) to preprocess assembly code in some cases.
+M4 = m4
+
+# To force installation of files even if they are older than the
+# installed files.  This variable is included in the dependency list
+# of all installation targets.
+ifeq ($(force-install),yes)
++force = force-install
+else
++force =
+endif
+
+####
+#### End of configuration variables.
+####
+
+# This tells some versions of GNU make before 3.63 not to export all variables.
+.NOEXPORT:
+
+# We want to echo the commands we're running without
+# umpteen zillion filenames along with it (we use `...' instead)
+# but we don't want this echoing done when the user has said
+# he doesn't want to see commands echoed by using -s.
+ifeq ($(silent-make),yes)			# if -s
++cmdecho	:= echo >/dev/null
+else						# not -s
++cmdecho	:= echo
+endif	   					# -s
+
+# These are the flags given to the compiler to tell
+# it what sort of optimization and/or debugging output to do.
+ifndef	+cflags
+# If `CFLAGS' was defined, use that.
+ifdef		CFLAGS
++cflags	:= $(filter-out -I%,$(CFLAGS))
+endif		# CFLAGS
+endif	# +cflags
+
+# If none of the above worked, default to "-g -O".
+ifeq	"$(strip $(+cflags))" ""
++cflags	:= $(default_cflags)
+endif	# $(+cflags) == ""
+
+# Force building with -fno-common because hidden_def, compat_symbol
+# and other constructs do not work for common symbols (and would
+# otherwise require specifying __attribute__ ((nocommon)) on a
+# case-by-case basis).
++cflags += $(cflags-cpu) $(+gccwarn) $(+merge-constants) $(+math-flags) \
+	   $(+stack-protector) -fno-common
++gcc-nowarn := -w
+
+# We must filter out elf because the early bootstrap of the dynamic loader
+# cannot be fortified. Likewise we exclude dlfcn because it is entangled
+# with the loader. We must filter out csu because early startup, like the
+# loader, cannot be fortified. Lastly debug is the fortification routines
+# themselves and they cannot be fortified.
+do-fortify = $(filter-out elf dlfcn csu debug,$(subdir))
+ifeq ($(do-fortify),$(subdir))
++cflags += $(+fortify-source)
+else
++cflags += $(no-fortify-source)
+endif
+
+# Each sysdeps directory can contain header files that both will be
+# used to compile and will be installed.  Each can also contain an
+# include/ subdirectory, whose header files will be used to compile
+# but will not be installed, and will take precedence over the
+# installed files.  This mirrors the top-level include/ subdirectory.
++sysdep-includes := $(foreach dir,$(+sysdep_dirs),\
+			      $(addprefix -I,$(wildcard $(dir)/include) $(dir)))
+
+# These are flags given to the C compiler to tell it to look for
+# include files (including ones given in angle brackets) in the parent
+# library source directory, in the include directory, and in the
+# current directory.
++includes = -I$(..)include $(if $(subdir),$(objpfx:%/=-I%)) \
+	    $(+sysdep-includes) $(includes) \
+	    $(patsubst %/,-I%,$(..)) $(libio-include) -I. $(sysincludes)
+
+# Since libio has several internal header files, we use a -I instead
+# of many little headers in the include directory.
+libio-include = -I$(..)libio
+
+# List of non-library modules that we build.
+built-modules = iconvprogs iconvdata ldconfig libmemusage \
+		libpcprofile librpcsvc locale-programs \
+		memusagestat nonlib nscd extramodules libnldbl libsupport \
+		testsuite testsuite-internal
+
+in-module = $(subst -,_,$(firstword $(libof-$(basename $(@F))) \
+				    $(libof-$(<F)) \
+				    $(libof-$(@F)) \
+				    libc))
+
+# Build ld.so, libc.so and libpthread.so with -ftls-model=initial-exec
+tls-model = $(if $(filter libpthread rtld \
+			  libc,$(in-module)),-ftls-model=initial-exec,)
+
+module-cppflags-real = -include $(common-objpfx)libc-modules.h \
+		       -DMODULE_NAME=$(in-module)
+
+# We don't need libc-modules.h and the MODULE_NAME definition for .v.i
+# files.  These targets don't (and will likely never need to) use the IS_IN
+# facility.  In fact, shlib-versions should not use it because that will
+# create a circular dependency as libc-modules.h is generated from
+# shlib-versions.
+module-cppflags = $(if $(filter %.mk.i %.v.i,$(@F)),,$(module-cppflags-real))
+
+# These are the variables that the implicit compilation rules use.
+# Note that we can't use -std=* in CPPFLAGS, because it overrides
+# the implicit -lang-asm and breaks cpp behavior for .S files--notably
+# it causes cpp to stop predefining __ASSEMBLER__.
+CPPFLAGS = $(config-extra-cppflags) $(CPPFLAGS-config) \
+	   $($(subdir)-CPPFLAGS) \
+	   $(+includes) $(defines) $(module-cppflags) \
+	   -include $(..)include/libc-symbols.h $(sysdep-CPPFLAGS) \
+	   $(CPPFLAGS-$(suffix $@)) \
+	   $(foreach lib,$(libof-$(basename $(@F))) \
+			 $(libof-$(<F)) $(libof-$(@F)),$(CPPFLAGS-$(lib))) \
+	   $(CPPFLAGS-$(<F)) $(CPPFLAGS-$(@F)) $(CPPFLAGS-$(basename $(@F))) \
+	   -DTOP_NAMESPACE=glibc
+
+override CFLAGS	= -std=gnu11 -fgnu89-inline $(config-extra-cflags) \
+		  $(filter-out %frame-pointer,$(+cflags)) $(+gccwarn-c) \
+		  $(+extra-math-flags) $(+extra-time-flags) \
+		  $(sysdep-CFLAGS) $(CFLAGS-$(suffix $@)) $(CFLAGS-$(<F)) \
+		  $(CFLAGS-$(@F)) $(tls-model) \
+		  $(foreach lib,$(libof-$(basename $(@F))) \
+				$(libof-$(<F)) $(libof-$(@F)),$(CFLAGS-$(lib)))
+# Use our copies of cstdlib and cmath.
+override CXXFLAGS = -I$(common-objpfx) $(c++-sysincludes) \
+		    $(filter-out %frame-pointer,$(+cflags)) $(sysdep-CFLAGS) \
+		    $(CFLAGS-$(suffix $@)) $(CFLAGS-$(<F)) $(CFLAGS-$(@F))
+
+# If everything is compiled with -fPIC (implicitly) we must tell this by
+# defining the PIC symbol.
+ifeq (yes,$(build-pic-default))
+pic-default = -DPIC
+endif
+
+# Enable object files for different versions of the library.
+# Various things use $(object-suffixes) to know what all to make.
+# The compilation rules use $(CPPFLAGS-${SUFFIX}) and $(CFLAGS-${SUFFIX})
+# to pass different flags for each flavor.
+libtypes = $(foreach o,$(object-suffixes-for-libc),$(libtype$o))
+# .op may be added to all-object-suffixes below.
+all-object-suffixes := .o .os .oS
+object-suffixes :=
+CPPFLAGS-.o = $(pic-default)
+# libc.a must be compiled with -fPIE/-fpie for static PIE.
+CFLAGS-.o = $(filter %frame-pointer,$(+cflags)) $(pie-default)
+CFLAGS-.o += $(call elide-fortify-source,.o,$(routines_no_fortify))
+CFLAGS-.o += $(call elide-fortify-source,_chk.o,$(routines_no_fortify))
+libtype.o := lib%.a
+object-suffixes += .o
+ifeq (yes,$(build-shared))
+# Under --enable-shared, we will build a shared library of PIC objects.
+# The PIC object files are named foo.os.
+object-suffixes += .os
+pic-cppflags = -DPIC -DSHARED
+CPPFLAGS-.os = $(pic-cppflags)
+CFLAGS-.os = $(filter %frame-pointer,$(+cflags)) $(pic-ccflag)
+CFLAGS-.os += $(call elide-fortify-source,.os,$(routines_no_fortify))
+CFLAGS-.os += $(call elide-fortify-source,_chk.os,$(routines_no_fortify))
+libtype.os := lib%_pic.a
+# This can be changed by a sysdep makefile
+pic-ccflag = -fPIC
+# This one should always stay like this unless there is a very good reason.
+PIC-ccflag = -fPIC
+endif
+# This can be changed by a sysdep makefile
+pie-ccflag = -fPIE
+no-pie-ccflag = -fno-pie
+# This one should always stay like this unless there is a very good reason.
+PIE-ccflag = -fPIE
+ifeq (yes,$(build-profile))
+# Under --enable-profile, we will build a static library of profiled objects.
+# The profiled object files are named foo.op.
+all-object-suffixes += .op
+object-suffixes += .op
+CPPFLAGS-.op = -DPROF $(pic-default)
+# libc_p.a must be compiled with -fPIE/-fpie for static PIE.
+CFLAGS-.op = -pg $(pie-default)
+CFLAGS-.op += $(call elide-fortify-source,.op,$(routines_no_fortify))
+CFLAGS-.op += $(call elide-fortify-source,_chk.op,$(routines_no_fortify))
+libtype.op = lib%_p.a
+endif
+
+# Convenience variable for when we want to treat shared-library cases
+# differently from the rest.
+object-suffixes-noshared := $(filter-out .os,$(object-suffixes))
+
+object-suffixes-for-libc := $(object-suffixes)
+
+ifeq (yes,$(build-shared))
+# Build special library that contains the static-only routines for libc.
+object-suffixes-for-libc += .oS
+
+# Must build the routines as PIC, though, because they can end up in (users')
+# shared objects.  We don't want to use CFLAGS-os because users may, for
+# example, make that processor-specific.
+CFLAGS-.oS = $(CFLAGS-.o) $(PIC-ccflag) $(extra-nonshared-cflags)
+CPPFLAGS-.oS = $(CPPFLAGS-.o) -DPIC -DLIBC_NONSHARED=1
+libtype.oS = lib%_nonshared.a
+endif
+
+# The assembler can generate debug information too.
+ifndef ASFLAGS
+ASFLAGS := $(filter -g% -fdebug-prefix-map=%,$(CFLAGS))
+endif
+override ASFLAGS += -Werror=undef $(ASFLAGS-config) $(asflags-cpu)
+
+ifndef BUILD_CC
+BUILD_CC = $(CC)
+endif
+
+move-if-change = $(SHELL) $(..)scripts/move-if-change
+
+-include $(common-objpfx)sysd-sorted
+subdirs = $(sorted-subdirs)
+subdir-srcdirs = $(foreach dir,$(subdirs),\
+			   $(firstword $($(dir)-srcdir) $(..)$(dir)))
+
+# This is a pair of implicit rules to preprocess a file with # comments,
+# %ifdef et al, based on config.h settings or other %include'd files.
+# We use chained rules instead of a pipeline here so that we can properly
+# check the exit status of cpp rather than using its bad output when there
+# is a preprocessing error.  Another rule should depend on the output file
+# `FOO.v', and along with that `FOO.v.i' should be given dependencies
+# listing both its input files, and any header files that it may reference
+# (but no commands).
+%.v.i: $(common-objpfx)config.h $(..)Makeconfig
+	sed '/^[ 	]*%/!s/#.*$$//;/^[ 	]*$$/d;s/^[ 	]*%/#/' \
+	    $(filter-out FORCE %.h $(..)Makeconfig,$^) \
+	| $(CC) -E -undef $(CPPFLAGS) -x assembler-with-cpp - \
+		   > $@T
+	mv -f $@T $@
+%.v: %.v.i
+	sed '/^[ 	]*#/d;/^[ 	]*$$/d' $< > $@T
+	mv -f $@T $@
+
+ifeq (yes, $(build-shared))
+
+# To generate a header to support more than one ABI for different
+# architecture variants, the CPU/Makefile defines abi-variants to be a
+# list of names for those variants (e.g. 32 64), and, for each variant,
+# defines abi-$(variant)-condition to be the condition for those options
+# to use in a C #if condition.  abi-includes may be defined to a list of
+# headers to include in the generated header, if the default does not
+# suffice.  default-abi is defined to be the ABI for the current glibc
+# build.
+
+ifndef abi-includes
+abi-includes := bits/wordsize.h
+endif
+
+# Process the shlib-versions file, which tells us what shared library
+# version numbers to use when we install shared objects on this system.
+# We need to wait until $(subdirs) is complete.
+ifeq ($(sysd-sorted-done),t)
+-include $(common-objpfx)soversions.mk
+ifndef avoid-generated
+$(common-objpfx)shlib-versions.v.i: \
+	$(wildcard $(+sysdep_dirs:=/shlib-versions) \
+		   $(subdir-srcdirs:=/shlib-versions)) \
+	$(..)shlib-versions
+
+$(common-objpfx)soversions.i: $(..)scripts/soversions.awk \
+			      $(common-objpfx)shlib-versions.v
+	$(AWK) -f $^ > $@T
+	mv -f $@T $@
+$(common-objpfx)soversions.mk: $(common-objpfx)soversions.i $(..)Makeconfig
+	(while read which lib number setname; do \
+	   eval seen_$$which=1; \
+	   test x"$$which" = xDEFAULT || continue; \
+	   case $$number in \
+	     [0-9]*) echo "$$lib.so-version=.$$number"; \
+		     echo "all-sonames+=$$lib=$$lib.so\$$($$lib.so-version)";;\
+	     *)	     echo "$$lib.so-version=$$number"; \
+		     echo "all-sonames+=$$lib=\$$($$lib.so-version)";;\
+	   esac; \
+	 done; \
+	 echo soversions.mk-done = t;) < $< > $@T; exit 0
+	mv -f $@T $@
+endif
+endif
+
+postclean-generated += soversions.mk soversions.i \
+		       shlib-versions.v shlib-versions.v.i
+
+before-compile += $(common-objpfx)libc-modules.h
+common-generated += libc-modules.h libc-modules.stmp
+ifeq ($(soversions.mk-done),t)
+# Generate a header with macro definitions for use with the IS_IN macro.
+# These are the possible values for the MODULE_NAME macro defined when building
+# sources, to identify which module the translation unit is going to be built
+# into.
+$(common-objpfx)libc-modules.h: $(common-objpfx)libc-modules.stmp; @:
+$(common-objpfx)libc-modules.stmp: $(..)scripts/gen-libc-modules.awk \
+				   $(common-objpfx)soversions.i
+	$(AWK) -v buildlist="$(subst -,_,$(built-modules))" -f $^ > ${@:stmp=T}
+	$(move-if-change) ${@:stmp=T} ${@:stmp=h}
+	touch $@
+
+endif
+
+# Build the tunables list header early since it could be used by any module in
+# glibc.
+before-compile += $(common-objpfx)dl-tunable-list.h
+common-generated += dl-tunable-list.h dl-tunable-list.stmp
+
+$(common-objpfx)dl-tunable-list.h: $(common-objpfx)dl-tunable-list.stmp; @:
+$(common-objpfx)dl-tunable-list.stmp: \
+		$(..)scripts/gen-tunables.awk \
+		$(..)elf/dl-tunables.list \
+		$(wildcard $(subdirs:%=$(..)%/dl-tunables.list)) \
+		$(wildcard $(sysdirs:%=%/dl-tunables.list))
+	LC_ALL=C $(AWK) -f $^ > ${@:stmp=T}
+	$(move-if-change) ${@:stmp=T} ${@:stmp=h}
+	touch $@
+
+# Dump the GCC macros used by the default compiler flags to a header
+# file, so that they can be inspected when using different compiler
+# flags.  Add the GCCMACRO prefix to make these macro names unique.
+$(common-objpfx)gcc-macros.h.in: $(common-objpfx)config.status
+	$(CC) $(CFLAGS) $(CPPFLAGS) -E -dM -x c -o $@ /dev/null
+$(common-objpfx)gcc-macros.h: $(common-objpfx)gcc-macros.h.in
+	sed 's/^#define /#define GCCMACRO/' < $< > $@
+before-compile += $(common-objpfx)gcc-macros.h
+
+# Generate version maps, but wait until sysdep-subdirs is known
+ifeq ($(sysd-sorted-done),t)
+ifeq ($(build-shared),yes)
+-include $(common-objpfx)sysd-versions
+-include $(common-objpfx)Versions.mk
+$(addprefix $(common-objpfx),$(version-maps)): $(common-objpfx)sysd-versions
+common-generated += $(version-maps)
+postclean-generated += sysd-versions Versions.all abi-versions.h \
+		       Versions.def Versions.v.i Versions.v Versions.mk
+
+ifndef avoid-generated
+ifneq ($(sysd-versions-subdirs),$(sorted-subdirs) $(config-sysdirs))
+sysd-versions-force = FORCE
+FORCE:
+endif
+
+$(common-objpfx)Versions.def: $(..)scripts/versionlist.awk \
+			      $(common-objpfx)Versions.v
+	LC_ALL=C $(AWK) -f $^ > $@T
+	mv -f $@T $@
+
+$(common-objpfx)Versions.all: $(..)scripts/firstversions.awk \
+			      $(common-objpfx)soversions.i \
+			      $(common-objpfx)Versions.def
+	{ while read which lib version setname; do \
+	    test x"$$which" = xDEFAULT || continue; \
+	    test -z "$$setname" || echo "$$lib : $$setname"; \
+	  done < $(word 2,$^); \
+	  cat $(word 3,$^); \
+	} | LC_ALL=C $(AWK) -f $< > $@T
+	mv -f $@T $@
+$(common-objpfx)Versions.mk: $(..)scripts/haveversions.awk \
+			     $(common-objpfx)Versions.all
+	$(AWK) -f $^ > $@T
+	mv -f $@T $@
+# See %.v/%.v.i implicit rules in Makeconfig.
+$(common-objpfx)Versions.v.i: $(wildcard $(subdirs:%=$(..)%/Versions)) \
+			      $(wildcard $(sysdirs:%=%/Versions)) \
+			      $(sysd-versions-force)
+$(common-objpfx)sysd-versions: $(common-objpfx)versions.stmp
+$(common-objpfx)versions.stmp: $(common-objpfx)Versions.all \
+			       $(common-objpfx)Versions.v \
+			       $(..)scripts/versions.awk
+	( echo 'sysd-versions-subdirs = $(subdirs) $(config-sysdirs)' ; \
+	  cat $(word 2,$^) \
+	  | LC_ALL=C $(AWK) -v buildroot=$(common-objpfx) -v defsfile=$< \
+			    -v move_if_change='$(move-if-change)' \
+			    -f $(word 3,$^); \
+	) > $(common-objpfx)sysd-versionsT
+	mv -f $(common-objpfx)sysd-versionsT $(common-objpfx)sysd-versions
+	touch $@
+endif # avoid-generated
+endif # $(build-shared) = yes
+
+-include $(common-objpfx)time64-compat.mk
+postclean-generated += time64-compat.mk
+
+$(common-objpfx)time64-compat.mk: $(common-objpfx)time64-compat.mk.i \
+				  $(sysd-versions-force)
+	sed '/^[        ]*#/d;/^[       ]*$$/d' $< > $@T
+	mv -f $@T $@
+$(common-objpfx)time64-compat.mk.i: $(..)Makeconfig
+	printf "#include <time64-compat.h>\n#ifdef TIME64_NON_DEFAULT\nhave-time64-compat = yes\n#endif" \
+	| $(CC) -E -undef $(CPPFLAGS) -x assembler-with-cpp - > $@T
+	mv -f $@T $@
+
+
+endif # sysd-sorted-done
+
+# The name under which the run-time dynamic linker is installed.
+# We are currently going for the convention that `/lib/ld.so.1'
+# names the SVR4/ELF ABI-compliant dynamic linker.
+ifndef rtld-installed-name
+ifdef ld.so-version
+rtld-installed-name = $(ld.so-version)
+else
+rtld-installed-name = ld.so.1
+endif
+endif
+
+ifndef rtld-version-installed-name
+rtld-version-installed-name = ld-$(version).so
+endif
+
+endif # build-shared
+
+
+ifeq ($(build-shared),yes)
+libm = $(common-objpfx)math/libm.so$(libm.so-version)
+libmvec = $(common-objpfx)mathvec/libmvec.so$(libmvec.so-version)
+else
+libm = $(common-objpfx)math/libm.a
+libmvec = $(common-objpfx)mathvec/libmvec.a
+endif
+
+ifeq ($(build-shared),yes)
+libsupport = $(common-objpfx)support/libsupport_nonshared.a
+else
+libsupport = $(common-objpfx)support/libsupport.a
+endif
+
+# This is a partial list of subdirectories containing the library source.
+# The order is more or less arbitrary.  The sorting step will take care of the
+# dependencies and generate sorted-subdirs dynamically.
+all-subdirs = csu assert ctype locale intl catgets math setjmp signal	    \
+	      stdlib stdio-common libio malloc string wcsmbs time dirent    \
+	      posix io termios resource misc socket sysvipc gmon            \
+	      gnulib iconv iconvdata wctype manual po argp                  \
+	      localedata timezone rt conform debug mathvec support	    \
+	      dlfcn elf
+
+ifndef avoid-generated
+# sysd-sorted itself will contain rules making the sysd-sorted target
+# depend on Depend files.  But if you just added a Depend file to an
+# existing directory not in all-subdirs, then sysd-sorted needs to
+# be regenerated, so it depends on existing $(sorted-subdirs:=/Depend) files.
+all-Depend-files := $(wildcard $(sort \
+			$(foreach dir,$(all-subdirs),\
+				  $(firstword $($(dir)-srcdir) \
+				  $(..)$(dir))/Depend) \
+			$(sorted-subdirs:=/Depend)))
+$(common-objpfx)sysd-sorted: $(..)scripts/gen-sorted.awk \
+			     $(common-objpfx)config.make $(..)Makeconfig \
+			     $(wildcard $(sysdirs:=/Subdirs)) \
+			     $(all-Depend-files)
+	$(AWK) -f $< \
+	       -v subdirs='$(all-subdirs)' \
+	       -v srcpfx='$(..)' \
+	       $(filter %/Subdirs %/Depend,$^) > $@-tmp
+	mv -f $@-tmp $@
+$(all-Depend-files): ;
+endif
+
+# This gives partial TARGET:SOURCE pattern pairs to have rules
+# emitted into sysd-rules.  A sysdeps Makeconfig fragment can
+# add its own special object file prefix to this list with e.g. foo-%:%
+# to have foo-*.? compiled from *.? using $(foo-CPPFLAGS).
+sysd-rules-patterns := %:% rtld-%:rtld-% rtld-%:% m_%:s_%
+
+# Let sysdeps/ subdirs contain a Makeconfig fragment for us to include here.
+sysdep-makeconfigs := $(wildcard $(+sysdep_dirs:=/Makeconfig))
+ifneq (,$(sysdep-makeconfigs))
+include $(sysdep-makeconfigs)
+endif
+
+# Compute just the target patterns.  Makeconfig has set sysd-rules-patterns.
+sysd-rules-targets := $(sort $(foreach p,$(sysd-rules-patterns),\
+					 $(firstword $(subst :, ,$p))))
+
+# $(libpthread-routines-var) and $(librt-routines-var) are the make
+# variable to which pthread routines need to be added to land in the
+# right library.
+ifeq ($(pthread-in-libc),yes)
+libpthread-routines-var = routines
+librt-routines-var = routines
+libanl-routines-var = routines
+else
+libpthread-routines-var = libpthread-routines
+librt-routines-var = librt-routines
+libanl-routines-var = libanl-routines
+endif
+
+# A sysdeps Makeconfig fragment may set libc-reentrant to yes.
+ifeq (yes,$(libc-reentrant))
+defines += -D_LIBC_REENTRANT
+
+libio-mtsafe = -D_IO_MTSAFE_IO
+endif
+
+# The name to give to a test in test results summaries.
+test-name = $(strip $(patsubst %.out, %, $(patsubst $(common-objpfx)%, %, $@)))
+
+# Likewise, in XFAIL variable names.
+test-xfail-name = $(strip $(patsubst %.out, %, $(patsubst $(objpfx)%, %, $@)))
+
+# Command to output a test status line (such as PASS: test-name).  If
+# test-xfail-$(test-xfail-name) has a nonempty value, the status will be
+# XPASS or XFAIL rather than PASS or FAIL.
+evaluate-test = $(..)scripts/evaluate-test.sh $(test-name) $$? \
+		  $(if $(test-xfail-$(test-xfail-name)),true,false) \
+		  $(if $(stop-on-test-failure),true,false) \
+		  > $(common-objpfx)$(test-name).test-result
+
+endif # Makeconfig not yet included
+
+# Local Variables:
+# mode: makefile
+# End:
Index: sources/GNU/glibc/2.40/create-2.40-reenable-DT-HASH-patch/glibc-2.40-new/Makerules
===================================================================
--- sources/GNU/glibc/2.40/create-2.40-reenable-DT-HASH-patch/glibc-2.40-new/Makerules	(nonexistent)
+++ sources/GNU/glibc/2.40/create-2.40-reenable-DT-HASH-patch/glibc-2.40-new/Makerules	(revision 394)
@@ -0,0 +1,1406 @@
+# Copyright (C) 1991-2024 Free Software Foundation, Inc.
+# This file is part of the GNU C Library.
+
+# The GNU C Library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+
+# The GNU C Library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+
+# You should have received a copy of the GNU Lesser General Public
+# License along with the GNU C Library; if not, see
+# <https://www.gnu.org/licenses/>.
+
+#
+#	Common rules for making the GNU C library.  This file is included
+#	by the top-level Makefile and by all subdirectory makefiles
+#	(through Rules).
+#
+ifneq (,)
+This makefile requires GNU Make.
+endif
+
+REQUIRED_MAKE_VERSION = 3.74
+REAL_MAKE_VERSION = $(firstword $(MAKE_VERSION))
+
+ifneq ($(REQUIRED_MAKE_VERSION), \
+       $(firstword $(sort $(REAL_MAKE_VERSION) $(REQUIRED_MAKE_VERSION))))
+Wrong GNU Make version.  See above for the version needed.
+endif
+
+
+ifdef	subdir
+..	:= ../
+endif	# subdir
+
+# If `sources' was defined by the parent makefile, undefine it so
+# we will later get it from wildcard search in this directory.
+ifneq	"$(findstring env,$(origin sources))" ""
+sources :=
+endif
+
+oPATH := $(PATH)
+PATH := this definition should take precedence over $(oPATH)
+ifeq ($(PATH),$(oPATH))
+You must not use the -e flag when building the GNU C library.
+else
+PATH := $(oPATH)
+endif
+
+ifndef +included-Makeconfig
+include $(..)Makeconfig
+endif
+
+# This variable is used in ``include $(o-iterator)'' after defining
+# $(o-iterator-doit) to produce some desired rule using $o for the object
+# suffix, and setting $(object-suffixes-left) to $(object-suffixes); a copy
+# is produced for each object suffix in use.
+o-iterator = $(patsubst %,$(..)o-iterator.mk,$(object-suffixes-left))
+
+# Include any system-specific makefiles.
+
+# This is here so things in sysdep Makefiles can easily depend on foo.h as
+# appropriate and not worry about where foo.h comes from, which may be
+# system dependent and not known by that Makefile.
+vpath %.h $(subst $(empty) ,:,$(strip $(common-objpfx) $(objpfx) \
+				      $(+sysdep_dirs) $(..)))
+
+# The same is true for RPC source files.
+vpath %.x $(subst $(empty) ,:,$(strip $(common-objpfx) $(objpfx) \
+				      $(+sysdep_dirs) $(..)))
+
+# Some sysdep makefiles use this to distinguish being included here from
+# being included individually by a subdir makefile (hurd/Makefile needs this).
+in-Makerules := yes
+
+sysdep-makefiles := $(wildcard $(sysdirs:=/Makefile))
+ifneq (,$(sysdep-makefiles))
+include $(sysdep-makefiles)
+endif
+
+
+# Reorder before-compile so that mach things come first, and hurd things
+# second, before all else.  The mach and hurd subdirectories have many
+# generated header files which the much of rest of the library depends on,
+# so it is best to build them first (and mach before hurd, at that).
+before-compile := $(filter $(common-objpfx)mach% $(common-objpfx)hurd%,\
+			   $(before-compile)) \
+		  $(filter-out $(common-objpfx)mach% $(common-objpfx)hurd%,\
+			       $(before-compile))
+
+# Even before that, we need abi-versions.h which is generated right here.
+ifeq ($(build-shared),yes)
+ifndef avoid-generated
+before-compile := $(common-objpfx)abi-versions.h $(before-compile)
+$(common-objpfx)abi-versions.h: $(..)scripts/abi-versions.awk \
+				$(common-objpfx)Versions.all
+	LC_ALL=C $(AWK) -f $^ > $@T
+	mv -f $@T $@
+
+$(common-objpfx)%.latest: $(common-objpfx)abi-versions.h
+	sed -n '/ VERSION_$*_/{s/^.*_\([A-Z0-9_]*\).*$$/\1/;h;};$${g;p;}' \
+	    $(common-objpfx)abi-versions.h > $@T
+	mv -f $@T $@
+
+# first-versions.h and ldbl-compat-choose.h provide macros used in
+# various symbol versioning macro calls.
+before-compile := $(common-objpfx)first-versions.h \
+		  $(common-objpfx)ldbl-compat-choose.h $(before-compile)
+$(common-objpfx)first-versions.h: $(common-objpfx)versions.stmp
+$(common-objpfx)ldbl-compat-choose.h: $(common-objpfx)versions.stmp
+endif # avoid-generated
+endif # $(build-shared) = yes
+
+ifndef avoid-generated
+ifneq (,$(CXX))
+# If C++ headers <cstdlib> or <cmath> are used, GCC 6 will include
+# /usr/include/stdlib.h or /usr/include/math.h from "#include_next"
+# (instead of stdlib/stdlib.h or math/math.h in the glibc source
+# directory), and this turns up as a make dependency.  An implicit
+# rule will kick in and make will try to install stdlib/stdlib.h or
+# math/math.h as /usr/include/stdlib.h or /usr/include/math.h because
+# the target is out of date.  We make a copy of <cstdlib> and <cmath>
+# in the glibc build directory so that stdlib/stdlib.h and math/math.h
+# will be used instead of /usr/include/stdlib.h and /usr/include/math.h.
+before-compile := $(common-objpfx)cstdlib $(common-objpfx)cmath \
+	          $(before-compile)
+$(common-objpfx)cstdlib: $(c++-cstdlib-header)
+	$(INSTALL_DATA) $< $@T
+	$(move-if-change) $@T $@
+$(common-objpfx)cmath: $(c++-cmath-header)
+	$(INSTALL_DATA) $< $@T
+	$(move-if-change) $@T $@
+ifneq (,$(c++-bits-std_abs-h))
+# Also make a copy of <bits/std_abs.h> from GCC 7 to prevent it from
+# including /usr/include/stdlib.h.
+before-compile := $(common-objpfx)bits/std_abs.h $(before-compile)
+$(common-objpfx)bits/std_abs.h: $(c++-bits-std_abs-h)
+	$(INSTALL_DATA) $< $@T
+	$(move-if-change) $@T $@
+endif
+endif
+
+before-compile := $(common-objpfx)libc-abis.h $(before-compile)
+$(common-objpfx)libc-abis.h: $(common-objpfx)libc-abis.stamp; @:
+$(common-objpfx)libc-abis.stamp: $(..)scripts/gen-libc-abis \
+			     $(firstword $(wildcard $(sysdirs:=/libc-abis)) \
+					 $(..)libc-abis) \
+			     $(..)Makerules
+	$(SHELL) $< \
+		 $(base-machine)-$(config-vendor)-$(config-os) \
+		 < $(word 2,$^) > $(@:.stamp=.h)T
+	$(move-if-change) $(@:.stamp=.h)T $(@:.stamp=.h)
+	touch $@
+common-generated += $(common-objpfx)libc-abis.h
+endif # avoid-generated
+
+ifeq (yes,$(build-shared))
+$(common-objpfx)runtime-linker.h: $(common-objpfx)runtime-linker.stamp; @:
+$(common-objpfx)runtime-linker.stamp: $(common-objpfx)config.make
+	$(make-target-directory)
+	echo '#define RUNTIME_LINKER "$(rtlddir)/$(rtld-installed-name)"' \
+		> ${@:stamp=T}
+	$(move-if-change) ${@:stamp=T} ${@:stamp=h}
+	touch $@
+endif
+
+# Make sure the subdirectory for object files gets created.
+ifdef objpfx
+ifeq (,$(wildcard $(objpfx).))
+before-compile += $(objpfx).
+$(objpfx).:
+	$(make-target-directory)
+endif
+endif
+
+# Remove existing files from `before-compile'.  Things are added there when
+# they must exist for dependency generation to work right, but once they
+# exist there is no further need for every single file to depend on them,
+# and those gratuitous dependencies result in many gratuitous
+# recompilations.
+before-compile := $(filter-out $(wildcard $(before-compile)),$(before-compile))
+
+# Don't let any before-compile file be an intermediate and get removed.
+ifdef before-compile
+$(before-compile):
+endif
+
+# We don't want $(common-objpfx) files to depend on miscellaneous stuff
+# in subdirs.
+ifdef subdir
+common-before-compile := $(filter-out $(objpfx)%,$(before-compile))
+else
+common-before-compile = $(before-compile)
+endif
+
+ifndef subdir
+# If a makefile needs to do something conditional on something that
+# can only be figured out from headers, write a FOO.make.c input
+# file that uses cpp constructs and contains @@@ LINE @@@ for each LINE
+# to emit in the generated makefile, and use -include $(common-objpfx)FOO.make.
+#
+# We only generate these in the top-level makefile, to avoid any weirdness
+# from subdir-specific makefile tweaks creeping in on an update.
+$(common-objpfx)%.make: $(..)%.make.c $(..)Makerules $(common-before-compile)
+	rm -f $@T $@.dT
+	(echo '# Generated from $*.make.c by Makerules.'; \
+	 $(CC) $(CFLAGS) $(CPPFLAGS) -E -DASSEMBLER $< \
+	       -MD -MP -MT '$$(common-objpfx)$*.make' -MF $@.dT \
+	 | sed -n '/@@@/{s/@@@[	 ]*\(.*\)@@@/\1/;s/[	 ]*$$//p;}'; \
+	 echo 'common-generated += $(@F)'; \
+	 sed $(sed-remove-objpfx) $(sed-remove-dotdot) $@.dT; \
+	 rm -f $@.dT) > $@T
+	mv -f $@T $@
+endif
+
+ifdef subdir
+sed-remove-dotdot := -e 's@  *\.\.\/\([^ 	\]*\)@ $$(..)\1@g' \
+		     -e 's@^\.\.\/\([^ 	\]*\)@$$(..)\1@g'
+else
+sed-remove-dotdot := -e 's@  *\([^ 	\/$$][^ 	\]*\)@ $$(..)\1@g' \
+		     -e 's@^\([^ 	\/$$][^ 	\]*\)@$$(..)\1@g'
+endif
+
+ifdef gen-py-const-headers
+# We'll use a static pattern rule to match .pysym files with their
+# corresponding generated .py files.
+# The generated .py files go in the submodule's dir in the glibc build dir.
+py-const-files := $(patsubst %.pysym,%.py,$(gen-py-const-headers))
+py-const-dir := $(objpfx)
+py-const := $(addprefix $(py-const-dir),$(py-const-files))
+py-const-script := $(..)scripts/gen-as-const.py
+
+# This is a hack we use to generate .py files with constants for
+# Python code.
+#
+# $@.tmp is a temporary file we use to store the partial contents of
+# the target file.  We do this instead of just writing on $@ because,
+# if the build process terminates prematurely, re-running Make
+# wouldn't run this rule since Make would see that the target file
+# already exists (despite it being incomplete).
+#
+# The output is redirected to a .py file; we'll import it in the main
+# Python code to read the constants generated by gen-as-const.py.
+$(py-const): $(py-const-dir)%.py: %.pysym $(py-const-script) \
+	     $(common-before-compile)
+	$(make-target-directory)
+	$(PYTHON) $(py-const-script) --python \
+		  --cc="$(CC) $(CFLAGS) $(CPPFLAGS)" $< \
+		  > $@.tmp
+	mv -f $@.tmp $@
+
+generated += $(py-const)
+endif  # gen-py-const-headers
+
+ifdef gen-as-const-headers
+# Generating headers for assembly constants.
+# We need this defined early to get into before-compile before
+# it's used in sysd-rules, below.
+# Define GEN_AS_CONST_HEADERS to avoid circular dependency [BZ #22792].
+# NB: <tcb-offsets.h> is generated from tcb-offsets.sym to define
+# offsets and sizes of types in <tls.h> and maybe <pthread.h> which
+# may include <tcb-offsets.h>.  Target header files can check if
+# GEN_AS_CONST_HEADERS is defined to avoid circular dependency which
+# may lead to build hang on a many-core machine.
+$(common-objpfx)%.h $(common-objpfx)%.h.d: $(..)scripts/gen-as-const.py \
+					   %.sym $(common-before-compile)
+	$(PYTHON) $< --cc="$(CC) $(CFLAGS) $(CPPFLAGS) -DGEN_AS_CONST_HEADERS \
+			   -MD -MP -MF $(@:.h=.h.d)T \
+			   -MT '$(@:.h=.h.d) $(@:.h.d=.h)'" \
+		  $(filter %.sym,$^) > $(@:.h.d=.h)T
+	sed $(sed-remove-objpfx) $(sed-remove-dotdot) \
+	    $(@:.h=.h.d)T > $(@:.h=.h.d)T2
+	rm -f $(@:.h=.h.d)T
+	mv -f $(@:.h=.h.d)T2 $(@:.h=.h.d)
+	mv -f $(@:.h.d=.h)T $(@:.h.d=.h)
+vpath %.sym $(sysdirs)
+before-compile += $(gen-as-const-headers:%.sym=$(common-objpfx)%.h)
+
+tests-internal += $(gen-as-const-headers:%.sym=test-as-const-%)
+generated += $(gen-as-const-headers:%.sym=test-as-const-%.c)
+$(objpfx)test-as-const-%.c: $(..)scripts/gen-as-const.py $(..)Makerules \
+			    %.sym $(common-objpfx)%.h
+	($(AWK) '{ sub(/^/, "asconst_", $$2); print; }' $(filter %.h,$^); \
+	 $(PYTHON) $< --test $(filter %.sym,$^)) > $@T
+	mv -f $@T $@
+endif
+
+ifeq (yes,$(build-shared))
+# Generate the header containing the names of all shared libraries.
+# We use a stamp file to avoid unnecessary recompilations.
+before-compile += $(common-objpfx)gnu/lib-names.h
+ifeq ($(soversions.mk-done),t)
+ifndef abi-variants
+lib-names-h-abi = gnu/lib-names.h
+lib-names-stmp-abi = gnu/lib-names.stmp
+else
+lib-names-h-abi = gnu/lib-names-$(default-abi).h
+lib-names-stmp-abi = gnu/lib-names-$(default-abi).stmp
+before-compile += $(common-objpfx)$(lib-names-h-abi)
+common-generated += gnu/lib-names.h
+install-others-nosubdir: $(inst_includedir)/$(lib-names-h-abi)
+$(common-objpfx)gnu/lib-names.h:
+	$(make-target-directory)
+	{ \
+	 echo '/* This file is automatically generated.';\
+	 echo '   It defines macros to allow user program to find the shared'; \
+	 echo '   library files which come as part of GNU libc.  */'; \
+	 echo '#ifndef __GNU_LIB_NAMES_H'; \
+	 echo '#define __GNU_LIB_NAMES_H	1'; \
+	 echo ''; \
+	 $(if $(abi-includes), \
+	  $(foreach h,$(abi-includes), echo '#include <$(h)>';) \
+	  echo '';) \
+	 $(foreach v,$(abi-variants),\
+	 $(if $(abi-$(v)-condition),\
+	 echo '#if $(abi-$(v)-condition)'; \
+	 echo '# include <gnu/lib-names-$(v).h>'); \
+	 $(if $(abi-$(v)-condition),echo '#endif';)) \
+	 echo ''; \
+	 echo '#endif	/* gnu/lib-names.h */'; \
+	} >  $@
+endif
+$(common-objpfx)$(lib-names-h-abi): $(common-objpfx)$(lib-names-stmp-abi); @:
+$(common-objpfx)$(lib-names-stmp-abi): $(..)scripts/lib-names.awk \
+				       $(common-objpfx)soversions.i
+	$(make-target-directory)
+	{ \
+	 $(if $(abi-variants), \
+	 echo '/* This file is automatically generated.  */';\
+	 echo '#ifndef __GNU_LIB_NAMES_H'; \
+	 echo '# error "Never use <$(lib-names-h-abi)> directly; include <gnu/lib-names.h> instead."'; \
+	 echo '#endif';, \
+	 echo '/* This file is automatically generated.';\
+	 echo '   It defines macros to allow user program to find the shared'; \
+	 echo '   library files which come as part of GNU libc.  */'; \
+	 echo '#ifndef __GNU_LIB_NAMES_H'; \
+	 echo '#define __GNU_LIB_NAMES_H	1';) \
+	 echo ''; \
+	 ($(foreach s,$(all-sonames), echo $(s);)) \
+	 | LC_ALL=C $(AWK) -f $(firstword $^) | LC_ALL=C sort; \
+	 $(if $(abi-variants),, \
+	 echo ''; \
+	 echo '#endif	/* gnu/lib-names.h */';) \
+	} >  ${@:stmp=T}
+	$(move-if-change) ${@:stmp=T} ${@:stmp=h}
+	touch $@
+endif
+common-generated += $(lib-names-h-abi) $(lib-names-stmp-abi)
+endif
+
+###############################################################################
+# NOTE!  Everything adding to before-compile needs to come before this point! #
+###############################################################################
+
+# Generate an ordered list of implicit rules which find the source files in
+# each sysdep directory.  The old method was to use vpath to search all the
+# sysdep directories.  However, that had the problem that a .S file in a
+# later directory would be chosen over a .c file in an earlier directory,
+# which does not preserve the desired sysdeps ordering behavior.
+
+# System-dependent makefiles can put in `inhibit-sysdep-asm' regexps
+# matching sysdep directories whose assembly source files should be
+# suppressed.
+
+-include $(common-objpfx)sysd-rules
+ifneq ($(sysd-rules-sysdirs),$(config-sysdirs))
+# The value of $(+sysdep_dirs) the sysd-rules was computed for
+# differs from the one we are using now.  So force a rebuild of sysd-rules.
+sysd-rules-force = FORCE
+FORCE:
+endif
+$(common-objpfx)sysd-rules: $(..)scripts/sysd-rules.awk \
+			    $(common-objpfx)config.make $(..)Makerules \
+			    $(sysdep-makefiles) $(sysdep-makeconfigs) \
+			    $(sysd-rules-force)
+	-@rm -f $@T
+	LC_ALL=C $(AWK) -f $< > $@T \
+			-v all_object_suffixes='$(all-object-suffixes)' \
+			-v inhibit_sysdep_asm='$(inhibit-sysdep-asm)' \
+			-v sysd_rules_patterns='$(sysd-rules-patterns)' \
+			-v config_sysdirs='$(config-sysdirs)'
+	mv -f $@T $@
+
+ifndef sysd-rules-done
+# Don't do deps until this exists, because it provides rules to make the deps.
+no_deps=t
+endif
+
+define o-iterator-doit
+$(objpfx)%$o: %.S $(before-compile); $$(compile-command.S)
+endef
+object-suffixes-left := $(all-object-suffixes)
+include $(o-iterator)
+
+define o-iterator-doit
+$(objpfx)%$o: %.c $(before-compile); $$(compile-command.c)
+endef
+object-suffixes-left := $(all-object-suffixes)
+include $(o-iterator)
+
+define o-iterator-doit
+$(objpfx)%$o: %.cc $(before-compile); $$(compile-command.cc)
+endef
+object-suffixes-left := $(all-object-suffixes)
+include $(o-iterator)
+
+# Omit the objpfx rules when building in the source tree, because
+# objpfx is empty and so these rules just override the ones above.
+ifdef objpfx
+# Define first rules to find the source files in $(objpfx).
+# Generated source files will end up there.
+define o-iterator-doit
+$(objpfx)%$o: $(objpfx)%.S $(before-compile); $$(compile-command.S)
+endef
+object-suffixes-left := $(all-object-suffixes)
+include $(o-iterator)
+
+define o-iterator-doit
+$(objpfx)%$o: $(objpfx)%.c $(before-compile); $$(compile-command.c)
+endef
+object-suffixes-left := $(all-object-suffixes)
+include $(o-iterator)
+
+define o-iterator-doit
+$(objpfx)%$o: $(objpfx)%.cc $(before-compile); $$(compile-command.cc)
+endef
+object-suffixes-left := $(all-object-suffixes)
+include $(o-iterator)
+endif
+
+# Generate .dT files as we compile.
+compile-mkdep-flags = -MD -MP -MF $@.dt -MT $@
+compile-command.S = $(compile.S) $(OUTPUT_OPTION) $(compile-mkdep-flags)
+compile-command.c = $(compile.c) $(OUTPUT_OPTION) $(compile-mkdep-flags)
+compile-command.cc = $(compile.cc) $(OUTPUT_OPTION) $(compile-mkdep-flags)
+
+# Like compile-mkdep-flags, but for use with $(BUILD_CC).  We don't want to
+# track system includes here, they may spuriously trigger an install rule,
+# and would cause the check-local-headers test to fail.
+native-compile-mkdep-flags = -MMD -MP -MF $@.dt -MT $@
+
+# GCC can grok options after the file name, and it looks nicer that way.
+compile.c = $(CC) $< -c $(CFLAGS) $(CPPFLAGS)
+compile.cc = $(CXX) $< -c $(CXXFLAGS) $(CPPFLAGS)
+compile.S = $(CC) $< -c $(CPPFLAGS) $(S-CPPFLAGS) \
+		  $(ASFLAGS) $(ASFLAGS-$(suffix $@)) $(sysdep-ASFLAGS) \
+		  $(ASFLAGS-$(<F)) $(ASFLAGS-$(@F))
+COMPILE.c = $(CC) -c $(CFLAGS) $(CPPFLAGS)
+COMPILE.S = $(CC) -c $(CPPFLAGS) $(S-CPPFLAGS) \
+		  $(ASFLAGS) $(ASFLAGS-$(suffix $@)) $(sysdep-ASFLAGS) \
+		  $(ASFLAGS-$(<F)) $(ASFLAGS-$(@F))
+
+# We need this for the output to go in the right place.  It will default to
+# empty if make was configured to work with a cc that can't grok -c and -o
+# together.  You can't compile the C library with such a compiler.
+OUTPUT_OPTION = -o $@
+
+# This is the end of the pipeline for compiling generated C code.
+compile-stdin.c = $(COMPILE.c) -o $@ -x c - $(compile-mkdep-flags)
+
+# We need the $(CFLAGS) to be in there to have the right predefines during
+# the dependency run for C sources.  But having it for assembly sources can
+# get the wrong predefines.
+S-CPPFLAGS = -DASSEMBLER $(asm-CPPFLAGS)
+
+ifneq (,$(objpfx))
+# Continuation lines here are dangerous because they introduce spaces!
+define sed-remove-objpfx
+-e 's@ $(subst .,\.,$(subst @,\@,$(common-objpfx)))@ $$(common-objpfx)@g' \
+-e 's@^$(subst .,\.,$(subst @,\@,$(common-objpfx)))@$$(common-objpfx)@g'
+endef
+endif
+
+# Modify the list of routines we build for different targets
+
+ifeq (yes,$(build-shared))
+ifndef libc.so-version
+# Undefine this because it can't work when we libc.so is unversioned.
+static-only-routines =
+endif
+endif
+
+elide-routines.oS += $(filter-out $(static-only-routines),\
+				  $(routines) $(aux) $(sysdep_routines))
+elide-routines.os += $(static-only-routines)
+
+# If we have versioned code we don't need the old versions in any of the
+# static libraries.
+elide-routines.o  += $(shared-only-routines)
+elide-routines.op += $(shared-only-routines)
+
+# Shared library building.
+
+ifeq (yes,$(build-shared))
+
+# Reference map file only when shared libraries are built and a map file name
+# is given.
+ifeq ($(build-shared),yes)
+map-file = $(firstword $($(@F:.so=-map)) \
+		       $(addprefix $(common-objpfx), \
+				   $(filter $(@F:.so=.map),$(version-maps))))
+load-map-file = $(map-file:%=-Wl,--version-script=%)
+endif
+
+# Compiler arguments to use to link a shared object with libc and
+# ld.so.  This is intended to be as similar as possible to a default
+# link with an installed libc.
+link-libc-args = -Wl,--start-group \
+		 $(libc-for-link) \
+		 $(common-objpfx)libc_nonshared.a \
+		 -Wl,--as-needed $(elf-objpfx)ld.so -Wl,--no-as-needed \
+		 -Wl,--end-group
+
+# The corresponding shared libc to use.  This may be modified for a
+# particular target.
+libc-for-link = $(common-objpfx)libc.so
+
+# The corresponding dependencies.  As these are used in dependencies,
+# not just commands, they cannot use target-specific variables so need
+# to name both possible libc.so objects.
+link-libc-deps = $(common-objpfx)libc.so $(common-objpfx)linkobj/libc.so \
+		 $(common-objpfx)libc_nonshared.a $(elf-objpfx)ld.so
+
+# Pattern rule to build a shared object from an archive of PIC objects.
+# This must come after the installation rules so Make doesn't try to
+# build shared libraries in place from the installed *_pic.a files.
+# $(LDLIBS-%.so) may contain -l switches to generate run-time dependencies
+# on other shared objects.  The linking with libc and ld.so is intended
+# to be as similar as possible to a default link with an installed libc.
+lib%.so: lib%_pic.a $(+preinit) $(+postinit) $(link-libc-deps)
+	$(build-shlib) $(link-libc-args)
+	$(call after-link,$@)
+
+define build-shlib-helper
+$(LINK.o) -shared -static-libgcc -Wl,-O1 $(sysdep-LDFLAGS) \
+	  $(if $($(@F)-no-z-defs)$(no-z-defs),,-Wl,-z,defs) $(rtld-LDFLAGS) \
+	  $(if $($(@F)-no-dt-relr),$(no-dt-relr-ldflag),$(dt-relr-ldflag)) \
+	  $(extra-B-$(@F:lib%.so=%).so) -B$(csu-objpfx) \
+	  $(extra-B-$(@F:lib%.so=%).so) $(load-map-file) \
+	  -Wl,-soname=lib$(libprefix)$(@F:lib%.so=%).so$($(@F)-version) \
+	  $(LDFLAGS.so) $(LDFLAGS-lib.so) $(LDFLAGS-$(@F:lib%.so=%).so) \
+	  -L$(subst :, -L,$(rpath-link)) -Wl,-rpath-link=$(rpath-link)
+endef
+
+define build-shlib
+$(build-shlib-helper) -o $@ \
+	  $(csu-objpfx)abi-note.o $(build-shlib-objlist)
+endef
+
+define build-module-helper
+$(LINK.o) -shared -static-libgcc $(sysdep-LDFLAGS) $(rtld-LDFLAGS) \
+	  $(if $($(@F)-no-z-defs)$(no-z-defs),,-Wl,-z,defs) \
+	  $(if $($(@F)-no-dt-relr),$(no-dt-relr-ldflag),$(dt-relr-ldflag)) \
+	  -B$(csu-objpfx) $(load-map-file) \
+	  $(LDFLAGS.so) $(LDFLAGS-$(@F:%.so=%).so) \
+	  $(link-test-modules-rpath-link) \
+	  -L$(subst :, -L,$(rpath-link)) -Wl,-rpath-link=$(rpath-link)
+endef
+
+# This macro is similar to build-shlib but it does not define a soname
+# and it does not depend on the destination name to start with `lib'.
+# binutils only position loadable notes into the first page for binaries,
+# not for shared objects
+define build-module
+$(build-module-helper) -o $@ \
+	  $(csu-objpfx)abi-note.o $(build-module-objlist) $(link-libc-args)
+$(call after-link,$@)
+endef
+define build-module-asneeded
+$(build-module-helper) -o $@ \
+	  $(csu-objpfx)abi-note.o \
+	  -Wl,--as-needed $(build-module-objlist) -Wl,--no-as-needed \
+	  $(link-libc-args)
+$(call after-link,$@)
+endef
+
+# sofini.os must be placed last since it terminates .eh_frame section.
+build-module-helper-objlist = \
+	$(patsubst %_pic.a,$(whole-archive) %_pic.a $(no-whole-archive),\
+		   $(filter-out %.lds $(map-file) $(+preinit) $(+postinit) \
+				$(elf-objpfx)sofini.os \
+				$(link-libc-deps),$^))
+
+build-module-objlist = $(build-module-helper-objlist) $(LDLIBS-$(@F:%.so=%).so)
+build-shlib-objlist = $(build-module-helper-objlist) \
+		      $(LDLIBS-$(@F:lib%.so=%).so) \
+		      $(filter $(elf-objpfx)sofini.os,$^)
+
+# Don't try to use -lc when making libc.so itself.
+# Also omits crti.o and crtn.o, which we do not want
+# since we define our own `.init' section specially.
+LDFLAGS-c.so = -nostdlib -nostartfiles
+# But we still want to link libc.so against $(libc.so-gnulib).
+LDLIBS-c.so += $(libc.so-gnulib)
+# Give libc.so an entry point and make it directly runnable itself.
+LDFLAGS-c.so += -e __libc_main
+# Pre-link the objects of libc_pic.a for .gnu.glibc-stub.* processing.
+$(common-objpfx)libc_pic.os: $(common-objpfx)libc_pic.a
+	$(LINK.o) -nostdlib -nostartfiles -r -o $@ \
+	$(LDFLAGS-c_pic.os) $(whole-archive) $^ -o $@
+
+# Generate a list of -R options to excise .gnu.glibc-stub.* sections.
+$(common-objpfx)libc_pic.opts: $(common-objpfx)libc_pic.os
+	$(OBJDUMP) -h $< | \
+	$(AWK) '$$2 ~ /\.gnu\.glibc-stub\./ { print "-R", $$2 }' \
+		> $@T
+	mv -f $@T $@
+# Apply those -R options.
+$(common-objpfx)libc_pic.os.clean: $(common-objpfx)libc_pic.opts \
+				   $(common-objpfx)libc_pic.os
+	$(OBJCOPY) @$^ $@
+generated += libc_pic.opts libc_pic.os.clean
+
+libc_pic_clean := .clean
+
+# Build a possibly-modified version of libc_pic.a for use in building
+# linkobj/libc.so.
+ifeq (,$(filter sunrpc,$(subdirs)))
+$(common-objpfx)linkobj/libc_pic.a: $(common-objpfx)libc_pic.a
+	$(make-target-directory)
+	ln -f $< $@
+else
+$(common-objpfx)linkobj/libc_pic.a: $(common-objpfx)libc_pic.a \
+				    $(common-objpfx)sunrpc/librpc_compat_pic.a
+	$(make-target-directory)
+	(cd $(common-objpfx)linkobj; \
+	 $(AR) x ../libc_pic.a; \
+	 rm $$($(AR) t ../sunrpc/librpc_compat_pic.a | sed 's/^compat-//'); \
+	 $(AR) x ../sunrpc/librpc_compat_pic.a; \
+	 $(AR) cr libc_pic.a *.os; \
+	 rm *.os)
+endif # $(subdirs) contains sunrpc
+
+# Clear link-libc-deps for the libc.so libraries so build-shlibs does not
+# filter ld.so out of the list of linked objects.
+$(common-objpfx)libc.so: link-libc-deps = # empty
+$(common-objpfx)linkobj/libc.so: link-libc-deps = # empty
+
+# Use our own special initializer and finalizer files for the libc.so
+# libraries.
+$(common-objpfx)libc.so: $(common-objpfx)libc_pic.os$(libc_pic_clean) \
+			 $(elf-objpfx)sofini.os \
+			 $(elf-objpfx)interp.os \
+			 $(elf-objpfx)ld.so
+	$(build-shlib)
+	$(call after-link,$@)
+
+$(common-objpfx)linkobj/libc.so: $(common-objpfx)linkobj/libc_pic.a \
+			 $(elf-objpfx)sofini.os \
+			 $(elf-objpfx)interp.os \
+			 $(elf-objpfx)ld.so
+	$(build-shlib)
+	$(call after-link,$@)
+
+ifeq ($(build-shared),yes)
+$(common-objpfx)libc.so: $(common-objpfx)libc.map
+endif
+common-generated += libc.so libc_pic.os
+ifdef libc.so-version
+$(common-objpfx)libc.so$(libc.so-version): $(common-objpfx)libc.so
+	$(make-link)
+common-generated += libc.so$(libc.so-version)
+endif
+endif
+
+# Figure out the source filenames in this directory.
+
+override sources := $(addsuffix .c,\
+			$(filter-out $(elided-routines),\
+			    $(routines) $(aux) \
+			    $(sysdep_routines)))
+sysdep_routines := $(sysdep_routines)
+
+headers := $(headers) $(sysdep_headers)
+
+# This is the list of all object files, gotten by
+# replacing every ".c" in `sources' with a ".o".
+override objects := $(addprefix $(objpfx),$(sources:.c=.o))
+
+
+# The makefile may define $(extra-libs) with `libfoo libbar'
+# to build libfoo.a et al from the modules listed in $(libfoo-routines).
+ifdef extra-libs
+# extra-lib.mk is included once for each extra lib to define rules
+# to build it, and to add its objects to the various variables.
+# During its evaluation, $(lib) is set to the name of the library.
+extra-libs-left := $(extra-libs)
+include $(patsubst %,$(..)extra-lib.mk,$(extra-libs))
+endif
+
+
+# The makefile may define $(modules-names) to build additional modules.
+# These are built with $(build-module), except any in $(modules-names-nobuild).
+# MODULE_NAME=extramodules, except any in $(modules-names-tests).
+ifdef modules-names
+cpp-srcs-left := $(filter-out $(modules-names-tests),$(modules-names))
+ifneq (,$(cpp-srcs-left))
+lib := extramodules
+include $(patsubst %,$(..)libof-iterator.mk,$(cpp-srcs-left))
+endif
+
+ifdef modules-names-tests
+cpp-srcs-left := $(filter $(modules-names-tests),$(modules-names))
+ifneq (,$(cpp-srcs-left))
+lib := testsuite
+include $(patsubst %,$(..)libof-iterator.mk,$(cpp-srcs-left))
+endif
+endif
+
+extra-modules-build := $(filter-out $(modules-names-nobuild),$(modules-names))
+$(extra-modules-build:%=$(objpfx)%.so): $(objpfx)%.so: \
+		$(objpfx)%.os $(link-libs-deps)
+	$(build-module)
+endif
+
++depfiles := $(sources:.c=.d) \
+	     $(patsubst %.o,%.d,$(filter %.o,$(extra-objs:.os=.o))) \
+	     $(patsubst %.oS,%.d,$(filter %.oS,$(extra-objs))) \
+	     $(patsubst %.o,%.d,$(filter %.o,$(extra-test-objs:.os=.o))) \
+	     $(addsuffix .d,$(tests) $(tests-internal) $(xtests) \
+		$(tests-container) $(tests-printers) \
+		$(test-srcs) $(tests-time64) $(xtests-time64))
+ifeq ($(build-programs),yes)
++depfiles += $(addsuffix .d,$(others) $(sysdep-others))
+endif
++depfiles := $(addprefix $(objpfx),\
+			 $(filter-out $(addsuffix .d,$(omit-deps)),\
+				      $(+depfiles)))
+all-dt-files := $(foreach o,$(object-suffixes-for-libc),$(+depfiles:.d=$o.dt))
++depfiles := $(patsubst %.dt,%.d,$(wildcard $(all-dt-files))) \
+	     $(wildcard $(all-dt-files:.dt=.d))
+
+# This is a funny rule in that it removes its input file.
+%.d: %.dt
+	@sed $(sed-remove-objpfx) $< > $(@:.d=.T) && \
+	 mv -f $(@:.d=.T) $@ && \
+	 rm -f $<
+
+# Avoid the .h.d files for any .sym files whose .h files don't exist yet.
+# They will be generated when they're needed, and trying too early won't work.
++gen-as-const := $(gen-as-const-headers:%.sym=$(common-objpfx)%.h)
++depfiles += $(addsuffix .d,$(filter $(wildcard $(+gen-as-const)),\
+						$(+gen-as-const)))
+
+ifdef +depfiles
+ifneq ($(no_deps),t)
+-include $(+depfiles)
+endif
+endif
+
+# Maximize efficiency by minimizing the number of rules.
+.SUFFIXES:	# Clear the suffix list.  We don't use suffix rules.
+# Don't define any builtin rules.
+MAKEFLAGS := $(MAKEFLAGS) -r
+
+# Generic rule for making directories.
+%/:
+# mkdir isn't smart enough to strip a trailing /.
+# We always require a mkdir which supports the -p option to avoid error
+# messages in case of races.
+	mkdir -p $(@:%/=%)
+
+# Make sure that object files are not removed
+# when they are intermediates between sources and library members.
+.PRECIOUS: $(addprefix $(objpfx)%,$(all-object-suffixes))
+
+# Make sure that the parent library archive is never removed.
+.PRECIOUS: $(foreach l,$(libtypes),$(patsubst %,$(common-objpfx)$l,c))
+
+# Use the verbose option of ar and tar when not running silently.
+ifeq ($(silent-make),no)			# if not -s
+verbose := v
+else	   					# -s
+verbose	:=
+endif						# not -s
+
+ARFLAGS := r$(verbose)
+CREATE_ARFLAGS := cru$(verbose)
+
+# This makes all the object files in the parent library archive.
+
+.PHONY: lib lib-noranlib
+lib: lib-noranlib $(foreach l,$(libtypes),$(patsubst %,$(common-objpfx)$l,c))
+lib-noranlib: libobjs
+
+# For object-suffix $o, the list of objects with that suffix.
+# Makefiles can define `elide-routines.so = foo' to leave foo.so out.
+o-objects = $(patsubst %.o,%$o,$(filter-out $(patsubst %,$(objpfx)%.o,\
+						       $(elide-routines$o)),\
+					    $(objects))) \
+	    $(addprefix $(objpfx),$(o-objects$o))
+
+others: $(addprefix $(objpfx),$(install-lib))
+
+ifndef objects
+
+# Create the stamp$o files to keep the parent makefile happy.
+subdir_lib: $(foreach o,$(object-suffixes-for-libc),$(objpfx)stamp$o)
+$(foreach o,$(object-suffixes-for-libc),$(objpfx)stamp$o):
+	$(make-target-directory)
+	rm -f $@; > $@
+else
+
+# Define explicit rules to update each $(objpfx)stamp.SUFFIX
+# timestamp file; these rules (one explicit rule is generated for each
+# object suffix) write a list of objects to update in the stamp file.
+# The parent will then actually add them all to the archive in the
+# archive rule, below.
+define o-iterator-doit
+$(objpfx)stamp$o: $(o-objects); $$(do-stamp)
+endef
+define do-stamp
+$(make-target-directory)
+echo '$(patsubst $(objpfx)%,$(addsuffix /,$(subdir))%,$^)' > $@T
+mv -f $@T $@
+endef
+object-suffixes-left := $(object-suffixes-for-libc)
+include $(o-iterator)
+
+endif
+
+# Now define explicit rules to build the library archives; these depend
+# on the stamp files built above.
+define o-iterator-doit
+$(common-objpfx)$(patsubst %,$(libtype$o),c): \
+		$(subdirs-stamp-o) $(common-objpfx)stamp$o; $$(do-makelib)
+endef
+define do-makelib
+cd $(common-objdir) && \
+$(AR) $(CREATE_ARFLAGS) $(@F) `cat $(patsubst $(common-objpfx)%,%,$^)`
+endef
+subdirs-stamps := $(foreach d,$(subdirs),$(common-objpfx)$d/stamp%)
+subdirs-stamp-o = $(subst %,$o,$(subdirs-stamps))
+ifndef subdir
+$(subdirs-stamps): subdir_lib;
+endif
+object-suffixes-left = $(object-suffixes-for-libc)
+include $(o-iterator)
+
+
+# This makes all the object files.
+.PHONY: objects objs libobjs extra-objs
+objects objs: libobjs extra-objs
+libobjs: $(foreach o,$(object-suffixes-for-libc),$(objpfx)stamp$o)
+extra-objs: $(addprefix $(objpfx),$(extra-objs))
+
+# Canned sequence for building an extra library archive.
+define build-extra-lib
+$(patsubst %/,cd % &&,$(objpfx)) \
+$(AR) $(CREATE_ARFLAGS) $(@:$(objpfx)%=%) \
+      $(patsubst $(objpfx)%,%,$^)
+endef
+
+# Installation.
+
+.PHONY: force-install
+force-install:
+
+# $(install-lib) are installed from the object directory into $(libdir);
+# files in $(install-lib) matching `lib%.a' are ranlib'd after installation
+# unless they also appear in $(non-lib.a).  $(install-data) are installed as
+# they are into $(datadir).  $(headers) are installed as they are in
+# $(includedir).  $(install-bin), $(install-bin-script) and $(install-sbin)
+# are installed from the object directory into $(bindir), $(bindir) and
+# $(sbindir), respectively.  $(install-others) and $(install-others-programs)
+# are absolute path names of files to install; rules to install them are
+# defined elsewhere.
+
+# The simple library name to install libc.a under.
+# This could be defined by a sysdep Makefile.
+ifndef libc-name
+libc-name := c
+endif
+
+define do-install
+$(make-target-directory)
+$(INSTALL_DATA) $< $@
+endef
+
+# Make the target directory if it doesn't exist, using the `mkinstalldirs'
+# script that does `mkdir -p' even if `mkdir' doesn't support that flag.
+define make-target-directory
+$(addprefix $(..)./scripts/mkinstalldirs ,\
+	    $(filter-out $(wildcard $(@D:%/=%)),$(@D:%/=%)))
+endef
+
+# Any directory (parent or subdir) should install libc.a; this way
+# "make install" in a subdir is guaranteed to install everything it changes.
+installed-libcs := $(foreach o,$(filter-out .os,$(object-suffixes-for-libc)),\
+			     $(inst_libdir)/$(patsubst %,$(libtype$o),\
+						     $(libprefix)$(libc-name)))
+
+.PHONY: check-install-supported
+check-install-supported:
+
+# Check to see if the prefix or exec_prefix GNU standard variable
+# has been overridden on the command line and, if so, fail with
+# an error message since doing so is not supported (set DESTDIR
+# instead).
+ifeq ($(origin prefix),command line)
+check-install-supported:
+	$(error Overriding prefix is not supported. Set DESTDIR instead.)
+endif
+
+ifeq ($(origin exec_prefix),command line)
+check-install-supported:
+	$(error Overriding exec_prefix is not supported. Set DESTDIR instead.)
+endif
+
+install: check-install-supported
+
+install: $(installed-libcs)
+$(installed-libcs): $(inst_libdir)/lib$(libprefix)%: lib $(+force)
+	$(make-target-directory)
+	$(INSTALL_DATA) $(common-objpfx)lib$(*:$(libc-name)%=c%) $@
+
+define do-install-program
+$(make-target-directory)
+$(INSTALL_PROGRAM) $< $@.new
+mv -f $@.new $@
+endef
+
+define do-install-script
+$(make-target-directory)
+$(INSTALL_SCRIPT) $< $@.new
+mv -f $@.new $@
+endef
+
+install-lib.so := $(filter %.so,$(install-lib:%_pic.a=%.so))
+install-lib := $(filter-out %.so %_pic.a,$(install-lib))
+
+ifeq (yes,$(build-shared))
+# Find which .so's have a version number in their soname.
+versioned := $(strip $(foreach so,$(install-lib.so),\
+			       $(patsubst %,$(so),$($(so)-version))))
+
+install-lib.so-versioned := $(filter $(versioned), $(install-lib.so))
+install-lib.so-unversioned := $(filter-out $(versioned), $(install-lib.so))
+
+# For libraries whose soname have version numbers, we install two files:
+#	$(inst_libdir)/libfoo.so	-- for linking, symlink or ld script
+#	$(inst_slibdir)/libfoo.so.NN	-- for loading by SONAME
+install-lib-nosubdir: $(install-lib.so-unversioned:%=$(inst_slibdir)/%) \
+		      $(foreach L,$(install-lib.so-versioned),\
+				$(inst_libdir)/$L \
+				$(inst_slibdir)/$L$($L-version))
+
+# Install all the unversioned shared libraries.
+$(install-lib.so-unversioned:%=$(inst_slibdir)/%): $(inst_slibdir)/%.so: \
+    $(objpfx)%.so $(+force)
+	$(do-install-program)
+
+ifneq ($(findstring -s,$(LN_S)),)
+define make-link
+rm -f $@.new
+$(SHELL) $(..)scripts/rellns-sh $< $@.new
+mv -f $@.new $@
+endef
+define make-link-multidir
+$(patsubst %/,cd %,$(objpfx)); \
+  $(addprefix $(abspath $(..)scripts/mkinstalldirs) ,$(dir $(multidir))); \
+  $(LN_S) . $(multidir) 2> /dev/null; \
+  test -L $(multidir)
+endef
+else
+# If we have no symbolic links don't bother with rellns-sh.
+define make-link
+rm -f $@.new
+$(LN_S) $< $@.new
+mv -f $@.new $@
+endef
+define make-link-multidir
+$(make-target-directory)
+ln -f $(objpfx)/$(@F) $@
+endef
+endif
+
+ifdef libc.so-version
+$(inst_slibdir)/libc.so$(libc.so-version): $(common-objpfx)libc.so $(+force)
+	$(do-install-program)
+
+install: $(inst_slibdir)/libc.so$(libc.so-version)
+
+# This fragment of linker script gives the OUTPUT_FORMAT statement
+# for the configuration we are building.  We put this statement into
+# the linker scripts we install for -lc et al so that they will not be
+# used by a link for a different format on a multi-architecture system.
+$(common-objpfx)format.lds: $(common-objpfx)config.make \
+			    $(common-objpfx)config.h $(..)Makerules
+	$(LINK.o) -shared -nostdlib -nostartfiles \
+		  -x assembler /dev/null -o $@.so
+	$(OBJDUMP) -f $@.so | sed -n 's/.*file format \(.*\)/OUTPUT_FORMAT(\1)/;T;p' > $@
+	rm -f $@.so
+common-generated += format.lds
+
+ifndef subdir
+# What we install as libc.so for programs to link against is in fact a
+# link script.  It contains references for the various libraries we need.
+# The libc.so object is not complete since some functions are only defined
+# in libc_nonshared.a.
+# We need to use absolute paths since otherwise local copies (if they exist)
+# of the files are taken by the linker.
+install: $(inst_libdir)/libc.so
+$(inst_libdir)/libc.so: $(common-objpfx)format.lds \
+			$(common-objpfx)libc.so$(libc.so-version) \
+			$(inst_libdir)/$(patsubst %,$(libtype.oS),\
+						  $(libprefix)$(libc-name)) \
+			$(+force)
+	(echo '/* GNU ld script';\
+	 echo '   Use the shared library, but some functions are only in';\
+	 echo '   the static library, so try that secondarily.  */';\
+	 cat $<; \
+	 echo 'GROUP ( $(slibdir)/libc.so$(libc.so-version)' \
+	      '$(libdir)/$(patsubst %,$(libtype.oS),$(libprefix)$(libc-name))'\
+	      ' AS_NEEDED (' $(rtlddir)/$(rtld-installed-name) ') )' \
+	) > $@.new
+	mv -f $@.new $@
+
+endif
+
+else
+install: $(inst_slibdir)/libc.so
+$(inst_slibdir)/libc.so: $(common-objpfx)libc.so $(+force)
+	$(do-install-program)
+endif
+
+ifneq (,$(versioned))
+# Produce three sets of rules as above for all the smaller versioned libraries.
+
+define o-iterator-doit
+$(inst_libdir)/$o: $(inst_slibdir)/$o$($o-version) $(+force); $$(make-link)
+endef
+object-suffixes-left := $(filter-out $(install-lib-ldscripts),$(versioned))
+ifneq (,$(object-suffixes-left))
+include $(o-iterator)
+endif
+
+# Make symlinks in the build directory, because the versioned names might
+# be referenced by a DT_NEEDED in another library.
+define o-iterator-doit
+$(objpfx)$o$($o-version): $(objpfx)$o; $$(make-link)
+endef
+object-suffixes-left := $(versioned)
+include $(o-iterator)
+
+generated += $(foreach o,$(versioned),$o$($o-version))
+
+define o-iterator-doit
+$(inst_slibdir)/$o$($o-version): $(objpfx)$o $(+force);
+	$$(do-install-program)
+endef
+object-suffixes-left := $(versioned)
+include $(o-iterator)
+endif # ifneq (,$(versioned))
+
+define do-install-so
+$(do-install-program)
+$(patsubst %,$(LN_S) -f $(@F) \
+			$(@D)/$(patsubst %$*.so,%,$(<F))$(libprefix)$*.so,\
+	   $(filter-out %.so,$@))
+endef
+
+so-versions := $(sort $(foreach so,$(install-lib.so),.so$($(so)-version)))
+$(foreach v,$(so-versions),\
+	  $(inst_slibdir)/lib$(libprefix)%$v): $(common-objpfx)lib%.so \
+					       $(+force)
+	$(do-install-so)
+$(foreach v,$(so-versions),\
+	  $(inst_slibdir)/$(libprefix)%$v): $(common-objpfx)%.so $(+force)
+	$(do-install-so)
+endif
+
+ifdef install-bin
+$(addprefix $(inst_bindir)/,$(install-bin)): \
+    $(inst_bindir)/%: $(objpfx)% $(+force)
+	$(do-install-program)
+endif
+ifdef install-bin-script
+$(addprefix $(inst_bindir)/,$(install-bin-script)): \
+    $(inst_bindir)/%: $(objpfx)% $(+force)
+	$(do-install-script)
+endif
+ifdef install-rootsbin
+$(addprefix $(inst_rootsbindir)/,$(install-rootsbin)): \
+   $(inst_rootsbindir)/%: $(objpfx)% $(+force)
+	$(do-install-program)
+endif
+ifdef install-sbin
+$(addprefix $(inst_sbindir)/,$(install-sbin)): \
+    $(inst_sbindir)/%: $(objpfx)% $(+force)
+	$(do-install-program)
+endif
+ifdef install-lib
+install-lib.a := $(filter lib%.a,$(install-lib))
+install-lib.a := $(filter-out $(install-lib-ldscripts),$(install-lib.a))
+install-lib-non.a := $(filter-out lib%.a,$(install-lib))
+ifdef install-lib-non.a
+$(addprefix $(inst_libdir)/$(libprefix),$(install-lib-non.a)): \
+  $(inst_libdir)/$(libprefix)%: $(objpfx)% $(+force)
+	$(do-install)
+endif
+ifdef install-lib.a
+$(install-lib.a:lib%.a=$(inst_libdir)/lib$(libprefix)%.a): \
+  $(inst_libdir)/lib$(libprefix)%.a: $(objpfx)lib%.a $(+force)
+	$(do-install)
+endif
+endif
+ifdef install-data
+$(addprefix $(inst_datadir)/,$(install-data)): $(inst_datadir)/%: % $(+force)
+	$(do-install)
+endif
+headers := $(strip $(headers))
+ifdef headers
+# This implicit rule installs headers from the source directory.
+# It may be ignored in preference to rules from sysd-rules to find
+# headers in the sysdeps tree.
+$(inst_includedir)/%.h: $(objpfx)%.h $(+force)
+	$(do-install)
+$(inst_includedir)/%.h: $(common-objpfx)%.h $(+force)
+	$(do-install)
+$(inst_includedir)/%.h: %.h $(+force)
+	$(do-install)
+headers-nonh := $(filter-out %.h,$(headers))
+ifdef headers-nonh
+$(addprefix $(inst_includedir)/,$(headers-nonh)): $(inst_includedir)/%: \
+						 % $(+force)
+	$(do-install)
+endif	# headers-nonh
+endif	# headers
+
+.PHONY: install-bin-nosubdir install-bin-script-nosubdir \
+	install-rootsbin-nosubdir install-sbin-nosubdir install-lib-nosubdir \
+	install-data-nosubdir install-headers-nosubdir
+install-bin-nosubdir: $(addprefix $(inst_bindir)/,$(install-bin))
+install-bin-script-nosubdir: $(addprefix $(inst_bindir)/,$(install-bin-script))
+install-rootsbin-nosubdir: \
+	$(addprefix $(inst_rootsbindir)/,$(install-rootsbin))
+install-sbin-nosubdir: $(addprefix $(inst_sbindir)/,$(install-sbin))
+install-lib-nosubdir: $(addprefix $(inst_libdir)/,\
+		       $(patsubst lib%.a,lib$(libprefix)%.a,$(install-lib.a)) \
+		       $(addprefix $(libprefix),$(install-lib-non.a)))
+install-data-nosubdir: $(addprefix $(inst_datadir)/,$(install-data))
+install-headers-nosubdir: $(addprefix $(inst_includedir)/,$(headers))
+install-others-nosubdir: $(install-others)
+install-others-programs-nosubdir: $(install-others-programs)
+
+# We need all the `-nosubdir' targets so that `install' in the parent
+# doesn't depend on several things which each iterate over the subdirs.
+# This rule makes `install-FOO' always use `install-FOO-nosubdir' as a
+# subroutine.  Then in the parent `install-FOO' also causes subdir makes.
+install-%:: install-%-nosubdir ;
+
+.PHONY: install install-no-libc.a-nosubdir
+install-no-libc.a-nosubdir: install-headers-nosubdir install-data-nosubdir \
+			    install-lib-nosubdir install-others-nosubdir
+ifeq ($(build-programs),yes)
+install-no-libc.a-nosubdir: install-bin-nosubdir install-bin-script-nosubdir \
+			    install-rootsbin-nosubdir install-sbin-nosubdir \
+			    install-others-programs-nosubdir
+endif
+install: install-no-libc.a-nosubdir
+
+# Command to compile $< using the native libraries.
+define native-compile
+$(make-target-directory)
+$(BUILD_CC) $($(basename $(<F))-CFLAGS) $(ALL_BUILD_CFLAGS) \
+	    $< $(OUTPUT_OPTION) $(BUILD_LDFLAGS)
+endef
+
+# We always want to use configuration definitions.
+ALL_BUILD_CFLAGS = $(BUILD_CFLAGS) $(BUILD_CPPFLAGS) -D_GNU_SOURCE \
+		   -DIS_IN_build -include $(common-objpfx)config.h
+
+# Support the GNU standard name for this target.
+.PHONY: check
+check: tests
+# Special target to run tests which cannot be run unconditionally.
+# Maintainers should use this target.
+.PHONY: xcheck
+xcheck: xtests
+
+# Handle tests-time64 and xtests-time64 that should built with LFS
+# and 64-bit time support.
+include $(o-iterator)
+define o-iterator-doit
+$(foreach f,$(tests-time64) $(xtests-time64),\
+	    $(objpfx)$(f)$(o)): CFLAGS += -D_TIME_BITS=64 -D_FILE_OFFSET_BITS=64
+endef
+object-suffixes-left := $(all-object-suffixes)
+include $(o-iterator)
+
+ifeq ($(have-time64-compat),yes)
+tests += $(foreach t,$(tests-time64),$(t))
+xtests += $(foreach t,$(xtests-time64),$(t))
+endif
+
+# The only difference between MODULE_NAME=testsuite and MODULE_NAME=nonlib is
+# that almost all internal declarations from config.h, libc-symbols.h, and
+# include/*.h are not available to 'testsuite' code, but are to 'nonlib' code.
+all-testsuite := $(strip $(tests) $(xtests) $(test-srcs) $(test-extras) \
+		 $(tests-container))
+ifneq (,$(all-testsuite))
+cpp-srcs-left = $(all-testsuite)
+lib := testsuite
+include $(patsubst %,$(..)libof-iterator.mk,$(cpp-srcs-left))
+endif
+
+all-nonlib := $(strip $(others) $(others-extras))
+ifneq (,$(all-nonlib))
+cpp-srcs-left = $(all-nonlib)
+lib := nonlib
+include $(patsubst %,$(..)libof-iterator.mk,$(cpp-srcs-left))
+endif
+
+# All internal tests use testsuite-internal module since for 64 bit time
+# support is set as default for MODULE_NAME=nonlib (which include some
+# installed programs).
+all-testsuite-internal := $(strip $(tests-internal) $(test-internal-extras))
+ifneq (,$(all-testsuite-internal))
+cpp-srcs-left = $(all-testsuite-internal)
+lib := testsuite-internal
+include $(patsubst %,$(..)libof-iterator.mk,$(cpp-srcs-left))
+endif
+
+ifeq ($(build-shared),yes)
+# Generate normalized lists of symbols, versions, and data sizes.
+# This is handy for checking against existing library binaries.
+
+%.symlist: $(..)scripts/abilist.awk %.dynsym
+	LC_ALL=C $(AWK) -f $^ > $@T
+	mv -f $@T $@
+
+%.dynsym: %.so
+	LC_ALL=C $(OBJDUMP) --dynamic-syms $< > $@T
+	mv -f $@T $@
+
+vpath %.abilist $(+sysdep_dirs)
+
+# The .PRECIOUS rule prevents the files built by an implicit rule whose
+# target pattern is %.symlist from being considered "intermediate files"
+# and automatically removed.  We only want these files to be removed by
+# 'make clean', which is handled by the 'generated' variable.
+.PRECIOUS: %.symlist
+generated += $(extra-libs:=.symlist)
+
+$(objpfx)check-abi-%.out: $(common-objpfx)config.make %.abilist \
+			  $(objpfx)%.symlist
+	$(check-abi); \
+	$(evaluate-test)
+$(objpfx)check-abi-%.out: $(common-objpfx)config.make %.abilist \
+			  $(common-objpfx)%.symlist
+	$(check-abi); \
+	$(evaluate-test)
+define check-abi
+	diff -p -U 0 $(filter %.abilist,$^) $(filter %.symlist,$^) > $@
+endef
+
+update-abi-%: $(objpfx)%.symlist %.abilist
+	$(update-abi)
+update-abi-%: $(common-objpfx)%.symlist %.abilist
+	$(update-abi)
+define update-abi
+@if cmp -s $^ 2> /dev/null; \
+ then \
+      echo '+++ $(filter %.abilist,$^) is unchanged'; \
+ else cp -f $^; \
+      echo '*** Now check $(filter %.abilist,$^) changes for correctness ***'; \
+ fi
+endef
+
+# Patch all .abilist files for one DSO.  The find command locates abilist
+# files for all architectures.  The abilist files in /generic/ are
+# filtered out because these are expected to remain empty.
+define update-all-abi
+$(SHELL) $(..)scripts/update-abilist.sh $^ \
+  $$(find $(..)sysdeps -name '$*.abilist' \! -path '*/generic/*')
+endef
+update-all-abi-%: %.abilist $(objpfx)%.symlist
+	$(update-all-abi)
+update-all-abi-%: %.abilist $(common-objpfx)%.symlist
+	$(update-all-abi)
+
+.PHONY: update-abi update-all-abi check-abi
+update-abi: $(patsubst %.so,update-abi-%,$(install-lib.so-versioned))
+update-all-abi: $(patsubst %.so,update-all-abi-%,$(install-lib.so-versioned))
+check-abi-list = $(patsubst %.so,$(objpfx)check-abi-%.out, \
+				 $(install-lib.so-versioned))
+check-abi: $(check-abi-list)
+ifdef subdir
+subdir_check-abi: check-abi
+subdir_update-abi: update-abi
+subdir_update-all-abi: update-all-abi
+else
+check-abi: subdir_check-abi
+	if grep -q '^FAIL:' $(objpfx)*/check-abi*.test-result; then \
+		cat $(objpfx)*/check-abi*.out && exit 1; fi
+update-abi: subdir_update-abi
+update-all-abi: subdir_update-all-abi
+endif
+
+ifeq ($(subdir),elf)
+check-abi: $(objpfx)check-abi-libc.out
+tests-special += $(objpfx)check-abi-libc.out
+update-abi: update-abi-libc
+update-all-abi: update-all-abi-libc
+common-generated += libc.symlist
+endif
+
+ifeq ($(build-shared),yes)
+ifdef subdir
+tests-special += $(check-abi-list)
+endif
+endif
+
+endif
+
+FORCE:
+
+.PHONY: echo-headers
+echo-headers:
+	@echo $(headers)
+
+%.bz2: %; bzip2 -9vk $<
+%.gz: %; gzip -9vnc $< > $@.new && mv -f $@.new $@
+%.xz: %; xz -9evk $<
+
+# Common cleaning targets.
+
+.PHONY: common-mostlyclean common-clean mostlyclean clean do-tests-clean
+clean: common-clean
+mostlyclean: common-mostlyclean
+
+# Remove test artifacts from a given directory
+do-tests-clean:
+	-find $(objpfx) -name '*.out' -delete
+	-find $(objpfx) -name '*.test-result' -delete
+
+# Remove the object files.
+common-mostlyclean: do-tests-clean
+	-rm -f $(addprefix $(objpfx),$(tests) $(tests-internal) $(xtests) \
+				     $(test-srcs) \
+				     $(others) $(sysdep-others) stubs \
+				     $(addsuffix .o,$(tests) \
+						    $(tests-internal) \
+						    $(xtests) \
+						    $(test-srcs) \
+						    $(others) \
+						    $(sysdep-others)))
+	-rm -f $(addprefix $(objpfx),$(extra-objs) $(extra-test-objs) \
+				     $(install-lib) $(install-lib.so) \
+				     $(install-lib.so:%.so=%_pic.a))
+	-rm -f core
+	-rm -f $(objpfx)rtld-*.os
+	$(rmobjs)
+define rmobjs
+$(foreach o,$(object-suffixes-for-libc),
+-rm -f $(objpfx)stamp$o $(o-objects))
+endef
+
+# Also remove the dependencies and generated source files.
+common-clean: common-mostlyclean
+	-rm -f $(addprefix $(objpfx),$(generated))
+	-rm -f $(objpfx)*.d $(objpfx)*.dt
+	-rm -fr $(addprefix $(objpfx),$(generated-dirs))
+	-rm -f $(addprefix $(common-objpfx),$(common-generated))
+	-rm -f $(gen-as-const-headers:%.sym=$(common-objpfx)%.h)
+
+# Produce a file `stubs' which contains `#define __stub_FUNCTION'
+# for each function which is a stub.
+
+ifdef objpfx
+.PHONY: stubs # The parent Makefile calls this target.
+stubs: $(objpfx)stubs
+endif
+objs-for-stubs := $(foreach o,$(object-suffixes-for-libc),$(o-objects)) \
+		  $(addprefix $(objpfx),$(extra-objs))
+$(objpfx)stubs: $(objs-for-stubs)
+ifneq (,$(strip $(objs-for-stubs)))
+	(cd $(objpfx).; $(OBJDUMP) -h $(patsubst $(objpfx)%,%,$^)) | \
+	$(AWK) '/\.gnu\.glibc-stub\./ { \
+		  sub(/\.gnu\.glibc-stub\./, "", $$2); \
+		  stubs[$$2] = 1; } \
+		END { for (s in stubs) print "#define __stub_" s }' > $@T
+	mv -f $@T $@
+else
+	> $@
+endif
+
+ifneq (,$(strip $(gpl2lgpl)))
+ifneq (,$(wildcard $(..)gpl2lgpl.sed))
+# Snarf from the master source and frob the copying notice.
+$(gpl2lgpl): %: $(..)gpl2lgpl.sed /home/gd/gnu/lib/%
+	sed -f $^ > $@-tmp
+# So I don't edit them by mistake.
+	chmod a-w $@-tmp
+	mv -f $@-tmp $@
+endif
+endif
+
+# Local Variables:
+# mode: makefile
+# End:
Index: sources/GNU/glibc/2.40/create-2.40-reenable-DT-HASH-patch/glibc-2.40-new/config.make.in
===================================================================
--- sources/GNU/glibc/2.40/create-2.40-reenable-DT-HASH-patch/glibc-2.40-new/config.make.in	(nonexistent)
+++ sources/GNU/glibc/2.40/create-2.40-reenable-DT-HASH-patch/glibc-2.40-new/config.make.in	(revision 394)
@@ -0,0 +1,141 @@
+# @configure_input@
+# Don't edit this file.  Put configuration parameters in configparms instead.
+
+version = @VERSION@
+release = @RELEASE@
+
+# Installation prefixes.
+install_root = $(DESTDIR)
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+datadir = @datadir@
+libdir = @libdir@
+bindir = @bindir@
+slibdir = @libc_cv_slibdir@
+rtlddir = @libc_cv_rtlddir@
+complocaledir = @libc_cv_complocaledir@
+sysconfdir = @libc_cv_sysconfdir@
+libexecdir = @libexecdir@
+rootsbindir = @libc_cv_rootsbindir@
+infodir = @infodir@
+includedir = @includedir@
+datarootdir = @datarootdir@
+localstatedir = @libc_cv_localstatedir@
+localedir = @localedir@
+multidir= @libc_cv_multidir@
+
+# Should we use and build ldconfig?
+use-ldconfig = @use_ldconfig@
+
+# Maybe the `ldd' script must be rewritten.
+ldd-rewrite-script = @ldd_rewrite_script@
+
+# System configuration.
+config-machine = @host_cpu@
+base-machine = @base_machine@
+config-vendor = @host_vendor@
+config-os = @host_os@
+config-sysdirs = @sysnames@
+cflags-cpu = @libc_cv_cc_submachine@
+asflags-cpu = @libc_cv_cc_submachine@
+
+config-extra-cflags = @libc_extra_cflags@
+config-extra-cppflags = @libc_extra_cppflags@
+config-cflags-nofma = @libc_cv_cc_nofma@
+
+defines = @DEFINES@
+sysheaders = @sysheaders@
+sysincludes = @SYSINCLUDES@
+c++-sysincludes = @CXX_SYSINCLUDES@
+c++-cstdlib-header = @CXX_CSTDLIB_HEADER@
+c++-cmath-header = @CXX_CMATH_HEADER@
+c++-bits-std_abs-h = @CXX_BITS_STD_ABS_H@
+enable-werror = @enable_werror@
+
+have-z-execstack = @libc_cv_z_execstack@
+have-protected-data = @libc_cv_protected_data@
+have-insert = @libc_cv_insert@
+have-glob-dat-reloc = @libc_cv_has_glob_dat@
+with-fp = @libc_cv_with_fp@
+enable-timezone-tools = @enable_timezone_tools@
+unwind-find-fde = @libc_cv_gcc_unwind_find_fde@
+have-fpie = @libc_cv_fpie@
+have-ssp = @libc_cv_ssp@
+stack-protector = @stack_protector@
+no-stack-protector = @no_stack_protector@
+fortify-source = @fortify_source@
+no-fortify-source = @no_fortify_source@
+have-selinux = @have_selinux@
+have-libaudit = @have_libaudit@
+have-libcap = @have_libcap@
+have-cc-with-libunwind = @libc_cv_cc_with_libunwind@
+bind-now = @bindnow@
+have-hash-style = @libc_cv_hashstyle@
+have-cxx-thread_local = @libc_cv_cxx_thread_local@
+have-loop-to-function = @libc_cv_cc_loop_to_function@
+have-textrel_ifunc = @libc_cv_textrel_ifunc@
+
+multi-arch = @multi_arch@
+
+mach-interface-list = @mach_interface_list@
+
+memory-tagging = @memory_tagging@
+
+# Configuration options.
+build-shared = @shared@
+build-profile = @profile@
+build-static-nss = @static_nss@
+cross-compiling = @cross_compiling@
+force-install = @force_install@
+build-nscd = @build_nscd@
+use-nscd = @use_nscd@
+build-hardcoded-path-in-tests= @hardcoded_path_in_tests@
+build-pt-chown = @build_pt_chown@
+pthread-in-libc = @pthread_in_libc@
+man-pages-version = @man_pages_version@
+
+# Build tools.
+CC = @CC@
+CXX = @CXX@
+BUILD_CC = @BUILD_CC@
+CFLAGS = @CFLAGS@
+CPPFLAGS-config = @CPPFLAGS@
+extra-nonshared-cflags = @extra_nonshared_cflags@
+rtld-early-cflags = @rtld_early_cflags@
+ASFLAGS-config = @ASFLAGS_config@
+AR = @AR@
+NM = @NM@
+MAKEINFO = @MAKEINFO@
+AS = $(CC) -c
+BISON = @BISON@
+AUTOCONF = @AUTOCONF@
+OBJDUMP = @OBJDUMP@
+OBJCOPY = @OBJCOPY@
+GPROF = @GPROF@
+READELF = @READELF@
+
+# Installation tools.
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_INFO = @INSTALL_INFO@
+LN_S = @LN_S@
+MSGFMT = @MSGFMT@
+
+# Script execution tools.
+BASH = @BASH_SHELL@
+AWK = @AWK@
+PERL = @PERL@
+PYTHON = @PYTHON@
+
+# Additional libraries.
+LIBGD = @LIBGD@
+
+# Package versions and bug reporting configuration.
+PKGVERSION = @PKGVERSION@
+PKGVERSION_TEXI = @PKGVERSION_TEXI@
+REPORT_BUGS_TO = @REPORT_BUGS_TO@
+REPORT_BUGS_TEXI = @REPORT_BUGS_TEXI@
+
+# More variables may be inserted below by configure.
Index: sources/GNU/glibc/2.40/create-2.40-reenable-DT-HASH-patch/glibc-2.40-new/configure
===================================================================
--- sources/GNU/glibc/2.40/create-2.40-reenable-DT-HASH-patch/glibc-2.40-new/configure	(nonexistent)
+++ sources/GNU/glibc/2.40/create-2.40-reenable-DT-HASH-patch/glibc-2.40-new/configure	(revision 394)
@@ -0,0 +1,9585 @@
+#! /bin/sh
+# Guess values for system-dependent variables and create Makefiles.
+# Generated by GNU Autoconf 2.72 for GNU C Library (see version.h).
+#
+# Report bugs to <https://sourceware.org/bugzilla/>.
+#
+#
+# Copyright (C) 1992-1996, 1998-2017, 2020-2023 Free Software Foundation,
+# Inc.
+#
+#
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
+then :
+  emulate sh
+  NULLCMD=:
+  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else case e in #(
+  e) case `(set -o) 2>/dev/null` in #(
+  *posix*) :
+    set -o posix ;; #(
+  *) :
+     ;;
+esac ;;
+esac
+fi
+
+
+
+# Reset variables that may have inherited troublesome values from
+# the environment.
+
+# IFS needs to be set, to space, tab, and newline, in precisely that order.
+# (If _AS_PATH_WALK were called with IFS unset, it would have the
+# side effect of setting IFS to empty, thus disabling word splitting.)
+# Quoting is to prevent editors from complaining about space-tab.
+as_nl='
+'
+export as_nl
+IFS=" ""	$as_nl"
+
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# Ensure predictable behavior from utilities with locale-dependent output.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# We cannot yet rely on "unset" to work, but we need these variables
+# to be unset--not just set to an empty or harmless value--now, to
+# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh).  This construct
+# also avoids known problems related to "unset" and subshell syntax
+# in other old shells (e.g. bash 2.01 and pdksh 5.2.14).
+for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH
+do eval test \${$as_var+y} \
+  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+
+# Ensure that fds 0, 1, and 2 are open.
+if (exec 3>&0) 2>/dev/null; then :; else exec 0</dev/null; fi
+if (exec 3>&1) 2>/dev/null; then :; else exec 1>/dev/null; fi
+if (exec 3>&2)            ; then :; else exec 2>/dev/null; fi
+
+# The user is always right.
+if ${PATH_SEPARATOR+false} :; then
+  PATH_SEPARATOR=:
+  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+      PATH_SEPARATOR=';'
+  }
+fi
+
+
+# Find who we are.  Look in the path if we contain no directory separator.
+as_myself=
+case $0 in #((
+  *[\\/]* ) as_myself=$0 ;;
+  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    test -r "$as_dir$0" && as_myself=$as_dir$0 && break
+  done
+IFS=$as_save_IFS
+
+     ;;
+esac
+# We did not find ourselves, most probably we were run as 'sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+  as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+  printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+  exit 1
+fi
+
+
+# Use a proper internal environment variable to ensure we don't fall
+  # into an infinite loop, continuously re-executing ourselves.
+  if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
+    _as_can_reexec=no; export _as_can_reexec;
+    # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+  *v*x* | *x*v* ) as_opts=-vx ;;
+  *v* ) as_opts=-v ;;
+  *x* ) as_opts=-x ;;
+  * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed 'exec'.
+printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2
+exit 255
+  fi
+  # We don't want this to propagate to other subprocesses.
+          { _as_can_reexec=; unset _as_can_reexec;}
+if test "x$CONFIG_SHELL" = x; then
+  as_bourne_compatible="if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
+then :
+  emulate sh
+  NULLCMD=:
+  # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '\${1+\"\$@\"}'='\"\$@\"'
+  setopt NO_GLOB_SUBST
+else case e in #(
+  e) case \`(set -o) 2>/dev/null\` in #(
+  *posix*) :
+    set -o posix ;; #(
+  *) :
+     ;;
+esac ;;
+esac
+fi
+"
+  as_required="as_fn_return () { (exit \$1); }
+as_fn_success () { as_fn_return 0; }
+as_fn_failure () { as_fn_return 1; }
+as_fn_ret_success () { return 0; }
+as_fn_ret_failure () { return 1; }
+
+exitcode=0
+as_fn_success || { exitcode=1; echo as_fn_success failed.; }
+as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
+as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
+as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
+if ( set x; as_fn_ret_success y && test x = \"\$1\" )
+then :
+
+else case e in #(
+  e) exitcode=1; echo positional parameters were not saved. ;;
+esac
+fi
+test x\$exitcode = x0 || exit 1
+blah=\$(echo \$(echo blah))
+test x\"\$blah\" = xblah || exit 1
+test -x / || exit 1"
+  as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
+  as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
+  eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
+  test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1"
+  if (eval "$as_required") 2>/dev/null
+then :
+  as_have_required=yes
+else case e in #(
+  e) as_have_required=no ;;
+esac
+fi
+  if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null
+then :
+
+else case e in #(
+  e) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+  IFS=$as_save_IFS
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+  as_found=:
+  case $as_dir in #(
+	 /*)
+	   for as_base in sh bash ksh sh5; do
+	     # Try only shells that exist, to save several forks.
+	     as_shell=$as_dir$as_base
+	     if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+		    as_run=a "$as_shell" -c "$as_bourne_compatible""$as_required" 2>/dev/null
+then :
+  CONFIG_SHELL=$as_shell as_have_required=yes
+		   if as_run=a "$as_shell" -c "$as_bourne_compatible""$as_suggested" 2>/dev/null
+then :
+  break 2
+fi
+fi
+	   done;;
+       esac
+  as_found=false
+done
+IFS=$as_save_IFS
+if $as_found
+then :
+
+else case e in #(
+  e) if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+	      as_run=a "$SHELL" -c "$as_bourne_compatible""$as_required" 2>/dev/null
+then :
+  CONFIG_SHELL=$SHELL as_have_required=yes
+fi ;;
+esac
+fi
+
+
+      if test "x$CONFIG_SHELL" != x
+then :
+  export CONFIG_SHELL
+             # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+  *v*x* | *x*v* ) as_opts=-vx ;;
+  *v* ) as_opts=-v ;;
+  *x* ) as_opts=-x ;;
+  * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed 'exec'.
+printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2
+exit 255
+fi
+
+    if test x$as_have_required = xno
+then :
+  printf "%s\n" "$0: This script requires a shell more modern than all"
+  printf "%s\n" "$0: the shells that I found on your system."
+  if test ${ZSH_VERSION+y} ; then
+    printf "%s\n" "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+    printf "%s\n" "$0: be upgraded to zsh 4.3.4 or later."
+  else
+    printf "%s\n" "$0: Please tell bug-autoconf@gnu.org and
+$0: https://sourceware.org/bugzilla/ about your system,
+$0: including any error possibly output before this
+$0: message. Then install a modern shell, or manually run
+$0: the script under such a shell if you do have one."
+  fi
+  exit 1
+fi ;;
+esac
+fi
+fi
+SHELL=${CONFIG_SHELL-/bin/sh}
+export SHELL
+# Unset more variables known to interfere with behavior of common tools.
+CLICOLOR_FORCE= GREP_OPTIONS=
+unset CLICOLOR_FORCE GREP_OPTIONS
+
+## --------------------- ##
+## M4sh Shell Functions. ##
+## --------------------- ##
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+  { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+  return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+  set +e
+  as_fn_set_status $1
+  exit $1
+} # as_fn_exit
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+  case $as_dir in #(
+  -*) as_dir=./$as_dir;;
+  esac
+  test -d "$as_dir" || eval $as_mkdir_p || {
+    as_dirs=
+    while :; do
+      case $as_dir in #(
+      *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+      *) as_qdir=$as_dir;;
+      esac
+      as_dirs="'$as_qdir' $as_dirs"
+      as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_dir" : 'X\(//\)[^/]' \| \
+	 X"$as_dir" : 'X\(//\)$' \| \
+	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+printf "%s\n" X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+      test -d "$as_dir" && break
+    done
+    test -z "$as_dirs" || eval "mkdir $as_dirs"
+  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+  test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null
+then :
+  eval 'as_fn_append ()
+  {
+    eval $1+=\$2
+  }'
+else case e in #(
+  e) as_fn_append ()
+  {
+    eval $1=\$$1\$2
+  } ;;
+esac
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null
+then :
+  eval 'as_fn_arith ()
+  {
+    as_val=$(( $* ))
+  }'
+else case e in #(
+  e) as_fn_arith ()
+  {
+    as_val=`expr "$@" || test $? -eq 1`
+  } ;;
+esac
+fi # as_fn_arith
+
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+  as_status=$1; test $as_status -eq 0 && as_status=1
+  if test "$4"; then
+    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+  fi
+  printf "%s\n" "$as_me: error: $2" >&2
+  as_fn_exit $as_status
+} # as_fn_error
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+  as_basename=basename
+else
+  as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+  as_dirname=dirname
+else
+  as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+	 X"$0" : 'X\(//\)$' \| \
+	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+printf "%s\n" X/"$0" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+
+  as_lineno_1=$LINENO as_lineno_1a=$LINENO
+  as_lineno_2=$LINENO as_lineno_2a=$LINENO
+  eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
+  test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
+  # Blame Lee E. McMahon (1931-1989) for sed's syntax.  :-)
+  sed -n '
+    p
+    /[$]LINENO/=
+  ' <$as_myself |
+    sed '
+      t clear
+      :clear
+      s/[$]LINENO.*/&-/
+      t lineno
+      b
+      :lineno
+      N
+      :loop
+      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+      t loop
+      s/-\n.*//
+    ' >$as_me.lineno &&
+  chmod +x "$as_me.lineno" ||
+    { printf "%s\n" "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+
+  # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
+  # already done that, so ensure we don't try to do so again and fall
+  # in an infinite loop.  This has already happened in practice.
+  _as_can_reexec=no; export _as_can_reexec
+  # Don't try to exec as it changes $[0], causing all sort of problems
+  # (the dirname of $[0] is not the place where we might find the
+  # original and so on.  Autoconf is especially sensitive to this).
+  . "./$as_me.lineno"
+  # Exit status is that of the last command.
+  exit
+}
+
+
+# Determine whether it's possible to make 'echo' print without a newline.
+# These variables are no longer used directly by Autoconf, but are AC_SUBSTed
+# for compatibility with existing Makefiles.
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+  case `echo 'xy\c'` in
+  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
+  xy)  ECHO_C='\c';;
+  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
+       ECHO_T='	';;
+  esac;;
+*)
+  ECHO_N='-n';;
+esac
+
+# For backward compatibility with old third-party macros, we provide
+# the shell variables $as_echo and $as_echo_n.  New code should use
+# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively.
+as_echo='printf %s\n'
+as_echo_n='printf %s'
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+  rm -f conf$$.dir/conf$$.file
+else
+  rm -f conf$$.dir
+  mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+  if ln -s conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s='ln -s'
+    # ... but there are two gotchas:
+    # 1) On MSYS, both 'ln -s file dir' and 'ln file dir' fail.
+    # 2) DJGPP < 2.04 has no symlinks; 'ln -s' creates a wrapper executable.
+    # In both cases, we have to default to 'cp -pR'.
+    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+      as_ln_s='cp -pR'
+  elif ln conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s=ln
+  else
+    as_ln_s='cp -pR'
+  fi
+else
+  as_ln_s='cp -pR'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+if mkdir -p . 2>/dev/null; then
+  as_mkdir_p='mkdir -p "$as_dir"'
+else
+  test -d ./-p && rmdir ./-p
+  as_mkdir_p=false
+fi
+
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
+
+# Sed expression to map a string onto a valid CPP name.
+as_sed_cpp="y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
+as_tr_cpp="eval sed '$as_sed_cpp'" # deprecated
+
+# Sed expression to map a string onto a valid variable name.
+as_sed_sh="y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
+as_tr_sh="eval sed '$as_sed_sh'" # deprecated
+
+
+test -n "$DJDIR" || exec 7<&0 </dev/null
+exec 6>&1
+
+# Name of the host.
+# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+#
+# Initializations.
+#
+ac_default_prefix=/usr/local
+ac_clean_files=
+ac_config_libobj_dir=.
+LIBOBJS=
+cross_compiling=no
+subdirs=
+MFLAGS=
+MAKEFLAGS=
+
+# Identity of this package.
+PACKAGE_NAME='GNU C Library'
+PACKAGE_TARNAME='glibc'
+PACKAGE_VERSION='(see version.h)'
+PACKAGE_STRING='GNU C Library (see version.h)'
+PACKAGE_BUGREPORT='https://sourceware.org/bugzilla/'
+PACKAGE_URL='https://www.gnu.org/software/glibc/'
+
+ac_unique_file="include/features.h"
+enable_option_checking=no
+ac_subst_vars='LTLIBOBJS
+LIBOBJS
+pthread_in_libc
+RELEASE
+VERSION
+mach_interface_list
+DEFINES
+static_nss
+profile
+libc_cv_multidir
+shared
+static
+ldd_rewrite_script
+use_ldconfig
+libc_cv_rootsbindir
+libc_cv_localstatedir
+libc_cv_sysconfdir
+libc_cv_complocaledir
+libc_cv_rtlddir
+libc_cv_slibdir
+use_nscd
+libc_cv_gcc_unwind_find_fde
+libc_extra_cppflags
+libc_extra_cflags
+libc_cv_cxx_thread_local
+fortify_source
+no_fortify_source
+libc_cv_fortify_source
+enable_fortify_source
+have_selinux
+have_libcap
+have_libaudit
+LIBGD
+libc_cv_cc_loop_to_function
+libc_cv_cc_submachine
+libc_cv_cc_nofma
+libc_cv_mtls_descriptor
+libc_cv_has_glob_dat
+libc_cv_hashstyle
+libc_cv_fpie
+libc_cv_z_execstack
+ASFLAGS_config
+libc_cv_cc_with_libunwind
+libc_cv_insert
+libc_cv_protected_data
+INSTALL_INFO
+PERL
+BASH_SHELL
+CXX_BITS_STD_ABS_H
+CXX_CMATH_HEADER
+CXX_CSTDLIB_HEADER
+CXX_SYSINCLUDES
+SYSINCLUDES
+sysnames
+submachine
+multi_arch
+libc_cv_textrel_ifunc
+no_stack_protector
+stack_protector
+libc_cv_ssp
+libc_cv_with_fp
+PYTHON
+PYTHON_PROG
+AUTOCONF
+BISON
+AWK
+SED
+MAKEINFO
+MSGFMT
+MAKE
+LD
+NM
+OBJDUMP
+READELF
+GPROF
+OBJCOPY
+AR
+LN_S
+INSTALL_DATA
+INSTALL_SCRIPT
+INSTALL_PROGRAM
+base_machine
+build_pt_chown
+build_nscd
+memory_tagging
+enable_werror
+force_install
+bindnow
+hardcoded_path_in_tests
+enable_timezone_tools
+man_pages_version
+rtld_early_cflags
+extra_nonshared_cflags
+sysheaders
+ac_ct_CXX
+CXXFLAGS
+CXX
+CPP
+cross_compiling
+BUILD_CC
+OBJEXT
+ac_ct_CC
+CPPFLAGS
+LDFLAGS
+CFLAGS
+CC
+host_os
+host_vendor
+host_cpu
+host
+build_os
+build_vendor
+build_cpu
+build
+subdirs
+REPORT_BUGS_TEXI
+REPORT_BUGS_TO
+PKGVERSION_TEXI
+PKGVERSION
+target_alias
+host_alias
+build_alias
+LIBS
+ECHO_T
+ECHO_N
+ECHO_C
+DEFS
+mandir
+localedir
+libdir
+psdir
+pdfdir
+dvidir
+htmldir
+infodir
+docdir
+oldincludedir
+includedir
+runstatedir
+localstatedir
+sharedstatedir
+sysconfdir
+datadir
+datarootdir
+libexecdir
+sbindir
+bindir
+program_transform_name
+prefix
+exec_prefix
+PACKAGE_URL
+PACKAGE_BUGREPORT
+PACKAGE_STRING
+PACKAGE_VERSION
+PACKAGE_TARNAME
+PACKAGE_NAME
+PATH_SEPARATOR
+SHELL'
+ac_subst_files=''
+ac_user_opts='
+enable_option_checking
+with_pkgversion
+with_bugurl
+enable_static_c___tests
+enable_static_c___link_check
+with_gd
+with_gd_include
+with_gd_lib
+with_binutils
+with_selinux
+with_headers
+with_nonshared_cflags
+with_rtld_early_cflags
+with_timeoutfactor
+with_man_pages
+enable_sanity_checks
+enable_shared
+enable_profile
+enable_default_pie
+enable_timezone_tools
+enable_hardcoded_path_in_tests
+enable_hidden_plt
+enable_bind_now
+enable_stack_protector
+enable_static_nss
+enable_force_install
+enable_maintainer_mode
+enable_kernel
+enable_werror
+enable_multi_arch
+enable_memory_tagging
+enable_systemtap
+enable_build_nscd
+enable_nscd
+enable_pt_chown
+enable_mathvec
+enable_cet
+enable_scv
+enable_fortify_source
+with_cpu
+'
+      ac_precious_vars='build_alias
+host_alias
+target_alias
+CC
+CFLAGS
+LDFLAGS
+LIBS
+CPPFLAGS
+CPP
+CXX
+CXXFLAGS
+CCC'
+ac_subdirs_all=''
+
+# Initialize some variables set by options.
+ac_init_help=
+ac_init_version=false
+ac_unrecognized_opts=
+ac_unrecognized_sep=
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+cache_file=/dev/null
+exec_prefix=NONE
+no_create=
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Installation directory options.
+# These are left unexpanded so users can "make install exec_prefix=/foo"
+# and all the variables that are supposed to be based on exec_prefix
+# by default will actually change.
+# Use braces instead of parens because sh, perl, etc. also accept them.
+# (The list follows the same order as the GNU Coding Standards.)
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datarootdir='${prefix}/share'
+datadir='${datarootdir}'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+runstatedir='${localstatedir}/run'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
+infodir='${datarootdir}/info'
+htmldir='${docdir}'
+dvidir='${docdir}'
+pdfdir='${docdir}'
+psdir='${docdir}'
+libdir='${exec_prefix}/lib'
+localedir='${datarootdir}/locale'
+mandir='${datarootdir}/man'
+
+ac_prev=
+ac_dashdash=
+for ac_option
+do
+  # If the previous option needs an argument, assign it.
+  if test -n "$ac_prev"; then
+    eval $ac_prev=\$ac_option
+    ac_prev=
+    continue
+  fi
+
+  case $ac_option in
+  *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+  *=)   ac_optarg= ;;
+  *)    ac_optarg=yes ;;
+  esac
+
+  case $ac_dashdash$ac_option in
+  --)
+    ac_dashdash=yes ;;
+
+  -bindir | --bindir | --bindi | --bind | --bin | --bi)
+    ac_prev=bindir ;;
+  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+    bindir=$ac_optarg ;;
+
+  -build | --build | --buil | --bui | --bu)
+    ac_prev=build_alias ;;
+  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+    build_alias=$ac_optarg ;;
+
+  -cache-file | --cache-file | --cache-fil | --cache-fi \
+  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+    ac_prev=cache_file ;;
+  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+    cache_file=$ac_optarg ;;
+
+  --config-cache | -C)
+    cache_file=config.cache ;;
+
+  -datadir | --datadir | --datadi | --datad)
+    ac_prev=datadir ;;
+  -datadir=* | --datadir=* | --datadi=* | --datad=*)
+    datadir=$ac_optarg ;;
+
+  -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
+  | --dataroo | --dataro | --datar)
+    ac_prev=datarootdir ;;
+  -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
+  | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
+    datarootdir=$ac_optarg ;;
+
+  -disable-* | --disable-*)
+    ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      as_fn_error $? "invalid feature name: '$ac_useropt'"
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"enable_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
+	 ac_unrecognized_sep=', ';;
+    esac
+    eval enable_$ac_useropt=no ;;
+
+  -docdir | --docdir | --docdi | --doc | --do)
+    ac_prev=docdir ;;
+  -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
+    docdir=$ac_optarg ;;
+
+  -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
+    ac_prev=dvidir ;;
+  -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
+    dvidir=$ac_optarg ;;
+
+  -enable-* | --enable-*)
+    ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      as_fn_error $? "invalid feature name: '$ac_useropt'"
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"enable_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
+	 ac_unrecognized_sep=', ';;
+    esac
+    eval enable_$ac_useropt=\$ac_optarg ;;
+
+  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+  | --exec | --exe | --ex)
+    ac_prev=exec_prefix ;;
+  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+  | --exec=* | --exe=* | --ex=*)
+    exec_prefix=$ac_optarg ;;
+
+  -gas | --gas | --ga | --g)
+    # Obsolete; use --with-gas.
+    with_gas=yes ;;
+
+  -help | --help | --hel | --he | -h)
+    ac_init_help=long ;;
+  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+    ac_init_help=recursive ;;
+  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+    ac_init_help=short ;;
+
+  -host | --host | --hos | --ho)
+    ac_prev=host_alias ;;
+  -host=* | --host=* | --hos=* | --ho=*)
+    host_alias=$ac_optarg ;;
+
+  -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
+    ac_prev=htmldir ;;
+  -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
+  | --ht=*)
+    htmldir=$ac_optarg ;;
+
+  -includedir | --includedir | --includedi | --included | --include \
+  | --includ | --inclu | --incl | --inc)
+    ac_prev=includedir ;;
+  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+  | --includ=* | --inclu=* | --incl=* | --inc=*)
+    includedir=$ac_optarg ;;
+
+  -infodir | --infodir | --infodi | --infod | --info | --inf)
+    ac_prev=infodir ;;
+  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+    infodir=$ac_optarg ;;
+
+  -libdir | --libdir | --libdi | --libd)
+    ac_prev=libdir ;;
+  -libdir=* | --libdir=* | --libdi=* | --libd=*)
+    libdir=$ac_optarg ;;
+
+  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+  | --libexe | --libex | --libe)
+    ac_prev=libexecdir ;;
+  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+  | --libexe=* | --libex=* | --libe=*)
+    libexecdir=$ac_optarg ;;
+
+  -localedir | --localedir | --localedi | --localed | --locale)
+    ac_prev=localedir ;;
+  -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
+    localedir=$ac_optarg ;;
+
+  -localstatedir | --localstatedir | --localstatedi | --localstated \
+  | --localstate | --localstat | --localsta | --localst | --locals)
+    ac_prev=localstatedir ;;
+  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+  | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
+    localstatedir=$ac_optarg ;;
+
+  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+    ac_prev=mandir ;;
+  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+    mandir=$ac_optarg ;;
+
+  -nfp | --nfp | --nf)
+    # Obsolete; use --without-fp.
+    with_fp=no ;;
+
+  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+  | --no-cr | --no-c | -n)
+    no_create=yes ;;
+
+  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+    no_recursion=yes ;;
+
+  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+  | --oldin | --oldi | --old | --ol | --o)
+    ac_prev=oldincludedir ;;
+  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+    oldincludedir=$ac_optarg ;;
+
+  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+    ac_prev=prefix ;;
+  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+    prefix=$ac_optarg ;;
+
+  -program-prefix | --program-prefix | --program-prefi | --program-pref \
+  | --program-pre | --program-pr | --program-p)
+    ac_prev=program_prefix ;;
+  -program-prefix=* | --program-prefix=* | --program-prefi=* \
+  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+    program_prefix=$ac_optarg ;;
+
+  -program-suffix | --program-suffix | --program-suffi | --program-suff \
+  | --program-suf | --program-su | --program-s)
+    ac_prev=program_suffix ;;
+  -program-suffix=* | --program-suffix=* | --program-suffi=* \
+  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+    program_suffix=$ac_optarg ;;
+
+  -program-transform-name | --program-transform-name \
+  | --program-transform-nam | --program-transform-na \
+  | --program-transform-n | --program-transform- \
+  | --program-transform | --program-transfor \
+  | --program-transfo | --program-transf \
+  | --program-trans | --program-tran \
+  | --progr-tra | --program-tr | --program-t)
+    ac_prev=program_transform_name ;;
+  -program-transform-name=* | --program-transform-name=* \
+  | --program-transform-nam=* | --program-transform-na=* \
+  | --program-transform-n=* | --program-transform-=* \
+  | --program-transform=* | --program-transfor=* \
+  | --program-transfo=* | --program-transf=* \
+  | --program-trans=* | --program-tran=* \
+  | --progr-tra=* | --program-tr=* | --program-t=*)
+    program_transform_name=$ac_optarg ;;
+
+  -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
+    ac_prev=pdfdir ;;
+  -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
+    pdfdir=$ac_optarg ;;
+
+  -psdir | --psdir | --psdi | --psd | --ps)
+    ac_prev=psdir ;;
+  -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
+    psdir=$ac_optarg ;;
+
+  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+  | -silent | --silent | --silen | --sile | --sil)
+    silent=yes ;;
+
+  -runstatedir | --runstatedir | --runstatedi | --runstated \
+  | --runstate | --runstat | --runsta | --runst | --runs \
+  | --run | --ru | --r)
+    ac_prev=runstatedir ;;
+  -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
+  | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
+  | --run=* | --ru=* | --r=*)
+    runstatedir=$ac_optarg ;;
+
+  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+    ac_prev=sbindir ;;
+  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+  | --sbi=* | --sb=*)
+    sbindir=$ac_optarg ;;
+
+  -sharedstatedir | --sharedstatedir | --sharedstatedi \
+  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+  | --sharedst | --shareds | --shared | --share | --shar \
+  | --sha | --sh)
+    ac_prev=sharedstatedir ;;
+  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+  | --sha=* | --sh=*)
+    sharedstatedir=$ac_optarg ;;
+
+  -site | --site | --sit)
+    ac_prev=site ;;
+  -site=* | --site=* | --sit=*)
+    site=$ac_optarg ;;
+
+  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+    ac_prev=srcdir ;;
+  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+    srcdir=$ac_optarg ;;
+
+  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+  | --syscon | --sysco | --sysc | --sys | --sy)
+    ac_prev=sysconfdir ;;
+  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+    sysconfdir=$ac_optarg ;;
+
+  -target | --target | --targe | --targ | --tar | --ta | --t)
+    ac_prev=target_alias ;;
+  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+    target_alias=$ac_optarg ;;
+
+  -v | -verbose | --verbose | --verbos | --verbo | --verb)
+    verbose=yes ;;
+
+  -version | --version | --versio | --versi | --vers | -V)
+    ac_init_version=: ;;
+
+  -with-* | --with-*)
+    ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      as_fn_error $? "invalid package name: '$ac_useropt'"
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"with_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
+	 ac_unrecognized_sep=', ';;
+    esac
+    eval with_$ac_useropt=\$ac_optarg ;;
+
+  -without-* | --without-*)
+    ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      as_fn_error $? "invalid package name: '$ac_useropt'"
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"with_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
+	 ac_unrecognized_sep=', ';;
+    esac
+    eval with_$ac_useropt=no ;;
+
+  --x)
+    # Obsolete; use --with-x.
+    with_x=yes ;;
+
+  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+  | --x-incl | --x-inc | --x-in | --x-i)
+    ac_prev=x_includes ;;
+  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+    x_includes=$ac_optarg ;;
+
+  -x-libraries | --x-libraries | --x-librarie | --x-librari \
+  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+    ac_prev=x_libraries ;;
+  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+    x_libraries=$ac_optarg ;;
+
+  -*) as_fn_error $? "unrecognized option: '$ac_option'
+Try '$0 --help' for more information"
+    ;;
+
+  *=*)
+    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+    # Reject names that are not valid shell variable names.
+    case $ac_envvar in #(
+      '' | [0-9]* | *[!_$as_cr_alnum]* )
+      as_fn_error $? "invalid variable name: '$ac_envvar'" ;;
+    esac
+    eval $ac_envvar=\$ac_optarg
+    export $ac_envvar ;;
+
+  *)
+    # FIXME: should be removed in autoconf 3.0.
+    printf "%s\n" "$as_me: WARNING: you should use --build, --host, --target" >&2
+    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+      printf "%s\n" "$as_me: WARNING: invalid host type: $ac_option" >&2
+    : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
+    ;;
+
+  esac
+done
+
+if test -n "$ac_prev"; then
+  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+  as_fn_error $? "missing argument to $ac_option"
+fi
+
+if test -n "$ac_unrecognized_opts"; then
+  case $enable_option_checking in
+    no) ;;
+    fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
+    *)     printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
+  esac
+fi
+
+# Check all directory arguments for consistency.
+for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
+		datadir sysconfdir sharedstatedir localstatedir includedir \
+		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
+		libdir localedir mandir runstatedir
+do
+  eval ac_val=\$$ac_var
+  # Remove trailing slashes.
+  case $ac_val in
+    */ )
+      ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
+      eval $ac_var=\$ac_val;;
+  esac
+  # Be sure to have absolute directory names.
+  case $ac_val in
+    [\\/$]* | ?:[\\/]* )  continue;;
+    NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
+  esac
+  as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
+done
+
+# There might be people who depend on the old broken behavior: '$host'
+# used to hold the argument of --host etc.
+# FIXME: To remove some day.
+build=$build_alias
+host=$host_alias
+target=$target_alias
+
+# FIXME: To remove some day.
+if test "x$host_alias" != x; then
+  if test "x$build_alias" = x; then
+    cross_compiling=maybe
+  elif test "x$build_alias" != "x$host_alias"; then
+    cross_compiling=yes
+  fi
+fi
+
+ac_tool_prefix=
+test -n "$host_alias" && ac_tool_prefix=$host_alias-
+
+test "$silent" = yes && exec 6>/dev/null
+
+
+ac_pwd=`pwd` && test -n "$ac_pwd" &&
+ac_ls_di=`ls -di .` &&
+ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
+  as_fn_error $? "working directory cannot be determined"
+test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
+  as_fn_error $? "pwd does not report name of working directory"
+
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+  ac_srcdir_defaulted=yes
+  # Try the directory containing this script, then the parent directory.
+  ac_confdir=`$as_dirname -- "$as_myself" ||
+$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_myself" : 'X\(//\)[^/]' \| \
+	 X"$as_myself" : 'X\(//\)$' \| \
+	 X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
+printf "%s\n" X"$as_myself" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+  srcdir=$ac_confdir
+  if test ! -r "$srcdir/$ac_unique_file"; then
+    srcdir=..
+  fi
+else
+  ac_srcdir_defaulted=no
+fi
+if test ! -r "$srcdir/$ac_unique_file"; then
+  test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
+  as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
+fi
+ac_msg="sources are in $srcdir, but 'cd $srcdir' does not work"
+ac_abs_confdir=`(
+	cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
+	pwd)`
+# When building in place, set srcdir=.
+if test "$ac_abs_confdir" = "$ac_pwd"; then
+  srcdir=.
+fi
+# Remove unnecessary trailing slashes from srcdir.
+# Double slashes in file names in object file debugging info
+# mess up M-x gdb in Emacs.
+case $srcdir in
+*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
+esac
+for ac_var in $ac_precious_vars; do
+  eval ac_env_${ac_var}_set=\${${ac_var}+set}
+  eval ac_env_${ac_var}_value=\$${ac_var}
+  eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
+  eval ac_cv_env_${ac_var}_value=\$${ac_var}
+done
+
+#
+# Report the --help message.
+#
+if test "$ac_init_help" = "long"; then
+  # Omit some internal or obsolete options to make the list less imposing.
+  # This message is too long to be a string in the A/UX 3.1 sh.
+  cat <<_ACEOF
+'configure' configures GNU C Library (see version.h) to adapt to many kinds of systems.
+
+Usage: $0 [OPTION]... [VAR=VALUE]...
+
+To assign environment variables (e.g., CC, CFLAGS...), specify them as
+VAR=VALUE.  See below for descriptions of some of the useful variables.
+
+Defaults for the options are specified in brackets.
+
+Configuration:
+  -h, --help              display this help and exit
+      --help=short        display options specific to this package
+      --help=recursive    display the short help of all the included packages
+  -V, --version           display version information and exit
+  -q, --quiet, --silent   do not print 'checking ...' messages
+      --cache-file=FILE   cache test results in FILE [disabled]
+  -C, --config-cache      alias for '--cache-file=config.cache'
+  -n, --no-create         do not create output files
+      --srcdir=DIR        find the sources in DIR [configure dir or '..']
+
+Installation directories:
+  --prefix=PREFIX         install architecture-independent files in PREFIX
+                          [$ac_default_prefix]
+  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
+                          [PREFIX]
+
+By default, 'make install' will install all the files in
+'$ac_default_prefix/bin', '$ac_default_prefix/lib' etc.  You can specify
+an installation prefix other than '$ac_default_prefix' using '--prefix',
+for instance '--prefix=\$HOME'.
+
+For better control, use the options below.
+
+Fine tuning of the installation directories:
+  --bindir=DIR            user executables [EPREFIX/bin]
+  --sbindir=DIR           system admin executables [EPREFIX/sbin]
+  --libexecdir=DIR        program executables [EPREFIX/libexec]
+  --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
+  --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
+  --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
+  --runstatedir=DIR       modifiable per-process data [LOCALSTATEDIR/run]
+  --libdir=DIR            object code libraries [EPREFIX/lib]
+  --includedir=DIR        C header files [PREFIX/include]
+  --oldincludedir=DIR     C header files for non-gcc [/usr/include]
+  --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]
+  --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]
+  --infodir=DIR           info documentation [DATAROOTDIR/info]
+  --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]
+  --mandir=DIR            man documentation [DATAROOTDIR/man]
+  --docdir=DIR            documentation root [DATAROOTDIR/doc/glibc]
+  --htmldir=DIR           html documentation [DOCDIR]
+  --dvidir=DIR            dvi documentation [DOCDIR]
+  --pdfdir=DIR            pdf documentation [DOCDIR]
+  --psdir=DIR             ps documentation [DOCDIR]
+_ACEOF
+
+  cat <<\_ACEOF
+
+System types:
+  --build=BUILD     configure for building on BUILD [guessed]
+  --host=HOST       cross-compile to build programs to run on HOST [BUILD]
+_ACEOF
+fi
+
+if test -n "$ac_init_help"; then
+  case $ac_init_help in
+     short | recursive ) echo "Configuration of GNU C Library (see version.h):";;
+   esac
+  cat <<\_ACEOF
+
+Optional Features:
+  --disable-option-checking  ignore unrecognized --enable/--with options
+  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
+  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
+  --disable-static-c++-tests
+                          disable static C++ tests[default=no]
+  --disable-static-c++-link-check
+                          disable static C++ link check [default=no]
+  --disable-sanity-checks really do not use threads (should not be used except
+                          in special situations) [default=yes]
+  --enable-shared         build shared library [default=yes if GNU ld]
+  --enable-profile        build profiled library [default=no]
+  --disable-default-pie   Do not build glibc programs and the testsuite as PIE
+                          [default=no]
+  --disable-timezone-tools
+                          do not install timezone tools [default=install]
+  --enable-hardcoded-path-in-tests
+                          hardcode newly built glibc path in tests
+                          [default=no]
+  --disable-hidden-plt    do not hide internal function calls to avoid PLT
+  --enable-bind-now       disable lazy relocations in DSOs
+  --enable-stack-protector=[yes|no|all|strong]
+                          Use -fstack-protector[-all|-strong] to detect glibc
+                          buffer overflows
+  --enable-static-nss     build static NSS modules [default=no]
+  --disable-force-install don't force installation of files from this package,
+                          even if they are older than the installed files
+  --enable-maintainer-mode
+                          enable make rules and dependencies not useful (and
+                          sometimes confusing) to the casual installer
+  --enable-kernel=VERSION compile for compatibility with kernel not older than
+                          VERSION
+  --disable-werror        do not build with -Werror
+  --enable-multi-arch     enable single DSO with optimizations for multiple
+                          architectures
+  --enable-memory-tagging enable memory tagging if supported by the
+                          architecture [default=no]
+  --enable-systemtap      enable systemtap static probe points [default=no]
+  --disable-build-nscd    disable building and installing the nscd daemon
+  --disable-nscd          library functions will not contact the nscd daemon
+  --enable-pt_chown       Enable building and installing pt_chown
+  --enable-mathvec        Enable building and installing mathvec [default
+                          depends on architecture]
+  --enable-cet            enable Intel Control-flow Enforcement Technology
+                          (CET), x86 only
+  --disable-scv           syscalls will not use scv instruction, even if the
+                          kernel supports it, powerpc only
+  --enable-fortify-source[=1|2|3]
+                          Use -D_FORTIFY_SOURCE=[1|2|3] to control code
+                          hardening, defaults to highest possible value
+                          supported by the build compiler.
+
+Optional Packages:
+  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
+  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
+  --with-pkgversion=PKG   Use PKG in the version string in place of "GNU libc"
+  --with-bugurl=URL       Direct users to URL to report a bug
+  --with-gd=DIR           find libgd include dir and library with prefix DIR
+  --with-gd-include=DIR   find libgd include files in DIR
+  --with-gd-lib=DIR       find libgd library files in DIR
+  --with-binutils=PATH    specify location of binutils (as and ld)
+  --with-selinux          if building with SELinux support
+  --with-headers=PATH     location of system headers to use (for example
+                          /usr/src/linux/include) [default=compiler default]
+  --with-nonshared-cflags=CFLAGS
+                          build nonshared libraries with additional CFLAGS
+  --with-rtld-early-cflags=CFLAGS
+                          build early initialization with additional CFLAGS
+  --with-timeoutfactor=NUM
+                          specify an integer to scale the timeout
+  --with-man-pages=VERSION
+                          tie manual to a specific man-pages version
+  --with-cpu=CPU          select code for CPU variant
+
+Some influential environment variables:
+  CC          C compiler command
+  CFLAGS      C compiler flags
+  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
+              nonstandard directory <lib dir>
+  LIBS        libraries to pass to the linker, e.g. -l<library>
+  CPPFLAGS    (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
+              you have headers in a nonstandard directory <include dir>
+  CPP         C preprocessor
+  CXX         C++ compiler command
+  CXXFLAGS    C++ compiler flags
+
+Use these variables to override the choices made by 'configure' or to help
+it to find libraries and programs with nonstandard names/locations.
+
+Report bugs to <https://sourceware.org/bugzilla/>.
+GNU C Library home page: <https://www.gnu.org/software/glibc/>.
+General help using GNU software: <https://www.gnu.org/gethelp/>.
+_ACEOF
+ac_status=$?
+fi
+
+if test "$ac_init_help" = "recursive"; then
+  # If there are subdirs, report their specific --help.
+  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+    test -d "$ac_dir" ||
+      { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
+      continue
+    ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+  ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'`
+  # A ".." for each directory in $ac_dir_suffix.
+  ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+  case $ac_top_builddir_sub in
+  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+  esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+  .)  # We are building in place.
+    ac_srcdir=.
+    ac_top_srcdir=$ac_top_builddir_sub
+    ac_abs_top_srcdir=$ac_pwd ;;
+  [\\/]* | ?:[\\/]* )  # Absolute name.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir
+    ac_abs_top_srcdir=$srcdir ;;
+  *) # Relative name.
+    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_build_prefix$srcdir
+    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+    cd "$ac_dir" || { ac_status=$?; continue; }
+    # Check for configure.gnu first; this name is used for a wrapper for
+    # Metaconfig's "Configure" on case-insensitive file systems.
+    if test -f "$ac_srcdir/configure.gnu"; then
+      echo &&
+      $SHELL "$ac_srcdir/configure.gnu" --help=recursive
+    elif test -f "$ac_srcdir/configure"; then
+      echo &&
+      $SHELL "$ac_srcdir/configure" --help=recursive
+    else
+      printf "%s\n" "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+    fi || ac_status=$?
+    cd "$ac_pwd" || { ac_status=$?; break; }
+  done
+fi
+
+test -n "$ac_init_help" && exit $ac_status
+if $ac_init_version; then
+  cat <<\_ACEOF
+GNU C Library configure (see version.h)
+generated by GNU Autoconf 2.72
+
+Copyright (C) 2023 Free Software Foundation, Inc.
+This configure script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it.
+_ACEOF
+  exit
+fi
+
+## ------------------------ ##
+## Autoconf initialization. ##
+## ------------------------ ##
+
+# ac_fn_c_try_compile LINENO
+# --------------------------
+# Try to compile conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_compile ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  rm -f conftest.$ac_objext conftest.beam
+  if { { ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+printf "%s\n" "$ac_try_echo"; } >&5
+  (eval "$ac_compile") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext
+then :
+  ac_retval=0
+else case e in #(
+  e) printf "%s\n" "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_retval=1 ;;
+esac
+fi
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_compile
+
+# ac_fn_cxx_try_compile LINENO
+# ----------------------------
+# Try to compile conftest.$ac_ext, and return whether this succeeded.
+ac_fn_cxx_try_compile ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  rm -f conftest.$ac_objext conftest.beam
+  if { { ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+printf "%s\n" "$ac_try_echo"; } >&5
+  (eval "$ac_compile") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && {
+	 test -z "$ac_cxx_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext
+then :
+  ac_retval=0
+else case e in #(
+  e) printf "%s\n" "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_retval=1 ;;
+esac
+fi
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  as_fn_set_status $ac_retval
+
+} # ac_fn_cxx_try_compile
+
+# ac_fn_cxx_try_link LINENO
+# -------------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded.
+ac_fn_cxx_try_link ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  rm -f conftest.$ac_objext conftest.beam conftest$ac_exeext
+  if { { ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+printf "%s\n" "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && {
+	 test -z "$ac_cxx_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 test -x conftest$ac_exeext
+       }
+then :
+  ac_retval=0
+else case e in #(
+  e) printf "%s\n" "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_retval=1 ;;
+esac
+fi
+  # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
+  # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
+  # interfere with the next link command; also delete a directory that is
+  # left behind by Apple's compiler.  We do this before executing the actions.
+  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  as_fn_set_status $ac_retval
+
+} # ac_fn_cxx_try_link
+
+# ac_fn_c_try_cpp LINENO
+# ----------------------
+# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_cpp ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if { { ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+printf "%s\n" "$ac_try_echo"; } >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } > conftest.i && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }
+then :
+  ac_retval=0
+else case e in #(
+  e) printf "%s\n" "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+    ac_retval=1 ;;
+esac
+fi
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_cpp
+
+# ac_fn_c_try_link LINENO
+# -----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_link ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  rm -f conftest.$ac_objext conftest.beam conftest$ac_exeext
+  if { { ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+printf "%s\n" "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 test -x conftest$ac_exeext
+       }
+then :
+  ac_retval=0
+else case e in #(
+  e) printf "%s\n" "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_retval=1 ;;
+esac
+fi
+  # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
+  # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
+  # interfere with the next link command; also delete a directory that is
+  # left behind by Apple's compiler.  We do this before executing the actions.
+  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_link
+ac_configure_args_raw=
+for ac_arg
+do
+  case $ac_arg in
+  *\'*)
+    ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+  esac
+  as_fn_append ac_configure_args_raw " '$ac_arg'"
+done
+
+case $ac_configure_args_raw in
+  *$as_nl*)
+    ac_safe_unquote= ;;
+  *)
+    ac_unsafe_z='|&;<>()$`\\"*?[ ''	' # This string ends in space, tab.
+    ac_unsafe_a="$ac_unsafe_z#~"
+    ac_safe_unquote="s/ '\\([^$ac_unsafe_a][^$ac_unsafe_z]*\\)'/ \\1/g"
+    ac_configure_args_raw=`      printf "%s\n" "$ac_configure_args_raw" | sed "$ac_safe_unquote"`;;
+esac
+
+cat >config.log <<_ACEOF
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+
+It was created by GNU C Library $as_me (see version.h), which was
+generated by GNU Autoconf 2.72.  Invocation command line was
+
+  $ $0$ac_configure_args_raw
+
+_ACEOF
+exec 5>>config.log
+{
+cat <<_ASUNAME
+## --------- ##
+## Platform. ##
+## --------- ##
+
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
+
+/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
+/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`
+/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
+/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
+/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
+
+_ASUNAME
+
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    printf "%s\n" "PATH: $as_dir"
+  done
+IFS=$as_save_IFS
+
+} >&5
+
+cat >&5 <<_ACEOF
+
+
+## ----------- ##
+## Core tests. ##
+## ----------- ##
+
+_ACEOF
+
+
+# Keep a trace of the command line.
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Strip out --silent because we don't want to record it for future runs.
+# Also quote any args containing shell meta-characters.
+# Make two passes to allow for proper duplicate-argument suppression.
+ac_configure_args=
+ac_configure_args0=
+ac_configure_args1=
+ac_must_keep_next=false
+for ac_pass in 1 2
+do
+  for ac_arg
+  do
+    case $ac_arg in
+    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+    -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+    | -silent | --silent | --silen | --sile | --sil)
+      continue ;;
+    *\'*)
+      ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    esac
+    case $ac_pass in
+    1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
+    2)
+      as_fn_append ac_configure_args1 " '$ac_arg'"
+      if test $ac_must_keep_next = true; then
+	ac_must_keep_next=false # Got value, back to normal.
+      else
+	case $ac_arg in
+	  *=* | --config-cache | -C | -disable-* | --disable-* \
+	  | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+	  | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+	  | -with-* | --with-* | -without-* | --without-* | --x)
+	    case "$ac_configure_args0 " in
+	      "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+	    esac
+	    ;;
+	  -* ) ac_must_keep_next=true ;;
+	esac
+      fi
+      as_fn_append ac_configure_args " '$ac_arg'"
+      ;;
+    esac
+  done
+done
+{ ac_configure_args0=; unset ac_configure_args0;}
+{ ac_configure_args1=; unset ac_configure_args1;}
+
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log.  We remove comments because anyway the quotes in there
+# would cause problems or look ugly.
+# WARNING: Use '\'' to represent an apostrophe within the trap.
+# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
+trap 'exit_status=$?
+  # Sanitize IFS.
+  IFS=" ""	$as_nl"
+  # Save into config.log some information that might help in debugging.
+  {
+    echo
+
+    printf "%s\n" "## ---------------- ##
+## Cache variables. ##
+## ---------------- ##"
+    echo
+    # The following way of writing the cache mishandles newlines in values,
+(
+  for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
+    eval ac_val=\$$ac_var
+    case $ac_val in #(
+    *${as_nl}*)
+      case $ac_var in #(
+      *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+      esac
+      case $ac_var in #(
+      _ | IFS | as_nl) ;; #(
+      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+      *) { eval $ac_var=; unset $ac_var;} ;;
+      esac ;;
+    esac
+  done
+  (set) 2>&1 |
+    case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
+    *${as_nl}ac_space=\ *)
+      sed -n \
+	"s/'\''/'\''\\\\'\'''\''/g;
+	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
+      ;; #(
+    *)
+      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+      ;;
+    esac |
+    sort
+)
+    echo
+
+    printf "%s\n" "## ----------------- ##
+## Output variables. ##
+## ----------------- ##"
+    echo
+    for ac_var in $ac_subst_vars
+    do
+      eval ac_val=\$$ac_var
+      case $ac_val in
+      *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+      esac
+      printf "%s\n" "$ac_var='\''$ac_val'\''"
+    done | sort
+    echo
+
+    if test -n "$ac_subst_files"; then
+      printf "%s\n" "## ------------------- ##
+## File substitutions. ##
+## ------------------- ##"
+      echo
+      for ac_var in $ac_subst_files
+      do
+	eval ac_val=\$$ac_var
+	case $ac_val in
+	*\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+	esac
+	printf "%s\n" "$ac_var='\''$ac_val'\''"
+      done | sort
+      echo
+    fi
+
+    if test -s confdefs.h; then
+      printf "%s\n" "## ----------- ##
+## confdefs.h. ##
+## ----------- ##"
+      echo
+      cat confdefs.h
+      echo
+    fi
+    test "$ac_signal" != 0 &&
+      printf "%s\n" "$as_me: caught signal $ac_signal"
+    printf "%s\n" "$as_me: exit $exit_status"
+  } >&5
+  rm -f core *.core core.conftest.* &&
+    rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
+    exit $exit_status
+' 0
+for ac_signal in 1 2 13 15; do
+  trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
+done
+ac_signal=0
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -f -r conftest* confdefs.h
+
+printf "%s\n" "/* confdefs.h */" > confdefs.h
+
+# Predefined preprocessor variables.
+
+printf "%s\n" "#define PACKAGE_NAME \"$PACKAGE_NAME\"" >>confdefs.h
+
+printf "%s\n" "#define PACKAGE_TARNAME \"$PACKAGE_TARNAME\"" >>confdefs.h
+
+printf "%s\n" "#define PACKAGE_VERSION \"$PACKAGE_VERSION\"" >>confdefs.h
+
+printf "%s\n" "#define PACKAGE_STRING \"$PACKAGE_STRING\"" >>confdefs.h
+
+printf "%s\n" "#define PACKAGE_BUGREPORT \"$PACKAGE_BUGREPORT\"" >>confdefs.h
+
+printf "%s\n" "#define PACKAGE_URL \"$PACKAGE_URL\"" >>confdefs.h
+
+
+# Let the site file select an alternate cache file if it wants to.
+# Prefer an explicitly selected file to automatically selected ones.
+if test -n "$CONFIG_SITE"; then
+  ac_site_files="$CONFIG_SITE"
+elif test "x$prefix" != xNONE; then
+  ac_site_files="$prefix/share/config.site $prefix/etc/config.site"
+else
+  ac_site_files="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
+fi
+
+for ac_site_file in $ac_site_files
+do
+  case $ac_site_file in #(
+  */*) :
+     ;; #(
+  *) :
+    ac_site_file=./$ac_site_file ;;
+esac
+  if test -f "$ac_site_file" && test -r "$ac_site_file"; then
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
+printf "%s\n" "$as_me: loading site script $ac_site_file" >&6;}
+    sed 's/^/| /' "$ac_site_file" >&5
+    . "$ac_site_file" \
+      || { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+as_fn_error $? "failed to load site script $ac_site_file
+See 'config.log' for more details" "$LINENO" 5; }
+  fi
+done
+
+if test -r "$cache_file"; then
+  # Some versions of bash will fail to source /dev/null (special files
+  # actually), so we avoid doing that.  DJGPP emulates it as a regular file.
+  if test /dev/null != "$cache_file" && test -f "$cache_file"; then
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
+printf "%s\n" "$as_me: loading cache $cache_file" >&6;}
+    case $cache_file in
+      [\\/]* | ?:[\\/]* ) . "$cache_file";;
+      *)                      . "./$cache_file";;
+    esac
+  fi
+else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
+printf "%s\n" "$as_me: creating cache $cache_file" >&6;}
+  >$cache_file
+fi
+
+# Test code for whether the C compiler supports C89 (global declarations)
+ac_c_conftest_c89_globals='
+/* Does the compiler advertise C89 conformance?
+   Do not test the value of __STDC__, because some compilers set it to 0
+   while being otherwise adequately conformant. */
+#if !defined __STDC__
+# error "Compiler does not advertise C89 conformance"
+#endif
+
+#include <stddef.h>
+#include <stdarg.h>
+struct stat;
+/* Most of the following tests are stolen from RCS 5.7 src/conf.sh.  */
+struct buf { int x; };
+struct buf * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (char **p, int i)
+{
+  return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+  char *s;
+  va_list v;
+  va_start (v,p);
+  s = g (p, va_arg (v,int));
+  va_end (v);
+  return s;
+}
+
+/* C89 style stringification. */
+#define noexpand_stringify(a) #a
+const char *stringified = noexpand_stringify(arbitrary+token=sequence);
+
+/* C89 style token pasting.  Exercises some of the corner cases that
+   e.g. old MSVC gets wrong, but not very hard. */
+#define noexpand_concat(a,b) a##b
+#define expand_concat(a,b) noexpand_concat(a,b)
+extern int vA;
+extern int vbee;
+#define aye A
+#define bee B
+int *pvA = &expand_concat(v,aye);
+int *pvbee = &noexpand_concat(v,bee);
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
+   function prototypes and stuff, but not \xHH hex character constants.
+   These do not provoke an error unfortunately, instead are silently treated
+   as an "x".  The following induces an error, until -std is added to get
+   proper ANSI mode.  Curiously \x00 != x always comes out true, for an
+   array size at least.  It is necessary to write \x00 == 0 to get something
+   that is true only with -std.  */
+int osf4_cc_array ['\''\x00'\'' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+   inside strings and character constants.  */
+#define FOO(x) '\''x'\''
+int xlc6_cc_array[FOO(a) == '\''x'\'' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, int *(*)(struct buf *, struct stat *, int),
+               int, int);'
+
+# Test code for whether the C compiler supports C89 (body of main).
+ac_c_conftest_c89_main='
+ok |= (argc == 0 || f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]);
+'
+
+# Test code for whether the C compiler supports C99 (global declarations)
+ac_c_conftest_c99_globals='
+/* Does the compiler advertise C99 conformance? */
+#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L
+# error "Compiler does not advertise C99 conformance"
+#endif
+
+// See if C++-style comments work.
+
+#include <stdbool.h>
+extern int puts (const char *);
+extern int printf (const char *, ...);
+extern int dprintf (int, const char *, ...);
+extern void *malloc (size_t);
+extern void free (void *);
+
+// Check varargs macros.  These examples are taken from C99 6.10.3.5.
+// dprintf is used instead of fprintf to avoid needing to declare
+// FILE and stderr.
+#define debug(...) dprintf (2, __VA_ARGS__)
+#define showlist(...) puts (#__VA_ARGS__)
+#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__))
+static void
+test_varargs_macros (void)
+{
+  int x = 1234;
+  int y = 5678;
+  debug ("Flag");
+  debug ("X = %d\n", x);
+  showlist (The first, second, and third items.);
+  report (x>y, "x is %d but y is %d", x, y);
+}
+
+// Check long long types.
+#define BIG64 18446744073709551615ull
+#define BIG32 4294967295ul
+#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0)
+#if !BIG_OK
+  #error "your preprocessor is broken"
+#endif
+#if BIG_OK
+#else
+  #error "your preprocessor is broken"
+#endif
+static long long int bignum = -9223372036854775807LL;
+static unsigned long long int ubignum = BIG64;
+
+struct incomplete_array
+{
+  int datasize;
+  double data[];
+};
+
+struct named_init {
+  int number;
+  const wchar_t *name;
+  double average;
+};
+
+typedef const char *ccp;
+
+static inline int
+test_restrict (ccp restrict text)
+{
+  // Iterate through items via the restricted pointer.
+  // Also check for declarations in for loops.
+  for (unsigned int i = 0; *(text+i) != '\''\0'\''; ++i)
+    continue;
+  return 0;
+}
+
+// Check varargs and va_copy.
+static bool
+test_varargs (const char *format, ...)
+{
+  va_list args;
+  va_start (args, format);
+  va_list args_copy;
+  va_copy (args_copy, args);
+
+  const char *str = "";
+  int number = 0;
+  float fnumber = 0;
+
+  while (*format)
+    {
+      switch (*format++)
+	{
+	case '\''s'\'': // string
+	  str = va_arg (args_copy, const char *);
+	  break;
+	case '\''d'\'': // int
+	  number = va_arg (args_copy, int);
+	  break;
+	case '\''f'\'': // float
+	  fnumber = va_arg (args_copy, double);
+	  break;
+	default:
+	  break;
+	}
+    }
+  va_end (args_copy);
+  va_end (args);
+
+  return *str && number && fnumber;
+}
+'
+
+# Test code for whether the C compiler supports C99 (body of main).
+ac_c_conftest_c99_main='
+  // Check bool.
+  _Bool success = false;
+  success |= (argc != 0);
+
+  // Check restrict.
+  if (test_restrict ("String literal") == 0)
+    success = true;
+  char *restrict newvar = "Another string";
+
+  // Check varargs.
+  success &= test_varargs ("s, d'\'' f .", "string", 65, 34.234);
+  test_varargs_macros ();
+
+  // Check flexible array members.
+  struct incomplete_array *ia =
+    malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10));
+  ia->datasize = 10;
+  for (int i = 0; i < ia->datasize; ++i)
+    ia->data[i] = i * 1.234;
+  // Work around memory leak warnings.
+  free (ia);
+
+  // Check named initializers.
+  struct named_init ni = {
+    .number = 34,
+    .name = L"Test wide string",
+    .average = 543.34343,
+  };
+
+  ni.number = 58;
+
+  int dynamic_array[ni.number];
+  dynamic_array[0] = argv[0][0];
+  dynamic_array[ni.number - 1] = 543;
+
+  // work around unused variable warnings
+  ok |= (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == '\''x'\''
+	 || dynamic_array[ni.number - 1] != 543);
+'
+
+# Test code for whether the C compiler supports C11 (global declarations)
+ac_c_conftest_c11_globals='
+/* Does the compiler advertise C11 conformance? */
+#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112L
+# error "Compiler does not advertise C11 conformance"
+#endif
+
+// Check _Alignas.
+char _Alignas (double) aligned_as_double;
+char _Alignas (0) no_special_alignment;
+extern char aligned_as_int;
+char _Alignas (0) _Alignas (int) aligned_as_int;
+
+// Check _Alignof.
+enum
+{
+  int_alignment = _Alignof (int),
+  int_array_alignment = _Alignof (int[100]),
+  char_alignment = _Alignof (char)
+};
+_Static_assert (0 < -_Alignof (int), "_Alignof is signed");
+
+// Check _Noreturn.
+int _Noreturn does_not_return (void) { for (;;) continue; }
+
+// Check _Static_assert.
+struct test_static_assert
+{
+  int x;
+  _Static_assert (sizeof (int) <= sizeof (long int),
+                  "_Static_assert does not work in struct");
+  long int y;
+};
+
+// Check UTF-8 literals.
+#define u8 syntax error!
+char const utf8_literal[] = u8"happens to be ASCII" "another string";
+
+// Check duplicate typedefs.
+typedef long *long_ptr;
+typedef long int *long_ptr;
+typedef long_ptr long_ptr;
+
+// Anonymous structures and unions -- taken from C11 6.7.2.1 Example 1.
+struct anonymous
+{
+  union {
+    struct { int i; int j; };
+    struct { int k; long int l; } w;
+  };
+  int m;
+} v1;
+'
+
+# Test code for whether the C compiler supports C11 (body of main).
+ac_c_conftest_c11_main='
+  _Static_assert ((offsetof (struct anonymous, i)
+		   == offsetof (struct anonymous, w.k)),
+		  "Anonymous union alignment botch");
+  v1.i = 2;
+  v1.w.k = 5;
+  ok |= v1.i != 5;
+'
+
+# Test code for whether the C compiler supports C11 (complete).
+ac_c_conftest_c11_program="${ac_c_conftest_c89_globals}
+${ac_c_conftest_c99_globals}
+${ac_c_conftest_c11_globals}
+
+int
+main (int argc, char **argv)
+{
+  int ok = 0;
+  ${ac_c_conftest_c89_main}
+  ${ac_c_conftest_c99_main}
+  ${ac_c_conftest_c11_main}
+  return ok;
+}
+"
+
+# Test code for whether the C compiler supports C99 (complete).
+ac_c_conftest_c99_program="${ac_c_conftest_c89_globals}
+${ac_c_conftest_c99_globals}
+
+int
+main (int argc, char **argv)
+{
+  int ok = 0;
+  ${ac_c_conftest_c89_main}
+  ${ac_c_conftest_c99_main}
+  return ok;
+}
+"
+
+# Test code for whether the C compiler supports C89 (complete).
+ac_c_conftest_c89_program="${ac_c_conftest_c89_globals}
+
+int
+main (int argc, char **argv)
+{
+  int ok = 0;
+  ${ac_c_conftest_c89_main}
+  return ok;
+}
+"
+
+# Test code for whether the C++ compiler supports C++98 (global declarations)
+ac_cxx_conftest_cxx98_globals='
+// Does the compiler advertise C++98 conformance?
+#if !defined __cplusplus || __cplusplus < 199711L
+# error "Compiler does not advertise C++98 conformance"
+#endif
+
+// These inclusions are to reject old compilers that
+// lack the unsuffixed header files.
+#include <cstdlib>
+#include <exception>
+
+// <cassert> and <cstring> are *not* freestanding headers in C++98.
+extern void assert (int);
+namespace std {
+  extern int strcmp (const char *, const char *);
+}
+
+// Namespaces, exceptions, and templates were all added after "C++ 2.0".
+using std::exception;
+using std::strcmp;
+
+namespace {
+
+void test_exception_syntax()
+{
+  try {
+    throw "test";
+  } catch (const char *s) {
+    // Extra parentheses suppress a warning when building autoconf itself,
+    // due to lint rules shared with more typical C programs.
+    assert (!(strcmp) (s, "test"));
+  }
+}
+
+template <typename T> struct test_template
+{
+  T const val;
+  explicit test_template(T t) : val(t) {}
+  template <typename U> T add(U u) { return static_cast<T>(u) + val; }
+};
+
+} // anonymous namespace
+'
+
+# Test code for whether the C++ compiler supports C++98 (body of main)
+ac_cxx_conftest_cxx98_main='
+  assert (argc);
+  assert (! argv[0]);
+{
+  test_exception_syntax ();
+  test_template<double> tt (2.0);
+  assert (tt.add (4) == 6.0);
+  assert (true && !false);
+}
+'
+
+# Test code for whether the C++ compiler supports C++11 (global declarations)
+ac_cxx_conftest_cxx11_globals='
+// Does the compiler advertise C++ 2011 conformance?
+#if !defined __cplusplus || __cplusplus < 201103L
+# error "Compiler does not advertise C++11 conformance"
+#endif
+
+namespace cxx11test
+{
+  constexpr int get_val() { return 20; }
+
+  struct testinit
+  {
+    int i;
+    double d;
+  };
+
+  class delegate
+  {
+  public:
+    delegate(int n) : n(n) {}
+    delegate(): delegate(2354) {}
+
+    virtual int getval() { return this->n; };
+  protected:
+    int n;
+  };
+
+  class overridden : public delegate
+  {
+  public:
+    overridden(int n): delegate(n) {}
+    virtual int getval() override final { return this->n * 2; }
+  };
+
+  class nocopy
+  {
+  public:
+    nocopy(int i): i(i) {}
+    nocopy() = default;
+    nocopy(const nocopy&) = delete;
+    nocopy & operator=(const nocopy&) = delete;
+  private:
+    int i;
+  };
+
+  // for testing lambda expressions
+  template <typename Ret, typename Fn> Ret eval(Fn f, Ret v)
+  {
+    return f(v);
+  }
+
+  // for testing variadic templates and trailing return types
+  template <typename V> auto sum(V first) -> V
+  {
+    return first;
+  }
+  template <typename V, typename... Args> auto sum(V first, Args... rest) -> V
+  {
+    return first + sum(rest...);
+  }
+}
+'
+
+# Test code for whether the C++ compiler supports C++11 (body of main)
+ac_cxx_conftest_cxx11_main='
+{
+  // Test auto and decltype
+  auto a1 = 6538;
+  auto a2 = 48573953.4;
+  auto a3 = "String literal";
+
+  int total = 0;
+  for (auto i = a3; *i; ++i) { total += *i; }
+
+  decltype(a2) a4 = 34895.034;
+}
+{
+  // Test constexpr
+  short sa[cxx11test::get_val()] = { 0 };
+}
+{
+  // Test initializer lists
+  cxx11test::testinit il = { 4323, 435234.23544 };
+}
+{
+  // Test range-based for
+  int array[] = {9, 7, 13, 15, 4, 18, 12, 10, 5, 3,
+                 14, 19, 17, 8, 6, 20, 16, 2, 11, 1};
+  for (auto &x : array) { x += 23; }
+}
+{
+  // Test lambda expressions
+  using cxx11test::eval;
+  assert (eval ([](int x) { return x*2; }, 21) == 42);
+  double d = 2.0;
+  assert (eval ([&](double x) { return d += x; }, 3.0) == 5.0);
+  assert (d == 5.0);
+  assert (eval ([=](double x) mutable { return d += x; }, 4.0) == 9.0);
+  assert (d == 5.0);
+}
+{
+  // Test use of variadic templates
+  using cxx11test::sum;
+  auto a = sum(1);
+  auto b = sum(1, 2);
+  auto c = sum(1.0, 2.0, 3.0);
+}
+{
+  // Test constructor delegation
+  cxx11test::delegate d1;
+  cxx11test::delegate d2();
+  cxx11test::delegate d3(45);
+}
+{
+  // Test override and final
+  cxx11test::overridden o1(55464);
+}
+{
+  // Test nullptr
+  char *c = nullptr;
+}
+{
+  // Test template brackets
+  test_template<::test_template<int>> v(test_template<int>(12));
+}
+{
+  // Unicode literals
+  char const *utf8 = u8"UTF-8 string \u2500";
+  char16_t const *utf16 = u"UTF-8 string \u2500";
+  char32_t const *utf32 = U"UTF-32 string \u2500";
+}
+'
+
+# Test code for whether the C compiler supports C++11 (complete).
+ac_cxx_conftest_cxx11_program="${ac_cxx_conftest_cxx98_globals}
+${ac_cxx_conftest_cxx11_globals}
+
+int
+main (int argc, char **argv)
+{
+  int ok = 0;
+  ${ac_cxx_conftest_cxx98_main}
+  ${ac_cxx_conftest_cxx11_main}
+  return ok;
+}
+"
+
+# Test code for whether the C compiler supports C++98 (complete).
+ac_cxx_conftest_cxx98_program="${ac_cxx_conftest_cxx98_globals}
+int
+main (int argc, char **argv)
+{
+  int ok = 0;
+  ${ac_cxx_conftest_cxx98_main}
+  return ok;
+}
+"
+
+
+# Auxiliary files required by this configure script.
+ac_aux_files="install-sh config.guess config.sub"
+
+# Locations in which to look for auxiliary files.
+ac_aux_dir_candidates="${srcdir}/scripts"
+
+# Search for a directory containing all of the required auxiliary files,
+# $ac_aux_files, from the $PATH-style list $ac_aux_dir_candidates.
+# If we don't find one directory that contains all the files we need,
+# we report the set of missing files from the *first* directory in
+# $ac_aux_dir_candidates and give up.
+ac_missing_aux_files=""
+ac_first_candidate=:
+printf "%s\n" "$as_me:${as_lineno-$LINENO}: looking for aux files: $ac_aux_files" >&5
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
+for as_dir in $ac_aux_dir_candidates
+do
+  IFS=$as_save_IFS
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+  as_found=:
+
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}:  trying $as_dir" >&5
+  ac_aux_dir_found=yes
+  ac_install_sh=
+  for ac_aux in $ac_aux_files
+  do
+    # As a special case, if "install-sh" is required, that requirement
+    # can be satisfied by any of "install-sh", "install.sh", or "shtool",
+    # and $ac_install_sh is set appropriately for whichever one is found.
+    if test x"$ac_aux" = x"install-sh"
+    then
+      if test -f "${as_dir}install-sh"; then
+        printf "%s\n" "$as_me:${as_lineno-$LINENO}:   ${as_dir}install-sh found" >&5
+        ac_install_sh="${as_dir}install-sh -c"
+      elif test -f "${as_dir}install.sh"; then
+        printf "%s\n" "$as_me:${as_lineno-$LINENO}:   ${as_dir}install.sh found" >&5
+        ac_install_sh="${as_dir}install.sh -c"
+      elif test -f "${as_dir}shtool"; then
+        printf "%s\n" "$as_me:${as_lineno-$LINENO}:   ${as_dir}shtool found" >&5
+        ac_install_sh="${as_dir}shtool install -c"
+      else
+        ac_aux_dir_found=no
+        if $ac_first_candidate; then
+          ac_missing_aux_files="${ac_missing_aux_files} install-sh"
+        else
+          break
+        fi
+      fi
+    else
+      if test -f "${as_dir}${ac_aux}"; then
+        printf "%s\n" "$as_me:${as_lineno-$LINENO}:   ${as_dir}${ac_aux} found" >&5
+      else
+        ac_aux_dir_found=no
+        if $ac_first_candidate; then
+          ac_missing_aux_files="${ac_missing_aux_files} ${ac_aux}"
+        else
+          break
+        fi
+      fi
+    fi
+  done
+  if test "$ac_aux_dir_found" = yes; then
+    ac_aux_dir="$as_dir"
+    break
+  fi
+  ac_first_candidate=false
+
+  as_found=false
+done
+IFS=$as_save_IFS
+if $as_found
+then :
+
+else case e in #(
+  e) as_fn_error $? "cannot find required auxiliary files:$ac_missing_aux_files" "$LINENO" 5 ;;
+esac
+fi
+
+
+# These three variables are undocumented and unsupported,
+# and are intended to be withdrawn in a future Autoconf release.
+# They can cause serious problems if a builder's source tree is in a directory
+# whose full name contains unusual characters.
+if test -f "${ac_aux_dir}config.guess"; then
+  ac_config_guess="$SHELL ${ac_aux_dir}config.guess"
+fi
+if test -f "${ac_aux_dir}config.sub"; then
+  ac_config_sub="$SHELL ${ac_aux_dir}config.sub"
+fi
+if test -f "$ac_aux_dir/configure"; then
+  ac_configure="$SHELL ${ac_aux_dir}configure"
+fi
+
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in $ac_precious_vars; do
+  eval ac_old_set=\$ac_cv_env_${ac_var}_set
+  eval ac_new_set=\$ac_env_${ac_var}_set
+  eval ac_old_val=\$ac_cv_env_${ac_var}_value
+  eval ac_new_val=\$ac_env_${ac_var}_value
+  case $ac_old_set,$ac_new_set in
+    set,)
+      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: '$ac_var' was set to '$ac_old_val' in the previous run" >&5
+printf "%s\n" "$as_me: error: '$ac_var' was set to '$ac_old_val' in the previous run" >&2;}
+      ac_cache_corrupted=: ;;
+    ,set)
+      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: '$ac_var' was not set in the previous run" >&5
+printf "%s\n" "$as_me: error: '$ac_var' was not set in the previous run" >&2;}
+      ac_cache_corrupted=: ;;
+    ,);;
+    *)
+      if test "x$ac_old_val" != "x$ac_new_val"; then
+	# differences in whitespace do not lead to failure.
+	ac_old_val_w=`echo x $ac_old_val`
+	ac_new_val_w=`echo x $ac_new_val`
+	if test "$ac_old_val_w" != "$ac_new_val_w"; then
+	  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: '$ac_var' has changed since the previous run:" >&5
+printf "%s\n" "$as_me: error: '$ac_var' has changed since the previous run:" >&2;}
+	  ac_cache_corrupted=:
+	else
+	  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in '$ac_var' since the previous run:" >&5
+printf "%s\n" "$as_me: warning: ignoring whitespace changes in '$ac_var' since the previous run:" >&2;}
+	  eval $ac_var=\$ac_old_val
+	fi
+	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}:   former value:  '$ac_old_val'" >&5
+printf "%s\n" "$as_me:   former value:  '$ac_old_val'" >&2;}
+	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}:   current value: '$ac_new_val'" >&5
+printf "%s\n" "$as_me:   current value: '$ac_new_val'" >&2;}
+      fi;;
+  esac
+  # Pass precious variables to config.status.
+  if test "$ac_new_set" = set; then
+    case $ac_new_val in
+    *\'*) ac_arg=$ac_var=`printf "%s\n" "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+    *) ac_arg=$ac_var=$ac_new_val ;;
+    esac
+    case " $ac_configure_args " in
+      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
+      *) as_fn_append ac_configure_args " '$ac_arg'" ;;
+    esac
+  fi
+done
+if $ac_cache_corrupted; then
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
+printf "%s\n" "$as_me: error: changes in the environment can compromise the build" >&2;}
+  as_fn_error $? "run '${MAKE-make} distclean' and/or 'rm $cache_file'
+	    and start over" "$LINENO" 5
+fi
+## -------------------- ##
+## Main body of script. ##
+## -------------------- ##
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+ac_config_headers="$ac_config_headers config.h"
+
+
+
+
+
+# Check whether --with-pkgversion was given.
+if test ${with_pkgversion+y}
+then :
+  withval=$with_pkgversion; case "$withval" in
+      yes) as_fn_error $? "package version not specified" "$LINENO" 5 ;;
+      no)  PKGVERSION= ;;
+      *)   PKGVERSION="($withval) " ;;
+     esac
+else case e in #(
+  e) PKGVERSION="(GNU libc) "
+   ;;
+esac
+fi
+
+  PKGVERSION_TEXI=`echo "$PKGVERSION" | sed 's/@/@@/g'`
+
+
+
+
+
+# Check whether --with-bugurl was given.
+if test ${with_bugurl+y}
+then :
+  withval=$with_bugurl; case "$withval" in
+      yes) as_fn_error $? "bug URL not specified" "$LINENO" 5 ;;
+      no)  BUGURL=
+	   ;;
+      *)   BUGURL="$withval"
+	   ;;
+     esac
+else case e in #(
+  e) BUGURL="https://www.gnu.org/software/libc/bugs.html"
+   ;;
+esac
+fi
+
+  case ${BUGURL} in
+  "")
+    REPORT_BUGS_TO=
+    REPORT_BUGS_TEXI=
+    ;;
+  *)
+    REPORT_BUGS_TO="<$BUGURL>"
+    REPORT_BUGS_TEXI=@uref{`echo "$BUGURL" | sed 's/@/@@/g'`}
+    ;;
+  esac;
+
+
+
+
+printf "%s\n" "#define PKGVERSION \"$PKGVERSION\"" >>confdefs.h
+
+
+printf "%s\n" "#define REPORT_BUGS_TO \"$REPORT_BUGS_TO\"" >>confdefs.h
+
+
+# Glibc should not depend on any header files
+
+
+# We require GCC, and by default use its preprocessor.  Override AC_PROG_CPP
+# here to work around the Autoconf issue discussed in
+# <https://sourceware.org/ml/libc-alpha/2013-01/msg00721.html>.
+# AC_PROG_CPP
+
+# We require GCC.  Override _AC_PROG_CC_C89 here to work around the Autoconf
+# issue discussed in
+# <https://sourceware.org/ml/libc-alpha/2013-01/msg00757.html>.
+
+
+
+
+subdirs="$subdirs "
+
+
+
+
+
+  # Make sure we can run config.sub.
+$SHELL "${ac_aux_dir}config.sub" sun4 >/dev/null 2>&1 ||
+  as_fn_error $? "cannot run $SHELL ${ac_aux_dir}config.sub" "$LINENO" 5
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
+printf %s "checking build system type... " >&6; }
+if test ${ac_cv_build+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) ac_build_alias=$build_alias
+test "x$ac_build_alias" = x &&
+  ac_build_alias=`$SHELL "${ac_aux_dir}config.guess"`
+test "x$ac_build_alias" = x &&
+  as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
+ac_cv_build=`$SHELL "${ac_aux_dir}config.sub" $ac_build_alias` ||
+  as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $ac_build_alias failed" "$LINENO" 5
+ ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
+printf "%s\n" "$ac_cv_build" >&6; }
+case $ac_cv_build in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
+esac
+build=$ac_cv_build
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_build
+shift
+build_cpu=$1
+build_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+build_os=$*
+IFS=$ac_save_IFS
+case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
+
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
+printf %s "checking host system type... " >&6; }
+if test ${ac_cv_host+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) if test "x$host_alias" = x; then
+  ac_cv_host=$ac_cv_build
+else
+  ac_cv_host=`$SHELL "${ac_aux_dir}config.sub" $host_alias` ||
+    as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $host_alias failed" "$LINENO" 5
+fi
+ ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
+printf "%s\n" "$ac_cv_host" >&6; }
+case $ac_cv_host in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
+esac
+host=$ac_cv_host
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_host
+shift
+host_cpu=$1
+host_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+host_os=$*
+IFS=$ac_save_IFS
+case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
+
+
+
+
+
+
+
+
+
+
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="${ac_tool_prefix}gcc"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi ;;
+esac
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
+else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+  ac_ct_CC=$CC
+  # Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_CC+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CC="gcc"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi ;;
+esac
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+printf "%s\n" "$ac_ct_CC" >&6; }
+else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+  if test "x$ac_ct_CC" = x; then
+    CC=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    CC=$ac_ct_CC
+  fi
+else
+  CC="$ac_cv_prog_CC"
+fi
+
+if test -z "$CC"; then
+          if test -n "$ac_tool_prefix"; then
+    # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="${ac_tool_prefix}cc"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi ;;
+esac
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
+else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+  fi
+fi
+if test -z "$CC"; then
+  # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  ac_prog_rejected=no
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    if test "$as_dir$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+       ac_prog_rejected=yes
+       continue
+     fi
+    ac_cv_prog_CC="cc"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+if test $ac_prog_rejected = yes; then
+  # We found a bogon in the path, so make sure we never use it.
+  set dummy $ac_cv_prog_CC
+  shift
+  if test $# != 0; then
+    # We chose a different compiler from the bogus one.
+    # However, it has the same basename, so the bogon will be chosen
+    # first if we set CC to just the basename; use the full file name.
+    shift
+    ac_cv_prog_CC="$as_dir$ac_word${1+' '}$@"
+  fi
+fi
+fi ;;
+esac
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
+else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+fi
+if test -z "$CC"; then
+  if test -n "$ac_tool_prefix"; then
+  for ac_prog in cl.exe
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi ;;
+esac
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
+else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+    test -n "$CC" && break
+  done
+fi
+if test -z "$CC"; then
+  ac_ct_CC=$CC
+  for ac_prog in cl.exe
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_CC+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CC="$ac_prog"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi ;;
+esac
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+printf "%s\n" "$ac_ct_CC" >&6; }
+else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+  test -n "$ac_ct_CC" && break
+done
+
+  if test "x$ac_ct_CC" = x; then
+    CC=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    CC=$ac_ct_CC
+  fi
+fi
+
+fi
+if test -z "$CC"; then
+  if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args.
+set dummy ${ac_tool_prefix}clang; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="${ac_tool_prefix}clang"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi ;;
+esac
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
+else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+  ac_ct_CC=$CC
+  # Extract the first word of "clang", so it can be a program name with args.
+set dummy clang; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_CC+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CC="clang"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi ;;
+esac
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+printf "%s\n" "$ac_ct_CC" >&6; }
+else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+  if test "x$ac_ct_CC" = x; then
+    CC=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    CC=$ac_ct_CC
+  fi
+else
+  CC="$ac_cv_prog_CC"
+fi
+
+fi
+
+
+test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+as_fn_error $? "no acceptable C compiler found in \$PATH
+See 'config.log' for more details" "$LINENO" 5; }
+
+# Provide some information about the compiler.
+printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion -version; do
+  { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+printf "%s\n" "$ac_try_echo"; } >&5
+  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    sed '10a\
+... rest of stderr output deleted ...
+         10q' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+  fi
+  rm -f conftest.er1 conftest.err
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+done
+
+EXEEXT=
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
+printf %s "checking for suffix of object files... " >&6; }
+if test ${ac_cv_objext+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main (void)
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.o conftest.obj
+if { { ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+printf "%s\n" "$ac_try_echo"; } >&5
+  (eval "$ac_compile") 2>&5
+  ac_status=$?
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+then :
+  for ac_file in conftest.o conftest.obj conftest.*; do
+  test -f "$ac_file" || continue;
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
+    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+       break;;
+  esac
+done
+else case e in #(
+  e) printf "%s\n" "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+as_fn_error $? "cannot compute suffix of object files: cannot compile
+See 'config.log' for more details" "$LINENO" 5; } ;;
+esac
+fi
+rm -f conftest.$ac_cv_objext conftest.$ac_ext ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
+printf "%s\n" "$ac_cv_objext" >&6; }
+OBJEXT=$ac_cv_objext
+ac_objext=$OBJEXT
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5
+printf %s "checking whether the compiler supports GNU C... " >&6; }
+if test ${ac_cv_c_compiler_gnu+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main (void)
+{
+#ifndef __GNUC__
+       choke me
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  ac_compiler_gnu=yes
+else case e in #(
+  e) ac_compiler_gnu=no ;;
+esac
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+ ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
+printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; }
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+if test $ac_compiler_gnu = yes; then
+  GCC=yes
+else
+  GCC=
+fi
+ac_test_CFLAGS=${CFLAGS+y}
+ac_save_CFLAGS=$CFLAGS
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+printf %s "checking whether $CC accepts -g... " >&6; }
+if test ${ac_cv_prog_cc_g+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) ac_save_c_werror_flag=$ac_c_werror_flag
+   ac_c_werror_flag=yes
+   ac_cv_prog_cc_g=no
+   CFLAGS="-g"
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main (void)
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  ac_cv_prog_cc_g=yes
+else case e in #(
+  e) CFLAGS=""
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main (void)
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+
+else case e in #(
+  e) ac_c_werror_flag=$ac_save_c_werror_flag
+	 CFLAGS="-g"
+	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main (void)
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  ac_cv_prog_cc_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+   ac_c_werror_flag=$ac_save_c_werror_flag ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
+printf "%s\n" "$ac_cv_prog_cc_g" >&6; }
+if test $ac_test_CFLAGS; then
+  CFLAGS=$ac_save_CFLAGS
+elif test $ac_cv_prog_cc_g = yes; then
+  if test "$GCC" = yes; then
+    CFLAGS="-g -O2"
+  else
+    CFLAGS="-g"
+  fi
+else
+  if test "$GCC" = yes; then
+    CFLAGS="-O2"
+  else
+    CFLAGS=
+  fi
+fi
+ac_prog_cc_stdc=no
+if test x$ac_prog_cc_stdc = xno
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5
+printf %s "checking for $CC option to enable C11 features... " >&6; }
+if test ${ac_cv_prog_cc_c11+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) ac_cv_prog_cc_c11=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$ac_c_conftest_c11_program
+_ACEOF
+for ac_arg in '' -std=gnu11
+do
+  CC="$ac_save_CC $ac_arg"
+  if ac_fn_c_try_compile "$LINENO"
+then :
+  ac_cv_prog_cc_c11=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam
+  test "x$ac_cv_prog_cc_c11" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC ;;
+esac
+fi
+
+if test "x$ac_cv_prog_cc_c11" = xno
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+printf "%s\n" "unsupported" >&6; }
+else case e in #(
+  e) if test "x$ac_cv_prog_cc_c11" = x
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+printf "%s\n" "none needed" >&6; }
+else case e in #(
+  e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5
+printf "%s\n" "$ac_cv_prog_cc_c11" >&6; }
+     CC="$CC $ac_cv_prog_cc_c11" ;;
+esac
+fi
+  ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11
+  ac_prog_cc_stdc=c11 ;;
+esac
+fi
+fi
+if test x$ac_prog_cc_stdc = xno
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5
+printf %s "checking for $CC option to enable C99 features... " >&6; }
+if test ${ac_cv_prog_cc_c99+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) ac_cv_prog_cc_c99=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$ac_c_conftest_c99_program
+_ACEOF
+for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99=
+do
+  CC="$ac_save_CC $ac_arg"
+  if ac_fn_c_try_compile "$LINENO"
+then :
+  ac_cv_prog_cc_c99=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam
+  test "x$ac_cv_prog_cc_c99" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC ;;
+esac
+fi
+
+if test "x$ac_cv_prog_cc_c99" = xno
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+printf "%s\n" "unsupported" >&6; }
+else case e in #(
+  e) if test "x$ac_cv_prog_cc_c99" = x
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+printf "%s\n" "none needed" >&6; }
+else case e in #(
+  e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5
+printf "%s\n" "$ac_cv_prog_cc_c99" >&6; }
+     CC="$CC $ac_cv_prog_cc_c99" ;;
+esac
+fi
+  ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99
+  ac_prog_cc_stdc=c99 ;;
+esac
+fi
+fi
+if test x$ac_prog_cc_stdc = xno
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5
+printf %s "checking for $CC option to enable C89 features... " >&6; }
+if test ${ac_cv_prog_cc_c89+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$ac_c_conftest_c89_program
+_ACEOF
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+  CC="$ac_save_CC $ac_arg"
+  if ac_fn_c_try_compile "$LINENO"
+then :
+  ac_cv_prog_cc_c89=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam
+  test "x$ac_cv_prog_cc_c89" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC ;;
+esac
+fi
+
+if test "x$ac_cv_prog_cc_c89" = xno
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+printf "%s\n" "unsupported" >&6; }
+else case e in #(
+  e) if test "x$ac_cv_prog_cc_c89" = x
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+printf "%s\n" "none needed" >&6; }
+else case e in #(
+  e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+printf "%s\n" "$ac_cv_prog_cc_c89" >&6; }
+     CC="$CC $ac_cv_prog_cc_c89" ;;
+esac
+fi
+  ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89
+  ac_prog_cc_stdc=c89 ;;
+esac
+fi
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+if test $host != $build; then
+  for ac_prog in gcc cc
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_BUILD_CC+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) if test -n "$BUILD_CC"; then
+  ac_cv_prog_BUILD_CC="$BUILD_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_prog_BUILD_CC="$ac_prog"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi ;;
+esac
+fi
+BUILD_CC=$ac_cv_prog_BUILD_CC
+if test -n "$BUILD_CC"; then
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $BUILD_CC" >&5
+printf "%s\n" "$BUILD_CC" >&6; }
+else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+  test -n "$BUILD_CC" && break
+done
+
+fi
+
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+  CPP=
+fi
+if test -z "$CPP"; then
+  CPP="$CC -E"
+fi
+
+
+# This will get text that should go into config.make.
+config_vars=
+
+# Check whether --enable-static-c++-tests was given.
+if test ${enable_static_c___tests+y}
+then :
+  enableval=$enable_static_c___tests; static_cxx_tests=$enableval
+else case e in #(
+  e) static_cxx_tests=yes ;;
+esac
+fi
+
+config_vars="$config_vars
+static-cxx-tests = $static_cxx_tests"
+
+# Check whether --enable-static-c++-link-check was given.
+if test ${enable_static_c___link_check+y}
+then :
+  enableval=$enable_static_c___link_check; static_cxx_link_check=$enableval
+else case e in #(
+  e) static_cxx_link_check=yes ;;
+esac
+fi
+
+
+# We need the C++ compiler only for testing.
+
+
+
+
+
+
+ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+if test -z "$CXX"; then
+  if test -n "$CCC"; then
+    CXX=$CCC
+  else
+    if test -n "$ac_tool_prefix"; then
+  for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC clang++
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CXX+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) if test -n "$CXX"; then
+  ac_cv_prog_CXX="$CXX" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi ;;
+esac
+fi
+CXX=$ac_cv_prog_CXX
+if test -n "$CXX"; then
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5
+printf "%s\n" "$CXX" >&6; }
+else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+    test -n "$CXX" && break
+  done
+fi
+if test -z "$CXX"; then
+  ac_ct_CXX=$CXX
+  for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC clang++
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_CXX+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) if test -n "$ac_ct_CXX"; then
+  ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CXX="$ac_prog"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi ;;
+esac
+fi
+ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
+if test -n "$ac_ct_CXX"; then
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5
+printf "%s\n" "$ac_ct_CXX" >&6; }
+else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+  test -n "$ac_ct_CXX" && break
+done
+
+  if test "x$ac_ct_CXX" = x; then
+    CXX="g++"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    CXX=$ac_ct_CXX
+  fi
+fi
+
+  fi
+fi
+# Provide some information about the compiler.
+printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+  { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+printf "%s\n" "$ac_try_echo"; } >&5
+  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    sed '10a\
+... rest of stderr output deleted ...
+         10q' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+  fi
+  rm -f conftest.er1 conftest.err
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+done
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C++" >&5
+printf %s "checking whether the compiler supports GNU C++... " >&6; }
+if test ${ac_cv_cxx_compiler_gnu+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main (void)
+{
+#ifndef __GNUC__
+       choke me
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"
+then :
+  ac_compiler_gnu=yes
+else case e in #(
+  e) ac_compiler_gnu=no ;;
+esac
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
+ ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5
+printf "%s\n" "$ac_cv_cxx_compiler_gnu" >&6; }
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+if test $ac_compiler_gnu = yes; then
+  GXX=yes
+else
+  GXX=
+fi
+ac_test_CXXFLAGS=${CXXFLAGS+y}
+ac_save_CXXFLAGS=$CXXFLAGS
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5
+printf %s "checking whether $CXX accepts -g... " >&6; }
+if test ${ac_cv_prog_cxx_g+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) ac_save_cxx_werror_flag=$ac_cxx_werror_flag
+   ac_cxx_werror_flag=yes
+   ac_cv_prog_cxx_g=no
+   CXXFLAGS="-g"
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main (void)
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"
+then :
+  ac_cv_prog_cxx_g=yes
+else case e in #(
+  e) CXXFLAGS=""
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main (void)
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"
+then :
+
+else case e in #(
+  e) ac_cxx_werror_flag=$ac_save_cxx_werror_flag
+	 CXXFLAGS="-g"
+	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main (void)
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"
+then :
+  ac_cv_prog_cxx_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+   ac_cxx_werror_flag=$ac_save_cxx_werror_flag ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5
+printf "%s\n" "$ac_cv_prog_cxx_g" >&6; }
+if test $ac_test_CXXFLAGS; then
+  CXXFLAGS=$ac_save_CXXFLAGS
+elif test $ac_cv_prog_cxx_g = yes; then
+  if test "$GXX" = yes; then
+    CXXFLAGS="-g -O2"
+  else
+    CXXFLAGS="-g"
+  fi
+else
+  if test "$GXX" = yes; then
+    CXXFLAGS="-O2"
+  else
+    CXXFLAGS=
+  fi
+fi
+ac_prog_cxx_stdcxx=no
+if test x$ac_prog_cxx_stdcxx = xno
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CXX option to enable C++11 features" >&5
+printf %s "checking for $CXX option to enable C++11 features... " >&6; }
+if test ${ac_cv_prog_cxx_cxx11+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) ac_cv_prog_cxx_cxx11=no
+ac_save_CXX=$CXX
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$ac_cxx_conftest_cxx11_program
+_ACEOF
+for ac_arg in '' -std=gnu++11 -std=gnu++0x -std=c++11 -std=c++0x -qlanglvl=extended0x -AA
+do
+  CXX="$ac_save_CXX $ac_arg"
+  if ac_fn_cxx_try_compile "$LINENO"
+then :
+  ac_cv_prog_cxx_cxx11=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam
+  test "x$ac_cv_prog_cxx_cxx11" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CXX=$ac_save_CXX ;;
+esac
+fi
+
+if test "x$ac_cv_prog_cxx_cxx11" = xno
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+printf "%s\n" "unsupported" >&6; }
+else case e in #(
+  e) if test "x$ac_cv_prog_cxx_cxx11" = x
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+printf "%s\n" "none needed" >&6; }
+else case e in #(
+  e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_cxx11" >&5
+printf "%s\n" "$ac_cv_prog_cxx_cxx11" >&6; }
+     CXX="$CXX $ac_cv_prog_cxx_cxx11" ;;
+esac
+fi
+  ac_cv_prog_cxx_stdcxx=$ac_cv_prog_cxx_cxx11
+  ac_prog_cxx_stdcxx=cxx11 ;;
+esac
+fi
+fi
+if test x$ac_prog_cxx_stdcxx = xno
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CXX option to enable C++98 features" >&5
+printf %s "checking for $CXX option to enable C++98 features... " >&6; }
+if test ${ac_cv_prog_cxx_cxx98+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) ac_cv_prog_cxx_cxx98=no
+ac_save_CXX=$CXX
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$ac_cxx_conftest_cxx98_program
+_ACEOF
+for ac_arg in '' -std=gnu++98 -std=c++98 -qlanglvl=extended -AA
+do
+  CXX="$ac_save_CXX $ac_arg"
+  if ac_fn_cxx_try_compile "$LINENO"
+then :
+  ac_cv_prog_cxx_cxx98=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam
+  test "x$ac_cv_prog_cxx_cxx98" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CXX=$ac_save_CXX ;;
+esac
+fi
+
+if test "x$ac_cv_prog_cxx_cxx98" = xno
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+printf "%s\n" "unsupported" >&6; }
+else case e in #(
+  e) if test "x$ac_cv_prog_cxx_cxx98" = x
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+printf "%s\n" "none needed" >&6; }
+else case e in #(
+  e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_cxx98" >&5
+printf "%s\n" "$ac_cv_prog_cxx_cxx98" >&6; }
+     CXX="$CXX $ac_cv_prog_cxx_cxx98" ;;
+esac
+fi
+  ac_cv_prog_cxx_stdcxx=$ac_cv_prog_cxx_cxx98
+  ac_prog_cxx_stdcxx=cxx98 ;;
+esac
+fi
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+# It's useless to us if it can't link programs (e.g. missing -lstdc++).
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CXX can link programs" >&5
+printf %s "checking whether $CXX can link programs... " >&6; }
+if test ${libc_cv_cxx_link_ok+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+# Default, dynamic case.
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main (void)
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"
+then :
+  libc_cv_cxx_link_ok=yes
+else case e in #(
+  e) libc_cv_cxx_link_ok=no ;;
+esac
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
+    conftest$ac_exeext conftest.$ac_ext
+if test $static_cxx_link_check$static_cxx_tests = yesyes; then
+  # Static case.
+  old_LDFLAGS="$LDFLAGS"
+  LDFLAGS="$LDFLAGS -static"
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <iostream>
+
+int
+main()
+{
+  std::cout << "Hello, world!";
+  return 0;
+}
+
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"
+then :
+
+else case e in #(
+  e) libc_cv_cxx_link_ok=no ;;
+esac
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
+    conftest$ac_exeext conftest.$ac_ext
+  LDFLAGS="$old_LDFLAGS"
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+ ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_cxx_link_ok" >&5
+printf "%s\n" "$libc_cv_cxx_link_ok" >&6; }
+if test $libc_cv_cxx_link_ok != yes
+then :
+  CXX=
+fi
+
+if test "`cd $srcdir; pwd -P`" = "`pwd -P`"; then
+  as_fn_error $? "you must configure in a separate build directory" "$LINENO" 5
+fi
+
+# Check for a --with-gd argument and set libgd-LDFLAGS in config.make.
+
+# Check whether --with-gd was given.
+if test ${with_gd+y}
+then :
+  withval=$with_gd; case "$with_gd" in
+yes|''|no) ;;
+*) libgd_include="-I$withval/include"
+   libgd_ldflags="-L$withval/lib" ;;
+esac
+
+fi
+
+
+# Check whether --with-gd-include was given.
+if test ${with_gd_include+y}
+then :
+  withval=$with_gd_include; case "$with_gd_include" in
+''|no) ;;
+*) libgd_include="-I$withval" ;;
+esac
+
+fi
+
+
+# Check whether --with-gd-lib was given.
+if test ${with_gd_lib+y}
+then :
+  withval=$with_gd_lib; case "$with_gd_lib" in
+''|no) ;;
+*) libgd_ldflags="-L$withval" ;;
+esac
+
+fi
+
+
+if test -n "$libgd_include"; then
+  config_vars="$config_vars
+CFLAGS-memusagestat.c = $libgd_include"
+fi
+if test -n "$libgd_ldflags"; then
+  config_vars="$config_vars
+libgd-LDFLAGS = $libgd_ldflags"
+fi
+
+
+# Check whether --with-binutils was given.
+if test ${with_binutils+y}
+then :
+  withval=$with_binutils; path_binutils=$withval
+else case e in #(
+  e) path_binutils='' ;;
+esac
+fi
+
+
+# Check whether --with-selinux was given.
+if test ${with_selinux+y}
+then :
+  withval=$with_selinux; with_selinux=$withval
+else case e in #(
+  e) with_selinux=auto ;;
+esac
+fi
+
+
+
+# Check whether --with-headers was given.
+if test ${with_headers+y}
+then :
+  withval=$with_headers; sysheaders=$withval
+else case e in #(
+  e) sysheaders='' ;;
+esac
+fi
+
+
+
+
+# Check whether --with-nonshared-cflags was given.
+if test ${with_nonshared_cflags+y}
+then :
+  withval=$with_nonshared_cflags; extra_nonshared_cflags=$withval
+else case e in #(
+  e) extra_nonshared_cflags= ;;
+esac
+fi
+
+
+
+# Check whether --with-rtld-early-cflags was given.
+if test ${with_rtld_early_cflags+y}
+then :
+  withval=$with_rtld_early_cflags; rtld_early_cflags=$withval
+else case e in #(
+  e) rtld_early_cflags= ;;
+esac
+fi
+
+
+
+
+# Check whether --with-timeoutfactor was given.
+if test ${with_timeoutfactor+y}
+then :
+  withval=$with_timeoutfactor; timeoutfactor=$withval
+else case e in #(
+  e) timeoutfactor=1 ;;
+esac
+fi
+
+printf "%s\n" "#define TIMEOUTFACTOR $timeoutfactor" >>confdefs.h
+
+
+man_pages_version=6.9.1
+
+
+# Check whether --with-man-pages was given.
+if test ${with_man_pages+y}
+then :
+  withval=$with_man_pages; man_pages_version=$withval
+fi
+
+
+
+# Check whether --enable-sanity-checks was given.
+if test ${enable_sanity_checks+y}
+then :
+  enableval=$enable_sanity_checks; enable_sanity=$enableval
+else case e in #(
+  e) enable_sanity=yes ;;
+esac
+fi
+
+
+# Check whether --enable-shared was given.
+if test ${enable_shared+y}
+then :
+  enableval=$enable_shared; shared=$enableval
+else case e in #(
+  e) shared=yes ;;
+esac
+fi
+
+# Check whether --enable-profile was given.
+if test ${enable_profile+y}
+then :
+  enableval=$enable_profile; profile=$enableval
+else case e in #(
+  e) profile=no ;;
+esac
+fi
+
+# Check whether --enable-default-pie was given.
+if test ${enable_default_pie+y}
+then :
+  enableval=$enable_default_pie; default_pie=$enableval
+else case e in #(
+  e) default_pie=yes ;;
+esac
+fi
+
+# Check whether --enable-timezone-tools was given.
+if test ${enable_timezone_tools+y}
+then :
+  enableval=$enable_timezone_tools; enable_timezone_tools=$enableval
+else case e in #(
+  e) enable_timezone_tools=yes ;;
+esac
+fi
+
+
+
+# Check whether --enable-hardcoded-path-in-tests was given.
+if test ${enable_hardcoded_path_in_tests+y}
+then :
+  enableval=$enable_hardcoded_path_in_tests; hardcoded_path_in_tests=$enableval
+else case e in #(
+  e) hardcoded_path_in_tests=no ;;
+esac
+fi
+
+
+
+# Check whether --enable-hidden-plt was given.
+if test ${enable_hidden_plt+y}
+then :
+  enableval=$enable_hidden_plt; hidden=$enableval
+else case e in #(
+  e) hidden=yes ;;
+esac
+fi
+
+if test "x$hidden" = xno; then
+  printf "%s\n" "#define NO_HIDDEN 1" >>confdefs.h
+
+fi
+
+# Check whether --enable-bind-now was given.
+if test ${enable_bind_now+y}
+then :
+  enableval=$enable_bind_now; bindnow=$enableval
+else case e in #(
+  e) bindnow=no ;;
+esac
+fi
+
+
+if test "x$bindnow" = xyes; then
+  printf "%s\n" "#define BIND_NOW 1" >>confdefs.h
+
+fi
+
+# Check whether --enable-stack-protector was given.
+if test ${enable_stack_protector+y}
+then :
+  enableval=$enable_stack_protector; enable_stack_protector=$enableval
+else case e in #(
+  e) enable_stack_protector=no ;;
+esac
+fi
+
+case "$enable_stack_protector" in
+all|yes|no|strong) ;;
+*) as_fn_error $? "Not a valid argument for --enable-stack-protector: \"$enable_stack_protector\"" "$LINENO" 5;;
+esac
+
+# Check whether --enable-static-nss was given.
+if test ${enable_static_nss+y}
+then :
+  enableval=$enable_static_nss; static_nss=$enableval
+else case e in #(
+  e) static_nss=no ;;
+esac
+fi
+
+if test x"$static_nss" = xyes || test x"$shared" = xno; then
+  static_nss=yes
+  printf "%s\n" "#define DO_STATIC_NSS 1" >>confdefs.h
+
+fi
+
+# Check whether --enable-force-install was given.
+if test ${enable_force_install+y}
+then :
+  enableval=$enable_force_install; force_install=$enableval
+else case e in #(
+  e) force_install=yes ;;
+esac
+fi
+
+
+
+# Check whether --enable-maintainer-mode was given.
+if test ${enable_maintainer_mode+y}
+then :
+  enableval=$enable_maintainer_mode; maintainer=$enableval
+else case e in #(
+  e) maintainer=no ;;
+esac
+fi
+
+
+# Check whether --enable-kernel was given.
+if test ${enable_kernel+y}
+then :
+  enableval=$enable_kernel; minimum_kernel=$enableval
+fi
+
+if test "$minimum_kernel" = yes || test "$minimum_kernel" = no; then
+  # Better nothing than this.
+  minimum_kernel=""
+else
+  if test "$minimum_kernel" = current; then
+    minimum_kernel=`uname -r 2>/dev/null` || minimum_kernel=
+  fi
+fi
+
+# Check whether --enable-werror was given.
+if test ${enable_werror+y}
+then :
+  enableval=$enable_werror; enable_werror=$enableval
+else case e in #(
+  e) enable_werror=yes ;;
+esac
+fi
+
+
+
+# Check whether --enable-multi-arch was given.
+if test ${enable_multi_arch+y}
+then :
+  enableval=$enable_multi_arch; multi_arch=$enableval
+else case e in #(
+  e) multi_arch=default ;;
+esac
+fi
+
+
+# Check whether --enable-memory-tagging was given.
+if test ${enable_memory_tagging+y}
+then :
+  enableval=$enable_memory_tagging; memory_tagging=$enableval
+else case e in #(
+  e) memory_tagging=no ;;
+esac
+fi
+
+if test "$memory_tagging" = yes; then
+  # Only enable this on architectures that support it.
+  case $host_cpu in
+    aarch64)
+      printf "%s\n" "#define USE_MTAG 1" >>confdefs.h
+
+      ;;
+  esac
+fi
+
+
+# Check whether --enable-systemtap was given.
+if test ${enable_systemtap+y}
+then :
+  enableval=$enable_systemtap; systemtap=$enableval
+else case e in #(
+  e) systemtap=no ;;
+esac
+fi
+
+if test "x$systemtap" != xno; then
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for systemtap static probe support" >&5
+printf %s "checking for systemtap static probe support... " >&6; }
+if test ${libc_cv_sdt+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e)   old_CFLAGS="$CFLAGS"
+  CFLAGS="-std=gnu11 $CFLAGS"
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/sdt.h>
+void foo (int i, void *p)
+{
+  asm ("" STAP_PROBE_ASM (foo, bar, STAP_PROBE_ASM_TEMPLATE (2)) ""
+       :: STAP_PROBE_ASM_OPERANDS (2, i, p));
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  libc_cv_sdt=yes
+else case e in #(
+  e) libc_cv_sdt=no ;;
+esac
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+  CFLAGS="$old_CFLAGS" ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_sdt" >&5
+printf "%s\n" "$libc_cv_sdt" >&6; }
+  if test $libc_cv_sdt = yes; then
+    printf "%s\n" "#define USE_STAP_PROBE 1" >>confdefs.h
+
+  elif test "x$systemtap" != xauto; then
+    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+as_fn_error $? "systemtap support needs sys/sdt.h with asm support
+See 'config.log' for more details" "$LINENO" 5; }
+  fi
+fi
+
+# Check whether --enable-build-nscd was given.
+if test ${enable_build_nscd+y}
+then :
+  enableval=$enable_build_nscd; build_nscd=$enableval
+else case e in #(
+  e) build_nscd=default ;;
+esac
+fi
+
+
+
+# Note the use of $use_nscd is near the bottom of the file.
+# Check whether --enable-nscd was given.
+if test ${enable_nscd+y}
+then :
+  enableval=$enable_nscd; use_nscd=$enableval
+else case e in #(
+  e) use_nscd=yes ;;
+esac
+fi
+
+
+# Check whether --enable-pt_chown was given.
+if test ${enable_pt_chown+y}
+then :
+  enableval=$enable_pt_chown; build_pt_chown=$enableval
+else case e in #(
+  e) build_pt_chown=no ;;
+esac
+fi
+
+
+if test "$build_pt_chown" = yes; then
+  printf "%s\n" "#define HAVE_PT_CHOWN 1" >>confdefs.h
+
+fi
+
+# The abi-tags file uses a fairly simplistic model for name recognition that
+# can't distinguish i486-pc-linux-gnu fully from i486-pc-gnu.  So we mutate a
+# $host_os of `gnu*' here to be `gnu-gnu*' just so that it can tell.
+# This doesn't get used much beyond that, so it's fairly safe.
+case "$host_os" in
+linux*)
+  ;;
+gnu*)
+  host_os=`echo $host_os | sed -e 's/gnu/gnu-gnu/'`
+  ;;
+esac
+
+# Check whether --enable-mathvec was given.
+if test ${enable_mathvec+y}
+then :
+  enableval=$enable_mathvec; build_mathvec=$enableval
+else case e in #(
+  e) build_mathvec=notset ;;
+esac
+fi
+
+
+
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main (void)
+{
+
+#ifndef __CET__
+# error no CET compiler support
+#endif
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"
+then :
+  libc_cv_compiler_default_cet=yes
+else case e in #(
+  e) libc_cv_compiler_default_cet=no ;;
+esac
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+# Check whether --enable-cet was given.
+if test ${enable_cet+y}
+then :
+  enableval=$enable_cet; enable_cet=$enableval
+else case e in #(
+  e) enable_cet=$libc_cv_compiler_default_cet ;;
+esac
+fi
+
+
+# Check whether --enable-scv was given.
+if test ${enable_scv+y}
+then :
+  enableval=$enable_scv; use_scv=$enableval
+else case e in #(
+  e) use_scv=yes ;;
+esac
+fi
+
+
+if test "$use_scv" != "no"
+then :
+  printf "%s\n" "#define USE_PPC_SCV 1" >>confdefs.h
+
+fi
+
+# Check whether --enable-fortify-source was given.
+if test ${enable_fortify_source+y}
+then :
+  enableval=$enable_fortify_source; enable_fortify_source=$enableval
+else case e in #(
+  e) enable_fortify_source=no ;;
+esac
+fi
+
+case "$enable_fortify_source" in
+1|2|3|no|yes) ;;
+*) as_fn_error $? "Not a valid argument for --enable-fortify-source: \"$enable_fortify_source\"" "$LINENO" 5;;
+esac
+
+# We keep the original values in `$config_*' and never modify them, so we
+# can write them unchanged into config.make.  Everything else uses
+# $machine, $vendor, and $os, and changes them whenever convenient.
+config_machine=$host_cpu config_vendor=$host_vendor config_os=$host_os
+
+# Don't allow vendor == "unknown"
+test "$config_vendor" = unknown && config_vendor=
+config_os="`echo $config_os | sed 's/^unknown-//'`"
+
+# Some configurations imply other options.
+elf=yes
+
+# The configure fragment of a port can modify these to supplement
+# or override the table in the case statement below.  No fragment should
+# ever change the config_* variables, however.
+machine=$config_machine
+vendor=$config_vendor
+os=$config_os
+base_os=''
+
+submachine=
+
+# Check whether --with-cpu was given.
+if test ${with_cpu+y}
+then :
+  withval=$with_cpu;   case "$withval" in
+  yes|'') as_fn_error $? "--with-cpu requires an argument" "$LINENO" 5 ;;
+  no) ;;
+  *) submachine="$withval" ;;
+  esac
+
+fi
+
+
+# An preconfigure script can set this when it wants to disable the sanity
+# check below.
+libc_config_ok=no
+
+# A preconfigure script for a system that may or may not use fpu
+# sysdeps directories sets this to a preprocessor conditional for
+# whether to use such directories.
+with_fp_cond=1
+
+# A preconfigure script may define another name to TLS descriptor variant
+mtls_descriptor=gnu2
+
+if frags=`ls -d $srcdir/sysdeps/*/preconfigure 2> /dev/null`
+then
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sysdeps preconfigure fragments" >&5
+printf %s "checking for sysdeps preconfigure fragments... " >&6; }
+  for frag in $frags; do
+    name=`echo "$frag" | sed 's@/[^/]*$@@;s@^.*/@@'`
+    echo $ECHO_N "$name $ECHO_C" >&6
+    . "$frag"
+  done
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5
+printf "%s\n" "" >&6; }
+fi
+
+
+###
+### By using the undocumented --enable-hacker-mode option for configure
+### one can skip this test to make the configuration not fail for unsupported
+### platforms.
+###
+if test -z "$enable_hacker_mode" && test x"$libc_config_ok" != xyes; then
+  case "$machine-$host_os" in
+  *-linux* | *-gnu*)
+    ;;
+  *)
+    as_fn_error $? "
+*** The GNU C library is currently unavailable for this platform.
+*** If you are interested in seeing glibc on this platform visit
+*** the \"How to submit a new port\" in the wiki:
+***   https://sourceware.org/glibc/wiki/#Development
+*** and join the community!" "$LINENO" 5
+    ;;
+  esac
+fi
+
+# Set base_machine if not set by a preconfigure fragment.
+test -n "$base_machine" || base_machine=$machine
+
+
+### Locate tools.
+
+
+  # Find a good install program.  We prefer a C program (faster),
+# so one script is as good as another.  But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AmigaOS /C/install, which installs bootblocks on floppy discs
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# OS/2's system install, which has a completely different semantic
+# ./install, which can be erroneously created by make from ./install.sh.
+# Reject install programs that cannot install multiple files.
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
+printf %s "checking for a BSD-compatible install... " >&6; }
+if test -z "$INSTALL"; then
+if test ${ac_cv_path_install+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    # Account for fact that we put trailing slashes in our PATH walk.
+case $as_dir in #((
+  ./ | /[cC]/* | \
+  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+  ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
+  /usr/ucb/* ) ;;
+  *)
+    # OSF1 and SCO ODT 3.0 have their own names for install.
+    # Don't use installbsd from OSF since it installs stuff as root
+    # by default.
+    for ac_prog in ginstall scoinst install; do
+      for ac_exec_ext in '' $ac_executable_extensions; do
+	if as_fn_executable_p "$as_dir$ac_prog$ac_exec_ext"; then
+	  if test $ac_prog = install &&
+	    grep dspmsg "$as_dir$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+	    # AIX install.  It has an incompatible calling convention.
+	    :
+	  elif test $ac_prog = install &&
+	    grep pwplus "$as_dir$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+	    # program-specific install script used by HP pwplus--don't use.
+	    :
+	  else
+	    rm -rf conftest.one conftest.two conftest.dir
+	    echo one > conftest.one
+	    echo two > conftest.two
+	    mkdir conftest.dir
+	    if "$as_dir$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir/" &&
+	      test -s conftest.one && test -s conftest.two &&
+	      test -s conftest.dir/conftest.one &&
+	      test -s conftest.dir/conftest.two
+	    then
+	      ac_cv_path_install="$as_dir$ac_prog$ac_exec_ext -c"
+	      break 3
+	    fi
+	  fi
+	fi
+      done
+    done
+    ;;
+esac
+
+  done
+IFS=$as_save_IFS
+
+rm -rf conftest.one conftest.two conftest.dir
+ ;;
+esac
+fi
+  if test ${ac_cv_path_install+y}; then
+    INSTALL=$ac_cv_path_install
+  else
+    # As a last resort, use the slow shell script.  Don't cache a
+    # value for INSTALL within a source directory, because that will
+    # break other packages using the cache if that directory is
+    # removed, or if the value is a relative name.
+    INSTALL=$ac_install_sh
+  fi
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
+printf "%s\n" "$INSTALL" >&6; }
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+if test "$INSTALL" = "${srcdir}/scripts/install-sh -c"; then
+  # The makefiles need to use a different form to find it in $srcdir.
+  INSTALL='\$(..)./scripts/install-sh -c'
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
+printf %s "checking whether ln -s works... " >&6; }
+LN_S=$as_ln_s
+if test "$LN_S" = "ln -s"; then
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
+else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
+printf "%s\n" "no, using $LN_S" >&6; }
+fi
+
+
+# Was a --with-binutils option given?
+if test -n "$path_binutils"; then
+    # Make absolute; ensure a single trailing slash.
+    path_binutils=`(cd $path_binutils; pwd) | sed 's%/*$%/%'`
+    CC="$CC -B$path_binutils"
+fi
+case "$CC" in
+    *fuse-ld=lld*) LDNAME=ld.lld;;
+    *)             LDNAME=ld;;
+esac
+if test -z "$LD"; then
+    LD=`$CC -print-prog-name=$LDNAME`
+fi
+if test -z "$AR"; then
+    AR=`$CC -print-prog-name=ar`
+fi
+
+if test -z "$OBJCOPY"; then
+    OBJCOPY=`$CC -print-prog-name=objcopy`
+fi
+
+if test -z "$GPROF"; then
+    GPROF=`$CC -print-prog-name=gprof`
+fi
+
+if test -z "$READELF"; then
+    READELF=`$CC -print-prog-name=readelf`
+fi
+
+if test -z "$OBJDUMP"; then
+    OBJDUMP=`$CC -print-prog-name=objdump`
+fi
+
+if test -z "$NM"; then
+    NM=`$CC -print-prog-name=nm`
+fi
+
+
+
+# Accept binutils 2.25 or newer.
+libc_cv_with_lld=no
+case $($LD --version) in
+  "GNU gold"*)
+  # Accept gold 1.14 or higher
+    for ac_prog in $LD
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_LD+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) if test -n "$LD"; then
+  ac_cv_prog_LD="$LD" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_prog_LD="$ac_prog"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi ;;
+esac
+fi
+LD=$ac_cv_prog_LD
+if test -n "$LD"; then
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
+printf "%s\n" "$LD" >&6; }
+else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+  test -n "$LD" && break
+done
+
+if test -z "$LD"; then
+  ac_verc_fail=yes
+else
+  # Found it, now check the version.
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking version of $LD" >&5
+printf %s "checking version of $LD... " >&6; }
+  ac_prog_version=`$LD --version 2>&1 | sed -n 's/^.*GNU gold.* \([0-9][0-9]*\.[0-9.]*\).*$/\1/p'`
+  case $ac_prog_version in
+    '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
+    1.1[4-9]*|1.[2-9][0-9]*|1.1[0-9][0-9]*|[2-9].*|[1-9][0-9]*)
+       ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
+    *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
+
+  esac
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_prog_version" >&5
+printf "%s\n" "$ac_prog_version" >&6; }
+fi
+if test $ac_verc_fail = yes; then
+  LD=: critic_missing="$critic_missing GNU gold"
+fi
+
+    ;;
+  "LLD"*)
+  # Accept LLD 13.0.0 or higher
+    for ac_prog in $LD
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_LD+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) if test -n "$LD"; then
+  ac_cv_prog_LD="$LD" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_prog_LD="$ac_prog"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi ;;
+esac
+fi
+LD=$ac_cv_prog_LD
+if test -n "$LD"; then
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
+printf "%s\n" "$LD" >&6; }
+else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+  test -n "$LD" && break
+done
+
+if test -z "$LD"; then
+  ac_verc_fail=yes
+else
+  # Found it, now check the version.
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking version of $LD" >&5
+printf %s "checking version of $LD... " >&6; }
+  ac_prog_version=`$LD --version 2>&1 | sed -n 's/^.*LLD.* \([0-9][0-9]*\.[0-9.]*\).*$/\1/p'`
+  case $ac_prog_version in
+    '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
+    1[3-9].*|[2-9][0-9].*)
+       ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
+    *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
+
+  esac
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_prog_version" >&5
+printf "%s\n" "$ac_prog_version" >&6; }
+fi
+if test $ac_verc_fail = yes; then
+  LD=: critic_missing="$critic_missing LLD"
+fi
+
+    libc_cv_with_lld=yes
+    ;;
+  *)
+    for ac_prog in $LD
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_LD+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) if test -n "$LD"; then
+  ac_cv_prog_LD="$LD" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_prog_LD="$ac_prog"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi ;;
+esac
+fi
+LD=$ac_cv_prog_LD
+if test -n "$LD"; then
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
+printf "%s\n" "$LD" >&6; }
+else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+  test -n "$LD" && break
+done
+
+if test -z "$LD"; then
+  ac_verc_fail=yes
+else
+  # Found it, now check the version.
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking version of $LD" >&5
+printf %s "checking version of $LD... " >&6; }
+  ac_prog_version=`$LD --version 2>&1 | sed -n 's/^.*GNU ld.* \([0-9][0-9]*\.[0-9.]*\).*$/\1/p'`
+  case $ac_prog_version in
+    '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
+    2.1[0-9][0-9]*|2.2[5-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*)
+       ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
+    *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
+
+  esac
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_prog_version" >&5
+printf "%s\n" "$ac_prog_version" >&6; }
+fi
+if test $ac_verc_fail = yes; then
+  LD=: critic_missing="$critic_missing GNU ld"
+fi
+
+    ;;
+esac
+config_vars="$config_vars
+with-lld = $libc_cv_with_lld"
+
+# These programs are version sensitive.
+for ac_prog in gnumake gmake make
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_MAKE+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) if test -n "$MAKE"; then
+  ac_cv_prog_MAKE="$MAKE" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_prog_MAKE="$ac_prog"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi ;;
+esac
+fi
+MAKE=$ac_cv_prog_MAKE
+if test -n "$MAKE"; then
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MAKE" >&5
+printf "%s\n" "$MAKE" >&6; }
+else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+  test -n "$MAKE" && break
+done
+
+if test -z "$MAKE"; then
+  ac_verc_fail=yes
+else
+  # Found it, now check the version.
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking version of $MAKE" >&5
+printf %s "checking version of $MAKE... " >&6; }
+  ac_prog_version=`$MAKE --version 2>&1 | sed -n 's/^.*GNU Make[^0-9]*\([0-9][0-9.]*\).*$/\1/p'`
+  case $ac_prog_version in
+    '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
+    [4-9].* | [1-9][0-9]*)
+       ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
+    *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
+
+  esac
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_prog_version" >&5
+printf "%s\n" "$ac_prog_version" >&6; }
+fi
+if test $ac_verc_fail = yes; then
+  critic_missing="$critic_missing make"
+fi
+
+
+for ac_prog in gnumsgfmt gmsgfmt msgfmt
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_MSGFMT+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) if test -n "$MSGFMT"; then
+  ac_cv_prog_MSGFMT="$MSGFMT" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_prog_MSGFMT="$ac_prog"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi ;;
+esac
+fi
+MSGFMT=$ac_cv_prog_MSGFMT
+if test -n "$MSGFMT"; then
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5
+printf "%s\n" "$MSGFMT" >&6; }
+else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+  test -n "$MSGFMT" && break
+done
+
+if test -z "$MSGFMT"; then
+  ac_verc_fail=yes
+else
+  # Found it, now check the version.
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking version of $MSGFMT" >&5
+printf %s "checking version of $MSGFMT... " >&6; }
+  ac_prog_version=`$MSGFMT --version 2>&1 | sed -n 's/^.*GNU gettext.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
+  case $ac_prog_version in
+    '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
+    0.10.3[6-9]* | 0.10.[4-9][0-9]* | 0.1[1-9]* | 0.[2-9][0-9]* | [1-9].*)
+       ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
+    *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
+
+  esac
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_prog_version" >&5
+printf "%s\n" "$ac_prog_version" >&6; }
+fi
+if test $ac_verc_fail = yes; then
+  MSGFMT=: aux_missing="$aux_missing msgfmt"
+fi
+
+for ac_prog in makeinfo
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_MAKEINFO+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) if test -n "$MAKEINFO"; then
+  ac_cv_prog_MAKEINFO="$MAKEINFO" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_prog_MAKEINFO="$ac_prog"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi ;;
+esac
+fi
+MAKEINFO=$ac_cv_prog_MAKEINFO
+if test -n "$MAKEINFO"; then
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MAKEINFO" >&5
+printf "%s\n" "$MAKEINFO" >&6; }
+else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+  test -n "$MAKEINFO" && break
+done
+
+if test -z "$MAKEINFO"; then
+  ac_verc_fail=yes
+else
+  # Found it, now check the version.
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking version of $MAKEINFO" >&5
+printf %s "checking version of $MAKEINFO... " >&6; }
+  ac_prog_version=`$MAKEINFO --version 2>&1 | sed -n 's/^.*GNU texinfo.* \([0-9][0-9.]*\).*$/\1/p'`
+  case $ac_prog_version in
+    '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
+    4.[7-9]*|4.[1-9][0-9]*|[5-9].*)
+       ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
+    *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
+
+  esac
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_prog_version" >&5
+printf "%s\n" "$ac_prog_version" >&6; }
+fi
+if test $ac_verc_fail = yes; then
+  MAKEINFO=: aux_missing="$aux_missing makeinfo"
+fi
+
+for ac_prog in sed
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_SED+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) if test -n "$SED"; then
+  ac_cv_prog_SED="$SED" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_prog_SED="$ac_prog"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi ;;
+esac
+fi
+SED=$ac_cv_prog_SED
+if test -n "$SED"; then
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $SED" >&5
+printf "%s\n" "$SED" >&6; }
+else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+  test -n "$SED" && break
+done
+
+if test -z "$SED"; then
+  ac_verc_fail=yes
+else
+  # Found it, now check the version.
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking version of $SED" >&5
+printf %s "checking version of $SED... " >&6; }
+  ac_prog_version=`$SED --version 2>&1 | sed -n 's/^.*GNU sed[^0-9]* \([0-9]*\.[0-9.]*\).*$/\1/p'`
+  case $ac_prog_version in
+    '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
+    3.0[2-9]*|3.[1-9]*|[4-9]*)
+       ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
+    *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
+
+  esac
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_prog_version" >&5
+printf "%s\n" "$ac_prog_version" >&6; }
+fi
+if test $ac_verc_fail = yes; then
+  SED=: aux_missing="$aux_missing sed"
+fi
+
+for ac_prog in gawk
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_AWK+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) if test -n "$AWK"; then
+  ac_cv_prog_AWK="$AWK" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_prog_AWK="$ac_prog"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi ;;
+esac
+fi
+AWK=$ac_cv_prog_AWK
+if test -n "$AWK"; then
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
+printf "%s\n" "$AWK" >&6; }
+else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+  test -n "$AWK" && break
+done
+
+if test -z "$AWK"; then
+  ac_verc_fail=yes
+else
+  # Found it, now check the version.
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking version of $AWK" >&5
+printf %s "checking version of $AWK... " >&6; }
+  ac_prog_version=`$AWK --version 2>&1 | sed -n 's/^.*GNU Awk[^0-9]*\([0-9][0-9.]*\).*$/\1/p'`
+  case $ac_prog_version in
+    '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
+    3.1.[2-9]*|3.[2-9]*|[4-9]*)
+       ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
+    *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
+
+  esac
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_prog_version" >&5
+printf "%s\n" "$ac_prog_version" >&6; }
+fi
+if test $ac_verc_fail = yes; then
+  critic_missing="$critic_missing gawk"
+fi
+
+for ac_prog in bison
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_BISON+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) if test -n "$BISON"; then
+  ac_cv_prog_BISON="$BISON" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_prog_BISON="$ac_prog"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi ;;
+esac
+fi
+BISON=$ac_cv_prog_BISON
+if test -n "$BISON"; then
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $BISON" >&5
+printf "%s\n" "$BISON" >&6; }
+else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+  test -n "$BISON" && break
+done
+
+if test -z "$BISON"; then
+  ac_verc_fail=yes
+else
+  # Found it, now check the version.
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking version of $BISON" >&5
+printf %s "checking version of $BISON... " >&6; }
+  ac_prog_version=`$BISON --version 2>&1 | sed -n 's/^.*bison (GNU Bison) \([0-9]*\.[0-9.]*\).*$/\1/p'`
+  case $ac_prog_version in
+    '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
+    2.7*|[3-9].*|[1-9][0-9]*)
+       ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
+    *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
+
+  esac
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_prog_version" >&5
+printf "%s\n" "$ac_prog_version" >&6; }
+fi
+if test $ac_verc_fail = yes; then
+  critic_missing="$critic_missing bison"
+fi
+
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC is sufficient to build libc" >&5
+printf %s "checking if $CC is sufficient to build libc... " >&6; }
+if test ${libc_cv_compiler_ok+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e)
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main (void)
+{
+
+#if !defined __GNUC__ || __GNUC__ < 6 || (__GNUC__ == 6 && __GNUC_MINOR__ < 2)
+#error insufficient compiler
+#endif
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"
+then :
+  libc_cv_compiler_ok=yes
+else case e in #(
+  e) libc_cv_compiler_ok=no ;;
+esac
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_compiler_ok" >&5
+printf "%s\n" "$libc_cv_compiler_ok" >&6; }
+if test $libc_cv_compiler_ok != yes
+then :
+  critic_missing="$critic_missing compiler"
+fi
+
+if test "x$maintainer" = "xyes"; then
+  for ac_prog in autoconf
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_AUTOCONF+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) if test -n "$AUTOCONF"; then
+  ac_cv_prog_AUTOCONF="$AUTOCONF" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_prog_AUTOCONF="$ac_prog"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi ;;
+esac
+fi
+AUTOCONF=$ac_cv_prog_AUTOCONF
+if test -n "$AUTOCONF"; then
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AUTOCONF" >&5
+printf "%s\n" "$AUTOCONF" >&6; }
+else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+  test -n "$AUTOCONF" && break
+done
+test -n "$AUTOCONF" || AUTOCONF="no"
+
+  case "x$AUTOCONF" in
+  xno|x|x:) AUTOCONF=no ;;
+  *)
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking   whether $AUTOCONF${ACFLAGS:+ }$ACFLAGS works" >&5
+printf %s "checking   whether $AUTOCONF${ACFLAGS:+ }$ACFLAGS works... " >&6; }
+if test ${libc_cv_autoconf_works+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e)     if (cd $srcdir; $AUTOCONF $ACFLAGS configure.ac > /dev/null 2>&1); then
+      libc_cv_autoconf_works=yes
+    else
+      libc_cv_autoconf_works=no
+    fi ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_autoconf_works" >&5
+printf "%s\n" "$libc_cv_autoconf_works" >&6; }
+    test $libc_cv_autoconf_works = yes || AUTOCONF=no
+    ;;
+  esac
+  if test "x$AUTOCONF" = xno; then
+    aux_missing="$aux_missing autoconf"
+  fi
+else
+  AUTOCONF=no
+fi
+
+# Check for python3 if available, or else python.
+for ac_prog in python3 python
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_PYTHON_PROG+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) if test -n "$PYTHON_PROG"; then
+  ac_cv_prog_PYTHON_PROG="$PYTHON_PROG" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_prog_PYTHON_PROG="$ac_prog"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi ;;
+esac
+fi
+PYTHON_PROG=$ac_cv_prog_PYTHON_PROG
+if test -n "$PYTHON_PROG"; then
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PYTHON_PROG" >&5
+printf "%s\n" "$PYTHON_PROG" >&6; }
+else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+  test -n "$PYTHON_PROG" && break
+done
+
+if test -z "$PYTHON_PROG"; then
+  ac_verc_fail=yes
+else
+  # Found it, now check the version.
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking version of $PYTHON_PROG" >&5
+printf %s "checking version of $PYTHON_PROG... " >&6; }
+  ac_prog_version=`$PYTHON_PROG --version 2>&1 | sed -n 's/^.*Python \([0-9][0-9.]*\).*$/\1/p'`
+  case $ac_prog_version in
+    '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
+    3.[4-9]*|3.[1-9][0-9]*|[4-9].*|[1-9][0-9]*)
+       ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
+    *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
+
+  esac
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_prog_version" >&5
+printf "%s\n" "$ac_prog_version" >&6; }
+fi
+if test $ac_verc_fail = yes; then
+  critic_missing="$critic_missing python"
+fi
+
+PYTHON="$PYTHON_PROG -B"
+
+
+test -n "$critic_missing" && as_fn_error $? "
+*** These critical programs are missing or too old:$critic_missing
+*** Check the INSTALL file for required versions." "$LINENO" 5
+
+test -n "$aux_missing" && { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING:
+*** These auxiliary programs are missing or incompatible versions:$aux_missing
+*** some features or tests will be disabled.
+*** Check the INSTALL file for required versions." >&5
+printf "%s\n" "$as_me: WARNING:
+*** These auxiliary programs are missing or incompatible versions:$aux_missing
+*** some features or tests will be disabled.
+*** Check the INSTALL file for required versions." >&2;}
+
+
+# Determine whether to use fpu or nofpu sysdeps directories.
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for use of fpu sysdeps directories" >&5
+printf %s "checking for use of fpu sysdeps directories... " >&6; }
+if test ${libc_cv_with_fp+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) cat > conftest.c <<EOF
+#if $with_fp_cond
+int dummy;
+#else
+# error "no hardware floating point"
+#endif
+EOF
+libc_cv_with_fp=no
+if ${CC-cc} $CFLAGS $CPPFLAGS -S conftest.c -o conftest.s \
+   1>&5 2>&5 ; then
+  libc_cv_with_fp=yes
+fi
+rm -f conftest* ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_with_fp" >&5
+printf "%s\n" "$libc_cv_with_fp" >&6; }
+
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -fstack-protector" >&5
+printf %s "checking for -fstack-protector... " >&6; }
+if test ${libc_cv_ssp+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -Werror -fstack-protector -xc /dev/null -S -o /dev/null'
+  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }
+then :
+  libc_cv_ssp=yes
+else case e in #(
+  e) libc_cv_ssp=no ;;
+esac
+fi
+ ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_ssp" >&5
+printf "%s\n" "$libc_cv_ssp" >&6; }
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -fstack-protector-strong" >&5
+printf %s "checking for -fstack-protector-strong... " >&6; }
+if test ${libc_cv_ssp_strong+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -Werror -fstack-protector-strong -xc /dev/null -S -o /dev/null'
+  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }
+then :
+  libc_cv_ssp_strong=yes
+else case e in #(
+  e) libc_cv_ssp_strong=no ;;
+esac
+fi
+ ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_ssp_strong" >&5
+printf "%s\n" "$libc_cv_ssp_strong" >&6; }
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -fstack-protector-all" >&5
+printf %s "checking for -fstack-protector-all... " >&6; }
+if test ${libc_cv_ssp_all+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -Werror -fstack-protector-all -xc /dev/null -S -o /dev/null'
+  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }
+then :
+  libc_cv_ssp_all=yes
+else case e in #(
+  e) libc_cv_ssp_all=no ;;
+esac
+fi
+ ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_ssp_all" >&5
+printf "%s\n" "$libc_cv_ssp_all" >&6; }
+
+stack_protector=
+no_stack_protector=
+if test "$libc_cv_ssp" = yes; then
+  no_stack_protector="-fno-stack-protector -DSTACK_PROTECTOR_LEVEL=0"
+  printf "%s\n" "#define HAVE_CC_NO_STACK_PROTECTOR 1" >>confdefs.h
+
+fi
+
+if test "$enable_stack_protector" = yes && test "$libc_cv_ssp" = yes; then
+  stack_protector="-fstack-protector"
+  printf "%s\n" "#define STACK_PROTECTOR_LEVEL 1" >>confdefs.h
+
+elif test "$enable_stack_protector" = all && test "$libc_cv_ssp_all" = yes; then
+  stack_protector="-fstack-protector-all"
+  printf "%s\n" "#define STACK_PROTECTOR_LEVEL 2" >>confdefs.h
+
+elif test "$enable_stack_protector" = strong && test "$libc_cv_ssp_strong" = yes; then
+  stack_protector="-fstack-protector-strong"
+  printf "%s\n" "#define STACK_PROTECTOR_LEVEL 3" >>confdefs.h
+
+else
+  stack_protector="-fno-stack-protector"
+  printf "%s\n" "#define STACK_PROTECTOR_LEVEL 0" >>confdefs.h
+
+fi
+
+
+
+
+if test -n "$stack_protector"; then
+      no_ssp=-fno-stack-protector
+else
+  no_ssp=
+
+  if test "$enable_stack_protector" != no; then
+    as_fn_error $? "--enable-stack-protector=$enable_stack_protector specified, but specified level of stack protection is not supported by the compiler." "$LINENO" 5
+  fi
+fi
+
+# For the multi-arch option we need support in the assembler & linker.
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for assembler and linker STT_GNU_IFUNC support" >&5
+printf %s "checking for assembler and linker STT_GNU_IFUNC support... " >&6; }
+if test ${libc_cv_ld_gnu_indirect_function+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) cat > conftest.S <<EOF
+.type foo,%gnu_indirect_function
+foo:
+.globl _start
+_start:
+.globl __start
+__start:
+.data
+#ifdef _LP64
+.quad foo
+#else
+.long foo
+#endif
+EOF
+libc_cv_ld_gnu_indirect_function=no
+if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \
+	    -nostartfiles -nostdlib $no_ssp \
+	    -o conftest conftest.S 1>&5 2>&5; then
+  # Do a link to see if the backend supports IFUNC relocs.
+  $READELF -r conftest 1>&5
+  LC_ALL=C $READELF -Wr conftest | grep -q 'IRELATIVE\|R_SPARC_JMP_IREL' && {
+    libc_cv_ld_gnu_indirect_function=yes
+  }
+fi
+rm -f conftest* ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_ld_gnu_indirect_function" >&5
+printf "%s\n" "$libc_cv_ld_gnu_indirect_function" >&6; }
+
+# Check if gcc supports attribute ifunc as it is used in libc_ifunc macro.
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gcc attribute ifunc support" >&5
+printf %s "checking for gcc attribute ifunc support... " >&6; }
+if test ${libc_cv_gcc_indirect_function+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) cat > conftest.c <<EOF
+extern int func (int);
+int used_func (int a)
+{
+  return a;
+}
+static void *resolver ()
+{
+  return &used_func;
+}
+extern __typeof (func) func __attribute__ ((ifunc ("resolver")));
+EOF
+libc_cv_gcc_indirect_function=no
+if ${CC-cc} -c conftest.c -o conftest.o 1>&5 \
+   2>&5 ; then
+  if $READELF -s conftest.o | grep IFUNC >/dev/null 2>&5; then
+    libc_cv_gcc_indirect_function=yes
+  fi
+fi
+rm -f conftest* ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_gcc_indirect_function" >&5
+printf "%s\n" "$libc_cv_gcc_indirect_function" >&6; }
+
+# Check if linker supports textrel relocation with ifunc (used on elf/tests).
+# Note that it relies on libc_cv_ld_gnu_indirect_function test above.
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the linker supports textrels along with ifunc" >&5
+printf %s "checking whether the linker supports textrels along with ifunc... " >&6; }
+if test ${libc_cv_textrel_ifunc+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) cat > conftest.S <<EOF
+.type foo,%gnu_indirect_function
+foo:
+.globl _start
+_start:
+.globl __start
+__start:
+.data
+#ifdef _LP64
+.quad foo
+#else
+.long foo
+#endif
+.text
+.globl address
+address:
+#ifdef _LP64
+.quad address
+#else
+.long address
+#endif
+EOF
+libc_cv_textrel_ifunc=no
+if test $libc_cv_ld_gnu_indirect_function = yes; then
+   if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -nostartfiles -nostdlib $no_ssp -pie -o conftest conftest.S'
+  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }; then
+     libc_cv_textrel_ifunc=yes
+   fi
+fi
+rm -f conftest* ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_textrel_ifunc" >&5
+printf "%s\n" "$libc_cv_textrel_ifunc" >&6; }
+
+
+# Check if CC supports attribute retain as it is used in attribute_used_retain macro.
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU attribute retain support" >&5
+printf %s "checking for GNU attribute retain support... " >&6; }
+if test ${libc_cv_gnu_retain+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) cat > conftest.c <<EOF
+static int var  __attribute__ ((used, retain, section ("__libc_atexit")));
+EOF
+libc_cv_gnu_retain=no
+if ${CC-cc} -Werror -c conftest.c -o /dev/null 1>&5 \
+   2>&5 ; then
+  libc_cv_gnu_retain=yes
+fi
+rm -f conftest* ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_gnu_retain" >&5
+printf "%s\n" "$libc_cv_gnu_retain" >&6; }
+if test $libc_cv_gnu_retain = yes; then
+  printf "%s\n" "#define HAVE_GNU_RETAIN 1" >>confdefs.h
+
+fi
+config_vars="$config_vars
+have-gnu-retain = $libc_cv_gnu_retain"
+
+# Check if gcc warns about alias for function with incompatible types.
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler warns about alias for function with incompatible types" >&5
+printf %s "checking if compiler warns about alias for function with incompatible types... " >&6; }
+if test ${libc_cv_gcc_incompatible_alias+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) cat > conftest.c <<EOF
+int __redirect_foo (const void *s, int c);
+
+__typeof (__redirect_foo) *foo_impl (void) __asm__ ("foo");
+__typeof (__redirect_foo) *foo_impl (void)
+{
+  return 0;
+}
+
+extern __typeof (__redirect_foo) foo_alias __attribute__ ((alias ("foo")));
+EOF
+libc_cv_gcc_incompatible_alias=yes
+if ${CC-cc} -Werror -c conftest.c -o conftest.o 1>&5 2>&5 ; then
+  libc_cv_gcc_incompatible_alias=no
+fi
+rm -f conftest* ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_gcc_incompatible_alias" >&5
+printf "%s\n" "$libc_cv_gcc_incompatible_alias" >&6; }
+
+if test x"$libc_cv_ld_gnu_indirect_function" != xyes; then
+  if test x"$multi_arch" = xyes; then
+    as_fn_error $? "--enable-multi-arch support requires assembler and linker support" "$LINENO" 5
+  else
+    multi_arch=no
+  fi
+fi
+if test x"$libc_cv_gcc_indirect_function" != xyes; then
+  # GCC 8+ emits a warning for alias with incompatible types and it might
+  # fail to build ifunc resolvers aliases to either weak or internal
+  # symbols.  Disables multiarch build in this case.
+  if test x"$libc_cv_gcc_incompatible_alias" = xyes; then
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: gcc emits a warning for alias between functions of incompatible types" >&5
+printf "%s\n" "$as_me: WARNING: gcc emits a warning for alias between functions of incompatible types" >&2;}
+    if test x"$multi_arch" = xyes; then
+      as_fn_error $? "--enable-multi-arch support requires a gcc with gnu-indirect-function support" "$LINENO" 5
+    fi
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Multi-arch is disabled." >&5
+printf "%s\n" "$as_me: WARNING: Multi-arch is disabled." >&2;}
+    multi_arch=no
+  elif test x"$multi_arch" = xyes; then
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: --enable-multi-arch support recommends a gcc with gnu-indirect-function support.
+Please use a gcc which supports it by default or configure gcc with --enable-gnu-indirect-function" >&5
+printf "%s\n" "$as_me: WARNING: --enable-multi-arch support recommends a gcc with gnu-indirect-function support.
+Please use a gcc which supports it by default or configure gcc with --enable-gnu-indirect-function" >&2;}
+  fi
+fi
+multi_arch_d=
+if test x"$multi_arch" != xno; then
+  multi_arch_d=/multiarch
+fi
+
+# Compute the list of sysdep directories for this configuration.
+# This can take a while to compute.
+sysdep_dir=$srcdir/sysdeps
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking sysdep dirs" >&5
+printf %s "checking sysdep dirs... " >&6; }
+# Make sco3.2v4 become sco3.2.4 and sunos4.1.1_U1 become sunos4.1.1.U1.
+os="`echo $os | sed 's/\([0-9A-Z]\)[v_]\([0-9A-Z]\)/\1.\2/g'`"
+
+test "x$base_os" != x || case "$os" in
+gnu*)
+  base_os=mach/hurd ;;
+linux*)
+  base_os=unix/sysv ;;
+esac
+
+# For sunos4.1.1, try sunos4.1.1, then sunos4.1, then sunos4, then sunos.
+tail=$os
+ostry=$os
+while o=`echo $tail | sed 's/\.[^.]*$//'`; test $o != $tail; do
+  ostry="$ostry /$o"
+  tail=$o
+done
+o=`echo $tail | sed 's/[0-9]*$//'`
+if test $o != $tail; then
+  ostry="$ostry /$o"
+fi
+# For linux-gnu, try linux-gnu, then linux.
+o=`echo $tail | sed 's/-.*$//'`
+if test $o != $tail; then
+  ostry="$ostry /$o"
+fi
+
+# For unix/sysv/sysv4, try unix/sysv/sysv4, then unix/sysv, then unix.
+base=
+tail=$base_os
+while b=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$b"; do
+  set $b
+  base="$base /$1"
+  tail="$2"
+done
+
+# For sparc/sparc32, try sparc/sparc32 and then sparc.
+mach=
+tail=$machine${submachine:+/$submachine}
+while m=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$m"; do
+  set $m
+  # Prepend the machine's FPU directory unless the architecture specific
+  # preconfigure disables it.
+  if test "$libc_cv_with_fp" = yes; then
+    maybe_fpu=/fpu
+  else
+    maybe_fpu=/nofpu
+  fi
+  # For each machine term, try it with and then without /multiarch.
+  for try_fpu in $maybe_fpu ''; do
+    for try_multi in $multi_arch_d ''; do
+      mach="$mach /$1$try_fpu$try_multi"
+    done
+  done
+  tail="$2"
+done
+
+
+# Find what sysdep directories exist.
+sysnames=
+for b in $base ''; do
+  for m0 in $mach ''; do
+    for v in /$vendor ''; do
+      test "$v" = / && continue
+      for o in /$ostry ''; do
+	test "$o" = / && continue
+	for m in $mach ''; do
+	  try_suffix="$m0$b$v$o$m"
+	  if test -n "$try_suffix"; then
+	    try_srcdir="${srcdir}/"
+	    try="sysdeps$try_suffix"
+	    test -n "$enable_debug_configure" &&
+	    echo "$0 DEBUG: try $try" >&2
+	    if test -d "$try_srcdir$try"; then
+	      sysnames="$sysnames $try"
+	      { test -n "$o" || test -n "$b"; } && os_used=t
+	      { test -n "$m" || test -n "$m0"; } && machine_used=t
+	      case x${m0:-$m} in
+	      x*/$submachine) submachine_used=t ;;
+	      esac
+	    fi
+	  fi
+	done
+      done
+    done
+  done
+done
+
+# If the assembler supports gnu_indirect_function symbol type and the
+# architecture supports multi-arch, we enable multi-arch by default.
+case $sysnames in
+*"$multi_arch_d"*)
+  ;;
+*)
+  test x"$multi_arch" = xdefault && multi_arch=no
+  ;;
+esac
+if test x"$multi_arch" != xno; then
+  printf "%s\n" "#define USE_MULTIARCH 1" >>confdefs.h
+
+fi
+
+
+if test -z "$os_used" && test "$os" != none; then
+  as_fn_error $? "Operating system $os is not supported." "$LINENO" 5
+fi
+if test -z "$machine_used" && test "$machine" != none; then
+  as_fn_error $? "The $machine is not supported." "$LINENO" 5
+fi
+if test -z "$submachine_used" && test -n "$submachine"; then
+  as_fn_error $? "The $submachine subspecies of $host_cpu is not supported." "$LINENO" 5
+fi
+
+
+# We have now validated the configuration.
+
+# Expand the list of system names into a full list of directories
+# from each element's parent name and Implies file (if present).
+set $sysnames
+names=
+while test $# -gt 0; do
+  name=$1
+  shift
+
+  case " $names " in *" $name "*)
+    # Already in the list.
+    continue
+  esac
+
+  # Report each name as we discover it, so there is no long pause in output.
+  echo $ECHO_N "$name $ECHO_C" >&6
+
+  name_base=`echo $name | sed -e 's@\(.*sysdeps\)/.*@\1@'`
+
+  case $name in
+    /*) xsrcdir= ;;
+    *)  xsrcdir=$srcdir/ ;;
+  esac
+  test -n "$enable_debug_configure" &&
+  echo "DEBUG: name/Implies $xsrcdir$name/Implies" >&2
+
+  for implies_file in Implies Implies-before Implies-after; do
+    implies_type=`echo $implies_file | sed s/-/_/`
+    eval ${implies_type}=
+    if test -f $xsrcdir$name/$implies_file; then
+      # Collect more names from the `Implies' file (removing comments).
+      implied_candidate="`sed 's/#.*$//' < $xsrcdir$name/$implies_file`"
+      for x in $implied_candidate; do
+	found=no
+	if test -d $xsrcdir$name_base/$x; then
+	  eval "${implies_type}=\"\$${implies_type} \$name_base/\$x\""
+	  found=yes
+	fi
+	try="sysdeps/$x"
+	try_srcdir=$srcdir/
+	test -n "$enable_debug_configure" &&
+	 echo "DEBUG: $name $implies_file $x try() {$try_srcdir}$try" >&2
+	if test $try != $xsrcdir$name_base/$x && test -d $try_srcdir$try;
+	then
+	  eval "${implies_type}=\"\$${implies_type} \$try\""
+	  found=yes
+	fi
+	if test $found = no; then
+	  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $name/$implies_file specifies nonexistent $x" >&5
+printf "%s\n" "$as_me: WARNING: $name/$implies_file specifies nonexistent $x" >&2;}
+	fi
+      done
+    fi
+  done
+
+  # Add NAME to the list of names.
+  names="$names $name"
+
+  # Find the parent of NAME, using the empty string if it has none.
+  parent="`echo $name | sed -n -e 's=/[^/]*$==' -e '/sysdeps$/q' -e p`"
+
+  test -n "$enable_debug_configure" &&
+    echo "DEBUG: $name Implies='$Implies' rest='$*' parent='$parent' \
+Implies_before='$Implies_before' Implies_after='$Implies_after'" >&2
+
+  # Add the names implied by NAME, and NAME's parent (if it has one), to
+  # the list of names to be processed (the argument list).  We prepend the
+  # implied names to the list and append the parent.  We want implied
+  # directories to come before further directories inferred from the
+  # configuration components; this ensures that for sysv4, unix/common
+  # (implied by unix/sysv/sysv4) comes before unix/sysv (in ostry (here $*)
+  # after sysv4).
+  sysnames="`echo $Implies $* $Implies_before $parent $Implies_after`"
+  test -n "$sysnames" && set $sysnames
+done
+
+# Add the default directories.
+default_sysnames="sysdeps/generic"
+sysnames="$names $default_sysnames"
+
+# The other names were emitted during the scan.
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $default_sysnames" >&5
+printf "%s\n" "$default_sysnames" >&6; }
+
+# if using special system headers, find out the compiler's sekrit
+# header directory and add that to the list.  NOTE: Only does the right
+# thing on a system that doesn't need fixincludes.  (Not presently a problem.)
+if test -n "$sysheaders"; then
+  SYSINCLUDES=-nostdinc
+  for d in include include-fixed; do
+    i=`$CC -print-file-name="$d"` && test "x$i" != x && test "x$i" != "x$d" &&
+    SYSINCLUDES="$SYSINCLUDES -isystem $i"
+  done
+  SYSINCLUDES="$SYSINCLUDES \
+-isystem `echo $sysheaders | sed 's/:/ -isystem /g'`"
+  if test -n "$CXX"; then
+    CXX_SYSINCLUDES=
+    for cxxheaders in `$CXX -v -S -x c++ /dev/null -o /dev/null 2>&1 \
+    | sed -n -e '1,/#include/d' -e 's/^ \(\/.*\/[cg]++\)/\1/p'`; do
+      test "x$cxxheaders" != x &&
+      CXX_SYSINCLUDES="$CXX_SYSINCLUDES -isystem $cxxheaders"
+    done
+  fi
+fi
+
+
+
+# Obtain some C++ header file paths.  This is used to make a local
+# copy of those headers in Makerules.
+if test -n "$CXX"; then
+  find_cxx_header () {
+    echo "#include <$1>" | $CXX -H -fsyntax-only -x c++ - 2>&1 \
+	 | $AWK '$1 == "."{print $2}'
+  }
+  CXX_CSTDLIB_HEADER="$(find_cxx_header cstdlib)"
+  CXX_CMATH_HEADER="$(find_cxx_header cmath)"
+  CXX_BITS_STD_ABS_H="$(find_cxx_header bits/std_abs.h)"
+fi
+
+
+
+
+# Test if LD_LIBRARY_PATH contains the notation for the current directory
+# since this would lead to problems installing/building glibc.
+# LD_LIBRARY_PATH contains the current directory if one of the following
+# is true:
+# - one of the terminals (":" and ";") is the first or last sign
+# - two terminals occur directly after each other
+# - the path contains an element with a dot in it
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking LD_LIBRARY_PATH variable" >&5
+printf %s "checking LD_LIBRARY_PATH variable... " >&6; }
+case ${LD_LIBRARY_PATH} in
+  [:\;]* | *[:\;] | *[:\;][:\;]* |  *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* )
+    ld_library_path_setting="contains current directory"
+    ;;
+  *)
+    ld_library_path_setting="ok"
+    ;;
+esac
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ld_library_path_setting" >&5
+printf "%s\n" "$ld_library_path_setting" >&6; }
+if test "$ld_library_path_setting" != "ok"; then
+as_fn_error $? "
+*** LD_LIBRARY_PATH shouldn't contain the current directory when
+*** building glibc. Please change the environment variable
+*** and run configure again." "$LINENO" 5
+fi
+
+# Extract the first word of "bash", so it can be a program name with args.
+set dummy bash; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_BASH_SHELL+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) case $BASH_SHELL in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_BASH_SHELL="$BASH_SHELL" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_path_BASH_SHELL="$as_dir$ac_word$ac_exec_ext"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  test -z "$ac_cv_path_BASH_SHELL" && ac_cv_path_BASH_SHELL="no"
+  ;;
+esac ;;
+esac
+fi
+BASH_SHELL=$ac_cv_path_BASH_SHELL
+if test -n "$BASH_SHELL"; then
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $BASH_SHELL" >&5
+printf "%s\n" "$BASH_SHELL" >&6; }
+else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+
+# Extract the first word of "perl", so it can be a program name with args.
+set dummy perl; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_PERL+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) case $PERL in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_PERL="$PERL" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_path_PERL="$as_dir$ac_word$ac_exec_ext"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  test -z "$ac_cv_path_PERL" && ac_cv_path_PERL="no"
+  ;;
+esac ;;
+esac
+fi
+PERL=$ac_cv_path_PERL
+if test -n "$PERL"; then
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5
+printf "%s\n" "$PERL" >&6; }
+else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+if test "$PERL" != no &&
+   (eval `$PERL -V:apiversion`; test `expr "$apiversion" \< 5` -ne 0); then
+  PERL=no
+fi
+# Extract the first word of "install-info", so it can be a program name with args.
+set dummy install-info; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_INSTALL_INFO+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) case $INSTALL_INFO in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_INSTALL_INFO="$INSTALL_INFO" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_dummy="$PATH:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin"
+for as_dir in $as_dummy
+do
+  IFS=$as_save_IFS
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_path_INSTALL_INFO="$as_dir$ac_word$ac_exec_ext"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  test -z "$ac_cv_path_INSTALL_INFO" && ac_cv_path_INSTALL_INFO="no"
+  ;;
+esac ;;
+esac
+fi
+INSTALL_INFO=$ac_cv_path_INSTALL_INFO
+if test -n "$INSTALL_INFO"; then
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $INSTALL_INFO" >&5
+printf "%s\n" "$INSTALL_INFO" >&6; }
+else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for .set assembler directive" >&5
+printf %s "checking for .set assembler directive... " >&6; }
+if test ${libc_cv_asm_set_directive+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) cat > conftest.s <<EOF
+.text
+foo:
+.set glibc_conftest_frobozz,foo
+.globl glibc_conftest_frobozz
+EOF
+# The alpha-dec-osf1 assembler gives only a warning for `.set'
+# (but it doesn't work), so we must do a linking check to be sure.
+cat > conftest1.c <<\EOF
+extern int glibc_conftest_frobozz;
+void _start() { glibc_conftest_frobozz = 1; }
+EOF
+if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \
+	    -nostartfiles -nostdlib $no_ssp \
+	    -o conftest conftest.s conftest1.c 1>&5 2>&5; then
+  libc_cv_asm_set_directive=yes
+else
+  libc_cv_asm_set_directive=no
+fi
+rm -f conftest* ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_asm_set_directive" >&5
+printf "%s\n" "$libc_cv_asm_set_directive" >&6; }
+if test $libc_cv_asm_set_directive = yes; then
+  printf "%s\n" "#define HAVE_ASM_SET_DIRECTIVE 1" >>confdefs.h
+
+fi
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking linker support for protected data symbol" >&5
+printf %s "checking linker support for protected data symbol... " >&6; }
+if test ${libc_cv_protected_data+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) cat > conftest.c <<EOF
+		int bar __attribute__ ((visibility ("protected"))) = 1;
+EOF
+		libc_cv_protected_data=no
+		if { ac_try='${CC-cc} -nostdlib -nostartfiles $no_ssp -fPIC -shared conftest.c -o conftest.so'
+  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }; then
+		  cat > conftest.c <<EOF
+		  extern int bar;
+		  int main (void) { return bar; }
+EOF
+		  if { ac_try='${CC-cc} -nostdlib -nostartfiles $no_ssp conftest.c -o conftest conftest.so'
+  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }; then
+		    libc_cv_protected_data=yes
+		  fi
+		fi
+		rm -f conftest.*
+	        ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_protected_data" >&5
+printf "%s\n" "$libc_cv_protected_data" >&6; }
+
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking linker support for INSERT in linker script" >&5
+printf %s "checking linker support for INSERT in linker script... " >&6; }
+if test ${libc_cv_insert+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) cat > conftest.c <<EOF
+		int __attribute__ ((section(".bar"))) bar = 0x12345678;
+		int test (void) { return bar; }
+EOF
+		cat > conftest.t <<EOF
+		SECTIONS
+		{
+		  .bar : { *(.bar) }
+		}
+		INSERT AFTER .rela.dyn;
+EOF
+		libc_cv_insert=no
+		if { ac_try='${CC-cc} -nostdlib -nostartfiles $no_ssp -fPIC -shared conftest.c -Wl,-T,conftest.t -o conftest.so'
+  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }; then
+		  libc_cv_insert=yes
+		fi
+		rm -f conftest.*
+	        ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_insert" >&5
+printf "%s\n" "$libc_cv_insert" >&6; }
+
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for broken __attribute__((alias()))" >&5
+printf %s "checking for broken __attribute__((alias()))... " >&6; }
+if test ${libc_cv_broken_alias_attribute+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) cat > conftest.c <<EOF
+	       extern int foo (int x) __asm ("xyzzy");
+	       int bar (int x) { return x; }
+	       extern __typeof (bar) foo __attribute ((weak, alias ("bar")));
+	       extern int dfoo;
+	       extern __typeof (dfoo) dfoo __asm ("abccb");
+	       int dfoo = 1;
+EOF
+	       libc_cv_broken_alias_attribute=yes
+	       if { ac_try='${CC-cc} -Werror -S conftest.c -o conftest.s 1>&5'
+  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }; then
+		 if grep 'xyzzy' conftest.s >/dev/null &&
+		    grep 'abccb' conftest.s >/dev/null; then
+		   libc_cv_broken_alias_attribute=no
+		 fi
+	       fi
+	       rm -f conftest.c conftest.s
+	        ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_broken_alias_attribute" >&5
+printf "%s\n" "$libc_cv_broken_alias_attribute" >&6; }
+if test $libc_cv_broken_alias_attribute = yes; then
+  as_fn_error $? "working alias attribute support required" "$LINENO" 5
+fi
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to put _rtld_local into .sdata section" >&5
+printf %s "checking whether to put _rtld_local into .sdata section... " >&6; }
+if test ${libc_cv_have_sdata_section+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) echo "int i;" > conftest.c
+		libc_cv_have_sdata_section=no
+		if ${CC-cc} $LDFLAGS -fPIC -shared -Wl,--verbose conftest.c -o conftest.so 2>&1 \
+		   | grep '\.sdata' >/dev/null; then
+		  libc_cv_have_sdata_section=yes
+		fi
+		rm -f conftest.c conftest.so
+	        ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_have_sdata_section" >&5
+printf "%s\n" "$libc_cv_have_sdata_section" >&6; }
+if test $libc_cv_have_sdata_section = yes; then
+  printf "%s\n" "#define HAVE_SDATA_SECTION 1" >>confdefs.h
+
+fi
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libunwind-support in compiler" >&5
+printf %s "checking for libunwind-support in compiler... " >&6; }
+if test ${libc_cv_cc_with_libunwind+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e)
+  cat > conftest.c <<EOF
+int main (void) { return 0; }
+EOF
+  if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -static -o conftest \
+     conftest.c -v 2>&1 >/dev/null | grep ' -lunwind ' >/dev/null; then
+    libc_cv_cc_with_libunwind=yes
+  else
+    libc_cv_cc_with_libunwind=no
+  fi
+  rm -f conftest* ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_cc_with_libunwind" >&5
+printf "%s\n" "$libc_cv_cc_with_libunwind" >&6; }
+
+if test $libc_cv_cc_with_libunwind = yes; then
+  printf "%s\n" "#define HAVE_CC_WITH_LIBUNWIND 1" >>confdefs.h
+
+fi
+
+ASFLAGS_config=
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether --noexecstack is desirable for .S files" >&5
+printf %s "checking whether --noexecstack is desirable for .S files... " >&6; }
+if test ${libc_cv_as_noexecstack+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) cat > conftest.c <<EOF
+void foo (void) { }
+EOF
+if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS
+		   -S -o conftest.s conftest.c 1>&5'
+  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; } \
+   && grep .note.GNU-stack conftest.s >/dev/null \
+   && { ac_try='${CC-cc} $ASFLAGS -Wa,--noexecstack
+		      -c -o conftest.o conftest.s 1>&5'
+  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }
+then
+  libc_cv_as_noexecstack=yes
+else
+  libc_cv_as_noexecstack=no
+fi
+rm -f conftest* ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_as_noexecstack" >&5
+printf "%s\n" "$libc_cv_as_noexecstack" >&6; }
+if test $libc_cv_as_noexecstack = yes; then
+  ASFLAGS_config="$ASFLAGS_config -Wa,--noexecstack"
+fi
+
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for linker that supports -z execstack" >&5
+printf %s "checking for linker that supports -z execstack... " >&6; }
+libc_linker_feature=no
+cat > conftest.c <<EOF
+int _start (void) { return 42; }
+EOF
+if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS $no_ssp
+		  -Wl,-z,execstack -nostdlib -nostartfiles
+		  -fPIC -shared -o conftest.so conftest.c
+		  1>&5'
+  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }
+then
+  if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS $no_ssp -Wl,-z,execstack -nostdlib \
+      -nostartfiles -fPIC -shared -o conftest.so conftest.c 2>&1 \
+      | grep "warning: -z execstack ignored" > /dev/null 2>&1; then
+    true
+  else
+    libc_linker_feature=yes
+  fi
+fi
+rm -f conftest*
+if test $libc_linker_feature = yes; then
+  libc_cv_z_execstack=yes
+else
+  libc_cv_z_execstack=no
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_linker_feature" >&5
+printf "%s\n" "$libc_linker_feature" >&6; }
+
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for linker that supports -z start-stop-gc" >&5
+printf %s "checking for linker that supports -z start-stop-gc... " >&6; }
+libc_linker_feature=no
+cat > conftest.c <<EOF
+int _start (void) { return 42; }
+EOF
+if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS $no_ssp
+		  -Wl,-z,start-stop-gc -nostdlib -nostartfiles
+		  -fPIC -shared -o conftest.so conftest.c
+		  1>&5'
+  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }
+then
+  if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS $no_ssp -Wl,-z,start-stop-gc -nostdlib \
+      -nostartfiles -fPIC -shared -o conftest.so conftest.c 2>&1 \
+      | grep "warning: -z start-stop-gc ignored" > /dev/null 2>&1; then
+    true
+  else
+    libc_linker_feature=yes
+  fi
+fi
+rm -f conftest*
+if test $libc_linker_feature = yes; then
+  libc_cv_z_start_stop_gc=yes
+else
+  libc_cv_z_start_stop_gc=no
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_linker_feature" >&5
+printf "%s\n" "$libc_linker_feature" >&6; }
+config_vars="$config_vars
+have-z-start-stop-gc = $libc_cv_z_start_stop_gc"
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for linker that supports --depaudit" >&5
+printf %s "checking for linker that supports --depaudit... " >&6; }
+libc_linker_feature=no
+cat > conftest.c <<EOF
+int _start (void) { return 42; }
+EOF
+if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS $no_ssp
+		  -Wl,--depaudit,x -nostdlib -nostartfiles
+		  -fPIC -shared -o conftest.so conftest.c
+		  1>&5'
+  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }
+then
+  if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS $no_ssp -Wl,--depaudit,x -nostdlib \
+      -nostartfiles -fPIC -shared -o conftest.so conftest.c 2>&1 \
+      | grep "warning: --depaudit ignored" > /dev/null 2>&1; then
+    true
+  else
+    libc_linker_feature=yes
+  fi
+fi
+rm -f conftest*
+if test $libc_linker_feature = yes; then
+  libc_cv_depaudit=yes
+else
+  libc_cv_depaudit=no
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_linker_feature" >&5
+printf "%s\n" "$libc_linker_feature" >&6; }
+config_vars="$config_vars
+have-depaudit = $libc_cv_depaudit"
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for linker that supports -z pack-relative-relocs" >&5
+printf %s "checking for linker that supports -z pack-relative-relocs... " >&6; }
+libc_linker_feature=no
+cat > conftest.c <<EOF
+int _start (void) { return 42; }
+EOF
+if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS $no_ssp
+		  -Wl,-z,pack-relative-relocs -nostdlib -nostartfiles
+		  -fPIC -shared -o conftest.so conftest.c
+		  1>&5'
+  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }
+then
+  if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS $no_ssp -Wl,-z,pack-relative-relocs -nostdlib \
+      -nostartfiles -fPIC -shared -o conftest.so conftest.c 2>&1 \
+      | grep "warning: -z pack-relative-relocs ignored" > /dev/null 2>&1; then
+    true
+  else
+    libc_linker_feature=yes
+  fi
+fi
+rm -f conftest*
+if test $libc_linker_feature = yes; then
+  libc_cv_dt_relr=yes
+else
+  libc_cv_dt_relr=no
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_linker_feature" >&5
+printf "%s\n" "$libc_linker_feature" >&6; }
+config_vars="$config_vars
+have-dt-relr = $libc_cv_dt_relr"
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for linker that supports --no-dynamic-linker" >&5
+printf %s "checking for linker that supports --no-dynamic-linker... " >&6; }
+libc_linker_feature=no
+cat > conftest.c <<EOF
+int _start (void) { return 42; }
+EOF
+if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS $no_ssp
+		  -Wl,--no-dynamic-linker -nostdlib -nostartfiles
+		  -fPIC -shared -o conftest.so conftest.c
+		  1>&5'
+  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }
+then
+  if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS $no_ssp -Wl,--no-dynamic-linker -nostdlib \
+      -nostartfiles -fPIC -shared -o conftest.so conftest.c 2>&1 \
+      | grep "warning: --no-dynamic-linker ignored" > /dev/null 2>&1; then
+    true
+  else
+    libc_linker_feature=yes
+  fi
+fi
+rm -f conftest*
+if test $libc_linker_feature = yes; then
+  libc_cv_no_dynamic_linker=yes
+else
+  libc_cv_no_dynamic_linker=no
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_linker_feature" >&5
+printf "%s\n" "$libc_linker_feature" >&6; }
+config_vars="$config_vars
+have-no-dynamic-linker = $libc_cv_no_dynamic_linker"
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -static-pie" >&5
+printf %s "checking for -static-pie... " >&6; }
+if test ${libc_cv_static_pie+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) if { ac_try='${CC-cc} -static-pie -xc /dev/null -S -o /dev/null'
+  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }
+then :
+  libc_cv_static_pie=yes
+else case e in #(
+  e) libc_cv_static_pie=no ;;
+esac
+fi
+ ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_static_pie" >&5
+printf "%s\n" "$libc_cv_static_pie" >&6; }
+config_vars="$config_vars
+have-static-pie = $libc_cv_static_pie"
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -fpie" >&5
+printf %s "checking for -fpie... " >&6; }
+if test ${libc_cv_fpie+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) if { ac_try='${CC-cc} -fpie -xc /dev/null -S -o /dev/null'
+  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }
+then :
+  libc_cv_fpie=yes
+else case e in #(
+  e) libc_cv_fpie=no ;;
+esac
+fi
+ ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_fpie" >&5
+printf "%s\n" "$libc_cv_fpie" >&6; }
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --hash-style option" >&5
+$as_echo_n "checking for --hash-style option... " >&6; }
+if ${libc_cv_hashstyle+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat > conftest.c <<EOF
+int _start (void) { return 42; }
+EOF
+if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS $no_ssp
+                           -fPIC -shared -o conftest.so conftest.c
+                           -Wl,--hash-style=both -nostdlib 1>&5'
+  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }
+then
+  libc_cv_hashstyle=yes
+else
+  libc_cv_hashstyle=no
+fi
+rm -f conftest*
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_hashstyle" >&5
+$as_echo "$libc_cv_hashstyle" >&6; }
+
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GLOB_DAT reloc" >&5
+printf %s "checking for GLOB_DAT reloc... " >&6; }
+if test ${libc_cv_has_glob_dat+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) cat > conftest.c <<EOF
+extern int mumble;
+int foo (void) { return mumble; }
+EOF
+if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
+			-fPIC -shared -o conftest.so conftest.c
+			-nostdlib -nostartfiles $no_ssp
+			1>&5'
+  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }
+then
+  if $READELF -rW conftest.so | grep '_GLOB_DAT' > /dev/null; then
+    libc_cv_has_glob_dat=yes
+  else
+    libc_cv_has_glob_dat=no
+  fi
+else
+  libc_cv_has_glob_dat=no
+fi
+rm -f conftest* ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_has_glob_dat" >&5
+printf "%s\n" "$libc_cv_has_glob_dat" >&6; }
+
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for tls descriptor support" >&5
+printf %s "checking for tls descriptor support... " >&6; }
+if test ${libc_cv_mtls_descriptor+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) cat > conftest.c <<EOF
+__thread int i;
+void foo (void)
+{
+  i = 10;
+}
+EOF
+if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -fPIC -mtls-dialect=$mtls_descriptor -nostdlib -nostartfiles
+		   -shared conftest.c -o conftest 1>&5'
+  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }
+then
+  libc_cv_mtls_descriptor=$mtls_descriptor
+else
+  libc_cv_mtls_descriptor=no
+fi
+rm -f conftest* ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_mtls_descriptor" >&5
+printf "%s\n" "$libc_cv_mtls_descriptor" >&6; }
+
+config_vars="$config_vars
+have-mtls-descriptor = $libc_cv_mtls_descriptor"
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if -Wno-ignored-attributes is required for aliases" >&5
+printf %s "checking if -Wno-ignored-attributes is required for aliases... " >&6; }
+if test ${libc_cv_wno_ignored_attributes+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) cat > conftest.c <<EOF
+void __foo (void)
+{
+}
+extern __typeof (__foo) foo __attribute__ ((weak, alias ("__foo")));
+extern __typeof (__foo) bar __attribute__ ((weak, alias ("foo")));
+EOF
+libc_cv_wno_ignored_attributes=""
+if ! { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -Werror -c conftest.c'
+  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }
+then
+  libc_cv_wno_ignored_attributes="-Wno-ignored-attributes"
+fi
+rm -f conftest* ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_wno_ignored_attributes" >&5
+printf "%s\n" "$libc_cv_wno_ignored_attributes" >&6; }
+config_vars="$config_vars
+config-cflags-wno-ignored-attributes = $libc_cv_wno_ignored_attributes"
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether cc puts quotes around section names" >&5
+printf %s "checking whether cc puts quotes around section names... " >&6; }
+if test ${libc_cv_have_section_quotes+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) cat > conftest.c <<EOF
+		static const int foo
+		__attribute__ ((section ("bar"))) = 1;
+EOF
+		if ${CC-cc} -S conftest.c -o conftest.s; then
+		  if grep '\.section.*"bar"' conftest.s >/dev/null; then
+		    libc_cv_have_section_quotes=yes
+		  else
+		    libc_cv_have_section_quotes=no
+		  fi
+		else
+		  libc_cv_have_section_quotes=unknown
+		fi
+		rm -f conftest.{c,s}
+		 ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_have_section_quotes" >&5
+printf "%s\n" "$libc_cv_have_section_quotes" >&6; }
+if test $libc_cv_have_section_quotes = yes; then
+  printf "%s\n" "#define HAVE_SECTION_QUOTES 1" >>confdefs.h
+
+fi
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for __builtin_memset" >&5
+printf %s "checking for __builtin_memset... " >&6; }
+if test ${libc_cv_gcc_builtin_memset+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) cat > conftest.c <<\EOF
+void zero (void *x)
+{
+  __builtin_memset (x, 0, 1000);
+}
+EOF
+if { ac_try='${CC-cc} -O3 -S conftest.c -o - | grep -F "memset" > /dev/null'
+  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; };
+then
+  libc_cv_gcc_builtin_memset=no
+else
+  libc_cv_gcc_builtin_memset=yes
+fi
+rm -f conftest*  ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_gcc_builtin_memset" >&5
+printf "%s\n" "$libc_cv_gcc_builtin_memset" >&6; }
+if test "$libc_cv_gcc_builtin_memset" = yes ; then
+  printf "%s\n" "#define HAVE_BUILTIN_MEMSET 1" >>confdefs.h
+
+fi
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for redirection of built-in functions" >&5
+printf %s "checking for redirection of built-in functions... " >&6; }
+if test ${libc_cv_gcc_builtin_redirection+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) cat > conftest.c <<\EOF
+extern char *strstr (const char *, const char *) __asm ("my_strstr");
+char *foo (const char *a, const char *b)
+{
+  return __builtin_strstr (a, b);
+}
+EOF
+if { ac_try='${CC-cc} -O3 -S conftest.c -o - | grep -F "my_strstr" > /dev/null'
+  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; };
+then
+  libc_cv_gcc_builtin_redirection=yes
+else
+  libc_cv_gcc_builtin_redirection=no
+fi
+rm -f conftest*  ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_gcc_builtin_redirection" >&5
+printf "%s\n" "$libc_cv_gcc_builtin_redirection" >&6; }
+if test "$libc_cv_gcc_builtin_redirection" = no; then
+  as_fn_error $? "support for the symbol redirection needed" "$LINENO" 5
+fi
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for compiler option to disable generation of FMA instructions" >&5
+printf %s "checking for compiler option to disable generation of FMA instructions... " >&6; }
+if test ${libc_cv_cc_nofma+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) libc_cv_cc_nofma=
+for opt in -ffp-contract=off -mno-fused-madd; do
+  if { ac_try='${CC-cc} $opt -xc /dev/null -S -o /dev/null'
+  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }
+then :
+  libc_cv_cc_nofma=$opt; break
+fi
+done ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_cc_nofma" >&5
+printf "%s\n" "$libc_cv_cc_nofma" >&6; }
+
+
+if test -n "$submachine"; then
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for compiler option for CPU variant" >&5
+printf %s "checking for compiler option for CPU variant... " >&6; }
+if test ${libc_cv_cc_submachine+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e)   libc_cv_cc_submachine=no
+  for opt in "-march=$submachine" "-mcpu=$submachine"; do
+    if { ac_try='${CC-cc} $opt -xc /dev/null -S -o /dev/null'
+  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }
+then :
+
+      libc_cv_cc_submachine="$opt"
+      break
+fi
+  done ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_cc_submachine" >&5
+printf "%s\n" "$libc_cv_cc_submachine" >&6; }
+  if test "x$libc_cv_cc_submachine" = xno; then
+    as_fn_error $? "${CC-cc} does not support $submachine" "$LINENO" 5
+  fi
+fi
+
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for compiler option that -fsignaling-nans" >&5
+printf %s "checking for compiler option that -fsignaling-nans... " >&6; }
+if test ${libc_cv_cc_signaling_nans+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) if { ac_try='${CC-cc} -Werror -fsignaling-nans -xc /dev/null -S -o /dev/null'
+  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }
+then :
+  libc_cv_cc_signaling_nans=-fsignaling-nans
+else case e in #(
+  e) libc_cv_cc_signaling_nans= ;;
+esac
+fi
+ ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_cc_signaling_nans" >&5
+printf "%s\n" "$libc_cv_cc_signaling_nans" >&6; }
+config_vars="$config_vars
+config-cflags-signaling-nans = $libc_cv_cc_signaling_nans"
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC accepts -fno-tree-loop-distribute-patterns with \
+__attribute__ ((__optimize__))" >&5
+printf %s "checking if $CC accepts -fno-tree-loop-distribute-patterns with \
+__attribute__ ((__optimize__))... " >&6; }
+if test ${libc_cv_cc_loop_to_function+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) cat > conftest.c <<EOF
+void
+__attribute__ ((__optimize__ ("-fno-tree-loop-distribute-patterns")))
+foo (void) {}
+EOF
+libc_cv_cc_loop_to_function=no
+if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -c conftest.c'
+  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }
+then
+  libc_cv_cc_loop_to_function=yes
+fi
+rm -f conftest* ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_cc_loop_to_function" >&5
+printf "%s\n" "$libc_cv_cc_loop_to_function" >&6; }
+if test $libc_cv_cc_loop_to_function = yes; then
+  printf "%s\n" "#define HAVE_CC_INHIBIT_LOOP_TO_LIBCALL 1" >>confdefs.h
+
+fi
+
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libgd" >&5
+printf %s "checking for libgd... " >&6; }
+if test "$with_gd" != "no"; then
+  old_CFLAGS="$CFLAGS"
+  CFLAGS="$CFLAGS $libgd_include"
+  old_LDFLAGS="$LDFLAGS"
+  LDFLAGS="$LDFLAGS $libgd_ldflags"
+  old_LIBS="$LIBS"
+  LIBS="$LIBS -lgd -lpng -lz -lm"
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <gd.h>
+int
+main (void)
+{
+gdImagePng (0, 0)
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"
+then :
+  LIBGD=yes
+else case e in #(
+  e) LIBGD=no ;;
+esac
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
+    conftest$ac_exeext conftest.$ac_ext
+  CFLAGS="$old_CFLAGS"
+  LDFLAGS="$old_LDFLAGS"
+  LIBS="$old_LIBS"
+else
+  LIBGD=no
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LIBGD" >&5
+printf "%s\n" "$LIBGD" >&6; }
+
+
+# SELinux detection
+if test x$with_selinux = xno ; then
+  have_selinux=no;
+else
+  # See if we have the SELinux library
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for is_selinux_enabled in -lselinux" >&5
+printf %s "checking for is_selinux_enabled in -lselinux... " >&6; }
+if test ${ac_cv_lib_selinux_is_selinux_enabled+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) ac_check_lib_save_LIBS=$LIBS
+LIBS="-lselinux  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.
+   The 'extern "C"' is for builds by C++ compilers;
+   although this is not generally supported in C code supporting it here
+   has little cost and some practical benefit (sr 110532).  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char is_selinux_enabled (void);
+int
+main (void)
+{
+return is_selinux_enabled ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"
+then :
+  ac_cv_lib_selinux_is_selinux_enabled=yes
+else case e in #(
+  e) ac_cv_lib_selinux_is_selinux_enabled=no ;;
+esac
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_selinux_is_selinux_enabled" >&5
+printf "%s\n" "$ac_cv_lib_selinux_is_selinux_enabled" >&6; }
+if test "x$ac_cv_lib_selinux_is_selinux_enabled" = xyes
+then :
+  have_selinux=yes
+else case e in #(
+  e) have_selinux=no ;;
+esac
+fi
+
+  if test x$with_selinux = xyes ; then
+    if test x$have_selinux = xno ; then
+      as_fn_error $? "SELinux explicitly required, but SELinux library not found" "$LINENO" 5
+    fi
+  fi
+fi
+# Check if we're building with SELinux support.
+if test "x$have_selinux" = xyes; then
+
+printf "%s\n" "#define HAVE_SELINUX 1" >>confdefs.h
+
+
+  # See if we have the libaudit library
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for audit_log_user_avc_message in -laudit" >&5
+printf %s "checking for audit_log_user_avc_message in -laudit... " >&6; }
+if test ${ac_cv_lib_audit_audit_log_user_avc_message+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) ac_check_lib_save_LIBS=$LIBS
+LIBS="-laudit  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.
+   The 'extern "C"' is for builds by C++ compilers;
+   although this is not generally supported in C code supporting it here
+   has little cost and some practical benefit (sr 110532).  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char audit_log_user_avc_message (void);
+int
+main (void)
+{
+return audit_log_user_avc_message ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"
+then :
+  ac_cv_lib_audit_audit_log_user_avc_message=yes
+else case e in #(
+  e) ac_cv_lib_audit_audit_log_user_avc_message=no ;;
+esac
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_audit_audit_log_user_avc_message" >&5
+printf "%s\n" "$ac_cv_lib_audit_audit_log_user_avc_message" >&6; }
+if test "x$ac_cv_lib_audit_audit_log_user_avc_message" = xyes
+then :
+  have_libaudit=yes
+else case e in #(
+  e) have_libaudit=no ;;
+esac
+fi
+
+  if test "x$have_libaudit" = xyes; then
+
+printf "%s\n" "#define HAVE_LIBAUDIT 1" >>confdefs.h
+
+  fi
+
+
+  # See if we have the libcap library
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for cap_init in -lcap" >&5
+printf %s "checking for cap_init in -lcap... " >&6; }
+if test ${ac_cv_lib_cap_cap_init+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) ac_check_lib_save_LIBS=$LIBS
+LIBS="-lcap  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.
+   The 'extern "C"' is for builds by C++ compilers;
+   although this is not generally supported in C code supporting it here
+   has little cost and some practical benefit (sr 110532).  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char cap_init (void);
+int
+main (void)
+{
+return cap_init ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"
+then :
+  ac_cv_lib_cap_cap_init=yes
+else case e in #(
+  e) ac_cv_lib_cap_cap_init=no ;;
+esac
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cap_cap_init" >&5
+printf "%s\n" "$ac_cv_lib_cap_cap_init" >&6; }
+if test "x$ac_cv_lib_cap_cap_init" = xyes
+then :
+  have_libcap=yes
+else case e in #(
+  e) have_libcap=no ;;
+esac
+fi
+
+  if test "x$have_libcap" = xyes; then
+
+printf "%s\n" "#define HAVE_LIBCAP 1" >>confdefs.h
+
+  fi
+
+fi
+
+
+no_fortify_source="-Wp,-U_FORTIFY_SOURCE"
+fortify_source="${no_fortify_source}"
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for maximum supported _FORTIFY_SOURCE level" >&5
+printf %s "checking for maximum supported _FORTIFY_SOURCE level... " >&6; }
+if test ${libc_cv_supported_fortify_source+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e)
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main (void)
+{
+__builtin_dynamic_object_size("", 0)
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"
+then :
+  libc_cv_supported_fortify_source=3
+else case e in #(
+  e) libc_cv_supported_fortify_source=2 ;;
+esac
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
+    conftest$ac_exeext conftest.$ac_ext
+ ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_supported_fortify_source" >&5
+printf "%s\n" "$libc_cv_supported_fortify_source" >&6; }
+
+case $enable_fortify_source in #(
+  yes) :
+    libc_cv_fortify_source=yes enable_fortify_source=$libc_cv_supported_fortify_source ;; #(
+  1|2) :
+    libc_cv_fortify_source=yes ;; #(
+  3) :
+    if test $libc_cv_supported_fortify_source = 3
+then :
+  libc_cv_fortify_source=yes
+else case e in #(
+  e) as_fn_error $? "Compiler doesn't provide necessary support for _FORTIFY_SOURCE=3" "$LINENO" 5 ;;
+esac
+fi ;; #(
+  *) :
+    libc_cv_fortify_source=no ;;
+esac
+
+if test "$libc_cv_fortify_source" = yes
+then :
+  fortify_source="${fortify_source},-D_FORTIFY_SOURCE=${enable_fortify_source}"
+
+fi
+
+
+
+
+
+config_vars="$config_vars
+supported-fortify = $libc_cv_supported_fortify_source"
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the assembler requires one version per symbol" >&5
+printf %s "checking whether the assembler requires one version per symbol... " >&6; }
+if test ${libc_cv_symver_needs_alias+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e)   cat > conftest.s <<EOF
+        .text
+testfunc:
+        .globl testfunc
+        .symver testfunc, testfunc1@VERSION1
+        .symver testfunc, testfunc1@VERSION2
+EOF
+  libc_cv_symver_needs_alias=no
+  if ${CC-cc} $ASFLAGS -c conftest.s 2>&5; then
+    libc_cv_symver_needs_alias=no
+  else
+    libc_cv_symver_needs_alias=yes
+  fi
+  rm conftest.*
+ ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_symver_needs_alias" >&5
+printf "%s\n" "$libc_cv_symver_needs_alias" >&6; }
+if test "$libc_cv_symver_needs_alias" = yes; then
+  printf "%s\n" "#define SYMVER_NEEDS_ALIAS 1" >>confdefs.h
+
+fi
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for __builtin_trap with no external dependencies" >&5
+printf %s "checking for __builtin_trap with no external dependencies... " >&6; }
+if test ${libc_cv_builtin_trap+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) libc_cv_builtin_trap=no
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main (void)
+{
+__builtin_trap ()
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+
+libc_undefs=`$NM -u conftest.o |
+  LC_ALL=C $AWK '$1 == "U" { print $2 | "sort -u"; next } { exit(1) }' \
+    2>&5` || {
+  as_fn_error $? "confusing output from $NM -u" "$LINENO" 5
+}
+echo >&5 "libc_undefs='$libc_undefs'"
+if test -z "$libc_undefs"; then
+  libc_cv_builtin_trap=yes
+fi
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_builtin_trap" >&5
+printf "%s\n" "$libc_cv_builtin_trap" >&6; }
+if test $libc_cv_builtin_trap = yes; then
+  printf "%s\n" "#define HAVE_BUILTIN_TRAP 1" >>confdefs.h
+
+fi
+
+ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C++ compiler supports thread_local" >&5
+printf %s "checking whether the C++ compiler supports thread_local... " >&6; }
+if test ${libc_cv_cxx_thread_local+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e)
+old_CXXFLAGS="$CXXFLAGS"
+CXXFLAGS="$CXXFLAGS -std=gnu++11"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <thread>
+
+// Compiler support.
+struct S
+{
+  S ();
+  ~S ();
+};
+thread_local S s;
+S * get () { return &s; }
+
+// libstdc++ support.
+#ifndef _GLIBCXX_HAVE___CXA_THREAD_ATEXIT_IMPL
+#error __cxa_thread_atexit_impl not supported
+#endif
+
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"
+then :
+  libc_cv_cxx_thread_local=yes
+else case e in #(
+  e) libc_cv_cxx_thread_local=no ;;
+esac
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+CXXFLAGS="$old_CXXFLAGS"
+ ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_cxx_thread_local" >&5
+printf "%s\n" "$libc_cv_cxx_thread_local" >&6; }
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+### End of automated tests.
+### Now run sysdeps configure fragments.
+
+# They also can set these variables.
+use_ldconfig=no
+ldd_rewrite_script=no
+libc_cv_sysconfdir=$sysconfdir
+libc_cv_localstatedir=$localstatedir
+libc_cv_gcc_unwind_find_fde=no
+libc_cv_idn=no
+pthread_in_libc=yes
+
+# Iterate over all the sysdep directories we will use, running their
+# configure fragments.
+for dir in $sysnames; do
+  case $dir in
+    /*) dest=$dir ;;
+    *)  dest=$srcdir/$dir ;;
+  esac
+  if test -r $dest/configure; then
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: running configure fragment for $dir" >&5
+printf "%s\n" "running configure fragment for $dir" >&6; }
+    . $dest/configure
+  fi
+done
+
+if test x"$build_mathvec" = xnotset; then
+  build_mathvec=no
+fi
+config_vars="$config_vars
+build-mathvec = $build_mathvec"
+
+
+
+
+if test x$libc_cv_gcc_unwind_find_fde = xyes; then
+  printf "%s\n" "#define EXPORT_UNWIND_FIND_FDE 1" >>confdefs.h
+
+fi
+
+
+# A sysdeps configure fragment can reset this if IFUNC is not actually
+# usable even though the assembler knows how to generate the symbol type.
+if test x"$libc_cv_ld_gnu_indirect_function" = xyes; then
+  printf "%s\n" "#define HAVE_IFUNC 1" >>confdefs.h
+
+fi
+config_vars="$config_vars
+have-ifunc = $libc_cv_ld_gnu_indirect_function"
+
+if test x"$libc_cv_gcc_indirect_function" = xyes; then
+  printf "%s\n" "#define HAVE_GCC_IFUNC 1" >>confdefs.h
+
+fi
+config_vars="$config_vars
+have-gcc-ifunc = $libc_cv_gcc_indirect_function"
+
+# This is far from the AC_ARG_ENABLE that sets it so that a sysdeps
+# configure fragment can override the value to prevent this AC_DEFINE.
+
+if test "x$use_nscd" != xno; then
+  printf "%s\n" "#define USE_NSCD 1" >>confdefs.h
+
+fi
+if test "x$build_nscd" = xdefault; then
+  build_nscd=$use_nscd
+fi
+
+
+
+
+
+
+
+
+if test x$use_ldconfig = xyes; then
+  printf "%s\n" "#define USE_LDCONFIG 1" >>confdefs.h
+
+fi
+
+
+
+
+
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether -fPIC is default" >&5
+printf %s "checking whether -fPIC is default... " >&6; }
+if test ${libc_cv_pic_default+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) libc_cv_pic_default=yes
+cat > conftest.c <<EOF
+#if defined __PIC__ || defined __pic__ || defined PIC || defined pic
+# error PIC is default.
+#endif
+EOF
+if eval "${CC-cc} -S conftest.c 2>&5 1>&5"; then
+  libc_cv_pic_default=no
+fi
+rm -f conftest.* ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_pic_default" >&5
+printf "%s\n" "$libc_cv_pic_default" >&6; }
+config_vars="$config_vars
+build-pic-default = $libc_cv_pic_default"
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether -fPIE is default" >&5
+printf %s "checking whether -fPIE is default... " >&6; }
+if test ${libc_cv_cc_pie_default+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) libc_cv_cc_pie_default=yes
+cat > conftest.c <<EOF
+#if defined __PIE__ || defined __pie__ || defined PIE || defined pie
+# error PIE is default.
+#endif
+EOF
+if eval "${CC-cc} -S conftest.c 2>&5 1>&5"; then
+  libc_cv_cc_pie_default=no
+fi
+rm -f conftest.* ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_cc_pie_default" >&5
+printf "%s\n" "$libc_cv_cc_pie_default" >&6; }
+config_vars="$config_vars
+cc-pie-default = $libc_cv_cc_pie_default"
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we can build programs as PIE" >&5
+printf %s "checking if we can build programs as PIE... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifdef PIE_UNSUPPORTED
+# error PIE is not supported
+#endif
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  libc_cv_pie_supported=yes
+else case e in #(
+  e) libc_cv_pie_supported=no ;;
+esac
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_pie_supported" >&5
+printf "%s\n" "$libc_cv_pie_supported" >&6; }
+# Disable build-pie-default if target does not support it or glibc is
+# configured with --disable-default-pie.
+if test "x$default_pie" = xno; then
+  build_pie_default=no
+else
+  build_pie_default=$libc_cv_pie_supported
+fi
+config_vars="$config_vars
+build-pie-default = $build_pie_default"
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we can build static PIE programs" >&5
+printf %s "checking if we can build static PIE programs... " >&6; }
+libc_cv_static_pie_supported=$libc_cv_pie_supported
+if test "x$libc_cv_pie_supported" != xno \
+   -a "$libc_cv_no_dynamic_linker" = yes; then
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifndef SUPPORT_STATIC_PIE
+# error static PIE is not supported
+#endif
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  libc_cv_static_pie_supported=yes
+else case e in #(
+  e) libc_cv_static_pie_supported=no ;;
+esac
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_static_pie_supported" >&5
+printf "%s\n" "$libc_cv_static_pie_supported" >&6; }
+
+# Enable static-pie only if it is available and glibc isn't configured
+# with --disable-default-pie.
+if test "x$default_pie" = xno; then
+  libc_cv_static_pie=no
+else
+  libc_cv_static_pie=$libc_cv_static_pie_supported
+fi
+if test "$libc_cv_static_pie" = "yes"; then
+  printf "%s\n" "#define ENABLE_STATIC_PIE 1" >>confdefs.h
+
+fi
+config_vars="$config_vars
+enable-static-pie = $libc_cv_static_pie"
+
+# Set the `multidir' variable by grabbing the variable from the compiler.
+# We do it once and save the result in a generated makefile.
+libc_cv_multidir=`${CC-cc} $CFLAGS $CPPFLAGS -print-multi-directory`
+
+
+
+
+
+
+
+
+
+VERSION=`sed -n -e 's/^#define VERSION "\([^"]*\)"/\1/p' < $srcdir/version.h`
+RELEASE=`sed -n -e 's/^#define RELEASE "\([^"]*\)"/\1/p' < $srcdir/version.h`
+
+
+
+if test "$pthread_in_libc" = yes; then
+  printf "%s\n" "#define PTHREAD_IN_LIBC 1" >>confdefs.h
+
+fi
+
+
+ac_config_files="$ac_config_files config.make Makefile"
+
+ac_config_commands="$ac_config_commands default"
+
+cat >confcache <<\_ACEOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems.  If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# 'ac_cv_env_foo' variables (set or unset) will be overridden when
+# loading this file, other *unset* 'ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, we kill variables containing newlines.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(
+  for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
+    eval ac_val=\$$ac_var
+    case $ac_val in #(
+    *${as_nl}*)
+      case $ac_var in #(
+      *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+      esac
+      case $ac_var in #(
+      _ | IFS | as_nl) ;; #(
+      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+      *) { eval $ac_var=; unset $ac_var;} ;;
+      esac ;;
+    esac
+  done
+
+  (set) 2>&1 |
+    case $as_nl`(ac_space=' '; set) 2>&1` in #(
+    *${as_nl}ac_space=\ *)
+      # 'set' does not quote correctly, so add quotes: double-quote
+      # substitution turns \\\\ into \\, and sed turns \\ into \.
+      sed -n \
+	"s/'/'\\\\''/g;
+	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+      ;; #(
+    *)
+      # 'set' quotes correctly as required by POSIX, so do not add quotes.
+      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+      ;;
+    esac |
+    sort
+) |
+  sed '
+     /^ac_cv_env_/b end
+     t clear
+     :clear
+     s/^\([^=]*\)=\(.*[{}].*\)$/test ${\1+y} || &/
+     t end
+     s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+     :end' >>confcache
+if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
+  if test -w "$cache_file"; then
+    if test "x$cache_file" != "x/dev/null"; then
+      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
+printf "%s\n" "$as_me: updating cache $cache_file" >&6;}
+      if test ! -f "$cache_file" || test -h "$cache_file"; then
+	cat confcache >"$cache_file"
+      else
+        case $cache_file in #(
+        */* | ?:*)
+	  mv -f confcache "$cache_file"$$ &&
+	  mv -f "$cache_file"$$ "$cache_file" ;; #(
+        *)
+	  mv -f confcache "$cache_file" ;;
+	esac
+      fi
+    fi
+  else
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
+printf "%s\n" "$as_me: not updating unwritable cache $cache_file" >&6;}
+  fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+DEFS=-DHAVE_CONFIG_H
+
+ac_libobjs=
+ac_ltlibobjs=
+U=
+for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+  # 1. Remove the extension, and $U if already installed.
+  ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
+  ac_i=`printf "%s\n" "$ac_i" | sed "$ac_script"`
+  # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
+  #    will be set to the directory where LIBOBJS objects are built.
+  as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
+  as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
+done
+LIBOBJS=$ac_libobjs
+
+LTLIBOBJS=$ac_ltlibobjs
+
+
+
+: "${CONFIG_STATUS=./config.status}"
+ac_write_fail=0
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
+printf "%s\n" "$as_me: creating $CONFIG_STATUS" >&6;}
+as_write_fail=0
+cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
+
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
+then :
+  emulate sh
+  NULLCMD=:
+  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else case e in #(
+  e) case `(set -o) 2>/dev/null` in #(
+  *posix*) :
+    set -o posix ;; #(
+  *) :
+     ;;
+esac ;;
+esac
+fi
+
+
+
+# Reset variables that may have inherited troublesome values from
+# the environment.
+
+# IFS needs to be set, to space, tab, and newline, in precisely that order.
+# (If _AS_PATH_WALK were called with IFS unset, it would have the
+# side effect of setting IFS to empty, thus disabling word splitting.)
+# Quoting is to prevent editors from complaining about space-tab.
+as_nl='
+'
+export as_nl
+IFS=" ""	$as_nl"
+
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# Ensure predictable behavior from utilities with locale-dependent output.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# We cannot yet rely on "unset" to work, but we need these variables
+# to be unset--not just set to an empty or harmless value--now, to
+# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh).  This construct
+# also avoids known problems related to "unset" and subshell syntax
+# in other old shells (e.g. bash 2.01 and pdksh 5.2.14).
+for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH
+do eval test \${$as_var+y} \
+  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+
+# Ensure that fds 0, 1, and 2 are open.
+if (exec 3>&0) 2>/dev/null; then :; else exec 0</dev/null; fi
+if (exec 3>&1) 2>/dev/null; then :; else exec 1>/dev/null; fi
+if (exec 3>&2)            ; then :; else exec 2>/dev/null; fi
+
+# The user is always right.
+if ${PATH_SEPARATOR+false} :; then
+  PATH_SEPARATOR=:
+  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+      PATH_SEPARATOR=';'
+  }
+fi
+
+
+# Find who we are.  Look in the path if we contain no directory separator.
+as_myself=
+case $0 in #((
+  *[\\/]* ) as_myself=$0 ;;
+  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    test -r "$as_dir$0" && as_myself=$as_dir$0 && break
+  done
+IFS=$as_save_IFS
+
+     ;;
+esac
+# We did not find ourselves, most probably we were run as 'sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+  as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+  printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+  exit 1
+fi
+
+
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+  as_status=$1; test $as_status -eq 0 && as_status=1
+  if test "$4"; then
+    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+  fi
+  printf "%s\n" "$as_me: error: $2" >&2
+  as_fn_exit $as_status
+} # as_fn_error
+
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+  return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+  set +e
+  as_fn_set_status $1
+  exit $1
+} # as_fn_exit
+
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+  { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null
+then :
+  eval 'as_fn_append ()
+  {
+    eval $1+=\$2
+  }'
+else case e in #(
+  e) as_fn_append ()
+  {
+    eval $1=\$$1\$2
+  } ;;
+esac
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null
+then :
+  eval 'as_fn_arith ()
+  {
+    as_val=$(( $* ))
+  }'
+else case e in #(
+  e) as_fn_arith ()
+  {
+    as_val=`expr "$@" || test $? -eq 1`
+  } ;;
+esac
+fi # as_fn_arith
+
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+  as_basename=basename
+else
+  as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+  as_dirname=dirname
+else
+  as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+	 X"$0" : 'X\(//\)$' \| \
+	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+printf "%s\n" X/"$0" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+
+# Determine whether it's possible to make 'echo' print without a newline.
+# These variables are no longer used directly by Autoconf, but are AC_SUBSTed
+# for compatibility with existing Makefiles.
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+  case `echo 'xy\c'` in
+  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
+  xy)  ECHO_C='\c';;
+  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
+       ECHO_T='	';;
+  esac;;
+*)
+  ECHO_N='-n';;
+esac
+
+# For backward compatibility with old third-party macros, we provide
+# the shell variables $as_echo and $as_echo_n.  New code should use
+# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively.
+as_echo='printf %s\n'
+as_echo_n='printf %s'
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+  rm -f conf$$.dir/conf$$.file
+else
+  rm -f conf$$.dir
+  mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+  if ln -s conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s='ln -s'
+    # ... but there are two gotchas:
+    # 1) On MSYS, both 'ln -s file dir' and 'ln file dir' fail.
+    # 2) DJGPP < 2.04 has no symlinks; 'ln -s' creates a wrapper executable.
+    # In both cases, we have to default to 'cp -pR'.
+    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+      as_ln_s='cp -pR'
+  elif ln conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s=ln
+  else
+    as_ln_s='cp -pR'
+  fi
+else
+  as_ln_s='cp -pR'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+  case $as_dir in #(
+  -*) as_dir=./$as_dir;;
+  esac
+  test -d "$as_dir" || eval $as_mkdir_p || {
+    as_dirs=
+    while :; do
+      case $as_dir in #(
+      *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+      *) as_qdir=$as_dir;;
+      esac
+      as_dirs="'$as_qdir' $as_dirs"
+      as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_dir" : 'X\(//\)[^/]' \| \
+	 X"$as_dir" : 'X\(//\)$' \| \
+	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+printf "%s\n" X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+      test -d "$as_dir" && break
+    done
+    test -z "$as_dirs" || eval "mkdir $as_dirs"
+  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+if mkdir -p . 2>/dev/null; then
+  as_mkdir_p='mkdir -p "$as_dir"'
+else
+  test -d ./-p && rmdir ./-p
+  as_mkdir_p=false
+fi
+
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+  test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
+
+# Sed expression to map a string onto a valid CPP name.
+as_sed_cpp="y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
+as_tr_cpp="eval sed '$as_sed_cpp'" # deprecated
+
+# Sed expression to map a string onto a valid variable name.
+as_sed_sh="y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
+as_tr_sh="eval sed '$as_sed_sh'" # deprecated
+
+
+exec 6>&1
+## ----------------------------------- ##
+## Main body of $CONFIG_STATUS script. ##
+## ----------------------------------- ##
+_ASEOF
+test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# Save the log message, to keep $0 and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling.
+ac_log="
+This file was extended by GNU C Library $as_me (see version.h), which was
+generated by GNU Autoconf 2.72.  Invocation command line was
+
+  CONFIG_FILES    = $CONFIG_FILES
+  CONFIG_HEADERS  = $CONFIG_HEADERS
+  CONFIG_LINKS    = $CONFIG_LINKS
+  CONFIG_COMMANDS = $CONFIG_COMMANDS
+  $ $0 $@
+
+on `(hostname || uname -n) 2>/dev/null | sed 1q`
+"
+
+_ACEOF
+
+case $ac_config_files in *"
+"*) set x $ac_config_files; shift; ac_config_files=$*;;
+esac
+
+case $ac_config_headers in *"
+"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
+esac
+
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+# Files that config.status was made for.
+config_files="$ac_config_files"
+config_headers="$ac_config_headers"
+config_commands="$ac_config_commands"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ac_cs_usage="\
+'$as_me' instantiates files and other configuration actions
+from templates according to the current configuration.  Unless the files
+and actions are specified as TAGs, all are instantiated by default.
+
+Usage: $0 [OPTION]... [TAG]...
+
+  -h, --help       print this help, then exit
+  -V, --version    print version number and configuration settings, then exit
+      --config     print configuration, then exit
+  -q, --quiet, --silent
+                   do not print progress messages
+  -d, --debug      don't remove temporary files
+      --recheck    update $as_me by reconfiguring in the same conditions
+      --file=FILE[:TEMPLATE]
+                   instantiate the configuration file FILE
+      --header=FILE[:TEMPLATE]
+                   instantiate the configuration header FILE
+
+Configuration files:
+$config_files
+
+Configuration headers:
+$config_headers
+
+Configuration commands:
+$config_commands
+
+Report bugs to <https://sourceware.org/bugzilla/>.
+GNU C Library home page: <https://www.gnu.org/software/glibc/>.
+General help using GNU software: <https://www.gnu.org/gethelp/>."
+
+_ACEOF
+ac_cs_config=`printf "%s\n" "$ac_configure_args" | sed "$ac_safe_unquote"`
+ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\''/g"`
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_cs_config='$ac_cs_config_escaped'
+ac_cs_version="\\
+GNU C Library config.status (see version.h)
+configured by $0, generated by GNU Autoconf 2.72,
+  with options \\"\$ac_cs_config\\"
+
+Copyright (C) 2023 Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+
+ac_pwd='$ac_pwd'
+srcdir='$srcdir'
+INSTALL='$INSTALL'
+test -n "\$AWK" || AWK=awk
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# The default lists apply if the user does not specify any file.
+ac_need_defaults=:
+while test $# != 0
+do
+  case $1 in
+  --*=?*)
+    ac_option=`expr "X$1" : 'X\([^=]*\)='`
+    ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
+    ac_shift=:
+    ;;
+  --*=)
+    ac_option=`expr "X$1" : 'X\([^=]*\)='`
+    ac_optarg=
+    ac_shift=:
+    ;;
+  *)
+    ac_option=$1
+    ac_optarg=$2
+    ac_shift=shift
+    ;;
+  esac
+
+  case $ac_option in
+  # Handling of the options.
+  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+    ac_cs_recheck=: ;;
+  --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
+    printf "%s\n" "$ac_cs_version"; exit ;;
+  --config | --confi | --conf | --con | --co | --c )
+    printf "%s\n" "$ac_cs_config"; exit ;;
+  --debug | --debu | --deb | --de | --d | -d )
+    debug=: ;;
+  --file | --fil | --fi | --f )
+    $ac_shift
+    case $ac_optarg in
+    *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    '') as_fn_error $? "missing file argument" ;;
+    esac
+    as_fn_append CONFIG_FILES " '$ac_optarg'"
+    ac_need_defaults=false;;
+  --header | --heade | --head | --hea )
+    $ac_shift
+    case $ac_optarg in
+    *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    esac
+    as_fn_append CONFIG_HEADERS " '$ac_optarg'"
+    ac_need_defaults=false;;
+  --he | --h)
+    # Conflict between --help and --header
+    as_fn_error $? "ambiguous option: '$1'
+Try '$0 --help' for more information.";;
+  --help | --hel | -h )
+    printf "%s\n" "$ac_cs_usage"; exit ;;
+  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+  | -silent | --silent | --silen | --sile | --sil | --si | --s)
+    ac_cs_silent=: ;;
+
+  # This is an error.
+  -*) as_fn_error $? "unrecognized option: '$1'
+Try '$0 --help' for more information." ;;
+
+  *) as_fn_append ac_config_targets " $1"
+     ac_need_defaults=false ;;
+
+  esac
+  shift
+done
+
+ac_configure_extra_args=
+
+if $ac_cs_silent; then
+  exec 6>/dev/null
+  ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+if \$ac_cs_recheck; then
+  set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+  shift
+  \printf "%s\n" "running CONFIG_SHELL=$SHELL \$*" >&6
+  CONFIG_SHELL='$SHELL'
+  export CONFIG_SHELL
+  exec "\$@"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+exec 5>>config.log
+{
+  echo
+  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## Running $as_me. ##
+_ASBOX
+  printf "%s\n" "$ac_log"
+} >&5
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+#
+# INIT-COMMANDS
+#
+config_vars='$config_vars'
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+
+# Handling of arguments.
+for ac_config_target in $ac_config_targets
+do
+  case $ac_config_target in
+    "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
+    "config.make") CONFIG_FILES="$CONFIG_FILES config.make" ;;
+    "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+    "default") CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
+
+  *) as_fn_error $? "invalid argument: '$ac_config_target'" "$LINENO" 5;;
+  esac
+done
+
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used.  Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+  test ${CONFIG_FILES+y} || CONFIG_FILES=$config_files
+  test ${CONFIG_HEADERS+y} || CONFIG_HEADERS=$config_headers
+  test ${CONFIG_COMMANDS+y} || CONFIG_COMMANDS=$config_commands
+fi
+
+# Have a temporary directory for convenience.  Make it in the build tree
+# simply because there is no reason against having it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
+# Hook for its removal unless debugging.
+# Note that there is a small window in which the directory will not be cleaned:
+# after its creation but before its name has been assigned to '$tmp'.
+$debug ||
+{
+  tmp= ac_tmp=
+  trap 'exit_status=$?
+  : "${ac_tmp:=$tmp}"
+  { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
+' 0
+  trap 'as_fn_exit 1' 1 2 13 15
+}
+# Create a (secure) tmp directory for tmp files.
+
+{
+  tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
+  test -d "$tmp"
+}  ||
+{
+  tmp=./conf$$-$RANDOM
+  (umask 077 && mkdir "$tmp")
+} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
+ac_tmp=$tmp
+
+# Set up the scripts for CONFIG_FILES section.
+# No need to generate them if there are no CONFIG_FILES.
+# This happens for instance with './config.status config.h'.
+if test -n "$CONFIG_FILES"; then
+
+
+ac_cr=`echo X | tr X '\015'`
+# On cygwin, bash can eat \r inside `` if the user requested igncr.
+# But we know of no other shell where ac_cr would be empty at this
+# point, so we can use a bashism as a fallback.
+if test "x$ac_cr" = x; then
+  eval ac_cr=\$\'\\r\'
+fi
+ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
+if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
+  ac_cs_awk_cr='\\r'
+else
+  ac_cs_awk_cr=$ac_cr
+fi
+
+echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
+_ACEOF
+
+
+{
+  echo "cat >conf$$subs.awk <<_ACEOF" &&
+  echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
+  echo "_ACEOF"
+} >conf$$subs.sh ||
+  as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
+ac_delim='%!_!# '
+for ac_last_try in false false false false false :; do
+  . ./conf$$subs.sh ||
+    as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+
+  ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
+  if test $ac_delim_n = $ac_delim_num; then
+    break
+  elif $ac_last_try; then
+    as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+  else
+    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+  fi
+done
+rm -f conf$$subs.sh
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
+_ACEOF
+sed -n '
+h
+s/^/S["/; s/!.*/"]=/
+p
+g
+s/^[^!]*!//
+:repl
+t repl
+s/'"$ac_delim"'$//
+t delim
+:nl
+h
+s/\(.\{148\}\)..*/\1/
+t more1
+s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
+p
+n
+b repl
+:more1
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t nl
+:delim
+h
+s/\(.\{148\}\)..*/\1/
+t more2
+s/["\\]/\\&/g; s/^/"/; s/$/"/
+p
+b
+:more2
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t delim
+' <conf$$subs.awk | sed '
+/^[^""]/{
+  N
+  s/\n//
+}
+' >>$CONFIG_STATUS || ac_write_fail=1
+rm -f conf$$subs.awk
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+_ACAWK
+cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
+  for (key in S) S_is_set[key] = 1
+  FS = ""
+
+}
+{
+  line = $ 0
+  nfields = split(line, field, "@")
+  substed = 0
+  len = length(field[1])
+  for (i = 2; i < nfields; i++) {
+    key = field[i]
+    keylen = length(key)
+    if (S_is_set[key]) {
+      value = S[key]
+      line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
+      len += length(value) + length(field[++i])
+      substed = 1
+    } else
+      len += 1 + keylen
+  }
+
+  print line
+}
+
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
+  sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
+else
+  cat
+fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
+  || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
+_ACEOF
+
+# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
+# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+  ac_vpsub='/^[	 ]*VPATH[	 ]*=[	 ]*/{
+h
+s///
+s/^/:/
+s/[	 ]*$/:/
+s/:\$(srcdir):/:/g
+s/:\${srcdir}:/:/g
+s/:@srcdir@:/:/g
+s/^:*//
+s/:*$//
+x
+s/\(=[	 ]*\).*/\1/
+G
+s/\n//
+s/^[^=]*=[	 ]*$//
+}'
+fi
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+fi # test -n "$CONFIG_FILES"
+
+# Set up the scripts for CONFIG_HEADERS section.
+# No need to generate them if there are no CONFIG_HEADERS.
+# This happens for instance with './config.status Makefile'.
+if test -n "$CONFIG_HEADERS"; then
+cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
+BEGIN {
+_ACEOF
+
+# Transform confdefs.h into an awk script 'defines.awk', embedded as
+# here-document in config.status, that substitutes the proper values into
+# config.h.in to produce config.h.
+
+# Create a delimiter string that does not exist in confdefs.h, to ease
+# handling of long lines.
+ac_delim='%!_!# '
+for ac_last_try in false false :; do
+  ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
+  if test -z "$ac_tt"; then
+    break
+  elif $ac_last_try; then
+    as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
+  else
+    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+  fi
+done
+
+# For the awk script, D is an array of macro values keyed by name,
+# likewise P contains macro parameters if any.  Preserve backslash
+# newline sequences.
+
+ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
+sed -n '
+s/.\{148\}/&'"$ac_delim"'/g
+t rset
+:rset
+s/^[	 ]*#[	 ]*define[	 ][	 ]*/ /
+t def
+d
+:def
+s/\\$//
+t bsnl
+s/["\\]/\\&/g
+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[	 ]*\(.*\)/P["\1"]="\2"\
+D["\1"]=" \3"/p
+s/^ \('"$ac_word_re"'\)[	 ]*\(.*\)/D["\1"]=" \2"/p
+d
+:bsnl
+s/["\\]/\\&/g
+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[	 ]*\(.*\)/P["\1"]="\2"\
+D["\1"]=" \3\\\\\\n"\\/p
+t cont
+s/^ \('"$ac_word_re"'\)[	 ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
+t cont
+d
+:cont
+n
+s/.\{148\}/&'"$ac_delim"'/g
+t clear
+:clear
+s/\\$//
+t bsnlc
+s/["\\]/\\&/g; s/^/"/; s/$/"/p
+d
+:bsnlc
+s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
+b cont
+' <confdefs.h | sed '
+s/'"$ac_delim"'/"\\\
+"/g' >>$CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+  for (key in D) D_is_set[key] = 1
+  FS = ""
+}
+/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
+  line = \$ 0
+  split(line, arg, " ")
+  if (arg[1] == "#") {
+    defundef = arg[2]
+    mac1 = arg[3]
+  } else {
+    defundef = substr(arg[1], 2)
+    mac1 = arg[2]
+  }
+  split(mac1, mac2, "(") #)
+  macro = mac2[1]
+  prefix = substr(line, 1, index(line, defundef) - 1)
+  if (D_is_set[macro]) {
+    # Preserve the white space surrounding the "#".
+    print prefix "define", macro P[macro] D[macro]
+    next
+  } else {
+    # Replace #undef with comments.  This is necessary, for example,
+    # in the case of _POSIX_SOURCE, which is predefined and required
+    # on some systems where configure will not decide to define it.
+    if (defundef == "undef") {
+      print "/*", prefix defundef, macro, "*/"
+      next
+    }
+  }
+}
+{ print }
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+  as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
+fi # test -n "$CONFIG_HEADERS"
+
+
+eval set X "  :F $CONFIG_FILES  :H $CONFIG_HEADERS    :C $CONFIG_COMMANDS"
+shift
+for ac_tag
+do
+  case $ac_tag in
+  :[FHLC]) ac_mode=$ac_tag; continue;;
+  esac
+  case $ac_mode$ac_tag in
+  :[FHL]*:*);;
+  :L* | :C*:*) as_fn_error $? "invalid tag '$ac_tag'" "$LINENO" 5;;
+  :[FH]-) ac_tag=-:-;;
+  :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
+  esac
+  ac_save_IFS=$IFS
+  IFS=:
+  set x $ac_tag
+  IFS=$ac_save_IFS
+  shift
+  ac_file=$1
+  shift
+
+  case $ac_mode in
+  :L) ac_source=$1;;
+  :[FH])
+    ac_file_inputs=
+    for ac_f
+    do
+      case $ac_f in
+      -) ac_f="$ac_tmp/stdin";;
+      *) # Look for the file first in the build tree, then in the source tree
+	 # (if the path is not absolute).  The absolute path cannot be DOS-style,
+	 # because $ac_f cannot contain ':'.
+	 test -f "$ac_f" ||
+	   case $ac_f in
+	   [\\/$]*) false;;
+	   *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
+	   esac ||
+	   as_fn_error 1 "cannot find input file: '$ac_f'" "$LINENO" 5;;
+      esac
+      case $ac_f in *\'*) ac_f=`printf "%s\n" "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+      as_fn_append ac_file_inputs " '$ac_f'"
+    done
+
+    # Let's still pretend it is 'configure' which instantiates (i.e., don't
+    # use $as_me), people would be surprised to read:
+    #    /* config.h.  Generated by config.status.  */
+    configure_input='Generated from '`
+	  printf "%s\n" "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
+	`' by configure.'
+    if test x"$ac_file" != x-; then
+      configure_input="$ac_file.  $configure_input"
+      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
+printf "%s\n" "$as_me: creating $ac_file" >&6;}
+    fi
+    # Neutralize special characters interpreted by sed in replacement strings.
+    case $configure_input in #(
+    *\&* | *\|* | *\\* )
+       ac_sed_conf_input=`printf "%s\n" "$configure_input" |
+       sed 's/[\\\\&|]/\\\\&/g'`;; #(
+    *) ac_sed_conf_input=$configure_input;;
+    esac
+
+    case $ac_tag in
+    *:-:* | *:-) cat >"$ac_tmp/stdin" \
+      || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
+    esac
+    ;;
+  esac
+
+  ac_dir=`$as_dirname -- "$ac_file" ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$ac_file" : 'X\(//\)[^/]' \| \
+	 X"$ac_file" : 'X\(//\)$' \| \
+	 X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
+printf "%s\n" X"$ac_file" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+  as_dir="$ac_dir"; as_fn_mkdir_p
+  ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+  ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'`
+  # A ".." for each directory in $ac_dir_suffix.
+  ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+  case $ac_top_builddir_sub in
+  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+  esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+  .)  # We are building in place.
+    ac_srcdir=.
+    ac_top_srcdir=$ac_top_builddir_sub
+    ac_abs_top_srcdir=$ac_pwd ;;
+  [\\/]* | ?:[\\/]* )  # Absolute name.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir
+    ac_abs_top_srcdir=$srcdir ;;
+  *) # Relative name.
+    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_build_prefix$srcdir
+    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+
+  case $ac_mode in
+  :F)
+  #
+  # CONFIG_FILE
+  #
+
+  case $INSTALL in
+  [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+  *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
+  esac
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# If the template does not know about datarootdir, expand it.
+# FIXME: This hack should be removed a few years after 2.60.
+ac_datarootdir_hack=; ac_datarootdir_seen=
+ac_sed_dataroot='
+/datarootdir/ {
+  p
+  q
+}
+/@datadir@/p
+/@docdir@/p
+/@infodir@/p
+/@localedir@/p
+/@mandir@/p'
+case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
+*datarootdir*) ac_datarootdir_seen=yes;;
+*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+printf "%s\n" "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+  ac_datarootdir_hack='
+  s&@datadir@&$datadir&g
+  s&@docdir@&$docdir&g
+  s&@infodir@&$infodir&g
+  s&@localedir@&$localedir&g
+  s&@mandir@&$mandir&g
+  s&\\\${datarootdir}&$datarootdir&g' ;;
+esac
+_ACEOF
+
+# Neutralize VPATH when '$srcdir' = '.'.
+# Shell code in configure.ac might set extrasub.
+# FIXME: do we really want to maintain this feature?
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_sed_extra="$ac_vpsub
+$extrasub
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s|@configure_input@|$ac_sed_conf_input|;t t
+s&@top_builddir@&$ac_top_builddir_sub&;t t
+s&@top_build_prefix@&$ac_top_build_prefix&;t t
+s&@srcdir@&$ac_srcdir&;t t
+s&@abs_srcdir@&$ac_abs_srcdir&;t t
+s&@top_srcdir@&$ac_top_srcdir&;t t
+s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
+s&@builddir@&$ac_builddir&;t t
+s&@abs_builddir@&$ac_abs_builddir&;t t
+s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
+s&@INSTALL@&$ac_INSTALL&;t t
+$ac_datarootdir_hack
+"
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
+  >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+
+test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
+  { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
+  { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' \
+      "$ac_tmp/out"`; test -z "$ac_out"; } &&
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable 'datarootdir'
+which seems to be undefined.  Please make sure it is defined" >&5
+printf "%s\n" "$as_me: WARNING: $ac_file contains a reference to the variable 'datarootdir'
+which seems to be undefined.  Please make sure it is defined" >&2;}
+
+  rm -f "$ac_tmp/stdin"
+  case $ac_file in
+  -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
+  *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
+  esac \
+  || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ ;;
+  :H)
+  #
+  # CONFIG_HEADER
+  #
+  if test x"$ac_file" != x-; then
+    {
+      printf "%s\n" "/* $configure_input  */" >&1 \
+      && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
+    } >"$ac_tmp/config.h" \
+      || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+    if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
+      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
+printf "%s\n" "$as_me: $ac_file is unchanged" >&6;}
+    else
+      rm -f "$ac_file"
+      mv "$ac_tmp/config.h" "$ac_file" \
+	|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
+    fi
+  else
+    printf "%s\n" "/* $configure_input  */" >&1 \
+      && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
+      || as_fn_error $? "could not create -" "$LINENO" 5
+  fi
+ ;;
+
+  :C)  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
+printf "%s\n" "$as_me: executing $ac_file commands" >&6;}
+ ;;
+  esac
+
+
+  case $ac_file$ac_mode in
+    "default":C)
+case $CONFIG_FILES in *config.make*)
+echo "$config_vars" >> config.make;;
+esac
+test -d bits || mkdir bits ;;
+
+  esac
+done # for ac_tag
+
+
+as_fn_exit 0
+_ACEOF
+ac_clean_files=$ac_clean_files_save
+
+test $ac_write_fail = 0 ||
+  as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
+
+
+# configure is writing to config.log, and then calls config.status.
+# config.status does its own redirection, appending to config.log.
+# Unfortunately, on DOS this fails, as config.log is still kept open
+# by configure, so config.status won't be able to write to it; its
+# output is simply discarded.  So we exec the FD to /dev/null,
+# effectively closing config.log, so it can be properly (re)opened and
+# appended to by config.status.  When coming back to configure, we
+# need to make the FD available again.
+if test "$no_create" != yes; then
+  ac_cs_success=:
+  ac_config_status_args=
+  test "$silent" = yes &&
+    ac_config_status_args="$ac_config_status_args --quiet"
+  exec 5>/dev/null
+  $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
+  exec 5>>config.log
+  # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+  # would make configure fail if this is the last instruction.
+  $ac_cs_success || as_fn_exit 1
+fi
+
+#
+# CONFIG_SUBDIRS section.
+#
+if test "$no_recursion" != yes; then
+
+  # Remove --cache-file, --srcdir, and --disable-option-checking arguments
+  # so they do not pile up.
+  ac_sub_configure_args=
+  ac_prev=
+  eval "set x $ac_configure_args"
+  shift
+  for ac_arg
+  do
+    if test -n "$ac_prev"; then
+      ac_prev=
+      continue
+    fi
+    case $ac_arg in
+    -cache-file | --cache-file | --cache-fil | --cache-fi \
+    | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+      ac_prev=cache_file ;;
+    -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+    | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* \
+    | --c=*)
+      ;;
+    --config-cache | -C)
+      ;;
+    -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+      ac_prev=srcdir ;;
+    -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+      ;;
+    -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+      ac_prev=prefix ;;
+    -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+      ;;
+    --disable-option-checking)
+      ;;
+    *)
+      case $ac_arg in
+      *\'*) ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+      esac
+      as_fn_append ac_sub_configure_args " '$ac_arg'" ;;
+    esac
+  done
+
+  # Always prepend --prefix to ensure using the same prefix
+  # in subdir configurations.
+  ac_arg="--prefix=$prefix"
+  case $ac_arg in
+  *\'*) ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+  esac
+  ac_sub_configure_args="'$ac_arg' $ac_sub_configure_args"
+
+  # Pass --silent
+  if test "$silent" = yes; then
+    ac_sub_configure_args="--silent $ac_sub_configure_args"
+  fi
+
+  # Always prepend --disable-option-checking to silence warnings, since
+  # different subdirs can have different --enable and --with options.
+  ac_sub_configure_args="--disable-option-checking $ac_sub_configure_args"
+
+  ac_popdir=`pwd`
+  for ac_dir in : $subdirs; do test "x$ac_dir" = x: && continue
+
+    # Do not complain, so a configure script can configure whichever
+    # parts of a large source tree are present.
+    test -d "$srcdir/$ac_dir" || continue
+
+    ac_msg="=== configuring in $ac_dir (`pwd`/$ac_dir)"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: $ac_msg" >&5
+    printf "%s\n" "$ac_msg" >&6
+    as_dir="$ac_dir"; as_fn_mkdir_p
+    ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+  ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'`
+  # A ".." for each directory in $ac_dir_suffix.
+  ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+  case $ac_top_builddir_sub in
+  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+  esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+  .)  # We are building in place.
+    ac_srcdir=.
+    ac_top_srcdir=$ac_top_builddir_sub
+    ac_abs_top_srcdir=$ac_pwd ;;
+  [\\/]* | ?:[\\/]* )  # Absolute name.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir
+    ac_abs_top_srcdir=$srcdir ;;
+  *) # Relative name.
+    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_build_prefix$srcdir
+    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+
+    cd "$ac_dir"
+
+    # Check for configure.gnu first; this name is used for a wrapper for
+    # Metaconfig's "Configure" on case-insensitive file systems.
+    if test -f "$ac_srcdir/configure.gnu"; then
+      ac_sub_configure=$ac_srcdir/configure.gnu
+    elif test -f "$ac_srcdir/configure"; then
+      ac_sub_configure=$ac_srcdir/configure
+    else
+      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: no configuration information is in $ac_dir" >&5
+printf "%s\n" "$as_me: WARNING: no configuration information is in $ac_dir" >&2;}
+      ac_sub_configure=
+    fi
+
+    # The recursion is here.
+    if test -n "$ac_sub_configure"; then
+      # Make the cache file name correct relative to the subdirectory.
+      case $cache_file in
+      [\\/]* | ?:[\\/]* ) ac_sub_cache_file=$cache_file ;;
+      *) # Relative name.
+	ac_sub_cache_file=$ac_top_build_prefix$cache_file ;;
+      esac
+
+      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: running $SHELL $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&5
+printf "%s\n" "$as_me: running $SHELL $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&6;}
+      # The eval makes quoting arguments work.
+      eval "\$SHELL \"\$ac_sub_configure\" $ac_sub_configure_args \
+	   --cache-file=\"\$ac_sub_cache_file\" --srcdir=\"\$ac_srcdir\"" ||
+	as_fn_error $? "$ac_sub_configure failed for $ac_dir" "$LINENO" 5
+    fi
+
+    cd "$ac_popdir"
+  done
+fi
+if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+fi
+
+

Property changes on: sources/GNU/glibc/2.40/create-2.40-reenable-DT-HASH-patch/glibc-2.40-new/configure
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: sources/GNU/glibc/2.40/create-2.40-reenable-DT-HASH-patch/glibc-2.40-new/configure.ac
===================================================================
--- sources/GNU/glibc/2.40/create-2.40-reenable-DT-HASH-patch/glibc-2.40-new/configure.ac	(nonexistent)
+++ sources/GNU/glibc/2.40/create-2.40-reenable-DT-HASH-patch/glibc-2.40-new/configure.ac	(revision 394)
@@ -0,0 +1,1815 @@
+dnl Process this file with autoconf to produce a configure script.
+dnl Note we do not use AC_PREREQ here!  See aclocal.m4 for what we use instead.
+AC_INIT([GNU C Library], [(see version.h)], [https://sourceware.org/bugzilla/],
+  [glibc], [https://www.gnu.org/software/glibc/])
+AC_CONFIG_SRCDIR([include/features.h])
+AC_CONFIG_HEADERS([config.h])
+AC_CONFIG_AUX_DIR([scripts])
+
+ACX_PKGVERSION([GNU libc])
+ACX_BUGURL([https://www.gnu.org/software/libc/bugs.html])
+AC_DEFINE_UNQUOTED([PKGVERSION], ["$PKGVERSION"],
+		   [Package description])
+AC_DEFINE_UNQUOTED([REPORT_BUGS_TO], ["$REPORT_BUGS_TO"],
+		   [Bug reporting address])
+
+# Glibc should not depend on any header files
+AC_DEFUN([_AC_INCLUDES_DEFAULT_REQUIREMENTS],
+  [m4_divert_text([DEFAULTS],
+    [ac_includes_default='/* none */'])])
+
+# We require GCC, and by default use its preprocessor.  Override AC_PROG_CPP
+# here to work around the Autoconf issue discussed in
+# <https://sourceware.org/ml/libc-alpha/2013-01/msg00721.html>.
+AC_DEFUN([AC_PROG_CPP],
+[AC_REQUIRE([AC_PROG_CC])dnl
+AC_ARG_VAR([CPP],      [C preprocessor])dnl
+_AC_ARG_VAR_CPPFLAGS()dnl
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+  CPP=
+fi
+if test -z "$CPP"; then
+  CPP="$CC -E"
+fi
+AC_SUBST(CPP)dnl
+])# AC_PROG_CPP
+
+# We require GCC.  Override _AC_PROG_CC_C89 here to work around the Autoconf
+# issue discussed in
+# <https://sourceware.org/ml/libc-alpha/2013-01/msg00757.html>.
+AC_DEFUN([_AC_PROG_CC_C89], [[$1]])
+
+dnl This is here so we can set $subdirs directly based on configure fragments.
+AC_CONFIG_SUBDIRS()
+
+AC_CANONICAL_HOST
+
+AC_PROG_CC
+if test $host != $build; then
+  AC_CHECK_PROGS(BUILD_CC, gcc cc)
+fi
+AC_SUBST(cross_compiling)
+AC_PROG_CPP
+
+# This will get text that should go into config.make.
+config_vars=
+
+AC_ARG_ENABLE([static-c++-tests],
+	      AS_HELP_STRING([--disable-static-c++-tests],
+			     [disable static C++ tests@<:@default=no@:>@]),
+	      [static_cxx_tests=$enableval],
+	      [static_cxx_tests=yes])
+LIBC_CONFIG_VAR([static-cxx-tests], [$static_cxx_tests])
+
+AC_ARG_ENABLE([static-c++-link-check],
+	      AS_HELP_STRING([--disable-static-c++-link-check],
+			     [disable static C++ link check @<:@default=no@:>@]),
+	      [static_cxx_link_check=$enableval],
+	      [static_cxx_link_check=yes])
+
+# We need the C++ compiler only for testing.
+AC_PROG_CXX
+# It's useless to us if it can't link programs (e.g. missing -lstdc++).
+AC_CACHE_CHECK([whether $CXX can link programs], libc_cv_cxx_link_ok, [dnl
+AC_LANG_PUSH([C++])
+# Default, dynamic case.
+AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])],
+	       [libc_cv_cxx_link_ok=yes],
+	       [libc_cv_cxx_link_ok=no])
+if test $static_cxx_link_check$static_cxx_tests = yesyes; then
+  # Static case.
+  old_LDFLAGS="$LDFLAGS"
+  LDFLAGS="$LDFLAGS -static"
+  AC_LINK_IFELSE([AC_LANG_SOURCE([
+#include <iostream>
+
+int
+main()
+{
+  std::cout << "Hello, world!";
+  return 0;
+}
+])],
+		 [],
+		 [libc_cv_cxx_link_ok=no])
+  LDFLAGS="$old_LDFLAGS"
+fi
+AC_LANG_POP([C++])])
+AS_IF([test $libc_cv_cxx_link_ok != yes], [CXX=])
+
+if test "`cd $srcdir; pwd -P`" = "`pwd -P`"; then
+  AC_MSG_ERROR([you must configure in a separate build directory])
+fi
+
+# Check for a --with-gd argument and set libgd-LDFLAGS in config.make.
+AC_ARG_WITH([gd],
+	    AS_HELP_STRING([--with-gd=DIR],
+			   [find libgd include dir and library with prefix DIR]),
+	    [dnl
+case "$with_gd" in
+yes|''|no) ;;
+*) libgd_include="-I$withval/include"
+   libgd_ldflags="-L$withval/lib" ;;
+esac
+])
+AC_ARG_WITH([gd-include],
+	    AS_HELP_STRING([--with-gd-include=DIR],
+			   [find libgd include files in DIR]),
+	    [dnl
+case "$with_gd_include" in
+''|no) ;;
+*) libgd_include="-I$withval" ;;
+esac
+])
+AC_ARG_WITH([gd-lib],
+	    AS_HELP_STRING([--with-gd-lib=DIR],
+			   [find libgd library files in DIR]),
+	    [dnl
+case "$with_gd_lib" in
+''|no) ;;
+*) libgd_ldflags="-L$withval" ;;
+esac
+])
+
+if test -n "$libgd_include"; then
+  config_vars="$config_vars
+CFLAGS-memusagestat.c = $libgd_include"
+fi
+if test -n "$libgd_ldflags"; then
+  config_vars="$config_vars
+libgd-LDFLAGS = $libgd_ldflags"
+fi
+
+dnl Arguments to specify presence of other packages/features.
+AC_ARG_WITH([binutils],
+	    AS_HELP_STRING([--with-binutils=PATH],
+			   [specify location of binutils (as and ld)]),
+	    [path_binutils=$withval],
+	    [path_binutils=''])
+AC_ARG_WITH([selinux],
+	    AS_HELP_STRING([--with-selinux],
+			   [if building with SELinux support]),
+	    [with_selinux=$withval],
+	    [with_selinux=auto])
+
+AC_ARG_WITH([headers],
+	    AS_HELP_STRING([--with-headers=PATH],
+			   [location of system headers to use
+			    (for example /usr/src/linux/include)
+			    @<:@default=compiler default@:>@]),
+	    [sysheaders=$withval],
+	    [sysheaders=''])
+AC_SUBST(sysheaders)
+
+dnl Additional build flags injection.
+AC_ARG_WITH([nonshared-cflags],
+	    AS_HELP_STRING([--with-nonshared-cflags=CFLAGS],
+			   [build nonshared libraries with additional CFLAGS]),
+	    [extra_nonshared_cflags=$withval],
+	    [extra_nonshared_cflags=])
+AC_SUBST(extra_nonshared_cflags)
+AC_ARG_WITH([rtld-early-cflags],
+	    AS_HELP_STRING([--with-rtld-early-cflags=CFLAGS],
+			   [build early initialization with additional CFLAGS]),
+	    [rtld_early_cflags=$withval],
+	    [rtld_early_cflags=])
+AC_SUBST(rtld_early_cflags)
+
+AC_ARG_WITH([timeoutfactor],
+	    AS_HELP_STRING([--with-timeoutfactor=NUM],
+			   [specify an integer to scale the timeout]),
+	    [timeoutfactor=$withval],
+	    [timeoutfactor=1])
+AC_DEFINE_UNQUOTED(TIMEOUTFACTOR, $timeoutfactor)
+
+man_pages_version=6.9.1
+
+AC_ARG_WITH([man-pages],
+	    AS_HELP_STRING([--with-man-pages=VERSION],
+			   [tie manual to a specific man-pages version]),
+	    [man_pages_version=$withval],
+	    [])
+AC_SUBST(man_pages_version)
+
+AC_ARG_ENABLE([sanity-checks],
+	      AS_HELP_STRING([--disable-sanity-checks],
+			     [really do not use threads (should not be used except in special situations) @<:@default=yes@:>@]),
+	      [enable_sanity=$enableval],
+	      [enable_sanity=yes])
+
+AC_ARG_ENABLE([shared],
+	      AS_HELP_STRING([--enable-shared],
+			     [build shared library @<:@default=yes if GNU ld@:>@]),
+	      [shared=$enableval],
+	      [shared=yes])
+AC_ARG_ENABLE([profile],
+	      AS_HELP_STRING([--enable-profile],
+			     [build profiled library @<:@default=no@:>@]),
+	      [profile=$enableval],
+	      [profile=no])
+AC_ARG_ENABLE([default-pie],
+	      AS_HELP_STRING([--disable-default-pie],
+			     [Do not build glibc programs and the testsuite as PIE @<:@default=no@:>@]),
+	      [default_pie=$enableval],
+	      [default_pie=yes])
+AC_ARG_ENABLE([timezone-tools],
+	      AS_HELP_STRING([--disable-timezone-tools],
+			     [do not install timezone tools @<:@default=install@:>@]),
+	      [enable_timezone_tools=$enableval],
+	      [enable_timezone_tools=yes])
+AC_SUBST(enable_timezone_tools)
+
+AC_ARG_ENABLE([hardcoded-path-in-tests],
+	      AS_HELP_STRING([--enable-hardcoded-path-in-tests],
+			     [hardcode newly built glibc path in tests @<:@default=no@:>@]),
+	      [hardcoded_path_in_tests=$enableval],
+	      [hardcoded_path_in_tests=no])
+AC_SUBST(hardcoded_path_in_tests)
+
+AC_ARG_ENABLE([hidden-plt],
+	      AS_HELP_STRING([--disable-hidden-plt],
+			     [do not hide internal function calls to avoid PLT]),
+	      [hidden=$enableval],
+	      [hidden=yes])
+if test "x$hidden" = xno; then
+  AC_DEFINE(NO_HIDDEN)
+fi
+
+AC_ARG_ENABLE([bind-now],
+	      AS_HELP_STRING([--enable-bind-now],
+			     [disable lazy relocations in DSOs]),
+	      [bindnow=$enableval],
+	      [bindnow=no])
+AC_SUBST(bindnow)
+if test "x$bindnow" = xyes; then
+  AC_DEFINE(BIND_NOW)
+fi
+
+dnl Build glibc with -fstack-protector, -fstack-protector-all, or
+dnl -fstack-protector-strong.
+AC_ARG_ENABLE([stack-protector],
+	      AS_HELP_STRING([--enable-stack-protector=@<:@yes|no|all|strong@:>@],
+			     [Use -fstack-protector[-all|-strong] to detect glibc buffer overflows]),
+	      [enable_stack_protector=$enableval],
+	      [enable_stack_protector=no])
+case "$enable_stack_protector" in
+all|yes|no|strong) ;;
+*) AC_MSG_ERROR([Not a valid argument for --enable-stack-protector: "$enable_stack_protector"]);;
+esac
+
+dnl On some platforms we cannot use dynamic loading.  We must provide
+dnl static NSS modules.
+AC_ARG_ENABLE([static-nss],
+	      AS_HELP_STRING([--enable-static-nss],
+			     [build static NSS modules @<:@default=no@:>@]),
+	      [static_nss=$enableval],
+	      [static_nss=no])
+dnl Enable static NSS also if we build no shared objects.
+if test x"$static_nss" = xyes || test x"$shared" = xno; then
+  static_nss=yes
+  AC_DEFINE(DO_STATIC_NSS)
+fi
+
+AC_ARG_ENABLE([force-install],
+	      AS_HELP_STRING([--disable-force-install],
+			     [don't force installation of files from this package, even if they are older than the installed files]),
+	      [force_install=$enableval],
+	      [force_install=yes])
+AC_SUBST(force_install)
+
+AC_ARG_ENABLE([maintainer-mode],
+	      AS_HELP_STRING([--enable-maintainer-mode],
+			     [enable make rules and dependencies not useful (and sometimes confusing) to the casual installer]),
+	      [maintainer=$enableval],
+	      [maintainer=no])
+
+dnl On some platforms we allow dropping compatibility with all kernel
+dnl versions.
+AC_ARG_ENABLE([kernel],
+	      AS_HELP_STRING([--enable-kernel=VERSION],
+			     [compile for compatibility with kernel not older than VERSION]),
+	      [minimum_kernel=$enableval],
+	      [])
+dnl Prevent unreasonable values.
+if test "$minimum_kernel" = yes || test "$minimum_kernel" = no; then
+  # Better nothing than this.
+  minimum_kernel=""
+else
+  if test "$minimum_kernel" = current; then
+    minimum_kernel=`uname -r 2>/dev/null` || minimum_kernel=
+  fi
+fi
+
+AC_ARG_ENABLE([werror],
+	      AS_HELP_STRING([--disable-werror],
+			     [do not build with -Werror]),
+	      [enable_werror=$enableval],
+	      [enable_werror=yes])
+AC_SUBST(enable_werror)
+
+AC_ARG_ENABLE([multi-arch],
+	      AS_HELP_STRING([--enable-multi-arch],
+			     [enable single DSO with optimizations for multiple architectures]),
+	      [multi_arch=$enableval],
+	      [multi_arch=default])
+
+AC_ARG_ENABLE([memory-tagging],
+	      AS_HELP_STRING([--enable-memory-tagging],
+			     [enable memory tagging if supported by the architecture @<:@default=no@:>@]),
+	      [memory_tagging=$enableval],
+	      [memory_tagging=no])
+if test "$memory_tagging" = yes; then
+  # Only enable this on architectures that support it.
+  case $host_cpu in
+    aarch64)
+      AC_DEFINE(USE_MTAG)
+      ;;
+  esac
+fi
+AC_SUBST(memory_tagging)
+
+AC_ARG_ENABLE([systemtap],
+              [AS_HELP_STRING([--enable-systemtap],
+	       [enable systemtap static probe points @<:@default=no@:>@])],
+              [systemtap=$enableval],
+	      [systemtap=no])
+if test "x$systemtap" != xno; then
+  AC_CACHE_CHECK([for systemtap static probe support], libc_cv_sdt, [dnl
+  old_CFLAGS="$CFLAGS"
+  CFLAGS="-std=gnu11 $CFLAGS"
+  AC_COMPILE_IFELSE([AC_LANG_SOURCE([[#include <sys/sdt.h>
+void foo (int i, void *p)
+{
+  asm ("" STAP_PROBE_ASM (foo, bar, STAP_PROBE_ASM_TEMPLATE (2)) ""
+       :: STAP_PROBE_ASM_OPERANDS (2, i, p));
+}]])], [libc_cv_sdt=yes], [libc_cv_sdt=no])
+  CFLAGS="$old_CFLAGS"])
+  if test $libc_cv_sdt = yes; then
+    AC_DEFINE([USE_STAP_PROBE])
+  elif test "x$systemtap" != xauto; then
+    AC_MSG_FAILURE([systemtap support needs sys/sdt.h with asm support])
+  fi
+fi
+
+AC_ARG_ENABLE([build-nscd],
+	      [AS_HELP_STRING([--disable-build-nscd],
+	       [disable building and installing the nscd daemon])],
+	      [build_nscd=$enableval],
+	      [build_nscd=default])
+AC_SUBST(build_nscd)
+
+# Note the use of $use_nscd is near the bottom of the file.
+AC_ARG_ENABLE([nscd],
+	      [AS_HELP_STRING([--disable-nscd],
+	       [library functions will not contact the nscd daemon])],
+	      [use_nscd=$enableval],
+	      [use_nscd=yes])
+
+AC_ARG_ENABLE([pt_chown],
+	      [AS_HELP_STRING([--enable-pt_chown],
+	       [Enable building and installing pt_chown])],
+	      [build_pt_chown=$enableval],
+	      [build_pt_chown=no])
+AC_SUBST(build_pt_chown)
+if test "$build_pt_chown" = yes; then
+  AC_DEFINE(HAVE_PT_CHOWN)
+fi
+
+# The abi-tags file uses a fairly simplistic model for name recognition that
+# can't distinguish i486-pc-linux-gnu fully from i486-pc-gnu.  So we mutate a
+# $host_os of `gnu*' here to be `gnu-gnu*' just so that it can tell.
+# This doesn't get used much beyond that, so it's fairly safe.
+case "$host_os" in
+linux*)
+  ;;
+gnu*)
+  host_os=`echo $host_os | sed -e 's/gnu/gnu-gnu/'`
+  ;;
+esac
+
+AC_ARG_ENABLE([mathvec],
+	      [AS_HELP_STRING([--enable-mathvec],
+	      [Enable building and installing mathvec @<:@default depends on architecture@:>@])],
+	      [build_mathvec=$enableval],
+	      [build_mathvec=notset])
+
+AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[]], [[
+#ifndef __CET__
+# error no CET compiler support
+#endif]])],
+	       [libc_cv_compiler_default_cet=yes],
+	       [libc_cv_compiler_default_cet=no])
+
+AC_ARG_ENABLE([cet],
+	      AS_HELP_STRING([--enable-cet],
+			     [enable Intel Control-flow Enforcement Technology (CET), x86 only]),
+	      [enable_cet=$enableval],
+	      [enable_cet=$libc_cv_compiler_default_cet])
+
+AC_ARG_ENABLE([scv],
+	      AS_HELP_STRING([--disable-scv],
+			     [syscalls will not use scv instruction, even if the kernel supports it, powerpc only]),
+	      [use_scv=$enableval],
+	      [use_scv=yes])
+
+AS_IF([[test "$use_scv" != "no"]],[AC_DEFINE(USE_PPC_SCV)])
+
+dnl Build glibc with _FORTIFY_SOURCE
+AC_ARG_ENABLE(fortify-source,
+              AS_HELP_STRING([--enable-fortify-source@<:@=1|2|3@:>@],
+                             [Use -D_FORTIFY_SOURCE=[1|2|3] to control code hardening, defaults to highest possible value supported by the build compiler.]),
+              [enable_fortify_source=$enableval],
+              [enable_fortify_source=no])
+case "$enable_fortify_source" in
+1|2|3|no|yes) ;;
+*) AC_MSG_ERROR([Not a valid argument for --enable-fortify-source: "$enable_fortify_source"]);;
+esac
+
+# We keep the original values in `$config_*' and never modify them, so we
+# can write them unchanged into config.make.  Everything else uses
+# $machine, $vendor, and $os, and changes them whenever convenient.
+config_machine=$host_cpu config_vendor=$host_vendor config_os=$host_os
+
+# Don't allow vendor == "unknown"
+test "$config_vendor" = unknown && config_vendor=
+config_os="`echo $config_os | sed 's/^unknown-//'`"
+
+# Some configurations imply other options.
+elf=yes
+
+# The configure fragment of a port can modify these to supplement
+# or override the table in the case statement below.  No fragment should
+# ever change the config_* variables, however.
+machine=$config_machine
+vendor=$config_vendor
+os=$config_os
+base_os=''
+
+submachine=
+AC_ARG_WITH([cpu],
+	    AS_HELP_STRING([--with-cpu=CPU], [select code for CPU variant]),
+	    [dnl
+  case "$withval" in
+  yes|'') AC_MSG_ERROR([--with-cpu requires an argument]) ;;
+  no) ;;
+  *) submachine="$withval" ;;
+  esac
+])
+
+# An preconfigure script can set this when it wants to disable the sanity
+# check below.
+libc_config_ok=no
+
+# A preconfigure script for a system that may or may not use fpu
+# sysdeps directories sets this to a preprocessor conditional for
+# whether to use such directories.
+with_fp_cond=1
+
+# A preconfigure script may define another name to TLS descriptor variant
+mtls_descriptor=gnu2
+
+dnl Let sysdeps/*/preconfigure act here.
+LIBC_PRECONFIGURE([$srcdir], [for sysdeps])
+
+
+###
+### By using the undocumented --enable-hacker-mode option for configure
+### one can skip this test to make the configuration not fail for unsupported
+### platforms.
+###
+if test -z "$enable_hacker_mode" && test x"$libc_config_ok" != xyes; then
+  case "$machine-$host_os" in
+  *-linux* | *-gnu*)
+    ;;
+  *)
+    AC_MSG_ERROR([
+*** The GNU C library is currently unavailable for this platform.
+*** If you are interested in seeing glibc on this platform visit
+*** the "How to submit a new port" in the wiki:
+***   https://sourceware.org/glibc/wiki/#Development
+*** and join the community!])
+    ;;
+  esac
+fi
+
+# Set base_machine if not set by a preconfigure fragment.
+test -n "$base_machine" || base_machine=$machine
+AC_SUBST(base_machine)
+
+### Locate tools.
+
+AC_PROG_INSTALL
+if test "$INSTALL" = "${srcdir}/scripts/install-sh -c"; then
+  # The makefiles need to use a different form to find it in $srcdir.
+  INSTALL='\$(..)./scripts/install-sh -c'
+fi
+AC_PROG_LN_S
+
+LIBC_PROG_BINUTILS
+
+# Accept binutils 2.25 or newer.
+libc_cv_with_lld=no
+case $($LD --version) in
+  "GNU gold"*)
+  # Accept gold 1.14 or higher
+    AC_CHECK_PROG_VER(LD, $LD, --version,
+		    [GNU gold.* \([0-9][0-9]*\.[0-9.]*\)],
+		    [1.1[4-9]*|1.[2-9][0-9]*|1.1[0-9][0-9]*|[2-9].*|[1-9][0-9]*],
+		    LD=: critic_missing="$critic_missing GNU gold")
+    ;;
+  "LLD"*)
+  # Accept LLD 13.0.0 or higher
+    AC_CHECK_PROG_VER(LD, $LD, --version,
+		    [LLD.* \([0-9][0-9]*\.[0-9.]*\)],
+		    [1[3-9].*|[2-9][0-9].*],
+		    LD=: critic_missing="$critic_missing LLD")
+    libc_cv_with_lld=yes
+    ;;
+  *)
+    AC_CHECK_PROG_VER(LD, $LD, --version,
+		    [GNU ld.* \([0-9][0-9]*\.[0-9.]*\)],
+		    [2.1[0-9][0-9]*|2.2[5-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*],
+		    LD=: critic_missing="$critic_missing GNU ld")
+    ;;
+esac
+LIBC_CONFIG_VAR([with-lld], [$libc_cv_with_lld])
+
+# These programs are version sensitive.
+AC_CHECK_PROG_VER(MAKE, gnumake gmake make, --version,
+  [GNU Make[^0-9]*\([0-9][0-9.]*\)],
+  [[4-9].* | [1-9][0-9]*], critic_missing="$critic_missing make")
+
+AC_CHECK_PROG_VER(MSGFMT, gnumsgfmt gmsgfmt msgfmt, --version,
+  [GNU gettext.* \([0-9]*\.[0-9.]*\)],
+  [0.10.3[6-9]* | 0.10.[4-9][0-9]* | 0.1[1-9]* | 0.[2-9][0-9]* | [1-9].*],
+  MSGFMT=: aux_missing="$aux_missing msgfmt")
+AC_CHECK_PROG_VER(MAKEINFO, makeinfo, --version,
+  [GNU texinfo.* \([0-9][0-9.]*\)],
+  [4.[7-9]*|4.[1-9][0-9]*|[5-9].*],
+  MAKEINFO=: aux_missing="$aux_missing makeinfo")
+AC_CHECK_PROG_VER(SED, sed, --version,
+  [GNU sed[^0-9]* \([0-9]*\.[0-9.]*\)],
+  [3.0[2-9]*|3.[1-9]*|[4-9]*],
+  SED=: aux_missing="$aux_missing sed")
+AC_CHECK_PROG_VER(AWK, gawk, --version,
+  [GNU Awk[^0-9]*\([0-9][0-9.]*\)],
+  [3.1.[2-9]*|3.[2-9]*|[4-9]*], critic_missing="$critic_missing gawk")
+AC_CHECK_PROG_VER(BISON, bison, --version,
+  [bison (GNU Bison) \([0-9]*\.[0-9.]*\)],
+  [2.7*|[3-9].*|[1-9][0-9]*], critic_missing="$critic_missing bison")
+
+AC_CACHE_CHECK([if $CC is sufficient to build libc], libc_cv_compiler_ok, [
+AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[]], [[
+#if !defined __GNUC__ || __GNUC__ < 6 || (__GNUC__ == 6 && __GNUC_MINOR__ < 2)
+#error insufficient compiler
+#endif]])],
+	       [libc_cv_compiler_ok=yes],
+	       [libc_cv_compiler_ok=no])])
+AS_IF([test $libc_cv_compiler_ok != yes],
+      [critic_missing="$critic_missing compiler"])
+
+if test "x$maintainer" = "xyes"; then
+  AC_CHECK_PROGS(AUTOCONF, autoconf, no)
+  case "x$AUTOCONF" in
+  xno|x|x:) AUTOCONF=no ;;
+  *)
+    AC_CACHE_CHECK(dnl
+  whether $AUTOCONF${ACFLAGS:+ }$ACFLAGS works, libc_cv_autoconf_works, [dnl
+    if (cd $srcdir; $AUTOCONF $ACFLAGS configure.ac > /dev/null 2>&1); then
+      libc_cv_autoconf_works=yes
+    else
+      libc_cv_autoconf_works=no
+    fi])
+    test $libc_cv_autoconf_works = yes || AUTOCONF=no
+    ;;
+  esac
+  if test "x$AUTOCONF" = xno; then
+    aux_missing="$aux_missing autoconf"
+  fi
+else
+  AUTOCONF=no
+fi
+
+# Check for python3 if available, or else python.
+AC_CHECK_PROG_VER(PYTHON_PROG, python3 python, --version,
+  [Python \([0-9][0-9.]*\)],
+  [3.[4-9]*|3.[1-9][0-9]*|[4-9].*|[1-9][0-9]*],
+  critic_missing="$critic_missing python")
+PYTHON="$PYTHON_PROG -B"
+AC_SUBST(PYTHON)
+
+test -n "$critic_missing" && AC_MSG_ERROR([
+*** These critical programs are missing or too old:$critic_missing
+*** Check the INSTALL file for required versions.])
+
+test -n "$aux_missing" && AC_MSG_WARN([
+*** These auxiliary programs are missing or incompatible versions:$aux_missing
+*** some features or tests will be disabled.
+*** Check the INSTALL file for required versions.])
+
+
+# Determine whether to use fpu or nofpu sysdeps directories.
+AC_CACHE_CHECK([for use of fpu sysdeps directories],
+	       libc_cv_with_fp, [dnl
+cat > conftest.c <<EOF
+#if $with_fp_cond
+int dummy;
+#else
+# error "no hardware floating point"
+#endif
+EOF
+libc_cv_with_fp=no
+if ${CC-cc} $CFLAGS $CPPFLAGS -S conftest.c -o conftest.s \
+   1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD ; then
+  libc_cv_with_fp=yes
+fi
+rm -f conftest*])
+AC_SUBST(libc_cv_with_fp)
+
+AC_CACHE_CHECK(for -fstack-protector, libc_cv_ssp, [dnl
+LIBC_TRY_CC_OPTION([$CFLAGS $CPPFLAGS -Werror -fstack-protector],
+		   [libc_cv_ssp=yes],
+		   [libc_cv_ssp=no])
+])
+
+AC_CACHE_CHECK(for -fstack-protector-strong, libc_cv_ssp_strong, [dnl
+LIBC_TRY_CC_OPTION([$CFLAGS $CPPFLAGS -Werror -fstack-protector-strong],
+		   [libc_cv_ssp_strong=yes],
+		   [libc_cv_ssp_strong=no])
+])
+
+AC_CACHE_CHECK(for -fstack-protector-all, libc_cv_ssp_all, [dnl
+LIBC_TRY_CC_OPTION([$CFLAGS $CPPFLAGS -Werror -fstack-protector-all],
+		   [libc_cv_ssp_all=yes],
+		   [libc_cv_ssp_all=no])
+])
+
+stack_protector=
+no_stack_protector=
+if test "$libc_cv_ssp" = yes; then
+  no_stack_protector="-fno-stack-protector -DSTACK_PROTECTOR_LEVEL=0"
+  AC_DEFINE(HAVE_CC_NO_STACK_PROTECTOR)
+fi
+
+if test "$enable_stack_protector" = yes && test "$libc_cv_ssp" = yes; then
+  stack_protector="-fstack-protector"
+  AC_DEFINE(STACK_PROTECTOR_LEVEL, 1)
+elif test "$enable_stack_protector" = all && test "$libc_cv_ssp_all" = yes; then
+  stack_protector="-fstack-protector-all"
+  AC_DEFINE(STACK_PROTECTOR_LEVEL, 2)
+elif test "$enable_stack_protector" = strong && test "$libc_cv_ssp_strong" = yes; then
+  stack_protector="-fstack-protector-strong"
+  AC_DEFINE(STACK_PROTECTOR_LEVEL, 3)
+else
+  stack_protector="-fno-stack-protector"
+  AC_DEFINE(STACK_PROTECTOR_LEVEL, 0)
+fi
+AC_SUBST(libc_cv_ssp)
+AC_SUBST(stack_protector)
+AC_SUBST(no_stack_protector)
+
+if test -n "$stack_protector"; then
+  dnl Don't run configure tests with stack-protection on, to avoid problems with
+  dnl bootstrapping.
+  no_ssp=-fno-stack-protector
+else
+  no_ssp=
+
+  if test "$enable_stack_protector" != no; then
+    AC_MSG_ERROR([--enable-stack-protector=$enable_stack_protector specified, but specified level of stack protection is not supported by the compiler.])
+  fi
+fi
+
+# For the multi-arch option we need support in the assembler & linker.
+AC_CACHE_CHECK([for assembler and linker STT_GNU_IFUNC support],
+	       libc_cv_ld_gnu_indirect_function, [dnl
+cat > conftest.S <<EOF
+.type foo,%gnu_indirect_function
+foo:
+.globl _start
+_start:
+.globl __start
+__start:
+.data
+#ifdef _LP64
+.quad foo
+#else
+.long foo
+#endif
+EOF
+libc_cv_ld_gnu_indirect_function=no
+if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \
+	    -nostartfiles -nostdlib $no_ssp \
+	    -o conftest conftest.S 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
+  # Do a link to see if the backend supports IFUNC relocs.
+  $READELF -r conftest 1>&AS_MESSAGE_LOG_FD
+  LC_ALL=C $READELF -Wr conftest | grep -q 'IRELATIVE\|R_SPARC_JMP_IREL' && {
+    libc_cv_ld_gnu_indirect_function=yes
+  }
+fi
+rm -f conftest*])
+
+# Check if gcc supports attribute ifunc as it is used in libc_ifunc macro.
+AC_CACHE_CHECK([for gcc attribute ifunc support],
+	       libc_cv_gcc_indirect_function, [dnl
+cat > conftest.c <<EOF
+extern int func (int);
+int used_func (int a)
+{
+  return a;
+}
+static void *resolver ()
+{
+  return &used_func;
+}
+extern __typeof (func) func __attribute__ ((ifunc ("resolver")));
+EOF
+libc_cv_gcc_indirect_function=no
+if ${CC-cc} -c conftest.c -o conftest.o 1>&AS_MESSAGE_LOG_FD \
+   2>&AS_MESSAGE_LOG_FD ; then
+  if $READELF -s conftest.o | grep IFUNC >/dev/null 2>&AS_MESSAGE_LOG_FD; then
+    libc_cv_gcc_indirect_function=yes
+  fi
+fi
+rm -f conftest*])
+
+# Check if linker supports textrel relocation with ifunc (used on elf/tests).
+# Note that it relies on libc_cv_ld_gnu_indirect_function test above.
+AC_CACHE_CHECK([whether the linker supports textrels along with ifunc],
+               libc_cv_textrel_ifunc, [dnl
+cat > conftest.S <<EOF
+.type foo,%gnu_indirect_function
+foo:
+.globl _start
+_start:
+.globl __start
+__start:
+.data
+#ifdef _LP64
+.quad foo
+#else
+.long foo
+#endif
+.text
+.globl address
+address:
+#ifdef _LP64
+.quad address
+#else
+.long address
+#endif
+EOF
+libc_cv_textrel_ifunc=no
+if test $libc_cv_ld_gnu_indirect_function = yes; then
+   if AC_TRY_COMMAND(${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -nostartfiles -nostdlib $no_ssp -pie -o conftest conftest.S); then
+     libc_cv_textrel_ifunc=yes
+   fi
+fi
+rm -f conftest*])
+AC_SUBST(libc_cv_textrel_ifunc)
+
+# Check if CC supports attribute retain as it is used in attribute_used_retain macro.
+AC_CACHE_CHECK([for GNU attribute retain support],
+	       libc_cv_gnu_retain, [dnl
+cat > conftest.c <<EOF
+static int var  __attribute__ ((used, retain, section ("__libc_atexit")));
+EOF
+libc_cv_gnu_retain=no
+if ${CC-cc} -Werror -c conftest.c -o /dev/null 1>&AS_MESSAGE_LOG_FD \
+   2>&AS_MESSAGE_LOG_FD ; then
+  libc_cv_gnu_retain=yes
+fi
+rm -f conftest*])
+if test $libc_cv_gnu_retain = yes; then
+  AC_DEFINE(HAVE_GNU_RETAIN)
+fi
+LIBC_CONFIG_VAR([have-gnu-retain], [$libc_cv_gnu_retain])
+
+# Check if gcc warns about alias for function with incompatible types.
+AC_CACHE_CHECK([if compiler warns about alias for function with incompatible types],
+	       libc_cv_gcc_incompatible_alias, [dnl
+cat > conftest.c <<EOF
+int __redirect_foo (const void *s, int c);
+
+__typeof (__redirect_foo) *foo_impl (void) __asm__ ("foo");
+__typeof (__redirect_foo) *foo_impl (void)
+{
+  return 0;
+}
+
+extern __typeof (__redirect_foo) foo_alias __attribute__ ((alias ("foo")));
+EOF
+libc_cv_gcc_incompatible_alias=yes
+if ${CC-cc} -Werror -c conftest.c -o conftest.o 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD ; then
+  libc_cv_gcc_incompatible_alias=no
+fi
+rm -f conftest*])
+
+if test x"$libc_cv_ld_gnu_indirect_function" != xyes; then
+  if test x"$multi_arch" = xyes; then
+    AC_MSG_ERROR([--enable-multi-arch support requires assembler and linker support])
+  else
+    multi_arch=no
+  fi
+fi
+if test x"$libc_cv_gcc_indirect_function" != xyes; then
+  # GCC 8+ emits a warning for alias with incompatible types and it might
+  # fail to build ifunc resolvers aliases to either weak or internal
+  # symbols.  Disables multiarch build in this case.
+  if test x"$libc_cv_gcc_incompatible_alias" = xyes; then
+    AC_MSG_WARN([gcc emits a warning for alias between functions of incompatible types])
+    if test x"$multi_arch" = xyes; then
+      AC_MSG_ERROR([--enable-multi-arch support requires a gcc with gnu-indirect-function support])
+    fi
+    AC_MSG_WARN([Multi-arch is disabled.])
+    multi_arch=no
+  elif test x"$multi_arch" = xyes; then
+    AC_MSG_WARN([--enable-multi-arch support recommends a gcc with gnu-indirect-function support.
+Please use a gcc which supports it by default or configure gcc with --enable-gnu-indirect-function])
+  fi
+fi
+multi_arch_d=
+if test x"$multi_arch" != xno; then
+  multi_arch_d=/multiarch
+fi
+
+# Compute the list of sysdep directories for this configuration.
+# This can take a while to compute.
+sysdep_dir=$srcdir/sysdeps
+AC_MSG_CHECKING(sysdep dirs)
+dnl We need to use [ and ] for other purposes for a while now.
+changequote(,)dnl
+# Make sco3.2v4 become sco3.2.4 and sunos4.1.1_U1 become sunos4.1.1.U1.
+os="`echo $os | sed 's/\([0-9A-Z]\)[v_]\([0-9A-Z]\)/\1.\2/g'`"
+
+test "x$base_os" != x || case "$os" in
+gnu*)
+  base_os=mach/hurd ;;
+linux*)
+  base_os=unix/sysv ;;
+esac
+
+# For sunos4.1.1, try sunos4.1.1, then sunos4.1, then sunos4, then sunos.
+tail=$os
+ostry=$os
+while o=`echo $tail | sed 's/\.[^.]*$//'`; test $o != $tail; do
+  ostry="$ostry /$o"
+  tail=$o
+done
+o=`echo $tail | sed 's/[0-9]*$//'`
+if test $o != $tail; then
+  ostry="$ostry /$o"
+fi
+# For linux-gnu, try linux-gnu, then linux.
+o=`echo $tail | sed 's/-.*$//'`
+if test $o != $tail; then
+  ostry="$ostry /$o"
+fi
+
+# For unix/sysv/sysv4, try unix/sysv/sysv4, then unix/sysv, then unix.
+base=
+tail=$base_os
+while b=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$b"; do
+  set $b
+  base="$base /$1"
+  tail="$2"
+done
+
+# For sparc/sparc32, try sparc/sparc32 and then sparc.
+mach=
+tail=$machine${submachine:+/$submachine}
+while m=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$m"; do
+  set $m
+  # Prepend the machine's FPU directory unless the architecture specific
+  # preconfigure disables it.
+  if test "$libc_cv_with_fp" = yes; then
+    maybe_fpu=/fpu
+  else
+    maybe_fpu=/nofpu
+  fi
+  # For each machine term, try it with and then without /multiarch.
+  for try_fpu in $maybe_fpu ''; do
+    for try_multi in $multi_arch_d ''; do
+      mach="$mach /$1$try_fpu$try_multi"
+    done
+  done
+  tail="$2"
+done
+
+dnl We are done with glob and regexp uses of [ and ]; return to autoconf.
+changequote([,])dnl
+
+# Find what sysdep directories exist.
+sysnames=
+for b in $base ''; do
+  for m0 in $mach ''; do
+    for v in /$vendor ''; do
+      test "$v" = / && continue
+      for o in /$ostry ''; do
+	test "$o" = / && continue
+	for m in $mach ''; do
+	  try_suffix="$m0$b$v$o$m"
+	  if test -n "$try_suffix"; then
+	    try_srcdir="${srcdir}/"
+	    try="sysdeps$try_suffix"
+	    test -n "$enable_debug_configure" &&
+	    echo "$0 [DEBUG]: try $try" >&2
+	    if test -d "$try_srcdir$try"; then
+	      sysnames="$sysnames $try"
+	      { test -n "$o" || test -n "$b"; } && os_used=t
+	      { test -n "$m" || test -n "$m0"; } && machine_used=t
+	      case x${m0:-$m} in
+	      x*/$submachine) submachine_used=t ;;
+	      esac
+	    fi
+	  fi
+	done
+      done
+    done
+  done
+done
+
+# If the assembler supports gnu_indirect_function symbol type and the
+# architecture supports multi-arch, we enable multi-arch by default.
+case $sysnames in
+*"$multi_arch_d"*)
+  ;;
+*)
+  test x"$multi_arch" = xdefault && multi_arch=no
+  ;;
+esac
+if test x"$multi_arch" != xno; then
+  AC_DEFINE(USE_MULTIARCH)
+fi
+AC_SUBST(multi_arch)
+
+if test -z "$os_used" && test "$os" != none; then
+  AC_MSG_ERROR(Operating system $os is not supported.)
+fi
+if test -z "$machine_used" && test "$machine" != none; then
+  AC_MSG_ERROR(The $machine is not supported.)
+fi
+if test -z "$submachine_used" && test -n "$submachine"; then
+  AC_MSG_ERROR(The $submachine subspecies of $host_cpu is not supported.)
+fi
+AC_SUBST(submachine)
+
+# We have now validated the configuration.
+
+# Expand the list of system names into a full list of directories
+# from each element's parent name and Implies file (if present).
+set $sysnames
+names=
+while test $# -gt 0; do
+  name=$1
+  shift
+
+  case " $names " in *" $name "*)
+    # Already in the list.
+    continue
+  esac
+
+  # Report each name as we discover it, so there is no long pause in output.
+  echo $ECHO_N "$name $ECHO_C" >&AS_MESSAGE_FD
+
+  name_base=`echo $name | sed -e 's@\(.*sysdeps\)/.*@\1@'`
+
+  case $name in
+    /*) xsrcdir= ;;
+    *)  xsrcdir=$srcdir/ ;;
+  esac
+  test -n "$enable_debug_configure" &&
+  echo "[DEBUG]: name/Implies $xsrcdir$name/Implies" >&2
+
+  for implies_file in Implies Implies-before Implies-after; do
+    implies_type=`echo $implies_file | sed s/-/_/`
+    eval ${implies_type}=
+    if test -f $xsrcdir$name/$implies_file; then
+      # Collect more names from the `Implies' file (removing comments).
+      implied_candidate="`sed 's/#.*$//' < $xsrcdir$name/$implies_file`"
+      for x in $implied_candidate; do
+	found=no
+	if test -d $xsrcdir$name_base/$x; then
+	  eval "${implies_type}=\"\$${implies_type} \$name_base/\$x\""
+	  found=yes
+	fi
+	try="sysdeps/$x"
+	try_srcdir=$srcdir/
+	test -n "$enable_debug_configure" &&
+	 echo "[DEBUG]: $name $implies_file $x try() {$try_srcdir}$try" >&2
+	if test $try != $xsrcdir$name_base/$x && test -d $try_srcdir$try;
+	then
+	  eval "${implies_type}=\"\$${implies_type} \$try\""
+	  found=yes
+	fi
+	if test $found = no; then
+	  AC_MSG_WARN($name/$implies_file specifies nonexistent $x)
+	fi
+      done
+    fi
+  done
+
+  # Add NAME to the list of names.
+  names="$names $name"
+
+  # Find the parent of NAME, using the empty string if it has none.
+changequote(,)dnl
+  parent="`echo $name | sed -n -e 's=/[^/]*$==' -e '/sysdeps$/q' -e p`"
+changequote([,])dnl
+
+  test -n "$enable_debug_configure" &&
+    echo "[DEBUG]: $name Implies='$Implies' rest='$*' parent='$parent' \
+Implies_before='$Implies_before' Implies_after='$Implies_after'" >&2
+
+  # Add the names implied by NAME, and NAME's parent (if it has one), to
+  # the list of names to be processed (the argument list).  We prepend the
+  # implied names to the list and append the parent.  We want implied
+  # directories to come before further directories inferred from the
+  # configuration components; this ensures that for sysv4, unix/common
+  # (implied by unix/sysv/sysv4) comes before unix/sysv (in ostry (here $*)
+  # after sysv4).
+  sysnames="`echo $Implies $* $Implies_before $parent $Implies_after`"
+  test -n "$sysnames" && set $sysnames
+done
+
+# Add the default directories.
+default_sysnames="sysdeps/generic"
+sysnames="$names $default_sysnames"
+AC_SUBST(sysnames)
+# The other names were emitted during the scan.
+AC_MSG_RESULT($default_sysnames)
+
+# if using special system headers, find out the compiler's sekrit
+# header directory and add that to the list.  NOTE: Only does the right
+# thing on a system that doesn't need fixincludes.  (Not presently a problem.)
+if test -n "$sysheaders"; then
+  SYSINCLUDES=-nostdinc
+  for d in include include-fixed; do
+    i=`$CC -print-file-name="$d"` && test "x$i" != x && test "x$i" != "x$d" &&
+    SYSINCLUDES="$SYSINCLUDES -isystem $i"
+  done
+  SYSINCLUDES="$SYSINCLUDES \
+-isystem `echo $sysheaders | sed 's/:/ -isystem /g'`"
+  if test -n "$CXX"; then
+    CXX_SYSINCLUDES=
+    for cxxheaders in `$CXX -v -S -x c++ /dev/null -o /dev/null 2>&1 \
+    | sed -n -e '1,/#include/d' -e 's/^ \(\/.*\/[cg]++\)/\1/p'`; do
+      test "x$cxxheaders" != x &&
+      CXX_SYSINCLUDES="$CXX_SYSINCLUDES -isystem $cxxheaders"
+    done
+  fi
+fi
+AC_SUBST(SYSINCLUDES)
+AC_SUBST(CXX_SYSINCLUDES)
+
+# Obtain some C++ header file paths.  This is used to make a local
+# copy of those headers in Makerules.
+if test -n "$CXX"; then
+  find_cxx_header () {
+    echo "#include <$1>" | $CXX -H -fsyntax-only -x c++ - 2>&1 \
+	 | $AWK '$1 == "."{print $2}'
+  }
+  CXX_CSTDLIB_HEADER="$(find_cxx_header cstdlib)"
+  CXX_CMATH_HEADER="$(find_cxx_header cmath)"
+  CXX_BITS_STD_ABS_H="$(find_cxx_header bits/std_abs.h)"
+fi
+AC_SUBST(CXX_CSTDLIB_HEADER)
+AC_SUBST(CXX_CMATH_HEADER)
+AC_SUBST(CXX_BITS_STD_ABS_H)
+
+# Test if LD_LIBRARY_PATH contains the notation for the current directory
+# since this would lead to problems installing/building glibc.
+# LD_LIBRARY_PATH contains the current directory if one of the following
+# is true:
+# - one of the terminals (":" and ";") is the first or last sign
+# - two terminals occur directly after each other
+# - the path contains an element with a dot in it
+AC_MSG_CHECKING(LD_LIBRARY_PATH variable)
+changequote(,)dnl
+case ${LD_LIBRARY_PATH} in
+  [:\;]* | *[:\;] | *[:\;][:\;]* |  *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* )
+    ld_library_path_setting="contains current directory"
+    ;;
+  *)
+    ld_library_path_setting="ok"
+    ;;
+esac
+changequote([,])dnl
+AC_MSG_RESULT($ld_library_path_setting)
+if test "$ld_library_path_setting" != "ok"; then
+AC_MSG_ERROR([
+*** LD_LIBRARY_PATH shouldn't contain the current directory when
+*** building glibc. Please change the environment variable
+*** and run configure again.])
+fi
+
+AC_PATH_PROG(BASH_SHELL, bash, no)
+
+AC_PATH_PROG(PERL, perl, no)
+if test "$PERL" != no &&
+   (eval `$PERL -V:apiversion`; test `expr "$apiversion" \< 5` -ne 0); then
+  PERL=no
+fi
+AC_PATH_PROG(INSTALL_INFO, install-info, no,
+	     $PATH:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin)
+
+AC_CACHE_CHECK(for .set assembler directive, libc_cv_asm_set_directive, [dnl
+cat > conftest.s <<EOF
+.text
+foo:
+.set glibc_conftest_frobozz,foo
+.globl glibc_conftest_frobozz
+EOF
+# The alpha-dec-osf1 assembler gives only a warning for `.set'
+# (but it doesn't work), so we must do a linking check to be sure.
+cat > conftest1.c <<\EOF
+extern int glibc_conftest_frobozz;
+void _start() { glibc_conftest_frobozz = 1; }
+EOF
+if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \
+	    -nostartfiles -nostdlib $no_ssp \
+	    -o conftest conftest.s conftest1.c 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
+  libc_cv_asm_set_directive=yes
+else
+  libc_cv_asm_set_directive=no
+fi
+rm -f conftest*])
+if test $libc_cv_asm_set_directive = yes; then
+  AC_DEFINE(HAVE_ASM_SET_DIRECTIVE)
+fi
+
+AC_CACHE_CHECK(linker support for protected data symbol,
+	       libc_cv_protected_data,
+	       [cat > conftest.c <<EOF
+		int bar __attribute__ ((visibility ("protected"))) = 1;
+EOF
+		libc_cv_protected_data=no
+		if AC_TRY_COMMAND(${CC-cc} -nostdlib -nostartfiles $no_ssp -fPIC -shared conftest.c -o conftest.so); then
+		  cat > conftest.c <<EOF
+		  extern int bar;
+		  int main (void) { return bar; }
+EOF
+		  if AC_TRY_COMMAND(${CC-cc} -nostdlib -nostartfiles $no_ssp conftest.c -o conftest conftest.so); then
+		    libc_cv_protected_data=yes
+		  fi
+		fi
+		rm -f conftest.*
+	       ])
+AC_SUBST(libc_cv_protected_data)
+
+AC_CACHE_CHECK(linker support for INSERT in linker script,
+	       libc_cv_insert,
+	       [cat > conftest.c <<EOF
+		int __attribute__ ((section(".bar"))) bar = 0x12345678;
+		int test (void) { return bar; }
+EOF
+		cat > conftest.t <<EOF
+		SECTIONS
+		{
+		  .bar : { *(.bar) }
+		}
+		INSERT AFTER .rela.dyn;
+EOF
+		libc_cv_insert=no
+		if AC_TRY_COMMAND([${CC-cc} -nostdlib -nostartfiles $no_ssp -fPIC -shared conftest.c -Wl,-T,conftest.t -o conftest.so]); then
+		  libc_cv_insert=yes
+		fi
+		rm -f conftest.*
+	       ])
+AC_SUBST(libc_cv_insert)
+
+AC_CACHE_CHECK(for broken __attribute__((alias())),
+	       libc_cv_broken_alias_attribute,
+	       [cat > conftest.c <<EOF
+	       extern int foo (int x) __asm ("xyzzy");
+	       int bar (int x) { return x; }
+	       extern __typeof (bar) foo __attribute ((weak, alias ("bar")));
+	       extern int dfoo;
+	       extern __typeof (dfoo) dfoo __asm ("abccb");
+	       int dfoo = 1;
+EOF
+	       libc_cv_broken_alias_attribute=yes
+	       if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s 1>&AS_MESSAGE_LOG_FD); then
+		 if grep 'xyzzy' conftest.s >/dev/null &&
+		    grep 'abccb' conftest.s >/dev/null; then
+		   libc_cv_broken_alias_attribute=no
+		 fi
+	       fi
+	       rm -f conftest.c conftest.s
+	       ])
+if test $libc_cv_broken_alias_attribute = yes; then
+  AC_MSG_ERROR(working alias attribute support required)
+fi
+
+AC_CACHE_CHECK(whether to put _rtld_local into .sdata section,
+	       libc_cv_have_sdata_section,
+	       [echo "int i;" > conftest.c
+		libc_cv_have_sdata_section=no
+		if ${CC-cc} $LDFLAGS -fPIC -shared -Wl,--verbose conftest.c -o conftest.so 2>&1 \
+		   | grep '\.sdata' >/dev/null; then
+		  libc_cv_have_sdata_section=yes
+		fi
+		rm -f conftest.c conftest.so
+	       ])
+if test $libc_cv_have_sdata_section = yes; then
+  AC_DEFINE(HAVE_SDATA_SECTION)
+fi
+
+AC_CACHE_CHECK(for libunwind-support in compiler,
+	       libc_cv_cc_with_libunwind, [
+  cat > conftest.c <<EOF
+int main (void) { return 0; }
+EOF
+  if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -static -o conftest \
+     conftest.c -v 2>&1 >/dev/null | grep ' -lunwind ' >/dev/null; then
+    libc_cv_cc_with_libunwind=yes
+  else
+    libc_cv_cc_with_libunwind=no
+  fi
+  rm -f conftest*])
+AC_SUBST(libc_cv_cc_with_libunwind)
+if test $libc_cv_cc_with_libunwind = yes; then
+  AC_DEFINE(HAVE_CC_WITH_LIBUNWIND)
+fi
+
+ASFLAGS_config=
+AC_CACHE_CHECK(whether --noexecstack is desirable for .S files,
+	       libc_cv_as_noexecstack, [dnl
+cat > conftest.c <<EOF
+void foo (void) { }
+EOF
+if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS
+		   -S -o conftest.s conftest.c 1>&AS_MESSAGE_LOG_FD]) \
+   && grep .note.GNU-stack conftest.s >/dev/null \
+   && AC_TRY_COMMAND([${CC-cc} $ASFLAGS -Wa,--noexecstack
+		      -c -o conftest.o conftest.s 1>&AS_MESSAGE_LOG_FD])
+then
+  libc_cv_as_noexecstack=yes
+else
+  libc_cv_as_noexecstack=no
+fi
+rm -f conftest*])
+if test $libc_cv_as_noexecstack = yes; then
+  ASFLAGS_config="$ASFLAGS_config -Wa,--noexecstack"
+fi
+AC_SUBST(ASFLAGS_config)
+
+LIBC_LINKER_FEATURE([-z execstack], [-Wl,-z,execstack],
+		    [libc_cv_z_execstack=yes], [libc_cv_z_execstack=no])
+AC_SUBST(libc_cv_z_execstack)
+
+LIBC_LINKER_FEATURE([-z start-stop-gc], [-Wl,-z,start-stop-gc],
+		    [libc_cv_z_start_stop_gc=yes], [libc_cv_z_start_stop_gc=no])
+LIBC_CONFIG_VAR([have-z-start-stop-gc], [$libc_cv_z_start_stop_gc])
+
+LIBC_LINKER_FEATURE([--depaudit], [-Wl,--depaudit,x],
+		    [libc_cv_depaudit=yes], [libc_cv_depaudit=no])
+LIBC_CONFIG_VAR([have-depaudit], [$libc_cv_depaudit])
+
+LIBC_LINKER_FEATURE([-z pack-relative-relocs],
+		    [-Wl,-z,pack-relative-relocs],
+		    [libc_cv_dt_relr=yes], [libc_cv_dt_relr=no])
+LIBC_CONFIG_VAR([have-dt-relr], [$libc_cv_dt_relr])
+
+LIBC_LINKER_FEATURE([--no-dynamic-linker],
+		    [-Wl,--no-dynamic-linker],
+		    [libc_cv_no_dynamic_linker=yes],
+		    [libc_cv_no_dynamic_linker=no])
+LIBC_CONFIG_VAR([have-no-dynamic-linker], [$libc_cv_no_dynamic_linker])
+
+AC_CACHE_CHECK(for -static-pie, libc_cv_static_pie, [dnl
+LIBC_TRY_CC_OPTION([-static-pie],
+		   [libc_cv_static_pie=yes],
+		   [libc_cv_static_pie=no])
+])
+LIBC_CONFIG_VAR([have-static-pie], [$libc_cv_static_pie])
+
+AC_CACHE_CHECK(for -fpie, libc_cv_fpie, [dnl
+LIBC_TRY_CC_OPTION([-fpie], [libc_cv_fpie=yes], [libc_cv_fpie=no])
+])
+
+AC_SUBST(libc_cv_fpie)
+
+AC_CACHE_CHECK(for --hash-style option,
+	       libc_cv_hashstyle, [dnl
+cat > conftest.c <<EOF
+int _start (void) { return 42; }
+EOF
+if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS $no_ssp
+			    -fPIC -shared -o conftest.so conftest.c
+			    -Wl,--hash-style=both -nostdlib 1>&AS_MESSAGE_LOG_FD])
+then
+  libc_cv_hashstyle=yes
+else
+  libc_cv_hashstyle=no
+fi
+rm -f conftest*])
+AC_SUBST(libc_cv_hashstyle)
+
+AC_CACHE_CHECK(for GLOB_DAT reloc,
+	       libc_cv_has_glob_dat, [dnl
+cat > conftest.c <<EOF
+extern int mumble;
+int foo (void) { return mumble; }
+EOF
+if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
+			-fPIC -shared -o conftest.so conftest.c
+			-nostdlib -nostartfiles $no_ssp
+			1>&AS_MESSAGE_LOG_FD])
+then
+dnl look for GLOB_DAT relocation.
+  if $READELF -rW conftest.so | grep '_GLOB_DAT' > /dev/null; then
+    libc_cv_has_glob_dat=yes
+  else
+    libc_cv_has_glob_dat=no
+  fi
+else
+  libc_cv_has_glob_dat=no
+fi
+rm -f conftest*])
+AC_SUBST(libc_cv_has_glob_dat)
+
+AC_CACHE_CHECK([for tls descriptor support], libc_cv_mtls_descriptor,
+[dnl
+cat > conftest.c <<EOF
+__thread int i;
+void foo (void)
+{
+  i = 10;
+}
+EOF
+if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -fPIC -mtls-dialect=$mtls_descriptor -nostdlib -nostartfiles
+		   -shared conftest.c -o conftest 1>&AS_MESSAGE_LOG_FD])
+then
+  libc_cv_mtls_descriptor=$mtls_descriptor
+else
+  libc_cv_mtls_descriptor=no
+fi
+rm -f conftest*])
+AC_SUBST(libc_cv_mtls_descriptor)
+LIBC_CONFIG_VAR([have-mtls-descriptor], [$libc_cv_mtls_descriptor])
+
+dnl clang emits an warning for a double alias redirection, to warn the
+dnl original symbol is sed even when weak definition overrides it.
+dnl It is a usual pattern for weak_alias, where multiple alias point to
+dnl same symbol.
+AC_CACHE_CHECK([if -Wno-ignored-attributes is required for aliases],
+	       libc_cv_wno_ignored_attributes, [dnl
+cat > conftest.c <<EOF
+void __foo (void)
+{
+}
+extern __typeof (__foo) foo __attribute__ ((weak, alias ("__foo")));
+extern __typeof (__foo) bar __attribute__ ((weak, alias ("foo")));
+EOF
+libc_cv_wno_ignored_attributes=""
+if ! AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -Werror -c conftest.c])
+then
+  libc_cv_wno_ignored_attributes="-Wno-ignored-attributes"
+fi
+rm -f conftest*])
+LIBC_CONFIG_VAR([config-cflags-wno-ignored-attributes],
+		[$libc_cv_wno_ignored_attributes])
+
+AC_CACHE_CHECK(whether cc puts quotes around section names,
+	       libc_cv_have_section_quotes,
+	       [cat > conftest.c <<EOF
+		static const int foo
+		__attribute__ ((section ("bar"))) = 1;
+EOF
+		if ${CC-cc} -S conftest.c -o conftest.s; then
+		  if grep '\.section.*"bar"' conftest.s >/dev/null; then
+		    libc_cv_have_section_quotes=yes
+		  else
+		    libc_cv_have_section_quotes=no
+		  fi
+		else
+		  libc_cv_have_section_quotes=unknown
+		fi
+		rm -f conftest.{c,s}
+		])
+if test $libc_cv_have_section_quotes = yes; then
+  AC_DEFINE(HAVE_SECTION_QUOTES)
+fi
+
+AC_CACHE_CHECK(for __builtin_memset, libc_cv_gcc_builtin_memset, [dnl
+cat > conftest.c <<\EOF
+void zero (void *x)
+{
+  __builtin_memset (x, 0, 1000);
+}
+EOF
+dnl
+if AC_TRY_COMMAND([${CC-cc} -O3 -S conftest.c -o - | grep -F "memset" > /dev/null]);
+then
+  libc_cv_gcc_builtin_memset=no
+else
+  libc_cv_gcc_builtin_memset=yes
+fi
+rm -f conftest* ])
+if test "$libc_cv_gcc_builtin_memset" = yes ; then
+  AC_DEFINE(HAVE_BUILTIN_MEMSET)
+fi
+
+AC_CACHE_CHECK(for redirection of built-in functions, libc_cv_gcc_builtin_redirection, [dnl
+cat > conftest.c <<\EOF
+extern char *strstr (const char *, const char *) __asm ("my_strstr");
+char *foo (const char *a, const char *b)
+{
+  return __builtin_strstr (a, b);
+}
+EOF
+dnl
+if AC_TRY_COMMAND([${CC-cc} -O3 -S conftest.c -o - | grep -F "my_strstr" > /dev/null]);
+then
+  libc_cv_gcc_builtin_redirection=yes
+else
+  libc_cv_gcc_builtin_redirection=no
+fi
+rm -f conftest* ])
+if test "$libc_cv_gcc_builtin_redirection" = no; then
+  AC_MSG_ERROR([support for the symbol redirection needed])
+fi
+
+dnl Determine how to disable generation of FMA instructions.
+AC_CACHE_CHECK([for compiler option to disable generation of FMA instructions],
+	       libc_cv_cc_nofma, [dnl
+libc_cv_cc_nofma=
+for opt in -ffp-contract=off -mno-fused-madd; do
+  LIBC_TRY_CC_OPTION([$opt], [libc_cv_cc_nofma=$opt; break])
+done])
+AC_SUBST(libc_cv_cc_nofma)
+
+if test -n "$submachine"; then
+  AC_CACHE_CHECK([for compiler option for CPU variant],
+		 libc_cv_cc_submachine, [dnl
+  libc_cv_cc_submachine=no
+  for opt in "-march=$submachine" "-mcpu=$submachine"; do
+    LIBC_TRY_CC_OPTION([$opt], [
+      libc_cv_cc_submachine="$opt"
+      break], [])
+  done])
+  if test "x$libc_cv_cc_submachine" = xno; then
+    AC_MSG_ERROR([${CC-cc} does not support $submachine])
+  fi
+fi
+AC_SUBST(libc_cv_cc_submachine)
+
+dnl Determine if compiler supports -fsignaling-nans
+AC_CACHE_CHECK([for compiler option that -fsignaling-nans],
+	       libc_cv_cc_signaling_nans, [dnl
+LIBC_TRY_CC_OPTION([-Werror -fsignaling-nans],
+		   [libc_cv_cc_signaling_nans=-fsignaling-nans],
+		   [libc_cv_cc_signaling_nans=])
+])
+LIBC_CONFIG_VAR([config-cflags-signaling-nans],
+		[$libc_cv_cc_signaling_nans])
+
+AC_CACHE_CHECK(if $CC accepts -fno-tree-loop-distribute-patterns with \
+__attribute__ ((__optimize__)), libc_cv_cc_loop_to_function, [dnl
+cat > conftest.c <<EOF
+void
+__attribute__ ((__optimize__ ("-fno-tree-loop-distribute-patterns")))
+foo (void) {}
+EOF
+libc_cv_cc_loop_to_function=no
+if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -c conftest.c])
+then
+  libc_cv_cc_loop_to_function=yes
+fi
+rm -f conftest*])
+if test $libc_cv_cc_loop_to_function = yes; then
+  AC_DEFINE(HAVE_CC_INHIBIT_LOOP_TO_LIBCALL)
+fi
+AC_SUBST(libc_cv_cc_loop_to_function)
+
+dnl Check whether we have the gd library available.
+AC_MSG_CHECKING(for libgd)
+if test "$with_gd" != "no"; then
+  old_CFLAGS="$CFLAGS"
+  CFLAGS="$CFLAGS $libgd_include"
+  old_LDFLAGS="$LDFLAGS"
+  LDFLAGS="$LDFLAGS $libgd_ldflags"
+  old_LIBS="$LIBS"
+  LIBS="$LIBS -lgd -lpng -lz -lm"
+  AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <gd.h>]], [[gdImagePng (0, 0)]])],
+		 [LIBGD=yes], [LIBGD=no])
+  CFLAGS="$old_CFLAGS"
+  LDFLAGS="$old_LDFLAGS"
+  LIBS="$old_LIBS"
+else
+  LIBGD=no
+fi
+AC_MSG_RESULT($LIBGD)
+AC_SUBST(LIBGD)
+
+# SELinux detection
+if test x$with_selinux = xno ; then
+  have_selinux=no;
+else
+  # See if we have the SELinux library
+  AC_CHECK_LIB(selinux, is_selinux_enabled,
+	       have_selinux=yes, have_selinux=no)
+  if test x$with_selinux = xyes ; then
+    if test x$have_selinux = xno ; then
+      AC_MSG_ERROR([SELinux explicitly required, but SELinux library not found])
+    fi
+  fi
+fi
+# Check if we're building with SELinux support.
+if test "x$have_selinux" = xyes; then
+  AC_DEFINE(HAVE_SELINUX, 1, [SELinux support])
+
+  # See if we have the libaudit library
+  AC_CHECK_LIB(audit, audit_log_user_avc_message,
+	       have_libaudit=yes, have_libaudit=no)
+  if test "x$have_libaudit" = xyes; then
+    AC_DEFINE(HAVE_LIBAUDIT, 1, [SELinux libaudit support])
+  fi
+  AC_SUBST(have_libaudit)
+
+  # See if we have the libcap library
+  AC_CHECK_LIB(cap, cap_init, have_libcap=yes, have_libcap=no)
+  if test "x$have_libcap" = xyes; then
+    AC_DEFINE(HAVE_LIBCAP, 1, [SELinux libcap support])
+  fi
+  AC_SUBST(have_libcap)
+fi
+AC_SUBST(have_selinux)
+
+dnl Check if we support the requested _FORTIFY_SOURCE level
+dnl If not, then don't use it.
+dnl Note that _FORTIFY_SOURCE may have been set through FLAGS too.
+dnl _FORTIFY_SOURCE value will be selectively disabled for function that can't
+dnl support it
+no_fortify_source="-Wp,-U_FORTIFY_SOURCE"
+fortify_source="${no_fortify_source}"
+
+AC_CACHE_CHECK([for maximum supported _FORTIFY_SOURCE level],
+	       [libc_cv_supported_fortify_source], [
+    AC_LINK_IFELSE([AC_LANG_PROGRAM([], [__builtin_dynamic_object_size("", 0)])],
+        [libc_cv_supported_fortify_source=3],
+        [libc_cv_supported_fortify_source=2])
+])
+
+AS_CASE([$enable_fortify_source],
+        [yes], [libc_cv_fortify_source=yes enable_fortify_source=$libc_cv_supported_fortify_source],
+        [1|2], [libc_cv_fortify_source=yes],
+        [3], [AS_IF([test $libc_cv_supported_fortify_source = 3],
+                    [libc_cv_fortify_source=yes],
+                    [AC_MSG_ERROR([Compiler doesn't provide necessary support for _FORTIFY_SOURCE=3])])],
+        [libc_cv_fortify_source=no])
+
+AS_IF([test "$libc_cv_fortify_source" = yes],
+      [fortify_source="${fortify_source},-D_FORTIFY_SOURCE=${enable_fortify_source}"]
+      )
+
+AC_SUBST(enable_fortify_source)
+AC_SUBST(libc_cv_fortify_source)
+AC_SUBST(no_fortify_source)
+AC_SUBST(fortify_source)
+LIBC_CONFIG_VAR([supported-fortify], [$libc_cv_supported_fortify_source])
+
+dnl Starting with binutils 2.35, GAS can attach multiple symbol versions
+dnl to one symbol (PR 23840).
+AC_CACHE_CHECK(whether the assembler requires one version per symbol,
+               libc_cv_symver_needs_alias, [dnl
+  cat > conftest.s <<EOF
+        .text
+testfunc:
+        .globl testfunc
+        .symver testfunc, testfunc1@VERSION1
+        .symver testfunc, testfunc1@VERSION2
+EOF
+  libc_cv_symver_needs_alias=no
+  if ${CC-cc} $ASFLAGS -c conftest.s 2>&AS_MESSAGE_LOG_FD; then
+    libc_cv_symver_needs_alias=no
+  else
+    libc_cv_symver_needs_alias=yes
+  fi
+  rm conftest.*
+])
+if test "$libc_cv_symver_needs_alias" = yes; then
+  AC_DEFINE(SYMVER_NEEDS_ALIAS)
+fi
+
+AC_CACHE_CHECK(for __builtin_trap with no external dependencies,
+	       libc_cv_builtin_trap, [dnl
+libc_cv_builtin_trap=no
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[__builtin_trap ()]])],[
+libc_undefs=`$NM -u conftest.o |
+  LC_ALL=C $AWK '$1 == "U" { print $2 | "sort -u"; next } { exit(1) }' \
+    2>&AS_MESSAGE_LOG_FD` || {
+  AC_MSG_ERROR([confusing output from $NM -u])
+}
+echo >&AS_MESSAGE_LOG_FD "libc_undefs='$libc_undefs'"
+if test -z "$libc_undefs"; then
+  libc_cv_builtin_trap=yes
+fi],[])])
+if test $libc_cv_builtin_trap = yes; then
+  AC_DEFINE([HAVE_BUILTIN_TRAP])
+fi
+
+dnl C++ feature tests.
+AC_LANG_PUSH([C++])
+
+AC_CACHE_CHECK([whether the C++ compiler supports thread_local],
+	       libc_cv_cxx_thread_local, [
+old_CXXFLAGS="$CXXFLAGS"
+CXXFLAGS="$CXXFLAGS -std=gnu++11"
+AC_COMPILE_IFELSE([AC_LANG_SOURCE([
+#include <thread>
+
+// Compiler support.
+struct S
+{
+  S ();
+  ~S ();
+};
+thread_local S s;
+S * get () { return &s; }
+
+// libstdc++ support.
+#ifndef _GLIBCXX_HAVE___CXA_THREAD_ATEXIT_IMPL
+#error __cxa_thread_atexit_impl not supported
+#endif
+])],
+	       [libc_cv_cxx_thread_local=yes],
+	       [libc_cv_cxx_thread_local=no])
+CXXFLAGS="$old_CXXFLAGS"
+])
+AC_SUBST(libc_cv_cxx_thread_local)
+
+AC_LANG_POP([C++])
+dnl End of C++ feature tests.
+
+### End of automated tests.
+### Now run sysdeps configure fragments.
+
+# They also can set these variables.
+use_ldconfig=no
+ldd_rewrite_script=no
+libc_cv_sysconfdir=$sysconfdir
+libc_cv_localstatedir=$localstatedir
+libc_cv_gcc_unwind_find_fde=no
+libc_cv_idn=no
+pthread_in_libc=yes
+
+# Iterate over all the sysdep directories we will use, running their
+# configure fragments.
+for dir in $sysnames; do
+  case $dir in
+    /*) dest=$dir ;;
+    *)  dest=$srcdir/$dir ;;
+  esac
+  if test -r $dest/configure; then
+    AC_MSG_RESULT(running configure fragment for $dir)
+    . $dest/configure
+  fi
+done
+
+if test x"$build_mathvec" = xnotset; then
+  build_mathvec=no
+fi
+LIBC_CONFIG_VAR([build-mathvec], [$build_mathvec])
+
+AC_SUBST(libc_extra_cflags)
+AC_SUBST(libc_extra_cppflags)
+
+if test x$libc_cv_gcc_unwind_find_fde = xyes; then
+  AC_DEFINE(EXPORT_UNWIND_FIND_FDE)
+fi
+AC_SUBST(libc_cv_gcc_unwind_find_fde)
+
+# A sysdeps configure fragment can reset this if IFUNC is not actually
+# usable even though the assembler knows how to generate the symbol type.
+if test x"$libc_cv_ld_gnu_indirect_function" = xyes; then
+  AC_DEFINE(HAVE_IFUNC)
+fi
+LIBC_CONFIG_VAR([have-ifunc], [$libc_cv_ld_gnu_indirect_function])
+
+if test x"$libc_cv_gcc_indirect_function" = xyes; then
+  AC_DEFINE(HAVE_GCC_IFUNC)
+fi
+LIBC_CONFIG_VAR([have-gcc-ifunc], [$libc_cv_gcc_indirect_function])
+
+# This is far from the AC_ARG_ENABLE that sets it so that a sysdeps
+# configure fragment can override the value to prevent this AC_DEFINE.
+AC_SUBST(use_nscd)
+if test "x$use_nscd" != xno; then
+  AC_DEFINE([USE_NSCD])
+fi
+if test "x$build_nscd" = xdefault; then
+  build_nscd=$use_nscd
+fi
+
+AC_SUBST(libc_cv_slibdir)
+AC_SUBST(libc_cv_rtlddir)
+AC_SUBST(libc_cv_complocaledir)
+AC_SUBST(libc_cv_sysconfdir)
+AC_SUBST(libc_cv_localstatedir)
+AC_SUBST(libc_cv_rootsbindir)
+
+if test x$use_ldconfig = xyes; then
+  AC_DEFINE(USE_LDCONFIG)
+fi
+AC_SUBST(use_ldconfig)
+AC_SUBST(ldd_rewrite_script)
+
+AC_SUBST(static)
+AC_SUBST(shared)
+
+AC_CACHE_CHECK([whether -fPIC is default], libc_cv_pic_default,
+[libc_cv_pic_default=yes
+cat > conftest.c <<EOF
+#if defined __PIC__ || defined __pic__ || defined PIC || defined pic
+# error PIC is default.
+#endif
+EOF
+if eval "${CC-cc} -S conftest.c 2>&AS_MESSAGE_LOG_FD 1>&AS_MESSAGE_LOG_FD"; then
+  libc_cv_pic_default=no
+fi
+rm -f conftest.*])
+LIBC_CONFIG_VAR([build-pic-default], [$libc_cv_pic_default])
+
+AC_CACHE_CHECK([whether -fPIE is default], libc_cv_cc_pie_default,
+[libc_cv_cc_pie_default=yes
+cat > conftest.c <<EOF
+#if defined __PIE__ || defined __pie__ || defined PIE || defined pie
+# error PIE is default.
+#endif
+EOF
+if eval "${CC-cc} -S conftest.c 2>&AS_MESSAGE_LOG_FD 1>&AS_MESSAGE_LOG_FD"; then
+  libc_cv_cc_pie_default=no
+fi
+rm -f conftest.*])
+LIBC_CONFIG_VAR([cc-pie-default], [$libc_cv_cc_pie_default])
+
+AC_MSG_CHECKING(if we can build programs as PIE)
+AC_COMPILE_IFELSE([AC_LANG_SOURCE([[#ifdef PIE_UNSUPPORTED
+# error PIE is not supported
+#endif]])], [libc_cv_pie_supported=yes], [libc_cv_pie_supported=no])
+AC_MSG_RESULT($libc_cv_pie_supported)
+# Disable build-pie-default if target does not support it or glibc is
+# configured with --disable-default-pie.
+if test "x$default_pie" = xno; then
+  build_pie_default=no
+else
+  build_pie_default=$libc_cv_pie_supported
+fi
+LIBC_CONFIG_VAR([build-pie-default], [$build_pie_default])
+
+AC_MSG_CHECKING(if we can build static PIE programs)
+libc_cv_static_pie_supported=$libc_cv_pie_supported
+if test "x$libc_cv_pie_supported" != xno \
+   -a "$libc_cv_no_dynamic_linker" = yes; then
+  AC_COMPILE_IFELSE([AC_LANG_SOURCE([[#ifndef SUPPORT_STATIC_PIE
+# error static PIE is not supported
+#endif]])], [libc_cv_static_pie_supported=yes],
+	    [libc_cv_static_pie_supported=no])
+fi
+AC_MSG_RESULT($libc_cv_static_pie_supported)
+
+# Enable static-pie only if it is available and glibc isn't configured
+# with --disable-default-pie.
+if test "x$default_pie" = xno; then
+  libc_cv_static_pie=no
+else
+  libc_cv_static_pie=$libc_cv_static_pie_supported
+fi
+if test "$libc_cv_static_pie" = "yes"; then
+  AC_DEFINE(ENABLE_STATIC_PIE)
+fi
+LIBC_CONFIG_VAR([enable-static-pie], [$libc_cv_static_pie])
+
+# Set the `multidir' variable by grabbing the variable from the compiler.
+# We do it once and save the result in a generated makefile.
+libc_cv_multidir=`${CC-cc} $CFLAGS $CPPFLAGS -print-multi-directory`
+AC_SUBST(libc_cv_multidir)
+
+AC_SUBST(profile)
+AC_SUBST(static_nss)
+
+AC_SUBST(DEFINES)
+
+dnl See sysdeps/mach/configure.ac for this variable.
+AC_SUBST(mach_interface_list)
+
+VERSION=`sed -n -e 's/^#define VERSION "\([^"]*\)"/\1/p' < $srcdir/version.h`
+RELEASE=`sed -n -e 's/^#define RELEASE "\([^"]*\)"/\1/p' < $srcdir/version.h`
+AC_SUBST(VERSION)
+AC_SUBST(RELEASE)
+
+if test "$pthread_in_libc" = yes; then
+  AC_DEFINE(PTHREAD_IN_LIBC)
+fi
+AC_SUBST(pthread_in_libc)
+
+AC_CONFIG_FILES([config.make Makefile])
+AC_CONFIG_COMMANDS([default],[[
+case $CONFIG_FILES in *config.make*)
+echo "$config_vars" >> config.make;;
+esac
+test -d bits || mkdir bits]],[[config_vars='$config_vars']])
+AC_OUTPUT
Index: sources/GNU/glibc/2.40/create-2.40-x86_64-interpreter-patch/create.patch.sh
===================================================================
--- sources/GNU/glibc/2.40/create-2.40-x86_64-interpreter-patch/create.patch.sh	(nonexistent)
+++ sources/GNU/glibc/2.40/create-2.40-x86_64-interpreter-patch/create.patch.sh	(revision 394)
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+VERSION=2.40
+
+tar --files-from=file.list -xJvf ../glibc-$VERSION.tar.xz
+mv glibc-$VERSION glibc-$VERSION-orig
+
+cp -rf ./glibc-$VERSION-new ./glibc-$VERSION
+
+diff --unified -Nr  glibc-$VERSION-orig  glibc-$VERSION > glibc-$VERSION-x86_64-interpreter.patch
+
+mv glibc-$VERSION-x86_64-interpreter.patch ../patches
+
+rm -rf ./glibc-$VERSION
+rm -rf ./glibc-$VERSION-orig

Property changes on: sources/GNU/glibc/2.40/create-2.40-x86_64-interpreter-patch/create.patch.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: sources/GNU/glibc/2.40/create-2.40-x86_64-interpreter-patch/file.list
===================================================================
--- sources/GNU/glibc/2.40/create-2.40-x86_64-interpreter-patch/file.list	(nonexistent)
+++ sources/GNU/glibc/2.40/create-2.40-x86_64-interpreter-patch/file.list	(revision 394)
@@ -0,0 +1 @@
+glibc-2.40/sysdeps/unix/sysv/linux/x86_64/ldd-rewrite.sed
Index: sources/GNU/glibc/2.40/create-2.40-x86_64-interpreter-patch/glibc-2.40-new/sysdeps/unix/sysv/linux/x86_64/ldd-rewrite.sed
===================================================================
--- sources/GNU/glibc/2.40/create-2.40-x86_64-interpreter-patch/glibc-2.40-new/sysdeps/unix/sysv/linux/x86_64/ldd-rewrite.sed	(nonexistent)
+++ sources/GNU/glibc/2.40/create-2.40-x86_64-interpreter-patch/glibc-2.40-new/sysdeps/unix/sysv/linux/x86_64/ldd-rewrite.sed	(revision 394)
@@ -0,0 +1 @@
+s_^\(RTLDLIST=\)\(.*lib\)\(\|64\|32\|x32\)\(/ld-linux\)\(\|-x86-64\|-x32\)\(\.so\.[0-9.]*\)[ 	]*$_\1"\2\4-x86-64\6 \232\4\6 \2x32\4-x32\6"_
Index: sources/GNU/glibc/2.40/create-2.40-zonefile-patch/create.patch.sh
===================================================================
--- sources/GNU/glibc/2.40/create-2.40-zonefile-patch/create.patch.sh	(nonexistent)
+++ sources/GNU/glibc/2.40/create-2.40-zonefile-patch/create.patch.sh	(revision 394)
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+VERSION=2.40
+
+tar --files-from=file.list -xJvf ../glibc-$VERSION.tar.xz
+mv glibc-$VERSION glibc-$VERSION-orig
+
+cp -rf ./glibc-$VERSION-new ./glibc-$VERSION
+
+diff --unified -Nr  glibc-$VERSION-orig  glibc-$VERSION > glibc-$VERSION-zonefile.patch
+
+mv glibc-$VERSION-zonefile.patch ../patches
+
+rm -rf ./glibc-$VERSION
+rm -rf ./glibc-$VERSION-orig

Property changes on: sources/GNU/glibc/2.40/create-2.40-zonefile-patch/create.patch.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: sources/GNU/glibc/2.40/create-2.40-zonefile-patch/file.list
===================================================================
--- sources/GNU/glibc/2.40/create-2.40-zonefile-patch/file.list	(nonexistent)
+++ sources/GNU/glibc/2.40/create-2.40-zonefile-patch/file.list	(revision 394)
@@ -0,0 +1 @@
+glibc-2.40/time/tzfile.c
Index: sources/GNU/glibc/2.40/create-2.40-zonefile-patch/glibc-2.40-new/time/tzfile.c
===================================================================
--- sources/GNU/glibc/2.40/create-2.40-zonefile-patch/glibc-2.40-new/time/tzfile.c	(nonexistent)
+++ sources/GNU/glibc/2.40/create-2.40-zonefile-patch/glibc-2.40-new/time/tzfile.c	(revision 394)
@@ -0,0 +1,786 @@
+/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#include <assert.h>
+#include <limits.h>
+#include <stdio.h>
+#include <stdio_ext.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+#include <unistd.h>
+#include <sys/stat.h>
+#include <stdint.h>
+#include <alloc_buffer.h>
+#include <set-freeres.h>
+
+#include <timezone/tzfile.h>
+
+int __use_tzfile;
+static dev_t tzfile_dev;
+static ino64_t tzfile_ino;
+static __time64_t tzfile_mtime;
+
+struct ttinfo
+  {
+    int offset;			/* Seconds east of GMT.  */
+    unsigned char isdst;	/* Used to set tm_isdst.  */
+    unsigned char idx;		/* Index into `zone_names'.  */
+    unsigned char isstd;	/* Transition times are in standard time.  */
+    unsigned char isut;		/* Transition times are in UT.  */
+  };
+
+struct leap
+  {
+    __time64_t transition;	/* Time the transition takes effect.  */
+    long int change;		/* Seconds of correction to apply.  */
+  };
+
+static size_t num_transitions;
+static __time64_t *transitions;
+static unsigned char *type_idxs;
+static size_t num_types;
+static struct ttinfo *types;
+static char *zone_names;
+static long int rule_stdoff;
+static long int rule_dstoff;
+static size_t num_leaps;
+static struct leap *leaps;
+static char *tzspec;
+
+/* Used to restore the daylight variable during time conversion, as if
+   tzset had been called.  */
+static int daylight_saved;
+
+#include <endian.h>
+#include <byteswap.h>
+
+/* Decode the four bytes at PTR as a signed integer in network byte order.  */
+static inline int
+__attribute ((always_inline))
+decode (const void *ptr)
+{
+  if (BYTE_ORDER == BIG_ENDIAN && sizeof (int) == 4)
+    return *(const int *) ptr;
+  if (sizeof (int) == 4)
+    return bswap_32 (*(const int *) ptr);
+
+  const unsigned char *p = ptr;
+  int result = *p & (1 << (CHAR_BIT - 1)) ? ~0 : 0;
+
+  result = (result << 8) | *p++;
+  result = (result << 8) | *p++;
+  result = (result << 8) | *p++;
+  result = (result << 8) | *p++;
+
+  return result;
+}
+
+
+static inline int64_t
+__attribute ((always_inline))
+decode64 (const void *ptr)
+{
+  if ((BYTE_ORDER == BIG_ENDIAN))
+    return *(const int64_t *) ptr;
+
+  return bswap_64 (*(const int64_t *) ptr);
+}
+
+
+void
+__tzfile_read (const char *file, size_t extra, char **extrap)
+{
+  static const char default_tzdir[] = TZDIR;
+  size_t num_isstd, num_isut;
+  FILE *f;
+  struct tzhead tzhead;
+  size_t chars;
+  size_t i;
+  int was_using_tzfile = __use_tzfile;
+  int trans_width = 4;
+  char *new = NULL;
+
+  _Static_assert (sizeof (__time64_t) == 8,
+		  "__time64_t must be eight bytes");
+
+  __use_tzfile = 0;
+
+  if (file == NULL)
+    /* No user specification; use the site-wide default.  */
+    file = TZDEFAULT;
+  else if (*file == '\0')
+    /* User specified the empty string; use UTC with no leap seconds.  */
+    goto ret_free_transitions;
+  else
+    {
+      /* We must not allow to read an arbitrary file in a setuid
+	 program.  So we fail for any file which is not in the
+	 directory hierarchy starting at TZDIR
+	 and which is not the system wide default TZDEFAULT.  */
+      if (__libc_enable_secure
+	  && ((*file == '/'
+	       && strcmp (file, TZDEFAULT) != 0
+	       && (strncmp (file, default_tzdir, sizeof (default_tzdir) - 1)
+		   != 0))
+	      || strstr (file, "../") != NULL))
+	/* This test is certainly a bit too restrictive but it should
+	   catch all critical cases.  */
+	goto ret_free_transitions;
+    }
+
+  if (*file != '/')
+    {
+      const char *tzdir;
+
+      tzdir = getenv ("TZDIR");
+      if (tzdir == NULL || *tzdir == '\0')
+	tzdir = default_tzdir;
+      if (__asprintf (&new, "%s/%s", tzdir, file) == -1)
+	goto ret_free_transitions;
+      file = new;
+    }
+
+  /* If we were already using tzfile, check whether the file changed.  */
+  struct __stat64_t64 st;
+  if (was_using_tzfile
+      && __stat64_time64 (file, &st) == 0
+      && tzfile_ino == st.st_ino && tzfile_dev == st.st_dev
+      && tzfile_mtime == st.st_mtime)
+    goto done;  /* Nothing to do.  */
+
+  /* Note the file is opened with cancellation in the I/O functions
+     disabled and if available FD_CLOEXEC set.  */
+  f = fopen (file, "rce");
+  if (f == NULL)
+    goto ret_free_transitions;
+
+  /* Get information about the file we are actually using.  */
+  if (__fstat64_time64 (__fileno (f), &st) != 0)
+    goto lose;
+
+  free ((void *) transitions);
+  transitions = NULL;
+
+  /* Remember the inode and device number and modification time.  */
+  tzfile_dev = st.st_dev;
+  tzfile_ino = st.st_ino;
+  tzfile_mtime = st.st_mtime;
+
+  /* No threads reading this stream.  */
+  __fsetlocking (f, FSETLOCKING_BYCALLER);
+
+ read_again:
+  if (__builtin_expect (__fread_unlocked ((void *) &tzhead, sizeof (tzhead),
+					  1, f) != 1, 0)
+      || memcmp (tzhead.tzh_magic, TZ_MAGIC, sizeof (tzhead.tzh_magic)) != 0)
+    goto lose;
+
+  num_transitions = (size_t) decode (tzhead.tzh_timecnt);
+  num_types = (size_t) decode (tzhead.tzh_typecnt);
+  chars = (size_t) decode (tzhead.tzh_charcnt);
+  num_leaps = (size_t) decode (tzhead.tzh_leapcnt);
+  num_isstd = (size_t) decode (tzhead.tzh_ttisstdcnt);
+  num_isut  = (size_t) decode (tzhead.tzh_ttisutcnt);
+
+  if (__glibc_unlikely (num_isstd > num_types || num_isut > num_types))
+    goto lose;
+
+  if (trans_width == 4 && tzhead.tzh_version[0] != '\0')
+    {
+      /* We use the 8-byte format.  */
+      trans_width = 8;
+
+      /* Position the stream before the second header.  */
+      size_t to_skip = (num_transitions * (4 + 1)
+			+ num_types * 6
+			+ chars
+			+ num_leaps * 8
+			+ num_isstd
+			+ num_isut);
+      if (fseek (f, to_skip, SEEK_CUR) != 0)
+	goto lose;
+
+      goto read_again;
+    }
+
+  /* Compute the size of the POSIX time zone specification in the
+     file.  */
+  size_t tzspec_len;
+  if (trans_width == 8)
+    {
+      off_t rem = st.st_size - __ftello (f);
+      if (__builtin_expect (rem < 0
+			    || (size_t) rem < (num_transitions * (8 + 1)
+					       + num_types * 6
+					       + chars), 0))
+	goto lose;
+      tzspec_len = (size_t) rem - (num_transitions * (8 + 1)
+				   + num_types * 6
+				   + chars);
+      if (__builtin_expect (num_leaps > SIZE_MAX / 12
+			    || tzspec_len < num_leaps * 12, 0))
+	goto lose;
+      tzspec_len -= num_leaps * 12;
+      if (__glibc_unlikely (tzspec_len < num_isstd))
+	goto lose;
+      tzspec_len -= num_isstd;
+      if (__glibc_unlikely (tzspec_len == 0 || tzspec_len - 1 < num_isut))
+	goto lose;
+      tzspec_len -= num_isut + 1;
+      if (tzspec_len == 0)
+	goto lose;
+    }
+  else
+    tzspec_len = 0;
+
+  /* The file is parsed into a single heap allocation, comprising of
+     the following arrays:
+
+     __time64_t transitions[num_transitions];
+     struct leap leaps[num_leaps];
+     struct ttinfo types[num_types];
+     unsigned char type_idxs[num_types];
+     char zone_names[chars];
+     char tzspec[tzspec_len];
+     char extra_array[extra]; // Stored into *pextras if requested.
+
+     The piece-wise allocations from buf below verify that no
+     overflow/wraparound occurred in these computations.
+
+     The order of the suballocations is important for alignment
+     purposes.  __time64_t outside a struct may require more alignment
+     then inside a struct on some architectures, so it must come
+     first. */
+  _Static_assert (__alignof (__time64_t) >= __alignof (struct leap),
+		  "alignment of __time64_t");
+  _Static_assert (__alignof (struct leap) >= __alignof (struct ttinfo),
+		  "alignment of struct leap");
+  struct alloc_buffer buf;
+  {
+    size_t total_size = (num_transitions * sizeof (__time64_t)
+			 + num_leaps * sizeof (struct leap)
+			 + num_types * sizeof (struct ttinfo)
+			 + num_transitions /* type_idxs */
+			 + chars /* zone_names */
+			 + tzspec_len + extra);
+    transitions = malloc (total_size);
+    if (transitions == NULL)
+      goto lose;
+    buf = alloc_buffer_create (transitions, total_size);
+  }
+
+  /* The address of the first allocation is already stored in the
+     pointer transitions.  */
+  (void) alloc_buffer_alloc_array (&buf, __time64_t, num_transitions);
+  leaps = alloc_buffer_alloc_array (&buf, struct leap, num_leaps);
+  types = alloc_buffer_alloc_array (&buf, struct ttinfo, num_types);
+  type_idxs = alloc_buffer_alloc_array (&buf, unsigned char, num_transitions);
+  zone_names = alloc_buffer_alloc_array (&buf, char, chars);
+  if (trans_width == 8)
+    tzspec = alloc_buffer_alloc_array (&buf, char, tzspec_len);
+  else
+    tzspec = NULL;
+  if (extra > 0)
+    *extrap = alloc_buffer_alloc_array (&buf, char, extra);
+  if (alloc_buffer_has_failed (&buf))
+    goto lose;
+
+  if (__glibc_unlikely (__fread_unlocked (transitions, trans_width,
+					  num_transitions, f)
+			!= num_transitions)
+      || __glibc_unlikely (__fread_unlocked (type_idxs, 1, num_transitions, f)
+			   != num_transitions))
+	goto lose;
+
+  /* Check for bogus indices in the data file, so we can hereafter
+     safely use type_idxs[T] as indices into `types' and never crash.  */
+  for (i = 0; i < num_transitions; ++i)
+    if (__glibc_unlikely (type_idxs[i] >= num_types))
+      goto lose;
+
+  if (trans_width == 4)
+    {
+      /* Decode the transition times, stored as 4-byte integers in
+	 network (big-endian) byte order.  We work from the end of the
+	 array so as not to clobber the next element to be
+	 processed.  */
+      i = num_transitions;
+      while (i-- > 0)
+	transitions[i] = decode ((char *) transitions + i * 4);
+    }
+  else if (BYTE_ORDER != BIG_ENDIAN)
+    {
+      /* Decode the transition times, stored as 8-byte integers in
+	 network (big-endian) byte order.  */
+      for (i = 0; i < num_transitions; ++i)
+	transitions[i] = decode64 ((char *) transitions + i * 8);
+    }
+
+  for (i = 0; i < num_types; ++i)
+    {
+      unsigned char x[4];
+      int c;
+      if (__builtin_expect (__fread_unlocked (x, 1,
+					      sizeof (x), f) != sizeof (x),
+			    0))
+	goto lose;
+      c = __getc_unlocked (f);
+      if (__glibc_unlikely ((unsigned int) c > 1u))
+	goto lose;
+      types[i].isdst = c;
+      c = __getc_unlocked (f);
+      if (__glibc_unlikely ((size_t) c > chars))
+	/* Bogus index in data file.  */
+	goto lose;
+      types[i].idx = c;
+      types[i].offset = decode (x);
+    }
+
+  if (__glibc_unlikely (__fread_unlocked (zone_names, 1, chars, f) != chars))
+    goto lose;
+
+  for (i = 0; i < num_leaps; ++i)
+    {
+      unsigned char x[8];
+      if (__builtin_expect (__fread_unlocked (x, 1, trans_width, f)
+			    != trans_width, 0))
+	goto lose;
+      if (trans_width == 4)
+	leaps[i].transition = decode (x);
+      else
+	leaps[i].transition = decode64 (x);
+
+      if (__glibc_unlikely (__fread_unlocked (x, 1, 4, f) != 4))
+	goto lose;
+      leaps[i].change = (long int) decode (x);
+    }
+
+  for (i = 0; i < num_isstd; ++i)
+    {
+      int c = __getc_unlocked (f);
+      if (__glibc_unlikely (c == EOF))
+	goto lose;
+      types[i].isstd = c != 0;
+    }
+  while (i < num_types)
+    types[i++].isstd = 0;
+
+  for (i = 0; i < num_isut; ++i)
+    {
+      int c = __getc_unlocked (f);
+      if (__glibc_unlikely (c == EOF))
+	goto lose;
+      types[i].isut = c != 0;
+    }
+  while (i < num_types)
+    types[i++].isut = 0;
+
+  /* Read the POSIX TZ-style information if possible.  */
+  if (tzspec != NULL)
+    {
+      assert (tzspec_len > 0);
+      /* Skip over the newline first.  */
+      if (__getc_unlocked (f) != '\n'
+	  || (__fread_unlocked (tzspec, 1, tzspec_len - 1, f)
+	      != tzspec_len - 1))
+	tzspec = NULL;
+      else
+	tzspec[tzspec_len - 1] = '\0';
+    }
+
+  /* Don't use an empty TZ string.  */
+  if (tzspec != NULL && tzspec[0] == '\0')
+    tzspec = NULL;
+
+  fclose (f);
+
+  /* First "register" all time zone abbreviations.  */
+  for (i = 0; i < num_types; ++i)
+    if (__tzstring (&zone_names[types[i].idx]) == NULL)
+      goto ret_free_transitions;
+
+  /* Find the standard and daylight time offsets used by the rule file.
+     We choose the offsets in the types of each flavor that are
+     transitioned to earliest in time.  */
+  __tzname[0] = NULL;
+  __tzname[1] = NULL;
+  for (i = num_transitions; i > 0; )
+    {
+      int type = type_idxs[--i];
+      int dst = types[type].isdst;
+
+      if (__tzname[dst] == NULL)
+	{
+	  int idx = types[type].idx;
+
+	  __tzname[dst] = __tzstring (&zone_names[idx]);
+
+	  if (__tzname[1 - dst] != NULL)
+	    break;
+	}
+    }
+  if (__tzname[0] == NULL)
+    {
+      /* This should only happen if there are no transition rules.
+	 In this case there's usually only one single type, unless
+	 e.g. the data file has a truncated time-range.  */
+      __tzname[0] = __tzstring (zone_names);
+    }
+  if (__tzname[1] == NULL)
+    __tzname[1] = __tzname[0];
+
+  daylight_saved = 0;
+  if (num_transitions == 0)
+    /* Use the first rule (which should also be the only one).  */
+    rule_stdoff = rule_dstoff = types[0].offset;
+  else
+    {
+      rule_stdoff = 0;
+
+      /* Search for the last rule with a standard time offset.  This
+	 will be used for the global timezone variable.  */
+      i = num_transitions - 1;
+      do
+	if (!types[type_idxs[i]].isdst)
+	  {
+	    rule_stdoff = types[type_idxs[i]].offset;
+	    break;
+	  }
+	else
+	  daylight_saved = 1;
+      while (i-- > 0);
+
+      /* Keep searching to see if there is a DST rule.  This
+	 information will be used to set the global daylight
+	 variable.  */
+      while (i-- > 0 && !daylight_saved)
+	daylight_saved = types[type_idxs[i]].isdst;
+    }
+
+  __daylight = daylight_saved;
+  __timezone = -rule_stdoff;
+
+ done:
+  __use_tzfile = 1;
+  free (new);
+  return;
+
+ lose:
+  fclose (f);
+ ret_free_transitions:
+  free (new);
+  free ((void *) transitions);
+  transitions = NULL;
+}
+
+/* The user specified a hand-made timezone, but not its DST rules.
+   We will use the names and offsets from the user, and the rules
+   from the TZDEFRULES file.  */
+
+void
+__tzfile_default (const char *std, const char *dst,
+		  int stdoff, int dstoff)
+{
+  size_t stdlen = strlen (std) + 1;
+  size_t dstlen = strlen (dst) + 1;
+  size_t i;
+  int isdst;
+  char *cp;
+
+  __tzfile_read (TZDEFRULES, stdlen + dstlen, &cp);
+  if (!__use_tzfile)
+    return;
+
+  if (num_types < 2)
+    {
+      __use_tzfile = 0;
+      return;
+    }
+
+  /* Ignore the zone names read from the file and use the given ones
+     instead.  */
+  __mempcpy (__mempcpy (cp, std, stdlen), dst, dstlen);
+  zone_names = cp;
+
+  /* Now there are only two zones, regardless of what the file contained.  */
+  num_types = 2;
+
+  /* Now correct the transition times for the user-specified standard and
+     daylight offsets from GMT.  */
+  isdst = 0;
+  for (i = 0; i < num_transitions; ++i)
+    {
+      struct ttinfo *trans_type = &types[type_idxs[i]];
+
+      /* We will use only types 0 (standard) and 1 (daylight).
+	 Fix up this transition to point to whichever matches
+	 the flavor of its original type.  */
+      type_idxs[i] = trans_type->isdst;
+
+      if (trans_type->isut)
+	/* The transition time is in UT.  No correction to apply.  */ ;
+      else if (isdst && !trans_type->isstd)
+	/* The type says this transition is in "local wall clock time", and
+	   wall clock time as of the previous transition was DST.  Correct
+	   for the difference between the rule's DST offset and the user's
+	   DST offset.  */
+	transitions[i] += dstoff - rule_dstoff;
+      else
+	/* This transition is in "local wall clock time", and wall clock
+	   time as of this iteration is non-DST.  Correct for the
+	   difference between the rule's standard offset and the user's
+	   standard offset.  */
+	transitions[i] += stdoff - rule_stdoff;
+
+      /* The DST state of "local wall clock time" for the next iteration is
+	 as specified by this transition.  */
+      isdst = trans_type->isdst;
+    }
+
+  /* Now that we adjusted the transitions to the requested offsets,
+     reset the rule_stdoff and rule_dstoff values appropriately.  They
+     are used elsewhere.  */
+  rule_stdoff = stdoff;
+  rule_dstoff = dstoff;
+
+  /* Reset types 0 and 1 to describe the user's settings.  */
+  types[0].idx = 0;
+  types[0].offset = stdoff;
+  types[0].isdst = 0;
+  types[1].idx = stdlen;
+  types[1].offset = dstoff;
+  types[1].isdst = 1;
+
+  /* Reset time zone abbreviations to point to the user's abbreviations.  */
+  __tzname[0] = (char *) std;
+  __tzname[1] = (char *) dst;
+
+  /* Set the timezone.  */
+  __timezone = -types[0].offset;
+
+  /* Invalidate the tzfile attribute cache to force rereading
+     TZDEFRULES the next time it is used.  */
+  tzfile_dev = 0;
+  tzfile_ino = 0;
+  tzfile_mtime = 0;
+}
+
+void
+__tzfile_compute (__time64_t timer, int use_localtime,
+		  long int *leap_correct, int *leap_hit,
+		  struct tm *tp)
+{
+  size_t i;
+
+  if (use_localtime)
+    {
+      __tzname[0] = NULL;
+      __tzname[1] = NULL;
+
+      if (__glibc_unlikely (num_transitions == 0 || timer < transitions[0]))
+	{
+	  /* TIMER is before any transition (or there are no transitions).
+	     Choose the first non-DST type
+	     (or the first if they're all DST types).  */
+	  i = 0;
+	  while (i < num_types && types[i].isdst)
+	    {
+	      if (__tzname[1] == NULL)
+		__tzname[1] = __tzstring (&zone_names[types[i].idx]);
+
+	      ++i;
+	    }
+
+	  if (i == num_types)
+	    i = 0;
+	  __tzname[0] = __tzstring (&zone_names[types[i].idx]);
+	  if (__tzname[1] == NULL)
+	    {
+	      size_t j = i;
+	      while (j < num_types)
+		if (types[j].isdst)
+		  {
+		    __tzname[1] = __tzstring (&zone_names[types[j].idx]);
+		    break;
+		  }
+		else
+		  ++j;
+	    }
+	}
+      else if (__glibc_unlikely (timer >= transitions[num_transitions - 1]))
+	{
+	  if (__glibc_unlikely (tzspec == NULL))
+	    {
+	    use_last:
+	      i = num_transitions;
+	      goto found;
+	    }
+
+	  /* Parse the POSIX TZ-style string.  */
+	  __tzset_parse_tz (tzspec);
+
+	  /* Convert to broken down structure.  If this fails do not
+	     use the string.  */
+	  if (__glibc_unlikely (! __offtime (timer, 0, tp)))
+	    goto use_last;
+
+	  /* Use the rules from the TZ string to compute the change.  */
+	  __tz_compute (timer, tp, 1);
+
+	  /* If tzspec comes from posixrules loaded by __tzfile_default,
+	     override the STD and DST zone names with the ones user
+	     requested in TZ envvar.  */
+	  if (__glibc_unlikely (zone_names == (char *) &leaps[num_leaps]))
+	    {
+	      assert (num_types == 2);
+	      __tzname[0] = __tzstring (zone_names);
+	      __tzname[1] = __tzstring (&zone_names[strlen (zone_names) + 1]);
+	    }
+
+	  goto leap;
+	}
+      else
+	{
+	  /* Find the first transition after TIMER, and
+	     then pick the type of the transition before it.  */
+	  size_t lo = 0;
+	  size_t hi = num_transitions - 1;
+	  /* Assume that DST is changing twice a year and guess
+	     initial search spot from it.  Half of a gregorian year
+	     has on average 365.2425 * 86400 / 2 = 15778476 seconds.
+	     The value i can be truncated if size_t is smaller than
+	     __time64_t, but this is harmless because it is just
+	     a guess.  */
+	  i = (transitions[num_transitions - 1] - timer) / 15778476;
+	  if (i < num_transitions)
+	    {
+	      i = num_transitions - 1 - i;
+	      if (timer < transitions[i])
+		{
+		  if (i < 10 || timer >= transitions[i - 10])
+		    {
+		      /* Linear search.  */
+		      while (timer < transitions[i - 1])
+			--i;
+		      goto found;
+		    }
+		  hi = i - 10;
+		}
+	      else
+		{
+		  if (i + 10 >= num_transitions || timer < transitions[i + 10])
+		    {
+		      /* Linear search.  */
+		      while (timer >= transitions[i])
+			++i;
+		      goto found;
+		    }
+		  lo = i + 10;
+		}
+	    }
+
+	  /* Binary search.  */
+	  /* assert (timer >= transitions[lo] && timer < transitions[hi]); */
+	  while (lo + 1 < hi)
+	    {
+	      i = (lo + hi) / 2;
+	      if (timer < transitions[i])
+		hi = i;
+	      else
+		lo = i;
+	    }
+	  i = hi;
+
+	found:
+	  /* assert (timer >= transitions[i - 1]
+	     && (i == num_transitions || timer < transitions[i])); */
+	  __tzname[types[type_idxs[i - 1]].isdst]
+	    = __tzstring (&zone_names[types[type_idxs[i - 1]].idx]);
+	  size_t j = i;
+	  while (j < num_transitions)
+	    {
+	      int type = type_idxs[j];
+	      int dst = types[type].isdst;
+	      int idx = types[type].idx;
+
+	      if (__tzname[dst] == NULL)
+		{
+		  __tzname[dst] = __tzstring (&zone_names[idx]);
+
+		  if (__tzname[1 - dst] != NULL)
+		    break;
+		}
+
+	      ++j;
+	    }
+
+	  if (__glibc_unlikely (__tzname[0] == NULL))
+	    __tzname[0] = __tzname[1];
+
+	  i = type_idxs[i - 1];
+	}
+
+      struct ttinfo *info = &types[i];
+      __daylight = daylight_saved;
+      __timezone = -rule_stdoff;
+
+      if (__tzname[0] == NULL)
+	{
+	  /* This should only happen if there are no transition rules.
+	     In this case there should be only one single type.  */
+	  assert (num_types == 1);
+	  __tzname[0] = __tzstring (zone_names);
+	}
+      if (__tzname[1] == NULL)
+	/* There is no daylight saving time.  */
+	__tzname[1] = __tzname[0];
+      tp->tm_isdst = info->isdst;
+      assert (strcmp (&zone_names[info->idx], __tzname[tp->tm_isdst]) == 0);
+      tp->tm_zone = __tzname[tp->tm_isdst];
+      tp->tm_gmtoff = info->offset;
+    }
+
+ leap:
+  *leap_correct = 0L;
+  *leap_hit = 0;
+
+  /* Find the last leap second correction transition time before TIMER.  */
+  i = num_leaps;
+  do
+    if (i-- == 0)
+      return;
+  while (timer < leaps[i].transition);
+
+  /* Apply its correction.  */
+  *leap_correct = leaps[i].change;
+
+  if (timer == leaps[i].transition /* Exactly at the transition time.  */
+      && (leaps[i].change > (i == 0 ? 0 : leaps[i - 1].change)))
+    {
+      *leap_hit = 1;
+      while (i > 0
+	     && leaps[i].transition == leaps[i - 1].transition + 1
+	     && leaps[i].change == leaps[i - 1].change + 1)
+	{
+	  ++*leap_hit;
+	  --i;
+	}
+    }
+}
+
+weak_alias (transitions, __libc_tzfile_freemem_ptr)
Index: sources/GNU/glibc/2.40/create-2.40-zoneinfo-patch/create.patch.sh
===================================================================
--- sources/GNU/glibc/2.40/create-2.40-zoneinfo-patch/create.patch.sh	(nonexistent)
+++ sources/GNU/glibc/2.40/create-2.40-zoneinfo-patch/create.patch.sh	(revision 394)
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+VERSION=2.40
+
+tar --files-from=file.list -xJvf ../glibc-$VERSION.tar.xz
+mv glibc-$VERSION glibc-$VERSION-orig
+
+cp -rf ./glibc-$VERSION-new ./glibc-$VERSION
+
+diff --unified -Nr  glibc-$VERSION-orig  glibc-$VERSION > glibc-$VERSION-zoneinfo.patch
+
+mv glibc-$VERSION-zoneinfo.patch ../patches
+
+rm -rf ./glibc-$VERSION
+rm -rf ./glibc-$VERSION-orig

Property changes on: sources/GNU/glibc/2.40/create-2.40-zoneinfo-patch/create.patch.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: sources/GNU/glibc/2.40/create-2.40-zoneinfo-patch/file.list
===================================================================
--- sources/GNU/glibc/2.40/create-2.40-zoneinfo-patch/file.list	(nonexistent)
+++ sources/GNU/glibc/2.40/create-2.40-zoneinfo-patch/file.list	(revision 394)
@@ -0,0 +1 @@
+glibc-2.40/timezone/Makefile
Index: sources/GNU/glibc/2.40/create-2.40-zoneinfo-patch/glibc-2.40-new/timezone/Makefile
===================================================================
--- sources/GNU/glibc/2.40/create-2.40-zoneinfo-patch/glibc-2.40-new/timezone/Makefile	(nonexistent)
+++ sources/GNU/glibc/2.40/create-2.40-zoneinfo-patch/glibc-2.40-new/timezone/Makefile	(revision 394)
@@ -0,0 +1,148 @@
+# Copyright (C) 1998-2024 Free Software Foundation, Inc.
+# This file is part of the GNU C Library.
+
+# The GNU C Library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+
+# The GNU C Library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+
+# You should have received a copy of the GNU Lesser General Public
+# License along with the GNU C Library; if not, see
+# <https://www.gnu.org/licenses/>.
+
+#
+#	Makefile for timezone information
+#
+subdir	:= timezone
+
+include ../Makeconfig
+
+others	:= zdump zic
+tests	:= test-tz tst-timezone tst-tzset tst-bz28707 tst-bz29951
+
+generated-dirs += testdata
+
+generated += tzselect
+
+testdata = $(objpfx)testdata
+
+ifeq ($(enable-timezone-tools),yes)
+install-sbin := zic
+install-bin := zdump
+install-bin-script = tzselect
+endif
+
+ifeq ($(run-built-tests),yes)
+# List zones generated by separate commands running zic on the host.
+# Each such zic run counts as a separate test.
+test-zones := America/New_York Etc/UTC UTC Europe/Berlin \
+	      Australia/Melbourne America/Sao_Paulo Asia/Tokyo \
+	      $(posixrules-file)
+tests-special += $(addprefix $(testdata)/, $(test-zones))
+endif
+
+include ../Rules
+
+
+$(objpfx)zic.o: $(objpfx)tzdir.h
+
+# In glibc this file is an empty placeholder,
+# as tz-cflags defines TZDEFAULT and TZDIR.
+$(objpfx)tzdir.h:
+	> $@
+
+$(objpfx)zic.o $(objpfx)zdump.o: $(objpfx)version.h
+
+$(objpfx)version.h: $(common-objpfx)config.make
+	echo 'static char const TZVERSION[]="$(version)";' \
+	    > $@.new
+	mv -f $@.new $@
+
+tz-cflags = -DTZDIR='"$(zonedir)"' \
+	    -DTZDEFAULT='"$(localtime-file)"' \
+	    -DTZDEFRULES='"$(posixrules-file)"' \
+	    -DTM_GMTOFF=tm_gmtoff -DTM_ZONE=tm_zone \
+	    -DHAVE_GETTEXT -DUSE_LTZ=0 -D_ISOMAC -DTZ_DOMAIN='"libc"' \
+	    -include $(common-objpfx)config.h -Wno-maybe-uninitialized
+
+# The -Wno-unused-variable flag is used to prevent GCC 6
+# from warning about time_t_min and time_t_max which are
+# defined in private.h but not used.
+CFLAGS-zdump.c += $(tz-cflags)
+CFLAGS-zic.c += $(tz-cflags) -Wno-unused-variable
+
+# We have to make sure the data for testing the tz functions is available.
+# Don't add leapseconds here since test-tz made checks that work only without
+# leapseconds.
+define build-testdata
+$(built-program-cmd) -d $(testdata) -y ./yearistype $<; \
+$(evaluate-test)
+endef
+
+$(objpfx)test-tz.out: $(addprefix $(testdata)/, America/New_York Etc/UTC UTC)
+$(objpfx)tst-timezone.out: $(addprefix $(testdata)/, \
+				       Europe/Berlin Universal \
+				       Australia/Melbourne \
+				       America/New_York \
+				       America/Sao_Paulo Asia/Tokyo \
+				       Europe/London)
+$(objpfx)tst-tzset.out: $(addprefix $(testdata)/XT, 1 2 3 4)
+$(objpfx)tst-bz28707.out: $(testdata)/XT5
+$(objpfx)tst-bz29951.out: $(testdata)/XT6
+
+test-tz-ENV = TZDIR=$(testdata)
+tst-timezone-ENV = TZDIR=$(testdata)
+tst-tzset-ENV = TZDIR=$(testdata)
+tst-bz28707-ENV = TZDIR=$(testdata)
+tst-bz29951-ENV = TZDIR=$(testdata)
+
+# Note this must come second in the deps list for $(built-program-cmd) to work.
+zic-deps = $(objpfx)zic $(leapseconds) yearistype
+
+$(testdata)/America/New_York: northamerica $(zic-deps)
+	$(build-testdata)
+$(testdata)/$(posixrules-file): $(testdata)/America/New_York
+	$(make-link); $(evaluate-test)
+$(testdata)/Etc/UTC: etcetera $(zic-deps)
+	$(build-testdata)
+# Use a pattern rule to indicate the command produces both targets at once.
+# Two separate targets built separately can collide if in parallel.
+%/UTC %/Universal: simplebackw $(zic-deps) %/Etc/UTC
+	$(build-testdata)
+	{ test -r $(@D)/Universal.test-result \
+	&& cp $(@D)/Universal.test-result $(@D)/UTC.test-result \
+	&& sed -i 's/Universal/UTC/' $(@D)/UTC.test-result ; exit 0; }
+	{ test -r $(@D)/UTC.test-result \
+	&& cp $(@D)/UTC.test-result $(@D)/Universal.test-result \
+	&& sed -i 's/UTC/Universal/' $(@D)/Universal.test-result ; exit 0; }
+$(testdata)/%/Berlin $(testdata)/%/London: europe $(zic-deps)
+	$(build-testdata)
+$(testdata)/Australia/Melbourne: australasia $(zic-deps)
+	$(build-testdata)
+$(testdata)/America/Sao_Paulo: southamerica $(zic-deps)
+	$(build-testdata)
+$(testdata)/Asia/Tokyo: asia $(zic-deps)
+	$(build-testdata)
+
+$(testdata)/XT%: testdata/XT%
+	$(make-target-directory)
+	cp $< $@
+
+$(testdata)/XT5: testdata/gen-XT5.sh
+	$(make-target-directory)
+	$(SHELL) $< > $@.tmp
+	mv $@.tmp $@
+
+$(objpfx)tzselect: tzselect.ksh $(common-objpfx)config.make
+	sed -e '/TZDIR=/s|`pwd`|$(zonedir)|' \
+	    -e '/TZVERSION=/s|see_Makefile|"$(version)"|' \
+	    -e '/PKGVERSION=/s|=.*|="$(PKGVERSION)"|' \
+	    -e '/REPORT_BUGS_TO=/s|=.*|="$(REPORT_BUGS_TO)"|' \
+	    < $< > $@.new
+	chmod 555 $@.new
+	mv -f $@.new $@
Index: sources/GNU/glibc/2.40/patches/README
===================================================================
--- sources/GNU/glibc/2.40/patches/README	(nonexistent)
+++ sources/GNU/glibc/2.40/patches/README	(revision 394)
@@ -0,0 +1,21 @@
+
+/* begin *
+
+   NOTE:
+   ====
+     glibc-2.40-reenable-DT-HASH.patch  - From e47de5cb2d4dbecb58f569ed241e8e95c568f03c Mon Sep 17 00:00:00 2001
+                                          From: Florian Weimer <fweimer@redhat.com>
+                                          Date: Fri, 29 Apr 2022 16:37:51 +0200
+                                          Subject: [PATCH] Do not use --hash-style=both for building glibc shared
+                                           objects
+
+                                          The comment indicates that --hash-style=both was used to maintain
+                                          compatibility with static dlopen, but we had many internal ABI
+                                          changes since then, so this compatiblity does not add value anymore.
+
+                                          Reviewed-by: Carlos O'Donell <carlos@redhat.com>
+
+     glibc-2.40-zonefile.patch          - required if IANA timezone version 2022f or later is applyed.
+
+
+ * end */
Index: sources/GNU/glibc/2.40/patches
===================================================================
--- sources/GNU/glibc/2.40/patches	(nonexistent)
+++ sources/GNU/glibc/2.40/patches	(revision 394)

Property changes on: sources/GNU/glibc/2.40/patches
___________________________________________________________________
Added: svn:ignore
## -0,0 +1,73 ##
+
+# install dir
+dist
+
+# Target build dirs
+.a1x-newlib
+.a2x-newlib
+.at91sam7s-newlib
+
+.build-machine
+
+.a1x-glibc
+.a2x-glibc
+.h3-glibc
+.h5-glibc
+.i586-glibc
+.i686-glibc
+.imx6-glibc
+.jz47xx-glibc
+.makefile
+.am335x-glibc
+.omap543x-glibc
+.p5600-glibc
+.power8-glibc
+.power8le-glibc
+.power9-glibc
+.power9le-glibc
+.m1000-glibc
+.riscv64-glibc
+.rk328x-glibc
+.rk33xx-glibc
+.rk339x-glibc
+.s8xx-glibc
+.s9xx-glibc
+.x86_64-glibc
+
+# Hidden files (each file)
+.makefile
+.dist
+.rootfs
+
+# src & hw requires
+.src_requires
+.src_requires_depend
+.requires
+.requires_depend
+
+# Tarballs
+*.gz
+*.bz2
+*.lz
+*.xz
+*.tgz
+*.txz
+
+# Signatures
+*.asc
+*.sig
+*.sign
+*.sha1sum
+
+# Patches
+*.patch
+
+# Descriptions
+*.dsc
+*.txt
+
+# Default linux config files
+*.defconfig
+
+# backup copies
+*~
Index: sources/GNU/glibc/2.40
===================================================================
--- sources/GNU/glibc/2.40	(nonexistent)
+++ sources/GNU/glibc/2.40	(revision 394)

Property changes on: sources/GNU/glibc/2.40
___________________________________________________________________
Added: svn:ignore
## -0,0 +1,73 ##
+
+# install dir
+dist
+
+# Target build dirs
+.a1x-newlib
+.a2x-newlib
+.at91sam7s-newlib
+
+.build-machine
+
+.a1x-glibc
+.a2x-glibc
+.h3-glibc
+.h5-glibc
+.i586-glibc
+.i686-glibc
+.imx6-glibc
+.jz47xx-glibc
+.makefile
+.am335x-glibc
+.omap543x-glibc
+.p5600-glibc
+.power8-glibc
+.power8le-glibc
+.power9-glibc
+.power9le-glibc
+.m1000-glibc
+.riscv64-glibc
+.rk328x-glibc
+.rk33xx-glibc
+.rk339x-glibc
+.s8xx-glibc
+.s9xx-glibc
+.x86_64-glibc
+
+# Hidden files (each file)
+.makefile
+.dist
+.rootfs
+
+# src & hw requires
+.src_requires
+.src_requires_depend
+.requires
+.requires_depend
+
+# Tarballs
+*.gz
+*.bz2
+*.lz
+*.xz
+*.tgz
+*.txz
+
+# Signatures
+*.asc
+*.sig
+*.sign
+*.sha1sum
+
+# Patches
+*.patch
+
+# Descriptions
+*.dsc
+*.txt
+
+# Default linux config files
+*.defconfig
+
+# backup copies
+*~
Index: sources/iana/tz/create-2023c-version-patch/file.list
===================================================================
--- sources/iana/tz/create-2023c-version-patch/file.list	(revision 393)
+++ sources/iana/tz/create-2023c-version-patch/file.list	(nonexistent)
@@ -1 +0,0 @@
-Makefile
Index: sources/iana/tz/create-2023c-version-patch/timezone-new/Makefile
===================================================================
--- sources/iana/tz/create-2023c-version-patch/timezone-new/Makefile	(revision 393)
+++ sources/iana/tz/create-2023c-version-patch/timezone-new/Makefile	(nonexistent)
@@ -1,1249 +0,0 @@
-# Make and install tzdb code and data.
-
-# This file is in the public domain, so clarified as of
-# 2009-05-17 by Arthur David Olson.
-
-# Package name for the code distribution.
-PACKAGE=	tzcode
-
-# Version number for the distribution, overridden in the 'tarballs' rule below.
-VERSION=	2023c
-
-# Email address for bug reports.
-BUGEMAIL=	tz@iana.org
-
-# DATAFORM selects the data format.
-# Available formats represent essentially the same data, albeit
-# possibly with minor discrepancies that users are not likely to notice.
-# To get new features and the best data right away, use:
-#	DATAFORM=	vanguard
-# To wait a while before using new features, to give downstream users
-# time to upgrade zic (the default), use:
-#	DATAFORM=	main
-# To wait even longer for new features, use:
-#	DATAFORM=	rearguard
-# Rearguard users might also want "ZFLAGS = -b fat"; see below.
-DATAFORM=		main
-
-# Change the line below for your timezone (after finding the one you want in
-# one of the $(TDATA) source files, or adding it to a source file).
-# Alternatively, if you discover you've got the wrong timezone, you can just
-# 'zic -l -' to remove it, or 'zic -l rightzone' to change it.
-# Use the command
-#	make zonenames
-# to get a list of the values you can use for LOCALTIME.
-
-LOCALTIME=	Factory
-
-# The POSIXRULES macro controls interpretation of POSIX-like TZ
-# settings like TZ='EET-2EEST' that lack DST transition rules.
-# If POSIXRULES is '-', no template is installed; this is the default.
-# Any other value for POSIXRULES is obsolete and should not be relied on, as:
-# * It does not work correctly in popular implementations such as GNU/Linux.
-# * It does not work even in tzcode, except for historical timestamps
-#   that precede the last explicit transition in the POSIXRULES file.
-#   Hence it typically does not work for current and future timestamps.
-# If, despite the above, you want a template for handling these settings,
-# you can change the line below (after finding the timezone you want in the
-# one of the $(TDATA) source files, or adding it to a source file).
-# Alternatively, if you discover you've got the wrong timezone, you can just
-# 'zic -p -' to remove it, or 'zic -p rightzone' to change it.
-# Use the command
-#	make zonenames
-# to get a list of the values you can use for POSIXRULES.
-
-POSIXRULES=	-
-
-# Also see TZDEFRULESTRING below, which takes effect only
-# if POSIXRULES is '-' or if the template file cannot be accessed.
-
-
-# Installation locations.
-#
-# The defaults are suitable for Debian, except that if REDO is
-# posix_right or right_posix then files that Debian puts under
-# /usr/share/zoneinfo/posix and /usr/share/zoneinfo/right are instead
-# put under /usr/share/zoneinfo-posix and /usr/share/zoneinfo-leaps,
-# respectively.  Problems with the Debian approach are discussed in
-# the commentary for the right_posix rule (below).
-
-# Destination directory, which can be used for staging.
-# 'make DESTDIR=/stage install' installs under /stage (e.g., to
-# /stage/etc/localtime instead of to /etc/localtime).  Files under
-# /stage are not intended to work as-is, but can be copied by hand to
-# the root directory later.  If DESTDIR is empty, 'make install' does
-# not stage, but installs directly into production locations.
-DESTDIR =
-
-# Everything is installed into subdirectories of TOPDIR, and used there.
-# TOPDIR should be empty (meaning the root directory),
-# or a directory name that does not end in "/".
-# TOPDIR should be empty or an absolute name unless you're just testing.
-TOPDIR =
-
-# The default local timezone is taken from the file TZDEFAULT.
-TZDEFAULT = $(TOPDIR)/etc/localtime
-
-# The subdirectory containing installed program and data files, and
-# likewise for installed files that can be shared among architectures.
-# These should be relative file names.
-USRDIR = usr
-USRSHAREDIR = $(USRDIR)/share
-
-# "Compiled" timezone information is placed in the "TZDIR" directory
-# (and subdirectories).
-# TZDIR_BASENAME should not contain "/" and should not be ".", ".." or empty.
-TZDIR_BASENAME=	zoneinfo
-TZDIR = $(TOPDIR)/$(USRSHAREDIR)/$(TZDIR_BASENAME)
-
-# The "tzselect" and (if you do "make INSTALL") "date" commands go in:
-BINDIR = $(TOPDIR)/$(USRDIR)/bin
-
-# The "zdump" command goes in:
-ZDUMPDIR = $(BINDIR)
-
-# The "zic" command goes in:
-ZICDIR = $(TOPDIR)/$(USRDIR)/sbin
-
-# Manual pages go in subdirectories of. . .
-MANDIR = $(TOPDIR)/$(USRSHAREDIR)/man
-
-# Library functions are put in an archive in LIBDIR.
-LIBDIR = $(TOPDIR)/$(USRDIR)/lib
-
-
-# Types to try, as an alternative to time_t.
-TIME_T_ALTERNATIVES = $(TIME_T_ALTERNATIVES_HEAD) $(TIME_T_ALTERNATIVES_TAIL)
-TIME_T_ALTERNATIVES_HEAD = int_least64_t
-TIME_T_ALTERNATIVES_TAIL = int_least32_t uint_least32_t uint_least64_t
-
-# What kind of TZif data files to generate.  (TZif is the binary time
-# zone data format that zic generates; see Internet RFC 8536.)
-# If you want only POSIX time, with time values interpreted as
-# seconds since the epoch (not counting leap seconds), use
-#	REDO=		posix_only
-# below.  If you want only "right" time, with values interpreted
-# as seconds since the epoch (counting leap seconds), use
-#	REDO=		right_only
-# below.  If you want both sets of data available, with leap seconds not
-# counted normally, use
-#	REDO=		posix_right
-# below.  If you want both sets of data available, with leap seconds counted
-# normally, use
-#	REDO=		right_posix
-# below.  POSIX mandates that leap seconds not be counted; for compatibility
-# with it, use "posix_only" or "posix_right".  Use POSIX time on systems with
-# leap smearing; this can work better than unsmeared "right" time with
-# applications that are not leap second aware, and is closer to unsmeared
-# "right" time than unsmeared POSIX time is (e.g., 0.5 vs 1.0 s max error).
-
-REDO=		posix_right
-
-# Whether to put an "Expires" line in the leapseconds file.
-# Use EXPIRES_LINE=1 to put the line in, 0 to omit it.
-# The EXPIRES_LINE value matters only if REDO's value contains "right".
-# If you change EXPIRES_LINE, remove the leapseconds file before running "make".
-# zic's support for the Expires line was introduced in tzdb 2020a,
-# and was modified in tzdb 2021b to generate version 4 TZif files.
-# EXPIRES_LINE defaults to 0 for now so that the leapseconds file
-# can be given to pre-2020a zic implementations and so that TZif files
-# built by newer zic implementations can be read by pre-2021b libraries.
-EXPIRES_LINE=	0
-
-# To install data in text form that has all the information of the TZif data,
-# (optionally incorporating leap second information), use
-#	TZDATA_TEXT=	tzdata.zi leapseconds
-# To install text data without leap second information (e.g., because
-# REDO='posix_only'), use
-#	TZDATA_TEXT=	tzdata.zi
-# To avoid installing text data, use
-#	TZDATA_TEXT=
-
-TZDATA_TEXT=	leapseconds tzdata.zi
-
-# For backward-compatibility links for old zone names, use
-#	BACKWARD=	backward
-# To omit these links, use
-#	BACKWARD=
-
-BACKWARD=	backward
-
-# If you want out-of-scope and often-wrong data from the file 'backzone',
-# but only for entries listed in the backward-compatibility file zone.tab, use
-#	PACKRATDATA=	backzone
-#	PACKRATLIST=	zone.tab
-# If you want all the 'backzone' data, use
-#	PACKRATDATA=	backzone
-#	PACKRATLIST=
-# To omit this data, use
-#	PACKRATDATA=
-#	PACKRATLIST=
-
-PACKRATDATA=
-PACKRATLIST=
-
-# The name of a locale using the UTF-8 encoding, used during self-tests.
-# The tests are skipped if the name does not appear to work on this system.
-
-UTF8_LOCALE=	en_US.utf8
-
-# Non-default libraries needed to link.
-# On some hosts, this should have -lintl unless CFLAGS has -DHAVE_GETTEXT=0.
-LDLIBS=
-
-# Add the following to the end of the "CFLAGS=" line as needed to override
-# defaults specified in the source code.  "-DFOO" is equivalent to "-DFOO=1".
-#  -DDEPRECATE_TWO_DIGIT_YEARS for optional runtime warnings about strftime
-#	formats that generate only the last two digits of year numbers
-#  -DEPOCH_LOCAL if the 'time' function returns local time not UT
-#  -DEPOCH_OFFSET=N if the 'time' function returns a value N greater
-#	than what POSIX specifies, assuming local time is UT.
-#	For example, N is 252460800 on AmigaOS.
-#  -DHAVE_DECL_ASCTIME_R=0 if <time.h> does not declare asctime_r
-#  -DHAVE_DECL_ENVIRON if <unistd.h> declares 'environ'
-#  -DHAVE_DECL_TIMEGM=0 if <time.h> does not declare timegm
-#  -DHAVE_DIRECT_H if mkdir needs <direct.h> (MS-Windows)
-#  -DHAVE__GENERIC=0 if _Generic does not work*
-#  -DHAVE_GETRANDOM if getrandom works (e.g., GNU/Linux),
-#	-DHAVE_GETRANDOM=0 to avoid using getrandom
-#  -DHAVE_GETTEXT if gettext works (e.g., GNU/Linux, FreeBSD, Solaris),
-#	where LDLIBS also needs to contain -lintl on some hosts;
-#	-DHAVE_GETTEXT=0 to avoid using gettext
-#  -DHAVE_INCOMPATIBLE_CTIME_R if your system's time.h declares
-#	ctime_r and asctime_r incompatibly with the POSIX standard
-#	(Solaris when _POSIX_PTHREAD_SEMANTICS is not defined).
-#  -DHAVE_INTTYPES_H=0 if <inttypes.h> does not work*+
-#  -DHAVE_LINK=0 if your system lacks a link function
-#  -DHAVE_LOCALTIME_R=0 if your system lacks a localtime_r function
-#  -DHAVE_LOCALTIME_RZ=0 if you do not want zdump to use localtime_rz
-#	localtime_rz can make zdump significantly faster, but is nonstandard.
-#  -DHAVE_MALLOC_ERRNO=0 if malloc etc. do not set errno on failure.
-#  -DHAVE_POSIX_DECLS=0 if your system's include files do not declare
-#	functions like 'link' or variables like 'tzname' required by POSIX
-#  -DHAVE_SETENV=0 if your system lacks the setenv function
-#  -DHAVE_SNPRINTF=0 if your system lacks the snprintf function+
-#  -DHAVE_STDCKDINT_H=0 if neither <stdckdint.h> nor substitutes like
-#	__builtin_add_overflow work*
-#  -DHAVE_STDINT_H=0 if <stdint.h> does not work*+
-#  -DHAVE_STRFTIME_L if <time.h> declares locale_t and strftime_l
-#  -DHAVE_STRDUP=0 if your system lacks the strdup function
-#  -DHAVE_STRTOLL=0 if your system lacks the strtoll function+
-#  -DHAVE_SYMLINK=0 if your system lacks the symlink function
-#  -DHAVE_SYS_STAT_H=0 if <sys/stat.h> does not work*
-#  -DHAVE_TZSET=0 if your system lacks a tzset function
-#  -DHAVE_UNISTD_H=0 if <unistd.h> does not work*
-#  -DHAVE_UTMPX_H=0 if <utmpx.h> does not work*
-#  -Dlocale_t=XXX if your system uses XXX instead of locale_t
-#  -DPORT_TO_C89 if tzcode should also run on C89 platforms+
-#  -DRESERVE_STD_EXT_IDS if your platform reserves standard identifiers
-#	with external linkage, e.g., applications cannot define 'localtime'.
-#  -Dssize_t=long on hosts like MS-Windows that lack ssize_t
-#  -DSUPPORT_C89 if the tzcode library should support C89 callers+
-#  -DSUPPRESS_TZDIR to not prepend TZDIR to file names; this has
-#	security implications and is not recommended for general use
-#  -DTHREAD_SAFE to make localtime.c thread-safe, as POSIX requires;
-#	not needed by the main-program tz code, which is single-threaded.
-#	Append other compiler flags as needed, e.g., -pthread on GNU/Linux.
-#  -Dtime_tz=\"T\" to use T as the time_t type, rather than the system time_t
-#	This is intended for internal use only; it mangles external names.
-#  -DTZ_DOMAIN=\"foo\" to use "foo" for gettext domain name; default is "tz"
-#  -DTZ_DOMAINDIR=\"/path\" to use "/path" for gettext directory;
-#	the default is system-supplied, typically "/usr/lib/locale"
-#  -DTZDEFRULESTRING=\",date/time,date/time\" to default to the specified
-#	DST transitions for POSIX-style TZ strings lacking them,
-#	in the usual case where POSIXRULES is '-'.  If not specified,
-#	TZDEFRULESTRING defaults to US rules for future DST transitions.
-#	This mishandles some past timestamps, as US DST rules have changed.
-#	It also mishandles settings like TZ='EET-2EEST' for eastern Europe,
-#	as Europe and US DST rules differ.
-#  -DTZNAME_MAXIMUM=N to limit time zone abbreviations to N bytes (default 255)
-#  -DUNINIT_TRAP if reading uninitialized storage can cause problems
-#	other than simply getting garbage data
-#  -DUSE_LTZ=0 to build zdump with the system time zone library
-#	Also set TZDOBJS=zdump.o and CHECK_TIME_T_ALTERNATIVES= below.
-#  -DZIC_BLOAT_DEFAULT=\"fat\" to default zic's -b option to "fat", and
-#	similarly for "slim".  Fat TZif files work around incompatibilities
-#	and bugs in some TZif readers, notably older ones that
-#	ignore or otherwise mishandle 64-bit data in TZif files;
-#	however, fat TZif files may trigger bugs in newer TZif readers.
-#	Slim TZif files are more efficient, and are the default.
-#  -DZIC_MAX_ABBR_LEN_WO_WARN=3
-#	(or some other number) to set the maximum time zone abbreviation length
-#	that zic will accept without a warning (the default is 6)
-#  $(GCC_DEBUG_FLAGS) if you are using recent GCC and want lots of checking
-#
-# * Options marked "*" can be omitted if your compiler is C23 compatible.
-# * Options marked "+" are obsolescent and are planned to be removed
-#   once the code assumes C99 or later.
-#
-# Select instrumentation via "make GCC_INSTRUMENT='whatever'".
-GCC_INSTRUMENT = \
-  -fsanitize=undefined -fsanitize-address-use-after-scope \
-  -fsanitize-undefined-trap-on-error -fstack-protector
-# Omit -fanalyzer from GCC_DEBUG_FLAGS, as it makes GCC too slow.
-GCC_DEBUG_FLAGS = -DGCC_LINT -g3 -O3 -fno-common \
-  $(GCC_INSTRUMENT) \
-  -Wall -Wextra \
-  -Walloc-size-larger-than=100000 -Warray-bounds=2 \
-  -Wbad-function-cast -Wbidi-chars=any,ucn -Wcast-align=strict -Wdate-time \
-  -Wdeclaration-after-statement -Wdouble-promotion \
-  -Wduplicated-branches -Wduplicated-cond \
-  -Wformat=2 -Wformat-overflow=2 -Wformat-signedness -Wformat-truncation \
-  -Wimplicit-fallthrough=5 -Winit-self -Wlogical-op \
-  -Wmissing-declarations -Wmissing-prototypes -Wnested-externs \
-  -Wnull-dereference \
-  -Wold-style-definition -Woverlength-strings -Wpointer-arith \
-  -Wshadow -Wshift-overflow=2 -Wstrict-overflow \
-  -Wstrict-prototypes -Wstringop-overflow=4 \
-  -Wstringop-truncation -Wsuggest-attribute=cold \
-  -Wsuggest-attribute=const -Wsuggest-attribute=format \
-  -Wsuggest-attribute=malloc \
-  -Wsuggest-attribute=noreturn -Wsuggest-attribute=pure \
-  -Wtrampolines -Wundef -Wuninitialized -Wunused-macros -Wuse-after-free=3 \
-  -Wvariadic-macros -Wvla -Wwrite-strings \
-  -Wno-address -Wno-format-nonliteral -Wno-sign-compare \
-  -Wno-type-limits
-#
-# If your system has a "GMT offset" field in its "struct tm"s
-# (or if you decide to add such a field in your system's "time.h" file),
-# add the name to a define such as
-#	-DTM_GMTOFF=tm_gmtoff
-# to the end of the "CFLAGS=" line.  If not defined, the code attempts to
-# guess TM_GMTOFF from other macros; define NO_TM_GMTOFF to suppress this.
-# Similarly, if your system has a "zone abbreviation" field, define
-#	-DTM_ZONE=tm_zone
-# and define NO_TM_ZONE to suppress any guessing.  Although these two fields
-# not required by POSIX, a future version of POSIX is planned to require them
-# and they are widely available on GNU/Linux and BSD systems.
-#
-# The next batch of options control support for external variables
-# exported by tzcode.  In practice these variables are less useful
-# than TM_GMTOFF and TM_ZONE.  However, most of them are standardized.
-# #
-# # To omit or support the external variable "tzname", add one of:
-# #	-DHAVE_TZNAME=0 # do not support "tzname"
-# #	-DHAVE_TZNAME=1 # support "tzname", which is defined by system library
-# #	-DHAVE_TZNAME=2 # support and define "tzname"
-# # to the "CFLAGS=" line.  "tzname" is required by POSIX 1988 and later.
-# # If not defined, the code attempts to guess HAVE_TZNAME from other macros.
-# # Warning: unless time_tz is also defined, HAVE_TZNAME=1 can cause
-# # crashes when combined with some platforms' standard libraries,
-# # presumably due to memory allocation issues.
-# #
-# # To omit or support the external variables "timezone" and "daylight", add
-# #	-DUSG_COMPAT=0 # do not support
-# #	-DUSG_COMPAT=1 # support, and variables are defined by system library
-# #	-DUSG_COMPAT=2 # support and define variables
-# # to the "CFLAGS=" line; "timezone" and "daylight" are inspired by
-# # Unix Systems Group code and are required by POSIX 2008 (with XSI) and later.
-# # If not defined, the code attempts to guess USG_COMPAT from other macros.
-# #
-# # To support the external variable "altzone", add
-# #	-DALTZONE=0 # do not support
-# #	-DALTZONE=1 # support "altzone", which is defined by system library
-# #	-DALTZONE=2 # support and define "altzone"
-# # to the end of the "CFLAGS=" line; although "altzone" appeared in
-# # System V Release 3.1 it has not been standardized.
-# # If not defined, the code attempts to guess ALTZONE from other macros.
-#
-# If you want functions that were inspired by early versions of X3J11's work,
-# add
-#	-DSTD_INSPIRED
-# to the end of the "CFLAGS=" line.  This arranges for the following
-# functions to be added to the time conversion library.
-# "offtime" is like "gmtime" except that it accepts a second (long) argument
-# that gives an offset to add to the time_t when converting it.
-# "timelocal" is equivalent to "mktime".
-# "timeoff" is like "timegm" except that it accepts a second (long) argument
-# that gives an offset to use when converting to a time_t.
-# "posix2time" and "time2posix" are described in an included manual page.
-# X3J11's work does not describe any of these functions.
-# These functions may well disappear in future releases of the time
-# conversion package.
-#
-# If you don't want functions that were inspired by NetBSD, add
-#	-DNETBSD_INSPIRED=0
-# to the end of the "CFLAGS=" line.  Otherwise, the functions
-# "localtime_rz", "mktime_z", "tzalloc", and "tzfree" are added to the
-# time library, and if STD_INSPIRED is also defined to nonzero the functions
-# "posix2time_z" and "time2posix_z" are added as well.
-# The functions ending in "_z" (or "_rz") are like their unsuffixed
-# (or suffixed-by-"_r") counterparts, except with an extra first
-# argument of opaque type timezone_t that specifies the timezone.
-# "tzalloc" allocates a timezone_t value, and "tzfree" frees it.
-#
-# If you want to allocate state structures in localtime, add
-#	-DALL_STATE
-# to the end of the "CFLAGS=" line.  Storage is obtained by calling malloc.
-#
-# NIST-PCTS:151-2, Version 1.4, (1993-12-03) is a test suite put
-# out by the National Institute of Standards and Technology
-# which claims to test C and Posix conformance.  If you want to pass PCTS, add
-#	-DPCTS
-# to the end of the "CFLAGS=" line.
-#
-# If you want strict compliance with XPG4 as of 1994-04-09, add
-#	-DXPG4_1994_04_09
-# to the end of the "CFLAGS=" line.  This causes "strftime" to always return
-# 53 as a week number (rather than 52 or 53) for January days before
-# January's first Monday when a "%V" format is used and January 1
-# falls on a Friday, Saturday, or Sunday.
-
-CFLAGS=
-
-# Linker flags.  Default to $(LFLAGS) for backwards compatibility
-# to release 2012h and earlier.
-
-LDFLAGS=	$(LFLAGS)
-
-# For leap seconds, this Makefile uses LEAPSECONDS='-L leapseconds' in
-# submake command lines.  The default is no leap seconds.
-
-LEAPSECONDS=
-
-# The zic command and its arguments.
-
-zic=		./zic
-ZIC=		$(zic) $(ZFLAGS)
-
-# To shrink the size of installed TZif files,
-# append "-r @N" to omit data before N-seconds-after-the-Epoch.
-# To grow the files and work around bugs in older applications,
-# possibly at the expense of introducing bugs in newer ones,
-# append "-b fat"; see ZIC_BLOAT_DEFAULT above.
-# See the zic man page for more about -b and -r.
-ZFLAGS=
-
-# How to use zic to install TZif files.
-
-ZIC_INSTALL=	$(ZIC) -d '$(DESTDIR)$(TZDIR)' $(LEAPSECONDS)
-
-# The name of a Posix-compliant 'awk' on your system.
-# mawk 1.3.3 and Solaris 10 /usr/bin/awk do not work.
-# Also, it is better (though not essential) if 'awk' supports UTF-8,
-# and unfortunately mawk and busybox awk do not support UTF-8.
-# Try AWK=gawk or AWK=nawk if your awk has the abovementioned problems.
-AWK=		awk
-
-# The full path name of a Posix-compliant shell, preferably one that supports
-# the Korn shell's 'select' statement as an extension.
-# These days, Bash is the most popular.
-# It should be OK to set this to /bin/sh, on platforms where /bin/sh
-# lacks 'select' or doesn't completely conform to Posix, but /bin/bash
-# is typically nicer if it works.
-KSHELL=		/bin/bash
-
-# Name of curl <https://curl.haxx.se/>, used for HTML validation.
-CURL=		curl
-
-# Name of GNU Privacy Guard <https://gnupg.org/>, used to sign distributions.
-GPG=		gpg
-
-# This expensive test requires USE_LTZ.
-# To suppress it, define this macro to be empty.
-CHECK_TIME_T_ALTERNATIVES = check_time_t_alternatives
-
-# SAFE_CHAR is a regular expression that matches a safe character.
-# Some parts of this distribution are limited to safe characters;
-# others can use any UTF-8 character.
-# For now, the safe characters are a safe subset of ASCII.
-# The caller must set the shell variable 'sharp' to the character '#',
-# since Makefile macros cannot contain '#'.
-# TAB_CHAR is a single tab character, in single quotes.
-TAB_CHAR=	'	'
-SAFE_CHARSET1=	$(TAB_CHAR)' !\"'$$sharp'$$%&'\''()*+,./0123456789:;<=>?@'
-SAFE_CHARSET2=	'ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\^_`'
-SAFE_CHARSET3=	'abcdefghijklmnopqrstuvwxyz{|}~'
-SAFE_CHARSET=	$(SAFE_CHARSET1)$(SAFE_CHARSET2)$(SAFE_CHARSET3)
-SAFE_CHAR=	'[]'$(SAFE_CHARSET)'-]'
-
-# These non-alphabetic, non-ASCII printable characters are Latin-1,
-# and so are likely displayable even in editors like XEmacs 21
-# that have limited display capabilities.
-UNUSUAL_OK_LATIN_1 = ¡¢£¤¥¦§¨©«¬®¯°±²³´¶·¸¹»¼½¾¿×÷
-# Non-ASCII non-letters that OK_CHAR allows, as these characters are
-# useful in commentary.
-UNUSUAL_OK_CHARSET= $(UNUSUAL_OK_LATIN_1)
-
-# Put this in a bracket expression to match spaces.
-s = [:space:]
-
-# OK_CHAR matches any character allowed in the distributed files.
-# This is the same as SAFE_CHAR, except that UNUSUAL_OK_CHARSET and
-# multibyte letters are also allowed so that commentary can contain a
-# few safe symbols and people's names and can quote non-English sources.
-# Other non-letters are limited to ASCII renderings for the
-# convenience of maintainers using XEmacs 21.5.34, which by default
-# mishandles Unicode characters U+0100 and greater.
-OK_CHAR=	'[][:alpha:]$(UNUSUAL_OK_CHARSET)'$(SAFE_CHARSET)'-]'
-
-# SAFE_LINE matches a line of safe characters.
-# SAFE_SHARP_LINE is similar, except any OK character can follow '#';
-# this is so that comments can contain non-ASCII characters.
-# OK_LINE matches a line of OK characters.
-SAFE_LINE=	'^'$(SAFE_CHAR)'*$$'
-SAFE_SHARP_LINE='^'$(SAFE_CHAR)'*('$$sharp$(OK_CHAR)'*)?$$'
-OK_LINE=	'^'$(OK_CHAR)'*$$'
-
-# Flags to give 'tar' when making a distribution.
-# Try to use flags appropriate for GNU tar.
-GNUTARFLAGS= --format=pax --pax-option='delete=atime,delete=ctime' \
-  --numeric-owner --owner=0 --group=0 \
-  --mode=go+u,go-w --sort=name
-TARFLAGS=	`if tar $(GNUTARFLAGS) --version >/dev/null 2>&1; \
-		 then echo $(GNUTARFLAGS); \
-		 else :; \
-		 fi`
-
-# Flags to give 'gzip' when making a distribution.
-GZIPFLAGS=	-9n
-
-# When comparing .tzs files, use GNU diff's -F'^TZ=' option if supported.
-# This makes it easier to see which Zone has been affected.
-DIFF_TZS=	 diff -u$$(! diff -u -F'^TZ=' - - <>/dev/null >&0 2>&1 \
-			   || echo ' -F^TZ=')
-
-###############################################################################
-
-#MAKE=		make
-
-cc=		cc
-CC=		$(cc) -DTZDIR='"$(TZDIR)"'
-
-AR=		ar
-
-# ':' on typical hosts; 'ranlib' on the ancient hosts that still need ranlib.
-RANLIB=		:
-
-TZCOBJS=	zic.o
-TZDOBJS=	zdump.o localtime.o asctime.o strftime.o
-DATEOBJS=	date.o localtime.o strftime.o asctime.o
-LIBSRCS=	localtime.c asctime.c difftime.c strftime.c
-LIBOBJS=	localtime.o asctime.o difftime.o strftime.o
-HEADERS=	tzfile.h private.h
-NONLIBSRCS=	zic.c zdump.c
-NEWUCBSRCS=	date.c
-SOURCES=	$(HEADERS) $(LIBSRCS) $(NONLIBSRCS) $(NEWUCBSRCS) \
-			tzselect.ksh workman.sh
-MANS=		newctime.3 newstrftime.3 newtzset.3 time2posix.3 \
-			tzfile.5 tzselect.8 zic.8 zdump.8
-MANTXTS=	newctime.3.txt newstrftime.3.txt newtzset.3.txt \
-			time2posix.3.txt \
-			tzfile.5.txt tzselect.8.txt zic.8.txt zdump.8.txt \
-			date.1.txt
-COMMON=		calendars CONTRIBUTING LICENSE Makefile \
-			NEWS README SECURITY theory.html version
-WEB_PAGES=	tz-art.html tz-how-to.html tz-link.html
-CHECK_WEB_PAGES=check_theory.html check_tz-art.html \
-			check_tz-how-to.html check_tz-link.html
-DOCS=		$(MANS) date.1 $(MANTXTS) $(WEB_PAGES)
-PRIMARY_YDATA=	africa antarctica asia australasia \
-		europe northamerica southamerica
-YDATA=		$(PRIMARY_YDATA) etcetera
-NDATA=		factory
-TDATA_TO_CHECK=	$(YDATA) $(NDATA) backward
-TDATA=		$(YDATA) $(NDATA) $(BACKWARD)
-ZONETABLES=	zone1970.tab zone.tab
-TABDATA=	iso3166.tab $(TZDATA_TEXT) $(ZONETABLES)
-LEAP_DEPS=	leapseconds.awk leap-seconds.list
-TZDATA_ZI_DEPS=	ziguard.awk zishrink.awk version $(TDATA) \
-		  $(PACKRATDATA) $(PACKRATLIST)
-DSTDATA_ZI_DEPS= ziguard.awk $(TDATA) $(PACKRATDATA) $(PACKRATLIST)
-DATA=		$(TDATA_TO_CHECK) backzone iso3166.tab leap-seconds.list \
-			leapseconds $(ZONETABLES)
-AWK_SCRIPTS=	checklinks.awk checktab.awk leapseconds.awk \
-			ziguard.awk zishrink.awk
-MISC=		$(AWK_SCRIPTS)
-TZS_YEAR=	2050
-TZS_CUTOFF_FLAG=	-c $(TZS_YEAR)
-TZS=		to$(TZS_YEAR).tzs
-TZS_NEW=	to$(TZS_YEAR)new.tzs
-TZS_DEPS=	$(YDATA) asctime.c localtime.c \
-			private.h tzfile.h zdump.c zic.c
-TZDATA_DIST = $(COMMON) $(DATA) $(MISC)
-# EIGHT_YARDS is just a yard short of the whole ENCHILADA.
-EIGHT_YARDS = $(TZDATA_DIST) $(DOCS) $(SOURCES) tzdata.zi
-ENCHILADA = $(EIGHT_YARDS) $(TZS)
-
-# Consult these files when deciding whether to rebuild the 'version' file.
-# This list is not the same as the output of 'git ls-files', since
-# .gitignore is not distributed.
-VERSION_DEPS= \
-		calendars CONTRIBUTING LICENSE Makefile NEWS README SECURITY \
-		africa antarctica asctime.c asia australasia \
-		backward backzone \
-		checklinks.awk checktab.awk \
-		date.1 date.c difftime.c \
-		etcetera europe factory iso3166.tab \
-		leap-seconds.list leapseconds.awk localtime.c \
-		newctime.3 newstrftime.3 newtzset.3 northamerica \
-		private.h southamerica strftime.c theory.html \
-		time2posix.3 tz-art.html tz-how-to.html tz-link.html \
-		tzfile.5 tzfile.h tzselect.8 tzselect.ksh \
-		workman.sh zdump.8 zdump.c zic.8 zic.c \
-		ziguard.awk zishrink.awk \
-		zone.tab zone1970.tab
-
-# And for the benefit of csh users on systems that assume the user
-# shell should be used to handle commands in Makefiles. . .
-
-SHELL=		/bin/sh
-
-all:		tzselect zic zdump libtz.a $(TABDATA) \
-		  vanguard.zi main.zi rearguard.zi
-
-ALL:		all date $(ENCHILADA)
-
-install:	all $(DATA) $(REDO) $(MANS)
-		mkdir -p '$(DESTDIR)$(BINDIR)' \
-			'$(DESTDIR)$(ZDUMPDIR)' '$(DESTDIR)$(ZICDIR)' \
-			'$(DESTDIR)$(LIBDIR)' \
-			'$(DESTDIR)$(MANDIR)/man3' '$(DESTDIR)$(MANDIR)/man5' \
-			'$(DESTDIR)$(MANDIR)/man8'
-		$(ZIC_INSTALL) -l $(LOCALTIME) \
-			`case '$(POSIXRULES)' in ?*) echo '-p';; esac \
-			` $(POSIXRULES) \
-			-t '$(DESTDIR)$(TZDEFAULT)'
-		cp -f $(TABDATA) '$(DESTDIR)$(TZDIR)/.'
-		cp tzselect '$(DESTDIR)$(BINDIR)/.'
-		cp zdump '$(DESTDIR)$(ZDUMPDIR)/.'
-		cp zic '$(DESTDIR)$(ZICDIR)/.'
-		cp libtz.a '$(DESTDIR)$(LIBDIR)/.'
-		$(RANLIB) '$(DESTDIR)$(LIBDIR)/libtz.a'
-		cp -f newctime.3 newtzset.3 '$(DESTDIR)$(MANDIR)/man3/.'
-		cp -f tzfile.5 '$(DESTDIR)$(MANDIR)/man5/.'
-		cp -f tzselect.8 zdump.8 zic.8 '$(DESTDIR)$(MANDIR)/man8/.'
-
-INSTALL:	ALL install date.1
-		mkdir -p '$(DESTDIR)$(BINDIR)' '$(DESTDIR)$(MANDIR)/man1'
-		cp date '$(DESTDIR)$(BINDIR)/.'
-		cp -f date.1 '$(DESTDIR)$(MANDIR)/man1/.'
-
-# Calculate version number from git, if available.
-# Otherwise, use $(VERSION) unless it is "unknown" and there is already
-# a 'version' file, in which case reuse the existing 'version' contents
-# and append "-dirty" if the contents do not already end in "-dirty".
-version:	$(VERSION_DEPS)
-		{ (type git) >/dev/null 2>&1 && \
-		  V=`git describe --match '[0-9][0-9][0-9][0-9][a-z]*' \
-				--abbrev=7 --dirty` || \
-		  if test '$(VERSION)' = unknown && V=`cat $@`; then \
-		    case $$V in *-dirty);; *) V=$$V-dirty;; esac; \
-		  else \
-		    V='$(VERSION)'; \
-		  fi; } && \
-		printf '%s\n' "$$V" >$@.out
-		mv $@.out $@
-
-# These files can be tailored by setting BACKWARD, PACKRATDATA, PACKRATLIST.
-vanguard.zi main.zi rearguard.zi: $(DSTDATA_ZI_DEPS)
-		$(AWK) \
-		  -v DATAFORM=`expr $@ : '\(.*\).zi'` \
-		  -v PACKRATDATA='$(PACKRATDATA)' \
-		  -v PACKRATLIST='$(PACKRATLIST)' \
-		  -f ziguard.awk \
-		  $(TDATA) $(PACKRATDATA) >$@.out
-		mv $@.out $@
-# This file has a version comment that attempts to capture any tailoring
-# via BACKWARD, DATAFORM, PACKRATDATA, PACKRATLIST, and REDO.
-tzdata.zi:	$(DATAFORM).zi version zishrink.awk
-		version=`sed 1q version` && \
-		  LC_ALL=C $(AWK) \
-		    -v dataform='$(DATAFORM)' \
-		    -v deps='$(DSTDATA_ZI_DEPS) zishrink.awk' \
-		    -v redo='$(REDO)' \
-		    -v version="$$version" \
-		    -f zishrink.awk \
-		    $(DATAFORM).zi >$@.out
-		mv $@.out $@
-
-version.h:	version
-		VERSION=`cat version` && printf '%s\n' \
-		  'static char const PKGVERSION[]="($(PACKAGE)) ";' \
-		  "static char const TZVERSION[]=\"$$VERSION\";" \
-		  'static char const REPORT_BUGS_TO[]="$(BUGEMAIL)";' \
-		  >$@.out
-		mv $@.out $@
-
-zdump:		$(TZDOBJS)
-		$(CC) -o $@ $(CFLAGS) $(LDFLAGS) $(TZDOBJS) $(LDLIBS)
-
-zic:		$(TZCOBJS)
-		$(CC) -o $@ $(CFLAGS) $(LDFLAGS) $(TZCOBJS) $(LDLIBS)
-
-leapseconds:	$(LEAP_DEPS)
-		$(AWK) -v EXPIRES_LINE=$(EXPIRES_LINE) \
-		  -f leapseconds.awk leap-seconds.list >$@.out
-		mv $@.out $@
-
-# Arguments to pass to submakes of install_data.
-# They can be overridden by later submake arguments.
-INSTALLARGS = \
- BACKWARD='$(BACKWARD)' \
- DESTDIR='$(DESTDIR)' \
- LEAPSECONDS='$(LEAPSECONDS)' \
- PACKRATDATA='$(PACKRATDATA)' \
- PACKRATLIST='$(PACKRATLIST)' \
- TZDEFAULT='$(TZDEFAULT)' \
- TZDIR='$(TZDIR)' \
- ZIC='$(ZIC)'
-
-INSTALL_DATA_DEPS = zic leapseconds tzdata.zi
-
-# 'make install_data' installs one set of TZif files.
-install_data: $(INSTALL_DATA_DEPS)
-		$(ZIC_INSTALL) tzdata.zi
-
-posix_only: $(INSTALL_DATA_DEPS)
-		$(MAKE) $(INSTALLARGS) LEAPSECONDS= install_data
-
-right_only: $(INSTALL_DATA_DEPS)
-		$(MAKE) $(INSTALLARGS) LEAPSECONDS='-L leapseconds' \
-			install_data
-
-# In earlier versions of this makefile, the other two directories were
-# subdirectories of $(TZDIR).  However, this led to configuration errors.
-# For example, with posix_right under the earlier scheme,
-# TZ='right/Australia/Adelaide' got you localtime with leap seconds,
-# but gmtime without leap seconds, which led to problems with applications
-# like sendmail that subtract gmtime from localtime.
-# Therefore, the other two directories are now siblings of $(TZDIR).
-# You must replace all of $(TZDIR) to switch from not using leap seconds
-# to using them, or vice versa.
-right_posix:	right_only
-		rm -fr '$(DESTDIR)$(TZDIR)-leaps'
-		ln -s '$(TZDIR_BASENAME)' '$(DESTDIR)$(TZDIR)-leaps' || \
-		  $(MAKE) $(INSTALLARGS) TZDIR='$(TZDIR)-leaps' right_only
-		$(MAKE) $(INSTALLARGS) TZDIR='$(TZDIR)-posix' posix_only
-
-posix_right:	posix_only
-		rm -fr '$(DESTDIR)$(TZDIR)-posix'
-		ln -s '$(TZDIR_BASENAME)' '$(DESTDIR)$(TZDIR)-posix' || \
-		  $(MAKE) $(INSTALLARGS) TZDIR='$(TZDIR)-posix' posix_only
-		$(MAKE) $(INSTALLARGS) TZDIR='$(TZDIR)-leaps' right_only
-
-zones:		$(REDO)
-
-# dummy.zd is not a real file; it is mentioned here only so that the
-# top-level 'make' does not have a syntax error.
-ZDS = dummy.zd
-# Rule used only by submakes invoked by the $(TZS_NEW) rule.
-# It is separate so that GNU 'make -j' can run instances in parallel.
-$(ZDS): zdump
-		./zdump -i $(TZS_CUTOFF_FLAG) '$(wd)/'$$(expr $@ : '\(.*\).zd') \
-		  >$@
-
-TZS_NEW_DEPS = tzdata.zi zdump zic
-$(TZS_NEW): $(TZS_NEW_DEPS)
-		rm -fr tzs$(TZS_YEAR).dir
-		mkdir tzs$(TZS_YEAR).dir
-		$(zic) -d tzs$(TZS_YEAR).dir tzdata.zi
-		$(AWK) '/^L/{print "Link\t" $$2 "\t" $$3}' \
-		   tzdata.zi | LC_ALL=C sort >$@.out
-		wd=`pwd` && \
-		x=`$(AWK) '/^Z/{print "tzs$(TZS_YEAR).dir/" $$2 ".zd"}' \
-				tzdata.zi \
-			| LC_ALL=C sort -t . -k 2,2` && \
-		set x $$x && \
-		shift && \
-		ZDS=$$* && \
-		$(MAKE) wd="$$wd" TZS_CUTOFF_FLAG="$(TZS_CUTOFF_FLAG)" \
-		  ZDS="$$ZDS" $$ZDS && \
-		sed 's,^TZ=".*\.dir/,TZ=",' $$ZDS >>$@.out
-		rm -fr tzs$(TZS_YEAR).dir
-		mv $@.out $@
-
-# If $(TZS) exists but 'make check_tzs' fails, a maintainer should inspect the
-# failed output and fix the inconsistency, perhaps by running 'make force_tzs'.
-$(TZS):
-		touch $@
-
-force_tzs:	$(TZS_NEW)
-		cp $(TZS_NEW) $(TZS)
-
-libtz.a:	$(LIBOBJS)
-		rm -f $@
-		$(AR) -rc $@ $(LIBOBJS)
-		$(RANLIB) $@
-
-date:		$(DATEOBJS)
-		$(CC) -o $@ $(CFLAGS) $(LDFLAGS) $(DATEOBJS) $(LDLIBS)
-
-tzselect:	tzselect.ksh version
-		VERSION=`cat version` && sed \
-			-e 's|#!/bin/bash|#!$(KSHELL)|g' \
-			-e 's|AWK=[^}]*|AWK='\''$(AWK)'\''|g' \
-			-e 's|\(PKGVERSION\)=.*|\1='\''($(PACKAGE)) '\''|' \
-			-e 's|\(REPORT_BUGS_TO\)=.*|\1=$(BUGEMAIL)|' \
-			-e 's|TZDIR=[^}]*|TZDIR=$(TZDIR)|' \
-			-e 's|\(TZVERSION\)=.*|\1='"$$VERSION"'|' \
-			<$@.ksh >$@.out
-		chmod +x $@.out
-		mv $@.out $@
-
-check: check_back check_mild
-check_mild:	check_character_set check_white_space check_links \
-		  check_name_lengths check_slashed_abbrs check_sorted \
-		  check_tables check_web check_ziguard check_zishrink check_tzs
-
-check_character_set: $(ENCHILADA)
-	test ! '$(UTF8_LOCALE)' || \
-	! printf 'A\304\200B\n' | \
-	  LC_ALL='$(UTF8_LOCALE)' grep -q '^A.B$$' >/dev/null 2>&1 || { \
-		LC_ALL='$(UTF8_LOCALE)' && export LC_ALL && \
-		sharp='#' && \
-		! grep -Env $(SAFE_LINE) $(MANS) date.1 $(MANTXTS) \
-			$(MISC) $(SOURCES) $(WEB_PAGES) \
-			CONTRIBUTING LICENSE README SECURITY \
-			version tzdata.zi && \
-		! grep -Env $(SAFE_LINE)'|^UNUSUAL_OK_'$(OK_CHAR)'*$$' \
-			Makefile && \
-		! grep -Env $(SAFE_SHARP_LINE) $(TDATA_TO_CHECK) backzone \
-			leapseconds zone.tab && \
-		! grep -Env $(OK_LINE) $(ENCHILADA); \
-	}
-	touch $@
-
-check_white_space: $(ENCHILADA)
-		patfmt=' \t|[\f\r\v]' && pat=`printf "$$patfmt\\n"` && \
-		! grep -En "$$pat" \
-			$$(ls $(ENCHILADA) | grep -Fvx leap-seconds.list)
-		! grep -n '[$s]$$' \
-			$$(ls $(ENCHILADA) | grep -Fvx leap-seconds.list)
-		touch $@
-
-PRECEDES_FILE_NAME = ^(Zone|Link[$s]+[^$s]+)[$s]+
-FILE_NAME_COMPONENT_TOO_LONG = $(PRECEDES_FILE_NAME)[^$s]*[^/$s]{15}
-
-check_name_lengths: $(TDATA_TO_CHECK) backzone
-		! grep -En '$(FILE_NAME_COMPONENT_TOO_LONG)' \
-			$(TDATA_TO_CHECK) backzone
-		touch $@
-
-PRECEDES_STDOFF = ^(Zone[$s]+[^$s]+)?[$s]+
-STDOFF = [-+]?[0-9:.]+
-RULELESS_SAVE = (-|$(STDOFF)[sd]?)
-RULELESS_SLASHED_ABBRS = \
-  $(PRECEDES_STDOFF)$(STDOFF)[$s]+$(RULELESS_SAVE)[$s]+[^$s]*/
-
-check_slashed_abbrs: $(TDATA_TO_CHECK)
-		! grep -En '$(RULELESS_SLASHED_ABBRS)' $(TDATA_TO_CHECK)
-		touch $@
-
-CHECK_CC_LIST = { n = split($$1,a,/,/); for (i=2; i<=n; i++) print a[1], a[i]; }
-
-check_sorted: backward backzone
-		$(AWK) '/^Link/ {printf "%.5d %s\n", g, $$3} !/./ {g++}' \
-		  backward | LC_ALL=C sort -cu
-		$(AWK) '/^Zone/ {print $$2}' backzone | LC_ALL=C sort -cu
-		touch $@
-
-check_back:	checklinks.awk $(TDATA_TO_CHECK)
-		$(AWK) \
-		  -v DATAFORM=$(DATAFORM) \
-		  -v backcheck=backward \
-		  -f checklinks.awk $(TDATA_TO_CHECK)
-		touch $@
-
-check_links:	checklinks.awk tzdata.zi
-		$(AWK) \
-		  -v DATAFORM=$(DATAFORM) \
-		  -f checklinks.awk tzdata.zi
-		touch $@
-
-check_tables:	checktab.awk $(YDATA) backward $(ZONETABLES)
-		for tab in $(ZONETABLES); do \
-		  test "$$tab" = zone.tab && links='$(BACKWARD)' || links=''; \
-		  $(AWK) -f checktab.awk -v zone_table=$$tab $(YDATA) $$links \
-		    || exit; \
-		done
-		touch $@
-
-check_tzs:	$(TZS) $(TZS_NEW)
-		if test -s $(TZS); then \
-		  $(DIFF_TZS) $(TZS) $(TZS_NEW); \
-		else \
-		  cp $(TZS_NEW) $(TZS); \
-		fi
-		touch $@
-
-check_web:	$(CHECK_WEB_PAGES)
-check_theory.html: theory.html
-check_tz-art.html: tz-art.html
-check_tz-how-to.html: tz-how-to.html
-check_tz-link.html: tz-link.html
-check_theory.html check_tz-art.html check_tz-how-to.html check_tz-link.html:
-		$(CURL) -sS --url https://validator.w3.org/nu/ -F out=gnu \
-		    -F file=@$$(expr $@ : 'check_\(.*\)') -o $@.out && \
-		  test ! -s $@.out || { cat $@.out; exit 1; }
-		mv $@.out $@
-
-check_ziguard: rearguard.zi vanguard.zi ziguard.awk
-		$(AWK) -v DATAFORM=rearguard -f ziguard.awk vanguard.zi | \
-		  diff -u rearguard.zi -
-		$(AWK) -v DATAFORM=vanguard -f ziguard.awk rearguard.zi | \
-		  diff -u vanguard.zi -
-		touch $@
-
-# Check that zishrink.awk does not alter the data, and that ziguard.awk
-# preserves main-format data.
-check_zishrink: check_zishrink_posix check_zishrink_right
-check_zishrink_posix check_zishrink_right: \
-  zic leapseconds $(PACKRATDATA) $(PACKRATLIST) \
-  $(TDATA) $(DATAFORM).zi tzdata.zi
-		rm -fr $@.dir $@-t.dir $@-shrunk.dir
-		mkdir $@.dir $@-t.dir $@-shrunk.dir
-		case $@ in \
-		  *_right) leap='-L leapseconds';; \
-		  *) leap=;; \
-		esac && \
-		  $(ZIC) $$leap -d $@.dir $(DATAFORM).zi && \
-		  $(ZIC) $$leap -d $@-shrunk.dir tzdata.zi && \
-		  case $(DATAFORM),$(PACKRATLIST) in \
-		    main,) \
-		      $(ZIC) $$leap -d $@-t.dir $(TDATA) && \
-		      $(AWK) '/^Rule/' $(TDATA) | \
-			$(ZIC) $$leap -d $@-t.dir - $(PACKRATDATA) && \
-		      diff -r $@.dir $@-t.dir;; \
-		  esac
-		diff -r $@.dir $@-shrunk.dir
-		rm -fr $@.dir $@-t.dir $@-shrunk.dir
-		touch $@
-
-clean_misc:
-		rm -fr check_*.dir
-		rm -f *.o *.out $(TIME_T_ALTERNATIVES) \
-		  check_* core typecheck_* \
-		  date tzselect version.h zdump zic libtz.a
-clean:		clean_misc
-		rm -fr *.dir tzdb-*/
-		rm -f *.zi $(TZS_NEW)
-
-maintainer-clean: clean
-		@echo 'This command is intended for maintainers to use; it'
-		@echo 'deletes files that may need special tools to rebuild.'
-		rm -f leapseconds version $(MANTXTS) $(TZS) *.asc *.tar.*
-
-names:
-		@echo $(ENCHILADA)
-
-public:		check check_public $(CHECK_TIME_T_ALTERNATIVES) \
-		tarballs signatures
-
-date.1.txt:	date.1
-newctime.3.txt:	newctime.3
-newstrftime.3.txt: newstrftime.3
-newtzset.3.txt:	newtzset.3
-time2posix.3.txt: time2posix.3
-tzfile.5.txt:	tzfile.5
-tzselect.8.txt:	tzselect.8
-zdump.8.txt:	zdump.8
-zic.8.txt:	zic.8
-
-$(MANTXTS):	workman.sh
-		LC_ALL=C sh workman.sh `expr $@ : '\(.*\)\.txt$$'` >$@.out
-		mv $@.out $@
-
-# Set file timestamps deterministically if possible,
-# so that tarballs containing the timestamps are reproducible.
-#
-# '$(SET_TIMESTAMP_N) N DEST A B C ...' sets the timestamp of the
-# file DEST to the maximum of the timestamps of the files A B C ...,
-# plus N if GNU ls and touch are available.
-SET_TIMESTAMP_N = sh -c '\
-  n=$$0 dest=$$1; shift; \
-  touch -cmr `ls -t "$$@" | sed 1q` "$$dest" && \
-  if test $$n != 0 && \
-     lsout=`ls -n --time-style="+%s" "$$dest" 2>/dev/null`; then \
-    set x $$lsout && \
-    touch -cmd @`expr $$7 + $$n` "$$dest"; \
-  else :; fi'
-# If DEST depends on A B C ... in this Makefile, callers should use
-# $(SET_TIMESTAMP_DEP) DEST A B C ..., for the benefit of any
-# downstream 'make' that considers equal timestamps to be out of date.
-# POSIX allows this 'make' behavior, and HP-UX 'make' does it.
-# If all that matters is that the timestamp be reproducible
-# and plausible, use $(SET_TIMESTAMP).
-SET_TIMESTAMP = $(SET_TIMESTAMP_N) 0
-SET_TIMESTAMP_DEP = $(SET_TIMESTAMP_N) 1
-
-# Set the timestamps to those of the git repository, if available,
-# and if the files have not changed since then.
-# This uses GNU 'ls --time-style=+%s', which outputs the seconds count,
-# and GNU 'touch -d@N FILE', where N is the number of seconds since 1970.
-# If git or GNU is absent, don't bother to sync with git timestamps.
-# Also, set the timestamp of each prebuilt file like 'leapseconds'
-# to be the maximum of the files it depends on.
-set-timestamps.out: $(EIGHT_YARDS)
-		rm -f $@
-		if (type git) >/dev/null 2>&1 && \
-		   files=`git ls-files $(EIGHT_YARDS)` && \
-		   touch -md @1 test.out; then \
-		  rm -f test.out && \
-		  for file in $$files; do \
-		    if git diff --quiet $$file; then \
-		      time=`git log -1 --format='tformat:%ct' $$file` && \
-		      touch -cmd @$$time $$file; \
-		    else \
-		      echo >&2 "$$file: warning: does not match repository"; \
-		    fi || exit; \
-		  done; \
-		fi
-		$(SET_TIMESTAMP_DEP) leapseconds $(LEAP_DEPS)
-		for file in `ls $(MANTXTS) | sed 's/\.txt$$//'`; do \
-		  $(SET_TIMESTAMP_DEP) $$file.txt $$file workman.sh || \
-		    exit; \
-		done
-		$(SET_TIMESTAMP_DEP) version $(VERSION_DEPS)
-		$(SET_TIMESTAMP_DEP) tzdata.zi $(TZDATA_ZI_DEPS)
-		touch $@
-set-tzs-timestamp.out: $(TZS)
-		$(SET_TIMESTAMP_DEP) $(TZS) $(TZS_DEPS)
-		touch $@
-
-# The zics below ensure that each data file can stand on its own.
-# We also do an all-files run to catch links to links.
-
-check_public: $(VERSION_DEPS)
-		rm -fr public.dir
-		mkdir public.dir
-		ln $(VERSION_DEPS) public.dir
-		cd public.dir && $(MAKE) CFLAGS='$(GCC_DEBUG_FLAGS)' ALL
-		for i in $(TDATA_TO_CHECK) public.dir/tzdata.zi \
-		    public.dir/vanguard.zi public.dir/main.zi \
-		    public.dir/rearguard.zi; \
-		do \
-		  public.dir/zic -v -d public.dir/zoneinfo $$i 2>&1 || exit; \
-		done
-		public.dir/zic -v -d public.dir/zoneinfo-all $(TDATA_TO_CHECK)
-		:
-		: Also check 'backzone' syntax.
-		rm public.dir/main.zi
-		cd public.dir && $(MAKE) PACKRATDATA=backzone main.zi
-		public.dir/zic -d public.dir/zoneinfo main.zi
-		rm public.dir/main.zi
-		cd public.dir && \
-		  $(MAKE) PACKRATDATA=backzone PACKRATLIST=zone.tab main.zi
-		public.dir/zic -d public.dir/zoneinfo main.zi
-		:
-		rm -fr public.dir
-		touch $@
-
-# Check that the code works under various alternative
-# implementations of time_t.
-check_time_t_alternatives: $(TIME_T_ALTERNATIVES)
-$(TIME_T_ALTERNATIVES_TAIL): $(TIME_T_ALTERNATIVES_HEAD)
-$(TIME_T_ALTERNATIVES): $(VERSION_DEPS)
-		rm -fr $@.dir
-		mkdir $@.dir
-		ln $(VERSION_DEPS) $@.dir
-		case $@ in \
-		  int*32_t) range=-2147483648,2147483648;; \
-		  u*) range=0,4294967296;; \
-		  *) range=-4294967296,4294967296;; \
-		esac && \
-		wd=`pwd` && \
-		zones=`$(AWK) '/^[^#]/ { print $$3 }' <zone1970.tab` && \
-		if test $@ = $(TIME_T_ALTERNATIVES_HEAD); then \
-		  range_target=; \
-		else \
-		  range_target=to$$range.tzs; \
-		fi && \
-		(cd $@.dir && \
-		  $(MAKE) TOPDIR="$$wd/$@.dir" \
-		    CFLAGS='$(CFLAGS) -Dtime_tz='"'$@'" \
-		    REDO='$(REDO)' \
-			D=$$wd/$@.dir \
-		    TZS_YEAR="$$range" TZS_CUTOFF_FLAG="-t $$range" \
-		    install $$range_target) && \
-		test $@ = $(TIME_T_ALTERNATIVES_HEAD) || { \
-		  (cd $(TIME_T_ALTERNATIVES_HEAD).dir && \
-		    $(MAKE) TOPDIR="$$wd/$@.dir" \
-		      TZS_YEAR="$$range" TZS_CUTOFF_FLAG="-t $$range" \
-			D=$$wd/$@.dir \
-		      to$$range.tzs) && \
-		  $(DIFF_TZS) $(TIME_T_ALTERNATIVES_HEAD).dir/to$$range.tzs \
-			  $@.dir/to$$range.tzs && \
-		  if diff -q Makefile Makefile 2>/dev/null; then \
-		    quiet_option='-q'; \
-		  else \
-		    quiet_option=''; \
-		  fi && \
-		    diff $$quiet_option -r $(TIME_T_ALTERNATIVES_HEAD).dir/etc \
-					   $@.dir/etc && \
-		    diff $$quiet_option -r \
-		      $(TIME_T_ALTERNATIVES_HEAD).dir/usr/share \
-		      $@.dir/usr/share; \
-		}
-		touch $@
-
-TRADITIONAL_ASC = \
-  tzcode$(VERSION).tar.gz.asc \
-  tzdata$(VERSION).tar.gz.asc
-REARGUARD_ASC = \
-  tzdata$(VERSION)-rearguard.tar.gz.asc
-ALL_ASC = $(TRADITIONAL_ASC) $(REARGUARD_ASC) \
-  tzdb-$(VERSION).tar.lz.asc
-
-tarballs rearguard_tarballs tailored_tarballs traditional_tarballs \
-signatures rearguard_signatures traditional_signatures: \
-  version set-timestamps.out rearguard.zi vanguard.zi
-		VERSION=`cat version` && \
-		$(MAKE) AWK='$(AWK)' VERSION="$$VERSION" $@_version
-
-# These *_version rules are intended for use if VERSION is set by some
-# other means.  Ordinarily these rules are used only by the above
-# non-_version rules, which set VERSION on the 'make' command line.
-tarballs_version: traditional_tarballs_version rearguard_tarballs_version \
-  tzdb-$(VERSION).tar.lz
-rearguard_tarballs_version: \
-  tzdata$(VERSION)-rearguard.tar.gz
-traditional_tarballs_version: \
-  tzcode$(VERSION).tar.gz tzdata$(VERSION).tar.gz
-tailored_tarballs_version: \
-  tzdata$(VERSION)-tailored.tar.gz
-signatures_version: $(ALL_ASC)
-rearguard_signatures_version: $(REARGUARD_ASC)
-traditional_signatures_version: $(TRADITIONAL_ASC)
-
-tzcode$(VERSION).tar.gz: set-timestamps.out
-		LC_ALL=C && export LC_ALL && \
-		tar $(TARFLAGS) -cf - \
-		    $(COMMON) $(DOCS) $(SOURCES) | \
-		  gzip $(GZIPFLAGS) >$@.out
-		mv $@.out $@
-
-tzdata$(VERSION).tar.gz: set-timestamps.out
-		LC_ALL=C && export LC_ALL && \
-		tar $(TARFLAGS) -cf - $(TZDATA_DIST) | \
-		  gzip $(GZIPFLAGS) >$@.out
-		mv $@.out $@
-
-# Create empty files with a reproducible timestamp.
-CREATE_EMPTY = TZ=UTC0 touch -mt 202010122253.00
-
-# The obsolescent *rearguard* targets and related macros are present
-# for backwards compatibility with tz releases 2018e through 2022a.
-# They should go away eventually.  To build rearguard tarballs you
-# can instead use 'make DATAFORM=rearguard tailored_tarballs'.
-tzdata$(VERSION)-rearguard.tar.gz: rearguard.zi set-timestamps.out
-		rm -fr $@.dir
-		mkdir $@.dir
-		ln $(TZDATA_DIST) $@.dir
-		cd $@.dir && rm -f $(TDATA) $(PACKRATDATA) version
-		for f in $(TDATA) $(PACKRATDATA); do \
-		  rearf=$@.dir/$$f; \
-		  $(AWK) -v DATAFORM=rearguard -f ziguard.awk $$f >$$rearf && \
-		  $(SET_TIMESTAMP_DEP) $$rearf ziguard.awk $$f || exit; \
-		done
-		sed '1s/$$/-rearguard/' <version >$@.dir/version
-		: The dummy pacificnew pacifies TZUpdater 2.3.1 and earlier.
-		$(CREATE_EMPTY) $@.dir/pacificnew
-		touch -cmr version $@.dir/version
-		LC_ALL=C && export LC_ALL && \
-		  (cd $@.dir && \
-		   tar $(TARFLAGS) -cf - \
-			$(TZDATA_DIST) pacificnew | \
-		     gzip $(GZIPFLAGS)) >$@.out
-		mv $@.out $@
-
-# Create a tailored tarball suitable for TZUpdater and compatible tools.
-# For example, 'make DATAFORM=vanguard tailored_tarballs' makes a tarball
-# useful for testing whether TZUpdater supports vanguard form.
-# The generated tarball is not byte-for-byte equivalent to a hand-tailored
-# traditional tarball, as data entries are put into 'etcetera' even if they
-# came from some other source file.  However, the effect should be the same
-# for ordinary use, which reads all the source files.
-tzdata$(VERSION)-tailored.tar.gz: set-timestamps.out
-		rm -fr $@.dir
-		mkdir $@.dir
-		: The dummy pacificnew pacifies TZUpdater 2.3.1 and earlier.
-		cd $@.dir && \
-		  $(CREATE_EMPTY) $(PRIMARY_YDATA) $(NDATA) backward \
-		  `test $(DATAFORM) = vanguard || echo pacificnew`
-		(grep '^#' tzdata.zi && echo && cat $(DATAFORM).zi) \
-		  >$@.dir/etcetera
-		touch -cmr tzdata.zi $@.dir/etcetera
-		sed -n \
-		  -e '/^# *version  *\(.*\)/h' \
-		  -e '/^# *ddeps  */H' \
-		  -e '$$!d' \
-		  -e 'g' \
-		  -e 's/^# *version  *//' \
-		  -e 's/\n# *ddeps  */-/' \
-		  -e 's/ /-/g' \
-		  -e 'p' \
-		  <tzdata.zi >$@.dir/version
-		touch -cmr version $@.dir/version
-		links= && \
-		  for file in $(TZDATA_DIST); do \
-		    test -f $@.dir/$$file || links="$$links $$file"; \
-		  done && \
-		  ln $$links $@.dir
-		LC_ALL=C && export LC_ALL && \
-		  (cd $@.dir && \
-		   tar $(TARFLAGS) -cf - * | gzip $(GZIPFLAGS)) >$@.out
-		mv $@.out $@
-
-tzdb-$(VERSION).tar.lz: set-timestamps.out set-tzs-timestamp.out
-		rm -fr tzdb-$(VERSION)
-		mkdir tzdb-$(VERSION)
-		ln $(ENCHILADA) tzdb-$(VERSION)
-		$(SET_TIMESTAMP) tzdb-$(VERSION) tzdb-$(VERSION)/*
-		LC_ALL=C && export LC_ALL && \
-		tar $(TARFLAGS) -cf - tzdb-$(VERSION) | lzip -9 >$@.out
-		mv $@.out $@
-
-tzcode$(VERSION).tar.gz.asc: tzcode$(VERSION).tar.gz
-tzdata$(VERSION).tar.gz.asc: tzdata$(VERSION).tar.gz
-tzdata$(VERSION)-rearguard.tar.gz.asc: tzdata$(VERSION)-rearguard.tar.gz
-tzdb-$(VERSION).tar.lz.asc: tzdb-$(VERSION).tar.lz
-$(ALL_ASC):
-		$(GPG) --armor --detach-sign $?
-
-TYPECHECK_CFLAGS = $(CFLAGS) -DTYPECHECK -D__time_t_defined -D_TIME_T
-typecheck: typecheck_long_long typecheck_unsigned
-typecheck_long_long typecheck_unsigned: $(VERSION_DEPS)
-		rm -fr $@.dir
-		mkdir $@.dir
-		ln $(VERSION_DEPS) $@.dir
-		cd $@.dir && \
-		  case $@ in \
-		    *_long_long) i="long long";; \
-		    *_unsigned ) i="unsigned" ;; \
-		  esac && \
-		  typecheck_cflags='' && \
-		  $(MAKE) \
-		    CFLAGS="$(TYPECHECK_CFLAGS) \"-Dtime_t=$$i\"" \
-		    TOPDIR="`pwd`" \
-		    install
-		$@.dir/zdump -i -c 1970,1971 Europe/Rome
-		touch $@
-
-zonenames:	tzdata.zi
-		@$(AWK) '/^Z/ { print $$2 } /^L/ { print $$3 }' tzdata.zi
-
-asctime.o:	private.h tzfile.h
-date.o:		private.h
-difftime.o:	private.h
-localtime.o:	private.h tzfile.h
-strftime.o:	private.h tzfile.h
-zdump.o:	version.h
-zic.o:		private.h tzfile.h version.h
-
-.PHONY: ALL INSTALL all
-.PHONY: check check_mild check_time_t_alternatives
-.PHONY: check_web check_zishrink
-.PHONY: clean clean_misc dummy.zd force_tzs
-.PHONY: install install_data maintainer-clean names
-.PHONY: posix_only posix_right public
-.PHONY: rearguard_signatures rearguard_signatures_version
-.PHONY: rearguard_tarballs rearguard_tarballs_version
-.PHONY: right_only right_posix signatures signatures_version
-.PHONY: tarballs tarballs_version
-.PHONY: traditional_signatures traditional_signatures_version
-.PHONY: traditional_tarballs traditional_tarballs_version
-.PHONY: tailored_tarballs tailored_tarballs_version
-.PHONY: typecheck
-.PHONY: zonenames zones
-.PHONY: $(ZDS)
Index: sources/iana/tz/create-2023c-version-patch/create.patch.sh
===================================================================
--- sources/iana/tz/create-2023c-version-patch/create.patch.sh	(revision 393)
+++ sources/iana/tz/create-2023c-version-patch/create.patch.sh	(nonexistent)
@@ -1,16 +0,0 @@
-#!/bin/sh
-
-VERSION=2023c
-
-mkdir -p timezone
-tar -C timezone --files-from=file.list -xzvf ../tzcode$VERSION.tar.gz
-mv timezone timezone-orig
-
-cp -rf ./timezone-new ./timezone
-
-diff --unified -Nr  timezone-orig  timezone > tzcode-$VERSION-version.patch
-
-mv tzcode-$VERSION-version.patch ../patches
-
-rm -rf ./timezone
-rm -rf ./timezone-orig

Property changes on: sources/iana/tz/create-2023c-version-patch/create.patch.sh
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: sources/iana/tz/create-2023c-glibc-2.37-patch/file.list
===================================================================
--- sources/iana/tz/create-2023c-glibc-2.37-patch/file.list	(revision 393)
+++ sources/iana/tz/create-2023c-glibc-2.37-patch/file.list	(nonexistent)
@@ -1,3 +0,0 @@
-private.h
-zdump.c
-zic.c
Index: sources/iana/tz/create-2023c-glibc-2.37-patch/create.patch.sh
===================================================================
--- sources/iana/tz/create-2023c-glibc-2.37-patch/create.patch.sh	(revision 393)
+++ sources/iana/tz/create-2023c-glibc-2.37-patch/create.patch.sh	(nonexistent)
@@ -1,17 +0,0 @@
-#!/bin/sh
-
-VERSION=2023c
-GLIBC_VERSION=2.37
-
-mkdir -p glibc-$GLIBC_VERSION/timezone
-tar -C glibc-$GLIBC_VERSION/timezone --files-from=file.list -xzvf ../tzcode$VERSION.tar.gz
-mv glibc-$GLIBC_VERSION glibc-$GLIBC_VERSION-orig
-
-cp -rf ./glibc-$GLIBC_VERSION-new ./glibc-$GLIBC_VERSION
-
-diff --unified -Nr  glibc-$GLIBC_VERSION-orig  glibc-$GLIBC_VERSION > glibc-$GLIBC_VERSION-tzcode-$VERSION.patch
-
-mv glibc-$GLIBC_VERSION-tzcode-$VERSION.patch ../patches
-
-rm -rf ./glibc-$GLIBC_VERSION
-rm -rf ./glibc-$GLIBC_VERSION-orig

Property changes on: sources/iana/tz/create-2023c-glibc-2.37-patch/create.patch.sh
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: sources/iana/tz/create-2023c-glibc-2.37-patch/glibc-2.37-new/timezone/zdump.c
===================================================================
--- sources/iana/tz/create-2023c-glibc-2.37-patch/glibc-2.37-new/timezone/zdump.c	(revision 393)
+++ sources/iana/tz/create-2023c-glibc-2.37-patch/glibc-2.37-new/timezone/zdump.c	(nonexistent)
@@ -1,1267 +0,0 @@
-/* Dump time zone data in a textual format.  */
-
-/*
-** This file is in the public domain, so clarified as of
-** 2009-05-17 by Arthur David Olson.
-*/
-
-#include "version.h"
-
-#ifndef NETBSD_INSPIRED
-# define NETBSD_INSPIRED 1
-#endif
-
-#include "private.h"
-#include <stdio.h>
-
-#ifndef HAVE_SNPRINTF
-# define HAVE_SNPRINTF (!PORT_TO_C89 || 199901 <= __STDC_VERSION__)
-#endif
-
-#ifndef HAVE_LOCALTIME_R
-# define HAVE_LOCALTIME_R 1
-#endif
-
-#ifndef HAVE_LOCALTIME_RZ
-# ifdef TM_ZONE
-#  define HAVE_LOCALTIME_RZ (NETBSD_INSPIRED && USE_LTZ)
-# else
-#  define HAVE_LOCALTIME_RZ 0
-# endif
-#endif
-
-#ifndef HAVE_TZSET
-# define HAVE_TZSET 1
-#endif
-
-#ifndef ZDUMP_LO_YEAR
-# define ZDUMP_LO_YEAR (-500)
-#endif /* !defined ZDUMP_LO_YEAR */
-
-#ifndef ZDUMP_HI_YEAR
-# define ZDUMP_HI_YEAR 2500
-#endif /* !defined ZDUMP_HI_YEAR */
-
-#define SECSPERNYEAR	(SECSPERDAY * DAYSPERNYEAR)
-#define SECSPERLYEAR	(SECSPERNYEAR + SECSPERDAY)
-#define SECSPER400YEARS	(SECSPERNYEAR * (intmax_t) (300 + 3)	\
-			 + SECSPERLYEAR * (intmax_t) (100 - 3))
-
-/*
-** True if SECSPER400YEARS is known to be representable as an
-** intmax_t.  It's OK that SECSPER400YEARS_FITS can in theory be false
-** even if SECSPER400YEARS is representable, because when that happens
-** the code merely runs a bit more slowly, and this slowness doesn't
-** occur on any practical platform.
-*/
-enum { SECSPER400YEARS_FITS = SECSPERLYEAR <= INTMAX_MAX / 400 };
-
-#if HAVE_GETTEXT
-# include <locale.h> /* for setlocale */
-#endif /* HAVE_GETTEXT */
-
-#if ! HAVE_LOCALTIME_RZ
-# undef  timezone_t
-# define timezone_t char **
-#endif
-
-#if !HAVE_POSIX_DECLS
-extern int	getopt(int argc, char * const argv[],
-			const char * options);
-extern char *	optarg;
-extern int	optind;
-#endif
-
-/* The minimum and maximum finite time values.  */
-enum { atime_shift = CHAR_BIT * sizeof(time_t) - 2 };
-static time_t const absolute_min_time =
-  ((time_t) -1 < 0
-   ? (- ((time_t) ~ (time_t) 0 < 0)
-      - (((time_t) 1 << atime_shift) - 1 + ((time_t) 1 << atime_shift)))
-   : 0);
-static time_t const absolute_max_time =
-  ((time_t) -1 < 0
-   ? (((time_t) 1 << atime_shift) - 1 + ((time_t) 1 << atime_shift))
-   : -1);
-static int	longest;
-static char const *progname;
-static bool	warned;
-static bool	errout;
-
-static char const *abbr(struct tm const *);
-ATTRIBUTE_REPRODUCIBLE static intmax_t delta(struct tm *, struct tm *);
-static void dumptime(struct tm const *);
-static time_t hunt(timezone_t, time_t, time_t, bool);
-static void show(timezone_t, char *, time_t, bool);
-static void showextrema(timezone_t, char *, time_t, struct tm *, time_t);
-static void showtrans(char const *, struct tm const *, time_t, char const *,
-		      char const *);
-static const char *tformat(void);
-ATTRIBUTE_REPRODUCIBLE static time_t yeartot(intmax_t);
-
-/* Is C an ASCII digit?  */
-static bool
-is_digit(char c)
-{
-  return '0' <= c && c <= '9';
-}
-
-/* Is A an alphabetic character in the C locale?  */
-static bool
-is_alpha(char a)
-{
-	switch (a) {
-	  default:
-		return false;
-	  case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G':
-	  case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N':
-	  case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U':
-	  case 'V': case 'W': case 'X': case 'Y': case 'Z':
-	  case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g':
-	  case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n':
-	  case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u':
-	  case 'v': case 'w': case 'x': case 'y': case 'z':
-		return true;
-	}
-}
-
-ATTRIBUTE_NORETURN static void
-size_overflow(void)
-{
-  fprintf(stderr, _("%s: size overflow\n"), progname);
-  exit(EXIT_FAILURE);
-}
-
-/* Return A + B, exiting if the result would overflow either ptrdiff_t
-   or size_t.  A and B are both nonnegative.  */
-ATTRIBUTE_REPRODUCIBLE static ptrdiff_t
-sumsize(ptrdiff_t a, ptrdiff_t b)
-{
-#ifdef ckd_add
-  ptrdiff_t sum;
-  if (!ckd_add(&sum, a, b) && sum <= INDEX_MAX)
-    return sum;
-#else
-  if (a <= INDEX_MAX && b <= INDEX_MAX - a)
-    return a + b;
-#endif
-  size_overflow();
-}
-
-/* Return the size of of the string STR, including its trailing NUL.
-   Report an error and exit if this would exceed INDEX_MAX which means
-   pointer subtraction wouldn't work.  */
-static ptrdiff_t
-xstrsize(char const *str)
-{
-  size_t len = strlen(str);
-  if (len < INDEX_MAX)
-    return len + 1;
-  size_overflow();
-}
-
-/* Return a pointer to a newly allocated buffer of size SIZE, exiting
-   on failure.  SIZE should be positive.  */
-ATTRIBUTE_MALLOC static void *
-xmalloc(ptrdiff_t size)
-{
-  void *p = malloc(size);
-  if (!p) {
-    fprintf(stderr, _("%s: Memory exhausted\n"), progname);
-    exit(EXIT_FAILURE);
-  }
-  return p;
-}
-
-#if ! HAVE_TZSET
-# undef tzset
-# define tzset zdump_tzset
-static void tzset(void) { }
-#endif
-
-/* Assume gmtime_r works if localtime_r does.
-   A replacement localtime_r is defined below if needed.  */
-#if ! HAVE_LOCALTIME_R
-
-# undef gmtime_r
-# define gmtime_r zdump_gmtime_r
-
-static struct tm *
-gmtime_r(time_t *tp, struct tm *tmp)
-{
-  struct tm *r = gmtime(tp);
-  if (r) {
-    *tmp = *r;
-    r = tmp;
-  }
-  return r;
-}
-
-#endif
-
-/* Platforms with TM_ZONE don't need tzname, so they can use the
-   faster localtime_rz or localtime_r if available.  */
-
-#if defined TM_ZONE && HAVE_LOCALTIME_RZ
-# define USE_LOCALTIME_RZ true
-#else
-# define USE_LOCALTIME_RZ false
-#endif
-
-#if ! USE_LOCALTIME_RZ
-
-# if !defined TM_ZONE || ! HAVE_LOCALTIME_R || ! HAVE_TZSET
-#  undef localtime_r
-#  define localtime_r zdump_localtime_r
-static struct tm *
-localtime_r(time_t *tp, struct tm *tmp)
-{
-  struct tm *r = localtime(tp);
-  if (r) {
-    *tmp = *r;
-    r = tmp;
-  }
-  return r;
-}
-# endif
-
-# undef localtime_rz
-# define localtime_rz zdump_localtime_rz
-static struct tm *
-localtime_rz(ATTRIBUTE_MAYBE_UNUSED timezone_t rz, time_t *tp, struct tm *tmp)
-{
-  return localtime_r(tp, tmp);
-}
-
-# ifdef TYPECHECK
-#  undef mktime_z
-#  define mktime_z zdump_mktime_z
-static time_t
-mktime_z(timezone_t tz, struct tm *tmp)
-{
-  return mktime(tmp);
-}
-# endif
-
-# undef tzalloc
-# undef tzfree
-# define tzalloc zdump_tzalloc
-# define tzfree zdump_tzfree
-
-static timezone_t
-tzalloc(char const *val)
-{
-# if HAVE_SETENV
-  if (setenv("TZ", val, 1) != 0) {
-    char const *e = strerror(errno);
-    fprintf(stderr, _("%s: setenv: %s\n"), progname, e);
-    exit(EXIT_FAILURE);
-  }
-  tzset();
-  return &optarg;  /* Any valid non-null char ** will do.  */
-# else
-  enum { TZeqlen = 3 };
-  static char const TZeq[TZeqlen] = "TZ=";
-  static char **fakeenv;
-  static ptrdiff_t fakeenv0size;
-  void *freeable = NULL;
-  char **env = fakeenv, **initial_environ;
-  ptrdiff_t valsize = xstrsize(val);
-  if (fakeenv0size < valsize) {
-    char **e = environ, **to;
-    ptrdiff_t initial_nenvptrs = 1;  /* Counting the trailing NULL pointer.  */
-
-    while (*e++) {
-#  ifdef ckd_add
-      if (ckd_add(&initial_nenvptrs, initial_nenvptrs, 1)
-	  || INDEX_MAX < initial_nenvptrs)
-	size_overflow();
-#  else
-      if (initial_nenvptrs == INDEX_MAX / sizeof *environ)
-	size_overflow();
-      initial_nenvptrs++;
-#  endif
-    }
-    fakeenv0size = sumsize(valsize, valsize);
-    fakeenv0size = max(fakeenv0size, 64);
-    freeable = env;
-    fakeenv = env =
-      xmalloc(sumsize(sumsize(sizeof *environ,
-			      initial_nenvptrs * sizeof *environ),
-		      sumsize(TZeqlen, fakeenv0size)));
-    to = env + 1;
-    for (e = environ; (*to = *e); e++)
-      to += strncmp(*e, TZeq, TZeqlen) != 0;
-    env[0] = memcpy(to + 1, TZeq, TZeqlen);
-  }
-  memcpy(env[0] + TZeqlen, val, valsize);
-  initial_environ = environ;
-  environ = env;
-  tzset();
-  free(freeable);
-  return initial_environ;
-# endif
-}
-
-static void
-tzfree(ATTRIBUTE_MAYBE_UNUSED timezone_t initial_environ)
-{
-# if !HAVE_SETENV
-  environ = initial_environ;
-  tzset();
-# endif
-}
-#endif /* ! USE_LOCALTIME_RZ */
-
-/* A UT time zone, and its initializer.  */
-static timezone_t gmtz;
-static void
-gmtzinit(void)
-{
-  if (USE_LOCALTIME_RZ) {
-    /* Try "GMT" first to find out whether this is one of the rare
-       platforms where time_t counts leap seconds; this works due to
-       the "Zone GMT 0 - GMT" line in the "etcetera" file.  If "GMT"
-       fails, fall back on "GMT0" which might be similar due to the
-       "Link GMT GMT0" line in the "backward" file, and which
-       should work on all POSIX platforms.  The rest of zdump does not
-       use the "GMT" abbreviation that comes from this setting, so it
-       is OK to use "GMT" here rather than the modern "UTC" which
-       would not work on platforms that omit the "backward" file.  */
-    gmtz = tzalloc("GMT");
-    if (!gmtz) {
-      static char const gmt0[] = "GMT0";
-      gmtz = tzalloc(gmt0);
-      if (!gmtz) {
-	char const *e = strerror(errno);
-	fprintf(stderr, _("%s: unknown timezone '%s': %s\n"),
-		progname, gmt0, e);
-	exit(EXIT_FAILURE);
-      }
-    }
-  }
-}
-
-/* Convert *TP to UT, storing the broken-down time into *TMP.
-   Return TMP if successful, NULL otherwise.  This is like gmtime_r(TP, TMP),
-   except typically faster if USE_LOCALTIME_RZ.  */
-static struct tm *
-my_gmtime_r(time_t *tp, struct tm *tmp)
-{
-  return USE_LOCALTIME_RZ ? localtime_rz(gmtz, tp, tmp) : gmtime_r(tp, tmp);
-}
-
-#ifndef TYPECHECK
-# define my_localtime_rz localtime_rz
-#else /* !defined TYPECHECK */
-
-static struct tm *
-my_localtime_rz(timezone_t tz, time_t *tp, struct tm *tmp)
-{
-	tmp = localtime_rz(tz, tp, tmp);
-	if (tmp) {
-		struct tm	tm;
-		register time_t	t;
-
-		tm = *tmp;
-		t = mktime_z(tz, &tm);
-		if (t != *tp) {
-			fflush(stdout);
-			fprintf(stderr, "\n%s: ", progname);
-			fprintf(stderr, tformat(), *tp);
-			fprintf(stderr, " ->");
-			fprintf(stderr, " year=%d", tmp->tm_year);
-			fprintf(stderr, " mon=%d", tmp->tm_mon);
-			fprintf(stderr, " mday=%d", tmp->tm_mday);
-			fprintf(stderr, " hour=%d", tmp->tm_hour);
-			fprintf(stderr, " min=%d", tmp->tm_min);
-			fprintf(stderr, " sec=%d", tmp->tm_sec);
-			fprintf(stderr, " isdst=%d", tmp->tm_isdst);
-			fprintf(stderr, " -> ");
-			fprintf(stderr, tformat(), t);
-			fprintf(stderr, "\n");
-			errout = true;
-		}
-	}
-	return tmp;
-}
-#endif /* !defined TYPECHECK */
-
-static void
-abbrok(const char *const abbrp, const char *const zone)
-{
-	register const char *	cp;
-	register const char *	wp;
-
-	if (warned)
-		return;
-	cp = abbrp;
-	while (is_alpha(*cp) || is_digit(*cp) || *cp == '-' || *cp == '+')
-		++cp;
-	if (*cp)
-	  wp = _("has characters other than ASCII alphanumerics, '-' or '+'");
-	else if (cp - abbrp < 3)
-	  wp = _("has fewer than 3 characters");
-	else if (cp - abbrp > 6)
-	  wp = _("has more than 6 characters");
-	else
-	  return;
-	fflush(stdout);
-	fprintf(stderr,
-		_("%s: warning: zone \"%s\" abbreviation \"%s\" %s\n"),
-		progname, zone, abbrp, wp);
-	warned = errout = true;
-}
-
-/* Return a time zone abbreviation.  If the abbreviation needs to be
-   saved, use *BUF (of size *BUFALLOC) to save it, and return the
-   abbreviation in the possibly reallocated *BUF.  Otherwise, just
-   return the abbreviation.  Get the abbreviation from TMP.
-   Exit on memory allocation failure.  */
-static char const *
-saveabbr(char **buf, ptrdiff_t *bufalloc, struct tm const *tmp)
-{
-  char const *ab = abbr(tmp);
-  if (HAVE_LOCALTIME_RZ)
-    return ab;
-  else {
-    ptrdiff_t absize = xstrsize(ab);
-    if (*bufalloc < absize) {
-      free(*buf);
-
-      /* Make the new buffer at least twice as long as the old,
-	 to avoid O(N**2) behavior on repeated calls.  */
-      *bufalloc = sumsize(*bufalloc, absize);
-
-      *buf = xmalloc(*bufalloc);
-    }
-    return strcpy(*buf, ab);
-  }
-}
-
-static void
-close_file(FILE *stream)
-{
-  char const *e = (ferror(stream) ? _("I/O error")
-		   : fclose(stream) != 0 ? strerror(errno) : NULL);
-  if (e) {
-    fprintf(stderr, "%s: %s\n", progname, e);
-    exit(EXIT_FAILURE);
-  }
-}
-
-static void
-usage(FILE * const stream, const int status)
-{
-	fprintf(stream,
-_("%s: usage: %s OPTIONS TIMEZONE ...\n"
-  "Options include:\n"
-  "  -c [L,]U   Start at year L (default -500), end before year U (default 2500)\n"
-  "  -t [L,]U   Start at time L, end before time U (in seconds since 1970)\n"
-  "  -i         List transitions briefly (format is experimental)\n" \
-  "  -v         List transitions verbosely\n"
-  "  -V         List transitions a bit less verbosely\n"
-  "  --help     Output this help\n"
-  "  --version  Output version info\n"
-  "\n"
-  "Report bugs to %s.\n"),
-		progname, progname, REPORT_BUGS_TO);
-	if (status == EXIT_SUCCESS)
-	  close_file(stream);
-	exit(status);
-}
-
-int
-main(int argc, char *argv[])
-{
-	/* These are static so that they're initially zero.  */
-	static char *		abbrev;
-	static ptrdiff_t	abbrevsize;
-
-	register int		i;
-	register bool		vflag;
-	register bool		Vflag;
-	register char *		cutarg;
-	register char *		cuttimes;
-	register time_t		cutlotime;
-	register time_t		cuthitime;
-	time_t			now;
-	bool iflag = false;
-
-	cutlotime = absolute_min_time;
-	cuthitime = absolute_max_time;
-#if HAVE_GETTEXT
-	setlocale(LC_ALL, "");
-# ifdef TZ_DOMAINDIR
-	bindtextdomain(TZ_DOMAIN, TZ_DOMAINDIR);
-# endif /* defined TEXTDOMAINDIR */
-	textdomain(TZ_DOMAIN);
-#endif /* HAVE_GETTEXT */
-	progname = argv[0] ? argv[0] : "zdump";
-	for (i = 1; i < argc; ++i)
-		if (strcmp(argv[i], "--version") == 0) {
-			printf("zdump %s%s\n", PKGVERSION, TZVERSION);
-			return EXIT_SUCCESS;
-		} else if (strcmp(argv[i], "--help") == 0) {
-			usage(stdout, EXIT_SUCCESS);
-		}
-	vflag = Vflag = false;
-	cutarg = cuttimes = NULL;
-	for (;;)
-	  switch (getopt(argc, argv, "c:it:vV")) {
-	  case 'c': cutarg = optarg; break;
-	  case 't': cuttimes = optarg; break;
-	  case 'i': iflag = true; break;
-	  case 'v': vflag = true; break;
-	  case 'V': Vflag = true; break;
-	  case -1:
-	    if (! (optind == argc - 1 && strcmp(argv[optind], "=") == 0))
-	      goto arg_processing_done;
-	    ATTRIBUTE_FALLTHROUGH;
-	  default:
-	    usage(stderr, EXIT_FAILURE);
-	  }
- arg_processing_done:;
-
-	if (iflag | vflag | Vflag) {
-		intmax_t	lo;
-		intmax_t	hi;
-		char *loend, *hiend;
-		register intmax_t cutloyear = ZDUMP_LO_YEAR;
-		register intmax_t cuthiyear = ZDUMP_HI_YEAR;
-		if (cutarg != NULL) {
-			lo = strtoimax(cutarg, &loend, 10);
-			if (cutarg != loend && !*loend) {
-				hi = lo;
-				cuthiyear = hi;
-			} else if (cutarg != loend && *loend == ','
-				   && (hi = strtoimax(loend + 1, &hiend, 10),
-				       loend + 1 != hiend && !*hiend)) {
-				cutloyear = lo;
-				cuthiyear = hi;
-			} else {
-				fprintf(stderr, _("%s: wild -c argument %s\n"),
-					progname, cutarg);
-				return EXIT_FAILURE;
-			}
-		}
-		if (cutarg != NULL || cuttimes == NULL) {
-			cutlotime = yeartot(cutloyear);
-			cuthitime = yeartot(cuthiyear);
-		}
-		if (cuttimes != NULL) {
-			lo = strtoimax(cuttimes, &loend, 10);
-			if (cuttimes != loend && !*loend) {
-				hi = lo;
-				if (hi < cuthitime) {
-					if (hi < absolute_min_time + 1)
-					  hi = absolute_min_time + 1;
-					cuthitime = hi;
-				}
-			} else if (cuttimes != loend && *loend == ','
-				   && (hi = strtoimax(loend + 1, &hiend, 10),
-				       loend + 1 != hiend && !*hiend)) {
-				if (cutlotime < lo) {
-					if (absolute_max_time < lo)
-						lo = absolute_max_time;
-					cutlotime = lo;
-				}
-				if (hi < cuthitime) {
-					if (hi < absolute_min_time + 1)
-					  hi = absolute_min_time + 1;
-					cuthitime = hi;
-				}
-			} else {
-				fprintf(stderr,
-					_("%s: wild -t argument %s\n"),
-					progname, cuttimes);
-				return EXIT_FAILURE;
-			}
-		}
-	}
-	gmtzinit();
-	if (iflag | vflag | Vflag)
-	  now = 0;
-	else {
-	  now = time(NULL);
-	  now |= !now;
-	}
-	longest = 0;
-	for (i = optind; i < argc; i++) {
-	  size_t arglen = strlen(argv[i]);
-	  if (longest < arglen)
-	    longest = min(arglen, INT_MAX);
-	}
-
-	for (i = optind; i < argc; ++i) {
-		timezone_t tz = tzalloc(argv[i]);
-		char const *ab = (char const *)0;
-		time_t t;
-		struct tm tm, newtm;
-		bool tm_ok;
-		if (!tz) {
-		  char const *e = strerror(errno);
-		  fprintf(stderr, _("%s: unknown timezone '%s': %s\n"),
-			  progname, argv[1], e);
-		  return EXIT_FAILURE;
-		}
-		if (now) {
-			show(tz, argv[i], now, false);
-			tzfree(tz);
-			continue;
-		}
-		warned = false;
-		t = absolute_min_time;
-		if (! (iflag | Vflag)) {
-			show(tz, argv[i], t, true);
-			if (my_localtime_rz(tz, &t, &tm) == NULL
-			    && t < cutlotime) {
-				time_t newt = cutlotime;
-				if (my_localtime_rz(tz, &newt, &newtm) != NULL)
-				  showextrema(tz, argv[i], t, NULL, newt);
-			}
-		}
-		if (t + 1 < cutlotime)
-		  t = cutlotime - 1;
-		tm_ok = my_localtime_rz(tz, &t, &tm) != NULL;
-		if (tm_ok) {
-		  ab = saveabbr(&abbrev, &abbrevsize, &tm);
-		  if (iflag) {
-		    showtrans("\nTZ=%f", &tm, t, ab, argv[i]);
-		    showtrans("-\t-\t%Q", &tm, t, ab, argv[i]);
-		  }
-		} else
-		  ab = NULL;
-		while (t < cuthitime - 1) {
-		  time_t newt = ((t < absolute_max_time - SECSPERDAY / 2
-				  && t + SECSPERDAY / 2 < cuthitime - 1)
-				 ? t + SECSPERDAY / 2
-				 : cuthitime - 1);
-		  struct tm *newtmp = localtime_rz(tz, &newt, &newtm);
-		  bool newtm_ok = newtmp != NULL;
-		  if (tm_ok != newtm_ok
-		      || (ab && (delta(&newtm, &tm) != newt - t
-				 || newtm.tm_isdst != tm.tm_isdst
-				 || strcmp(abbr(&newtm), ab) != 0))) {
-		    newt = hunt(tz, t, newt, false);
-		    newtmp = localtime_rz(tz, &newt, &newtm);
-		    newtm_ok = newtmp != NULL;
-		    if (iflag)
-		      showtrans("%Y-%m-%d\t%L\t%Q", newtmp, newt,
-				newtm_ok ? abbr(&newtm) : NULL, argv[i]);
-		    else {
-		      show(tz, argv[i], newt - 1, true);
-		      show(tz, argv[i], newt, true);
-		    }
-		  }
-		  t = newt;
-		  tm_ok = newtm_ok;
-		  if (newtm_ok) {
-		    ab = saveabbr(&abbrev, &abbrevsize, &newtm);
-		    tm = newtm;
-		  }
-		}
-		if (! (iflag | Vflag)) {
-			time_t newt = absolute_max_time;
-			t = cuthitime;
-			if (t < newt) {
-			  struct tm *tmp = my_localtime_rz(tz, &t, &tm);
-			  if (tmp != NULL
-			      && my_localtime_rz(tz, &newt, &newtm) == NULL)
-			    showextrema(tz, argv[i], t, tmp, newt);
-			}
-			show(tz, argv[i], absolute_max_time, true);
-		}
-		tzfree(tz);
-	}
-	close_file(stdout);
-	if (errout && (ferror(stderr) || fclose(stderr) != 0))
-	  return EXIT_FAILURE;
-	return EXIT_SUCCESS;
-}
-
-static time_t
-yeartot(intmax_t y)
-{
-	register intmax_t	myy, seconds, years;
-	register time_t		t;
-
-	myy = EPOCH_YEAR;
-	t = 0;
-	while (myy < y) {
-		if (SECSPER400YEARS_FITS && 400 <= y - myy) {
-			intmax_t diff400 = (y - myy) / 400;
-			if (INTMAX_MAX / SECSPER400YEARS < diff400)
-				return absolute_max_time;
-			seconds = diff400 * SECSPER400YEARS;
-			years = diff400 * 400;
-                } else {
-			seconds = isleap(myy) ? SECSPERLYEAR : SECSPERNYEAR;
-			years = 1;
-		}
-		myy += years;
-		if (t > absolute_max_time - seconds)
-			return absolute_max_time;
-		t += seconds;
-	}
-	while (y < myy) {
-		if (SECSPER400YEARS_FITS && y + 400 <= myy && myy < 0) {
-			intmax_t diff400 = (myy - y) / 400;
-			if (INTMAX_MAX / SECSPER400YEARS < diff400)
-				return absolute_min_time;
-			seconds = diff400 * SECSPER400YEARS;
-			years = diff400 * 400;
-		} else {
-			seconds = isleap(myy - 1) ? SECSPERLYEAR : SECSPERNYEAR;
-			years = 1;
-		}
-		myy -= years;
-		if (t < absolute_min_time + seconds)
-			return absolute_min_time;
-		t -= seconds;
-	}
-	return t;
-}
-
-/* Search for a discontinuity in timezone TZ, in the
-   timestamps ranging from LOT through HIT.  LOT and HIT disagree
-   about some aspect of timezone.  If ONLY_OK, search only for
-   definedness changes, i.e., localtime succeeds on one side of the
-   transition but fails on the other side.  Return the timestamp just
-   before the transition from LOT's settings.  */
-
-static time_t
-hunt(timezone_t tz, time_t lot, time_t hit, bool only_ok)
-{
-	static char *		loab;
-	static ptrdiff_t	loabsize;
-	struct tm		lotm;
-	struct tm		tm;
-
-	/* Convert LOT into a broken-down time here, even though our
-	   caller already did that.  On platforms without TM_ZONE,
-	   tzname may have been altered since our caller broke down
-	   LOT, and tzname needs to be changed back.  */
-	bool lotm_ok = my_localtime_rz(tz, &lot, &lotm) != NULL;
-	bool tm_ok;
-	char const *ab = lotm_ok ? saveabbr(&loab, &loabsize, &lotm) : NULL;
-
-	for ( ; ; ) {
-		/* T = average of LOT and HIT, rounding down.
-		   Avoid overflow.  */
-		int rem_sum = lot % 2 + hit % 2;
-		time_t t = (rem_sum == 2) - (rem_sum < 0) + lot / 2 + hit / 2;
-		if (t == lot)
-			break;
-		tm_ok = my_localtime_rz(tz, &t, &tm) != NULL;
-		if (lotm_ok == tm_ok
-		    && (only_ok
-			|| (ab && tm.tm_isdst == lotm.tm_isdst
-			    && delta(&tm, &lotm) == t - lot
-			    && strcmp(abbr(&tm), ab) == 0))) {
-		  lot = t;
-		  if (tm_ok)
-		    lotm = tm;
-		} else	hit = t;
-	}
-	return hit;
-}
-
-/*
-** Thanks to Paul Eggert for logic used in delta_nonneg.
-*/
-
-static intmax_t
-delta_nonneg(struct tm *newp, struct tm *oldp)
-{
-	intmax_t oldy = oldp->tm_year;
-	int cycles = (newp->tm_year - oldy) / YEARSPERREPEAT;
-	intmax_t sec = SECSPERREPEAT, result = cycles * sec;
-	int tmy = oldp->tm_year + cycles * YEARSPERREPEAT;
-	for ( ; tmy < newp->tm_year; ++tmy)
-		result += DAYSPERNYEAR + isleap_sum(tmy, TM_YEAR_BASE);
-	result += newp->tm_yday - oldp->tm_yday;
-	result *= HOURSPERDAY;
-	result += newp->tm_hour - oldp->tm_hour;
-	result *= MINSPERHOUR;
-	result += newp->tm_min - oldp->tm_min;
-	result *= SECSPERMIN;
-	result += newp->tm_sec - oldp->tm_sec;
-	return result;
-}
-
-static intmax_t
-delta(struct tm *newp, struct tm *oldp)
-{
-  return (newp->tm_year < oldp->tm_year
-	  ? -delta_nonneg(oldp, newp)
-	  : delta_nonneg(newp, oldp));
-}
-
-#ifndef TM_GMTOFF
-/* Return A->tm_yday, adjusted to compare it fairly to B->tm_yday.
-   Assume A and B differ by at most one year.  */
-static int
-adjusted_yday(struct tm const *a, struct tm const *b)
-{
-  int yday = a->tm_yday;
-  if (b->tm_year < a->tm_year)
-    yday += 365 + isleap_sum(b->tm_year, TM_YEAR_BASE);
-  return yday;
-}
-#endif
-
-/* If A is the broken-down local time and B the broken-down UT for
-   the same instant, return A's UT offset in seconds, where positive
-   offsets are east of Greenwich.  On failure, return LONG_MIN.
-
-   If T is nonnull, *T is the timestamp that corresponds to A; call
-   my_gmtime_r and use its result instead of B.  Otherwise, B is the
-   possibly nonnull result of an earlier call to my_gmtime_r.  */
-static long
-gmtoff(struct tm const *a, ATTRIBUTE_MAYBE_UNUSED time_t *t,
-       ATTRIBUTE_MAYBE_UNUSED struct tm const *b)
-{
-#ifdef TM_GMTOFF
-  return a->TM_GMTOFF;
-#else
-  struct tm tm;
-  if (t)
-    b = my_gmtime_r(t, &tm);
-  if (! b)
-    return LONG_MIN;
-  else {
-    int ayday = adjusted_yday(a, b);
-    int byday = adjusted_yday(b, a);
-    int days = ayday - byday;
-    long hours = a->tm_hour - b->tm_hour + 24 * days;
-    long minutes = a->tm_min - b->tm_min + 60 * hours;
-    long seconds = a->tm_sec - b->tm_sec + 60 * minutes;
-    return seconds;
-  }
-#endif
-}
-
-static void
-show(timezone_t tz, char *zone, time_t t, bool v)
-{
-	register struct tm *	tmp;
-	register struct tm *	gmtmp;
-	struct tm tm, gmtm;
-
-	printf("%-*s  ", longest, zone);
-	if (v) {
-		gmtmp = my_gmtime_r(&t, &gmtm);
-		if (gmtmp == NULL) {
-			printf(tformat(), t);
-			printf(_(" (gmtime failed)"));
-		} else {
-			dumptime(gmtmp);
-			printf(" UT");
-		}
-		printf(" = ");
-	}
-	tmp = my_localtime_rz(tz, &t, &tm);
-	if (tmp == NULL) {
-		printf(tformat(), t);
-		printf(_(" (localtime failed)"));
-	} else {
-		dumptime(tmp);
-		if (*abbr(tmp) != '\0')
-			printf(" %s", abbr(tmp));
-		if (v) {
-			long off = gmtoff(tmp, NULL, gmtmp);
-			printf(" isdst=%d", tmp->tm_isdst);
-			if (off != LONG_MIN)
-			  printf(" gmtoff=%ld", off);
-		}
-	}
-	printf("\n");
-	if (tmp != NULL && *abbr(tmp) != '\0')
-		abbrok(abbr(tmp), zone);
-}
-
-/* Show timestamps just before and just after a transition between
-   defined and undefined (or vice versa) in either localtime or
-   gmtime.  These transitions are for timezone TZ with name ZONE, in
-   the range from LO (with broken-down time LOTMP if that is nonnull)
-   through HI.  LO and HI disagree on definedness.  */
-
-static void
-showextrema(timezone_t tz, char *zone, time_t lo, struct tm *lotmp, time_t hi)
-{
-  struct tm localtm[2], gmtm[2];
-  time_t t, boundary = hunt(tz, lo, hi, true);
-  bool old = false;
-  hi = (SECSPERDAY < hi - boundary
-	? boundary + SECSPERDAY
-	: hi + (hi < TIME_T_MAX));
-  if (SECSPERDAY < boundary - lo) {
-    lo = boundary - SECSPERDAY;
-    lotmp = my_localtime_rz(tz, &lo, &localtm[old]);
-  }
-  if (lotmp)
-    localtm[old] = *lotmp;
-  else
-    localtm[old].tm_sec = -1;
-  if (! my_gmtime_r(&lo, &gmtm[old]))
-    gmtm[old].tm_sec = -1;
-
-  /* Search sequentially for definedness transitions.  Although this
-     could be sped up by refining 'hunt' to search for either
-     localtime or gmtime definedness transitions, it hardly seems
-     worth the trouble.  */
-  for (t = lo + 1; t < hi; t++) {
-    bool new = !old;
-    if (! my_localtime_rz(tz, &t, &localtm[new]))
-      localtm[new].tm_sec = -1;
-    if (! my_gmtime_r(&t, &gmtm[new]))
-      gmtm[new].tm_sec = -1;
-    if (((localtm[old].tm_sec < 0) != (localtm[new].tm_sec < 0))
-	| ((gmtm[old].tm_sec < 0) != (gmtm[new].tm_sec < 0))) {
-      show(tz, zone, t - 1, true);
-      show(tz, zone, t, true);
-    }
-    old = new;
-  }
-}
-
-#if HAVE_SNPRINTF
-# define my_snprintf snprintf
-#else
-# include <stdarg.h>
-
-/* A substitute for snprintf that is good enough for zdump.  */
-ATTRIBUTE_FORMAT((printf, 3, 4)) static int
-my_snprintf(char *s, size_t size, char const *format, ...)
-{
-  int n;
-  va_list args;
-  char const *arg;
-  size_t arglen, slen;
-  char buf[1024];
-  va_start(args, format);
-  if (strcmp(format, "%s") == 0) {
-    arg = va_arg(args, char const *);
-    arglen = strlen(arg);
-  } else {
-    n = vsprintf(buf, format, args);
-    if (n < 0) {
-      va_end(args);
-      return n;
-    }
-    arg = buf;
-    arglen = n;
-  }
-  slen = arglen < size ? arglen : size - 1;
-  memcpy(s, arg, slen);
-  s[slen] = '\0';
-  n = arglen <= INT_MAX ? arglen : -1;
-  va_end(args);
-  return n;
-}
-#endif
-
-/* Store into BUF, of size SIZE, a formatted local time taken from *TM.
-   Use ISO 8601 format +HH:MM:SS.  Omit :SS if SS is zero, and omit
-   :MM too if MM is also zero.
-
-   Return the length of the resulting string.  If the string does not
-   fit, return the length that the string would have been if it had
-   fit; do not overrun the output buffer.  */
-static int
-format_local_time(char *buf, ptrdiff_t size, struct tm const *tm)
-{
-  int ss = tm->tm_sec, mm = tm->tm_min, hh = tm->tm_hour;
-  return (ss
-	  ? my_snprintf(buf, size, "%02d:%02d:%02d", hh, mm, ss)
-	  : mm
-	  ? my_snprintf(buf, size, "%02d:%02d", hh, mm)
-	  : my_snprintf(buf, size, "%02d", hh));
-}
-
-/* Store into BUF, of size SIZE, a formatted UT offset for the
-   localtime *TM corresponding to time T.  Use ISO 8601 format
-   +HHMMSS, or -HHMMSS for timestamps west of Greenwich; use the
-   format -00 for unknown UT offsets.  If the hour needs more than
-   two digits to represent, extend the length of HH as needed.
-   Otherwise, omit SS if SS is zero, and omit MM too if MM is also
-   zero.
-
-   Return the length of the resulting string, or -1 if the result is
-   not representable as a string.  If the string does not fit, return
-   the length that the string would have been if it had fit; do not
-   overrun the output buffer.  */
-static int
-format_utc_offset(char *buf, ptrdiff_t size, struct tm const *tm, time_t t)
-{
-  long off = gmtoff(tm, &t, NULL);
-  char sign = ((off < 0
-		|| (off == 0
-		    && (*abbr(tm) == '-' || strcmp(abbr(tm), "zzz") == 0)))
-	       ? '-' : '+');
-  long hh;
-  int mm, ss;
-  if (off < 0)
-    {
-      if (off == LONG_MIN)
-	return -1;
-      off = -off;
-    }
-  ss = off % 60;
-  mm = off / 60 % 60;
-  hh = off / 60 / 60;
-  return (ss || 100 <= hh
-	  ? my_snprintf(buf, size, "%c%02ld%02d%02d", sign, hh, mm, ss)
-	  : mm
-	  ? my_snprintf(buf, size, "%c%02ld%02d", sign, hh, mm)
-	  : my_snprintf(buf, size, "%c%02ld", sign, hh));
-}
-
-/* Store into BUF (of size SIZE) a quoted string representation of P.
-   If the representation's length is less than SIZE, return the
-   length; the representation is not null terminated.  Otherwise
-   return SIZE, to indicate that BUF is too small.  */
-static ptrdiff_t
-format_quoted_string(char *buf, ptrdiff_t size, char const *p)
-{
-  char *b = buf;
-  ptrdiff_t s = size;
-  if (!s)
-    return size;
-  *b++ = '"', s--;
-  for (;;) {
-    char c = *p++;
-    if (s <= 1)
-      return size;
-    switch (c) {
-    default: *b++ = c, s--; continue;
-    case '\0': *b++ = '"', s--; return size - s;
-    case '"': case '\\': break;
-    case ' ': c = 's'; break;
-    case '\f': c = 'f'; break;
-    case '\n': c = 'n'; break;
-    case '\r': c = 'r'; break;
-    case '\t': c = 't'; break;
-    case '\v': c = 'v'; break;
-    }
-    *b++ = '\\', *b++ = c, s -= 2;
-  }
-}
-
-/* Store into BUF (of size SIZE) a timestamp formatted by TIME_FMT.
-   TM is the broken-down time, T the seconds count, AB the time zone
-   abbreviation, and ZONE_NAME the zone name.  Return true if
-   successful, false if the output would require more than SIZE bytes.
-   TIME_FMT uses the same format that strftime uses, with these
-   additions:
-
-   %f zone name
-   %L local time as per format_local_time
-   %Q like "U\t%Z\tD" where U is the UT offset as for format_utc_offset
-      and D is the isdst flag; except omit D if it is zero, omit %Z if
-      it equals U, quote and escape %Z if it contains nonalphabetics,
-      and omit any trailing tabs.  */
-
-static bool
-istrftime(char *buf, ptrdiff_t size, char const *time_fmt,
-	  struct tm const *tm, time_t t, char const *ab, char const *zone_name)
-{
-  char *b = buf;
-  ptrdiff_t s = size;
-  char const *f = time_fmt, *p;
-
-  for (p = f; ; p++)
-    if (*p == '%' && p[1] == '%')
-      p++;
-    else if (!*p
-	     || (*p == '%'
-		 && (p[1] == 'f' || p[1] == 'L' || p[1] == 'Q'))) {
-      ptrdiff_t formatted_len;
-      ptrdiff_t f_prefix_len = p - f;
-      ptrdiff_t f_prefix_copy_size = sumsize(f_prefix_len, 2);
-      char fbuf[100];
-      bool oversized = sizeof fbuf <= f_prefix_copy_size;
-      char *f_prefix_copy = oversized ? xmalloc(f_prefix_copy_size) : fbuf;
-      memcpy(f_prefix_copy, f, f_prefix_len);
-      strcpy(f_prefix_copy + f_prefix_len, "X");
-      formatted_len = strftime(b, s, f_prefix_copy, tm);
-      if (oversized)
-	free(f_prefix_copy);
-      if (formatted_len == 0)
-	return false;
-      formatted_len--;
-      b += formatted_len, s -= formatted_len;
-      if (!*p++)
-	break;
-      switch (*p) {
-      case 'f':
-	formatted_len = format_quoted_string(b, s, zone_name);
-	break;
-      case 'L':
-	formatted_len = format_local_time(b, s, tm);
-	break;
-      case 'Q':
-	{
-	  bool show_abbr;
-	  int offlen = format_utc_offset(b, s, tm, t);
-	  if (! (0 <= offlen && offlen < s))
-	    return false;
-	  show_abbr = strcmp(b, ab) != 0;
-	  b += offlen, s -= offlen;
-	  if (show_abbr) {
-	    char const *abp;
-	    ptrdiff_t len;
-	    if (s <= 1)
-	      return false;
-	    *b++ = '\t', s--;
-	    for (abp = ab; is_alpha(*abp); abp++)
-	      continue;
-	    len = (!*abp && *ab
-		   ? my_snprintf(b, s, "%s", ab)
-		   : format_quoted_string(b, s, ab));
-	    if (s <= len)
-	      return false;
-	    b += len, s -= len;
-	  }
-	  formatted_len
-	    = (tm->tm_isdst
-	       ? my_snprintf(b, s, &"\t\t%d"[show_abbr], tm->tm_isdst)
-	       : 0);
-	}
-	break;
-      }
-      if (s <= formatted_len)
-	return false;
-      b += formatted_len, s -= formatted_len;
-      f = p + 1;
-    }
-  *b = '\0';
-  return true;
-}
-
-/* Show a time transition.  */
-static void
-showtrans(char const *time_fmt, struct tm const *tm, time_t t, char const *ab,
-	  char const *zone_name)
-{
-  if (!tm) {
-    printf(tformat(), t);
-    putchar('\n');
-  } else {
-    char stackbuf[1000];
-    ptrdiff_t size = sizeof stackbuf;
-    char *buf = stackbuf;
-    char *bufalloc = NULL;
-    while (! istrftime(buf, size, time_fmt, tm, t, ab, zone_name)) {
-      size = sumsize(size, size);
-      free(bufalloc);
-      buf = bufalloc = xmalloc(size);
-    }
-    puts(buf);
-    free(bufalloc);
-  }
-}
-
-static char const *
-abbr(struct tm const *tmp)
-{
-#ifdef TM_ZONE
-	return tmp->TM_ZONE;
-#else
-# if HAVE_TZNAME
-	if (0 <= tmp->tm_isdst && tzname[0 < tmp->tm_isdst])
-	  return tzname[0 < tmp->tm_isdst];
-# endif
-	return "";
-#endif
-}
-
-/*
-** The code below can fail on certain theoretical systems;
-** it works on all known real-world systems as of 2022-01-25.
-*/
-
-static const char *
-tformat(void)
-{
-#if HAVE__GENERIC
-	/* C11-style _Generic is more likely to return the correct
-	   format when distinct types have the same size.  */
-	char const *fmt =
-	  _Generic(+ (time_t) 0,
-		   int: "%d", long: "%ld", long long: "%lld",
-		   unsigned: "%u", unsigned long: "%lu",
-		   unsigned long long: "%llu",
-		   default: NULL);
-	if (fmt)
-	  return fmt;
-	fmt = _Generic((time_t) 0,
-		       intmax_t: "%"PRIdMAX, uintmax_t: "%"PRIuMAX,
-		       default: NULL);
-	if (fmt)
-	  return fmt;
-#endif
-	if (0 > (time_t) -1) {		/* signed */
-		if (sizeof(time_t) == sizeof(intmax_t))
-			return "%"PRIdMAX;
-		if (sizeof(time_t) > sizeof(long))
-			return "%lld";
-		if (sizeof(time_t) > sizeof(int))
-			return "%ld";
-		return "%d";
-	}
-#ifdef PRIuMAX
-	if (sizeof(time_t) == sizeof(uintmax_t))
-		return "%"PRIuMAX;
-#endif
-	if (sizeof(time_t) > sizeof(unsigned long))
-		return "%llu";
-	if (sizeof(time_t) > sizeof(unsigned int))
-		return "%lu";
-	return "%u";
-}
-
-static void
-dumptime(register const struct tm *timeptr)
-{
-	static const char	wday_name[][4] = {
-		"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"
-	};
-	static const char	mon_name[][4] = {
-		"Jan", "Feb", "Mar", "Apr", "May", "Jun",
-		"Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
-	};
-	register int		lead;
-	register int		trail;
-	int DIVISOR = 10;
-
-	/*
-	** The packaged localtime_rz and gmtime_r never put out-of-range
-	** values in tm_wday or tm_mon, but since this code might be compiled
-	** with other (perhaps experimental) versions, paranoia is in order.
-	*/
-	printf("%s %s%3d %.2d:%.2d:%.2d ",
-		((0 <= timeptr->tm_wday
-		  && timeptr->tm_wday < sizeof wday_name / sizeof wday_name[0])
-		 ? wday_name[timeptr->tm_wday] : "???"),
-		((0 <= timeptr->tm_mon
-		  && timeptr->tm_mon < sizeof mon_name / sizeof mon_name[0])
-		 ? mon_name[timeptr->tm_mon] : "???"),
-		timeptr->tm_mday, timeptr->tm_hour,
-		timeptr->tm_min, timeptr->tm_sec);
-	trail = timeptr->tm_year % DIVISOR + TM_YEAR_BASE % DIVISOR;
-	lead = timeptr->tm_year / DIVISOR + TM_YEAR_BASE / DIVISOR +
-		trail / DIVISOR;
-	trail %= DIVISOR;
-	if (trail < 0 && lead > 0) {
-		trail += DIVISOR;
-		--lead;
-	} else if (lead < 0 && trail > 0) {
-		trail -= DIVISOR;
-		++lead;
-	}
-	if (lead == 0)
-		printf("%d", trail);
-	else	printf("%d%d", lead, ((trail < 0) ? -trail : trail));
-}
Index: sources/iana/tz/create-2023c-glibc-2.37-patch/glibc-2.37-new/timezone/zic.c
===================================================================
--- sources/iana/tz/create-2023c-glibc-2.37-patch/glibc-2.37-new/timezone/zic.c	(revision 393)
+++ sources/iana/tz/create-2023c-glibc-2.37-patch/glibc-2.37-new/timezone/zic.c	(nonexistent)
@@ -1,3931 +0,0 @@
-/* Compile .zi time zone data into TZif binary files.  */
-
-/*
-** This file is in the public domain, so clarified as of
-** 2006-07-17 by Arthur David Olson.
-*/
-
-/* Use the system 'time' function, instead of any private replacement.
-   This avoids creating an unnecessary dependency on localtime.c.  */
-#undef EPOCH_LOCAL
-#undef EPOCH_OFFSET
-#undef RESERVE_STD_EXT_IDS
-#undef time_tz
-
-#include "version.h"
-#include "private.h"
-#include "tzfile.h"
-
-#include <fcntl.h>
-#include <locale.h>
-#include <signal.h>
-#include <stdarg.h>
-#include <stdio.h>
-
-typedef int_fast64_t	zic_t;
-static zic_t const
-  ZIC_MIN = INT_FAST64_MIN,
-  ZIC_MAX = INT_FAST64_MAX,
-  ZIC32_MIN = -1 - (zic_t) 0x7fffffff,
-  ZIC32_MAX = 0x7fffffff;
-#define SCNdZIC SCNdFAST64
-
-#ifndef ZIC_MAX_ABBR_LEN_WO_WARN
-# define ZIC_MAX_ABBR_LEN_WO_WARN 6
-#endif /* !defined ZIC_MAX_ABBR_LEN_WO_WARN */
-
-/* An upper bound on how much a format might grow due to concatenation.  */
-enum { FORMAT_LEN_GROWTH_BOUND = 5 };
-
-#ifdef HAVE_DIRECT_H
-# include <direct.h>
-# include <io.h>
-# undef mkdir
-# define mkdir(name, mode) _mkdir(name)
-#endif
-
-#ifndef HAVE_GETRANDOM
-# ifdef __has_include
-#  if __has_include(<sys/random.h>)
-#   include <sys/random.h>
-#  endif
-# elif 2 < __GLIBC__ + (25 <= __GLIBC_MINOR__)
-#  include <sys/random.h>
-# endif
-# define HAVE_GETRANDOM GRND_RANDOM
-#elif HAVE_GETRANDOM
-# include <sys/random.h>
-#endif
-
-#if HAVE_SYS_STAT_H
-# include <sys/stat.h>
-#endif
-#ifdef S_IRUSR
-# define MKDIR_UMASK (S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH)
-#else
-# define MKDIR_UMASK 0755
-#endif
-
-/* The minimum alignment of a type, for pre-C23 platforms.
-   The __SUNPRO_C test is because Oracle Developer Studio 12.6 lacks
-   <stdalign.h> even though __STDC_VERSION__ == 201112.  */
-#if __STDC_VERSION__ < 201112 || defined __SUNPRO_C
-# define alignof(type) offsetof(struct { char a; type b; }, b)
-#elif __STDC_VERSION__ < 202311
-# include <stdalign.h>
-#endif
-
-/* The maximum length of a text line, including the trailing newline.  */
-#ifndef _POSIX2_LINE_MAX
-# define _POSIX2_LINE_MAX 2048
-#endif
-
-/* The type for line numbers.  Use PRIdMAX to format them; formerly
-   there was also "#define PRIdLINENO PRIdMAX" and formats used
-   PRIdLINENO, but xgettext cannot grok that.  */
-typedef intmax_t lineno;
-
-struct rule {
-	int		r_filenum;
-	lineno		r_linenum;
-	const char *	r_name;
-
-	zic_t		r_loyear;	/* for example, 1986 */
-	zic_t		r_hiyear;	/* for example, 1986 */
-	bool		r_lowasnum;
-	bool		r_hiwasnum;
-
-	int		r_month;	/* 0..11 */
-
-	int		r_dycode;	/* see below */
-	int		r_dayofmonth;
-	int		r_wday;
-
-	zic_t		r_tod;		/* time from midnight */
-	bool		r_todisstd;	/* is r_tod standard time? */
-	bool		r_todisut;	/* is r_tod UT? */
-	bool		r_isdst;	/* is this daylight saving time? */
-	zic_t		r_save;		/* offset from standard time */
-	const char *	r_abbrvar;	/* variable part of abbreviation */
-
-	bool		r_todo;		/* a rule to do (used in outzone) */
-	zic_t		r_temp;		/* used in outzone */
-};
-
-/*
-** r_dycode	r_dayofmonth	r_wday
-*/
-enum {
-  DC_DOM,	/* 1..31 */	/* unused */
-  DC_DOWGEQ,	/* 1..31 */	/* 0..6 (Sun..Sat) */
-  DC_DOWLEQ	/* 1..31 */	/* 0..6 (Sun..Sat) */
-};
-
-struct zone {
-	int		z_filenum;
-	lineno		z_linenum;
-
-	const char *	z_name;
-	zic_t		z_stdoff;
-	char *		z_rule;
-	const char *	z_format;
-	char		z_format_specifier;
-
-	bool		z_isdst;
-	zic_t		z_save;
-
-	struct rule *	z_rules;
-	ptrdiff_t	z_nrules;
-
-	struct rule	z_untilrule;
-	zic_t		z_untiltime;
-};
-
-#if !HAVE_POSIX_DECLS
-extern int	getopt(int argc, char * const argv[],
-			const char * options);
-extern int	link(const char * target, const char * linkname);
-extern char *	optarg;
-extern int	optind;
-#endif
-
-#if ! HAVE_SYMLINK
-static ssize_t
-readlink(char const *restrict file, char *restrict buf, size_t size)
-{
-  errno = ENOTSUP;
-  return -1;
-}
-static int
-symlink(char const *target, char const *linkname)
-{
-  errno = ENOTSUP;
-  return -1;
-}
-#endif
-#ifndef AT_SYMLINK_FOLLOW
-# if HAVE_LINK
-#  define linkat(targetdir, target, linknamedir, linkname, flag) \
-     (itssymlink(target) ? (errno = ENOTSUP, -1) : link(target, linkname))
-# else
-#  define linkat(targetdir, target, linknamedir, linkname, flag) \
-     (errno = ENOTSUP, -1)
-# endif
-#endif
-
-static void	addtt(zic_t starttime, int type);
-static int	addtype(zic_t, char const *, bool, bool, bool);
-static void	leapadd(zic_t, int, int);
-static void	adjleap(void);
-static void	associate(void);
-static void	dolink(const char *, const char *, bool);
-static int	getfields(char *, char **, int);
-static zic_t	gethms(const char * string, const char * errstring);
-static zic_t	getsave(char *, bool *);
-static void	inexpires(char **, int);
-static void	infile(int, char const *);
-static void	inleap(char ** fields, int nfields);
-static void	inlink(char ** fields, int nfields);
-static void	inrule(char ** fields, int nfields);
-static bool	inzcont(char ** fields, int nfields);
-static bool	inzone(char ** fields, int nfields);
-static bool	inzsub(char **, int, bool);
-static bool	itssymlink(char const *);
-static bool	is_alpha(char a);
-static char	lowerit(char);
-static void	mkdirs(char const *, bool);
-static void	newabbr(const char * abbr);
-static zic_t	oadd(zic_t t1, zic_t t2);
-static void	outzone(const struct zone * zp, ptrdiff_t ntzones);
-static zic_t	rpytime(const struct rule * rp, zic_t wantedy);
-static bool	rulesub(struct rule * rp,
-			const char * loyearp, const char * hiyearp,
-			const char * typep, const char * monthp,
-			const char * dayp, const char * timep);
-static zic_t	tadd(zic_t t1, zic_t t2);
-
-/* Bound on length of what %z can expand to.  */
-enum { PERCENT_Z_LEN_BOUND = sizeof "+995959" - 1 };
-
-static int		charcnt;
-static bool		errors;
-static bool		warnings;
-static int		filenum;
-static int		leapcnt;
-static bool		leapseen;
-static zic_t		leapminyear;
-static zic_t		leapmaxyear;
-static lineno		linenum;
-static int		max_abbrvar_len = PERCENT_Z_LEN_BOUND;
-static int		max_format_len;
-static zic_t		max_year;
-static zic_t		min_year;
-static bool		noise;
-static int		rfilenum;
-static lineno		rlinenum;
-static const char *	progname;
-static char const *	leapsec;
-static char *const *	main_argv;
-static ptrdiff_t	timecnt;
-static ptrdiff_t	timecnt_alloc;
-static int		typecnt;
-static int		unspecifiedtype;
-
-/*
-** Line codes.
-*/
-
-enum {
-  LC_RULE,
-  LC_ZONE,
-  LC_LINK,
-  LC_LEAP,
-  LC_EXPIRES
-};
-
-/*
-** Which fields are which on a Zone line.
-*/
-
-enum {
-  ZF_NAME = 1,
-  ZF_STDOFF,
-  ZF_RULE,
-  ZF_FORMAT,
-  ZF_TILYEAR,
-  ZF_TILMONTH,
-  ZF_TILDAY,
-  ZF_TILTIME,
-  ZONE_MAXFIELDS,
-  ZONE_MINFIELDS = ZF_TILYEAR
-};
-
-/*
-** Which fields are which on a Zone continuation line.
-*/
-
-enum {
-  ZFC_STDOFF,
-  ZFC_RULE,
-  ZFC_FORMAT,
-  ZFC_TILYEAR,
-  ZFC_TILMONTH,
-  ZFC_TILDAY,
-  ZFC_TILTIME,
-  ZONEC_MAXFIELDS,
-  ZONEC_MINFIELDS = ZFC_TILYEAR
-};
-
-/*
-** Which files are which on a Rule line.
-*/
-
-enum {
-  RF_NAME = 1,
-  RF_LOYEAR,
-  RF_HIYEAR,
-  RF_COMMAND,
-  RF_MONTH,
-  RF_DAY,
-  RF_TOD,
-  RF_SAVE,
-  RF_ABBRVAR,
-  RULE_FIELDS
-};
-
-/*
-** Which fields are which on a Link line.
-*/
-
-enum {
-  LF_TARGET = 1,
-  LF_LINKNAME,
-  LINK_FIELDS
-};
-
-/*
-** Which fields are which on a Leap line.
-*/
-
-enum {
-  LP_YEAR = 1,
-  LP_MONTH,
-  LP_DAY,
-  LP_TIME,
-  LP_CORR,
-  LP_ROLL,
-  LEAP_FIELDS,
-
-  /* Expires lines are like Leap lines, except without CORR and ROLL fields.  */
-  EXPIRES_FIELDS = LP_TIME + 1
-};
-
-/* The maximum number of fields on any of the above lines.
-   (The "+"s pacify gcc -Wenum-compare.)  */
-enum {
-  MAX_FIELDS = max(max(+RULE_FIELDS, +LINK_FIELDS),
-		   max(+LEAP_FIELDS, +EXPIRES_FIELDS))
-};
-
-/*
-** Year synonyms.
-*/
-
-enum {
-  YR_MINIMUM,
-  YR_MAXIMUM,
-  YR_ONLY
-};
-
-static struct rule *	rules;
-static ptrdiff_t	nrules;	/* number of rules */
-static ptrdiff_t	nrules_alloc;
-
-static struct zone *	zones;
-static ptrdiff_t	nzones;	/* number of zones */
-static ptrdiff_t	nzones_alloc;
-
-struct link {
-	int		l_filenum;
-	lineno		l_linenum;
-	const char *	l_target;
-	const char *	l_linkname;
-};
-
-static struct link *	links;
-static ptrdiff_t	nlinks;
-static ptrdiff_t	nlinks_alloc;
-
-struct lookup {
-	const char *	l_word;
-	const int	l_value;
-};
-
-static struct lookup const *	byword(const char * string,
-					const struct lookup * lp);
-
-static struct lookup const zi_line_codes[] = {
-	{ "Rule",	LC_RULE },
-	{ "Zone",	LC_ZONE },
-	{ "Link",	LC_LINK },
-	{ NULL,		0 }
-};
-static struct lookup const leap_line_codes[] = {
-	{ "Leap",	LC_LEAP },
-	{ "Expires",	LC_EXPIRES },
-	{ NULL,		0}
-};
-
-static struct lookup const	mon_names[] = {
-	{ "January",	TM_JANUARY },
-	{ "February",	TM_FEBRUARY },
-	{ "March",	TM_MARCH },
-	{ "April",	TM_APRIL },
-	{ "May",	TM_MAY },
-	{ "June",	TM_JUNE },
-	{ "July",	TM_JULY },
-	{ "August",	TM_AUGUST },
-	{ "September",	TM_SEPTEMBER },
-	{ "October",	TM_OCTOBER },
-	{ "November",	TM_NOVEMBER },
-	{ "December",	TM_DECEMBER },
-	{ NULL,		0 }
-};
-
-static struct lookup const	wday_names[] = {
-	{ "Sunday",	TM_SUNDAY },
-	{ "Monday",	TM_MONDAY },
-	{ "Tuesday",	TM_TUESDAY },
-	{ "Wednesday",	TM_WEDNESDAY },
-	{ "Thursday",	TM_THURSDAY },
-	{ "Friday",	TM_FRIDAY },
-	{ "Saturday",	TM_SATURDAY },
-	{ NULL,		0 }
-};
-
-static struct lookup const	lasts[] = {
-	{ "last-Sunday",	TM_SUNDAY },
-	{ "last-Monday",	TM_MONDAY },
-	{ "last-Tuesday",	TM_TUESDAY },
-	{ "last-Wednesday",	TM_WEDNESDAY },
-	{ "last-Thursday",	TM_THURSDAY },
-	{ "last-Friday",	TM_FRIDAY },
-	{ "last-Saturday",	TM_SATURDAY },
-	{ NULL,			0 }
-};
-
-static struct lookup const	begin_years[] = {
-	{ "minimum",	YR_MINIMUM },
-	{ "maximum",	YR_MAXIMUM },
-	{ NULL,		0 }
-};
-
-static struct lookup const	end_years[] = {
-	{ "minimum",	YR_MINIMUM },
-	{ "maximum",	YR_MAXIMUM },
-	{ "only",	YR_ONLY },
-	{ NULL,		0 }
-};
-
-static struct lookup const	leap_types[] = {
-	{ "Rolling",	true },
-	{ "Stationary",	false },
-	{ NULL,		0 }
-};
-
-static const int	len_months[2][MONSPERYEAR] = {
-	{ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 },
-	{ 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }
-};
-
-static const int	len_years[2] = {
-	DAYSPERNYEAR, DAYSPERLYEAR
-};
-
-static struct attype {
-	zic_t		at;
-	bool		dontmerge;
-	unsigned char	type;
-} *			attypes;
-static zic_t		utoffs[TZ_MAX_TYPES];
-static char		isdsts[TZ_MAX_TYPES];
-static unsigned char	desigidx[TZ_MAX_TYPES];
-static bool		ttisstds[TZ_MAX_TYPES];
-static bool		ttisuts[TZ_MAX_TYPES];
-static char		chars[TZ_MAX_CHARS];
-static zic_t		trans[TZ_MAX_LEAPS];
-static zic_t		corr[TZ_MAX_LEAPS];
-static char		roll[TZ_MAX_LEAPS];
-
-/*
-** Memory allocation.
-*/
-
-ATTRIBUTE_NORETURN static void
-memory_exhausted(const char *msg)
-{
-	fprintf(stderr, _("%s: Memory exhausted: %s\n"), progname, msg);
-	exit(EXIT_FAILURE);
-}
-
-ATTRIBUTE_NORETURN static void
-size_overflow(void)
-{
-  memory_exhausted(_("size overflow"));
-}
-
-ATTRIBUTE_REPRODUCIBLE static ptrdiff_t
-size_sum(size_t a, size_t b)
-{
-#ifdef ckd_add
-  ptrdiff_t sum;
-  if (!ckd_add(&sum, a, b) && sum <= INDEX_MAX)
-    return sum;
-#else
-  if (a <= INDEX_MAX && b <= INDEX_MAX - a)
-    return a + b;
-#endif
-  size_overflow();
-}
-
-ATTRIBUTE_REPRODUCIBLE static ptrdiff_t
-size_product(ptrdiff_t nitems, ptrdiff_t itemsize)
-{
-#ifdef ckd_mul
-  ptrdiff_t product;
-  if (!ckd_mul(&product, nitems, itemsize) && product <= INDEX_MAX)
-    return product;
-#else
-  ptrdiff_t nitems_max = INDEX_MAX / itemsize;
-  if (nitems <= nitems_max)
-    return nitems * itemsize;
-#endif
-  size_overflow();
-}
-
-ATTRIBUTE_REPRODUCIBLE static ptrdiff_t
-align_to(ptrdiff_t size, ptrdiff_t alignment)
-{
-  ptrdiff_t lo_bits = alignment - 1, sum = size_sum(size, lo_bits);
-  return sum & ~lo_bits;
-}
-
-#if !HAVE_STRDUP
-static char *
-strdup(char const *str)
-{
-  char *result = malloc(strlen(str) + 1);
-  return result ? strcpy(result, str) : result;
-}
-#endif
-
-static void *
-memcheck(void *ptr)
-{
-	if (ptr == NULL)
-	  memory_exhausted(strerror(HAVE_MALLOC_ERRNO ? errno : ENOMEM));
-	return ptr;
-}
-
-ATTRIBUTE_MALLOC static void *
-emalloc(size_t size)
-{
-  return memcheck(malloc(size));
-}
-
-static void *
-erealloc(void *ptr, size_t size)
-{
-  return memcheck(realloc(ptr, size));
-}
-
-ATTRIBUTE_MALLOC static char *
-estrdup(char const *str)
-{
-  return memcheck(strdup(str));
-}
-
-static ptrdiff_t
-grow_nitems_alloc(ptrdiff_t *nitems_alloc, ptrdiff_t itemsize)
-{
-  ptrdiff_t addend = (*nitems_alloc >> 1) + 1;
-#if defined ckd_add && defined ckd_mul
-  ptrdiff_t product;
-  if (!ckd_add(nitems_alloc, *nitems_alloc, addend)
-      && !ckd_mul(&product, *nitems_alloc, itemsize) && product <= INDEX_MAX)
-    return product;
-#else
-  if (*nitems_alloc <= ((INDEX_MAX - 1) / 3 * 2) / itemsize) {
-    *nitems_alloc += addend;
-    return *nitems_alloc * itemsize;
-  }
-#endif
-  memory_exhausted(_("integer overflow"));
-}
-
-static void *
-growalloc(void *ptr, ptrdiff_t itemsize, ptrdiff_t nitems,
-	  ptrdiff_t *nitems_alloc)
-{
-  return (nitems < *nitems_alloc
-	  ? ptr
-	  : erealloc(ptr, grow_nitems_alloc(nitems_alloc, itemsize)));
-}
-
-/*
-** Error handling.
-*/
-
-/* In most of the code, an input file name is represented by its index
-   into the main argument vector, except that LEAPSEC_FILENUM stands
-   for leapsec and COMMAND_LINE_FILENUM stands for the command line.  */
-enum { LEAPSEC_FILENUM = -2, COMMAND_LINE_FILENUM = -1 };
-
-/* Return the name of the Ith input file, for diagnostics.  */
-static char const *
-filename(int i)
-{
-  if (i == COMMAND_LINE_FILENUM)
-    return _("command line");
-  else {
-    char const *fname = i == LEAPSEC_FILENUM ? leapsec : main_argv[i];
-    return strcmp(fname, "-") == 0 ? _("standard input") : fname;
-  }
-}
-
-static void
-eats(int fnum, lineno num, int rfnum, lineno rnum)
-{
-	filenum = fnum;
-	linenum = num;
-	rfilenum = rfnum;
-	rlinenum = rnum;
-}
-
-static void
-eat(int fnum, lineno num)
-{
-	eats(fnum, num, 0, -1);
-}
-
-ATTRIBUTE_FORMAT((printf, 1, 0)) static void
-verror(const char *const string, va_list args)
-{
-	/*
-	** Match the format of "cc" to allow sh users to
-	**	zic ... 2>&1 | error -t "*" -v
-	** on BSD systems.
-	*/
-	if (filenum)
-	  fprintf(stderr, _("\"%s\", line %"PRIdMAX": "),
-		  filename(filenum), linenum);
-	vfprintf(stderr, string, args);
-	if (rfilenum)
-		fprintf(stderr, _(" (rule from \"%s\", line %"PRIdMAX")"),
-			filename(rfilenum), rlinenum);
-	fprintf(stderr, "\n");
-}
-
-ATTRIBUTE_FORMAT((printf, 1, 2)) static void
-error(const char *const string, ...)
-{
-	va_list args;
-	va_start(args, string);
-	verror(string, args);
-	va_end(args);
-	errors = true;
-}
-
-ATTRIBUTE_FORMAT((printf, 1, 2)) static void
-warning(const char *const string, ...)
-{
-	va_list args;
-	fprintf(stderr, _("warning: "));
-	va_start(args, string);
-	verror(string, args);
-	va_end(args);
-	warnings = true;
-}
-
-/* Close STREAM.  If it had an I/O error, report it against DIR/NAME,
-   remove TEMPNAME if nonnull, and then exit.  */
-static void
-close_file(FILE *stream, char const *dir, char const *name,
-	   char const *tempname)
-{
-  char const *e = (ferror(stream) ? _("I/O error")
-		   : fclose(stream) != 0 ? strerror(errno) : NULL);
-  if (e) {
-    fprintf(stderr, "%s: %s%s%s%s%s\n", progname,
-	    dir ? dir : "", dir ? "/" : "",
-	    name ? name : "", name ? ": " : "",
-	    e);
-    if (tempname)
-      remove(tempname);
-    exit(EXIT_FAILURE);
-  }
-}
-
-ATTRIBUTE_NORETURN static void
-usage(FILE *stream, int status)
-{
-  fprintf(stream,
-	  _("%s: usage is %s [ --version ] [ --help ] [ -v ] \\\n"
-	    "\t[ -b {slim|fat} ] [ -d directory ] [ -l localtime ]"
-	    " [ -L leapseconds ] \\\n"
-	    "\t[ -p posixrules ] [ -r '[@lo][/@hi]' ] [ -R '@hi' ] \\\n"
-	    "\t[ -t localtime-link ] \\\n"
-	    "\t[ filename ... ]\n\n"
-	    "Report bugs to %s.\n"),
-	  progname, progname, REPORT_BUGS_TO);
-  if (status == EXIT_SUCCESS)
-    close_file(stream, NULL, NULL, NULL);
-  exit(status);
-}
-
-/* Change the working directory to DIR, possibly creating DIR and its
-   ancestors.  After this is done, all files are accessed with names
-   relative to DIR.  */
-static void
-change_directory(char const *dir)
-{
-  if (chdir(dir) != 0) {
-    int chdir_errno = errno;
-    if (chdir_errno == ENOENT) {
-      mkdirs(dir, false);
-      chdir_errno = chdir(dir) == 0 ? 0 : errno;
-    }
-    if (chdir_errno != 0) {
-      fprintf(stderr, _("%s: Can't chdir to %s: %s\n"),
-	      progname, dir, strerror(chdir_errno));
-      exit(EXIT_FAILURE);
-    }
-  }
-}
-
-/* Compare the two links A and B, for a stable sort by link name.  */
-static int
-qsort_linkcmp(void const *a, void const *b)
-{
-  struct link const *l = a;
-  struct link const *m = b;
-  int cmp = strcmp(l->l_linkname, m->l_linkname);
-  if (cmp)
-    return cmp;
-
-  /* The link names are the same.  Make the sort stable by comparing
-     file numbers (where subtraction cannot overflow) and possibly
-     line numbers (where it can).  */
-  cmp = l->l_filenum - m->l_filenum;
-  if (cmp)
-    return cmp;
-  return (l->l_linenum > m->l_linenum) - (l->l_linenum < m->l_linenum);
-}
-
-/* Compare the string KEY to the link B, for bsearch.  */
-static int
-bsearch_linkcmp(void const *key, void const *b)
-{
-  struct link const *m = b;
-  return strcmp(key, m->l_linkname);
-}
-
-/* Make the links specified by the Link lines.  */
-static void
-make_links(void)
-{
-  ptrdiff_t i, j, nalinks, pass_size;
-  if (1 < nlinks)
-    qsort(links, nlinks, sizeof *links, qsort_linkcmp);
-
-  /* Ignore each link superseded by a later link with the same name.  */
-  j = 0;
-  for (i = 0; i < nlinks; i++) {
-    while (i + 1 < nlinks
-	   && strcmp(links[i].l_linkname, links[i + 1].l_linkname) == 0)
-      i++;
-    links[j++] = links[i];
-  }
-  nlinks = pass_size = j;
-
-  /* Walk through the link array making links.  However,
-     if a link's target has not been made yet, append a copy to the
-     end of the array.  The end of the array will gradually fill
-     up with a small sorted subsequence of not-yet-made links.
-     nalinks counts all the links in the array, including copies.
-     When we reach the copied subsequence, it may still contain
-     a link to a not-yet-made link, so the process repeats.
-     At any given point in time, the link array consists of the
-     following subregions, where 0 <= i <= j <= nalinks and
-     0 <= nlinks <= nalinks:
-
-       0 .. (i - 1):
-	 links that either have been made, or have been copied to a
-	 later point point in the array (this later point can be in
-	 any of the three subregions)
-       i .. (j - 1):
-	 not-yet-made links for this pass
-       j .. (nalinks - 1):
-	 not-yet-made links that this pass has skipped because
-	 they were links to not-yet-made links
-
-     The first subregion might not be sorted if nlinks < i;
-     the other two subregions are sorted.  This algorithm does
-     not alter entries 0 .. (nlinks - 1), which remain sorted.
-
-     If there are L links, this algorithm is O(C*L*log(L)) where
-     C is the length of the longest link chain.  Usually C is
-     short (e.g., 3) though its worst-case value is L.  */
-
-  j = nalinks = nlinks;
-
-  for (i = 0; i < nalinks; i++) {
-    struct link *l;
-
-    eat(links[i].l_filenum, links[i].l_linenum);
-
-    /* If this pass examined all its links, start the next pass.  */
-    if (i == j) {
-      if (nalinks - i == pass_size) {
-	error(_("\"Link %s %s\" is part of a link cycle"),
-	      links[i].l_target, links[i].l_linkname);
-	break;
-      }
-      j = nalinks;
-      pass_size = nalinks - i;
-    }
-
-    /* Diagnose self links, which the cycle detection algorithm would not
-       otherwise catch.  */
-    if (strcmp(links[i].l_target, links[i].l_linkname) == 0) {
-      error(_("link %s targets itself"), links[i].l_target);
-      continue;
-    }
-
-    /* Make this link unless its target has not been made yet.  */
-    l = bsearch(links[i].l_target, &links[i + 1], j - (i + 1),
-		sizeof *links, bsearch_linkcmp);
-    if (!l)
-      l = bsearch(links[i].l_target, &links[j], nalinks - j,
-		  sizeof *links, bsearch_linkcmp);
-    if (!l)
-      dolink(links[i].l_target, links[i].l_linkname, false);
-    else {
-      /* The link target has not been made yet; copy the link to the end.  */
-      links = growalloc(links, sizeof *links, nalinks, &nlinks_alloc);
-      links[nalinks++] = links[i];
-    }
-
-    if (noise && i < nlinks) {
-      if (l)
-	warning(_("link %s targeting link %s mishandled by pre-2023 zic"),
-		links[i].l_linkname, links[i].l_target);
-      else if (bsearch(links[i].l_target, links, nlinks, sizeof *links,
-		       bsearch_linkcmp))
-	warning(_("link %s targeting link %s"),
-		links[i].l_linkname, links[i].l_target);
-    }
-  }
-}
-
-/* Simple signal handling: just set a flag that is checked
-   periodically outside critical sections.  To set up the handler,
-   prefer sigaction if available to close a signal race.  */
-
-static sig_atomic_t got_signal;
-
-static void
-signal_handler(int sig)
-{
-#ifndef SA_SIGINFO
-  signal(sig, signal_handler);
-#endif
-  got_signal = sig;
-}
-
-/* Arrange for SIGINT etc. to be caught by the handler.  */
-static void
-catch_signals(void)
-{
-  static int const signals[] = {
-#ifdef SIGHUP
-    SIGHUP,
-#endif
-    SIGINT,
-#ifdef SIGPIPE
-    SIGPIPE,
-#endif
-    SIGTERM
-  };
-  int i;
-  for (i = 0; i < sizeof signals / sizeof signals[0]; i++) {
-#ifdef SA_SIGINFO
-    struct sigaction act0, act;
-    act.sa_handler = signal_handler;
-    sigemptyset(&act.sa_mask);
-    act.sa_flags = 0;
-    if (sigaction(signals[i], &act, &act0) == 0
-	&& ! (act0.sa_flags & SA_SIGINFO) && act0.sa_handler == SIG_IGN) {
-      sigaction(signals[i], &act0, NULL);
-      got_signal = 0;
-    }
-#else
-    if (signal(signals[i], signal_handler) == SIG_IGN) {
-      signal(signals[i], SIG_IGN);
-      got_signal = 0;
-    }
-#endif
-  }
-}
-
-/* If a signal has arrived, terminate zic with appropriate status.  */
-static void
-check_for_signal(void)
-{
-  int sig = got_signal;
-  if (sig) {
-    signal(sig, SIG_DFL);
-    raise(sig);
-    abort(); /* A bug in 'raise'.  */
-  }
-}
-
-enum { TIME_T_BITS_IN_FILE = 64 };
-
-/* The minimum and maximum values representable in a TZif file.  */
-static zic_t const min_time = MINVAL(zic_t, TIME_T_BITS_IN_FILE);
-static zic_t const max_time = MAXVAL(zic_t, TIME_T_BITS_IN_FILE);
-
-/* The minimum, and one less than the maximum, values specified by
-   the -r option.  These default to MIN_TIME and MAX_TIME.  */
-static zic_t lo_time = MINVAL(zic_t, TIME_T_BITS_IN_FILE);
-static zic_t hi_time = MAXVAL(zic_t, TIME_T_BITS_IN_FILE);
-
-/* The time specified by the -R option, defaulting to MIN_TIME.  */
-static zic_t redundant_time = MINVAL(zic_t, TIME_T_BITS_IN_FILE);
-
-/* The time specified by an Expires line, or negative if no such line.  */
-static zic_t leapexpires = -1;
-
-/* Set the time range of the output to TIMERANGE.
-   Return true if successful.  */
-static bool
-timerange_option(char *timerange)
-{
-  intmax_t lo = min_time, hi = max_time;
-  char *lo_end = timerange, *hi_end;
-  if (*timerange == '@') {
-    errno = 0;
-    lo = strtoimax(timerange + 1, &lo_end, 10);
-    if (lo_end == timerange + 1 || (lo == INTMAX_MAX && errno == ERANGE))
-      return false;
-  }
-  hi_end = lo_end;
-  if (lo_end[0] == '/' && lo_end[1] == '@') {
-    errno = 0;
-    hi = strtoimax(lo_end + 2, &hi_end, 10);
-    if (hi_end == lo_end + 2 || hi == INTMAX_MIN)
-      return false;
-    hi -= ! (hi == INTMAX_MAX && errno == ERANGE);
-  }
-  if (*hi_end || hi < lo || max_time < lo || hi < min_time)
-    return false;
-  lo_time = max(lo, min_time);
-  hi_time = min(hi, max_time);
-  return true;
-}
-
-/* Generate redundant time stamps up to OPT.  Return true if successful.  */
-static bool
-redundant_time_option(char *opt)
-{
-  if (*opt == '@') {
-    intmax_t redundant;
-    char *opt_end;
-    redundant = strtoimax(opt + 1, &opt_end, 10);
-    if (opt_end != opt + 1 && !*opt_end) {
-      redundant_time = max(redundant_time, redundant);
-      return true;
-    }
-  }
-  return false;
-}
-
-static const char *	psxrules;
-static const char *	lcltime;
-static const char *	directory;
-static const char *	tzdefault;
-
-/* -1 if the TZif output file should be slim, 0 if default, 1 if the
-   output should be fat for backward compatibility.  ZIC_BLOAT_DEFAULT
-   determines the default.  */
-static int bloat;
-
-static bool
-want_bloat(void)
-{
-  return 0 <= bloat;
-}
-
-#ifndef ZIC_BLOAT_DEFAULT
-# define ZIC_BLOAT_DEFAULT "slim"
-#endif
-
-int
-main(int argc, char **argv)
-{
-	register int c, k;
-	register ptrdiff_t i, j;
-	bool timerange_given = false;
-
-#ifdef S_IWGRP
-	umask(umask(S_IWGRP | S_IWOTH) | (S_IWGRP | S_IWOTH));
-#endif
-#if HAVE_GETTEXT
-	setlocale(LC_ALL, "");
-# ifdef TZ_DOMAINDIR
-	bindtextdomain(TZ_DOMAIN, TZ_DOMAINDIR);
-# endif /* defined TEXTDOMAINDIR */
-	textdomain(TZ_DOMAIN);
-#endif /* HAVE_GETTEXT */
-	main_argv = argv;
-	progname = argv[0] ? argv[0] : "zic";
-	if (TYPE_BIT(zic_t) < 64) {
-		fprintf(stderr, "%s: %s\n", progname,
-			_("wild compilation-time specification of zic_t"));
-		return EXIT_FAILURE;
-	}
-	for (k = 1; k < argc; k++)
-		if (strcmp(argv[k], "--version") == 0) {
-			printf("zic %s%s\n", PKGVERSION, TZVERSION);
-			close_file(stdout, NULL, NULL, NULL);
-			return EXIT_SUCCESS;
-		} else if (strcmp(argv[k], "--help") == 0) {
-			usage(stdout, EXIT_SUCCESS);
-		}
-	while ((c = getopt(argc, argv, "b:d:l:L:p:r:R:st:vy:")) != EOF
-	       && c != -1)
-		switch (c) {
-			default:
-				usage(stderr, EXIT_FAILURE);
-			case 'b':
-				if (strcmp(optarg, "slim") == 0) {
-				  if (0 < bloat)
-				    error(_("incompatible -b options"));
-				  bloat = -1;
-				} else if (strcmp(optarg, "fat") == 0) {
-				  if (bloat < 0)
-				    error(_("incompatible -b options"));
-				  bloat = 1;
-				} else
-				  error(_("invalid option: -b '%s'"), optarg);
-				break;
-			case 'd':
-				if (directory == NULL)
-					directory = optarg;
-				else {
-					fprintf(stderr,
-_("%s: More than one -d option specified\n"),
-						progname);
-					return EXIT_FAILURE;
-				}
-				break;
-			case 'l':
-				if (lcltime == NULL)
-					lcltime = optarg;
-				else {
-					fprintf(stderr,
-_("%s: More than one -l option specified\n"),
-						progname);
-					return EXIT_FAILURE;
-				}
-				break;
-			case 'p':
-				if (psxrules == NULL)
-					psxrules = optarg;
-				else {
-					fprintf(stderr,
-_("%s: More than one -p option specified\n"),
-						progname);
-					return EXIT_FAILURE;
-				}
-				break;
-			case 't':
-				if (tzdefault != NULL) {
-				  fprintf(stderr,
-					  _("%s: More than one -t option"
-					    " specified\n"),
-					  progname);
-				  return EXIT_FAILURE;
-				}
-				tzdefault = optarg;
-				break;
-			case 'y':
-				warning(_("-y ignored"));
-				break;
-			case 'L':
-				if (leapsec == NULL)
-					leapsec = optarg;
-				else {
-					fprintf(stderr,
-_("%s: More than one -L option specified\n"),
-						progname);
-					return EXIT_FAILURE;
-				}
-				break;
-			case 'v':
-				noise = true;
-				break;
-			case 'r':
-				if (timerange_given) {
-				  fprintf(stderr,
-_("%s: More than one -r option specified\n"),
-					  progname);
-				  return EXIT_FAILURE;
-				}
-				if (! timerange_option(optarg)) {
-				  fprintf(stderr,
-_("%s: invalid time range: %s\n"),
-					  progname, optarg);
-				  return EXIT_FAILURE;
-				}
-				timerange_given = true;
-				break;
-			case 'R':
-				if (! redundant_time_option(optarg)) {
-				  fprintf(stderr, _("%s: invalid time: %s\n"),
-					  progname, optarg);
-				  return EXIT_FAILURE;
-				}
-				break;
-			case 's':
-				warning(_("-s ignored"));
-				break;
-		}
-	if (optind == argc - 1 && strcmp(argv[optind], "=") == 0)
-		usage(stderr, EXIT_FAILURE);	/* usage message by request */
-	if (hi_time + (hi_time < ZIC_MAX) < redundant_time) {
-	  fprintf(stderr, _("%s: -R time exceeds -r cutoff\n"), progname);
-	  return EXIT_FAILURE;
-	}
-	if (bloat == 0) {
-	  static char const bloat_default[] = ZIC_BLOAT_DEFAULT;
-	  if (strcmp(bloat_default, "slim") == 0)
-	    bloat = -1;
-	  else if (strcmp(bloat_default, "fat") == 0)
-	    bloat = 1;
-	  else
-	    abort(); /* Configuration error.  */
-	}
-	if (directory == NULL)
-		directory = TZDIR;
-	if (tzdefault == NULL)
-		tzdefault = TZDEFAULT;
-
-	if (optind < argc && leapsec != NULL) {
-		infile(LEAPSEC_FILENUM, leapsec);
-		adjleap();
-	}
-
-	for (k = optind; k < argc; k++)
-	  infile(k, argv[k]);
-	if (errors)
-		return EXIT_FAILURE;
-	associate();
-	change_directory(directory);
-	catch_signals();
-	for (i = 0; i < nzones; i = j) {
-		/*
-		** Find the next non-continuation zone entry.
-		*/
-		for (j = i + 1; j < nzones && zones[j].z_name == NULL; ++j)
-			continue;
-		outzone(&zones[i], j - i);
-	}
-	make_links();
-	if (lcltime != NULL) {
-		eat(COMMAND_LINE_FILENUM, 1);
-		dolink(lcltime, tzdefault, true);
-	}
-	if (psxrules != NULL) {
-		eat(COMMAND_LINE_FILENUM, 1);
-		dolink(psxrules, TZDEFRULES, true);
-	}
-	if (warnings && (ferror(stderr) || fclose(stderr) != 0))
-	  return EXIT_FAILURE;
-	return errors ? EXIT_FAILURE : EXIT_SUCCESS;
-}
-
-static bool
-componentcheck(char const *name, char const *component,
-	       char const *component_end)
-{
-	enum { component_len_max = 14 };
-	ptrdiff_t component_len = component_end - component;
-	if (component_len == 0) {
-	  if (!*name)
-	    error(_("empty file name"));
-	  else
-	    error(_(component == name
-		     ? "file name '%s' begins with '/'"
-		     : *component_end
-		     ? "file name '%s' contains '//'"
-		     : "file name '%s' ends with '/'"),
-		   name);
-	  return false;
-	}
-	if (0 < component_len && component_len <= 2
-	    && component[0] == '.' && component_end[-1] == '.') {
-	  int len = component_len;
-	  error(_("file name '%s' contains '%.*s' component"),
-		name, len, component);
-	  return false;
-	}
-	if (noise) {
-	  if (0 < component_len && component[0] == '-')
-	    warning(_("file name '%s' component contains leading '-'"),
-		    name);
-	  if (component_len_max < component_len)
-	    warning(_("file name '%s' contains overlength component"
-		      " '%.*s...'"),
-		    name, component_len_max, component);
-	}
-	return true;
-}
-
-static bool
-namecheck(const char *name)
-{
-	register char const *cp;
-
-	/* Benign characters in a portable file name.  */
-	static char const benign[] =
-	  "-/_"
-	  "abcdefghijklmnopqrstuvwxyz"
-	  "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
-
-	/* Non-control chars in the POSIX portable character set,
-	   excluding the benign characters.  */
-	static char const printable_and_not_benign[] =
-	  " !\"#$%&'()*+,.0123456789:;<=>?@[\\]^`{|}~";
-
-	register char const *component = name;
-	for (cp = name; *cp; cp++) {
-		unsigned char c = *cp;
-		if (noise && !strchr(benign, c)) {
-			warning((strchr(printable_and_not_benign, c)
-				 ? _("file name '%s' contains byte '%c'")
-				 : _("file name '%s' contains byte '\\%o'")),
-				name, c);
-		}
-		if (c == '/') {
-			if (!componentcheck(name, component, cp))
-			  return false;
-			component = cp + 1;
-		}
-	}
-	return componentcheck(name, component, cp);
-}
-
-/* Return a random uint_fast64_t.  */
-static uint_fast64_t
-get_rand_u64(void)
-{
-#if HAVE_GETRANDOM
-  static uint_fast64_t entropy_buffer[max(1, 256 / sizeof(uint_fast64_t))];
-  static int nwords;
-  if (!nwords) {
-    ssize_t s;
-    do
-      s = getrandom(entropy_buffer, sizeof entropy_buffer, 0);
-    while (s < 0 && errno == EINTR);
-
-    nwords = s < 0 ? -1 : s / sizeof *entropy_buffer;
-  }
-  if (0 < nwords)
-    return entropy_buffer[--nwords];
-#endif
-
-  /* getrandom didn't work, so fall back on portable code that is
-     not the best because the seed isn't cryptographically random and
-     'rand' might not be cryptographically secure.  */
-  {
-    static bool initialized;
-    if (!initialized) {
-      srand(time(NULL));
-      initialized = true;
-    }
-  }
-
-  /* Return a random number if rand() yields a random number and in
-     the typical case where RAND_MAX is one less than a power of two.
-     In other cases this code yields a sort-of-random number.  */
-  {
-    uint_fast64_t rand_max = RAND_MAX,
-      nrand = rand_max < UINT_FAST64_MAX ? rand_max + 1 : 0,
-      rmod = INT_MAX < UINT_FAST64_MAX ? 0 : UINT_FAST64_MAX / nrand + 1,
-      r = 0, rmax = 0;
-
-    do {
-      uint_fast64_t rmax1 = rmax;
-      if (rmod) {
-	/* Avoid signed integer overflow on theoretical platforms
-	   where uint_fast64_t promotes to int.  */
-	rmax1 %= rmod;
-	r %= rmod;
-      }
-      rmax1 = nrand * rmax1 + rand_max;
-      r = nrand * r + rand();
-      rmax = rmax < rmax1 ? rmax1 : UINT_FAST64_MAX;
-    } while (rmax < UINT_FAST64_MAX);
-
-    return r;
-  }
-}
-
-/* Generate a randomish name in the same directory as *NAME.  If
-   *NAMEALLOC, put the name into *NAMEALLOC which is assumed to be
-   that returned by a previous call and is thus already almost set up
-   and equal to *NAME; otherwise, allocate a new name and put its
-   address into both *NAMEALLOC and *NAME.  */
-static void
-random_dirent(char const **name, char **namealloc)
-{
-  char const *src = *name;
-  char *dst = *namealloc;
-  static char const prefix[] = ".zic";
-  static char const alphabet[] =
-    "abcdefghijklmnopqrstuvwxyz"
-    "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
-    "0123456789";
-  enum { prefixlen = sizeof prefix - 1, alphabetlen = sizeof alphabet - 1 };
-  int suffixlen = 6;
-  char const *lastslash = strrchr(src, '/');
-  ptrdiff_t dirlen = lastslash ? lastslash + 1 - src : 0;
-  int i;
-  uint_fast64_t r;
-  uint_fast64_t base = alphabetlen;
-
-  /* BASE**6 */
-  uint_fast64_t base__6 = base * base * base * base * base * base;
-
-  /* The largest uintmax_t that is a multiple of BASE**6.  Any random
-     uintmax_t value that is this value or greater, yields a biased
-     remainder when divided by BASE**6.  UNFAIR_MIN equals the
-     mathematical value of ((UINTMAX_MAX + 1) - (UINTMAX_MAX + 1) % BASE**6)
-     computed without overflow.  */
-  uint_fast64_t unfair_min = - ((UINTMAX_MAX % base__6 + 1) % base__6);
-
-  if (!dst) {
-    dst = emalloc(size_sum(dirlen, prefixlen + suffixlen + 1));
-    memcpy(dst, src, dirlen);
-    memcpy(dst + dirlen, prefix, prefixlen);
-    dst[dirlen + prefixlen + suffixlen] = '\0';
-    *name = *namealloc = dst;
-  }
-
-  do
-    r = get_rand_u64();
-  while (unfair_min <= r);
-
-  for (i = 0; i < suffixlen; i++) {
-    dst[dirlen + prefixlen + i] = alphabet[r % alphabetlen];
-    r /= alphabetlen;
-  }
-}
-
-/* Prepare to write to the file *OUTNAME, using *TEMPNAME to store the
-   name of the temporary file that will eventually be renamed to
-   *OUTNAME.  Assign the temporary file's name to both *OUTNAME and
-   *TEMPNAME.  If *TEMPNAME is null, allocate the name of any such
-   temporary file; otherwise, reuse *TEMPNAME's storage, which is
-   already set up and only needs its trailing suffix updated.  */
-static FILE *
-open_outfile(char const **outname, char **tempname)
-{
-#if __STDC_VERSION__ < 201112
-  static char const fopen_mode[] = "wb";
-#else
-  static char const fopen_mode[] = "wbx";
-#endif
-
-  FILE *fp;
-  bool dirs_made = false;
-  if (!*tempname)
-    random_dirent(outname, tempname);
-
-  while (! (fp = fopen(*outname, fopen_mode))) {
-    int fopen_errno = errno;
-    if (fopen_errno == ENOENT && !dirs_made) {
-      mkdirs(*outname, true);
-      dirs_made = true;
-    } else if (fopen_errno == EEXIST)
-      random_dirent(outname, tempname);
-    else {
-      fprintf(stderr, _("%s: Can't create %s/%s: %s\n"),
-	      progname, directory, *outname, strerror(fopen_errno));
-      exit(EXIT_FAILURE);
-    }
-  }
-
-  return fp;
-}
-
-/* If TEMPNAME, the result is in the temporary file TEMPNAME even
-   though the user wanted it in NAME, so rename TEMPNAME to NAME.
-   Report an error and exit if there is trouble.  Also, free TEMPNAME.  */
-static void
-rename_dest(char *tempname, char const *name)
-{
-  if (tempname) {
-    if (rename(tempname, name) != 0) {
-      int rename_errno = errno;
-      remove(tempname);
-      fprintf(stderr, _("%s: rename to %s/%s: %s\n"),
-	      progname, directory, name, strerror(rename_errno));
-      exit(EXIT_FAILURE);
-    }
-    free(tempname);
-  }
-}
-
-/* Create symlink contents suitable for symlinking FROM to TO, as a
-   freshly allocated string.  FROM should be a relative file name, and
-   is relative to the global variable DIRECTORY.  TO can be either
-   relative or absolute.  */
-static char *
-relname(char const *target, char const *linkname)
-{
-  size_t i, taillen, dir_len = 0, dotdots = 0;
-  ptrdiff_t dotdotetcsize, linksize = INDEX_MAX;
-  char const *f = target;
-  char *result = NULL;
-  if (*linkname == '/') {
-    /* Make F absolute too.  */
-    size_t len = strlen(directory);
-    size_t lenslash = len + (len && directory[len - 1] != '/');
-    size_t targetsize = strlen(target) + 1;
-    linksize = size_sum(lenslash, targetsize);
-    f = result = emalloc(linksize);
-    memcpy(result, directory, len);
-    result[len] = '/';
-    memcpy(result + lenslash, target, targetsize);
-  }
-  for (i = 0; f[i] && f[i] == linkname[i]; i++)
-    if (f[i] == '/')
-      dir_len = i + 1;
-  for (; linkname[i]; i++)
-    dotdots += linkname[i] == '/' && linkname[i - 1] != '/';
-  taillen = strlen(f + dir_len);
-  dotdotetcsize = size_sum(size_product(dotdots, 3), taillen + 1);
-  if (dotdotetcsize <= linksize) {
-    if (!result)
-      result = emalloc(dotdotetcsize);
-    for (i = 0; i < dotdots; i++)
-      memcpy(result + 3 * i, "../", 3);
-    memmove(result + 3 * dotdots, f + dir_len, taillen + 1);
-  }
-  return result;
-}
-
-static void
-dolink(char const *target, char const *linkname, bool staysymlink)
-{
-	bool linkdirs_made = false;
-	int link_errno;
-	char *tempname = NULL;
-	char const *outname = linkname;
-
-	check_for_signal();
-
-	if (strcmp(target, "-") == 0) {
-	  if (remove(linkname) == 0 || errno == ENOENT || errno == ENOTDIR)
-	    return;
-	  else {
-	    char const *e = strerror(errno);
-	    fprintf(stderr, _("%s: Can't remove %s/%s: %s\n"),
-		    progname, directory, linkname, e);
-	    exit(EXIT_FAILURE);
-	  }
-	}
-
-	while (true) {
-	  if (linkat(AT_FDCWD, target, AT_FDCWD, outname, AT_SYMLINK_FOLLOW)
-	      == 0) {
-	    link_errno = 0;
-	    break;
-	  }
-	  link_errno = errno;
-	  if (link_errno == EXDEV || link_errno == ENOTSUP)
-	    break;
-
-	  if (link_errno == EEXIST) {
-	    staysymlink &= !tempname;
-	    random_dirent(&outname, &tempname);
-	    if (staysymlink && itssymlink(linkname))
-	      break;
-	  } else if (link_errno == ENOENT && !linkdirs_made) {
-	    mkdirs(linkname, true);
-	    linkdirs_made = true;
-	  } else {
-	    fprintf(stderr, _("%s: Can't link %s/%s to %s/%s: %s\n"),
-		    progname, directory, target, directory, outname,
-		    strerror(link_errno));
-	    exit(EXIT_FAILURE);
-	  }
-	}
-	if (link_errno != 0) {
-	  bool absolute = *target == '/';
-	  char *linkalloc = absolute ? NULL : relname(target, linkname);
-	  char const *contents = absolute ? target : linkalloc;
-	  int symlink_errno;
-
-	  while (true) {
-	    if (symlink(contents, outname) == 0) {
-	      symlink_errno = 0;
-	      break;
-	    }
-	    symlink_errno = errno;
-	    if (symlink_errno == EEXIST)
-	      random_dirent(&outname, &tempname);
-	    else if (symlink_errno == ENOENT && !linkdirs_made) {
-	      mkdirs(linkname, true);
-	      linkdirs_made = true;
-	    } else
-	      break;
-	  }
-	  free(linkalloc);
-	  if (symlink_errno == 0) {
-	    if (link_errno != ENOTSUP && link_errno != EEXIST)
-	      warning(_("symbolic link used because hard link failed: %s"),
-		      strerror(link_errno));
-	  } else {
-	    FILE *fp, *tp;
-	    int c;
-	    fp = fopen(target, "rb");
-	    if (!fp) {
-	      char const *e = strerror(errno);
-	      fprintf(stderr, _("%s: Can't read %s/%s: %s\n"),
-		      progname, directory, target, e);
-	      exit(EXIT_FAILURE);
-	    }
-	    tp = open_outfile(&outname, &tempname);
-	    while ((c = getc(fp)) != EOF)
-	      putc(c, tp);
-	    close_file(tp, directory, linkname, tempname);
-	    close_file(fp, directory, target, NULL);
-	    if (link_errno != ENOTSUP)
-	      warning(_("copy used because hard link failed: %s"),
-		      strerror(link_errno));
-	    else if (symlink_errno != ENOTSUP)
-	      warning(_("copy used because symbolic link failed: %s"),
-		      strerror(symlink_errno));
-	  }
-	}
-	rename_dest(tempname, linkname);
-}
-
-/* Return true if NAME is a symbolic link.  */
-static bool
-itssymlink(char const *name)
-{
-  char c;
-  return 0 <= readlink(name, &c, 1);
-}
-
-/*
-** Associate sets of rules with zones.
-*/
-
-/*
-** Sort by rule name.
-*/
-
-static int
-rcomp(const void *cp1, const void *cp2)
-{
-  struct rule const *r1 = cp1, *r2 = cp2;
-  return strcmp(r1->r_name, r2->r_name);
-}
-
-static void
-associate(void)
-{
-	register struct zone *	zp;
-	register struct rule *	rp;
-	register ptrdiff_t i, j, base, out;
-
-	if (1 < nrules) {
-		qsort(rules, nrules, sizeof *rules, rcomp);
-		for (i = 0; i < nrules - 1; ++i) {
-			if (strcmp(rules[i].r_name,
-				rules[i + 1].r_name) != 0)
-					continue;
-			if (rules[i].r_filenum == rules[i + 1].r_filenum)
-					continue;
-			eat(rules[i].r_filenum, rules[i].r_linenum);
-			warning(_("same rule name in multiple files"));
-			eat(rules[i + 1].r_filenum, rules[i + 1].r_linenum);
-			warning(_("same rule name in multiple files"));
-			for (j = i + 2; j < nrules; ++j) {
-				if (strcmp(rules[i].r_name,
-					rules[j].r_name) != 0)
-						break;
-				if (rules[i].r_filenum == rules[j].r_filenum)
-						continue;
-				if (rules[i + 1].r_filenum
-				    == rules[j].r_filenum)
-						continue;
-				break;
-			}
-			i = j - 1;
-		}
-	}
-	for (i = 0; i < nzones; ++i) {
-		zp = &zones[i];
-		zp->z_rules = NULL;
-		zp->z_nrules = 0;
-	}
-	for (base = 0; base < nrules; base = out) {
-		rp = &rules[base];
-		for (out = base + 1; out < nrules; ++out)
-			if (strcmp(rp->r_name, rules[out].r_name) != 0)
-				break;
-		for (i = 0; i < nzones; ++i) {
-			zp = &zones[i];
-			if (strcmp(zp->z_rule, rp->r_name) != 0)
-				continue;
-			zp->z_rules = rp;
-			zp->z_nrules = out - base;
-		}
-	}
-	for (i = 0; i < nzones; ++i) {
-		zp = &zones[i];
-		if (zp->z_nrules == 0) {
-			/*
-			** Maybe we have a local standard time offset.
-			*/
-			eat(zp->z_filenum, zp->z_linenum);
-			zp->z_save = getsave(zp->z_rule, &zp->z_isdst);
-			/*
-			** Note, though, that if there's no rule,
-			** a '%s' in the format is a bad thing.
-			*/
-			if (zp->z_format_specifier == 's')
-				error("%s", _("%s in ruleless zone"));
-		}
-	}
-	if (errors)
-		exit(EXIT_FAILURE);
-}
-
-/* Read a text line from FP into BUF, which is of size BUFSIZE.
-   Terminate it with a NUL byte instead of a newline.
-   Return true if successful, false if EOF.
-   On error, report the error and exit.  */
-static bool
-inputline(FILE *fp, char *buf, ptrdiff_t bufsize)
-{
-  ptrdiff_t linelen = 0, ch;
-  while ((ch = getc(fp)) != '\n') {
-    if (ch < 0) {
-      if (ferror(fp)) {
-	error(_("input error"));
-	exit(EXIT_FAILURE);
-      }
-      if (linelen == 0)
-	return false;
-      error(_("unterminated line"));
-      exit(EXIT_FAILURE);
-    }
-    if (!ch) {
-      error(_("NUL input byte"));
-      exit(EXIT_FAILURE);
-    }
-    buf[linelen++] = ch;
-    if (linelen == bufsize) {
-      error(_("line too long"));
-      exit(EXIT_FAILURE);
-    }
-  }
-  buf[linelen] = '\0';
-  return true;
-}
-
-static void
-infile(int fnum, char const *name)
-{
-	register FILE *			fp;
-	register const struct lookup *	lp;
-	register bool			wantcont;
-	register lineno			num;
-
-	if (strcmp(name, "-") == 0) {
-		fp = stdin;
-	} else if ((fp = fopen(name, "r")) == NULL) {
-		const char *e = strerror(errno);
-
-		fprintf(stderr, _("%s: Can't open %s: %s\n"),
-			progname, name, e);
-		exit(EXIT_FAILURE);
-	}
-	wantcont = false;
-	for (num = 1; ; ++num) {
-		enum { bufsize_bound
-		  = (min(INT_MAX, INDEX_MAX) / FORMAT_LEN_GROWTH_BOUND) };
-		char buf[min(_POSIX2_LINE_MAX, bufsize_bound)];
-		int nfields;
-		char *fields[MAX_FIELDS];
-		eat(fnum, num);
-		if (!inputline(fp, buf, sizeof buf))
-		  break;
-		nfields = getfields(buf, fields,
-				    sizeof fields / sizeof *fields);
-		if (nfields == 0) {
-			/* nothing to do */
-		} else if (wantcont) {
-			wantcont = inzcont(fields, nfields);
-		} else {
-			struct lookup const *line_codes
-			  = fnum < 0 ? leap_line_codes : zi_line_codes;
-			lp = byword(fields[0], line_codes);
-			if (lp == NULL)
-				error(_("input line of unknown type"));
-			else switch (lp->l_value) {
-				case LC_RULE:
-					inrule(fields, nfields);
-					wantcont = false;
-					break;
-				case LC_ZONE:
-					wantcont = inzone(fields, nfields);
-					break;
-				case LC_LINK:
-					inlink(fields, nfields);
-					wantcont = false;
-					break;
-				case LC_LEAP:
-					inleap(fields, nfields);
-					wantcont = false;
-					break;
-				case LC_EXPIRES:
-					inexpires(fields, nfields);
-					wantcont = false;
-					break;
-				default: unreachable();
-			}
-		}
-	}
-	close_file(fp, NULL, filename(fnum), NULL);
-	if (wantcont)
-		error(_("expected continuation line not found"));
-}
-
-/*
-** Convert a string of one of the forms
-**	h	-h	hh:mm	-hh:mm	hh:mm:ss	-hh:mm:ss
-** into a number of seconds.
-** A null string maps to zero.
-** Call error with errstring and return zero on errors.
-*/
-
-static zic_t
-gethms(char const *string, char const *errstring)
-{
-	zic_t	hh;
-	int sign, mm = 0, ss = 0;
-	char hhx, mmx, ssx, xr = '0', xs;
-	int tenths = 0;
-	bool ok = true;
-
-	if (string == NULL || *string == '\0')
-		return 0;
-	if (*string == '-') {
-		sign = -1;
-		++string;
-	} else	sign = 1;
-	switch (sscanf(string,
-		       "%"SCNdZIC"%c%d%c%d%c%1d%*[0]%c%*[0123456789]%c",
-		       &hh, &hhx, &mm, &mmx, &ss, &ssx, &tenths, &xr, &xs)) {
-	  default: ok = false; break;
-	  case 8:
-	    ok = '0' <= xr && xr <= '9';
-	    ATTRIBUTE_FALLTHROUGH;
-	  case 7:
-	    ok &= ssx == '.';
-	    if (ok && noise)
-	      warning(_("fractional seconds rejected by"
-			" pre-2018 versions of zic"));
-	    ATTRIBUTE_FALLTHROUGH;
-	  case 5: ok &= mmx == ':'; ATTRIBUTE_FALLTHROUGH;
-	  case 3: ok &= hhx == ':'; ATTRIBUTE_FALLTHROUGH;
-	  case 1: break;
-	}
-	if (!ok) {
-			error("%s", errstring);
-			return 0;
-	}
-	if (hh < 0 ||
-		mm < 0 || mm >= MINSPERHOUR ||
-		ss < 0 || ss > SECSPERMIN) {
-			error("%s", errstring);
-			return 0;
-	}
-	if (ZIC_MAX / SECSPERHOUR < hh) {
-		error(_("time overflow"));
-		return 0;
-	}
-	ss += 5 + ((ss ^ 1) & (xr == '0')) <= tenths; /* Round to even.  */
-	if (noise && (hh > HOURSPERDAY ||
-		(hh == HOURSPERDAY && (mm != 0 || ss != 0))))
-warning(_("values over 24 hours not handled by pre-2007 versions of zic"));
-	return oadd(sign * hh * SECSPERHOUR,
-		    sign * (mm * SECSPERMIN + ss));
-}
-
-static zic_t
-getsave(char *field, bool *isdst)
-{
-  int dst = -1;
-  zic_t save;
-  ptrdiff_t fieldlen = strlen(field);
-  if (fieldlen != 0) {
-    char *ep = field + fieldlen - 1;
-    switch (*ep) {
-      case 'd': dst = 1; *ep = '\0'; break;
-      case 's': dst = 0; *ep = '\0'; break;
-    }
-  }
-  save = gethms(field, _("invalid saved time"));
-  *isdst = dst < 0 ? save != 0 : dst;
-  return save;
-}
-
-static void
-inrule(char **fields, int nfields)
-{
-	struct rule r;
-
-	if (nfields != RULE_FIELDS) {
-		error(_("wrong number of fields on Rule line"));
-		return;
-	}
-	switch (*fields[RF_NAME]) {
-	  case '\0':
-	  case ' ': case '\f': case '\n': case '\r': case '\t': case '\v':
-	  case '+': case '-':
-	  case '0': case '1': case '2': case '3': case '4':
-	  case '5': case '6': case '7': case '8': case '9':
-		error(_("Invalid rule name \"%s\""), fields[RF_NAME]);
-		return;
-	}
-	r.r_filenum = filenum;
-	r.r_linenum = linenum;
-	r.r_save = getsave(fields[RF_SAVE], &r.r_isdst);
-	if (!rulesub(&r, fields[RF_LOYEAR], fields[RF_HIYEAR],
-		     fields[RF_COMMAND], fields[RF_MONTH], fields[RF_DAY],
-		     fields[RF_TOD]))
-	  return;
-	r.r_name = estrdup(fields[RF_NAME]);
-	r.r_abbrvar = estrdup(fields[RF_ABBRVAR]);
-	if (max_abbrvar_len < strlen(r.r_abbrvar))
-		max_abbrvar_len = strlen(r.r_abbrvar);
-	rules = growalloc(rules, sizeof *rules, nrules, &nrules_alloc);
-	rules[nrules++] = r;
-}
-
-static bool
-inzone(char **fields, int nfields)
-{
-	register ptrdiff_t i;
-
-	if (nfields < ZONE_MINFIELDS || nfields > ZONE_MAXFIELDS) {
-		error(_("wrong number of fields on Zone line"));
-		return false;
-	}
-	if (lcltime != NULL && strcmp(fields[ZF_NAME], tzdefault) == 0) {
-		error(
-_("\"Zone %s\" line and -l option are mutually exclusive"),
-			tzdefault);
-		return false;
-	}
-	if (strcmp(fields[ZF_NAME], TZDEFRULES) == 0 && psxrules != NULL) {
-		error(
-_("\"Zone %s\" line and -p option are mutually exclusive"),
-			TZDEFRULES);
-		return false;
-	}
-	for (i = 0; i < nzones; ++i)
-		if (zones[i].z_name != NULL &&
-			strcmp(zones[i].z_name, fields[ZF_NAME]) == 0) {
-				error(_("duplicate zone name %s"
-					" (file \"%s\", line %"PRIdMAX")"),
-				      fields[ZF_NAME],
-				      filename(zones[i].z_filenum),
-				      zones[i].z_linenum);
-				return false;
-		}
-	return inzsub(fields, nfields, false);
-}
-
-static bool
-inzcont(char **fields, int nfields)
-{
-	if (nfields < ZONEC_MINFIELDS || nfields > ZONEC_MAXFIELDS) {
-		error(_("wrong number of fields on Zone continuation line"));
-		return false;
-	}
-	return inzsub(fields, nfields, true);
-}
-
-static bool
-inzsub(char **fields, int nfields, bool iscont)
-{
-	register char *		cp;
-	char *			cp1;
-	struct zone z;
-	int format_len;
-	register int		i_stdoff, i_rule, i_format;
-	register int		i_untilyear, i_untilmonth;
-	register int		i_untilday, i_untiltime;
-	register bool		hasuntil;
-
-	if (iscont) {
-		i_stdoff = ZFC_STDOFF;
-		i_rule = ZFC_RULE;
-		i_format = ZFC_FORMAT;
-		i_untilyear = ZFC_TILYEAR;
-		i_untilmonth = ZFC_TILMONTH;
-		i_untilday = ZFC_TILDAY;
-		i_untiltime = ZFC_TILTIME;
-	} else if (!namecheck(fields[ZF_NAME]))
-		return false;
-	else {
-		i_stdoff = ZF_STDOFF;
-		i_rule = ZF_RULE;
-		i_format = ZF_FORMAT;
-		i_untilyear = ZF_TILYEAR;
-		i_untilmonth = ZF_TILMONTH;
-		i_untilday = ZF_TILDAY;
-		i_untiltime = ZF_TILTIME;
-	}
-	z.z_filenum = filenum;
-	z.z_linenum = linenum;
-	z.z_stdoff = gethms(fields[i_stdoff], _("invalid UT offset"));
-	if ((cp = strchr(fields[i_format], '%')) != 0) {
-		if ((*++cp != 's' && *cp != 'z') || strchr(cp, '%')
-		    || strchr(fields[i_format], '/')) {
-			error(_("invalid abbreviation format"));
-			return false;
-		}
-	}
-	z.z_format_specifier = cp ? *cp : '\0';
-	format_len = strlen(fields[i_format]);
-	if (max_format_len < format_len)
-	  max_format_len = format_len;
-	hasuntil = nfields > i_untilyear;
-	if (hasuntil) {
-		z.z_untilrule.r_filenum = filenum;
-		z.z_untilrule.r_linenum = linenum;
-		if (!rulesub(
-			&z.z_untilrule,
-			fields[i_untilyear],
-			"only",
-			"",
-			(nfields > i_untilmonth) ?
-			fields[i_untilmonth] : "Jan",
-			(nfields > i_untilday) ? fields[i_untilday] : "1",
-			(nfields > i_untiltime) ? fields[i_untiltime] : "0"))
-		  return false;
-		z.z_untiltime = rpytime(&z.z_untilrule,
-			z.z_untilrule.r_loyear);
-		if (iscont && nzones > 0 &&
-			z.z_untiltime > min_time &&
-			z.z_untiltime < max_time &&
-			zones[nzones - 1].z_untiltime > min_time &&
-			zones[nzones - 1].z_untiltime < max_time &&
-			zones[nzones - 1].z_untiltime >= z.z_untiltime) {
-				error(_(
-"Zone continuation line end time is not after end time of previous line"
-					));
-				return false;
-		}
-	}
-	z.z_name = iscont ? NULL : estrdup(fields[ZF_NAME]);
-	z.z_rule = estrdup(fields[i_rule]);
-	z.z_format = cp1 = estrdup(fields[i_format]);
-	if (z.z_format_specifier == 'z') {
-	  cp1[cp - fields[i_format]] = 's';
-	  if (noise)
-	    warning(_("format '%s' not handled by pre-2015 versions of zic"),
-		    fields[i_format]);
-	}
-	zones = growalloc(zones, sizeof *zones, nzones, &nzones_alloc);
-	zones[nzones++] = z;
-	/*
-	** If there was an UNTIL field on this line,
-	** there's more information about the zone on the next line.
-	*/
-	return hasuntil;
-}
-
-static zic_t
-getleapdatetime(char **fields, bool expire_line)
-{
-	register const char *		cp;
-	register const struct lookup *	lp;
-	register zic_t			i, j;
-	zic_t				year;
-	int				month, day;
-	zic_t				dayoff, tod;
-	zic_t				t;
-	char xs;
-
-	dayoff = 0;
-	cp = fields[LP_YEAR];
-	if (sscanf(cp, "%"SCNdZIC"%c", &year, &xs) != 1) {
-		/*
-		** Leapin' Lizards!
-		*/
-		error(_("invalid leaping year"));
-		return -1;
-	}
-	if (!expire_line) {
-	    if (!leapseen || leapmaxyear < year)
-		leapmaxyear = year;
-	    if (!leapseen || leapminyear > year)
-		leapminyear = year;
-	    leapseen = true;
-	}
-	j = EPOCH_YEAR;
-	while (j != year) {
-		if (year > j) {
-			i = len_years[isleap(j)];
-			++j;
-		} else {
-			--j;
-			i = -len_years[isleap(j)];
-		}
-		dayoff = oadd(dayoff, i);
-	}
-	if ((lp = byword(fields[LP_MONTH], mon_names)) == NULL) {
-		error(_("invalid month name"));
-		return -1;
-	}
-	month = lp->l_value;
-	j = TM_JANUARY;
-	while (j != month) {
-		i = len_months[isleap(year)][j];
-		dayoff = oadd(dayoff, i);
-		++j;
-	}
-	cp = fields[LP_DAY];
-	if (sscanf(cp, "%d%c", &day, &xs) != 1 ||
-		day <= 0 || day > len_months[isleap(year)][month]) {
-			error(_("invalid day of month"));
-			return -1;
-	}
-	dayoff = oadd(dayoff, day - 1);
-	if (dayoff < min_time / SECSPERDAY) {
-		error(_("time too small"));
-		return -1;
-	}
-	if (dayoff > max_time / SECSPERDAY) {
-		error(_("time too large"));
-		return -1;
-	}
-	t = dayoff * SECSPERDAY;
-	tod = gethms(fields[LP_TIME], _("invalid time of day"));
-	t = tadd(t, tod);
-	if (t < 0)
-	  error(_("leap second precedes Epoch"));
-	return t;
-}
-
-static void
-inleap(char **fields, int nfields)
-{
-  if (nfields != LEAP_FIELDS)
-    error(_("wrong number of fields on Leap line"));
-  else {
-    zic_t t = getleapdatetime(fields, false);
-    if (0 <= t) {
-      struct lookup const *lp = byword(fields[LP_ROLL], leap_types);
-      if (!lp)
-	error(_("invalid Rolling/Stationary field on Leap line"));
-      else {
-	int correction = 0;
-	if (!fields[LP_CORR][0]) /* infile() turns "-" into "".  */
-	  correction = -1;
-	else if (strcmp(fields[LP_CORR], "+") == 0)
-	  correction = 1;
-	else
-	  error(_("invalid CORRECTION field on Leap line"));
-	if (correction)
-	  leapadd(t, correction, lp->l_value);
-      }
-    }
-  }
-}
-
-static void
-inexpires(char **fields, int nfields)
-{
-  if (nfields != EXPIRES_FIELDS)
-    error(_("wrong number of fields on Expires line"));
-  else if (0 <= leapexpires)
-    error(_("multiple Expires lines"));
-  else
-    leapexpires = getleapdatetime(fields, true);
-}
-
-static void
-inlink(char **fields, int nfields)
-{
-	struct link	l;
-
-	if (nfields != LINK_FIELDS) {
-		error(_("wrong number of fields on Link line"));
-		return;
-	}
-	if (*fields[LF_TARGET] == '\0') {
-		error(_("blank TARGET field on Link line"));
-		return;
-	}
-	if (! namecheck(fields[LF_LINKNAME]))
-	  return;
-	l.l_filenum = filenum;
-	l.l_linenum = linenum;
-	l.l_target = estrdup(fields[LF_TARGET]);
-	l.l_linkname = estrdup(fields[LF_LINKNAME]);
-	links = growalloc(links, sizeof *links, nlinks, &nlinks_alloc);
-	links[nlinks++] = l;
-}
-
-static bool
-rulesub(struct rule *rp, const char *loyearp, const char *hiyearp,
-	const char *typep, const char *monthp, const char *dayp,
-	const char *timep)
-{
-	register const struct lookup *	lp;
-	register const char *		cp;
-	register char *			dp;
-	register char *			ep;
-	char xs;
-
-	if ((lp = byword(monthp, mon_names)) == NULL) {
-		error(_("invalid month name"));
-		return false;
-	}
-	rp->r_month = lp->l_value;
-	rp->r_todisstd = false;
-	rp->r_todisut = false;
-	dp = estrdup(timep);
-	if (*dp != '\0') {
-		ep = dp + strlen(dp) - 1;
-		switch (lowerit(*ep)) {
-			case 's':	/* Standard */
-				rp->r_todisstd = true;
-				rp->r_todisut = false;
-				*ep = '\0';
-				break;
-			case 'w':	/* Wall */
-				rp->r_todisstd = false;
-				rp->r_todisut = false;
-				*ep = '\0';
-				break;
-			case 'g':	/* Greenwich */
-			case 'u':	/* Universal */
-			case 'z':	/* Zulu */
-				rp->r_todisstd = true;
-				rp->r_todisut = true;
-				*ep = '\0';
-				break;
-		}
-	}
-	rp->r_tod = gethms(dp, _("invalid time of day"));
-	free(dp);
-	/*
-	** Year work.
-	*/
-	cp = loyearp;
-	lp = byword(cp, begin_years);
-	rp->r_lowasnum = lp == NULL;
-	if (!rp->r_lowasnum) switch (lp->l_value) {
-		case YR_MINIMUM:
-			rp->r_loyear = ZIC_MIN;
-			break;
-		case YR_MAXIMUM:
-			rp->r_loyear = ZIC_MAX;
-			break;
-		default: unreachable();
-	} else if (sscanf(cp, "%"SCNdZIC"%c", &rp->r_loyear, &xs) != 1) {
-		error(_("invalid starting year"));
-		return false;
-	}
-	cp = hiyearp;
-	lp = byword(cp, end_years);
-	rp->r_hiwasnum = lp == NULL;
-	if (!rp->r_hiwasnum) switch (lp->l_value) {
-		case YR_MINIMUM:
-			rp->r_hiyear = ZIC_MIN;
-			break;
-		case YR_MAXIMUM:
-			rp->r_hiyear = ZIC_MAX;
-			break;
-		case YR_ONLY:
-			rp->r_hiyear = rp->r_loyear;
-			break;
-		default: unreachable();
-	} else if (sscanf(cp, "%"SCNdZIC"%c", &rp->r_hiyear, &xs) != 1) {
-		error(_("invalid ending year"));
-		return false;
-	}
-	if (rp->r_loyear > rp->r_hiyear) {
-		error(_("starting year greater than ending year"));
-		return false;
-	}
-	if (*typep != '\0') {
-		error(_("year type \"%s\" is unsupported; use \"-\" instead"),
-			typep);
-		return false;
-	}
-	/*
-	** Day work.
-	** Accept things such as:
-	**	1
-	**	lastSunday
-	**	last-Sunday (undocumented; warn about this)
-	**	Sun<=20
-	**	Sun>=7
-	*/
-	dp = estrdup(dayp);
-	if ((lp = byword(dp, lasts)) != NULL) {
-		rp->r_dycode = DC_DOWLEQ;
-		rp->r_wday = lp->l_value;
-		rp->r_dayofmonth = len_months[1][rp->r_month];
-	} else {
-		if ((ep = strchr(dp, '<')) != 0)
-			rp->r_dycode = DC_DOWLEQ;
-		else if ((ep = strchr(dp, '>')) != 0)
-			rp->r_dycode = DC_DOWGEQ;
-		else {
-			ep = dp;
-			rp->r_dycode = DC_DOM;
-		}
-		if (rp->r_dycode != DC_DOM) {
-			*ep++ = 0;
-			if (*ep++ != '=') {
-				error(_("invalid day of month"));
-				free(dp);
-				return false;
-			}
-			if ((lp = byword(dp, wday_names)) == NULL) {
-				error(_("invalid weekday name"));
-				free(dp);
-				return false;
-			}
-			rp->r_wday = lp->l_value;
-		}
-		if (sscanf(ep, "%d%c", &rp->r_dayofmonth, &xs) != 1 ||
-			rp->r_dayofmonth <= 0 ||
-			(rp->r_dayofmonth > len_months[1][rp->r_month])) {
-				error(_("invalid day of month"));
-				free(dp);
-				return false;
-		}
-	}
-	free(dp);
-	return true;
-}
-
-static void
-convert(uint_fast32_t val, char *buf)
-{
-	register int	i;
-	register int	shift;
-	unsigned char *const b = (unsigned char *) buf;
-
-	for (i = 0, shift = 24; i < 4; ++i, shift -= 8)
-	  b[i] = (val >> shift) & 0xff;
-}
-
-static void
-convert64(uint_fast64_t val, char *buf)
-{
-	register int	i;
-	register int	shift;
-	unsigned char *const b = (unsigned char *) buf;
-
-	for (i = 0, shift = 56; i < 8; ++i, shift -= 8)
-	  b[i] = (val >> shift) & 0xff;
-}
-
-static void
-puttzcode(zic_t val, FILE *fp)
-{
-	char	buf[4];
-
-	convert(val, buf);
-	fwrite(buf, sizeof buf, 1, fp);
-}
-
-static void
-puttzcodepass(zic_t val, FILE *fp, int pass)
-{
-  if (pass == 1)
-    puttzcode(val, fp);
-  else {
-	char	buf[8];
-
-	convert64(val, buf);
-	fwrite(buf, sizeof buf, 1, fp);
-  }
-}
-
-static int
-atcomp(const void *avp, const void *bvp)
-{
-  struct attype const *ap = avp, *bp = bvp;
-  zic_t a = ap->at, b = bp->at;
-  return a < b ? -1 : a > b;
-}
-
-struct timerange {
-  int defaulttype;
-  ptrdiff_t base, count;
-  int leapbase, leapcount;
-  bool leapexpiry;
-};
-
-static struct timerange
-limitrange(struct timerange r, zic_t lo, zic_t hi,
-	   zic_t const *ats, unsigned char const *types)
-{
-  /* Omit ordinary transitions < LO.  */
-  while (0 < r.count && ats[r.base] < lo) {
-    r.defaulttype = types[r.base];
-    r.count--;
-    r.base++;
-  }
-
-  /* Omit as many initial leap seconds as possible, such that the
-     first leap second in the truncated list is <= LO, and is a
-     positive leap second if and only if it has a positive correction.
-     This supports common TZif readers that assume that the first leap
-     second is positive if and only if its correction is positive.  */
-  while (1 < r.leapcount && trans[r.leapbase + 1] <= lo) {
-    r.leapcount--;
-    r.leapbase++;
-  }
-  while (0 < r.leapbase
-	 && ((corr[r.leapbase - 1] < corr[r.leapbase])
-	     != (0 < corr[r.leapbase]))) {
-    r.leapcount++;
-    r.leapbase--;
-  }
-
-
-  /* Omit ordinary and leap second transitions greater than HI + 1.  */
-  if (hi < max_time) {
-    while (0 < r.count && hi + 1 < ats[r.base + r.count - 1])
-      r.count--;
-    while (0 < r.leapcount && hi + 1 < trans[r.leapbase + r.leapcount - 1])
-      r.leapcount--;
-  }
-
-  /* Determine whether to append an expiration to the leap second table.  */
-  r.leapexpiry = 0 <= leapexpires && leapexpires - 1 <= hi;
-
-  return r;
-}
-
-static void
-writezone(const char *const name, const char *const string, char version,
-	  int defaulttype)
-{
-	register FILE *			fp;
-	register ptrdiff_t		i, j;
-	register int			pass;
-	char *tempname = NULL;
-	char const *outname = name;
-
-	/* Allocate the ATS and TYPES arrays via a single malloc,
-	   as this is a bit faster.  Do not malloc(0) if !timecnt,
-	   as that might return NULL even on success.  */
-	zic_t *ats = emalloc(align_to(size_product(timecnt + !timecnt,
-						   sizeof *ats + 1),
-				      alignof(zic_t)));
-	void *typesptr = ats + timecnt;
-	unsigned char *types = typesptr;
-	struct timerange rangeall = {0}, range32, range64;
-
-	/*
-	** Sort.
-	*/
-	if (timecnt > 1)
-		qsort(attypes, timecnt, sizeof *attypes, atcomp);
-	/*
-	** Optimize.
-	*/
-	{
-		ptrdiff_t fromi, toi;
-
-		toi = 0;
-		fromi = 0;
-		for ( ; fromi < timecnt; ++fromi) {
-			if (toi != 0
-			    && ((attypes[fromi].at
-				 + utoffs[attypes[toi - 1].type])
-				<= (attypes[toi - 1].at
-				    + utoffs[toi == 1 ? 0
-					     : attypes[toi - 2].type]))) {
-					attypes[toi - 1].type =
-						attypes[fromi].type;
-					continue;
-			}
-			if (toi == 0
-			    || attypes[fromi].dontmerge
-			    || (utoffs[attypes[toi - 1].type]
-				!= utoffs[attypes[fromi].type])
-			    || (isdsts[attypes[toi - 1].type]
-				!= isdsts[attypes[fromi].type])
-			    || (desigidx[attypes[toi - 1].type]
-				!= desigidx[attypes[fromi].type]))
-					attypes[toi++] = attypes[fromi];
-		}
-		timecnt = toi;
-	}
-
-	if (noise && timecnt > 1200) {
-	  if (timecnt > TZ_MAX_TIMES)
-		warning(_("reference clients mishandle"
-			  " more than %d transition times"),
-			TZ_MAX_TIMES);
-	  else
-		warning(_("pre-2014 clients may mishandle"
-			  " more than 1200 transition times"));
-	}
-	/*
-	** Transfer.
-	*/
-	for (i = 0; i < timecnt; ++i) {
-		ats[i] = attypes[i].at;
-		types[i] = attypes[i].type;
-	}
-
-	/*
-	** Correct for leap seconds.
-	*/
-	for (i = 0; i < timecnt; ++i) {
-		j = leapcnt;
-		while (--j >= 0)
-			if (ats[i] > trans[j] - corr[j]) {
-				ats[i] = tadd(ats[i], corr[j]);
-				break;
-			}
-	}
-
-	rangeall.defaulttype = defaulttype;
-	rangeall.count = timecnt;
-	rangeall.leapcount = leapcnt;
-	range64 = limitrange(rangeall, lo_time,
-			     max(hi_time,
-				 redundant_time - (ZIC_MIN < redundant_time)),
-			     ats, types);
-	range32 = limitrange(range64, ZIC32_MIN, ZIC32_MAX, ats, types);
-
-	/* TZif version 4 is needed if a no-op transition is appended to
-	   indicate the expiration of the leap second table, or if the first
-	   leap second transition is not to a +1 or -1 correction.  */
-	for (pass = 1; pass <= 2; pass++) {
-	  struct timerange const *r = pass == 1 ? &range32 : &range64;
-	  if (pass == 1 && !want_bloat())
-	    continue;
-	  if (r->leapexpiry) {
-	    if (noise)
-	      warning(_("%s: pre-2021b clients may mishandle"
-			" leap second expiry"),
-		      name);
-	    version = '4';
-	  }
-	  if (0 < r->leapcount
-	      && corr[r->leapbase] != 1 && corr[r->leapbase] != -1) {
-	    if (noise)
-	      warning(_("%s: pre-2021b clients may mishandle"
-			" leap second table truncation"),
-		      name);
-	    version = '4';
-	  }
-	  if (version == '4')
-	    break;
-	}
-
-	fp = open_outfile(&outname, &tempname);
-
-	for (pass = 1; pass <= 2; ++pass) {
-		register ptrdiff_t thistimei, thistimecnt, thistimelim;
-		register int	thisleapi, thisleapcnt, thisleaplim;
-		struct tzhead tzh;
-		int pretranstype = -1, thisdefaulttype;
-		bool locut, hicut, thisleapexpiry;
-		zic_t lo, thismin, thismax;
-		int old0;
-		char		omittype[TZ_MAX_TYPES];
-		int		typemap[TZ_MAX_TYPES];
-		int		thistypecnt, stdcnt, utcnt;
-		char		thischars[TZ_MAX_CHARS];
-		int		thischarcnt;
-		bool		toomanytimes;
-		int		indmap[TZ_MAX_CHARS];
-
-		if (pass == 1) {
-			thisdefaulttype = range32.defaulttype;
-			thistimei = range32.base;
-			thistimecnt = range32.count;
-			toomanytimes = thistimecnt >> 31 >> 1 != 0;
-			thisleapi = range32.leapbase;
-			thisleapcnt = range32.leapcount;
-			thisleapexpiry = range32.leapexpiry;
-			thismin = ZIC32_MIN;
-			thismax = ZIC32_MAX;
-		} else {
-			thisdefaulttype = range64.defaulttype;
-			thistimei = range64.base;
-			thistimecnt = range64.count;
-			toomanytimes = thistimecnt >> 31 >> 31 >> 2 != 0;
-			thisleapi = range64.leapbase;
-			thisleapcnt = range64.leapcount;
-			thisleapexpiry = range64.leapexpiry;
-			thismin = min_time;
-			thismax = max_time;
-		}
-		if (toomanytimes)
-		  error(_("too many transition times"));
-
-		locut = thismin < lo_time && lo_time <= thismax;
-		hicut = thismin <= hi_time && hi_time < thismax;
-		thistimelim = thistimei + thistimecnt;
-		memset(omittype, true, typecnt);
-
-		/* Determine whether to output a transition before the first
-		   transition in range.  This is needed when the output is
-		   truncated at the start, and is also useful when catering to
-		   buggy 32-bit clients that do not use time type 0 for
-		   timestamps before the first transition.  */
-		if ((locut || (pass == 1 && thistimei))
-		    && ! (thistimecnt && ats[thistimei] == lo_time)) {
-		  pretranstype = thisdefaulttype;
-		  omittype[pretranstype] = false;
-		}
-
-		/* Arguably the default time type in the 32-bit data
-		   should be range32.defaulttype, which is suited for
-		   timestamps just before ZIC32_MIN.  However, zic
-		   traditionally used the time type of the indefinite
-		   past instead.  Internet RFC 8532 says readers should
-		   ignore 32-bit data, so this discrepancy matters only
-		   to obsolete readers where the traditional type might
-		   be more appropriate even if it's "wrong".  So, use
-		   the historical zic value, unless -r specifies a low
-		   cutoff that excludes some 32-bit timestamps.  */
-		if (pass == 1 && lo_time <= thismin)
-		  thisdefaulttype = range64.defaulttype;
-
-		if (locut)
-		  thisdefaulttype = unspecifiedtype;
-		omittype[thisdefaulttype] = false;
-		for (i = thistimei; i < thistimelim; i++)
-		  omittype[types[i]] = false;
-		if (hicut)
-		  omittype[unspecifiedtype] = false;
-
-		/* Reorder types to make THISDEFAULTTYPE type 0.
-		   Use TYPEMAP to swap OLD0 and THISDEFAULTTYPE so that
-		   THISDEFAULTTYPE appears as type 0 in the output instead
-		   of OLD0.  TYPEMAP also omits unused types.  */
-		old0 = strlen(omittype);
-
-#ifndef LEAVE_SOME_PRE_2011_SYSTEMS_IN_THE_LURCH
-		/*
-		** For some pre-2011 systems: if the last-to-be-written
-		** standard (or daylight) type has an offset different from the
-		** most recently used offset,
-		** append an (unused) copy of the most recently used type
-		** (to help get global "altzone" and "timezone" variables
-		** set correctly).
-		*/
-		if (want_bloat()) {
-			register int	mrudst, mrustd, hidst, histd, type;
-
-			hidst = histd = mrudst = mrustd = -1;
-			if (0 <= pretranstype) {
-			  if (isdsts[pretranstype])
-			    mrudst = pretranstype;
-			  else
-			    mrustd = pretranstype;
-			}
-			for (i = thistimei; i < thistimelim; i++)
-				if (isdsts[types[i]])
-					mrudst = types[i];
-				else	mrustd = types[i];
-			for (i = old0; i < typecnt; i++) {
-			  int h = (i == old0 ? thisdefaulttype
-				   : i == thisdefaulttype ? old0 : i);
-			  if (!omittype[h]) {
-			    if (isdsts[h])
-			      hidst = i;
-			    else
-			      histd = i;
-			  }
-			}
-			if (hidst >= 0 && mrudst >= 0 && hidst != mrudst &&
-				utoffs[hidst] != utoffs[mrudst]) {
-					isdsts[mrudst] = -1;
-					type = addtype(utoffs[mrudst],
-						&chars[desigidx[mrudst]],
-						true,
-						ttisstds[mrudst],
-						ttisuts[mrudst]);
-					isdsts[mrudst] = 1;
-					omittype[type] = false;
-			}
-			if (histd >= 0 && mrustd >= 0 && histd != mrustd &&
-				utoffs[histd] != utoffs[mrustd]) {
-					isdsts[mrustd] = -1;
-					type = addtype(utoffs[mrustd],
-						&chars[desigidx[mrustd]],
-						false,
-						ttisstds[mrustd],
-						ttisuts[mrustd]);
-					isdsts[mrustd] = 0;
-					omittype[type] = false;
-			}
-		}
-#endif /* !defined LEAVE_SOME_PRE_2011_SYSTEMS_IN_THE_LURCH */
-		thistypecnt = 0;
-		for (i = old0; i < typecnt; i++)
-		  if (!omittype[i])
-		    typemap[i == old0 ? thisdefaulttype
-			    : i == thisdefaulttype ? old0 : i]
-		      = thistypecnt++;
-
-		for (i = 0; i < sizeof indmap / sizeof indmap[0]; ++i)
-			indmap[i] = -1;
-		thischarcnt = stdcnt = utcnt = 0;
-		for (i = old0; i < typecnt; i++) {
-			register char *	thisabbr;
-
-			if (omittype[i])
-				continue;
-			if (ttisstds[i])
-			  stdcnt = thistypecnt;
-			if (ttisuts[i])
-			  utcnt = thistypecnt;
-			if (indmap[desigidx[i]] >= 0)
-				continue;
-			thisabbr = &chars[desigidx[i]];
-			for (j = 0; j < thischarcnt; ++j)
-				if (strcmp(&thischars[j], thisabbr) == 0)
-					break;
-			if (j == thischarcnt) {
-				strcpy(&thischars[thischarcnt], thisabbr);
-				thischarcnt += strlen(thisabbr) + 1;
-			}
-			indmap[desigidx[i]] = j;
-		}
-		if (pass == 1 && !want_bloat()) {
-		  hicut = thisleapexpiry = false;
-		  pretranstype = -1;
-		  thistimecnt = thisleapcnt = 0;
-		  thistypecnt = thischarcnt = 1;
-		}
-#define DO(field)	fwrite(tzh.field, sizeof tzh.field, 1, fp)
-		memset(&tzh, 0, sizeof tzh);
-		memcpy(tzh.tzh_magic, TZ_MAGIC, sizeof tzh.tzh_magic);
-		tzh.tzh_version[0] = version;
-		convert(utcnt, tzh.tzh_ttisutcnt);
-		convert(stdcnt, tzh.tzh_ttisstdcnt);
-		convert(thisleapcnt + thisleapexpiry, tzh.tzh_leapcnt);
-		convert((0 <= pretranstype) + thistimecnt + hicut,
-			tzh.tzh_timecnt);
-		convert(thistypecnt, tzh.tzh_typecnt);
-		convert(thischarcnt, tzh.tzh_charcnt);
-		DO(tzh_magic);
-		DO(tzh_version);
-		DO(tzh_reserved);
-		DO(tzh_ttisutcnt);
-		DO(tzh_ttisstdcnt);
-		DO(tzh_leapcnt);
-		DO(tzh_timecnt);
-		DO(tzh_typecnt);
-		DO(tzh_charcnt);
-#undef DO
-		if (pass == 1 && !want_bloat()) {
-		  /* Output a minimal data block with just one time type.  */
-		  puttzcode(0, fp);	/* utoff */
-		  putc(0, fp);		/* dst */
-		  putc(0, fp);		/* index of abbreviation */
-		  putc(0, fp);		/* empty-string abbreviation */
-		  continue;
-		}
-
-		/* Output a LO_TIME transition if needed; see limitrange.
-		   But do not go below the minimum representable value
-		   for this pass.  */
-		lo = pass == 1 && lo_time < ZIC32_MIN ? ZIC32_MIN : lo_time;
-
-		if (0 <= pretranstype)
-		  puttzcodepass(lo, fp, pass);
-		for (i = thistimei; i < thistimelim; ++i) {
-		  puttzcodepass(ats[i], fp, pass);
-		}
-		if (hicut)
-		  puttzcodepass(hi_time + 1, fp, pass);
-		if (0 <= pretranstype)
-		  putc(typemap[pretranstype], fp);
-		for (i = thistimei; i < thistimelim; i++)
-		  putc(typemap[types[i]], fp);
-		if (hicut)
-		  putc(typemap[unspecifiedtype], fp);
-
-		for (i = old0; i < typecnt; i++) {
-		  int h = (i == old0 ? thisdefaulttype
-			   : i == thisdefaulttype ? old0 : i);
-		  if (!omittype[h]) {
-		    puttzcode(utoffs[h], fp);
-		    putc(isdsts[h], fp);
-		    putc(indmap[desigidx[h]], fp);
-		  }
-		}
-		if (thischarcnt != 0)
-			fwrite(thischars, sizeof thischars[0],
-				      thischarcnt, fp);
-		thisleaplim = thisleapi + thisleapcnt;
-		for (i = thisleapi; i < thisleaplim; ++i) {
-			register zic_t	todo;
-
-			if (roll[i]) {
-				if (timecnt == 0 || trans[i] < ats[0]) {
-					j = 0;
-					while (isdsts[j])
-						if (++j >= typecnt) {
-							j = 0;
-							break;
-						}
-				} else {
-					j = 1;
-					while (j < timecnt &&
-						trans[i] >= ats[j])
-							++j;
-					j = types[j - 1];
-				}
-				todo = tadd(trans[i], -utoffs[j]);
-			} else	todo = trans[i];
-			puttzcodepass(todo, fp, pass);
-			puttzcode(corr[i], fp);
-		}
-		if (thisleapexpiry) {
-		  /* Append a no-op leap correction indicating when the leap
-		     second table expires.  Although this does not conform to
-		     Internet RFC 8536, most clients seem to accept this and
-		     the plan is to amend the RFC to allow this in version 4
-		     TZif files.  */
-		  puttzcodepass(leapexpires, fp, pass);
-		  puttzcode(thisleaplim ? corr[thisleaplim - 1] : 0, fp);
-		}
-		if (stdcnt != 0)
-		  for (i = old0; i < typecnt; i++)
-			if (!omittype[i])
-				putc(ttisstds[i], fp);
-		if (utcnt != 0)
-		  for (i = old0; i < typecnt; i++)
-			if (!omittype[i])
-				putc(ttisuts[i], fp);
-	}
-	fprintf(fp, "\n%s\n", string);
-	close_file(fp, directory, name, tempname);
-	rename_dest(tempname, name);
-	free(ats);
-}
-
-static char const *
-abbroffset(char *buf, zic_t offset)
-{
-  char sign = '+';
-  int seconds, minutes;
-
-  if (offset < 0) {
-    offset = -offset;
-    sign = '-';
-  }
-
-  seconds = offset % SECSPERMIN;
-  offset /= SECSPERMIN;
-  minutes = offset % MINSPERHOUR;
-  offset /= MINSPERHOUR;
-  if (100 <= offset) {
-    error(_("%%z UT offset magnitude exceeds 99:59:59"));
-    return "%z";
-  } else {
-    char *p = buf;
-    *p++ = sign;
-    *p++ = '0' + offset / 10;
-    *p++ = '0' + offset % 10;
-    if (minutes | seconds) {
-      *p++ = '0' + minutes / 10;
-      *p++ = '0' + minutes % 10;
-      if (seconds) {
-	*p++ = '0' + seconds / 10;
-	*p++ = '0' + seconds % 10;
-      }
-    }
-    *p = '\0';
-    return buf;
-  }
-}
-
-static char const disable_percent_s[] = "";
-
-static ptrdiff_t
-doabbr(char *abbr, struct zone const *zp, char const *letters,
-       bool isdst, zic_t save, bool doquotes)
-{
-	register char *	cp;
-	register char *	slashp;
-	ptrdiff_t len;
-	char const *format = zp->z_format;
-
-	slashp = strchr(format, '/');
-	if (slashp == NULL) {
-	  char letterbuf[PERCENT_Z_LEN_BOUND + 1];
-	  if (zp->z_format_specifier == 'z')
-	    letters = abbroffset(letterbuf, zp->z_stdoff + save);
-	  else if (!letters)
-	    letters = "%s";
-	  else if (letters == disable_percent_s)
-	    return 0;
-	  sprintf(abbr, format, letters);
-	} else if (isdst) {
-		strcpy(abbr, slashp + 1);
-	} else {
-		memcpy(abbr, format, slashp - format);
-		abbr[slashp - format] = '\0';
-	}
-	len = strlen(abbr);
-	if (!doquotes)
-		return len;
-	for (cp = abbr; is_alpha(*cp); cp++)
-		continue;
-	if (len > 0 && *cp == '\0')
-		return len;
-	abbr[len + 2] = '\0';
-	abbr[len + 1] = '>';
-	memmove(abbr + 1, abbr, len);
-	abbr[0] = '<';
-	return len + 2;
-}
-
-static void
-updateminmax(const zic_t x)
-{
-	if (min_year > x)
-		min_year = x;
-	if (max_year < x)
-		max_year = x;
-}
-
-static int
-stringoffset(char *result, zic_t offset)
-{
-	register int	hours;
-	register int	minutes;
-	register int	seconds;
-	bool negative = offset < 0;
-	int len = negative;
-
-	if (negative) {
-		offset = -offset;
-		result[0] = '-';
-	}
-	seconds = offset % SECSPERMIN;
-	offset /= SECSPERMIN;
-	minutes = offset % MINSPERHOUR;
-	offset /= MINSPERHOUR;
-	hours = offset;
-	if (hours >= HOURSPERDAY * DAYSPERWEEK) {
-		result[0] = '\0';
-		return 0;
-	}
-	len += sprintf(result + len, "%d", hours);
-	if (minutes != 0 || seconds != 0) {
-		len += sprintf(result + len, ":%02d", minutes);
-		if (seconds != 0)
-			len += sprintf(result + len, ":%02d", seconds);
-	}
-	return len;
-}
-
-static int
-stringrule(char *result, struct rule *const rp, zic_t save, zic_t stdoff)
-{
-	register zic_t	tod = rp->r_tod;
-	register int	compat = 0;
-
-	if (rp->r_dycode == DC_DOM) {
-		register int	month, total;
-
-		if (rp->r_dayofmonth == 29 && rp->r_month == TM_FEBRUARY)
-			return -1;
-		total = 0;
-		for (month = 0; month < rp->r_month; ++month)
-			total += len_months[0][month];
-		/* Omit the "J" in Jan and Feb, as that's shorter.  */
-		if (rp->r_month <= 1)
-		  result += sprintf(result, "%d", total + rp->r_dayofmonth - 1);
-		else
-		  result += sprintf(result, "J%d", total + rp->r_dayofmonth);
-	} else {
-		register int	week;
-		register int	wday = rp->r_wday;
-		register int	wdayoff;
-
-		if (rp->r_dycode == DC_DOWGEQ) {
-			wdayoff = (rp->r_dayofmonth - 1) % DAYSPERWEEK;
-			if (wdayoff)
-				compat = 2013;
-			wday -= wdayoff;
-			tod += wdayoff * SECSPERDAY;
-			week = 1 + (rp->r_dayofmonth - 1) / DAYSPERWEEK;
-		} else if (rp->r_dycode == DC_DOWLEQ) {
-			if (rp->r_dayofmonth == len_months[1][rp->r_month])
-				week = 5;
-			else {
-				wdayoff = rp->r_dayofmonth % DAYSPERWEEK;
-				if (wdayoff)
-					compat = 2013;
-				wday -= wdayoff;
-				tod += wdayoff * SECSPERDAY;
-				week = rp->r_dayofmonth / DAYSPERWEEK;
-			}
-		} else	return -1;	/* "cannot happen" */
-		if (wday < 0)
-			wday += DAYSPERWEEK;
-		result += sprintf(result, "M%d.%d.%d",
-				  rp->r_month + 1, week, wday);
-	}
-	if (rp->r_todisut)
-	  tod += stdoff;
-	if (rp->r_todisstd && !rp->r_isdst)
-	  tod += save;
-	if (tod != 2 * SECSPERMIN * MINSPERHOUR) {
-		*result++ = '/';
-		if (! stringoffset(result, tod))
-			return -1;
-		if (tod < 0) {
-			if (compat < 2013)
-				compat = 2013;
-		} else if (SECSPERDAY <= tod) {
-			if (compat < 1994)
-				compat = 1994;
-		}
-	}
-	return compat;
-}
-
-static int
-rule_cmp(struct rule const *a, struct rule const *b)
-{
-	if (!a)
-		return -!!b;
-	if (!b)
-		return 1;
-	if (a->r_hiyear != b->r_hiyear)
-		return a->r_hiyear < b->r_hiyear ? -1 : 1;
-	if (a->r_hiyear == ZIC_MAX)
-		return 0;
-	if (a->r_month - b->r_month != 0)
-		return a->r_month - b->r_month;
-	return a->r_dayofmonth - b->r_dayofmonth;
-}
-
-static int
-stringzone(char *result, struct zone const *zpfirst, ptrdiff_t zonecount)
-{
-	register const struct zone *	zp;
-	register struct rule *		rp;
-	register struct rule *		stdrp;
-	register struct rule *		dstrp;
-	register ptrdiff_t		i;
-	register int			compat = 0;
-	register int			c;
-	int				offsetlen;
-	struct rule			stdr, dstr;
-	ptrdiff_t len;
-	int dstcmp;
-	struct rule *lastrp[2] = { NULL, NULL };
-	struct zone zstr[2];
-	struct zone const *stdzp;
-	struct zone const *dstzp;
-
-	result[0] = '\0';
-
-	/* Internet RFC 8536 section 5.1 says to use an empty TZ string if
-	   future timestamps are truncated.  */
-	if (hi_time < max_time)
-	  return -1;
-
-	zp = zpfirst + zonecount - 1;
-	for (i = 0; i < zp->z_nrules; ++i) {
-		struct rule **last;
-		int cmp;
-		rp = &zp->z_rules[i];
-		last = &lastrp[rp->r_isdst];
-		cmp = rule_cmp(*last, rp);
-		if (cmp < 0)
-		  *last = rp;
-		else if (cmp == 0)
-		  return -1;
-	}
-	stdrp = lastrp[false];
-	dstrp = lastrp[true];
-	dstcmp = zp->z_nrules ? rule_cmp(dstrp, stdrp) : zp->z_isdst ? 1 : -1;
-	stdzp = dstzp = zp;
-
-	if (dstcmp < 0) {
-	  /* Standard time all year.  */
-	  dstrp = NULL;
-	} else if (0 < dstcmp) {
-	  /* DST all year.  Use an abbreviation like
-	     "XXX3EDT4,0/0,J365/23" for EDT (-04) all year.  */
-	  zic_t save = dstrp ? dstrp->r_save : zp->z_save;
-	  if (0 <= save)
-	    {
-	      /* Positive DST, the typical case for all-year DST.
-		 Fake a timezone with negative DST.  */
-	      stdzp = &zstr[0];
-	      dstzp = &zstr[1];
-	      zstr[0].z_stdoff = zp->z_stdoff + 2 * save;
-	      zstr[0].z_format = "XXX";  /* Any 3 letters will do.  */
-	      zstr[0].z_format_specifier = 0;
-	      zstr[1].z_stdoff = zstr[0].z_stdoff;
-	      zstr[1].z_format = zp->z_format;
-	      zstr[1].z_format_specifier = zp->z_format_specifier;
-	    }
-	  dstr.r_month = TM_JANUARY;
-	  dstr.r_dycode = DC_DOM;
-	  dstr.r_dayofmonth = 1;
-	  dstr.r_tod = 0;
-	  dstr.r_todisstd = dstr.r_todisut = false;
-	  dstr.r_isdst = true;
-	  dstr.r_save = save < 0 ? save : -save;
-	  dstr.r_abbrvar = dstrp ? dstrp->r_abbrvar : NULL;
-	  stdr.r_month = TM_DECEMBER;
-	  stdr.r_dycode = DC_DOM;
-	  stdr.r_dayofmonth = 31;
-	  stdr.r_tod = SECSPERDAY + dstr.r_save;
-	  stdr.r_todisstd = stdr.r_todisut = false;
-	  stdr.r_isdst = false;
-	  stdr.r_save = 0;
-	  stdr.r_abbrvar = save < 0 && stdrp ? stdrp->r_abbrvar : NULL;
-	  dstrp = &dstr;
-	  stdrp = &stdr;
-	}
-	len = doabbr(result, stdzp, stdrp ? stdrp->r_abbrvar : NULL,
-		     false, 0, true);
-	offsetlen = stringoffset(result + len, - stdzp->z_stdoff);
-	if (! offsetlen) {
-		result[0] = '\0';
-		return -1;
-	}
-	len += offsetlen;
-	if (dstrp == NULL)
-		return compat;
-	len += doabbr(result + len, dstzp, dstrp->r_abbrvar,
-		      dstrp->r_isdst, dstrp->r_save, true);
-	if (dstrp->r_save != SECSPERMIN * MINSPERHOUR) {
-	  offsetlen = stringoffset(result + len,
-				   - (dstzp->z_stdoff + dstrp->r_save));
-	  if (! offsetlen) {
-	    result[0] = '\0';
-	    return -1;
-	  }
-	  len += offsetlen;
-	}
-	result[len++] = ',';
-	c = stringrule(result + len, dstrp, dstrp->r_save, stdzp->z_stdoff);
-	if (c < 0) {
-		result[0] = '\0';
-		return -1;
-	}
-	if (compat < c)
-		compat = c;
-	len += strlen(result + len);
-	result[len++] = ',';
-	c = stringrule(result + len, stdrp, dstrp->r_save, stdzp->z_stdoff);
-	if (c < 0) {
-		result[0] = '\0';
-		return -1;
-	}
-	if (compat < c)
-		compat = c;
-	return compat;
-}
-
-static void
-outzone(const struct zone *zpfirst, ptrdiff_t zonecount)
-{
-	register ptrdiff_t		i, j;
-	register zic_t			starttime = 0, untiltime = 0;
-	register bool			startttisstd;
-	register bool			startttisut;
-	register char *			startbuf;
-	register char *			ab;
-	register char *			envvar;
-	register int			max_abbr_len;
-	register int			max_envvar_len;
-	register bool			prodstic; /* all rules are min to max */
-	register int			compat;
-	register bool			do_extend;
-	register char			version;
-	ptrdiff_t lastatmax = -1;
-	zic_t max_year0;
-	int defaulttype = -1;
-
-	check_for_signal();
-
-	/* This cannot overflow; see FORMAT_LEN_GROWTH_BOUND.  */
-	max_abbr_len = 2 + max_format_len + max_abbrvar_len;
-	max_envvar_len = 2 * max_abbr_len + 5 * 9;
-
-	startbuf = emalloc(max_abbr_len + 1);
-	ab = emalloc(max_abbr_len + 1);
-	envvar = emalloc(max_envvar_len + 1);
-	INITIALIZE(untiltime);
-	INITIALIZE(starttime);
-	/*
-	** Now. . .finally. . .generate some useful data!
-	*/
-	timecnt = 0;
-	typecnt = 0;
-	charcnt = 0;
-	prodstic = zonecount == 1;
-	/*
-	** Thanks to Earl Chew
-	** for noting the need to unconditionally initialize startttisstd.
-	*/
-	startttisstd = false;
-	startttisut = false;
-	min_year = max_year = EPOCH_YEAR;
-	if (leapseen) {
-		updateminmax(leapminyear);
-		updateminmax(leapmaxyear + (leapmaxyear < ZIC_MAX));
-	}
-	for (i = 0; i < zonecount; ++i) {
-		struct zone const *zp = &zpfirst[i];
-		if (i < zonecount - 1)
-			updateminmax(zp->z_untilrule.r_loyear);
-		for (j = 0; j < zp->z_nrules; ++j) {
-			struct rule *rp = &zp->z_rules[j];
-			if (rp->r_lowasnum)
-				updateminmax(rp->r_loyear);
-			if (rp->r_hiwasnum)
-				updateminmax(rp->r_hiyear);
-			if (rp->r_lowasnum || rp->r_hiwasnum)
-				prodstic = false;
-		}
-	}
-	/*
-	** Generate lots of data if a rule can't cover all future times.
-	*/
-	compat = stringzone(envvar, zpfirst, zonecount);
-	version = compat < 2013 ? '2' : '3';
-	do_extend = compat < 0;
-	if (noise) {
-		if (!*envvar)
-			warning("%s %s",
-				_("no POSIX environment variable for zone"),
-				zpfirst->z_name);
-		else if (compat != 0) {
-			/* Circa-COMPAT clients, and earlier clients, might
-			   not work for this zone when given dates before
-			   1970 or after 2038.  */
-			warning(_("%s: pre-%d clients may mishandle"
-				  " distant timestamps"),
-				zpfirst->z_name, compat);
-		}
-	}
-	if (do_extend) {
-		/*
-		** Search through a couple of extra years past the obvious
-		** 400, to avoid edge cases.  For example, suppose a non-POSIX
-		** rule applies from 2012 onwards and has transitions in March
-		** and September, plus some one-off transitions in November
-		** 2013.  If zic looked only at the last 400 years, it would
-		** set max_year=2413, with the intent that the 400 years 2014
-		** through 2413 will be repeated.  The last transition listed
-		** in the tzfile would be in 2413-09, less than 400 years
-		** after the last one-off transition in 2013-11.  Two years
-		** might be overkill, but with the kind of edge cases
-		** available we're not sure that one year would suffice.
-		*/
-		enum { years_of_observations = YEARSPERREPEAT + 2 };
-
-		if (min_year >= ZIC_MIN + years_of_observations)
-			min_year -= years_of_observations;
-		else	min_year = ZIC_MIN;
-		if (max_year <= ZIC_MAX - years_of_observations)
-			max_year += years_of_observations;
-		else	max_year = ZIC_MAX;
-		/*
-		** Regardless of any of the above,
-		** for a "proDSTic" zone which specifies that its rules
-		** always have and always will be in effect,
-		** we only need one cycle to define the zone.
-		*/
-		if (prodstic) {
-			min_year = 1900;
-			max_year = min_year + years_of_observations;
-		}
-	}
-	max_year = max(max_year, (redundant_time / (SECSPERDAY * DAYSPERNYEAR)
-				  + EPOCH_YEAR + 1));
-	max_year0 = max_year;
-	if (want_bloat()) {
-	  /* For the benefit of older systems,
-	     generate data from 1900 through 2038.  */
-	  if (min_year > 1900)
-		min_year = 1900;
-	  if (max_year < 2038)
-		max_year = 2038;
-	}
-
-	if (min_time < lo_time || hi_time < max_time)
-	  unspecifiedtype = addtype(0, "-00", false, false, false);
-
-	for (i = 0; i < zonecount; ++i) {
-		struct rule *prevrp = NULL;
-		/*
-		** A guess that may well be corrected later.
-		*/
-		zic_t save = 0;
-		struct zone const *zp = &zpfirst[i];
-		bool usestart = i > 0 && (zp - 1)->z_untiltime > min_time;
-		bool useuntil = i < (zonecount - 1);
-		zic_t stdoff = zp->z_stdoff;
-		zic_t startoff = stdoff;
-		zic_t prevktime;
-		INITIALIZE(prevktime);
-		if (useuntil && zp->z_untiltime <= min_time)
-			continue;
-		eat(zp->z_filenum, zp->z_linenum);
-		*startbuf = '\0';
-		if (zp->z_nrules == 0) {
-			int type;
-			save = zp->z_save;
-			doabbr(startbuf, zp, NULL, zp->z_isdst, save, false);
-			type = addtype(oadd(zp->z_stdoff, save),
-				startbuf, zp->z_isdst, startttisstd,
-				startttisut);
-			if (usestart) {
-				addtt(starttime, type);
-				usestart = false;
-			} else
-				defaulttype = type;
-		} else {
-		  zic_t year;
-		  for (year = min_year; year <= max_year; ++year) {
-			if (useuntil && year > zp->z_untilrule.r_hiyear)
-				break;
-			/*
-			** Mark which rules to do in the current year.
-			** For those to do, calculate rpytime(rp, year);
-			** The former TYPE field was also considered here.
-			*/
-			for (j = 0; j < zp->z_nrules; ++j) {
-				zic_t one = 1;
-				zic_t y2038_boundary = one << 31;
-				struct rule *rp = &zp->z_rules[j];
-				eats(zp->z_filenum, zp->z_linenum,
-				     rp->r_filenum, rp->r_linenum);
-				rp->r_todo = year >= rp->r_loyear &&
-						year <= rp->r_hiyear;
-				if (rp->r_todo) {
-					rp->r_temp = rpytime(rp, year);
-					rp->r_todo
-					  = (rp->r_temp < y2038_boundary
-					     || year <= max_year0);
-				}
-			}
-			for ( ; ; ) {
-				register ptrdiff_t k;
-				register zic_t	jtime = 0, ktime = 0;
-				register zic_t	offset;
-				struct rule *rp;
-				int type;
-
-				INITIALIZE(ktime);
-				if (useuntil) {
-					/*
-					** Turn untiltime into UT
-					** assuming the current stdoff and
-					** save values.
-					*/
-					untiltime = zp->z_untiltime;
-					if (!zp->z_untilrule.r_todisut)
-						untiltime = tadd(untiltime,
-								 -stdoff);
-					if (!zp->z_untilrule.r_todisstd)
-						untiltime = tadd(untiltime,
-								 -save);
-				}
-				/*
-				** Find the rule (of those to do, if any)
-				** that takes effect earliest in the year.
-				*/
-				k = -1;
-				for (j = 0; j < zp->z_nrules; ++j) {
-					struct rule *r = &zp->z_rules[j];
-					if (!r->r_todo)
-						continue;
-					eats(zp->z_filenum, zp->z_linenum,
-					     r->r_filenum, r->r_linenum);
-					offset = r->r_todisut ? 0 : stdoff;
-					if (!r->r_todisstd)
-						offset = oadd(offset, save);
-					jtime = r->r_temp;
-					if (jtime == min_time ||
-						jtime == max_time)
-							continue;
-					jtime = tadd(jtime, -offset);
-					if (k < 0 || jtime < ktime) {
-						k = j;
-						ktime = jtime;
-					} else if (jtime == ktime) {
-					  char const *dup_rules_msg =
-					    _("two rules for same instant");
-					  eats(zp->z_filenum, zp->z_linenum,
-					       r->r_filenum, r->r_linenum);
-					  warning("%s", dup_rules_msg);
-					  r = &zp->z_rules[k];
-					  eats(zp->z_filenum, zp->z_linenum,
-					       r->r_filenum, r->r_linenum);
-					  error("%s", dup_rules_msg);
-					}
-				}
-				if (k < 0)
-					break;	/* go on to next year */
-				rp = &zp->z_rules[k];
-				rp->r_todo = false;
-				if (useuntil && ktime >= untiltime) {
-					if (!*startbuf
-					    && (oadd(zp->z_stdoff, rp->r_save)
-						== startoff))
-					  doabbr(startbuf, zp, rp->r_abbrvar,
-						 rp->r_isdst, rp->r_save,
-						 false);
-					break;
-				}
-				save = rp->r_save;
-				if (usestart && ktime == starttime)
-					usestart = false;
-				if (usestart) {
-					if (ktime < starttime) {
-						startoff = oadd(zp->z_stdoff,
-								save);
-						doabbr(startbuf, zp,
-							rp->r_abbrvar,
-							rp->r_isdst,
-							rp->r_save,
-							false);
-						continue;
-					}
-					if (*startbuf == '\0'
-					    && startoff == oadd(zp->z_stdoff,
-								save)) {
-							doabbr(startbuf,
-								zp,
-								rp->r_abbrvar,
-								rp->r_isdst,
-								rp->r_save,
-								false);
-					}
-				}
-				eats(zp->z_filenum, zp->z_linenum,
-				     rp->r_filenum, rp->r_linenum);
-				doabbr(ab, zp, rp->r_abbrvar,
-				       rp->r_isdst, rp->r_save, false);
-				offset = oadd(zp->z_stdoff, rp->r_save);
-				if (!want_bloat() && !useuntil && !do_extend
-				    && prevrp && lo_time <= prevktime
-				    && redundant_time <= ktime
-				    && rp->r_hiyear == ZIC_MAX
-				    && prevrp->r_hiyear == ZIC_MAX)
-				  break;
-				type = addtype(offset, ab, rp->r_isdst,
-					rp->r_todisstd, rp->r_todisut);
-				if (defaulttype < 0 && !rp->r_isdst)
-				  defaulttype = type;
-				if (rp->r_hiyear == ZIC_MAX
-				    && ! (0 <= lastatmax
-					  && ktime < attypes[lastatmax].at))
-				  lastatmax = timecnt;
-				addtt(ktime, type);
-				prevrp = rp;
-				prevktime = ktime;
-			}
-		  }
-		}
-		if (usestart) {
-			bool isdst = startoff != zp->z_stdoff;
-			if (*startbuf == '\0' && zp->z_format)
-			  doabbr(startbuf, zp, disable_percent_s,
-				 isdst, save, false);
-			eat(zp->z_filenum, zp->z_linenum);
-			if (*startbuf == '\0')
-error(_("can't determine time zone abbreviation to use just after until time"));
-			else {
-			  int type = addtype(startoff, startbuf, isdst,
-					     startttisstd, startttisut);
-			  if (defaulttype < 0 && !isdst)
-			    defaulttype = type;
-			  addtt(starttime, type);
-			}
-		}
-		/*
-		** Now we may get to set starttime for the next zone line.
-		*/
-		if (useuntil) {
-			startttisstd = zp->z_untilrule.r_todisstd;
-			startttisut = zp->z_untilrule.r_todisut;
-			starttime = zp->z_untiltime;
-			if (!startttisstd)
-			  starttime = tadd(starttime, -save);
-			if (!startttisut)
-			  starttime = tadd(starttime, -stdoff);
-		}
-	}
-	if (defaulttype < 0)
-	  defaulttype = 0;
-	if (0 <= lastatmax)
-	  attypes[lastatmax].dontmerge = true;
-	if (do_extend) {
-		/*
-		** If we're extending the explicitly listed observations
-		** for 400 years because we can't fill the POSIX-TZ field,
-		** check whether we actually ended up explicitly listing
-		** observations through that period.  If there aren't any
-		** near the end of the 400-year period, add a redundant
-		** one at the end of the final year, to make it clear
-		** that we are claiming to have definite knowledge of
-		** the lack of transitions up to that point.
-		*/
-		struct rule xr;
-		struct attype *lastat;
-		xr.r_month = TM_JANUARY;
-		xr.r_dycode = DC_DOM;
-		xr.r_dayofmonth = 1;
-		xr.r_tod = 0;
-		for (lastat = attypes, i = 1; i < timecnt; i++)
-			if (attypes[i].at > lastat->at)
-				lastat = &attypes[i];
-		if (!lastat || lastat->at < rpytime(&xr, max_year - 1)) {
-			addtt(rpytime(&xr, max_year + 1),
-			      lastat ? lastat->type : defaulttype);
-			attypes[timecnt - 1].dontmerge = true;
-		}
-	}
-	writezone(zpfirst->z_name, envvar, version, defaulttype);
-	free(startbuf);
-	free(ab);
-	free(envvar);
-}
-
-static void
-addtt(zic_t starttime, int type)
-{
-	attypes = growalloc(attypes, sizeof *attypes, timecnt, &timecnt_alloc);
-	attypes[timecnt].at = starttime;
-	attypes[timecnt].dontmerge = false;
-	attypes[timecnt].type = type;
-	++timecnt;
-}
-
-static int
-addtype(zic_t utoff, char const *abbr, bool isdst, bool ttisstd, bool ttisut)
-{
-	register int	i, j;
-
-	if (! (-1L - 2147483647L <= utoff && utoff <= 2147483647L)) {
-		error(_("UT offset out of range"));
-		exit(EXIT_FAILURE);
-	}
-	if (!want_bloat())
-	  ttisstd = ttisut = false;
-
-	for (j = 0; j < charcnt; ++j)
-		if (strcmp(&chars[j], abbr) == 0)
-			break;
-	if (j == charcnt)
-		newabbr(abbr);
-	else {
-	  /* If there's already an entry, return its index.  */
-	  for (i = 0; i < typecnt; i++)
-	    if (utoff == utoffs[i] && isdst == isdsts[i] && j == desigidx[i]
-		&& ttisstd == ttisstds[i] && ttisut == ttisuts[i])
-	      return i;
-	}
-	/*
-	** There isn't one; add a new one, unless there are already too
-	** many.
-	*/
-	if (typecnt >= TZ_MAX_TYPES) {
-		error(_("too many local time types"));
-		exit(EXIT_FAILURE);
-	}
-	i = typecnt++;
-	utoffs[i] = utoff;
-	isdsts[i] = isdst;
-	ttisstds[i] = ttisstd;
-	ttisuts[i] = ttisut;
-	desigidx[i] = j;
-	return i;
-}
-
-static void
-leapadd(zic_t t, int correction, int rolling)
-{
-	register int i;
-
-	if (TZ_MAX_LEAPS <= leapcnt) {
-		error(_("too many leap seconds"));
-		exit(EXIT_FAILURE);
-	}
-	if (rolling && (lo_time != min_time || hi_time != max_time)) {
-	  error(_("Rolling leap seconds not supported with -r"));
-	  exit(EXIT_FAILURE);
-	}
-	for (i = 0; i < leapcnt; ++i)
-		if (t <= trans[i])
-			break;
-	memmove(&trans[i + 1], &trans[i], (leapcnt - i) * sizeof *trans);
-	memmove(&corr[i + 1], &corr[i], (leapcnt - i) * sizeof *corr);
-	memmove(&roll[i + 1], &roll[i], (leapcnt - i) * sizeof *roll);
-	trans[i] = t;
-	corr[i] = correction;
-	roll[i] = rolling;
-	++leapcnt;
-}
-
-static void
-adjleap(void)
-{
-	register int	i;
-	register zic_t	last = 0;
-	register zic_t	prevtrans = 0;
-
-	/*
-	** propagate leap seconds forward
-	*/
-	for (i = 0; i < leapcnt; ++i) {
-		if (trans[i] - prevtrans < 28 * SECSPERDAY) {
-		  error(_("Leap seconds too close together"));
-		  exit(EXIT_FAILURE);
-		}
-		prevtrans = trans[i];
-		trans[i] = tadd(trans[i], last);
-		last = corr[i] += last;
-	}
-
-	if (0 <= leapexpires) {
-	  leapexpires = oadd(leapexpires, last);
-	  if (! (leapcnt == 0 || (trans[leapcnt - 1] < leapexpires))) {
-	    error(_("last Leap time does not precede Expires time"));
-	    exit(EXIT_FAILURE);
-	  }
-	}
-}
-
-/* Is A a space character in the C locale?  */
-static bool
-is_space(char a)
-{
-	switch (a) {
-	  default:
-		return false;
-	  case ' ': case '\f': case '\n': case '\r': case '\t': case '\v':
-		return true;
-	}
-}
-
-/* Is A an alphabetic character in the C locale?  */
-static bool
-is_alpha(char a)
-{
-	switch (a) {
-	  default:
-		return false;
-	  case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G':
-	  case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N':
-	  case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U':
-	  case 'V': case 'W': case 'X': case 'Y': case 'Z':
-	  case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g':
-	  case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n':
-	  case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u':
-	  case 'v': case 'w': case 'x': case 'y': case 'z':
-		return true;
-	}
-}
-
-/* If A is an uppercase character in the C locale, return its lowercase
-   counterpart.  Otherwise, return A.  */
-static char
-lowerit(char a)
-{
-	switch (a) {
-	  default: return a;
-	  case 'A': return 'a'; case 'B': return 'b'; case 'C': return 'c';
-	  case 'D': return 'd'; case 'E': return 'e'; case 'F': return 'f';
-	  case 'G': return 'g'; case 'H': return 'h'; case 'I': return 'i';
-	  case 'J': return 'j'; case 'K': return 'k'; case 'L': return 'l';
-	  case 'M': return 'm'; case 'N': return 'n'; case 'O': return 'o';
-	  case 'P': return 'p'; case 'Q': return 'q'; case 'R': return 'r';
-	  case 'S': return 's'; case 'T': return 't'; case 'U': return 'u';
-	  case 'V': return 'v'; case 'W': return 'w'; case 'X': return 'x';
-	  case 'Y': return 'y'; case 'Z': return 'z';
-	}
-}
-
-/* case-insensitive equality */
-ATTRIBUTE_REPRODUCIBLE static bool
-ciequal(register const char *ap, register const char *bp)
-{
-	while (lowerit(*ap) == lowerit(*bp++))
-		if (*ap++ == '\0')
-			return true;
-	return false;
-}
-
-ATTRIBUTE_REPRODUCIBLE static bool
-itsabbr(register const char *abbr, register const char *word)
-{
-	if (lowerit(*abbr) != lowerit(*word))
-		return false;
-	++word;
-	while (*++abbr != '\0')
-		do {
-			if (*word == '\0')
-				return false;
-		} while (lowerit(*word++) != lowerit(*abbr));
-	return true;
-}
-
-/* Return true if ABBR is an initial prefix of WORD, ignoring ASCII case.  */
-
-ATTRIBUTE_REPRODUCIBLE static bool
-ciprefix(char const *abbr, char const *word)
-{
-  do
-    if (!*abbr)
-      return true;
-  while (lowerit(*abbr++) == lowerit(*word++));
-
-  return false;
-}
-
-static const struct lookup *
-byword(const char *word, const struct lookup *table)
-{
-	register const struct lookup *	foundlp;
-	register const struct lookup *	lp;
-
-	if (word == NULL || table == NULL)
-		return NULL;
-
-	/* If TABLE is LASTS and the word starts with "last" followed
-	   by a non-'-', skip the "last" and look in WDAY_NAMES instead.
-	   Warn about any usage of the undocumented prefix "last-".  */
-	if (table == lasts && ciprefix("last", word) && word[4]) {
-	  if (word[4] == '-')
-	    warning(_("\"%s\" is undocumented; use \"last%s\" instead"),
-		    word, word + 5);
-	  else {
-	    word += 4;
-	    table = wday_names;
-	  }
-	}
-
-	/*
-	** Look for exact match.
-	*/
-	for (lp = table; lp->l_word != NULL; ++lp)
-		if (ciequal(word, lp->l_word))
-			return lp;
-	/*
-	** Look for inexact match.
-	*/
-	foundlp = NULL;
-	for (lp = table; lp->l_word != NULL; ++lp)
-		if (ciprefix(word, lp->l_word)) {
-			if (foundlp == NULL)
-				foundlp = lp;
-			else	return NULL;	/* multiple inexact matches */
-		}
-
-	if (foundlp && noise) {
-	  /* Warn about any backward-compatibility issue with pre-2017c zic.  */
-	  bool pre_2017c_match = false;
-	  for (lp = table; lp->l_word; lp++)
-	    if (itsabbr(word, lp->l_word)) {
-	      if (pre_2017c_match) {
-		warning(_("\"%s\" is ambiguous in pre-2017c zic"), word);
-		break;
-	      }
-	      pre_2017c_match = true;
-	    }
-	}
-
-	return foundlp;
-}
-
-static int
-getfields(char *cp, char **array, int arrayelts)
-{
-	register char *		dp;
-	register int		nsubs;
-
-	nsubs = 0;
-	for ( ; ; ) {
-		char *dstart;
-		while (is_space(*cp))
-				++cp;
-		if (*cp == '\0' || *cp == '#')
-			break;
-		dstart = dp = cp;
-		do {
-			if ((*dp = *cp++) != '"')
-				++dp;
-			else while ((*dp = *cp++) != '"')
-				if (*dp != '\0')
-					++dp;
-				else {
-				  error(_("Odd number of quotation marks"));
-				  exit(EXIT_FAILURE);
-				}
-		} while (*cp && *cp != '#' && !is_space(*cp));
-		if (is_space(*cp))
-			++cp;
-		*dp = '\0';
-		if (nsubs == arrayelts) {
-		  error(_("Too many input fields"));
-		  exit(EXIT_FAILURE);
-		}
-		array[nsubs++] = dstart + (*dstart == '-' && dp == dstart + 1);
-	}
-	return nsubs;
-}
-
-ATTRIBUTE_NORETURN static void
-time_overflow(void)
-{
-  error(_("time overflow"));
-  exit(EXIT_FAILURE);
-}
-
-ATTRIBUTE_REPRODUCIBLE static zic_t
-oadd(zic_t t1, zic_t t2)
-{
-#ifdef ckd_add
-  zic_t sum;
-  if (!ckd_add(&sum, t1, t2))
-    return sum;
-#else
-  if (t1 < 0 ? ZIC_MIN - t1 <= t2 : t2 <= ZIC_MAX - t1)
-    return t1 + t2;
-#endif
-  time_overflow();
-}
-
-ATTRIBUTE_REPRODUCIBLE static zic_t
-tadd(zic_t t1, zic_t t2)
-{
-#ifdef ckd_add
-  zic_t sum;
-  if (!ckd_add(&sum, t1, t2) && min_time <= sum && sum <= max_time)
-    return sum;
-#else
-  if (t1 < 0 ? min_time - t1 <= t2 : t2 <= max_time - t1)
-    return t1 + t2;
-#endif
-  if (t1 == min_time || t1 == max_time)
-    return t1;
-  time_overflow();
-}
-
-/*
-** Given a rule, and a year, compute the date (in seconds since January 1,
-** 1970, 00:00 LOCAL time) in that year that the rule refers to.
-*/
-
-static zic_t
-rpytime(const struct rule *rp, zic_t wantedy)
-{
-	register int	m, i;
-	register zic_t	dayoff;			/* with a nod to Margaret O. */
-	register zic_t	t, y;
-	int yrem;
-
-	if (wantedy == ZIC_MIN)
-		return min_time;
-	if (wantedy == ZIC_MAX)
-		return max_time;
-	m = TM_JANUARY;
-	y = EPOCH_YEAR;
-
-	/* dayoff = floor((wantedy - y) / YEARSPERREPEAT) * DAYSPERREPEAT,
-	   sans overflow.  */
-	yrem = wantedy % YEARSPERREPEAT - y % YEARSPERREPEAT;
-	dayoff = ((wantedy / YEARSPERREPEAT - y / YEARSPERREPEAT
-		   + yrem / YEARSPERREPEAT - (yrem % YEARSPERREPEAT < 0))
-		  * DAYSPERREPEAT);
-	/* wantedy = y + ((wantedy - y) mod YEARSPERREPEAT), sans overflow.  */
-	wantedy = y + (yrem + 2 * YEARSPERREPEAT) % YEARSPERREPEAT;
-
-	while (wantedy != y) {
-		i = len_years[isleap(y)];
-		dayoff = oadd(dayoff, i);
-		y++;
-	}
-	while (m != rp->r_month) {
-		i = len_months[isleap(y)][m];
-		dayoff = oadd(dayoff, i);
-		++m;
-	}
-	i = rp->r_dayofmonth;
-	if (m == TM_FEBRUARY && i == 29 && !isleap(y)) {
-		if (rp->r_dycode == DC_DOWLEQ)
-			--i;
-		else {
-			error(_("use of 2/29 in non leap-year"));
-			exit(EXIT_FAILURE);
-		}
-	}
-	--i;
-	dayoff = oadd(dayoff, i);
-	if (rp->r_dycode == DC_DOWGEQ || rp->r_dycode == DC_DOWLEQ) {
-		/*
-		** Don't trust mod of negative numbers.
-		*/
-		zic_t wday = ((EPOCH_WDAY + dayoff % DAYSPERWEEK + DAYSPERWEEK)
-			      % DAYSPERWEEK);
-		while (wday != rp->r_wday)
-			if (rp->r_dycode == DC_DOWGEQ) {
-				dayoff = oadd(dayoff, 1);
-				if (++wday >= DAYSPERWEEK)
-					wday = 0;
-				++i;
-			} else {
-				dayoff = oadd(dayoff, -1);
-				if (--wday < 0)
-					wday = DAYSPERWEEK - 1;
-				--i;
-			}
-		if (i < 0 || i >= len_months[isleap(y)][m]) {
-			if (noise)
-				warning(_("rule goes past start/end of month; \
-will not work with pre-2004 versions of zic"));
-		}
-	}
-	if (dayoff < min_time / SECSPERDAY)
-		return min_time;
-	if (dayoff > max_time / SECSPERDAY)
-		return max_time;
-	t = (zic_t) dayoff * SECSPERDAY;
-	return tadd(t, rp->r_tod);
-}
-
-static void
-newabbr(const char *string)
-{
-	register int	i;
-
-	if (strcmp(string, GRANDPARENTED) != 0) {
-		register const char *	cp;
-		const char *		mp;
-
-		cp = string;
-		mp = NULL;
-		while (is_alpha(*cp) || ('0' <= *cp && *cp <= '9')
-		       || *cp == '-' || *cp == '+')
-				++cp;
-		if (noise && cp - string < 3)
-		  mp = _("time zone abbreviation has fewer than 3 characters");
-		if (cp - string > ZIC_MAX_ABBR_LEN_WO_WARN)
-		  mp = _("time zone abbreviation has too many characters");
-		if (*cp != '\0')
-mp = _("time zone abbreviation differs from POSIX standard");
-		if (mp != NULL)
-			warning("%s (%s)", mp, string);
-	}
-	i = strlen(string) + 1;
-	if (charcnt + i > TZ_MAX_CHARS) {
-		error(_("too many, or too long, time zone abbreviations"));
-		exit(EXIT_FAILURE);
-	}
-	strcpy(&chars[charcnt], string);
-	charcnt += i;
-}
-
-/* Ensure that the directories of ARGNAME exist, by making any missing
-   ones.  If ANCESTORS, do this only for ARGNAME's ancestors; otherwise,
-   do it for ARGNAME too.  Exit with failure if there is trouble.
-   Do not consider an existing file to be trouble.  */
-static void
-mkdirs(char const *argname, bool ancestors)
-{
-	char *name = estrdup(argname);
-	char *cp = name;
-
-	/* On MS-Windows systems, do not worry about drive letters or
-	   backslashes, as this should suffice in practice.  Time zone
-	   names do not use drive letters and backslashes.  If the -d
-	   option of zic does not name an already-existing directory,
-	   it can use slashes to separate the already-existing
-	   ancestor prefix from the to-be-created subdirectories.  */
-
-	/* Do not mkdir a root directory, as it must exist.  */
-	while (*cp == '/')
-	  cp++;
-
-	while (cp && ((cp = strchr(cp, '/')) || !ancestors)) {
-		if (cp)
-		  *cp = '\0';
-		/*
-		** Try to create it.  It's OK if creation fails because
-		** the directory already exists, perhaps because some
-		** other process just created it.  For simplicity do
-		** not check first whether it already exists, as that
-		** is checked anyway if the mkdir fails.
-		*/
-		if (mkdir(name, MKDIR_UMASK) != 0) {
-			/* Do not report an error if err == EEXIST, because
-			   some other process might have made the directory
-			   in the meantime.  Likewise for ENOSYS, because
-			   Solaris 10 mkdir fails with ENOSYS if the
-			   directory is an automounted mount point.
-			   Likewise for EACCES, since mkdir can fail
-			   with EACCES merely because the parent directory
-			   is unwritable.  Likewise for most other error
-			   numbers.  */
-			int err = errno;
-			if (err == ELOOP || err == ENAMETOOLONG
-			    || err == ENOENT || err == ENOTDIR) {
-				error(_("%s: Can't create directory %s: %s"),
-				      progname, name, strerror(err));
-				exit(EXIT_FAILURE);
-			}
-		}
-		if (cp)
-		  *cp++ = '/';
-	}
-	free(name);
-}
Index: sources/iana/tz/create-2023c-glibc-2.37-patch/glibc-2.37-new/timezone/private.h
===================================================================
--- sources/iana/tz/create-2023c-glibc-2.37-patch/glibc-2.37-new/timezone/private.h	(revision 393)
+++ sources/iana/tz/create-2023c-glibc-2.37-patch/glibc-2.37-new/timezone/private.h	(nonexistent)
@@ -1,1008 +0,0 @@
-/* Private header for tzdb code.  */
-
-#ifndef PRIVATE_H
-
-#define PRIVATE_H
-
-/*
-** This file is in the public domain, so clarified as of
-** 1996-06-05 by Arthur David Olson.
-*/
-
-/*
-** This header is for use ONLY with the time conversion code.
-** There is no guarantee that it will remain unchanged,
-** or that it will remain at all.
-** Do NOT copy it to any system include directory.
-** Thank you!
-*/
-
-/* PORT_TO_C89 means the code should work even if the underlying
-   compiler and library support only C89.  SUPPORT_C89 means the
-   tzcode library should support C89 callers in addition to the usual
-   support for C99-and-later callers.  These macros are obsolescent,
-   and the plan is to remove them along with any code needed only when
-   they are nonzero.  */
-#ifndef PORT_TO_C89
-# define PORT_TO_C89 0
-#endif
-#ifndef SUPPORT_C89
-# define SUPPORT_C89 0
-#endif
-
-#ifndef __STDC_VERSION__
-# define __STDC_VERSION__ 0
-#endif
-
-/* Define true, false and bool if they don't work out of the box.  */
-#if PORT_TO_C89 && __STDC_VERSION__ < 199901
-# define true 1
-# define false 0
-# define bool int
-#elif __STDC_VERSION__ < 202311
-# include <stdbool.h>
-#endif
-
-#if __STDC_VERSION__ < 202311
-# define static_assert(cond) extern int static_assert_check[(cond) ? 1 : -1]
-#endif
-
-/*
-** zdump has been made independent of the rest of the time
-** conversion package to increase confidence in the verification it provides.
-** You can use zdump to help in verifying other implementations.
-** To do this, compile with -DUSE_LTZ=0 and link without the tz library.
-*/
-#ifndef USE_LTZ
-# define USE_LTZ 1
-#endif
-
-/* This string was in the Factory zone through version 2016f.  */
-#define GRANDPARENTED	"Local time zone must be set--see zic manual page"
-
-/*
-** Defaults for preprocessor symbols.
-** You can override these in your C compiler options, e.g. '-DHAVE_GETTEXT=1'.
-*/
-
-#ifndef HAVE_DECL_ASCTIME_R
-# define HAVE_DECL_ASCTIME_R 1
-#endif
-
-#if !defined HAVE__GENERIC && defined __has_extension
-# if __has_extension(c_generic_selections)
-#  define HAVE__GENERIC 1
-# else
-#  define HAVE__GENERIC 0
-# endif
-#endif
-/* _Generic is buggy in pre-4.9 GCC.  */
-#if !defined HAVE__GENERIC && defined __GNUC__ && !defined __STRICT_ANSI__
-# define HAVE__GENERIC (4 < __GNUC__ + (9 <= __GNUC_MINOR__))
-#endif
-#ifndef HAVE__GENERIC
-# define HAVE__GENERIC (201112 <= __STDC_VERSION__)
-#endif
-
-#if !defined HAVE_GETTEXT && defined __has_include
-# if __has_include(<libintl.h>)
-#  define HAVE_GETTEXT true
-# endif
-#endif
-#ifndef HAVE_GETTEXT
-# define HAVE_GETTEXT false
-#endif
-
-#ifndef HAVE_INCOMPATIBLE_CTIME_R
-# define HAVE_INCOMPATIBLE_CTIME_R 0
-#endif
-
-#ifndef HAVE_LINK
-# define HAVE_LINK 1
-#endif /* !defined HAVE_LINK */
-
-#ifndef HAVE_MALLOC_ERRNO
-# define HAVE_MALLOC_ERRNO 1
-#endif
-
-#ifndef HAVE_POSIX_DECLS
-# define HAVE_POSIX_DECLS 1
-#endif
-
-#ifndef HAVE_SETENV
-# define HAVE_SETENV 1
-#endif
-
-#ifndef HAVE_STRDUP
-# define HAVE_STRDUP 1
-#endif
-
-#ifndef HAVE_SYMLINK
-# define HAVE_SYMLINK 1
-#endif /* !defined HAVE_SYMLINK */
-
-#if !defined HAVE_SYS_STAT_H && defined __has_include
-# if !__has_include(<sys/stat.h>)
-#  define HAVE_SYS_STAT_H false
-# endif
-#endif
-#ifndef HAVE_SYS_STAT_H
-# define HAVE_SYS_STAT_H true
-#endif
-
-#if !defined HAVE_UNISTD_H && defined __has_include
-# if !__has_include(<unistd.h>)
-#  define HAVE_UNISTD_H false
-# endif
-#endif
-#ifndef HAVE_UNISTD_H
-# define HAVE_UNISTD_H true
-#endif
-
-#ifndef NETBSD_INSPIRED
-# define NETBSD_INSPIRED 1
-#endif
-
-#if HAVE_INCOMPATIBLE_CTIME_R
-# define asctime_r _incompatible_asctime_r
-# define ctime_r _incompatible_ctime_r
-#endif /* HAVE_INCOMPATIBLE_CTIME_R */
-
-/* Enable tm_gmtoff, tm_zone, and environ on GNUish systems.  */
-#define _GNU_SOURCE 1
-/* Fix asctime_r on Solaris 11.  */
-#define _POSIX_PTHREAD_SEMANTICS 1
-/* Enable strtoimax on pre-C99 Solaris 11.  */
-#define __EXTENSIONS__ 1
-
-/* On GNUish systems where time_t might be 32 or 64 bits, use 64.
-   On these platforms _FILE_OFFSET_BITS must also be 64; otherwise
-   setting _TIME_BITS to 64 does not work.  The code does not
-   otherwise rely on _FILE_OFFSET_BITS being 64, since it does not
-   use off_t or functions like 'stat' that depend on off_t.  */
-#ifndef _FILE_OFFSET_BITS
-# define _FILE_OFFSET_BITS 64
-#endif
-#if !defined _TIME_BITS && _FILE_OFFSET_BITS == 64
-# define _TIME_BITS 64
-#endif
-
-/*
-** Nested includes
-*/
-
-/* Avoid clashes with NetBSD by renaming NetBSD's declarations.
-   If defining the 'timezone' variable, avoid a clash with FreeBSD's
-   'timezone' function by renaming its declaration.  */
-#define localtime_rz sys_localtime_rz
-#define mktime_z sys_mktime_z
-#define posix2time_z sys_posix2time_z
-#define time2posix_z sys_time2posix_z
-#if defined USG_COMPAT && USG_COMPAT == 2
-# define timezone sys_timezone
-#endif
-#define timezone_t sys_timezone_t
-#define tzalloc sys_tzalloc
-#define tzfree sys_tzfree
-#include <time.h>
-#undef localtime_rz
-#undef mktime_z
-#undef posix2time_z
-#undef time2posix_z
-#if defined USG_COMPAT && USG_COMPAT == 2
-# undef timezone
-#endif
-#undef timezone_t
-#undef tzalloc
-#undef tzfree
-
-#include <stddef.h>
-#include <string.h>
-#if !PORT_TO_C89
-# include <inttypes.h>
-#endif
-#include <limits.h>	/* for CHAR_BIT et al. */
-#include <stdlib.h>
-
-#include <errno.h>
-
-#ifndef EINVAL
-# define EINVAL ERANGE
-#endif
-
-#ifndef ELOOP
-# define ELOOP EINVAL
-#endif
-#ifndef ENAMETOOLONG
-# define ENAMETOOLONG EINVAL
-#endif
-#ifndef ENOMEM
-# define ENOMEM EINVAL
-#endif
-#ifndef ENOTSUP
-# define ENOTSUP EINVAL
-#endif
-#ifndef EOVERFLOW
-# define EOVERFLOW EINVAL
-#endif
-
-#if HAVE_GETTEXT
-# include <libintl.h>
-#endif /* HAVE_GETTEXT */
-
-#if HAVE_UNISTD_H
-# include <unistd.h> /* for R_OK, and other POSIX goodness */
-#endif /* HAVE_UNISTD_H */
-
-#ifndef HAVE_STRFTIME_L
-# if _POSIX_VERSION < 200809
-#  define HAVE_STRFTIME_L 0
-# else
-#  define HAVE_STRFTIME_L 1
-# endif
-#endif
-
-#ifndef USG_COMPAT
-# ifndef _XOPEN_VERSION
-#  define USG_COMPAT 0
-# else
-#  define USG_COMPAT 1
-# endif
-#endif
-
-#ifndef HAVE_TZNAME
-# if _POSIX_VERSION < 198808 && !USG_COMPAT
-#  define HAVE_TZNAME 0
-# else
-#  define HAVE_TZNAME 1
-# endif
-#endif
-
-#ifndef ALTZONE
-# if defined __sun || defined _M_XENIX
-#  define ALTZONE 1
-# else
-#  define ALTZONE 0
-# endif
-#endif
-
-#ifndef R_OK
-# define R_OK 4
-#endif /* !defined R_OK */
-
-#if PORT_TO_C89
-
-/*
-** Define HAVE_STDINT_H's default value here, rather than at the
-** start, since __GLIBC__ and INTMAX_MAX's values depend on
-** previously included files.  glibc 2.1 and Solaris 10 and later have
-** stdint.h, even with pre-C99 compilers.
-*/
-#if !defined HAVE_STDINT_H && defined __has_include
-# define HAVE_STDINT_H true /* C23 __has_include implies C99 stdint.h.  */
-#endif
-#ifndef HAVE_STDINT_H
-# define HAVE_STDINT_H \
-   (199901 <= __STDC_VERSION__ \
-    || 2 < __GLIBC__ + (1 <= __GLIBC_MINOR__) \
-    || __CYGWIN__ || INTMAX_MAX)
-#endif /* !defined HAVE_STDINT_H */
-
-#if HAVE_STDINT_H
-# include <stdint.h>
-#endif /* !HAVE_STDINT_H */
-
-#ifndef HAVE_INTTYPES_H
-# define HAVE_INTTYPES_H HAVE_STDINT_H
-#endif
-#if HAVE_INTTYPES_H
-# include <inttypes.h>
-#endif
-
-/* Pre-C99 GCC compilers define __LONG_LONG_MAX__ instead of LLONG_MAX.  */
-#if defined __LONG_LONG_MAX__ && !defined __STRICT_ANSI__
-# ifndef LLONG_MAX
-#  define LLONG_MAX __LONG_LONG_MAX__
-# endif
-# ifndef LLONG_MIN
-#  define LLONG_MIN (-1 - LLONG_MAX)
-# endif
-# ifndef ULLONG_MAX
-#  define ULLONG_MAX (LLONG_MAX * 2ull + 1)
-# endif
-#endif
-
-#ifndef INT_FAST64_MAX
-# if 1 <= LONG_MAX >> 31 >> 31
-typedef long int_fast64_t;
-#  define INT_FAST64_MIN LONG_MIN
-#  define INT_FAST64_MAX LONG_MAX
-# else
-/* If this fails, compile with -DHAVE_STDINT_H or with a better compiler.  */
-typedef long long int_fast64_t;
-#  define INT_FAST64_MIN LLONG_MIN
-#  define INT_FAST64_MAX LLONG_MAX
-# endif
-#endif
-
-#ifndef PRIdFAST64
-# if INT_FAST64_MAX == LONG_MAX
-#  define PRIdFAST64 "ld"
-# else
-#  define PRIdFAST64 "lld"
-# endif
-#endif
-
-#ifndef SCNdFAST64
-# define SCNdFAST64 PRIdFAST64
-#endif
-
-#ifndef INT_FAST32_MAX
-# if INT_MAX >> 31 == 0
-typedef long int_fast32_t;
-#  define INT_FAST32_MAX LONG_MAX
-#  define INT_FAST32_MIN LONG_MIN
-# else
-typedef int int_fast32_t;
-#  define INT_FAST32_MAX INT_MAX
-#  define INT_FAST32_MIN INT_MIN
-# endif
-#endif
-
-#ifndef INTMAX_MAX
-# ifdef LLONG_MAX
-typedef long long intmax_t;
-#  ifndef HAVE_STRTOLL
-#   define HAVE_STRTOLL true
-#  endif
-#  if HAVE_STRTOLL
-#   define strtoimax strtoll
-#  endif
-#  define INTMAX_MAX LLONG_MAX
-#  define INTMAX_MIN LLONG_MIN
-# else
-typedef long intmax_t;
-#  define INTMAX_MAX LONG_MAX
-#  define INTMAX_MIN LONG_MIN
-# endif
-# ifndef strtoimax
-#  define strtoimax strtol
-# endif
-#endif
-
-#ifndef PRIdMAX
-# if INTMAX_MAX == LLONG_MAX
-#  define PRIdMAX "lld"
-# else
-#  define PRIdMAX "ld"
-# endif
-#endif
-
-#ifndef PTRDIFF_MAX
-# define PTRDIFF_MAX MAXVAL(ptrdiff_t, TYPE_BIT(ptrdiff_t))
-#endif
-
-#ifndef UINT_FAST32_MAX
-typedef unsigned long uint_fast32_t;
-#endif
-
-#ifndef UINT_FAST64_MAX
-# if 3 <= ULONG_MAX >> 31 >> 31
-typedef unsigned long uint_fast64_t;
-#  define UINT_FAST64_MAX ULONG_MAX
-# else
-/* If this fails, compile with -DHAVE_STDINT_H or with a better compiler.  */
-typedef unsigned long long uint_fast64_t;
-#  define UINT_FAST64_MAX ULLONG_MAX
-# endif
-#endif
-
-#ifndef UINTMAX_MAX
-# ifdef ULLONG_MAX
-typedef unsigned long long uintmax_t;
-#  define UINTMAX_MAX ULLONG_MAX
-# else
-typedef unsigned long uintmax_t;
-#  define UINTMAX_MAX ULONG_MAX
-# endif
-#endif
-
-#ifndef PRIuMAX
-# ifdef ULLONG_MAX
-#  define PRIuMAX "llu"
-# else
-#  define PRIuMAX "lu"
-# endif
-#endif
-
-#ifndef SIZE_MAX
-# define SIZE_MAX ((size_t) -1)
-#endif
-
-#endif /* PORT_TO_C89 */
-
-/* The maximum size of any created object, as a signed integer.
-   Although the C standard does not outright prohibit larger objects,
-   behavior is undefined if the result of pointer subtraction does not
-   fit into ptrdiff_t, and the code assumes in several places that
-   pointer subtraction works.  As a practical matter it's OK to not
-   support objects larger than this.  */
-#define INDEX_MAX ((ptrdiff_t) min(PTRDIFF_MAX, SIZE_MAX))
-
-/* Support ckd_add, ckd_sub, ckd_mul on C23 or recent-enough GCC-like
-   hosts, unless compiled with -DHAVE_STDCKDINT_H=0 or with pre-C23 EDG.  */
-#if !defined HAVE_STDCKDINT_H && defined __has_include
-# if __has_include(<stdckdint.h>)
-#  define HAVE_STDCKDINT_H true
-# endif
-#endif
-#ifdef HAVE_STDCKDINT_H
-# if HAVE_STDCKDINT_H
-#  include <stdckdint.h>
-# endif
-#elif defined __EDG__
-/* Do nothing, to work around EDG bug <https://bugs.gnu.org/53256>.  */
-#elif defined __has_builtin
-# if __has_builtin(__builtin_add_overflow)
-#  define ckd_add(r, a, b) __builtin_add_overflow(a, b, r)
-# endif
-# if __has_builtin(__builtin_sub_overflow)
-#  define ckd_sub(r, a, b) __builtin_sub_overflow(a, b, r)
-# endif
-# if __has_builtin(__builtin_mul_overflow)
-#  define ckd_mul(r, a, b) __builtin_mul_overflow(a, b, r)
-# endif
-#elif 7 <= __GNUC__
-# define ckd_add(r, a, b) __builtin_add_overflow(a, b, r)
-# define ckd_sub(r, a, b) __builtin_sub_overflow(a, b, r)
-# define ckd_mul(r, a, b) __builtin_mul_overflow(a, b, r)
-#endif
-
-#if 3 <= __GNUC__
-# define ATTRIBUTE_MALLOC __attribute__((malloc))
-# define ATTRIBUTE_FORMAT(spec) __attribute__((format spec))
-#else
-# define ATTRIBUTE_MALLOC /* empty */
-# define ATTRIBUTE_FORMAT(spec) /* empty */
-#endif
-
-#if (defined __has_c_attribute \
-     && (202311 <= __STDC_VERSION__ || !defined __STRICT_ANSI__))
-# define HAVE___HAS_C_ATTRIBUTE true
-#else
-# define HAVE___HAS_C_ATTRIBUTE false
-#endif
-
-#if HAVE___HAS_C_ATTRIBUTE
-# if __has_c_attribute(deprecated)
-#  define ATTRIBUTE_DEPRECATED [[deprecated]]
-# endif
-#endif
-#ifndef ATTRIBUTE_DEPRECATED
-# if 3 < __GNUC__ + (2 <= __GNUC_MINOR__)
-#  define ATTRIBUTE_DEPRECATED __attribute__((deprecated))
-# else
-#  define ATTRIBUTE_DEPRECATED /* empty */
-# endif
-#endif
-
-#if HAVE___HAS_C_ATTRIBUTE
-# if __has_c_attribute(fallthrough)
-#  define ATTRIBUTE_FALLTHROUGH [[fallthrough]]
-# endif
-#endif
-#ifndef ATTRIBUTE_FALLTHROUGH
-# if 7 <= __GNUC__
-#  define ATTRIBUTE_FALLTHROUGH __attribute__((fallthrough))
-# else
-#  define ATTRIBUTE_FALLTHROUGH ((void) 0)
-# endif
-#endif
-
-#if HAVE___HAS_C_ATTRIBUTE
-# if __has_c_attribute(maybe_unused)
-#  define ATTRIBUTE_MAYBE_UNUSED [[maybe_unused]]
-# endif
-#endif
-#ifndef ATTRIBUTE_MAYBE_UNUSED
-# if 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
-#  define ATTRIBUTE_MAYBE_UNUSED __attribute__((unused))
-# else
-#  define ATTRIBUTE_MAYBE_UNUSED /* empty */
-# endif
-#endif
-
-#if HAVE___HAS_C_ATTRIBUTE
-# if __has_c_attribute(noreturn)
-#  define ATTRIBUTE_NORETURN [[noreturn]]
-# endif
-#endif
-#ifndef ATTRIBUTE_NORETURN
-# if 201112 <= __STDC_VERSION__
-#  define ATTRIBUTE_NORETURN _Noreturn
-# elif 2 < __GNUC__ + (8 <= __GNUC_MINOR__)
-#  define ATTRIBUTE_NORETURN __attribute__((noreturn))
-# else
-#  define ATTRIBUTE_NORETURN /* empty */
-# endif
-#endif
-
-#if HAVE___HAS_C_ATTRIBUTE
-# if __has_c_attribute(reproducible)
-#  define ATTRIBUTE_REPRODUCIBLE [[reproducible]]
-# endif
-#endif
-#ifndef ATTRIBUTE_REPRODUCIBLE
-# if 3 <= __GNUC__
-#  define ATTRIBUTE_REPRODUCIBLE __attribute__((pure))
-# else
-#  define ATTRIBUTE_REPRODUCIBLE /* empty */
-# endif
-#endif
-
-#if HAVE___HAS_C_ATTRIBUTE
-# if __has_c_attribute(unsequenced)
-#  define ATTRIBUTE_UNSEQUENCED [[unsequenced]]
-# endif
-#endif
-#ifndef ATTRIBUTE_UNSEQUENCED
-# if 3 <= __GNUC__
-#  define ATTRIBUTE_UNSEQUENCED __attribute__((const))
-# else
-#  define ATTRIBUTE_UNSEQUENCED /* empty */
-# endif
-#endif
-
-#if (__STDC_VERSION__ < 199901 && !defined restrict \
-     && (PORT_TO_C89 || defined _MSC_VER))
-# define restrict /* empty */
-#endif
-
-/*
-** Workarounds for compilers/systems.
-*/
-
-#ifndef EPOCH_LOCAL
-# define EPOCH_LOCAL 0
-#endif
-#ifndef EPOCH_OFFSET
-# define EPOCH_OFFSET 0
-#endif
-#ifndef RESERVE_STD_EXT_IDS
-# define RESERVE_STD_EXT_IDS 0
-#endif
-
-/* If standard C identifiers with external linkage (e.g., localtime)
-   are reserved and are not already being renamed anyway, rename them
-   as if compiling with '-Dtime_tz=time_t'.  */
-#if !defined time_tz && RESERVE_STD_EXT_IDS && USE_LTZ
-# define time_tz time_t
-#endif
-
-/*
-** Compile with -Dtime_tz=T to build the tz package with a private
-** time_t type equivalent to T rather than the system-supplied time_t.
-** This debugging feature can test unusual design decisions
-** (e.g., time_t wider than 'long', or unsigned time_t) even on
-** typical platforms.
-*/
-#if defined time_tz || EPOCH_LOCAL || EPOCH_OFFSET != 0
-# define TZ_TIME_T 1
-#else
-# define TZ_TIME_T 0
-#endif
-
-#if defined LOCALTIME_IMPLEMENTATION && TZ_TIME_T
-static time_t sys_time(time_t *x) { return time(x); }
-#endif
-
-#if TZ_TIME_T
-
-typedef time_tz tz_time_t;
-
-# undef  asctime
-# define asctime tz_asctime
-# undef  asctime_r
-# define asctime_r tz_asctime_r
-# undef  ctime
-# define ctime tz_ctime
-# undef  ctime_r
-# define ctime_r tz_ctime_r
-# undef  difftime
-# define difftime tz_difftime
-# undef  gmtime
-# define gmtime tz_gmtime
-# undef  gmtime_r
-# define gmtime_r tz_gmtime_r
-# undef  localtime
-# define localtime tz_localtime
-# undef  localtime_r
-# define localtime_r tz_localtime_r
-# undef  localtime_rz
-# define localtime_rz tz_localtime_rz
-# undef  mktime
-# define mktime tz_mktime
-# undef  mktime_z
-# define mktime_z tz_mktime_z
-# undef  offtime
-# define offtime tz_offtime
-# undef  posix2time
-# define posix2time tz_posix2time
-# undef  posix2time_z
-# define posix2time_z tz_posix2time_z
-# undef  strftime
-# define strftime tz_strftime
-# undef  time
-# define time tz_time
-# undef  time2posix
-# define time2posix tz_time2posix
-# undef  time2posix_z
-# define time2posix_z tz_time2posix_z
-# undef  time_t
-# define time_t tz_time_t
-# undef  timegm
-# define timegm tz_timegm
-# undef  timelocal
-# define timelocal tz_timelocal
-# undef  timeoff
-# define timeoff tz_timeoff
-# undef  tzalloc
-# define tzalloc tz_tzalloc
-# undef  tzfree
-# define tzfree tz_tzfree
-# undef  tzset
-# define tzset tz_tzset
-# if HAVE_STRFTIME_L
-#  undef  strftime_l
-#  define strftime_l tz_strftime_l
-# endif
-# if HAVE_TZNAME
-#  undef  tzname
-#  define tzname tz_tzname
-# endif
-# if USG_COMPAT
-#  undef  daylight
-#  define daylight tz_daylight
-#  undef  timezone
-#  define timezone tz_timezone
-# endif
-# if ALTZONE
-#  undef  altzone
-#  define altzone tz_altzone
-# endif
-
-# if __STDC_VERSION__ < 202311
-#  define DEPRECATED_IN_C23 /* empty */
-# else
-#  define DEPRECATED_IN_C23 ATTRIBUTE_DEPRECATED
-# endif
-DEPRECATED_IN_C23 char *asctime(struct tm const *);
-char *asctime_r(struct tm const *restrict, char *restrict);
-DEPRECATED_IN_C23 char *ctime(time_t const *);
-char *ctime_r(time_t const *, char *);
-ATTRIBUTE_UNSEQUENCED double difftime(time_t, time_t);
-size_t strftime(char *restrict, size_t, char const *restrict,
-		struct tm const *restrict);
-# if HAVE_STRFTIME_L
-size_t strftime_l(char *restrict, size_t, char const *restrict,
-		  struct tm const *restrict, locale_t);
-# endif
-struct tm *gmtime(time_t const *);
-struct tm *gmtime_r(time_t const *restrict, struct tm *restrict);
-struct tm *localtime(time_t const *);
-struct tm *localtime_r(time_t const *restrict, struct tm *restrict);
-time_t mktime(struct tm *);
-time_t time(time_t *);
-time_t timegm(struct tm *);
-void tzset(void);
-#endif
-
-#ifndef HAVE_DECL_TIMEGM
-# if (202311 <= __STDC_VERSION__ \
-      || defined __GLIBC__ || defined __tm_zone /* musl */ \
-      || defined __FreeBSD__ || defined __NetBSD__ || defined __OpenBSD__ \
-      || (defined __APPLE__ && defined __MACH__))
-#  define HAVE_DECL_TIMEGM true
-# else
-#  define HAVE_DECL_TIMEGM false
-# endif
-#endif
-#if !HAVE_DECL_TIMEGM && !defined timegm
-time_t timegm(struct tm *);
-#endif
-
-#if !HAVE_DECL_ASCTIME_R && !defined asctime_r
-extern char *asctime_r(struct tm const *restrict, char *restrict);
-#endif
-
-#ifndef HAVE_DECL_ENVIRON
-# if defined environ || defined __USE_GNU
-#  define HAVE_DECL_ENVIRON 1
-# else
-#  define HAVE_DECL_ENVIRON 0
-# endif
-#endif
-
-#if !HAVE_DECL_ENVIRON
-extern char **environ;
-#endif
-
-#if 2 <= HAVE_TZNAME + (TZ_TIME_T || !HAVE_POSIX_DECLS)
-extern char *tzname[];
-#endif
-#if 2 <= USG_COMPAT + (TZ_TIME_T || !HAVE_POSIX_DECLS)
-extern long timezone;
-extern int daylight;
-#endif
-#if 2 <= ALTZONE + (TZ_TIME_T || !HAVE_POSIX_DECLS)
-extern long altzone;
-#endif
-
-/*
-** The STD_INSPIRED functions are similar, but most also need
-** declarations if time_tz is defined.
-*/
-
-#ifndef STD_INSPIRED
-# define STD_INSPIRED 0
-#endif
-#if STD_INSPIRED
-# if TZ_TIME_T || !defined offtime
-struct tm *offtime(time_t const *, long);
-# endif
-# if TZ_TIME_T || !defined timelocal
-time_t timelocal(struct tm *);
-# endif
-# if TZ_TIME_T || !defined timeoff
-time_t timeoff(struct tm *, long);
-# endif
-# if TZ_TIME_T || !defined time2posix
-time_t time2posix(time_t);
-# endif
-# if TZ_TIME_T || !defined posix2time
-time_t posix2time(time_t);
-# endif
-#endif
-
-/* Infer TM_ZONE on systems where this information is known, but suppress
-   guessing if NO_TM_ZONE is defined.  Similarly for TM_GMTOFF.  */
-#if (defined __GLIBC__ \
-     || defined __tm_zone /* musl */ \
-     || defined __FreeBSD__ || defined __NetBSD__ || defined __OpenBSD__ \
-     || (defined __APPLE__ && defined __MACH__))
-# if !defined TM_GMTOFF && !defined NO_TM_GMTOFF
-#  define TM_GMTOFF tm_gmtoff
-# endif
-# if !defined TM_ZONE && !defined NO_TM_ZONE
-#  define TM_ZONE tm_zone
-# endif
-#endif
-
-/*
-** Define functions that are ABI compatible with NetBSD but have
-** better prototypes.  NetBSD 6.1.4 defines a pointer type timezone_t
-** and labors under the misconception that 'const timezone_t' is a
-** pointer to a constant.  This use of 'const' is ineffective, so it
-** is not done here.  What we call 'struct state' NetBSD calls
-** 'struct __state', but this is a private name so it doesn't matter.
-*/
-#if NETBSD_INSPIRED
-typedef struct state *timezone_t;
-struct tm *localtime_rz(timezone_t restrict, time_t const *restrict,
-			struct tm *restrict);
-time_t mktime_z(timezone_t restrict, struct tm *restrict);
-timezone_t tzalloc(char const *);
-void tzfree(timezone_t);
-# if STD_INSPIRED
-#  if TZ_TIME_T || !defined posix2time_z
-ATTRIBUTE_REPRODUCIBLE time_t posix2time_z(timezone_t, time_t);
-#  endif
-#  if TZ_TIME_T || !defined time2posix_z
-ATTRIBUTE_REPRODUCIBLE time_t time2posix_z(timezone_t, time_t);
-#  endif
-# endif
-#endif
-
-/*
-** Finally, some convenience items.
-*/
-
-#define TYPE_BIT(type) (CHAR_BIT * (ptrdiff_t) sizeof(type))
-#define TYPE_SIGNED(type) (((type) -1) < 0)
-#define TWOS_COMPLEMENT(t) ((t) ~ (t) 0 < 0)
-
-/* Minimum and maximum of two values.  Use lower case to avoid
-   naming clashes with standard include files.  */
-#define max(a, b) ((a) > (b) ? (a) : (b))
-#define min(a, b) ((a) < (b) ? (a) : (b))
-
-/* Max and min values of the integer type T, of which only the bottom
-   B bits are used, and where the highest-order used bit is considered
-   to be a sign bit if T is signed.  */
-#define MAXVAL(t, b)						\
-  ((t) (((t) 1 << ((b) - 1 - TYPE_SIGNED(t)))			\
-	- 1 + ((t) 1 << ((b) - 1 - TYPE_SIGNED(t)))))
-#define MINVAL(t, b)						\
-  ((t) (TYPE_SIGNED(t) ? - TWOS_COMPLEMENT(t) - MAXVAL(t, b) : 0))
-
-/* The extreme time values, assuming no padding.  */
-#define TIME_T_MIN_NO_PADDING MINVAL(time_t, TYPE_BIT(time_t))
-#define TIME_T_MAX_NO_PADDING MAXVAL(time_t, TYPE_BIT(time_t))
-
-/* The extreme time values.  These are macros, not constants, so that
-   any portability problems occur only when compiling .c files that use
-   the macros, which is safer for applications that need only zdump and zic.
-   This implementation assumes no padding if time_t is signed and
-   either the compiler lacks support for _Generic or time_t is not one
-   of the standard signed integer types.  */
-#if HAVE__GENERIC
-# define TIME_T_MIN \
-    _Generic((time_t) 0, \
-	     signed char: SCHAR_MIN, short: SHRT_MIN, \
-	     int: INT_MIN, long: LONG_MIN, long long: LLONG_MIN, \
-	     default: TIME_T_MIN_NO_PADDING)
-# define TIME_T_MAX \
-    (TYPE_SIGNED(time_t) \
-     ? _Generic((time_t) 0, \
-		signed char: SCHAR_MAX, short: SHRT_MAX, \
-		int: INT_MAX, long: LONG_MAX, long long: LLONG_MAX, \
-		default: TIME_T_MAX_NO_PADDING)			    \
-     : (time_t) -1)
-enum { SIGNED_PADDING_CHECK_NEEDED
-         = _Generic((time_t) 0,
-		    signed char: false, short: false,
-		    int: false, long: false, long long: false,
-		    default: true) };
-#else
-# define TIME_T_MIN TIME_T_MIN_NO_PADDING
-# define TIME_T_MAX TIME_T_MAX_NO_PADDING
-enum { SIGNED_PADDING_CHECK_NEEDED = true };
-#endif
-/* Try to check the padding assumptions.  Although TIME_T_MAX and the
-   following check can both have undefined behavior on oddball
-   platforms due to shifts exceeding widths of signed integers, these
-   platforms' compilers are likely to diagnose these issues in integer
-   constant expressions, so it shouldn't hurt to check statically.  */
-static_assert(! TYPE_SIGNED(time_t) || ! SIGNED_PADDING_CHECK_NEEDED
-	      || TIME_T_MAX >> (TYPE_BIT(time_t) - 2) == 1);
-
-/*
-** 302 / 1000 is log10(2.0) rounded up.
-** Subtract one for the sign bit if the type is signed;
-** add one for integer division truncation;
-** add one more for a minus sign if the type is signed.
-*/
-#define INT_STRLEN_MAXIMUM(type) \
-	((TYPE_BIT(type) - TYPE_SIGNED(type)) * 302 / 1000 + \
-	1 + TYPE_SIGNED(type))
-
-/*
-** INITIALIZE(x)
-*/
-
-#ifdef GCC_LINT
-# define INITIALIZE(x)	((x) = 0)
-#else
-# define INITIALIZE(x)
-#endif
-
-/* Whether memory access must strictly follow the C standard.
-   If 0, it's OK to read uninitialized storage so long as the value is
-   not relied upon.  Defining it to 0 lets mktime access parts of
-   struct tm that might be uninitialized, as a heuristic when the
-   standard doesn't say what to return and when tm_gmtoff can help
-   mktime likely infer a better value.  */
-#ifndef UNINIT_TRAP
-# define UNINIT_TRAP 0
-#endif
-
-#ifdef DEBUG
-# undef unreachable
-# define unreachable() abort()
-#elif !defined unreachable
-# ifdef __has_builtin
-#  if __has_builtin(__builtin_unreachable)
-#   define unreachable() __builtin_unreachable()
-#  endif
-# elif 4 < __GNUC__ + (5 <= __GNUC_MINOR__)
-#  define unreachable() __builtin_unreachable()
-# endif
-# ifndef unreachable
-#  define unreachable() ((void) 0)
-# endif
-#endif
-
-/*
-** For the benefit of GNU folk...
-** '_(MSGID)' uses the current locale's message library string for MSGID.
-** The default is to use gettext if available, and use MSGID otherwise.
-*/
-
-#ifndef _
-#if HAVE_GETTEXT
-#define _(msgid) gettext(msgid)
-#else /* !HAVE_GETTEXT */
-#define _(msgid) msgid
-#endif /* !HAVE_GETTEXT */
-#endif /* !defined _ */
-
-#if !defined TZ_DOMAIN && defined HAVE_GETTEXT
-# define TZ_DOMAIN "tz"
-#endif
-
-#if HAVE_INCOMPATIBLE_CTIME_R
-#undef asctime_r
-#undef ctime_r
-char *asctime_r(struct tm const *restrict, char *restrict);
-char *ctime_r(time_t const *, char *);
-#endif /* HAVE_INCOMPATIBLE_CTIME_R */
-
-/* Handy macros that are independent of tzfile implementation.  */
-
-enum {
-  SECSPERMIN = 60,
-  MINSPERHOUR = 60,
-  SECSPERHOUR = SECSPERMIN * MINSPERHOUR,
-  HOURSPERDAY = 24,
-  DAYSPERWEEK = 7,
-  DAYSPERNYEAR = 365,
-  DAYSPERLYEAR = DAYSPERNYEAR + 1,
-  MONSPERYEAR = 12,
-  YEARSPERREPEAT = 400	/* years before a Gregorian repeat */
-};
-
-#define SECSPERDAY	((int_fast32_t) SECSPERHOUR * HOURSPERDAY)
-
-#define DAYSPERREPEAT		((int_fast32_t) 400 * 365 + 100 - 4 + 1)
-#define SECSPERREPEAT		((int_fast64_t) DAYSPERREPEAT * SECSPERDAY)
-#define AVGSECSPERYEAR		(SECSPERREPEAT / YEARSPERREPEAT)
-
-enum {
-  TM_SUNDAY,
-  TM_MONDAY,
-  TM_TUESDAY,
-  TM_WEDNESDAY,
-  TM_THURSDAY,
-  TM_FRIDAY,
-  TM_SATURDAY
-};
-
-enum {
-  TM_JANUARY,
-  TM_FEBRUARY,
-  TM_MARCH,
-  TM_APRIL,
-  TM_MAY,
-  TM_JUNE,
-  TM_JULY,
-  TM_AUGUST,
-  TM_SEPTEMBER,
-  TM_OCTOBER,
-  TM_NOVEMBER,
-  TM_DECEMBER
-};
-
-enum {
-  TM_YEAR_BASE = 1900,
-  TM_WDAY_BASE = TM_MONDAY,
-  EPOCH_YEAR = 1970,
-  EPOCH_WDAY = TM_THURSDAY
-};
-
-#define isleap(y) (((y) % 4) == 0 && (((y) % 100) != 0 || ((y) % 400) == 0))
-
-/*
-** Since everything in isleap is modulo 400 (or a factor of 400), we know that
-**	isleap(y) == isleap(y % 400)
-** and so
-**	isleap(a + b) == isleap((a + b) % 400)
-** or
-**	isleap(a + b) == isleap(a % 400 + b % 400)
-** This is true even if % means modulo rather than Fortran remainder
-** (which is allowed by C89 but not by C99 or later).
-** We use this to avoid addition overflow problems.
-*/
-
-#define isleap_sum(a, b)	isleap((a) % 400 + (b) % 400)
-
-#endif /* !defined PRIVATE_H */
Index: sources/iana/tz/Makefile
===================================================================
--- sources/iana/tz/Makefile	(revision 393)
+++ sources/iana/tz/Makefile	(revision 394)
@@ -7,7 +7,7 @@
 
 url         = $(DOWNLOAD_SERVER)/sources/iana/tz
 
-versions    = 2023c
+versions    = 2024b
 
 tarballs    = $(sort \
                 $(shell \
@@ -18,8 +18,8 @@
                )
 sha1s       = $(addsuffix .sha1sum, $(tarballs))
 
-patches     = $(CURDIR)/patches/glibc-2.37-tzcode-2023c.patch
-patches    += $(CURDIR)/patches/tzcode-2023c-version.patch
+patches     = $(CURDIR)/patches/glibc-2.40-tzcode-2024b.patch
+patches    += $(CURDIR)/patches/tzcode-2024b-version.patch
 
 .NOTPARALLEL: $(patches)
 
@@ -54,8 +54,8 @@
 
 $(patches): $(sha1s)
 	@echo -e "\n======= Create Patches =======\n" ; \
-	 ( cd create-2023c-glibc-2.37-patch ; ./create.patch.sh ) ; \
-	 ( cd create-2023c-version-patch    ; ./create.patch.sh ) ; \
+	 ( cd create-2024b-glibc-2.40-patch ; ./create.patch.sh ) ; \
+	 ( cd create-2024b-version-patch    ; ./create.patch.sh ) ; \
 	 echo -e "\n"
 
 download_clean:
Index: sources/iana/tz/create-2024b-glibc-2.40-patch/create.patch.sh
===================================================================
--- sources/iana/tz/create-2024b-glibc-2.40-patch/create.patch.sh	(nonexistent)
+++ sources/iana/tz/create-2024b-glibc-2.40-patch/create.patch.sh	(revision 394)
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+VERSION=2024b
+GLIBC_VERSION=2.40
+
+mkdir -p glibc-$GLIBC_VERSION/timezone
+tar -C glibc-$GLIBC_VERSION/timezone --files-from=file.list -xzvf ../tzcode$VERSION.tar.gz
+mv glibc-$GLIBC_VERSION glibc-$GLIBC_VERSION-orig
+
+cp -rf ./glibc-$GLIBC_VERSION-new ./glibc-$GLIBC_VERSION
+
+diff --unified -Nr  glibc-$GLIBC_VERSION-orig  glibc-$GLIBC_VERSION > glibc-$GLIBC_VERSION-tzcode-$VERSION.patch
+
+mv glibc-$GLIBC_VERSION-tzcode-$VERSION.patch ../patches
+
+rm -rf ./glibc-$GLIBC_VERSION
+rm -rf ./glibc-$GLIBC_VERSION-orig

Property changes on: sources/iana/tz/create-2024b-glibc-2.40-patch/create.patch.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: sources/iana/tz/create-2024b-glibc-2.40-patch/file.list
===================================================================
--- sources/iana/tz/create-2024b-glibc-2.40-patch/file.list	(nonexistent)
+++ sources/iana/tz/create-2024b-glibc-2.40-patch/file.list	(revision 394)
@@ -0,0 +1,3 @@
+private.h
+zdump.c
+zic.c
Index: sources/iana/tz/create-2024b-glibc-2.40-patch/glibc-2.40-new/timezone/private.h
===================================================================
--- sources/iana/tz/create-2024b-glibc-2.40-patch/glibc-2.40-new/timezone/private.h	(nonexistent)
+++ sources/iana/tz/create-2024b-glibc-2.40-patch/glibc-2.40-new/timezone/private.h	(revision 394)
@@ -0,0 +1,1060 @@
+/* Private header for tzdb code.  */
+
+#ifndef PRIVATE_H
+
+#define PRIVATE_H
+
+/*
+** This file is in the public domain, so clarified as of
+** 1996-06-05 by Arthur David Olson.
+*/
+
+/*
+** This header is for use ONLY with the time conversion code.
+** There is no guarantee that it will remain unchanged,
+** or that it will remain at all.
+** Do NOT copy it to any system include directory.
+** Thank you!
+*/
+
+/* PORT_TO_C89 means the code should work even if the underlying
+   compiler and library support only C89 plus C99's 'long long'
+   and perhaps a few other extensions to C89.
+
+   This macro is obsolescent, and the plan is to remove it along with
+   associated code.  A good time to do that might be in the year 2029
+   because RHEL 7 (whose GCC defaults to C89) extended life cycle
+   support (ELS) is scheduled to end on 2028-06-30.  */
+#ifndef PORT_TO_C89
+# define PORT_TO_C89 0
+#endif
+
+/* SUPPORT_C89 means the tzcode library should support C89 callers
+   in addition to the usual support for C99-and-later callers.
+   This defaults to 1 as POSIX requires, even though that can trigger
+   latent bugs in callers.  */
+#ifndef SUPPORT_C89
+# define SUPPORT_C89 1
+#endif
+
+#ifndef __STDC_VERSION__
+# define __STDC_VERSION__ 0
+#endif
+
+/* Define true, false and bool if they don't work out of the box.  */
+#if PORT_TO_C89 && __STDC_VERSION__ < 199901
+# define true 1
+# define false 0
+# define bool int
+#elif __STDC_VERSION__ < 202311
+# include <stdbool.h>
+#endif
+
+#if __STDC_VERSION__ < 202311
+# define static_assert(cond) extern int static_assert_check[(cond) ? 1 : -1]
+#endif
+
+/*
+** zdump has been made independent of the rest of the time
+** conversion package to increase confidence in the verification it provides.
+** You can use zdump to help in verifying other implementations.
+** To do this, compile with -DUSE_LTZ=0 and link without the tz library.
+*/
+#ifndef USE_LTZ
+# define USE_LTZ 1
+#endif
+
+/* This string was in the Factory zone through version 2016f.  */
+#define GRANDPARENTED	"Local time zone must be set--see zic manual page"
+
+/*
+** Defaults for preprocessor symbols.
+** You can override these in your C compiler options, e.g. '-DHAVE_GETTEXT=1'.
+*/
+
+#if !defined HAVE__GENERIC && defined __has_extension
+# if !__has_extension(c_generic_selections)
+#  define HAVE__GENERIC 0
+# endif
+#endif
+/* _Generic is buggy in pre-4.9 GCC.  */
+#if !defined HAVE__GENERIC && defined __GNUC__ && !defined __STRICT_ANSI__
+# define HAVE__GENERIC (4 < __GNUC__ + (9 <= __GNUC_MINOR__))
+#endif
+#ifndef HAVE__GENERIC
+# define HAVE__GENERIC (201112 <= __STDC_VERSION__)
+#endif
+
+#if !defined HAVE_GETTEXT && defined __has_include
+# if __has_include(<libintl.h>)
+#  define HAVE_GETTEXT true
+# endif
+#endif
+#ifndef HAVE_GETTEXT
+# define HAVE_GETTEXT false
+#endif
+
+#ifndef HAVE_INCOMPATIBLE_CTIME_R
+# define HAVE_INCOMPATIBLE_CTIME_R 0
+#endif
+
+#ifndef HAVE_LINK
+# define HAVE_LINK 1
+#endif /* !defined HAVE_LINK */
+
+#ifndef HAVE_MALLOC_ERRNO
+# define HAVE_MALLOC_ERRNO 1
+#endif
+
+#ifndef HAVE_POSIX_DECLS
+# define HAVE_POSIX_DECLS 1
+#endif
+
+#ifndef HAVE_SETENV
+# define HAVE_SETENV 1
+#endif
+
+#ifndef HAVE_STRDUP
+# define HAVE_STRDUP 1
+#endif
+
+#ifndef HAVE_SYMLINK
+# define HAVE_SYMLINK 1
+#endif /* !defined HAVE_SYMLINK */
+
+#if !defined HAVE_SYS_STAT_H && defined __has_include
+# if !__has_include(<sys/stat.h>)
+#  define HAVE_SYS_STAT_H false
+# endif
+#endif
+#ifndef HAVE_SYS_STAT_H
+# define HAVE_SYS_STAT_H true
+#endif
+
+#if !defined HAVE_UNISTD_H && defined __has_include
+# if !__has_include(<unistd.h>)
+#  define HAVE_UNISTD_H false
+# endif
+#endif
+#ifndef HAVE_UNISTD_H
+# define HAVE_UNISTD_H true
+#endif
+
+#ifndef NETBSD_INSPIRED
+# define NETBSD_INSPIRED 1
+#endif
+
+#if HAVE_INCOMPATIBLE_CTIME_R
+# define asctime_r _incompatible_asctime_r
+# define ctime_r _incompatible_ctime_r
+#endif /* HAVE_INCOMPATIBLE_CTIME_R */
+
+/* Enable tm_gmtoff, tm_zone, and environ on GNUish systems.  */
+#define _GNU_SOURCE 1
+/* Fix asctime_r on Solaris 11.  */
+#define _POSIX_PTHREAD_SEMANTICS 1
+/* Enable strtoimax on pre-C99 Solaris 11.  */
+#define __EXTENSIONS__ 1
+
+/* On GNUish systems where time_t might be 32 or 64 bits, use 64.
+   On these platforms _FILE_OFFSET_BITS must also be 64; otherwise
+   setting _TIME_BITS to 64 does not work.  The code does not
+   otherwise rely on _FILE_OFFSET_BITS being 64, since it does not
+   use off_t or functions like 'stat' that depend on off_t.  */
+#ifndef _FILE_OFFSET_BITS
+# define _FILE_OFFSET_BITS 64
+#endif
+#if !defined _TIME_BITS && _FILE_OFFSET_BITS == 64
+# define _TIME_BITS 64
+#endif
+
+/*
+** Nested includes
+*/
+
+/* Avoid clashes with NetBSD by renaming NetBSD's declarations.
+   If defining the 'timezone' variable, avoid a clash with FreeBSD's
+   'timezone' function by renaming its declaration.  */
+#define localtime_rz sys_localtime_rz
+#define mktime_z sys_mktime_z
+#define posix2time_z sys_posix2time_z
+#define time2posix_z sys_time2posix_z
+#if defined USG_COMPAT && USG_COMPAT == 2
+# define timezone sys_timezone
+#endif
+#define timezone_t sys_timezone_t
+#define tzalloc sys_tzalloc
+#define tzfree sys_tzfree
+#include <time.h>
+#undef localtime_rz
+#undef mktime_z
+#undef posix2time_z
+#undef time2posix_z
+#if defined USG_COMPAT && USG_COMPAT == 2
+# undef timezone
+#endif
+#undef timezone_t
+#undef tzalloc
+#undef tzfree
+
+#include <stddef.h>
+#include <string.h>
+#if !PORT_TO_C89
+# include <inttypes.h>
+#endif
+#include <limits.h>	/* for CHAR_BIT et al. */
+#include <stdlib.h>
+
+#include <errno.h>
+
+#ifndef EINVAL
+# define EINVAL ERANGE
+#endif
+
+#ifndef ELOOP
+# define ELOOP EINVAL
+#endif
+#ifndef ENAMETOOLONG
+# define ENAMETOOLONG EINVAL
+#endif
+#ifndef ENOMEM
+# define ENOMEM EINVAL
+#endif
+#ifndef ENOTSUP
+# define ENOTSUP EINVAL
+#endif
+#ifndef EOVERFLOW
+# define EOVERFLOW EINVAL
+#endif
+
+#if HAVE_GETTEXT
+# include <libintl.h>
+#endif /* HAVE_GETTEXT */
+
+#if HAVE_UNISTD_H
+# include <unistd.h> /* for R_OK, and other POSIX goodness */
+#endif /* HAVE_UNISTD_H */
+
+/* SUPPORT_POSIX2008 means the tzcode library should support
+   POSIX.1-2017-and-earlier callers in addition to the usual support for
+   POSIX.1-2024-and-later callers; however, this can be
+   incompatible with POSIX.1-2024-and-later callers.
+   This macro is obsolescent, and the plan is to remove it
+   along with any code needed only when it is nonzero.
+   A good time to do that might be in the year 2034.
+   This macro's name is SUPPORT_POSIX2008 because _POSIX_VERSION == 200809
+   in POSIX.1-2017, a minor revision of POSIX.1-2008.  */
+#ifndef SUPPORT_POSIX2008
+# if defined _POSIX_VERSION && _POSIX_VERSION <= 200809
+#  define SUPPORT_POSIX2008 1
+# else
+#  define SUPPORT_POSIX2008 0
+# endif
+#endif
+
+#ifndef HAVE_DECL_ASCTIME_R
+# if SUPPORT_POSIX2008
+#  define HAVE_DECL_ASCTIME_R 1
+# else
+#  define HAVE_DECL_ASCTIME_R 0
+# endif
+#endif
+
+#ifndef HAVE_STRFTIME_L
+# if _POSIX_VERSION < 200809
+#  define HAVE_STRFTIME_L 0
+# else
+#  define HAVE_STRFTIME_L 1
+# endif
+#endif
+
+#ifndef USG_COMPAT
+# ifndef _XOPEN_VERSION
+#  define USG_COMPAT 0
+# else
+#  define USG_COMPAT 1
+# endif
+#endif
+
+#ifndef HAVE_TZNAME
+# if _POSIX_VERSION < 198808 && !USG_COMPAT
+#  define HAVE_TZNAME 0
+# else
+#  define HAVE_TZNAME 1
+# endif
+#endif
+
+#ifndef ALTZONE
+# if defined __sun || defined _M_XENIX
+#  define ALTZONE 1
+# else
+#  define ALTZONE 0
+# endif
+#endif
+
+#ifndef R_OK
+# define R_OK 4
+#endif /* !defined R_OK */
+
+#if PORT_TO_C89
+
+/*
+** Define HAVE_STDINT_H's default value here, rather than at the
+** start, since __GLIBC__ and INTMAX_MAX's values depend on
+** previously included files.  glibc 2.1 and Solaris 10 and later have
+** stdint.h, even with pre-C99 compilers.
+*/
+#if !defined HAVE_STDINT_H && defined __has_include
+# define HAVE_STDINT_H true /* C23 __has_include implies C99 stdint.h.  */
+#endif
+#ifndef HAVE_STDINT_H
+# define HAVE_STDINT_H \
+   (199901 <= __STDC_VERSION__ \
+    || 2 < __GLIBC__ + (1 <= __GLIBC_MINOR__) \
+    || __CYGWIN__ || INTMAX_MAX)
+#endif /* !defined HAVE_STDINT_H */
+
+#if HAVE_STDINT_H
+# include <stdint.h>
+#endif /* !HAVE_STDINT_H */
+
+#ifndef HAVE_INTTYPES_H
+# define HAVE_INTTYPES_H HAVE_STDINT_H
+#endif
+#if HAVE_INTTYPES_H
+# include <inttypes.h>
+#endif
+
+/* Pre-C99 GCC compilers define __LONG_LONG_MAX__ instead of LLONG_MAX.  */
+#if defined __LONG_LONG_MAX__ && !defined __STRICT_ANSI__
+# ifndef LLONG_MAX
+#  define LLONG_MAX __LONG_LONG_MAX__
+# endif
+# ifndef LLONG_MIN
+#  define LLONG_MIN (-1 - LLONG_MAX)
+# endif
+# ifndef ULLONG_MAX
+#  define ULLONG_MAX (LLONG_MAX * 2ull + 1)
+# endif
+#endif
+
+#ifndef INT_FAST64_MAX
+# if 1 <= LONG_MAX >> 31 >> 31
+typedef long int_fast64_t;
+#  define INT_FAST64_MIN LONG_MIN
+#  define INT_FAST64_MAX LONG_MAX
+# else
+/* If this fails, compile with -DHAVE_STDINT_H or with a better compiler.  */
+typedef long long int_fast64_t;
+#  define INT_FAST64_MIN LLONG_MIN
+#  define INT_FAST64_MAX LLONG_MAX
+# endif
+#endif
+
+#ifndef PRIdFAST64
+# if INT_FAST64_MAX == LONG_MAX
+#  define PRIdFAST64 "ld"
+# else
+#  define PRIdFAST64 "lld"
+# endif
+#endif
+
+#ifndef SCNdFAST64
+# define SCNdFAST64 PRIdFAST64
+#endif
+
+#ifndef INT_FAST32_MAX
+# if INT_MAX >> 31 == 0
+typedef long int_fast32_t;
+#  define INT_FAST32_MAX LONG_MAX
+#  define INT_FAST32_MIN LONG_MIN
+# else
+typedef int int_fast32_t;
+#  define INT_FAST32_MAX INT_MAX
+#  define INT_FAST32_MIN INT_MIN
+# endif
+#endif
+
+#ifndef INTMAX_MAX
+# ifdef LLONG_MAX
+typedef long long intmax_t;
+#  ifndef HAVE_STRTOLL
+#   define HAVE_STRTOLL true
+#  endif
+#  if HAVE_STRTOLL
+#   define strtoimax strtoll
+#  endif
+#  define INTMAX_MAX LLONG_MAX
+#  define INTMAX_MIN LLONG_MIN
+# else
+typedef long intmax_t;
+#  define INTMAX_MAX LONG_MAX
+#  define INTMAX_MIN LONG_MIN
+# endif
+# ifndef strtoimax
+#  define strtoimax strtol
+# endif
+#endif
+
+#ifndef PRIdMAX
+# if INTMAX_MAX == LLONG_MAX
+#  define PRIdMAX "lld"
+# else
+#  define PRIdMAX "ld"
+# endif
+#endif
+
+#ifndef PTRDIFF_MAX
+# define PTRDIFF_MAX MAXVAL(ptrdiff_t, TYPE_BIT(ptrdiff_t))
+#endif
+
+#ifndef UINT_FAST32_MAX
+typedef unsigned long uint_fast32_t;
+#endif
+
+#ifndef UINT_FAST64_MAX
+# if 3 <= ULONG_MAX >> 31 >> 31
+typedef unsigned long uint_fast64_t;
+#  define UINT_FAST64_MAX ULONG_MAX
+# else
+/* If this fails, compile with -DHAVE_STDINT_H or with a better compiler.  */
+typedef unsigned long long uint_fast64_t;
+#  define UINT_FAST64_MAX ULLONG_MAX
+# endif
+#endif
+
+#ifndef UINTMAX_MAX
+# ifdef ULLONG_MAX
+typedef unsigned long long uintmax_t;
+#  define UINTMAX_MAX ULLONG_MAX
+# else
+typedef unsigned long uintmax_t;
+#  define UINTMAX_MAX ULONG_MAX
+# endif
+#endif
+
+#ifndef PRIuMAX
+# ifdef ULLONG_MAX
+#  define PRIuMAX "llu"
+# else
+#  define PRIuMAX "lu"
+# endif
+#endif
+
+#ifndef SIZE_MAX
+# define SIZE_MAX ((size_t) -1)
+#endif
+
+#endif /* PORT_TO_C89 */
+
+/* The maximum size of any created object, as a signed integer.
+   Although the C standard does not outright prohibit larger objects,
+   behavior is undefined if the result of pointer subtraction does not
+   fit into ptrdiff_t, and the code assumes in several places that
+   pointer subtraction works.  As a practical matter it's OK to not
+   support objects larger than this.  */
+#define INDEX_MAX ((ptrdiff_t) min(PTRDIFF_MAX, SIZE_MAX))
+
+/* Support ckd_add, ckd_sub, ckd_mul on C23 or recent-enough GCC-like
+   hosts, unless compiled with -DHAVE_STDCKDINT_H=0 or with pre-C23 EDG.  */
+#if !defined HAVE_STDCKDINT_H && defined __has_include
+# if __has_include(<stdckdint.h>)
+#  define HAVE_STDCKDINT_H true
+# endif
+#endif
+#ifdef HAVE_STDCKDINT_H
+# if HAVE_STDCKDINT_H
+#  include <stdckdint.h>
+# endif
+#elif defined __EDG__
+/* Do nothing, to work around EDG bug <https://bugs.gnu.org/53256>.  */
+#elif defined __has_builtin
+# if __has_builtin(__builtin_add_overflow)
+#  define ckd_add(r, a, b) __builtin_add_overflow(a, b, r)
+# endif
+# if __has_builtin(__builtin_sub_overflow)
+#  define ckd_sub(r, a, b) __builtin_sub_overflow(a, b, r)
+# endif
+# if __has_builtin(__builtin_mul_overflow)
+#  define ckd_mul(r, a, b) __builtin_mul_overflow(a, b, r)
+# endif
+#elif 7 <= __GNUC__
+# define ckd_add(r, a, b) __builtin_add_overflow(a, b, r)
+# define ckd_sub(r, a, b) __builtin_sub_overflow(a, b, r)
+# define ckd_mul(r, a, b) __builtin_mul_overflow(a, b, r)
+#endif
+
+#if (defined __has_c_attribute \
+     && (202311 <= __STDC_VERSION__ || !defined __STRICT_ANSI__))
+# define HAVE___HAS_C_ATTRIBUTE true
+#else
+# define HAVE___HAS_C_ATTRIBUTE false
+#endif
+
+#if HAVE___HAS_C_ATTRIBUTE
+# if __has_c_attribute(deprecated)
+#  define ATTRIBUTE_DEPRECATED [[deprecated]]
+# endif
+#endif
+#ifndef ATTRIBUTE_DEPRECATED
+# if 3 < __GNUC__ + (2 <= __GNUC_MINOR__)
+#  define ATTRIBUTE_DEPRECATED __attribute__((deprecated))
+# else
+#  define ATTRIBUTE_DEPRECATED /* empty */
+# endif
+#endif
+
+#if HAVE___HAS_C_ATTRIBUTE
+# if __has_c_attribute(fallthrough)
+#  define ATTRIBUTE_FALLTHROUGH [[fallthrough]]
+# endif
+#endif
+#ifndef ATTRIBUTE_FALLTHROUGH
+# if 7 <= __GNUC__
+#  define ATTRIBUTE_FALLTHROUGH __attribute__((fallthrough))
+# else
+#  define ATTRIBUTE_FALLTHROUGH ((void) 0)
+# endif
+#endif
+
+#if HAVE___HAS_C_ATTRIBUTE
+# if __has_c_attribute(maybe_unused)
+#  define ATTRIBUTE_MAYBE_UNUSED [[maybe_unused]]
+# endif
+#endif
+#ifndef ATTRIBUTE_MAYBE_UNUSED
+# if 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
+#  define ATTRIBUTE_MAYBE_UNUSED __attribute__((unused))
+# else
+#  define ATTRIBUTE_MAYBE_UNUSED /* empty */
+# endif
+#endif
+
+#if HAVE___HAS_C_ATTRIBUTE
+# if __has_c_attribute(noreturn)
+#  define ATTRIBUTE_NORETURN [[noreturn]]
+# endif
+#endif
+#ifndef ATTRIBUTE_NORETURN
+# if 201112 <= __STDC_VERSION__
+#  define ATTRIBUTE_NORETURN _Noreturn
+# elif 2 < __GNUC__ + (8 <= __GNUC_MINOR__)
+#  define ATTRIBUTE_NORETURN __attribute__((noreturn))
+# else
+#  define ATTRIBUTE_NORETURN /* empty */
+# endif
+#endif
+
+#if HAVE___HAS_C_ATTRIBUTE
+# if __has_c_attribute(reproducible)
+#  define ATTRIBUTE_REPRODUCIBLE [[reproducible]]
+# endif
+#endif
+#ifndef ATTRIBUTE_REPRODUCIBLE
+# define ATTRIBUTE_REPRODUCIBLE /* empty */
+#endif
+
+/* GCC attributes that are useful in tzcode.
+   __attribute__((pure)) is stricter than [[reproducible]],
+   so the latter is an adequate substitute in non-GCC C23 platforms.  */
+#if __GNUC__ < 3
+# define ATTRIBUTE_FORMAT(spec) /* empty */
+# define ATTRIBUTE_PURE ATTRIBUTE_REPRODUCIBLE
+#else
+# define ATTRIBUTE_FORMAT(spec) __attribute__((format spec))
+# define ATTRIBUTE_PURE __attribute__((pure))
+#endif
+
+/* Avoid GCC bug 114833 <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114833>.
+   Remove this macro and its uses when the bug is fixed in a GCC release,
+   because only the latest GCC matters for $(GCC_DEBUG_FLAGS).  */
+#ifdef GCC_LINT
+# define ATTRIBUTE_PURE_114833 ATTRIBUTE_PURE
+#else
+# define ATTRIBUTE_PURE_114833 /* empty */
+#endif
+
+#if (__STDC_VERSION__ < 199901 && !defined restrict \
+     && (PORT_TO_C89 || defined _MSC_VER))
+# define restrict /* empty */
+#endif
+
+/*
+** Workarounds for compilers/systems.
+*/
+
+#ifndef EPOCH_LOCAL
+# define EPOCH_LOCAL 0
+#endif
+#ifndef EPOCH_OFFSET
+# define EPOCH_OFFSET 0
+#endif
+#ifndef RESERVE_STD_EXT_IDS
+# define RESERVE_STD_EXT_IDS 0
+#endif
+
+/* If standard C identifiers with external linkage (e.g., localtime)
+   are reserved and are not already being renamed anyway, rename them
+   as if compiling with '-Dtime_tz=time_t'.  */
+#if !defined time_tz && RESERVE_STD_EXT_IDS && USE_LTZ
+# define time_tz time_t
+#endif
+
+/*
+** Compile with -Dtime_tz=T to build the tz package with a private
+** time_t type equivalent to T rather than the system-supplied time_t.
+** This debugging feature can test unusual design decisions
+** (e.g., time_t wider than 'long', or unsigned time_t) even on
+** typical platforms.
+*/
+#if defined time_tz || EPOCH_LOCAL || EPOCH_OFFSET != 0
+# define TZ_TIME_T 1
+#else
+# define TZ_TIME_T 0
+#endif
+
+#if defined LOCALTIME_IMPLEMENTATION && TZ_TIME_T
+static time_t sys_time(time_t *x) { return time(x); }
+#endif
+
+#if TZ_TIME_T
+
+typedef time_tz tz_time_t;
+
+# undef  asctime
+# define asctime tz_asctime
+# undef  ctime
+# define ctime tz_ctime
+# undef  difftime
+# define difftime tz_difftime
+# undef  gmtime
+# define gmtime tz_gmtime
+# undef  gmtime_r
+# define gmtime_r tz_gmtime_r
+# undef  localtime
+# define localtime tz_localtime
+# undef  localtime_r
+# define localtime_r tz_localtime_r
+# undef  localtime_rz
+# define localtime_rz tz_localtime_rz
+# undef  mktime
+# define mktime tz_mktime
+# undef  mktime_z
+# define mktime_z tz_mktime_z
+# undef  offtime
+# define offtime tz_offtime
+# undef  posix2time
+# define posix2time tz_posix2time
+# undef  posix2time_z
+# define posix2time_z tz_posix2time_z
+# undef  strftime
+# define strftime tz_strftime
+# undef  time
+# define time tz_time
+# undef  time2posix
+# define time2posix tz_time2posix
+# undef  time2posix_z
+# define time2posix_z tz_time2posix_z
+# undef  time_t
+# define time_t tz_time_t
+# undef  timegm
+# define timegm tz_timegm
+# undef  timelocal
+# define timelocal tz_timelocal
+# undef  timeoff
+# define timeoff tz_timeoff
+# undef  tzalloc
+# define tzalloc tz_tzalloc
+# undef  tzfree
+# define tzfree tz_tzfree
+# undef  tzset
+# define tzset tz_tzset
+# if SUPPORT_POSIX2008
+#  undef  asctime_r
+#  define asctime_r tz_asctime_r
+#  undef  ctime_r
+#  define ctime_r tz_ctime_r
+# endif
+# if HAVE_STRFTIME_L
+#  undef  strftime_l
+#  define strftime_l tz_strftime_l
+# endif
+# if HAVE_TZNAME
+#  undef  tzname
+#  define tzname tz_tzname
+# endif
+# if USG_COMPAT
+#  undef  daylight
+#  define daylight tz_daylight
+#  undef  timezone
+#  define timezone tz_timezone
+# endif
+# if ALTZONE
+#  undef  altzone
+#  define altzone tz_altzone
+# endif
+
+# if __STDC_VERSION__ < 202311
+#  define DEPRECATED_IN_C23 /* empty */
+# else
+#  define DEPRECATED_IN_C23 ATTRIBUTE_DEPRECATED
+# endif
+DEPRECATED_IN_C23 char *asctime(struct tm const *);
+DEPRECATED_IN_C23 char *ctime(time_t const *);
+#if SUPPORT_POSIX2008
+char *asctime_r(struct tm const *restrict, char *restrict);
+char *ctime_r(time_t const *, char *);
+#endif
+double difftime(time_t, time_t);
+size_t strftime(char *restrict, size_t, char const *restrict,
+		struct tm const *restrict);
+# if HAVE_STRFTIME_L
+size_t strftime_l(char *restrict, size_t, char const *restrict,
+		  struct tm const *restrict, locale_t);
+# endif
+struct tm *gmtime(time_t const *);
+struct tm *gmtime_r(time_t const *restrict, struct tm *restrict);
+struct tm *localtime(time_t const *);
+struct tm *localtime_r(time_t const *restrict, struct tm *restrict);
+time_t mktime(struct tm *);
+time_t time(time_t *);
+time_t timegm(struct tm *);
+void tzset(void);
+#endif
+
+#ifndef HAVE_DECL_TIMEGM
+# if (202311 <= __STDC_VERSION__ \
+      || defined __GLIBC__ || defined __tm_zone /* musl */ \
+      || defined __FreeBSD__ || defined __NetBSD__ || defined __OpenBSD__ \
+      || (defined __APPLE__ && defined __MACH__))
+#  define HAVE_DECL_TIMEGM true
+# else
+#  define HAVE_DECL_TIMEGM false
+# endif
+#endif
+#if !HAVE_DECL_TIMEGM && !defined timegm
+time_t timegm(struct tm *);
+#endif
+
+#if !HAVE_DECL_ASCTIME_R && !defined asctime_r && SUPPORT_POSIX2008
+extern char *asctime_r(struct tm const *restrict, char *restrict);
+#endif
+
+#ifndef HAVE_DECL_ENVIRON
+# if defined environ || defined __USE_GNU
+#  define HAVE_DECL_ENVIRON 1
+# else
+#  define HAVE_DECL_ENVIRON 0
+# endif
+#endif
+
+#if !HAVE_DECL_ENVIRON
+extern char **environ;
+#endif
+
+#if 2 <= HAVE_TZNAME + (TZ_TIME_T || !HAVE_POSIX_DECLS)
+extern char *tzname[];
+#endif
+#if 2 <= USG_COMPAT + (TZ_TIME_T || !HAVE_POSIX_DECLS)
+extern long timezone;
+extern int daylight;
+#endif
+#if 2 <= ALTZONE + (TZ_TIME_T || !HAVE_POSIX_DECLS)
+extern long altzone;
+#endif
+
+/*
+** The STD_INSPIRED functions are similar, but most also need
+** declarations if time_tz is defined.
+*/
+
+#ifndef STD_INSPIRED
+# define STD_INSPIRED 0
+#endif
+#if STD_INSPIRED
+# if TZ_TIME_T || !defined offtime
+struct tm *offtime(time_t const *, long);
+# endif
+# if TZ_TIME_T || !defined timelocal
+time_t timelocal(struct tm *);
+# endif
+# if TZ_TIME_T || !defined timeoff
+#  define EXTERN_TIMEOFF
+# endif
+# if TZ_TIME_T || !defined time2posix
+time_t time2posix(time_t);
+# endif
+# if TZ_TIME_T || !defined posix2time
+time_t posix2time(time_t);
+# endif
+#endif
+
+/* Infer TM_ZONE on systems where this information is known, but suppress
+   guessing if NO_TM_ZONE is defined.  Similarly for TM_GMTOFF.  */
+#if (200809 < _POSIX_VERSION \
+     || defined __GLIBC__ \
+     || defined __tm_zone /* musl */ \
+     || defined __FreeBSD__ || defined __NetBSD__ || defined __OpenBSD__ \
+     || (defined __APPLE__ && defined __MACH__))
+# if !defined TM_GMTOFF && !defined NO_TM_GMTOFF
+#  define TM_GMTOFF tm_gmtoff
+# endif
+# if !defined TM_ZONE && !defined NO_TM_ZONE
+#  define TM_ZONE tm_zone
+# endif
+#endif
+
+/*
+** Define functions that are ABI compatible with NetBSD but have
+** better prototypes.  NetBSD 6.1.4 defines a pointer type timezone_t
+** and labors under the misconception that 'const timezone_t' is a
+** pointer to a constant.  This use of 'const' is ineffective, so it
+** is not done here.  What we call 'struct state' NetBSD calls
+** 'struct __state', but this is a private name so it doesn't matter.
+*/
+#if NETBSD_INSPIRED
+typedef struct state *timezone_t;
+struct tm *localtime_rz(timezone_t restrict, time_t const *restrict,
+			struct tm *restrict);
+time_t mktime_z(timezone_t restrict, struct tm *restrict);
+timezone_t tzalloc(char const *);
+void tzfree(timezone_t);
+# if STD_INSPIRED
+#  if TZ_TIME_T || !defined posix2time_z
+ATTRIBUTE_PURE time_t posix2time_z(timezone_t, time_t);
+#  endif
+#  if TZ_TIME_T || !defined time2posix_z
+ATTRIBUTE_PURE time_t time2posix_z(timezone_t, time_t);
+#  endif
+# endif
+#endif
+
+/*
+** Finally, some convenience items.
+*/
+
+#define TYPE_BIT(type) (CHAR_BIT * (ptrdiff_t) sizeof(type))
+#define TYPE_SIGNED(type) (((type) -1) < 0)
+#define TWOS_COMPLEMENT(t) ((t) ~ (t) 0 < 0)
+
+/* Minimum and maximum of two values.  Use lower case to avoid
+   naming clashes with standard include files.  */
+#define max(a, b) ((a) > (b) ? (a) : (b))
+#define min(a, b) ((a) < (b) ? (a) : (b))
+
+/* Max and min values of the integer type T, of which only the bottom
+   B bits are used, and where the highest-order used bit is considered
+   to be a sign bit if T is signed.  */
+#define MAXVAL(t, b)						\
+  ((t) (((t) 1 << ((b) - 1 - TYPE_SIGNED(t)))			\
+	- 1 + ((t) 1 << ((b) - 1 - TYPE_SIGNED(t)))))
+#define MINVAL(t, b)						\
+  ((t) (TYPE_SIGNED(t) ? - TWOS_COMPLEMENT(t) - MAXVAL(t, b) : 0))
+
+/* The extreme time values, assuming no padding.  */
+#define TIME_T_MIN_NO_PADDING MINVAL(time_t, TYPE_BIT(time_t))
+#define TIME_T_MAX_NO_PADDING MAXVAL(time_t, TYPE_BIT(time_t))
+
+/* The extreme time values.  These are macros, not constants, so that
+   any portability problems occur only when compiling .c files that use
+   the macros, which is safer for applications that need only zdump and zic.
+   This implementation assumes no padding if time_t is signed and
+   either the compiler lacks support for _Generic or time_t is not one
+   of the standard signed integer types.  */
+#if HAVE__GENERIC
+# define TIME_T_MIN \
+    _Generic((time_t) 0, \
+	     signed char: SCHAR_MIN, short: SHRT_MIN, \
+	     int: INT_MIN, long: LONG_MIN, long long: LLONG_MIN, \
+	     default: TIME_T_MIN_NO_PADDING)
+# define TIME_T_MAX \
+    (TYPE_SIGNED(time_t) \
+     ? _Generic((time_t) 0, \
+		signed char: SCHAR_MAX, short: SHRT_MAX, \
+		int: INT_MAX, long: LONG_MAX, long long: LLONG_MAX, \
+		default: TIME_T_MAX_NO_PADDING)			    \
+     : (time_t) -1)
+enum { SIGNED_PADDING_CHECK_NEEDED
+         = _Generic((time_t) 0,
+		    signed char: false, short: false,
+		    int: false, long: false, long long: false,
+		    default: true) };
+#else
+# define TIME_T_MIN TIME_T_MIN_NO_PADDING
+# define TIME_T_MAX TIME_T_MAX_NO_PADDING
+enum { SIGNED_PADDING_CHECK_NEEDED = true };
+#endif
+/* Try to check the padding assumptions.  Although TIME_T_MAX and the
+   following check can both have undefined behavior on oddball
+   platforms due to shifts exceeding widths of signed integers, these
+   platforms' compilers are likely to diagnose these issues in integer
+   constant expressions, so it shouldn't hurt to check statically.  */
+static_assert(! TYPE_SIGNED(time_t) || ! SIGNED_PADDING_CHECK_NEEDED
+	      || TIME_T_MAX >> (TYPE_BIT(time_t) - 2) == 1);
+
+/*
+** 302 / 1000 is log10(2.0) rounded up.
+** Subtract one for the sign bit if the type is signed;
+** add one for integer division truncation;
+** add one more for a minus sign if the type is signed.
+*/
+#define INT_STRLEN_MAXIMUM(type) \
+	((TYPE_BIT(type) - TYPE_SIGNED(type)) * 302 / 1000 + \
+	1 + TYPE_SIGNED(type))
+
+/*
+** INITIALIZE(x)
+*/
+
+#ifdef GCC_LINT
+# define INITIALIZE(x)	((x) = 0)
+#else
+# define INITIALIZE(x)
+#endif
+
+/* Whether memory access must strictly follow the C standard.
+   If 0, it's OK to read uninitialized storage so long as the value is
+   not relied upon.  Defining it to 0 lets mktime access parts of
+   struct tm that might be uninitialized, as a heuristic when the
+   standard doesn't say what to return and when tm_gmtoff can help
+   mktime likely infer a better value.  */
+#ifndef UNINIT_TRAP
+# define UNINIT_TRAP 0
+#endif
+
+/* localtime.c sometimes needs access to timeoff if it is not already public.
+   tz_private_timeoff should be used only by localtime.c.  */
+#if (!defined EXTERN_TIMEOFF \
+     && defined TM_GMTOFF && (200809 < _POSIX_VERSION || ! UNINIT_TRAP))
+# ifndef timeoff
+#  define timeoff tz_private_timeoff
+# endif
+# define EXTERN_TIMEOFF
+#endif
+#ifdef EXTERN_TIMEOFF
+time_t timeoff(struct tm *, long);
+#endif
+
+#ifdef DEBUG
+# undef unreachable
+# define unreachable() abort()
+#elif !defined unreachable
+# ifdef __has_builtin
+#  if __has_builtin(__builtin_unreachable)
+#   define unreachable() __builtin_unreachable()
+#  endif
+# elif 4 < __GNUC__ + (5 <= __GNUC_MINOR__)
+#  define unreachable() __builtin_unreachable()
+# endif
+# ifndef unreachable
+#  define unreachable() ((void) 0)
+# endif
+#endif
+
+/*
+** For the benefit of GNU folk...
+** '_(MSGID)' uses the current locale's message library string for MSGID.
+** The default is to use gettext if available, and use MSGID otherwise.
+*/
+
+#ifndef _
+#if HAVE_GETTEXT
+#define _(msgid) gettext(msgid)
+#else /* !HAVE_GETTEXT */
+#define _(msgid) msgid
+#endif /* !HAVE_GETTEXT */
+#endif /* !defined _ */
+
+#if !defined TZ_DOMAIN && defined HAVE_GETTEXT
+# define TZ_DOMAIN "tz"
+#endif
+
+#if HAVE_INCOMPATIBLE_CTIME_R
+#undef asctime_r
+#undef ctime_r
+char *asctime_r(struct tm const *restrict, char *restrict);
+char *ctime_r(time_t const *, char *);
+#endif /* HAVE_INCOMPATIBLE_CTIME_R */
+
+/* Handy macros that are independent of tzfile implementation.  */
+
+enum {
+  SECSPERMIN = 60,
+  MINSPERHOUR = 60,
+  SECSPERHOUR = SECSPERMIN * MINSPERHOUR,
+  HOURSPERDAY = 24,
+  DAYSPERWEEK = 7,
+  DAYSPERNYEAR = 365,
+  DAYSPERLYEAR = DAYSPERNYEAR + 1,
+  MONSPERYEAR = 12,
+  YEARSPERREPEAT = 400	/* years before a Gregorian repeat */
+};
+
+#define SECSPERDAY	((int_fast32_t) SECSPERHOUR * HOURSPERDAY)
+
+#define DAYSPERREPEAT		((int_fast32_t) 400 * 365 + 100 - 4 + 1)
+#define SECSPERREPEAT		((int_fast64_t) DAYSPERREPEAT * SECSPERDAY)
+#define AVGSECSPERYEAR		(SECSPERREPEAT / YEARSPERREPEAT)
+
+/* How many years to generate (in zic.c) or search through (in localtime.c).
+   This is two years larger than the obvious 400, to avoid edge cases.
+   E.g., suppose a rule applies from 2012 on with transitions
+   in March and September, plus one-off transitions in November 2013,
+   and suppose the rule cannot be expressed as a proleptic TZ string.
+   If zic looked only at the last 400 years, it would set max_year=2413,
+   with the intent that the 400 years 2014 through 2413 will be repeated.
+   The last transition listed in the tzfile would be in 2413-09,
+   less than 400 years after the last one-off transition in 2013-11.
+   Two years is not overkill for localtime.c, as a one-year bump
+   would mishandle 2023d's America/Ciudad_Juarez for November 2422.  */
+enum { years_of_observations = YEARSPERREPEAT + 2 };
+
+enum {
+  TM_SUNDAY,
+  TM_MONDAY,
+  TM_TUESDAY,
+  TM_WEDNESDAY,
+  TM_THURSDAY,
+  TM_FRIDAY,
+  TM_SATURDAY
+};
+
+enum {
+  TM_JANUARY,
+  TM_FEBRUARY,
+  TM_MARCH,
+  TM_APRIL,
+  TM_MAY,
+  TM_JUNE,
+  TM_JULY,
+  TM_AUGUST,
+  TM_SEPTEMBER,
+  TM_OCTOBER,
+  TM_NOVEMBER,
+  TM_DECEMBER
+};
+
+enum {
+  TM_YEAR_BASE = 1900,
+  TM_WDAY_BASE = TM_MONDAY,
+  EPOCH_YEAR = 1970,
+  EPOCH_WDAY = TM_THURSDAY
+};
+
+#define isleap(y) (((y) % 4) == 0 && (((y) % 100) != 0 || ((y) % 400) == 0))
+
+/*
+** Since everything in isleap is modulo 400 (or a factor of 400), we know that
+**	isleap(y) == isleap(y % 400)
+** and so
+**	isleap(a + b) == isleap((a + b) % 400)
+** or
+**	isleap(a + b) == isleap(a % 400 + b % 400)
+** This is true even if % means modulo rather than Fortran remainder
+** (which is allowed by C89 but not by C99 or later).
+** We use this to avoid addition overflow problems.
+*/
+
+#define isleap_sum(a, b)	isleap((a) % 400 + (b) % 400)
+
+#endif /* !defined PRIVATE_H */
Index: sources/iana/tz/create-2024b-glibc-2.40-patch/glibc-2.40-new/timezone/zdump.c
===================================================================
--- sources/iana/tz/create-2024b-glibc-2.40-patch/glibc-2.40-new/timezone/zdump.c	(nonexistent)
+++ sources/iana/tz/create-2024b-glibc-2.40-patch/glibc-2.40-new/timezone/zdump.c	(revision 394)
@@ -0,0 +1,1267 @@
+/* Dump time zone data in a textual format.  */
+
+/*
+** This file is in the public domain, so clarified as of
+** 2009-05-17 by Arthur David Olson.
+*/
+
+#include "version.h"
+
+#ifndef NETBSD_INSPIRED
+# define NETBSD_INSPIRED 1
+#endif
+
+#include "private.h"
+#include <stdio.h>
+
+#ifndef HAVE_SNPRINTF
+# define HAVE_SNPRINTF (!PORT_TO_C89 || 199901 <= __STDC_VERSION__)
+#endif
+
+#ifndef HAVE_LOCALTIME_R
+# define HAVE_LOCALTIME_R 1
+#endif
+
+#ifndef HAVE_LOCALTIME_RZ
+# ifdef TM_ZONE
+#  define HAVE_LOCALTIME_RZ (NETBSD_INSPIRED && USE_LTZ)
+# else
+#  define HAVE_LOCALTIME_RZ 0
+# endif
+#endif
+
+#ifndef HAVE_TZSET
+# define HAVE_TZSET 1
+#endif
+
+#ifndef ZDUMP_LO_YEAR
+# define ZDUMP_LO_YEAR (-500)
+#endif /* !defined ZDUMP_LO_YEAR */
+
+#ifndef ZDUMP_HI_YEAR
+# define ZDUMP_HI_YEAR 2500
+#endif /* !defined ZDUMP_HI_YEAR */
+
+#define SECSPERNYEAR	(SECSPERDAY * DAYSPERNYEAR)
+#define SECSPERLYEAR	(SECSPERNYEAR + SECSPERDAY)
+#define SECSPER400YEARS	(SECSPERNYEAR * (intmax_t) (300 + 3)	\
+			 + SECSPERLYEAR * (intmax_t) (100 - 3))
+
+/*
+** True if SECSPER400YEARS is known to be representable as an
+** intmax_t.  It's OK that SECSPER400YEARS_FITS can in theory be false
+** even if SECSPER400YEARS is representable, because when that happens
+** the code merely runs a bit more slowly, and this slowness doesn't
+** occur on any practical platform.
+*/
+enum { SECSPER400YEARS_FITS = SECSPERLYEAR <= INTMAX_MAX / 400 };
+
+#if HAVE_GETTEXT
+# include <locale.h> /* for setlocale */
+#endif /* HAVE_GETTEXT */
+
+#if ! HAVE_LOCALTIME_RZ
+# undef  timezone_t
+# define timezone_t char **
+#endif
+
+#if !HAVE_POSIX_DECLS
+extern int	getopt(int argc, char * const argv[],
+			const char * options);
+extern char *	optarg;
+extern int	optind;
+#endif
+
+/* The minimum and maximum finite time values.  */
+enum { atime_shift = CHAR_BIT * sizeof(time_t) - 2 };
+static time_t const absolute_min_time =
+  ((time_t) -1 < 0
+   ? (- ((time_t) ~ (time_t) 0 < 0)
+      - (((time_t) 1 << atime_shift) - 1 + ((time_t) 1 << atime_shift)))
+   : 0);
+static time_t const absolute_max_time =
+  ((time_t) -1 < 0
+   ? (((time_t) 1 << atime_shift) - 1 + ((time_t) 1 << atime_shift))
+   : -1);
+static int	longest;
+static char const *progname;
+static bool	warned;
+static bool	errout;
+
+static char const *abbr(struct tm const *);
+static intmax_t delta(struct tm *, struct tm *);
+static void dumptime(struct tm const *);
+static time_t hunt(timezone_t, time_t, time_t, bool);
+static void show(timezone_t, char *, time_t, bool);
+static void showextrema(timezone_t, char *, time_t, struct tm *, time_t);
+static void showtrans(char const *, struct tm const *, time_t, char const *,
+		      char const *);
+static const char *tformat(void);
+ATTRIBUTE_PURE_114833 static time_t yeartot(intmax_t);
+
+/* Is C an ASCII digit?  */
+static bool
+is_digit(char c)
+{
+  return '0' <= c && c <= '9';
+}
+
+/* Is A an alphabetic character in the C locale?  */
+static bool
+is_alpha(char a)
+{
+	switch (a) {
+	  default:
+		return false;
+	  case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G':
+	  case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N':
+	  case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U':
+	  case 'V': case 'W': case 'X': case 'Y': case 'Z':
+	  case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g':
+	  case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n':
+	  case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u':
+	  case 'v': case 'w': case 'x': case 'y': case 'z':
+		return true;
+	}
+}
+
+ATTRIBUTE_NORETURN static void
+size_overflow(void)
+{
+  fprintf(stderr, _("%s: size overflow\n"), progname);
+  exit(EXIT_FAILURE);
+}
+
+/* Return A + B, exiting if the result would overflow either ptrdiff_t
+   or size_t.  A and B are both nonnegative.  */
+ATTRIBUTE_PURE_114833 static ptrdiff_t
+sumsize(ptrdiff_t a, ptrdiff_t b)
+{
+#ifdef ckd_add
+  ptrdiff_t sum;
+  if (!ckd_add(&sum, a, b) && sum <= INDEX_MAX)
+    return sum;
+#else
+  if (a <= INDEX_MAX && b <= INDEX_MAX - a)
+    return a + b;
+#endif
+  size_overflow();
+}
+
+/* Return the size of of the string STR, including its trailing NUL.
+   Report an error and exit if this would exceed INDEX_MAX which means
+   pointer subtraction wouldn't work.  */
+static ptrdiff_t
+xstrsize(char const *str)
+{
+  size_t len = strlen(str);
+  if (len < INDEX_MAX)
+    return len + 1;
+  size_overflow();
+}
+
+/* Return a pointer to a newly allocated buffer of size SIZE, exiting
+   on failure.  SIZE should be positive.  */
+static void *
+xmalloc(ptrdiff_t size)
+{
+  void *p = malloc(size);
+  if (!p) {
+    fprintf(stderr, _("%s: Memory exhausted\n"), progname);
+    exit(EXIT_FAILURE);
+  }
+  return p;
+}
+
+#if ! HAVE_TZSET
+# undef tzset
+# define tzset zdump_tzset
+static void tzset(void) { }
+#endif
+
+/* Assume gmtime_r works if localtime_r does.
+   A replacement localtime_r is defined below if needed.  */
+#if ! HAVE_LOCALTIME_R
+
+# undef gmtime_r
+# define gmtime_r zdump_gmtime_r
+
+static struct tm *
+gmtime_r(time_t *tp, struct tm *tmp)
+{
+  struct tm *r = gmtime(tp);
+  if (r) {
+    *tmp = *r;
+    r = tmp;
+  }
+  return r;
+}
+
+#endif
+
+/* Platforms with TM_ZONE don't need tzname, so they can use the
+   faster localtime_rz or localtime_r if available.  */
+
+#if defined TM_ZONE && HAVE_LOCALTIME_RZ
+# define USE_LOCALTIME_RZ true
+#else
+# define USE_LOCALTIME_RZ false
+#endif
+
+#if ! USE_LOCALTIME_RZ
+
+# if !defined TM_ZONE || ! HAVE_LOCALTIME_R || ! HAVE_TZSET
+#  undef localtime_r
+#  define localtime_r zdump_localtime_r
+static struct tm *
+localtime_r(time_t *tp, struct tm *tmp)
+{
+  struct tm *r = localtime(tp);
+  if (r) {
+    *tmp = *r;
+    r = tmp;
+  }
+  return r;
+}
+# endif
+
+# undef localtime_rz
+# define localtime_rz zdump_localtime_rz
+static struct tm *
+localtime_rz(ATTRIBUTE_MAYBE_UNUSED timezone_t rz, time_t *tp, struct tm *tmp)
+{
+  return localtime_r(tp, tmp);
+}
+
+# ifdef TYPECHECK
+#  undef mktime_z
+#  define mktime_z zdump_mktime_z
+static time_t
+mktime_z(timezone_t tz, struct tm *tmp)
+{
+  return mktime(tmp);
+}
+# endif
+
+# undef tzalloc
+# undef tzfree
+# define tzalloc zdump_tzalloc
+# define tzfree zdump_tzfree
+
+static timezone_t
+tzalloc(char const *val)
+{
+# if HAVE_SETENV
+  if (setenv("TZ", val, 1) != 0) {
+    char const *e = strerror(errno);
+    fprintf(stderr, _("%s: setenv: %s\n"), progname, e);
+    exit(EXIT_FAILURE);
+  }
+  tzset();
+  return &optarg;  /* Any valid non-null char ** will do.  */
+# else
+  enum { TZeqlen = 3 };
+  static char const TZeq[TZeqlen] = "TZ=";
+  static char **fakeenv;
+  static ptrdiff_t fakeenv0size;
+  void *freeable = NULL;
+  char **env = fakeenv, **initial_environ;
+  ptrdiff_t valsize = xstrsize(val);
+  if (fakeenv0size < valsize) {
+    char **e = environ, **to;
+    ptrdiff_t initial_nenvptrs = 1;  /* Counting the trailing NULL pointer.  */
+
+    while (*e++) {
+#  ifdef ckd_add
+      if (ckd_add(&initial_nenvptrs, initial_nenvptrs, 1)
+	  || INDEX_MAX < initial_nenvptrs)
+	size_overflow();
+#  else
+      if (initial_nenvptrs == INDEX_MAX / sizeof *environ)
+	size_overflow();
+      initial_nenvptrs++;
+#  endif
+    }
+    fakeenv0size = sumsize(valsize, valsize);
+    fakeenv0size = max(fakeenv0size, 64);
+    freeable = env;
+    fakeenv = env =
+      xmalloc(sumsize(sumsize(sizeof *environ,
+			      initial_nenvptrs * sizeof *environ),
+		      sumsize(TZeqlen, fakeenv0size)));
+    to = env + 1;
+    for (e = environ; (*to = *e); e++)
+      to += strncmp(*e, TZeq, TZeqlen) != 0;
+    env[0] = memcpy(to + 1, TZeq, TZeqlen);
+  }
+  memcpy(env[0] + TZeqlen, val, valsize);
+  initial_environ = environ;
+  environ = env;
+  tzset();
+  free(freeable);
+  return initial_environ;
+# endif
+}
+
+static void
+tzfree(ATTRIBUTE_MAYBE_UNUSED timezone_t initial_environ)
+{
+# if !HAVE_SETENV
+  environ = initial_environ;
+  tzset();
+# endif
+}
+#endif /* ! USE_LOCALTIME_RZ */
+
+/* A UT time zone, and its initializer.  */
+static timezone_t gmtz;
+static void
+gmtzinit(void)
+{
+  if (USE_LOCALTIME_RZ) {
+    /* Try "GMT" first to find out whether this is one of the rare
+       platforms where time_t counts leap seconds; this works due to
+       the "Zone GMT 0 - GMT" line in the "etcetera" file.  If "GMT"
+       fails, fall back on "GMT0" which might be similar due to the
+       "Link GMT GMT0" line in the "backward" file, and which
+       should work on all POSIX platforms.  The rest of zdump does not
+       use the "GMT" abbreviation that comes from this setting, so it
+       is OK to use "GMT" here rather than the modern "UTC" which
+       would not work on platforms that omit the "backward" file.  */
+    gmtz = tzalloc("GMT");
+    if (!gmtz) {
+      static char const gmt0[] = "GMT0";
+      gmtz = tzalloc(gmt0);
+      if (!gmtz) {
+	char const *e = strerror(errno);
+	fprintf(stderr, _("%s: unknown timezone '%s': %s\n"),
+		progname, gmt0, e);
+	exit(EXIT_FAILURE);
+      }
+    }
+  }
+}
+
+/* Convert *TP to UT, storing the broken-down time into *TMP.
+   Return TMP if successful, NULL otherwise.  This is like gmtime_r(TP, TMP),
+   except typically faster if USE_LOCALTIME_RZ.  */
+static struct tm *
+my_gmtime_r(time_t *tp, struct tm *tmp)
+{
+  return USE_LOCALTIME_RZ ? localtime_rz(gmtz, tp, tmp) : gmtime_r(tp, tmp);
+}
+
+#ifndef TYPECHECK
+# define my_localtime_rz localtime_rz
+#else /* !defined TYPECHECK */
+
+static struct tm *
+my_localtime_rz(timezone_t tz, time_t *tp, struct tm *tmp)
+{
+	tmp = localtime_rz(tz, tp, tmp);
+	if (tmp) {
+		struct tm	tm;
+		register time_t	t;
+
+		tm = *tmp;
+		t = mktime_z(tz, &tm);
+		if (t != *tp) {
+			fflush(stdout);
+			fprintf(stderr, "\n%s: ", progname);
+			fprintf(stderr, tformat(), *tp);
+			fprintf(stderr, " ->");
+			fprintf(stderr, " year=%d", tmp->tm_year);
+			fprintf(stderr, " mon=%d", tmp->tm_mon);
+			fprintf(stderr, " mday=%d", tmp->tm_mday);
+			fprintf(stderr, " hour=%d", tmp->tm_hour);
+			fprintf(stderr, " min=%d", tmp->tm_min);
+			fprintf(stderr, " sec=%d", tmp->tm_sec);
+			fprintf(stderr, " isdst=%d", tmp->tm_isdst);
+			fprintf(stderr, " -> ");
+			fprintf(stderr, tformat(), t);
+			fprintf(stderr, "\n");
+			errout = true;
+		}
+	}
+	return tmp;
+}
+#endif /* !defined TYPECHECK */
+
+static void
+abbrok(const char *const abbrp, const char *const zone)
+{
+	register const char *	cp;
+	register const char *	wp;
+
+	if (warned)
+		return;
+	cp = abbrp;
+	while (is_alpha(*cp) || is_digit(*cp) || *cp == '-' || *cp == '+')
+		++cp;
+	if (*cp)
+	  wp = _("has characters other than ASCII alphanumerics, '-' or '+'");
+	else if (cp - abbrp < 3)
+	  wp = _("has fewer than 3 characters");
+	else if (cp - abbrp > 6)
+	  wp = _("has more than 6 characters");
+	else
+	  return;
+	fflush(stdout);
+	fprintf(stderr,
+		_("%s: warning: zone \"%s\" abbreviation \"%s\" %s\n"),
+		progname, zone, abbrp, wp);
+	warned = errout = true;
+}
+
+/* Return a time zone abbreviation.  If the abbreviation needs to be
+   saved, use *BUF (of size *BUFALLOC) to save it, and return the
+   abbreviation in the possibly reallocated *BUF.  Otherwise, just
+   return the abbreviation.  Get the abbreviation from TMP.
+   Exit on memory allocation failure.  */
+static char const *
+saveabbr(char **buf, ptrdiff_t *bufalloc, struct tm const *tmp)
+{
+  char const *ab = abbr(tmp);
+  if (HAVE_LOCALTIME_RZ)
+    return ab;
+  else {
+    ptrdiff_t absize = xstrsize(ab);
+    if (*bufalloc < absize) {
+      free(*buf);
+
+      /* Make the new buffer at least twice as long as the old,
+	 to avoid O(N**2) behavior on repeated calls.  */
+      *bufalloc = sumsize(*bufalloc, absize);
+
+      *buf = xmalloc(*bufalloc);
+    }
+    return strcpy(*buf, ab);
+  }
+}
+
+static void
+close_file(FILE *stream)
+{
+  char const *e = (ferror(stream) ? _("I/O error")
+		   : fclose(stream) != 0 ? strerror(errno) : NULL);
+  if (e) {
+    fprintf(stderr, "%s: %s\n", progname, e);
+    exit(EXIT_FAILURE);
+  }
+}
+
+static void
+usage(FILE * const stream, const int status)
+{
+	fprintf(stream,
+_("%s: usage: %s OPTIONS TIMEZONE ...\n"
+  "Options include:\n"
+  "  -c [L,]U   Start at year L (default -500), end before year U (default 2500)\n"
+  "  -t [L,]U   Start at time L, end before time U (in seconds since 1970)\n"
+  "  -i         List transitions briefly (format is experimental)\n" \
+  "  -v         List transitions verbosely\n"
+  "  -V         List transitions a bit less verbosely\n"
+  "  --help     Output this help\n"
+  "  --version  Output version info\n"
+  "\n"
+  "Report bugs to %s.\n"),
+		progname, progname, REPORT_BUGS_TO);
+	if (status == EXIT_SUCCESS)
+	  close_file(stream);
+	exit(status);
+}
+
+int
+main(int argc, char *argv[])
+{
+	/* These are static so that they're initially zero.  */
+	static char *		abbrev;
+	static ptrdiff_t	abbrevsize;
+
+	register int		i;
+	register bool		vflag;
+	register bool		Vflag;
+	register char *		cutarg;
+	register char *		cuttimes;
+	register time_t		cutlotime;
+	register time_t		cuthitime;
+	time_t			now;
+	bool iflag = false;
+
+	cutlotime = absolute_min_time;
+	cuthitime = absolute_max_time;
+#if HAVE_GETTEXT
+	setlocale(LC_ALL, "");
+# ifdef TZ_DOMAINDIR
+	bindtextdomain(TZ_DOMAIN, TZ_DOMAINDIR);
+# endif /* defined TEXTDOMAINDIR */
+	textdomain(TZ_DOMAIN);
+#endif /* HAVE_GETTEXT */
+	progname = argv[0] ? argv[0] : "zdump";
+	for (i = 1; i < argc; ++i)
+		if (strcmp(argv[i], "--version") == 0) {
+			printf("zdump %s%s\n", PKGVERSION, TZVERSION);
+			return EXIT_SUCCESS;
+		} else if (strcmp(argv[i], "--help") == 0) {
+			usage(stdout, EXIT_SUCCESS);
+		}
+	vflag = Vflag = false;
+	cutarg = cuttimes = NULL;
+	for (;;)
+	  switch (getopt(argc, argv, "c:it:vV")) {
+	  case 'c': cutarg = optarg; break;
+	  case 't': cuttimes = optarg; break;
+	  case 'i': iflag = true; break;
+	  case 'v': vflag = true; break;
+	  case 'V': Vflag = true; break;
+	  case -1:
+	    if (! (optind == argc - 1 && strcmp(argv[optind], "=") == 0))
+	      goto arg_processing_done;
+	    ATTRIBUTE_FALLTHROUGH;
+	  default:
+	    usage(stderr, EXIT_FAILURE);
+	  }
+ arg_processing_done:;
+
+	if (iflag | vflag | Vflag) {
+		intmax_t	lo;
+		intmax_t	hi;
+		char *loend, *hiend;
+		register intmax_t cutloyear = ZDUMP_LO_YEAR;
+		register intmax_t cuthiyear = ZDUMP_HI_YEAR;
+		if (cutarg != NULL) {
+			lo = strtoimax(cutarg, &loend, 10);
+			if (cutarg != loend && !*loend) {
+				hi = lo;
+				cuthiyear = hi;
+			} else if (cutarg != loend && *loend == ','
+				   && (hi = strtoimax(loend + 1, &hiend, 10),
+				       loend + 1 != hiend && !*hiend)) {
+				cutloyear = lo;
+				cuthiyear = hi;
+			} else {
+				fprintf(stderr, _("%s: wild -c argument %s\n"),
+					progname, cutarg);
+				return EXIT_FAILURE;
+			}
+		}
+		if (cutarg != NULL || cuttimes == NULL) {
+			cutlotime = yeartot(cutloyear);
+			cuthitime = yeartot(cuthiyear);
+		}
+		if (cuttimes != NULL) {
+			lo = strtoimax(cuttimes, &loend, 10);
+			if (cuttimes != loend && !*loend) {
+				hi = lo;
+				if (hi < cuthitime) {
+					if (hi < absolute_min_time + 1)
+					  hi = absolute_min_time + 1;
+					cuthitime = hi;
+				}
+			} else if (cuttimes != loend && *loend == ','
+				   && (hi = strtoimax(loend + 1, &hiend, 10),
+				       loend + 1 != hiend && !*hiend)) {
+				if (cutlotime < lo) {
+					if (absolute_max_time < lo)
+						lo = absolute_max_time;
+					cutlotime = lo;
+				}
+				if (hi < cuthitime) {
+					if (hi < absolute_min_time + 1)
+					  hi = absolute_min_time + 1;
+					cuthitime = hi;
+				}
+			} else {
+				fprintf(stderr,
+					_("%s: wild -t argument %s\n"),
+					progname, cuttimes);
+				return EXIT_FAILURE;
+			}
+		}
+	}
+	gmtzinit();
+	if (iflag | vflag | Vflag)
+	  now = 0;
+	else {
+	  now = time(NULL);
+	  now |= !now;
+	}
+	longest = 0;
+	for (i = optind; i < argc; i++) {
+	  size_t arglen = strlen(argv[i]);
+	  if (longest < arglen)
+	    longest = min(arglen, INT_MAX);
+	}
+
+	for (i = optind; i < argc; ++i) {
+		timezone_t tz = tzalloc(argv[i]);
+		char const *ab = (char const *)0;
+		time_t t;
+		struct tm tm, newtm;
+		bool tm_ok;
+		if (!tz) {
+		  char const *e = strerror(errno);
+		  fprintf(stderr, _("%s: unknown timezone '%s': %s\n"),
+			  progname, argv[i], e);
+		  return EXIT_FAILURE;
+		}
+		if (now) {
+			show(tz, argv[i], now, false);
+			tzfree(tz);
+			continue;
+		}
+		warned = false;
+		t = absolute_min_time;
+		if (! (iflag | Vflag)) {
+			show(tz, argv[i], t, true);
+			if (my_localtime_rz(tz, &t, &tm) == NULL
+			    && t < cutlotime) {
+				time_t newt = cutlotime;
+				if (my_localtime_rz(tz, &newt, &newtm) != NULL)
+				  showextrema(tz, argv[i], t, NULL, newt);
+			}
+		}
+		if (t + 1 < cutlotime)
+		  t = cutlotime - 1;
+		tm_ok = my_localtime_rz(tz, &t, &tm) != NULL;
+		if (tm_ok) {
+		  ab = saveabbr(&abbrev, &abbrevsize, &tm);
+		  if (iflag) {
+		    showtrans("\nTZ=%f", &tm, t, ab, argv[i]);
+		    showtrans("-\t-\t%Q", &tm, t, ab, argv[i]);
+		  }
+		} else
+		  ab = NULL;
+		while (t < cuthitime - 1) {
+		  time_t newt = ((t < absolute_max_time - SECSPERDAY / 2
+				  && t + SECSPERDAY / 2 < cuthitime - 1)
+				 ? t + SECSPERDAY / 2
+				 : cuthitime - 1);
+		  struct tm *newtmp = localtime_rz(tz, &newt, &newtm);
+		  bool newtm_ok = newtmp != NULL;
+		  if (tm_ok != newtm_ok
+		      || (ab && (delta(&newtm, &tm) != newt - t
+				 || newtm.tm_isdst != tm.tm_isdst
+				 || strcmp(abbr(&newtm), ab) != 0))) {
+		    newt = hunt(tz, t, newt, false);
+		    newtmp = localtime_rz(tz, &newt, &newtm);
+		    newtm_ok = newtmp != NULL;
+		    if (iflag)
+		      showtrans("%Y-%m-%d\t%L\t%Q", newtmp, newt,
+				newtm_ok ? abbr(&newtm) : NULL, argv[i]);
+		    else {
+		      show(tz, argv[i], newt - 1, true);
+		      show(tz, argv[i], newt, true);
+		    }
+		  }
+		  t = newt;
+		  tm_ok = newtm_ok;
+		  if (newtm_ok) {
+		    ab = saveabbr(&abbrev, &abbrevsize, &newtm);
+		    tm = newtm;
+		  }
+		}
+		if (! (iflag | Vflag)) {
+			time_t newt = absolute_max_time;
+			t = cuthitime;
+			if (t < newt) {
+			  struct tm *tmp = my_localtime_rz(tz, &t, &tm);
+			  if (tmp != NULL
+			      && my_localtime_rz(tz, &newt, &newtm) == NULL)
+			    showextrema(tz, argv[i], t, tmp, newt);
+			}
+			show(tz, argv[i], absolute_max_time, true);
+		}
+		tzfree(tz);
+	}
+	close_file(stdout);
+	if (errout && (ferror(stderr) || fclose(stderr) != 0))
+	  return EXIT_FAILURE;
+	return EXIT_SUCCESS;
+}
+
+static time_t
+yeartot(intmax_t y)
+{
+	register intmax_t	myy, seconds, years;
+	register time_t		t;
+
+	myy = EPOCH_YEAR;
+	t = 0;
+	while (myy < y) {
+		if (SECSPER400YEARS_FITS && 400 <= y - myy) {
+			intmax_t diff400 = (y - myy) / 400;
+			if (INTMAX_MAX / SECSPER400YEARS < diff400)
+				return absolute_max_time;
+			seconds = diff400 * SECSPER400YEARS;
+			years = diff400 * 400;
+                } else {
+			seconds = isleap(myy) ? SECSPERLYEAR : SECSPERNYEAR;
+			years = 1;
+		}
+		myy += years;
+		if (t > absolute_max_time - seconds)
+			return absolute_max_time;
+		t += seconds;
+	}
+	while (y < myy) {
+		if (SECSPER400YEARS_FITS && y + 400 <= myy && myy < 0) {
+			intmax_t diff400 = (myy - y) / 400;
+			if (INTMAX_MAX / SECSPER400YEARS < diff400)
+				return absolute_min_time;
+			seconds = diff400 * SECSPER400YEARS;
+			years = diff400 * 400;
+		} else {
+			seconds = isleap(myy - 1) ? SECSPERLYEAR : SECSPERNYEAR;
+			years = 1;
+		}
+		myy -= years;
+		if (t < absolute_min_time + seconds)
+			return absolute_min_time;
+		t -= seconds;
+	}
+	return t;
+}
+
+/* Search for a discontinuity in timezone TZ, in the
+   timestamps ranging from LOT through HIT.  LOT and HIT disagree
+   about some aspect of timezone.  If ONLY_OK, search only for
+   definedness changes, i.e., localtime succeeds on one side of the
+   transition but fails on the other side.  Return the timestamp just
+   before the transition from LOT's settings.  */
+
+static time_t
+hunt(timezone_t tz, time_t lot, time_t hit, bool only_ok)
+{
+	static char *		loab;
+	static ptrdiff_t	loabsize;
+	struct tm		lotm;
+	struct tm		tm;
+
+	/* Convert LOT into a broken-down time here, even though our
+	   caller already did that.  On platforms without TM_ZONE,
+	   tzname may have been altered since our caller broke down
+	   LOT, and tzname needs to be changed back.  */
+	bool lotm_ok = my_localtime_rz(tz, &lot, &lotm) != NULL;
+	bool tm_ok;
+	char const *ab = lotm_ok ? saveabbr(&loab, &loabsize, &lotm) : NULL;
+
+	for ( ; ; ) {
+		/* T = average of LOT and HIT, rounding down.
+		   Avoid overflow.  */
+		int rem_sum = lot % 2 + hit % 2;
+		time_t t = (rem_sum == 2) - (rem_sum < 0) + lot / 2 + hit / 2;
+		if (t == lot)
+			break;
+		tm_ok = my_localtime_rz(tz, &t, &tm) != NULL;
+		if (lotm_ok == tm_ok
+		    && (only_ok
+			|| (ab && tm.tm_isdst == lotm.tm_isdst
+			    && delta(&tm, &lotm) == t - lot
+			    && strcmp(abbr(&tm), ab) == 0))) {
+		  lot = t;
+		  if (tm_ok)
+		    lotm = tm;
+		} else	hit = t;
+	}
+	return hit;
+}
+
+/*
+** Thanks to Paul Eggert for logic used in delta_nonneg.
+*/
+
+static intmax_t
+delta_nonneg(struct tm *newp, struct tm *oldp)
+{
+	intmax_t oldy = oldp->tm_year;
+	int cycles = (newp->tm_year - oldy) / YEARSPERREPEAT;
+	intmax_t sec = SECSPERREPEAT, result = cycles * sec;
+	int tmy = oldp->tm_year + cycles * YEARSPERREPEAT;
+	for ( ; tmy < newp->tm_year; ++tmy)
+		result += DAYSPERNYEAR + isleap_sum(tmy, TM_YEAR_BASE);
+	result += newp->tm_yday - oldp->tm_yday;
+	result *= HOURSPERDAY;
+	result += newp->tm_hour - oldp->tm_hour;
+	result *= MINSPERHOUR;
+	result += newp->tm_min - oldp->tm_min;
+	result *= SECSPERMIN;
+	result += newp->tm_sec - oldp->tm_sec;
+	return result;
+}
+
+static intmax_t
+delta(struct tm *newp, struct tm *oldp)
+{
+  return (newp->tm_year < oldp->tm_year
+	  ? -delta_nonneg(oldp, newp)
+	  : delta_nonneg(newp, oldp));
+}
+
+#ifndef TM_GMTOFF
+/* Return A->tm_yday, adjusted to compare it fairly to B->tm_yday.
+   Assume A and B differ by at most one year.  */
+static int
+adjusted_yday(struct tm const *a, struct tm const *b)
+{
+  int yday = a->tm_yday;
+  if (b->tm_year < a->tm_year)
+    yday += 365 + isleap_sum(b->tm_year, TM_YEAR_BASE);
+  return yday;
+}
+#endif
+
+/* If A is the broken-down local time and B the broken-down UT for
+   the same instant, return A's UT offset in seconds, where positive
+   offsets are east of Greenwich.  On failure, return LONG_MIN.
+
+   If T is nonnull, *T is the timestamp that corresponds to A; call
+   my_gmtime_r and use its result instead of B.  Otherwise, B is the
+   possibly nonnull result of an earlier call to my_gmtime_r.  */
+static long
+gmtoff(struct tm const *a, ATTRIBUTE_MAYBE_UNUSED time_t *t,
+       ATTRIBUTE_MAYBE_UNUSED struct tm const *b)
+{
+#ifdef TM_GMTOFF
+  return a->TM_GMTOFF;
+#else
+  struct tm tm;
+  if (t)
+    b = my_gmtime_r(t, &tm);
+  if (! b)
+    return LONG_MIN;
+  else {
+    int ayday = adjusted_yday(a, b);
+    int byday = adjusted_yday(b, a);
+    int days = ayday - byday;
+    long hours = a->tm_hour - b->tm_hour + 24 * days;
+    long minutes = a->tm_min - b->tm_min + 60 * hours;
+    long seconds = a->tm_sec - b->tm_sec + 60 * minutes;
+    return seconds;
+  }
+#endif
+}
+
+static void
+show(timezone_t tz, char *zone, time_t t, bool v)
+{
+	register struct tm *	tmp;
+	register struct tm *	gmtmp;
+	struct tm tm, gmtm;
+
+	printf("%-*s  ", longest, zone);
+	if (v) {
+		gmtmp = my_gmtime_r(&t, &gmtm);
+		if (gmtmp == NULL) {
+			printf(tformat(), t);
+			printf(_(" (gmtime failed)"));
+		} else {
+			dumptime(gmtmp);
+			printf(" UT");
+		}
+		printf(" = ");
+	}
+	tmp = my_localtime_rz(tz, &t, &tm);
+	if (tmp == NULL) {
+		printf(tformat(), t);
+		printf(_(" (localtime failed)"));
+	} else {
+		dumptime(tmp);
+		if (*abbr(tmp) != '\0')
+			printf(" %s", abbr(tmp));
+		if (v) {
+			long off = gmtoff(tmp, NULL, gmtmp);
+			printf(" isdst=%d", tmp->tm_isdst);
+			if (off != LONG_MIN)
+			  printf(" gmtoff=%ld", off);
+		}
+	}
+	printf("\n");
+	if (tmp != NULL && *abbr(tmp) != '\0')
+		abbrok(abbr(tmp), zone);
+}
+
+/* Show timestamps just before and just after a transition between
+   defined and undefined (or vice versa) in either localtime or
+   gmtime.  These transitions are for timezone TZ with name ZONE, in
+   the range from LO (with broken-down time LOTMP if that is nonnull)
+   through HI.  LO and HI disagree on definedness.  */
+
+static void
+showextrema(timezone_t tz, char *zone, time_t lo, struct tm *lotmp, time_t hi)
+{
+  struct tm localtm[2], gmtm[2];
+  time_t t, boundary = hunt(tz, lo, hi, true);
+  bool old = false;
+  hi = (SECSPERDAY < hi - boundary
+	? boundary + SECSPERDAY
+	: hi + (hi < TIME_T_MAX));
+  if (SECSPERDAY < boundary - lo) {
+    lo = boundary - SECSPERDAY;
+    lotmp = my_localtime_rz(tz, &lo, &localtm[old]);
+  }
+  if (lotmp)
+    localtm[old] = *lotmp;
+  else
+    localtm[old].tm_sec = -1;
+  if (! my_gmtime_r(&lo, &gmtm[old]))
+    gmtm[old].tm_sec = -1;
+
+  /* Search sequentially for definedness transitions.  Although this
+     could be sped up by refining 'hunt' to search for either
+     localtime or gmtime definedness transitions, it hardly seems
+     worth the trouble.  */
+  for (t = lo + 1; t < hi; t++) {
+    bool new = !old;
+    if (! my_localtime_rz(tz, &t, &localtm[new]))
+      localtm[new].tm_sec = -1;
+    if (! my_gmtime_r(&t, &gmtm[new]))
+      gmtm[new].tm_sec = -1;
+    if (((localtm[old].tm_sec < 0) != (localtm[new].tm_sec < 0))
+	| ((gmtm[old].tm_sec < 0) != (gmtm[new].tm_sec < 0))) {
+      show(tz, zone, t - 1, true);
+      show(tz, zone, t, true);
+    }
+    old = new;
+  }
+}
+
+#if HAVE_SNPRINTF
+# define my_snprintf snprintf
+#else
+# include <stdarg.h>
+
+/* A substitute for snprintf that is good enough for zdump.  */
+static int
+my_snprintf(char *s, size_t size, char const *format, ...)
+{
+  int n;
+  va_list args;
+  char const *arg;
+  size_t arglen, slen;
+  char buf[1024];
+  va_start(args, format);
+  if (strcmp(format, "%s") == 0) {
+    arg = va_arg(args, char const *);
+    arglen = strlen(arg);
+  } else {
+    n = vsprintf(buf, format, args);
+    if (n < 0) {
+      va_end(args);
+      return n;
+    }
+    arg = buf;
+    arglen = n;
+  }
+  slen = arglen < size ? arglen : size - 1;
+  memcpy(s, arg, slen);
+  s[slen] = '\0';
+  n = arglen <= INT_MAX ? arglen : -1;
+  va_end(args);
+  return n;
+}
+#endif
+
+/* Store into BUF, of size SIZE, a formatted local time taken from *TM.
+   Use ISO 8601 format +HH:MM:SS.  Omit :SS if SS is zero, and omit
+   :MM too if MM is also zero.
+
+   Return the length of the resulting string.  If the string does not
+   fit, return the length that the string would have been if it had
+   fit; do not overrun the output buffer.  */
+static int
+format_local_time(char *buf, ptrdiff_t size, struct tm const *tm)
+{
+  int ss = tm->tm_sec, mm = tm->tm_min, hh = tm->tm_hour;
+  return (ss
+	  ? my_snprintf(buf, size, "%02d:%02d:%02d", hh, mm, ss)
+	  : mm
+	  ? my_snprintf(buf, size, "%02d:%02d", hh, mm)
+	  : my_snprintf(buf, size, "%02d", hh));
+}
+
+/* Store into BUF, of size SIZE, a formatted UT offset for the
+   localtime *TM corresponding to time T.  Use ISO 8601 format
+   +HHMMSS, or -HHMMSS for timestamps west of Greenwich; use the
+   format -00 for unknown UT offsets.  If the hour needs more than
+   two digits to represent, extend the length of HH as needed.
+   Otherwise, omit SS if SS is zero, and omit MM too if MM is also
+   zero.
+
+   Return the length of the resulting string, or -1 if the result is
+   not representable as a string.  If the string does not fit, return
+   the length that the string would have been if it had fit; do not
+   overrun the output buffer.  */
+static int
+format_utc_offset(char *buf, ptrdiff_t size, struct tm const *tm, time_t t)
+{
+  long off = gmtoff(tm, &t, NULL);
+  char sign = ((off < 0
+		|| (off == 0
+		    && (*abbr(tm) == '-' || strcmp(abbr(tm), "zzz") == 0)))
+	       ? '-' : '+');
+  long hh;
+  int mm, ss;
+  if (off < 0)
+    {
+      if (off == LONG_MIN)
+	return -1;
+      off = -off;
+    }
+  ss = off % 60;
+  mm = off / 60 % 60;
+  hh = off / 60 / 60;
+  return (ss || 100 <= hh
+	  ? my_snprintf(buf, size, "%c%02ld%02d%02d", sign, hh, mm, ss)
+	  : mm
+	  ? my_snprintf(buf, size, "%c%02ld%02d", sign, hh, mm)
+	  : my_snprintf(buf, size, "%c%02ld", sign, hh));
+}
+
+/* Store into BUF (of size SIZE) a quoted string representation of P.
+   If the representation's length is less than SIZE, return the
+   length; the representation is not null terminated.  Otherwise
+   return SIZE, to indicate that BUF is too small.  */
+static ptrdiff_t
+format_quoted_string(char *buf, ptrdiff_t size, char const *p)
+{
+  char *b = buf;
+  ptrdiff_t s = size;
+  if (!s)
+    return size;
+  *b++ = '"', s--;
+  for (;;) {
+    char c = *p++;
+    if (s <= 1)
+      return size;
+    switch (c) {
+    default: *b++ = c, s--; continue;
+    case '\0': *b++ = '"', s--; return size - s;
+    case '"': case '\\': break;
+    case ' ': c = 's'; break;
+    case '\f': c = 'f'; break;
+    case '\n': c = 'n'; break;
+    case '\r': c = 'r'; break;
+    case '\t': c = 't'; break;
+    case '\v': c = 'v'; break;
+    }
+    *b++ = '\\', *b++ = c, s -= 2;
+  }
+}
+
+/* Store into BUF (of size SIZE) a timestamp formatted by TIME_FMT.
+   TM is the broken-down time, T the seconds count, AB the time zone
+   abbreviation, and ZONE_NAME the zone name.  Return true if
+   successful, false if the output would require more than SIZE bytes.
+   TIME_FMT uses the same format that strftime uses, with these
+   additions:
+
+   %f zone name
+   %L local time as per format_local_time
+   %Q like "U\t%Z\tD" where U is the UT offset as for format_utc_offset
+      and D is the isdst flag; except omit D if it is zero, omit %Z if
+      it equals U, quote and escape %Z if it contains nonalphabetics,
+      and omit any trailing tabs.  */
+
+static bool
+istrftime(char *buf, ptrdiff_t size, char const *time_fmt,
+	  struct tm const *tm, time_t t, char const *ab, char const *zone_name)
+{
+  char *b = buf;
+  ptrdiff_t s = size;
+  char const *f = time_fmt, *p;
+
+  for (p = f; ; p++)
+    if (*p == '%' && p[1] == '%')
+      p++;
+    else if (!*p
+	     || (*p == '%'
+		 && (p[1] == 'f' || p[1] == 'L' || p[1] == 'Q'))) {
+      ptrdiff_t formatted_len;
+      ptrdiff_t f_prefix_len = p - f;
+      ptrdiff_t f_prefix_copy_size = sumsize(f_prefix_len, 2);
+      char fbuf[100];
+      bool oversized = sizeof fbuf <= f_prefix_copy_size;
+      char *f_prefix_copy = oversized ? xmalloc(f_prefix_copy_size) : fbuf;
+      memcpy(f_prefix_copy, f, f_prefix_len);
+      strcpy(f_prefix_copy + f_prefix_len, "X");
+      formatted_len = strftime(b, s, f_prefix_copy, tm);
+      if (oversized)
+	free(f_prefix_copy);
+      if (formatted_len == 0)
+	return false;
+      formatted_len--;
+      b += formatted_len, s -= formatted_len;
+      if (!*p++)
+	break;
+      switch (*p) {
+      case 'f':
+	formatted_len = format_quoted_string(b, s, zone_name);
+	break;
+      case 'L':
+	formatted_len = format_local_time(b, s, tm);
+	break;
+      case 'Q':
+	{
+	  bool show_abbr;
+	  int offlen = format_utc_offset(b, s, tm, t);
+	  if (! (0 <= offlen && offlen < s))
+	    return false;
+	  show_abbr = strcmp(b, ab) != 0;
+	  b += offlen, s -= offlen;
+	  if (show_abbr) {
+	    char const *abp;
+	    ptrdiff_t len;
+	    if (s <= 1)
+	      return false;
+	    *b++ = '\t', s--;
+	    for (abp = ab; is_alpha(*abp); abp++)
+	      continue;
+	    len = (!*abp && *ab
+		   ? my_snprintf(b, s, "%s", ab)
+		   : format_quoted_string(b, s, ab));
+	    if (s <= len)
+	      return false;
+	    b += len, s -= len;
+	  }
+	  formatted_len
+	    = (tm->tm_isdst
+	       ? my_snprintf(b, s, &"\t\t%d"[show_abbr], tm->tm_isdst)
+	       : 0);
+	}
+	break;
+      }
+      if (s <= formatted_len)
+	return false;
+      b += formatted_len, s -= formatted_len;
+      f = p + 1;
+    }
+  *b = '\0';
+  return true;
+}
+
+/* Show a time transition.  */
+static void
+showtrans(char const *time_fmt, struct tm const *tm, time_t t, char const *ab,
+	  char const *zone_name)
+{
+  if (!tm) {
+    printf(tformat(), t);
+    putchar('\n');
+  } else {
+    char stackbuf[1000];
+    ptrdiff_t size = sizeof stackbuf;
+    char *buf = stackbuf;
+    char *bufalloc = NULL;
+    while (! istrftime(buf, size, time_fmt, tm, t, ab, zone_name)) {
+      size = sumsize(size, size);
+      free(bufalloc);
+      buf = bufalloc = xmalloc(size);
+    }
+    puts(buf);
+    free(bufalloc);
+  }
+}
+
+static char const *
+abbr(struct tm const *tmp)
+{
+#ifdef TM_ZONE
+	return tmp->TM_ZONE;
+#else
+# if HAVE_TZNAME
+	if (0 <= tmp->tm_isdst && tzname[0 < tmp->tm_isdst])
+	  return tzname[0 < tmp->tm_isdst];
+# endif
+	return "";
+#endif
+}
+
+/*
+** The code below can fail on certain theoretical systems;
+** it works on all known real-world systems as of 2022-01-25.
+*/
+
+static const char *
+tformat(void)
+{
+#if HAVE__GENERIC
+	/* C11-style _Generic is more likely to return the correct
+	   format when distinct types have the same size.  */
+	char const *fmt =
+	  _Generic(+ (time_t) 0,
+		   int: "%d", long: "%ld", long long: "%lld",
+		   unsigned: "%u", unsigned long: "%lu",
+		   unsigned long long: "%llu",
+		   default: NULL);
+	if (fmt)
+	  return fmt;
+	fmt = _Generic((time_t) 0,
+		       intmax_t: "%"PRIdMAX, uintmax_t: "%"PRIuMAX,
+		       default: NULL);
+	if (fmt)
+	  return fmt;
+#endif
+	if (0 > (time_t) -1) {		/* signed */
+		if (sizeof(time_t) == sizeof(intmax_t))
+			return "%"PRIdMAX;
+		if (sizeof(time_t) > sizeof(long))
+			return "%lld";
+		if (sizeof(time_t) > sizeof(int))
+			return "%ld";
+		return "%d";
+	}
+#ifdef PRIuMAX
+	if (sizeof(time_t) == sizeof(uintmax_t))
+		return "%"PRIuMAX;
+#endif
+	if (sizeof(time_t) > sizeof(unsigned long))
+		return "%llu";
+	if (sizeof(time_t) > sizeof(unsigned int))
+		return "%lu";
+	return "%u";
+}
+
+static void
+dumptime(register const struct tm *timeptr)
+{
+	static const char	wday_name[][4] = {
+		"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"
+	};
+	static const char	mon_name[][4] = {
+		"Jan", "Feb", "Mar", "Apr", "May", "Jun",
+		"Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
+	};
+	register int		lead;
+	register int		trail;
+	int DIVISOR = 10;
+
+	/*
+	** The packaged localtime_rz and gmtime_r never put out-of-range
+	** values in tm_wday or tm_mon, but since this code might be compiled
+	** with other (perhaps experimental) versions, paranoia is in order.
+	*/
+	printf("%s %s%3d %.2d:%.2d:%.2d ",
+		((0 <= timeptr->tm_wday
+		  && timeptr->tm_wday < sizeof wday_name / sizeof wday_name[0])
+		 ? wday_name[timeptr->tm_wday] : "???"),
+		((0 <= timeptr->tm_mon
+		  && timeptr->tm_mon < sizeof mon_name / sizeof mon_name[0])
+		 ? mon_name[timeptr->tm_mon] : "???"),
+		timeptr->tm_mday, timeptr->tm_hour,
+		timeptr->tm_min, timeptr->tm_sec);
+	trail = timeptr->tm_year % DIVISOR + TM_YEAR_BASE % DIVISOR;
+	lead = timeptr->tm_year / DIVISOR + TM_YEAR_BASE / DIVISOR +
+		trail / DIVISOR;
+	trail %= DIVISOR;
+	if (trail < 0 && lead > 0) {
+		trail += DIVISOR;
+		--lead;
+	} else if (lead < 0 && trail > 0) {
+		trail -= DIVISOR;
+		++lead;
+	}
+	if (lead == 0)
+		printf("%d", trail);
+	else	printf("%d%d", lead, ((trail < 0) ? -trail : trail));
+}
Index: sources/iana/tz/create-2024b-glibc-2.40-patch/glibc-2.40-new/timezone/zic.c
===================================================================
--- sources/iana/tz/create-2024b-glibc-2.40-patch/glibc-2.40-new/timezone/zic.c	(nonexistent)
+++ sources/iana/tz/create-2024b-glibc-2.40-patch/glibc-2.40-new/timezone/zic.c	(revision 394)
@@ -0,0 +1,3961 @@
+/* Compile .zi time zone data into TZif binary files.  */
+
+/*
+** This file is in the public domain, so clarified as of
+** 2006-07-17 by Arthur David Olson.
+*/
+
+/* Use the system 'time' function, instead of any private replacement.
+   This avoids creating an unnecessary dependency on localtime.c.  */
+#undef EPOCH_LOCAL
+#undef EPOCH_OFFSET
+#undef RESERVE_STD_EXT_IDS
+#undef time_tz
+
+#include "version.h"
+#include "private.h"
+#include "tzdir.h"
+#include "tzfile.h"
+
+#include <fcntl.h>
+#include <locale.h>
+#include <signal.h>
+#include <stdarg.h>
+#include <stdio.h>
+
+typedef int_fast64_t	zic_t;
+static zic_t const
+  ZIC_MIN = INT_FAST64_MIN,
+  ZIC_MAX = INT_FAST64_MAX,
+  ZIC32_MIN = -1 - (zic_t) 0x7fffffff,
+  ZIC32_MAX = 0x7fffffff;
+#define SCNdZIC SCNdFAST64
+
+#ifndef ZIC_MAX_ABBR_LEN_WO_WARN
+# define ZIC_MAX_ABBR_LEN_WO_WARN 6
+#endif /* !defined ZIC_MAX_ABBR_LEN_WO_WARN */
+
+/* Minimum and maximum years, assuming signed 32-bit time_t.  */
+enum { YEAR_32BIT_MIN = 1901, YEAR_32BIT_MAX = 2038 };
+
+/* An upper bound on how much a format might grow due to concatenation.  */
+enum { FORMAT_LEN_GROWTH_BOUND = 5 };
+
+#ifdef HAVE_DIRECT_H
+# include <direct.h>
+# include <io.h>
+# undef mkdir
+# define mkdir(name, mode) _mkdir(name)
+#endif
+
+#ifndef HAVE_GETRANDOM
+# ifdef __has_include
+#  if __has_include(<sys/random.h>)
+#   include <sys/random.h>
+#  endif
+# elif 2 < __GLIBC__ + (25 <= __GLIBC_MINOR__)
+#  include <sys/random.h>
+# endif
+# define HAVE_GETRANDOM GRND_RANDOM
+#elif HAVE_GETRANDOM
+# include <sys/random.h>
+#endif
+
+#if HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+#ifdef S_IRUSR
+# define MKDIR_UMASK (S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH)
+#else
+# define MKDIR_UMASK 0755
+#endif
+
+/* The minimum alignment of a type, for pre-C23 platforms.
+   The __SUNPRO_C test is because Oracle Developer Studio 12.6 lacks
+   <stdalign.h> even though __STDC_VERSION__ == 201112.  */
+#if __STDC_VERSION__ < 201112 || defined __SUNPRO_C
+# define alignof(type) offsetof(struct { char a; type b; }, b)
+#elif __STDC_VERSION__ < 202311
+# include <stdalign.h>
+#endif
+
+/* The maximum length of a text line, including the trailing newline.  */
+#ifndef _POSIX2_LINE_MAX
+# define _POSIX2_LINE_MAX 2048
+#endif
+
+/* The type for line numbers.  Use PRIdMAX to format them; formerly
+   there was also "#define PRIdLINENO PRIdMAX" and formats used
+   PRIdLINENO, but xgettext cannot grok that.  */
+typedef intmax_t lineno;
+
+struct rule {
+	int		r_filenum;
+	lineno		r_linenum;
+	const char *	r_name;
+
+	zic_t		r_loyear;	/* for example, 1986 */
+	zic_t		r_hiyear;	/* for example, 1986 */
+	bool		r_hiwasnum;
+
+	int		r_month;	/* 0..11 */
+
+	int		r_dycode;	/* see below */
+	int		r_dayofmonth;
+	int		r_wday;
+
+	zic_t		r_tod;		/* time from midnight */
+	bool		r_todisstd;	/* is r_tod standard time? */
+	bool		r_todisut;	/* is r_tod UT? */
+	bool		r_isdst;	/* is this daylight saving time? */
+	zic_t		r_save;		/* offset from standard time */
+	const char *	r_abbrvar;	/* variable part of abbreviation */
+
+	bool		r_todo;		/* a rule to do (used in outzone) */
+	zic_t		r_temp;		/* used in outzone */
+};
+
+/*
+** r_dycode	r_dayofmonth	r_wday
+*/
+enum {
+  DC_DOM,	/* 1..31 */	/* unused */
+  DC_DOWGEQ,	/* 1..31 */	/* 0..6 (Sun..Sat) */
+  DC_DOWLEQ	/* 1..31 */	/* 0..6 (Sun..Sat) */
+};
+
+struct zone {
+	int		z_filenum;
+	lineno		z_linenum;
+
+	const char *	z_name;
+	zic_t		z_stdoff;
+	char *		z_rule;
+	const char *	z_format;
+	char		z_format_specifier;
+
+	bool		z_isdst;
+	zic_t		z_save;
+
+	struct rule *	z_rules;
+	ptrdiff_t	z_nrules;
+
+	struct rule	z_untilrule;
+	zic_t		z_untiltime;
+};
+
+#if !HAVE_POSIX_DECLS
+extern int	getopt(int argc, char * const argv[],
+			const char * options);
+extern int	link(const char * target, const char * linkname);
+extern char *	optarg;
+extern int	optind;
+#endif
+
+#if ! HAVE_SYMLINK
+static ssize_t
+readlink(char const *restrict file, char *restrict buf, size_t size)
+{
+  errno = ENOTSUP;
+  return -1;
+}
+static int
+symlink(char const *target, char const *linkname)
+{
+  errno = ENOTSUP;
+  return -1;
+}
+#endif
+#ifndef AT_SYMLINK_FOLLOW
+#  define linkat(targetdir, target, linknamedir, linkname, flag) \
+     (errno = ENOTSUP, -1)
+#endif
+
+static void	addtt(zic_t starttime, int type);
+static int	addtype(zic_t, char const *, bool, bool, bool);
+static void	leapadd(zic_t, int, int);
+static void	adjleap(void);
+static void	associate(void);
+static void	dolink(const char *, const char *, bool);
+static int	getfields(char *, char **, int);
+static zic_t	gethms(const char * string, const char * errstring);
+static zic_t	getsave(char *, bool *);
+static void	inexpires(char **, int);
+static void	infile(int, char const *);
+static void	inleap(char ** fields, int nfields);
+static void	inlink(char ** fields, int nfields);
+static void	inrule(char ** fields, int nfields);
+static bool	inzcont(char ** fields, int nfields);
+static bool	inzone(char ** fields, int nfields);
+static bool	inzsub(char **, int, bool);
+static int	itssymlink(char const *, int *);
+static bool	is_alpha(char a);
+static char	lowerit(char);
+static void	mkdirs(char const *, bool);
+static void	newabbr(const char * abbr);
+static zic_t	oadd(zic_t t1, zic_t t2);
+static void	outzone(const struct zone * zp, ptrdiff_t ntzones);
+static zic_t	rpytime(const struct rule * rp, zic_t wantedy);
+static bool	rulesub(struct rule * rp,
+			const char * loyearp, const char * hiyearp,
+			const char * typep, const char * monthp,
+			const char * dayp, const char * timep);
+static zic_t	tadd(zic_t t1, zic_t t2);
+
+/* Bound on length of what %z can expand to.  */
+enum { PERCENT_Z_LEN_BOUND = sizeof "+995959" - 1 };
+
+static int		charcnt;
+static bool		errors;
+static bool		warnings;
+static int		filenum;
+static int		leapcnt;
+static bool		leapseen;
+static zic_t		leapminyear;
+static zic_t		leapmaxyear;
+static lineno		linenum;
+static int		max_abbrvar_len = PERCENT_Z_LEN_BOUND;
+static int		max_format_len;
+static zic_t		max_year;
+static zic_t		min_year;
+static bool		noise;
+static int		rfilenum;
+static lineno		rlinenum;
+static const char *	progname;
+static char const *	leapsec;
+static char *const *	main_argv;
+static ptrdiff_t	timecnt;
+static ptrdiff_t	timecnt_alloc;
+static int		typecnt;
+static int		unspecifiedtype;
+
+/*
+** Line codes.
+*/
+
+enum {
+  LC_RULE,
+  LC_ZONE,
+  LC_LINK,
+  LC_LEAP,
+  LC_EXPIRES
+};
+
+/*
+** Which fields are which on a Zone line.
+*/
+
+enum {
+  ZF_NAME = 1,
+  ZF_STDOFF,
+  ZF_RULE,
+  ZF_FORMAT,
+  ZF_TILYEAR,
+  ZF_TILMONTH,
+  ZF_TILDAY,
+  ZF_TILTIME,
+  ZONE_MAXFIELDS,
+  ZONE_MINFIELDS = ZF_TILYEAR
+};
+
+/*
+** Which fields are which on a Zone continuation line.
+*/
+
+enum {
+  ZFC_STDOFF,
+  ZFC_RULE,
+  ZFC_FORMAT,
+  ZFC_TILYEAR,
+  ZFC_TILMONTH,
+  ZFC_TILDAY,
+  ZFC_TILTIME,
+  ZONEC_MAXFIELDS,
+  ZONEC_MINFIELDS = ZFC_TILYEAR
+};
+
+/*
+** Which files are which on a Rule line.
+*/
+
+enum {
+  RF_NAME = 1,
+  RF_LOYEAR,
+  RF_HIYEAR,
+  RF_COMMAND,
+  RF_MONTH,
+  RF_DAY,
+  RF_TOD,
+  RF_SAVE,
+  RF_ABBRVAR,
+  RULE_FIELDS
+};
+
+/*
+** Which fields are which on a Link line.
+*/
+
+enum {
+  LF_TARGET = 1,
+  LF_LINKNAME,
+  LINK_FIELDS
+};
+
+/*
+** Which fields are which on a Leap line.
+*/
+
+enum {
+  LP_YEAR = 1,
+  LP_MONTH,
+  LP_DAY,
+  LP_TIME,
+  LP_CORR,
+  LP_ROLL,
+  LEAP_FIELDS,
+
+  /* Expires lines are like Leap lines, except without CORR and ROLL fields.  */
+  EXPIRES_FIELDS = LP_TIME + 1
+};
+
+/* The maximum number of fields on any of the above lines.
+   (The "+"s pacify gcc -Wenum-compare.)  */
+enum {
+  MAX_FIELDS = max(max(+RULE_FIELDS, +LINK_FIELDS),
+		   max(+LEAP_FIELDS, +EXPIRES_FIELDS))
+};
+
+/*
+** Year synonyms.
+*/
+
+enum {
+  YR_MINIMUM, /* "minimum" is for backward compatibility only */
+  YR_MAXIMUM,
+  YR_ONLY
+};
+
+static struct rule *	rules;
+static ptrdiff_t	nrules;	/* number of rules */
+static ptrdiff_t	nrules_alloc;
+
+static struct zone *	zones;
+static ptrdiff_t	nzones;	/* number of zones */
+static ptrdiff_t	nzones_alloc;
+
+struct link {
+	int		l_filenum;
+	lineno		l_linenum;
+	const char *	l_target;
+	const char *	l_linkname;
+};
+
+static struct link *	links;
+static ptrdiff_t	nlinks;
+static ptrdiff_t	nlinks_alloc;
+
+struct lookup {
+	const char *	l_word;
+	const int	l_value;
+};
+
+static struct lookup const *	byword(const char * string,
+					const struct lookup * lp);
+
+static struct lookup const zi_line_codes[] = {
+	{ "Rule",	LC_RULE },
+	{ "Zone",	LC_ZONE },
+	{ "Link",	LC_LINK },
+	{ NULL,		0 }
+};
+static struct lookup const leap_line_codes[] = {
+	{ "Leap",	LC_LEAP },
+	{ "Expires",	LC_EXPIRES },
+	{ NULL,		0}
+};
+
+static struct lookup const	mon_names[] = {
+	{ "January",	TM_JANUARY },
+	{ "February",	TM_FEBRUARY },
+	{ "March",	TM_MARCH },
+	{ "April",	TM_APRIL },
+	{ "May",	TM_MAY },
+	{ "June",	TM_JUNE },
+	{ "July",	TM_JULY },
+	{ "August",	TM_AUGUST },
+	{ "September",	TM_SEPTEMBER },
+	{ "October",	TM_OCTOBER },
+	{ "November",	TM_NOVEMBER },
+	{ "December",	TM_DECEMBER },
+	{ NULL,		0 }
+};
+
+static struct lookup const	wday_names[] = {
+	{ "Sunday",	TM_SUNDAY },
+	{ "Monday",	TM_MONDAY },
+	{ "Tuesday",	TM_TUESDAY },
+	{ "Wednesday",	TM_WEDNESDAY },
+	{ "Thursday",	TM_THURSDAY },
+	{ "Friday",	TM_FRIDAY },
+	{ "Saturday",	TM_SATURDAY },
+	{ NULL,		0 }
+};
+
+static struct lookup const	lasts[] = {
+	{ "last-Sunday",	TM_SUNDAY },
+	{ "last-Monday",	TM_MONDAY },
+	{ "last-Tuesday",	TM_TUESDAY },
+	{ "last-Wednesday",	TM_WEDNESDAY },
+	{ "last-Thursday",	TM_THURSDAY },
+	{ "last-Friday",	TM_FRIDAY },
+	{ "last-Saturday",	TM_SATURDAY },
+	{ NULL,			0 }
+};
+
+static struct lookup const	begin_years[] = {
+	{ "minimum",	YR_MINIMUM },
+	{ NULL,		0 }
+};
+
+static struct lookup const	end_years[] = {
+	{ "maximum",	YR_MAXIMUM },
+	{ "only",	YR_ONLY },
+	{ NULL,		0 }
+};
+
+static struct lookup const	leap_types[] = {
+	{ "Rolling",	true },
+	{ "Stationary",	false },
+	{ NULL,		0 }
+};
+
+static const int	len_months[2][MONSPERYEAR] = {
+	{ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 },
+	{ 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }
+};
+
+static const int	len_years[2] = {
+	DAYSPERNYEAR, DAYSPERLYEAR
+};
+
+static struct attype {
+	zic_t		at;
+	bool		dontmerge;
+	unsigned char	type;
+} *			attypes;
+static zic_t		utoffs[TZ_MAX_TYPES];
+static char		isdsts[TZ_MAX_TYPES];
+static unsigned char	desigidx[TZ_MAX_TYPES];
+static bool		ttisstds[TZ_MAX_TYPES];
+static bool		ttisuts[TZ_MAX_TYPES];
+static char		chars[TZ_MAX_CHARS];
+static zic_t		trans[TZ_MAX_LEAPS];
+static zic_t		corr[TZ_MAX_LEAPS];
+static char		roll[TZ_MAX_LEAPS];
+
+/*
+** Memory allocation.
+*/
+
+ATTRIBUTE_NORETURN static void
+memory_exhausted(const char *msg)
+{
+	fprintf(stderr, _("%s: Memory exhausted: %s\n"), progname, msg);
+	exit(EXIT_FAILURE);
+}
+
+ATTRIBUTE_NORETURN static void
+size_overflow(void)
+{
+  memory_exhausted(_("size overflow"));
+}
+
+ATTRIBUTE_PURE_114833 static ptrdiff_t
+size_sum(size_t a, size_t b)
+{
+#ifdef ckd_add
+  ptrdiff_t sum;
+  if (!ckd_add(&sum, a, b) && sum <= INDEX_MAX)
+    return sum;
+#else
+  if (a <= INDEX_MAX && b <= INDEX_MAX - a)
+    return a + b;
+#endif
+  size_overflow();
+}
+
+ATTRIBUTE_PURE_114833 static ptrdiff_t
+size_product(ptrdiff_t nitems, ptrdiff_t itemsize)
+{
+#ifdef ckd_mul
+  ptrdiff_t product;
+  if (!ckd_mul(&product, nitems, itemsize) && product <= INDEX_MAX)
+    return product;
+#else
+  ptrdiff_t nitems_max = INDEX_MAX / itemsize;
+  if (nitems <= nitems_max)
+    return nitems * itemsize;
+#endif
+  size_overflow();
+}
+
+ATTRIBUTE_PURE_114833 static ptrdiff_t
+align_to(ptrdiff_t size, ptrdiff_t alignment)
+{
+  ptrdiff_t lo_bits = alignment - 1, sum = size_sum(size, lo_bits);
+  return sum & ~lo_bits;
+}
+
+#if !HAVE_STRDUP
+static char *
+strdup(char const *str)
+{
+  char *result = malloc(strlen(str) + 1);
+  return result ? strcpy(result, str) : result;
+}
+#endif
+
+static void *
+memcheck(void *ptr)
+{
+	if (ptr == NULL)
+	  memory_exhausted(strerror(HAVE_MALLOC_ERRNO ? errno : ENOMEM));
+	return ptr;
+}
+
+static void *
+emalloc(size_t size)
+{
+  return memcheck(malloc(size));
+}
+
+static void *
+erealloc(void *ptr, size_t size)
+{
+  return memcheck(realloc(ptr, size));
+}
+
+static char *
+estrdup(char const *str)
+{
+  return memcheck(strdup(str));
+}
+
+static ptrdiff_t
+grow_nitems_alloc(ptrdiff_t *nitems_alloc, ptrdiff_t itemsize)
+{
+  ptrdiff_t addend = (*nitems_alloc >> 1) + 1;
+#if defined ckd_add && defined ckd_mul
+  ptrdiff_t product;
+  if (!ckd_add(nitems_alloc, *nitems_alloc, addend)
+      && !ckd_mul(&product, *nitems_alloc, itemsize) && product <= INDEX_MAX)
+    return product;
+#else
+  if (*nitems_alloc <= ((INDEX_MAX - 1) / 3 * 2) / itemsize) {
+    *nitems_alloc += addend;
+    return *nitems_alloc * itemsize;
+  }
+#endif
+  memory_exhausted(_("integer overflow"));
+}
+
+static void *
+growalloc(void *ptr, ptrdiff_t itemsize, ptrdiff_t nitems,
+	  ptrdiff_t *nitems_alloc)
+{
+  return (nitems < *nitems_alloc
+	  ? ptr
+	  : erealloc(ptr, grow_nitems_alloc(nitems_alloc, itemsize)));
+}
+
+/*
+** Error handling.
+*/
+
+/* In most of the code, an input file name is represented by its index
+   into the main argument vector, except that LEAPSEC_FILENUM stands
+   for leapsec and COMMAND_LINE_FILENUM stands for the command line.  */
+enum { LEAPSEC_FILENUM = -2, COMMAND_LINE_FILENUM = -1 };
+
+/* Return the name of the Ith input file, for diagnostics.  */
+static char const *
+filename(int i)
+{
+  if (i == COMMAND_LINE_FILENUM)
+    return _("command line");
+  else {
+    char const *fname = i == LEAPSEC_FILENUM ? leapsec : main_argv[i];
+    return strcmp(fname, "-") == 0 ? _("standard input") : fname;
+  }
+}
+
+static void
+eats(int fnum, lineno num, int rfnum, lineno rnum)
+{
+	filenum = fnum;
+	linenum = num;
+	rfilenum = rfnum;
+	rlinenum = rnum;
+}
+
+static void
+eat(int fnum, lineno num)
+{
+	eats(fnum, num, 0, -1);
+}
+
+ATTRIBUTE_FORMAT((printf, 1, 0)) static void
+verror(const char *const string, va_list args)
+{
+	/*
+	** Match the format of "cc" to allow sh users to
+	**	zic ... 2>&1 | error -t "*" -v
+	** on BSD systems.
+	*/
+	if (filenum)
+	  fprintf(stderr, _("\"%s\", line %"PRIdMAX": "),
+		  filename(filenum), linenum);
+	vfprintf(stderr, string, args);
+	if (rfilenum)
+		fprintf(stderr, _(" (rule from \"%s\", line %"PRIdMAX")"),
+			filename(rfilenum), rlinenum);
+	fprintf(stderr, "\n");
+}
+
+ATTRIBUTE_FORMAT((printf, 1, 2)) static void
+error(const char *const string, ...)
+{
+	va_list args;
+	va_start(args, string);
+	verror(string, args);
+	va_end(args);
+	errors = true;
+}
+
+ATTRIBUTE_FORMAT((printf, 1, 2)) static void
+warning(const char *const string, ...)
+{
+	va_list args;
+	fprintf(stderr, _("warning: "));
+	va_start(args, string);
+	verror(string, args);
+	va_end(args);
+	warnings = true;
+}
+
+/* Close STREAM.  If it had an I/O error, report it against DIR/NAME,
+   remove TEMPNAME if nonnull, and then exit.  */
+static void
+close_file(FILE *stream, char const *dir, char const *name,
+	   char const *tempname)
+{
+  char const *e = (ferror(stream) ? _("I/O error")
+		   : fclose(stream) != 0 ? strerror(errno) : NULL);
+  if (e) {
+    fprintf(stderr, "%s: %s%s%s%s%s\n", progname,
+	    dir ? dir : "", dir ? "/" : "",
+	    name ? name : "", name ? ": " : "",
+	    e);
+    if (tempname)
+      remove(tempname);
+    exit(EXIT_FAILURE);
+  }
+}
+
+ATTRIBUTE_NORETURN static void
+usage(FILE *stream, int status)
+{
+  fprintf(stream,
+	  _("%s: usage is %s [ --version ] [ --help ] [ -v ] \\\n"
+	    "\t[ -b {slim|fat} ] [ -d directory ] [ -l localtime ]"
+	    " [ -L leapseconds ] \\\n"
+	    "\t[ -p posixrules ] [ -r '[@lo][/@hi]' ] [ -R '@hi' ] \\\n"
+	    "\t[ -t localtime-link ] \\\n"
+	    "\t[ filename ... ]\n\n"
+	    "Report bugs to %s.\n"),
+	  progname, progname, REPORT_BUGS_TO);
+  if (status == EXIT_SUCCESS)
+    close_file(stream, NULL, NULL, NULL);
+  exit(status);
+}
+
+/* Change the working directory to DIR, possibly creating DIR and its
+   ancestors.  After this is done, all files are accessed with names
+   relative to DIR.  */
+static void
+change_directory(char const *dir)
+{
+  if (chdir(dir) != 0) {
+    int chdir_errno = errno;
+    if (chdir_errno == ENOENT) {
+      mkdirs(dir, false);
+      chdir_errno = chdir(dir) == 0 ? 0 : errno;
+    }
+    if (chdir_errno != 0) {
+      fprintf(stderr, _("%s: Can't chdir to %s: %s\n"),
+	      progname, dir, strerror(chdir_errno));
+      exit(EXIT_FAILURE);
+    }
+  }
+}
+
+/* Compare the two links A and B, for a stable sort by link name.  */
+static int
+qsort_linkcmp(void const *a, void const *b)
+{
+  struct link const *l = a;
+  struct link const *m = b;
+  int cmp = strcmp(l->l_linkname, m->l_linkname);
+  if (cmp)
+    return cmp;
+
+  /* The link names are the same.  Make the sort stable by comparing
+     file numbers (where subtraction cannot overflow) and possibly
+     line numbers (where it can).  */
+  cmp = l->l_filenum - m->l_filenum;
+  if (cmp)
+    return cmp;
+  return (l->l_linenum > m->l_linenum) - (l->l_linenum < m->l_linenum);
+}
+
+/* Compare the string KEY to the link B, for bsearch.  */
+static int
+bsearch_linkcmp(void const *key, void const *b)
+{
+  struct link const *m = b;
+  return strcmp(key, m->l_linkname);
+}
+
+/* Make the links specified by the Link lines.  */
+static void
+make_links(void)
+{
+  ptrdiff_t i, j, nalinks, pass_size;
+  if (1 < nlinks)
+    qsort(links, nlinks, sizeof *links, qsort_linkcmp);
+
+  /* Ignore each link superseded by a later link with the same name.  */
+  j = 0;
+  for (i = 0; i < nlinks; i++) {
+    while (i + 1 < nlinks
+	   && strcmp(links[i].l_linkname, links[i + 1].l_linkname) == 0)
+      i++;
+    links[j++] = links[i];
+  }
+  nlinks = pass_size = j;
+
+  /* Walk through the link array making links.  However,
+     if a link's target has not been made yet, append a copy to the
+     end of the array.  The end of the array will gradually fill
+     up with a small sorted subsequence of not-yet-made links.
+     nalinks counts all the links in the array, including copies.
+     When we reach the copied subsequence, it may still contain
+     a link to a not-yet-made link, so the process repeats.
+     At any given point in time, the link array consists of the
+     following subregions, where 0 <= i <= j <= nalinks and
+     0 <= nlinks <= nalinks:
+
+       0 .. (i - 1):
+	 links that either have been made, or have been copied to a
+	 later point point in the array (this later point can be in
+	 any of the three subregions)
+       i .. (j - 1):
+	 not-yet-made links for this pass
+       j .. (nalinks - 1):
+	 not-yet-made links that this pass has skipped because
+	 they were links to not-yet-made links
+
+     The first subregion might not be sorted if nlinks < i;
+     the other two subregions are sorted.  This algorithm does
+     not alter entries 0 .. (nlinks - 1), which remain sorted.
+
+     If there are L links, this algorithm is O(C*L*log(L)) where
+     C is the length of the longest link chain.  Usually C is
+     short (e.g., 3) though its worst-case value is L.  */
+
+  j = nalinks = nlinks;
+
+  for (i = 0; i < nalinks; i++) {
+    struct link *l;
+
+    eat(links[i].l_filenum, links[i].l_linenum);
+
+    /* If this pass examined all its links, start the next pass.  */
+    if (i == j) {
+      if (nalinks - i == pass_size) {
+	error(_("\"Link %s %s\" is part of a link cycle"),
+	      links[i].l_target, links[i].l_linkname);
+	break;
+      }
+      j = nalinks;
+      pass_size = nalinks - i;
+    }
+
+    /* Diagnose self links, which the cycle detection algorithm would not
+       otherwise catch.  */
+    if (strcmp(links[i].l_target, links[i].l_linkname) == 0) {
+      error(_("link %s targets itself"), links[i].l_target);
+      continue;
+    }
+
+    /* Make this link unless its target has not been made yet.  */
+    l = bsearch(links[i].l_target, &links[i + 1], j - (i + 1),
+		sizeof *links, bsearch_linkcmp);
+    if (!l)
+      l = bsearch(links[i].l_target, &links[j], nalinks - j,
+		  sizeof *links, bsearch_linkcmp);
+    if (!l)
+      dolink(links[i].l_target, links[i].l_linkname, false);
+    else {
+      /* The link target has not been made yet; copy the link to the end.  */
+      links = growalloc(links, sizeof *links, nalinks, &nlinks_alloc);
+      links[nalinks++] = links[i];
+    }
+
+    if (noise && i < nlinks) {
+      if (l)
+	warning(_("link %s targeting link %s mishandled by pre-2023 zic"),
+		links[i].l_linkname, links[i].l_target);
+      else if (bsearch(links[i].l_target, links, nlinks, sizeof *links,
+		       bsearch_linkcmp))
+	warning(_("link %s targeting link %s"),
+		links[i].l_linkname, links[i].l_target);
+    }
+  }
+}
+
+/* Simple signal handling: just set a flag that is checked
+   periodically outside critical sections.  To set up the handler,
+   prefer sigaction if available to close a signal race.  */
+
+static sig_atomic_t got_signal;
+
+static void
+signal_handler(int sig)
+{
+#ifndef SA_SIGINFO
+  signal(sig, signal_handler);
+#endif
+  got_signal = sig;
+}
+
+/* Arrange for SIGINT etc. to be caught by the handler.  */
+static void
+catch_signals(void)
+{
+  static int const signals[] = {
+#ifdef SIGHUP
+    SIGHUP,
+#endif
+    SIGINT,
+#ifdef SIGPIPE
+    SIGPIPE,
+#endif
+    SIGTERM
+  };
+  int i;
+  for (i = 0; i < sizeof signals / sizeof signals[0]; i++) {
+#ifdef SA_SIGINFO
+    struct sigaction act0, act;
+    act.sa_handler = signal_handler;
+    sigemptyset(&act.sa_mask);
+    act.sa_flags = 0;
+    if (sigaction(signals[i], &act, &act0) == 0
+	&& ! (act0.sa_flags & SA_SIGINFO) && act0.sa_handler == SIG_IGN) {
+      sigaction(signals[i], &act0, NULL);
+      got_signal = 0;
+    }
+#else
+    if (signal(signals[i], signal_handler) == SIG_IGN) {
+      signal(signals[i], SIG_IGN);
+      got_signal = 0;
+    }
+#endif
+  }
+}
+
+/* If a signal has arrived, terminate zic with appropriate status.  */
+static void
+check_for_signal(void)
+{
+  int sig = got_signal;
+  if (sig) {
+    signal(sig, SIG_DFL);
+    raise(sig);
+    abort(); /* A bug in 'raise'.  */
+  }
+}
+
+enum { TIME_T_BITS_IN_FILE = 64 };
+
+/* The minimum and maximum values representable in a TZif file.  */
+static zic_t const min_time = MINVAL(zic_t, TIME_T_BITS_IN_FILE);
+static zic_t const max_time = MAXVAL(zic_t, TIME_T_BITS_IN_FILE);
+
+/* The minimum, and one less than the maximum, values specified by
+   the -r option.  These default to MIN_TIME and MAX_TIME.  */
+static zic_t lo_time = MINVAL(zic_t, TIME_T_BITS_IN_FILE);
+static zic_t hi_time = MAXVAL(zic_t, TIME_T_BITS_IN_FILE);
+
+/* The time specified by the -R option, defaulting to MIN_TIME;
+   or lo_time, whichever is greater.  */
+static zic_t redundant_time = MINVAL(zic_t, TIME_T_BITS_IN_FILE);
+
+/* The time specified by an Expires line, or negative if no such line.  */
+static zic_t leapexpires = -1;
+
+/* Set the time range of the output to TIMERANGE.
+   Return true if successful.  */
+static bool
+timerange_option(char *timerange)
+{
+  intmax_t lo = min_time, hi = max_time;
+  char *lo_end = timerange, *hi_end;
+  if (*timerange == '@') {
+    errno = 0;
+    lo = strtoimax(timerange + 1, &lo_end, 10);
+    if (lo_end == timerange + 1 || (lo == INTMAX_MAX && errno == ERANGE))
+      return false;
+  }
+  hi_end = lo_end;
+  if (lo_end[0] == '/' && lo_end[1] == '@') {
+    errno = 0;
+    hi = strtoimax(lo_end + 2, &hi_end, 10);
+    if (hi_end == lo_end + 2 || hi == INTMAX_MIN)
+      return false;
+    hi -= ! (hi == INTMAX_MAX && errno == ERANGE);
+  }
+  if (*hi_end || hi < lo || max_time < lo || hi < min_time)
+    return false;
+  lo_time = max(lo, min_time);
+  hi_time = min(hi, max_time);
+  return true;
+}
+
+/* Generate redundant time stamps up to OPT.  Return true if successful.  */
+static bool
+redundant_time_option(char *opt)
+{
+  if (*opt == '@') {
+    intmax_t redundant;
+    char *opt_end;
+    redundant = strtoimax(opt + 1, &opt_end, 10);
+    if (opt_end != opt + 1 && !*opt_end) {
+      redundant_time = max(redundant_time, redundant);
+      return true;
+    }
+  }
+  return false;
+}
+
+static const char *	psxrules;
+static const char *	lcltime;
+static const char *	directory;
+static const char *	tzdefault;
+
+/* -1 if the TZif output file should be slim, 0 if default, 1 if the
+   output should be fat for backward compatibility.  ZIC_BLOAT_DEFAULT
+   determines the default.  */
+static int bloat;
+
+static bool
+want_bloat(void)
+{
+  return 0 <= bloat;
+}
+
+#ifndef ZIC_BLOAT_DEFAULT
+# define ZIC_BLOAT_DEFAULT "slim"
+#endif
+
+int
+main(int argc, char **argv)
+{
+	register int c, k;
+	register ptrdiff_t i, j;
+	bool timerange_given = false;
+
+#ifdef S_IWGRP
+	umask(umask(S_IWGRP | S_IWOTH) | (S_IWGRP | S_IWOTH));
+#endif
+#if HAVE_GETTEXT
+	setlocale(LC_ALL, "");
+# ifdef TZ_DOMAINDIR
+	bindtextdomain(TZ_DOMAIN, TZ_DOMAINDIR);
+# endif /* defined TEXTDOMAINDIR */
+	textdomain(TZ_DOMAIN);
+#endif /* HAVE_GETTEXT */
+	main_argv = argv;
+	progname = argv[0] ? argv[0] : "zic";
+	if (TYPE_BIT(zic_t) < 64) {
+		fprintf(stderr, "%s: %s\n", progname,
+			_("wild compilation-time specification of zic_t"));
+		return EXIT_FAILURE;
+	}
+	for (k = 1; k < argc; k++)
+		if (strcmp(argv[k], "--version") == 0) {
+			printf("zic %s%s\n", PKGVERSION, TZVERSION);
+			close_file(stdout, NULL, NULL, NULL);
+			return EXIT_SUCCESS;
+		} else if (strcmp(argv[k], "--help") == 0) {
+			usage(stdout, EXIT_SUCCESS);
+		}
+	while ((c = getopt(argc, argv, "b:d:l:L:p:r:R:st:vy:")) != EOF
+	       && c != -1)
+		switch (c) {
+			default:
+				usage(stderr, EXIT_FAILURE);
+			case 'b':
+				if (strcmp(optarg, "slim") == 0) {
+				  if (0 < bloat)
+				    error(_("incompatible -b options"));
+				  bloat = -1;
+				} else if (strcmp(optarg, "fat") == 0) {
+				  if (bloat < 0)
+				    error(_("incompatible -b options"));
+				  bloat = 1;
+				} else
+				  error(_("invalid option: -b '%s'"), optarg);
+				break;
+			case 'd':
+				if (directory == NULL)
+					directory = optarg;
+				else {
+					fprintf(stderr,
+						_("%s: More than one -d option"
+						  " specified\n"),
+						progname);
+					return EXIT_FAILURE;
+				}
+				break;
+			case 'l':
+				if (lcltime == NULL)
+					lcltime = optarg;
+				else {
+					fprintf(stderr,
+						_("%s: More than one -l option"
+						  " specified\n"),
+						progname);
+					return EXIT_FAILURE;
+				}
+				break;
+			case 'p':
+				if (psxrules == NULL)
+					psxrules = optarg;
+				else {
+					fprintf(stderr,
+						_("%s: More than one -p option"
+						  " specified\n"),
+						progname);
+					return EXIT_FAILURE;
+				}
+				break;
+			case 't':
+				if (tzdefault != NULL) {
+				  fprintf(stderr,
+					  _("%s: More than one -t option"
+					    " specified\n"),
+					  progname);
+				  return EXIT_FAILURE;
+				}
+				tzdefault = optarg;
+				break;
+			case 'y':
+				warning(_("-y ignored"));
+				break;
+			case 'L':
+				if (leapsec == NULL)
+					leapsec = optarg;
+				else {
+					fprintf(stderr,
+						_("%s: More than one -L option"
+						  " specified\n"),
+						progname);
+					return EXIT_FAILURE;
+				}
+				break;
+			case 'v':
+				noise = true;
+				break;
+			case 'r':
+				if (timerange_given) {
+				  fprintf(stderr,
+					  _("%s: More than one -r option"
+					    " specified\n"),
+					  progname);
+				  return EXIT_FAILURE;
+				}
+				if (! timerange_option(optarg)) {
+				  fprintf(stderr,
+					  _("%s: invalid time range: %s\n"),
+					  progname, optarg);
+				  return EXIT_FAILURE;
+				}
+				timerange_given = true;
+				break;
+			case 'R':
+				if (! redundant_time_option(optarg)) {
+				  fprintf(stderr, _("%s: invalid time: %s\n"),
+					  progname, optarg);
+				  return EXIT_FAILURE;
+				}
+				break;
+			case 's':
+				warning(_("-s ignored"));
+				break;
+		}
+	if (optind == argc - 1 && strcmp(argv[optind], "=") == 0)
+		usage(stderr, EXIT_FAILURE);	/* usage message by request */
+	if (hi_time + (hi_time < ZIC_MAX) < redundant_time) {
+	  fprintf(stderr, _("%s: -R time exceeds -r cutoff\n"), progname);
+	  return EXIT_FAILURE;
+	}
+	if (redundant_time < lo_time)
+	  redundant_time = lo_time;
+	if (bloat == 0) {
+	  static char const bloat_default[] = ZIC_BLOAT_DEFAULT;
+	  if (strcmp(bloat_default, "slim") == 0)
+	    bloat = -1;
+	  else if (strcmp(bloat_default, "fat") == 0)
+	    bloat = 1;
+	  else
+	    abort(); /* Configuration error.  */
+	}
+	if (directory == NULL)
+		directory = TZDIR;
+	if (tzdefault == NULL)
+		tzdefault = TZDEFAULT;
+
+	if (optind < argc && leapsec != NULL) {
+		infile(LEAPSEC_FILENUM, leapsec);
+		adjleap();
+	}
+
+	for (k = optind; k < argc; k++)
+	  infile(k, argv[k]);
+	if (errors)
+		return EXIT_FAILURE;
+	associate();
+	change_directory(directory);
+	catch_signals();
+	for (i = 0; i < nzones; i = j) {
+		/*
+		** Find the next non-continuation zone entry.
+		*/
+		for (j = i + 1; j < nzones && zones[j].z_name == NULL; ++j)
+			continue;
+		outzone(&zones[i], j - i);
+	}
+	make_links();
+	if (lcltime != NULL) {
+		eat(COMMAND_LINE_FILENUM, 1);
+		dolink(lcltime, tzdefault, true);
+	}
+	if (psxrules != NULL) {
+		eat(COMMAND_LINE_FILENUM, 1);
+		dolink(psxrules, TZDEFRULES, true);
+	}
+	if (warnings && (ferror(stderr) || fclose(stderr) != 0))
+	  return EXIT_FAILURE;
+	return errors ? EXIT_FAILURE : EXIT_SUCCESS;
+}
+
+static bool
+componentcheck(char const *name, char const *component,
+	       char const *component_end)
+{
+	enum { component_len_max = 14 };
+	ptrdiff_t component_len = component_end - component;
+	if (component_len == 0) {
+	  if (!*name)
+	    error(_("empty file name"));
+	  else
+	    error(_(component == name
+		     ? "file name '%s' begins with '/'"
+		     : *component_end
+		     ? "file name '%s' contains '//'"
+		     : "file name '%s' ends with '/'"),
+		   name);
+	  return false;
+	}
+	if (0 < component_len && component_len <= 2
+	    && component[0] == '.' && component_end[-1] == '.') {
+	  int len = component_len;
+	  error(_("file name '%s' contains '%.*s' component"),
+		name, len, component);
+	  return false;
+	}
+	if (noise) {
+	  if (0 < component_len && component[0] == '-')
+	    warning(_("file name '%s' component contains leading '-'"),
+		    name);
+	  if (component_len_max < component_len)
+	    warning(_("file name '%s' contains overlength component"
+		      " '%.*s...'"),
+		    name, component_len_max, component);
+	}
+	return true;
+}
+
+static bool
+namecheck(const char *name)
+{
+	register char const *cp;
+
+	/* Benign characters in a portable file name.  */
+	static char const benign[] =
+	  "-/_"
+	  "abcdefghijklmnopqrstuvwxyz"
+	  "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
+
+	/* Non-control chars in the POSIX portable character set,
+	   excluding the benign characters.  */
+	static char const printable_and_not_benign[] =
+	  " !\"#$%&'()*+,.0123456789:;<=>?@[\\]^`{|}~";
+
+	register char const *component = name;
+	for (cp = name; *cp; cp++) {
+		unsigned char c = *cp;
+		if (noise && !strchr(benign, c)) {
+			warning((strchr(printable_and_not_benign, c)
+				 ? _("file name '%s' contains byte '%c'")
+				 : _("file name '%s' contains byte '\\%o'")),
+				name, c);
+		}
+		if (c == '/') {
+			if (!componentcheck(name, component, cp))
+			  return false;
+			component = cp + 1;
+		}
+	}
+	return componentcheck(name, component, cp);
+}
+
+/* Return a random uint_fast64_t.  */
+static uint_fast64_t
+get_rand_u64(void)
+{
+#if HAVE_GETRANDOM
+  static uint_fast64_t entropy_buffer[max(1, 256 / sizeof(uint_fast64_t))];
+  static int nwords;
+  if (!nwords) {
+    ssize_t s;
+    do
+      s = getrandom(entropy_buffer, sizeof entropy_buffer, 0);
+    while (s < 0 && errno == EINTR);
+
+    nwords = s < 0 ? -1 : s / sizeof *entropy_buffer;
+  }
+  if (0 < nwords)
+    return entropy_buffer[--nwords];
+#endif
+
+  /* getrandom didn't work, so fall back on portable code that is
+     not the best because the seed isn't cryptographically random and
+     'rand' might not be cryptographically secure.  */
+  {
+    static bool initialized;
+    if (!initialized) {
+      srand(time(NULL));
+      initialized = true;
+    }
+  }
+
+  /* Return a random number if rand() yields a random number and in
+     the typical case where RAND_MAX is one less than a power of two.
+     In other cases this code yields a sort-of-random number.  */
+  {
+    uint_fast64_t rand_max = RAND_MAX,
+      nrand = rand_max < UINT_FAST64_MAX ? rand_max + 1 : 0,
+      rmod = INT_MAX < UINT_FAST64_MAX ? 0 : UINT_FAST64_MAX / nrand + 1,
+      r = 0, rmax = 0;
+
+    do {
+      uint_fast64_t rmax1 = rmax;
+      if (rmod) {
+	/* Avoid signed integer overflow on theoretical platforms
+	   where uint_fast64_t promotes to int.  */
+	rmax1 %= rmod;
+	r %= rmod;
+      }
+      rmax1 = nrand * rmax1 + rand_max;
+      r = nrand * r + rand();
+      rmax = rmax < rmax1 ? rmax1 : UINT_FAST64_MAX;
+    } while (rmax < UINT_FAST64_MAX);
+
+    return r;
+  }
+}
+
+/* Generate a randomish name in the same directory as *NAME.  If
+   *NAMEALLOC, put the name into *NAMEALLOC which is assumed to be
+   that returned by a previous call and is thus already almost set up
+   and equal to *NAME; otherwise, allocate a new name and put its
+   address into both *NAMEALLOC and *NAME.  */
+static void
+random_dirent(char const **name, char **namealloc)
+{
+  char const *src = *name;
+  char *dst = *namealloc;
+  static char const prefix[] = ".zic";
+  static char const alphabet[] =
+    "abcdefghijklmnopqrstuvwxyz"
+    "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+    "0123456789";
+  enum { prefixlen = sizeof prefix - 1, alphabetlen = sizeof alphabet - 1 };
+  int suffixlen = 6;
+  char const *lastslash = strrchr(src, '/');
+  ptrdiff_t dirlen = lastslash ? lastslash + 1 - src : 0;
+  int i;
+  uint_fast64_t r;
+  uint_fast64_t base = alphabetlen;
+
+  /* BASE**6 */
+  uint_fast64_t base__6 = base * base * base * base * base * base;
+
+  /* The largest uintmax_t that is a multiple of BASE**6.  Any random
+     uintmax_t value that is this value or greater, yields a biased
+     remainder when divided by BASE**6.  UNFAIR_MIN equals the
+     mathematical value of ((UINTMAX_MAX + 1) - (UINTMAX_MAX + 1) % BASE**6)
+     computed without overflow.  */
+  uint_fast64_t unfair_min = - ((UINTMAX_MAX % base__6 + 1) % base__6);
+
+  if (!dst) {
+    dst = emalloc(size_sum(dirlen, prefixlen + suffixlen + 1));
+    memcpy(dst, src, dirlen);
+    memcpy(dst + dirlen, prefix, prefixlen);
+    dst[dirlen + prefixlen + suffixlen] = '\0';
+    *name = *namealloc = dst;
+  }
+
+  do
+    r = get_rand_u64();
+  while (unfair_min <= r);
+
+  for (i = 0; i < suffixlen; i++) {
+    dst[dirlen + prefixlen + i] = alphabet[r % alphabetlen];
+    r /= alphabetlen;
+  }
+}
+
+/* Prepare to write to the file *OUTNAME, using *TEMPNAME to store the
+   name of the temporary file that will eventually be renamed to
+   *OUTNAME.  Assign the temporary file's name to both *OUTNAME and
+   *TEMPNAME.  If *TEMPNAME is null, allocate the name of any such
+   temporary file; otherwise, reuse *TEMPNAME's storage, which is
+   already set up and only needs its trailing suffix updated.  */
+static FILE *
+open_outfile(char const **outname, char **tempname)
+{
+#if __STDC_VERSION__ < 201112
+  static char const fopen_mode[] = "wb";
+#else
+  static char const fopen_mode[] = "wbx";
+#endif
+
+  FILE *fp;
+  bool dirs_made = false;
+  if (!*tempname)
+    random_dirent(outname, tempname);
+
+  while (! (fp = fopen(*outname, fopen_mode))) {
+    int fopen_errno = errno;
+    if (fopen_errno == ENOENT && !dirs_made) {
+      mkdirs(*outname, true);
+      dirs_made = true;
+    } else if (fopen_errno == EEXIST)
+      random_dirent(outname, tempname);
+    else {
+      fprintf(stderr, _("%s: Can't create %s/%s: %s\n"),
+	      progname, directory, *outname, strerror(fopen_errno));
+      exit(EXIT_FAILURE);
+    }
+  }
+
+  return fp;
+}
+
+/* If TEMPNAME, the result is in the temporary file TEMPNAME even
+   though the user wanted it in NAME, so rename TEMPNAME to NAME.
+   Report an error and exit if there is trouble.  Also, free TEMPNAME.  */
+static void
+rename_dest(char *tempname, char const *name)
+{
+  if (tempname) {
+    if (rename(tempname, name) != 0) {
+      int rename_errno = errno;
+      remove(tempname);
+      fprintf(stderr, _("%s: rename to %s/%s: %s\n"),
+	      progname, directory, name, strerror(rename_errno));
+      exit(EXIT_FAILURE);
+    }
+    free(tempname);
+  }
+}
+
+/* Create symlink contents suitable for symlinking TARGET to LINKNAME, as a
+   freshly allocated string.  TARGET should be a relative file name, and
+   is relative to the global variable DIRECTORY.  LINKNAME can be either
+   relative or absolute.  */
+static char *
+relname(char const *target, char const *linkname)
+{
+  size_t i, taillen, dir_len = 0, dotdots = 0;
+  ptrdiff_t dotdotetcsize, linksize = INDEX_MAX;
+  char const *f = target;
+  char *result = NULL;
+  if (*linkname == '/') {
+    /* Make F absolute too.  */
+    size_t len = strlen(directory);
+    size_t lenslash = len + (len && directory[len - 1] != '/');
+    size_t targetsize = strlen(target) + 1;
+    linksize = size_sum(lenslash, targetsize);
+    f = result = emalloc(linksize);
+    memcpy(result, directory, len);
+    result[len] = '/';
+    memcpy(result + lenslash, target, targetsize);
+  }
+  for (i = 0; f[i] && f[i] == linkname[i]; i++)
+    if (f[i] == '/')
+      dir_len = i + 1;
+  for (; linkname[i]; i++)
+    dotdots += linkname[i] == '/' && linkname[i - 1] != '/';
+  taillen = strlen(f + dir_len);
+  dotdotetcsize = size_sum(size_product(dotdots, 3), taillen + 1);
+  if (dotdotetcsize <= linksize) {
+    if (!result)
+      result = emalloc(dotdotetcsize);
+    for (i = 0; i < dotdots; i++)
+      memcpy(result + 3 * i, "../", 3);
+    memmove(result + 3 * dotdots, f + dir_len, taillen + 1);
+  }
+  return result;
+}
+
+/* Return true if A and B must have the same parent dir if A and B exist.
+   Return false if this is not necessarily true (though it might be true).
+   Keep it simple, and do not inspect the file system.  */
+ATTRIBUTE_PURE_114833 static bool
+same_parent_dirs(char const *a, char const *b)
+{
+  for (; *a == *b; a++, b++)
+    if (!*a)
+      return true;
+  return ! (strchr(a, '/') || strchr(b, '/'));
+}
+
+static void
+dolink(char const *target, char const *linkname, bool staysymlink)
+{
+	bool linkdirs_made = false;
+	int link_errno;
+	char *tempname = NULL;
+	char const *outname = linkname;
+	int targetissym = -2, linknameissym = -2;
+
+	check_for_signal();
+
+	if (strcmp(target, "-") == 0) {
+	  if (remove(linkname) == 0 || errno == ENOENT || errno == ENOTDIR)
+	    return;
+	  else {
+	    char const *e = strerror(errno);
+	    fprintf(stderr, _("%s: Can't remove %s/%s: %s\n"),
+		    progname, directory, linkname, e);
+	    exit(EXIT_FAILURE);
+	  }
+	}
+
+	while (true) {
+	  if (linkat(AT_FDCWD, target, AT_FDCWD, outname, AT_SYMLINK_FOLLOW)
+	      == 0) {
+	    link_errno = 0;
+	    break;
+	  }
+	  link_errno = errno;
+	  /* Linux 2.6.16 and 2.6.17 mishandle AT_SYMLINK_FOLLOW.  */
+	  if (link_errno == EINVAL)
+	    link_errno = ENOTSUP;
+#if HAVE_LINK
+	  /* If linkat is not supported, fall back on link(A, B).
+	     However, skip this if A is a relative symlink
+	     and A and B might not have the same parent directory.
+	     On some platforms link(A, B) does not follow a symlink A,
+	     and if A is relative it might misbehave elsewhere.  */
+	  if (link_errno == ENOTSUP
+	      && (same_parent_dirs(target, outname)
+		  || 0 <= itssymlink(target, &targetissym))) {
+	    if (link(target, outname) == 0) {
+	      link_errno = 0;
+	      break;
+	    }
+	    link_errno = errno;
+	  }
+#endif
+	  if (link_errno == EXDEV || link_errno == ENOTSUP)
+	    break;
+
+	  if (link_errno == EEXIST) {
+	    staysymlink &= !tempname;
+	    random_dirent(&outname, &tempname);
+	    if (staysymlink && itssymlink(linkname, &linknameissym))
+	      break;
+	  } else if (link_errno == ENOENT && !linkdirs_made) {
+	    mkdirs(linkname, true);
+	    linkdirs_made = true;
+	  } else {
+	    fprintf(stderr, _("%s: Can't link %s/%s to %s/%s: %s\n"),
+		    progname, directory, target, directory, outname,
+		    strerror(link_errno));
+	    exit(EXIT_FAILURE);
+	  }
+	}
+	if (link_errno != 0) {
+	  bool absolute = *target == '/';
+	  char *linkalloc = absolute ? NULL : relname(target, linkname);
+	  char const *contents = absolute ? target : linkalloc;
+	  int symlink_errno;
+
+	  while (true) {
+	    if (symlink(contents, outname) == 0) {
+	      symlink_errno = 0;
+	      break;
+	    }
+	    symlink_errno = errno;
+	    if (symlink_errno == EEXIST)
+	      random_dirent(&outname, &tempname);
+	    else if (symlink_errno == ENOENT && !linkdirs_made) {
+	      mkdirs(linkname, true);
+	      linkdirs_made = true;
+	    } else
+	      break;
+	  }
+	  free(linkalloc);
+	  if (symlink_errno == 0) {
+	    if (link_errno != ENOTSUP && link_errno != EEXIST)
+	      warning(_("symbolic link used because hard link failed: %s"),
+		      strerror(link_errno));
+	  } else {
+	    FILE *fp, *tp;
+	    int c;
+	    fp = fopen(target, "rb");
+	    if (!fp) {
+	      char const *e = strerror(errno);
+	      fprintf(stderr, _("%s: Can't read %s/%s: %s\n"),
+		      progname, directory, target, e);
+	      exit(EXIT_FAILURE);
+	    }
+	    tp = open_outfile(&outname, &tempname);
+	    while ((c = getc(fp)) != EOF)
+	      putc(c, tp);
+	    close_file(tp, directory, linkname, tempname);
+	    close_file(fp, directory, target, NULL);
+	    if (link_errno != ENOTSUP)
+	      warning(_("copy used because hard link failed: %s"),
+		      strerror(link_errno));
+	    else if (symlink_errno != ENOTSUP)
+	      warning(_("copy used because symbolic link failed: %s"),
+		      strerror(symlink_errno));
+	  }
+	}
+	rename_dest(tempname, linkname);
+}
+
+/* Return 1 if NAME is an absolute symbolic link, -1 if it is relative,
+   0 if it is not a symbolic link.  If *CACHE is not -2, it is the
+   cached result of a previous call to this function with the same NAME.  */
+static int
+itssymlink(char const *name, int *cache)
+{
+  if (*cache == -2) {
+    char c = '\0';
+    *cache = readlink(name, &c, 1) < 0 ? 0 : c == '/' ? 1 : -1;
+  }
+  return *cache;
+}
+
+/*
+** Associate sets of rules with zones.
+*/
+
+/*
+** Sort by rule name.
+*/
+
+static int
+rcomp(const void *cp1, const void *cp2)
+{
+  struct rule const *r1 = cp1, *r2 = cp2;
+  return strcmp(r1->r_name, r2->r_name);
+}
+
+static void
+associate(void)
+{
+	register struct zone *	zp;
+	register struct rule *	rp;
+	register ptrdiff_t i, j, base, out;
+
+	if (1 < nrules) {
+		qsort(rules, nrules, sizeof *rules, rcomp);
+		for (i = 0; i < nrules - 1; ++i) {
+			if (strcmp(rules[i].r_name,
+				rules[i + 1].r_name) != 0)
+					continue;
+			if (rules[i].r_filenum == rules[i + 1].r_filenum)
+					continue;
+			eat(rules[i].r_filenum, rules[i].r_linenum);
+			warning(_("same rule name in multiple files"));
+			eat(rules[i + 1].r_filenum, rules[i + 1].r_linenum);
+			warning(_("same rule name in multiple files"));
+			for (j = i + 2; j < nrules; ++j) {
+				if (strcmp(rules[i].r_name,
+					rules[j].r_name) != 0)
+						break;
+				if (rules[i].r_filenum == rules[j].r_filenum)
+						continue;
+				if (rules[i + 1].r_filenum
+				    == rules[j].r_filenum)
+						continue;
+				break;
+			}
+			i = j - 1;
+		}
+	}
+	for (i = 0; i < nzones; ++i) {
+		zp = &zones[i];
+		zp->z_rules = NULL;
+		zp->z_nrules = 0;
+	}
+	for (base = 0; base < nrules; base = out) {
+		rp = &rules[base];
+		for (out = base + 1; out < nrules; ++out)
+			if (strcmp(rp->r_name, rules[out].r_name) != 0)
+				break;
+		for (i = 0; i < nzones; ++i) {
+			zp = &zones[i];
+			if (strcmp(zp->z_rule, rp->r_name) != 0)
+				continue;
+			zp->z_rules = rp;
+			zp->z_nrules = out - base;
+		}
+	}
+	for (i = 0; i < nzones; ++i) {
+		zp = &zones[i];
+		if (zp->z_nrules == 0) {
+			/*
+			** Maybe we have a local standard time offset.
+			*/
+			eat(zp->z_filenum, zp->z_linenum);
+			zp->z_save = getsave(zp->z_rule, &zp->z_isdst);
+			/*
+			** Note, though, that if there's no rule,
+			** a '%s' in the format is a bad thing.
+			*/
+			if (zp->z_format_specifier == 's')
+				error("%s", _("%s in ruleless zone"));
+		}
+	}
+	if (errors)
+		exit(EXIT_FAILURE);
+}
+
+/* Read a text line from FP into BUF, which is of size BUFSIZE.
+   Terminate it with a NUL byte instead of a newline.
+   Return true if successful, false if EOF.
+   On error, report the error and exit.  */
+static bool
+inputline(FILE *fp, char *buf, ptrdiff_t bufsize)
+{
+  ptrdiff_t linelen = 0, ch;
+  while ((ch = getc(fp)) != '\n') {
+    if (ch < 0) {
+      if (ferror(fp)) {
+	error(_("input error"));
+	exit(EXIT_FAILURE);
+      }
+      if (linelen == 0)
+	return false;
+      error(_("unterminated line"));
+      exit(EXIT_FAILURE);
+    }
+    if (!ch) {
+      error(_("NUL input byte"));
+      exit(EXIT_FAILURE);
+    }
+    buf[linelen++] = ch;
+    if (linelen == bufsize) {
+      error(_("line too long"));
+      exit(EXIT_FAILURE);
+    }
+  }
+  buf[linelen] = '\0';
+  return true;
+}
+
+static void
+infile(int fnum, char const *name)
+{
+	register FILE *			fp;
+	register const struct lookup *	lp;
+	register bool			wantcont;
+	register lineno			num;
+
+	if (strcmp(name, "-") == 0) {
+		fp = stdin;
+	} else if ((fp = fopen(name, "r")) == NULL) {
+		const char *e = strerror(errno);
+
+		fprintf(stderr, _("%s: Can't open %s: %s\n"),
+			progname, name, e);
+		exit(EXIT_FAILURE);
+	}
+	wantcont = false;
+	for (num = 1; ; ++num) {
+		enum { bufsize_bound
+		  = (min(INT_MAX, INDEX_MAX) / FORMAT_LEN_GROWTH_BOUND) };
+		char buf[min(_POSIX2_LINE_MAX, bufsize_bound)];
+		int nfields;
+		char *fields[MAX_FIELDS];
+		eat(fnum, num);
+		if (!inputline(fp, buf, sizeof buf))
+		  break;
+		nfields = getfields(buf, fields,
+				    sizeof fields / sizeof *fields);
+		if (nfields == 0) {
+			/* nothing to do */
+		} else if (wantcont) {
+			wantcont = inzcont(fields, nfields);
+		} else {
+			struct lookup const *line_codes
+			  = fnum < 0 ? leap_line_codes : zi_line_codes;
+			lp = byword(fields[0], line_codes);
+			if (lp == NULL)
+				error(_("input line of unknown type"));
+			else switch (lp->l_value) {
+				case LC_RULE:
+					inrule(fields, nfields);
+					wantcont = false;
+					break;
+				case LC_ZONE:
+					wantcont = inzone(fields, nfields);
+					break;
+				case LC_LINK:
+					inlink(fields, nfields);
+					wantcont = false;
+					break;
+				case LC_LEAP:
+					inleap(fields, nfields);
+					wantcont = false;
+					break;
+				case LC_EXPIRES:
+					inexpires(fields, nfields);
+					wantcont = false;
+					break;
+				default: unreachable();
+			}
+		}
+	}
+	close_file(fp, NULL, filename(fnum), NULL);
+	if (wantcont)
+		error(_("expected continuation line not found"));
+}
+
+/*
+** Convert a string of one of the forms
+**	h	-h	hh:mm	-hh:mm	hh:mm:ss	-hh:mm:ss
+** into a number of seconds.
+** A null string maps to zero.
+** Call error with errstring and return zero on errors.
+*/
+
+static zic_t
+gethms(char const *string, char const *errstring)
+{
+	zic_t	hh;
+	int sign, mm = 0, ss = 0;
+	char hhx, mmx, ssx, xr = '0', xs;
+	int tenths = 0;
+	bool ok = true;
+
+	if (string == NULL || *string == '\0')
+		return 0;
+	if (*string == '-') {
+		sign = -1;
+		++string;
+	} else	sign = 1;
+	switch (sscanf(string,
+		       "%"SCNdZIC"%c%d%c%d%c%1d%*[0]%c%*[0123456789]%c",
+		       &hh, &hhx, &mm, &mmx, &ss, &ssx, &tenths, &xr, &xs)) {
+	  default: ok = false; break;
+	  case 8:
+	    ok = '0' <= xr && xr <= '9';
+	    ATTRIBUTE_FALLTHROUGH;
+	  case 7:
+	    ok &= ssx == '.';
+	    if (ok && noise)
+	      warning(_("fractional seconds rejected by"
+			" pre-2018 versions of zic"));
+	    ATTRIBUTE_FALLTHROUGH;
+	  case 5: ok &= mmx == ':'; ATTRIBUTE_FALLTHROUGH;
+	  case 3: ok &= hhx == ':'; ATTRIBUTE_FALLTHROUGH;
+	  case 1: break;
+	}
+	if (!ok) {
+			error("%s", errstring);
+			return 0;
+	}
+	if (hh < 0 ||
+		mm < 0 || mm >= MINSPERHOUR ||
+		ss < 0 || ss > SECSPERMIN) {
+			error("%s", errstring);
+			return 0;
+	}
+	if (ZIC_MAX / SECSPERHOUR < hh) {
+		error(_("time overflow"));
+		return 0;
+	}
+	ss += 5 + ((ss ^ 1) & (xr == '0')) <= tenths; /* Round to even.  */
+	if (noise && (hh > HOURSPERDAY ||
+		(hh == HOURSPERDAY && (mm != 0 || ss != 0))))
+warning(_("values over 24 hours not handled by pre-2007 versions of zic"));
+	return oadd(sign * hh * SECSPERHOUR,
+		    sign * (mm * SECSPERMIN + ss));
+}
+
+static zic_t
+getsave(char *field, bool *isdst)
+{
+  int dst = -1;
+  zic_t save;
+  ptrdiff_t fieldlen = strlen(field);
+  if (fieldlen != 0) {
+    char *ep = field + fieldlen - 1;
+    switch (*ep) {
+      case 'd': dst = 1; *ep = '\0'; break;
+      case 's': dst = 0; *ep = '\0'; break;
+    }
+  }
+  save = gethms(field, _("invalid saved time"));
+  *isdst = dst < 0 ? save != 0 : dst;
+  return save;
+}
+
+static void
+inrule(char **fields, int nfields)
+{
+	struct rule r;
+
+	if (nfields != RULE_FIELDS) {
+		error(_("wrong number of fields on Rule line"));
+		return;
+	}
+	switch (*fields[RF_NAME]) {
+	  case '\0':
+	  case ' ': case '\f': case '\n': case '\r': case '\t': case '\v':
+	  case '+': case '-':
+	  case '0': case '1': case '2': case '3': case '4':
+	  case '5': case '6': case '7': case '8': case '9':
+		error(_("Invalid rule name \"%s\""), fields[RF_NAME]);
+		return;
+	}
+	r.r_filenum = filenum;
+	r.r_linenum = linenum;
+	r.r_save = getsave(fields[RF_SAVE], &r.r_isdst);
+	if (!rulesub(&r, fields[RF_LOYEAR], fields[RF_HIYEAR],
+		     fields[RF_COMMAND], fields[RF_MONTH], fields[RF_DAY],
+		     fields[RF_TOD]))
+	  return;
+	r.r_name = estrdup(fields[RF_NAME]);
+	r.r_abbrvar = estrdup(fields[RF_ABBRVAR]);
+	if (max_abbrvar_len < strlen(r.r_abbrvar))
+		max_abbrvar_len = strlen(r.r_abbrvar);
+	rules = growalloc(rules, sizeof *rules, nrules, &nrules_alloc);
+	rules[nrules++] = r;
+}
+
+static bool
+inzone(char **fields, int nfields)
+{
+	register ptrdiff_t i;
+
+	if (nfields < ZONE_MINFIELDS || nfields > ZONE_MAXFIELDS) {
+		error(_("wrong number of fields on Zone line"));
+		return false;
+	}
+	if (lcltime != NULL && strcmp(fields[ZF_NAME], tzdefault) == 0) {
+	  error(_("\"Zone %s\" line and -l option are mutually exclusive"),
+		tzdefault);
+	  return false;
+	}
+	if (strcmp(fields[ZF_NAME], TZDEFRULES) == 0 && psxrules != NULL) {
+	  error(_("\"Zone %s\" line and -p option are mutually exclusive"),
+		TZDEFRULES);
+	  return false;
+	}
+	for (i = 0; i < nzones; ++i)
+		if (zones[i].z_name != NULL &&
+			strcmp(zones[i].z_name, fields[ZF_NAME]) == 0) {
+				error(_("duplicate zone name %s"
+					" (file \"%s\", line %"PRIdMAX")"),
+				      fields[ZF_NAME],
+				      filename(zones[i].z_filenum),
+				      zones[i].z_linenum);
+				return false;
+		}
+	return inzsub(fields, nfields, false);
+}
+
+static bool
+inzcont(char **fields, int nfields)
+{
+	if (nfields < ZONEC_MINFIELDS || nfields > ZONEC_MAXFIELDS) {
+		error(_("wrong number of fields on Zone continuation line"));
+		return false;
+	}
+	return inzsub(fields, nfields, true);
+}
+
+static bool
+inzsub(char **fields, int nfields, bool iscont)
+{
+	register char *		cp;
+	char *			cp1;
+	struct zone z;
+	int format_len;
+	register int		i_stdoff, i_rule, i_format;
+	register int		i_untilyear, i_untilmonth;
+	register int		i_untilday, i_untiltime;
+	register bool		hasuntil;
+
+	if (iscont) {
+		i_stdoff = ZFC_STDOFF;
+		i_rule = ZFC_RULE;
+		i_format = ZFC_FORMAT;
+		i_untilyear = ZFC_TILYEAR;
+		i_untilmonth = ZFC_TILMONTH;
+		i_untilday = ZFC_TILDAY;
+		i_untiltime = ZFC_TILTIME;
+	} else if (!namecheck(fields[ZF_NAME]))
+		return false;
+	else {
+		i_stdoff = ZF_STDOFF;
+		i_rule = ZF_RULE;
+		i_format = ZF_FORMAT;
+		i_untilyear = ZF_TILYEAR;
+		i_untilmonth = ZF_TILMONTH;
+		i_untilday = ZF_TILDAY;
+		i_untiltime = ZF_TILTIME;
+	}
+	z.z_filenum = filenum;
+	z.z_linenum = linenum;
+	z.z_stdoff = gethms(fields[i_stdoff], _("invalid UT offset"));
+	if ((cp = strchr(fields[i_format], '%')) != 0) {
+		if ((*++cp != 's' && *cp != 'z') || strchr(cp, '%')
+		    || strchr(fields[i_format], '/')) {
+			error(_("invalid abbreviation format"));
+			return false;
+		}
+	}
+	z.z_format_specifier = cp ? *cp : '\0';
+	format_len = strlen(fields[i_format]);
+	if (max_format_len < format_len)
+	  max_format_len = format_len;
+	hasuntil = nfields > i_untilyear;
+	if (hasuntil) {
+		z.z_untilrule.r_filenum = filenum;
+		z.z_untilrule.r_linenum = linenum;
+		if (!rulesub(
+			&z.z_untilrule,
+			fields[i_untilyear],
+			"only",
+			"",
+			(nfields > i_untilmonth) ?
+			fields[i_untilmonth] : "Jan",
+			(nfields > i_untilday) ? fields[i_untilday] : "1",
+			(nfields > i_untiltime) ? fields[i_untiltime] : "0"))
+		  return false;
+		z.z_untiltime = rpytime(&z.z_untilrule,
+			z.z_untilrule.r_loyear);
+		if (iscont && nzones > 0 &&
+			z.z_untiltime > min_time &&
+			z.z_untiltime < max_time &&
+			zones[nzones - 1].z_untiltime > min_time &&
+			zones[nzones - 1].z_untiltime < max_time &&
+			zones[nzones - 1].z_untiltime >= z.z_untiltime) {
+		  error(_("Zone continuation line end time is"
+			  " not after end time of previous line"));
+		  return false;
+		}
+	}
+	z.z_name = iscont ? NULL : estrdup(fields[ZF_NAME]);
+	z.z_rule = estrdup(fields[i_rule]);
+	z.z_format = cp1 = estrdup(fields[i_format]);
+	if (z.z_format_specifier == 'z') {
+	  cp1[cp - fields[i_format]] = 's';
+	  if (noise)
+	    warning(_("format '%s' not handled by pre-2015 versions of zic"),
+		    fields[i_format]);
+	}
+	zones = growalloc(zones, sizeof *zones, nzones, &nzones_alloc);
+	zones[nzones++] = z;
+	/*
+	** If there was an UNTIL field on this line,
+	** there's more information about the zone on the next line.
+	*/
+	return hasuntil;
+}
+
+static zic_t
+getleapdatetime(char **fields, bool expire_line)
+{
+	register const char *		cp;
+	register const struct lookup *	lp;
+	register zic_t			i, j;
+	zic_t				year;
+	int				month, day;
+	zic_t				dayoff, tod;
+	zic_t				t;
+	char xs;
+
+	dayoff = 0;
+	cp = fields[LP_YEAR];
+	if (sscanf(cp, "%"SCNdZIC"%c", &year, &xs) != 1) {
+		/*
+		** Leapin' Lizards!
+		*/
+		error(_("invalid leaping year"));
+		return -1;
+	}
+	if (!expire_line) {
+	    if (!leapseen || leapmaxyear < year)
+		leapmaxyear = year;
+	    if (!leapseen || leapminyear > year)
+		leapminyear = year;
+	    leapseen = true;
+	}
+	j = EPOCH_YEAR;
+	while (j != year) {
+		if (year > j) {
+			i = len_years[isleap(j)];
+			++j;
+		} else {
+			--j;
+			i = -len_years[isleap(j)];
+		}
+		dayoff = oadd(dayoff, i);
+	}
+	if ((lp = byword(fields[LP_MONTH], mon_names)) == NULL) {
+		error(_("invalid month name"));
+		return -1;
+	}
+	month = lp->l_value;
+	j = TM_JANUARY;
+	while (j != month) {
+		i = len_months[isleap(year)][j];
+		dayoff = oadd(dayoff, i);
+		++j;
+	}
+	cp = fields[LP_DAY];
+	if (sscanf(cp, "%d%c", &day, &xs) != 1 ||
+		day <= 0 || day > len_months[isleap(year)][month]) {
+			error(_("invalid day of month"));
+			return -1;
+	}
+	dayoff = oadd(dayoff, day - 1);
+	if (dayoff < min_time / SECSPERDAY) {
+		error(_("time too small"));
+		return -1;
+	}
+	if (dayoff > max_time / SECSPERDAY) {
+		error(_("time too large"));
+		return -1;
+	}
+	t = dayoff * SECSPERDAY;
+	tod = gethms(fields[LP_TIME], _("invalid time of day"));
+	t = tadd(t, tod);
+	if (t < 0)
+	  error(_("leap second precedes Epoch"));
+	return t;
+}
+
+static void
+inleap(char **fields, int nfields)
+{
+  if (nfields != LEAP_FIELDS)
+    error(_("wrong number of fields on Leap line"));
+  else {
+    zic_t t = getleapdatetime(fields, false);
+    if (0 <= t) {
+      struct lookup const *lp = byword(fields[LP_ROLL], leap_types);
+      if (!lp)
+	error(_("invalid Rolling/Stationary field on Leap line"));
+      else {
+	int correction = 0;
+	if (!fields[LP_CORR][0]) /* infile() turns "-" into "".  */
+	  correction = -1;
+	else if (strcmp(fields[LP_CORR], "+") == 0)
+	  correction = 1;
+	else
+	  error(_("invalid CORRECTION field on Leap line"));
+	if (correction)
+	  leapadd(t, correction, lp->l_value);
+      }
+    }
+  }
+}
+
+static void
+inexpires(char **fields, int nfields)
+{
+  if (nfields != EXPIRES_FIELDS)
+    error(_("wrong number of fields on Expires line"));
+  else if (0 <= leapexpires)
+    error(_("multiple Expires lines"));
+  else
+    leapexpires = getleapdatetime(fields, true);
+}
+
+static void
+inlink(char **fields, int nfields)
+{
+	struct link	l;
+
+	if (nfields != LINK_FIELDS) {
+		error(_("wrong number of fields on Link line"));
+		return;
+	}
+	if (*fields[LF_TARGET] == '\0') {
+		error(_("blank TARGET field on Link line"));
+		return;
+	}
+	if (! namecheck(fields[LF_LINKNAME]))
+	  return;
+	l.l_filenum = filenum;
+	l.l_linenum = linenum;
+	l.l_target = estrdup(fields[LF_TARGET]);
+	l.l_linkname = estrdup(fields[LF_LINKNAME]);
+	links = growalloc(links, sizeof *links, nlinks, &nlinks_alloc);
+	links[nlinks++] = l;
+}
+
+static bool
+rulesub(struct rule *rp, const char *loyearp, const char *hiyearp,
+	const char *typep, const char *monthp, const char *dayp,
+	const char *timep)
+{
+	register const struct lookup *	lp;
+	register const char *		cp;
+	register char *			dp;
+	register char *			ep;
+	char xs;
+
+	if ((lp = byword(monthp, mon_names)) == NULL) {
+		error(_("invalid month name"));
+		return false;
+	}
+	rp->r_month = lp->l_value;
+	rp->r_todisstd = false;
+	rp->r_todisut = false;
+	dp = estrdup(timep);
+	if (*dp != '\0') {
+		ep = dp + strlen(dp) - 1;
+		switch (lowerit(*ep)) {
+			case 's':	/* Standard */
+				rp->r_todisstd = true;
+				rp->r_todisut = false;
+				*ep = '\0';
+				break;
+			case 'w':	/* Wall */
+				rp->r_todisstd = false;
+				rp->r_todisut = false;
+				*ep = '\0';
+				break;
+			case 'g':	/* Greenwich */
+			case 'u':	/* Universal */
+			case 'z':	/* Zulu */
+				rp->r_todisstd = true;
+				rp->r_todisut = true;
+				*ep = '\0';
+				break;
+		}
+	}
+	rp->r_tod = gethms(dp, _("invalid time of day"));
+	free(dp);
+	/*
+	** Year work.
+	*/
+	cp = loyearp;
+	lp = byword(cp, begin_years);
+	if (lp) switch (lp->l_value) {
+		case YR_MINIMUM:
+			warning(_("FROM year \"%s\" is obsolete;"
+				  " treated as %d"),
+				cp, YEAR_32BIT_MIN - 1);
+			rp->r_loyear = YEAR_32BIT_MIN - 1;
+			break;
+		default: unreachable();
+	} else if (sscanf(cp, "%"SCNdZIC"%c", &rp->r_loyear, &xs) != 1) {
+		error(_("invalid starting year"));
+		return false;
+	}
+	cp = hiyearp;
+	lp = byword(cp, end_years);
+	rp->r_hiwasnum = lp == NULL;
+	if (!rp->r_hiwasnum) switch (lp->l_value) {
+		case YR_MAXIMUM:
+			rp->r_hiyear = ZIC_MAX;
+			break;
+		case YR_ONLY:
+			rp->r_hiyear = rp->r_loyear;
+			break;
+		default: unreachable();
+	} else if (sscanf(cp, "%"SCNdZIC"%c", &rp->r_hiyear, &xs) != 1) {
+		error(_("invalid ending year"));
+		return false;
+	}
+	if (rp->r_loyear > rp->r_hiyear) {
+		error(_("starting year greater than ending year"));
+		return false;
+	}
+	if (*typep != '\0') {
+		error(_("year type \"%s\" is unsupported; use \"-\" instead"),
+			typep);
+		return false;
+	}
+	/*
+	** Day work.
+	** Accept things such as:
+	**	1
+	**	lastSunday
+	**	last-Sunday (undocumented; warn about this)
+	**	Sun<=20
+	**	Sun>=7
+	*/
+	dp = estrdup(dayp);
+	if ((lp = byword(dp, lasts)) != NULL) {
+		rp->r_dycode = DC_DOWLEQ;
+		rp->r_wday = lp->l_value;
+		rp->r_dayofmonth = len_months[1][rp->r_month];
+	} else {
+		if ((ep = strchr(dp, '<')) != 0)
+			rp->r_dycode = DC_DOWLEQ;
+		else if ((ep = strchr(dp, '>')) != 0)
+			rp->r_dycode = DC_DOWGEQ;
+		else {
+			ep = dp;
+			rp->r_dycode = DC_DOM;
+		}
+		if (rp->r_dycode != DC_DOM) {
+			*ep++ = 0;
+			if (*ep++ != '=') {
+				error(_("invalid day of month"));
+				free(dp);
+				return false;
+			}
+			if ((lp = byword(dp, wday_names)) == NULL) {
+				error(_("invalid weekday name"));
+				free(dp);
+				return false;
+			}
+			rp->r_wday = lp->l_value;
+		}
+		if (sscanf(ep, "%d%c", &rp->r_dayofmonth, &xs) != 1 ||
+			rp->r_dayofmonth <= 0 ||
+			(rp->r_dayofmonth > len_months[1][rp->r_month])) {
+				error(_("invalid day of month"));
+				free(dp);
+				return false;
+		}
+	}
+	free(dp);
+	return true;
+}
+
+static void
+convert(uint_fast32_t val, char *buf)
+{
+	register int	i;
+	register int	shift;
+	unsigned char *const b = (unsigned char *) buf;
+
+	for (i = 0, shift = 24; i < 4; ++i, shift -= 8)
+	  b[i] = (val >> shift) & 0xff;
+}
+
+static void
+convert64(uint_fast64_t val, char *buf)
+{
+	register int	i;
+	register int	shift;
+	unsigned char *const b = (unsigned char *) buf;
+
+	for (i = 0, shift = 56; i < 8; ++i, shift -= 8)
+	  b[i] = (val >> shift) & 0xff;
+}
+
+static void
+puttzcode(zic_t val, FILE *fp)
+{
+	char	buf[4];
+
+	convert(val, buf);
+	fwrite(buf, sizeof buf, 1, fp);
+}
+
+static void
+puttzcodepass(zic_t val, FILE *fp, int pass)
+{
+  if (pass == 1)
+    puttzcode(val, fp);
+  else {
+	char	buf[8];
+
+	convert64(val, buf);
+	fwrite(buf, sizeof buf, 1, fp);
+  }
+}
+
+static int
+atcomp(const void *avp, const void *bvp)
+{
+  struct attype const *ap = avp, *bp = bvp;
+  zic_t a = ap->at, b = bp->at;
+  return a < b ? -1 : a > b;
+}
+
+struct timerange {
+  int defaulttype;
+  ptrdiff_t base, count;
+  int leapbase, leapcount;
+  bool leapexpiry;
+};
+
+static struct timerange
+limitrange(struct timerange r, zic_t lo, zic_t hi,
+	   zic_t const *ats, unsigned char const *types)
+{
+  /* Omit ordinary transitions < LO.  */
+  while (0 < r.count && ats[r.base] < lo) {
+    r.defaulttype = types[r.base];
+    r.count--;
+    r.base++;
+  }
+
+  /* Omit as many initial leap seconds as possible, such that the
+     first leap second in the truncated list is <= LO, and is a
+     positive leap second if and only if it has a positive correction.
+     This supports common TZif readers that assume that the first leap
+     second is positive if and only if its correction is positive.  */
+  while (1 < r.leapcount && trans[r.leapbase + 1] <= lo) {
+    r.leapcount--;
+    r.leapbase++;
+  }
+  while (0 < r.leapbase
+	 && ((corr[r.leapbase - 1] < corr[r.leapbase])
+	     != (0 < corr[r.leapbase]))) {
+    r.leapcount++;
+    r.leapbase--;
+  }
+
+
+  /* Omit ordinary and leap second transitions greater than HI + 1.  */
+  if (hi < max_time) {
+    while (0 < r.count && hi + 1 < ats[r.base + r.count - 1])
+      r.count--;
+    while (0 < r.leapcount && hi + 1 < trans[r.leapbase + r.leapcount - 1])
+      r.leapcount--;
+  }
+
+  /* Determine whether to append an expiration to the leap second table.  */
+  r.leapexpiry = 0 <= leapexpires && leapexpires - 1 <= hi;
+
+  return r;
+}
+
+static void
+writezone(const char *const name, const char *const string, char version,
+	  int defaulttype)
+{
+	register FILE *			fp;
+	register ptrdiff_t		i, j;
+	register int			pass;
+	char *tempname = NULL;
+	char const *outname = name;
+
+	/* Allocate the ATS and TYPES arrays via a single malloc,
+	   as this is a bit faster.  Do not malloc(0) if !timecnt,
+	   as that might return NULL even on success.  */
+	zic_t *ats = emalloc(align_to(size_product(timecnt + !timecnt,
+						   sizeof *ats + 1),
+				      alignof(zic_t)));
+	void *typesptr = ats + timecnt;
+	unsigned char *types = typesptr;
+	struct timerange rangeall = {0}, range32, range64;
+
+	/*
+	** Sort.
+	*/
+	if (timecnt > 1)
+		qsort(attypes, timecnt, sizeof *attypes, atcomp);
+	/*
+	** Optimize.
+	*/
+	{
+		ptrdiff_t fromi, toi;
+
+		toi = 0;
+		fromi = 0;
+		for ( ; fromi < timecnt; ++fromi) {
+			if (toi != 0
+			    && ((attypes[fromi].at
+				 + utoffs[attypes[toi - 1].type])
+				<= (attypes[toi - 1].at
+				    + utoffs[toi == 1 ? 0
+					     : attypes[toi - 2].type]))) {
+					attypes[toi - 1].type =
+						attypes[fromi].type;
+					continue;
+			}
+			if (toi == 0
+			    || attypes[fromi].dontmerge
+			    || (utoffs[attypes[toi - 1].type]
+				!= utoffs[attypes[fromi].type])
+			    || (isdsts[attypes[toi - 1].type]
+				!= isdsts[attypes[fromi].type])
+			    || (desigidx[attypes[toi - 1].type]
+				!= desigidx[attypes[fromi].type]))
+					attypes[toi++] = attypes[fromi];
+		}
+		timecnt = toi;
+	}
+
+	if (noise && timecnt > 1200) {
+	  if (timecnt > TZ_MAX_TIMES)
+		warning(_("reference clients mishandle"
+			  " more than %d transition times"),
+			TZ_MAX_TIMES);
+	  else
+		warning(_("pre-2014 clients may mishandle"
+			  " more than 1200 transition times"));
+	}
+	/*
+	** Transfer.
+	*/
+	for (i = 0; i < timecnt; ++i) {
+		ats[i] = attypes[i].at;
+		types[i] = attypes[i].type;
+	}
+
+	/*
+	** Correct for leap seconds.
+	*/
+	for (i = 0; i < timecnt; ++i) {
+		j = leapcnt;
+		while (--j >= 0)
+			if (ats[i] > trans[j] - corr[j]) {
+				ats[i] = tadd(ats[i], corr[j]);
+				break;
+			}
+	}
+
+	rangeall.defaulttype = defaulttype;
+	rangeall.count = timecnt;
+	rangeall.leapcount = leapcnt;
+	range64 = limitrange(rangeall, lo_time,
+			     max(hi_time,
+				 redundant_time - (ZIC_MIN < redundant_time)),
+			     ats, types);
+	range32 = limitrange(range64, ZIC32_MIN, ZIC32_MAX, ats, types);
+
+	/* TZif version 4 is needed if a no-op transition is appended to
+	   indicate the expiration of the leap second table, or if the first
+	   leap second transition is not to a +1 or -1 correction.  */
+	for (pass = 1; pass <= 2; pass++) {
+	  struct timerange const *r = pass == 1 ? &range32 : &range64;
+	  if (pass == 1 && !want_bloat())
+	    continue;
+	  if (r->leapexpiry) {
+	    if (noise)
+	      warning(_("%s: pre-2021b clients may mishandle"
+			" leap second expiry"),
+		      name);
+	    version = '4';
+	  }
+	  if (0 < r->leapcount
+	      && corr[r->leapbase] != 1 && corr[r->leapbase] != -1) {
+	    if (noise)
+	      warning(_("%s: pre-2021b clients may mishandle"
+			" leap second table truncation"),
+		      name);
+	    version = '4';
+	  }
+	  if (version == '4')
+	    break;
+	}
+
+	fp = open_outfile(&outname, &tempname);
+
+	for (pass = 1; pass <= 2; ++pass) {
+		register ptrdiff_t thistimei, thistimecnt, thistimelim;
+		register int	thisleapi, thisleapcnt, thisleaplim;
+		struct tzhead tzh;
+		int pretranstype = -1, thisdefaulttype;
+		bool locut, hicut, thisleapexpiry;
+		zic_t lo, thismin, thismax;
+		int old0;
+		char		omittype[TZ_MAX_TYPES];
+		int		typemap[TZ_MAX_TYPES];
+		int		thistypecnt, stdcnt, utcnt;
+		char		thischars[TZ_MAX_CHARS];
+		int		thischarcnt;
+		bool		toomanytimes;
+		int		indmap[TZ_MAX_CHARS];
+
+		if (pass == 1) {
+			thisdefaulttype = range32.defaulttype;
+			thistimei = range32.base;
+			thistimecnt = range32.count;
+			toomanytimes = thistimecnt >> 31 >> 1 != 0;
+			thisleapi = range32.leapbase;
+			thisleapcnt = range32.leapcount;
+			thisleapexpiry = range32.leapexpiry;
+			thismin = ZIC32_MIN;
+			thismax = ZIC32_MAX;
+		} else {
+			thisdefaulttype = range64.defaulttype;
+			thistimei = range64.base;
+			thistimecnt = range64.count;
+			toomanytimes = thistimecnt >> 31 >> 31 >> 2 != 0;
+			thisleapi = range64.leapbase;
+			thisleapcnt = range64.leapcount;
+			thisleapexpiry = range64.leapexpiry;
+			thismin = min_time;
+			thismax = max_time;
+		}
+		if (toomanytimes)
+		  error(_("too many transition times"));
+
+		locut = thismin < lo_time && lo_time <= thismax;
+		hicut = thismin <= hi_time && hi_time < thismax;
+		thistimelim = thistimei + thistimecnt;
+		memset(omittype, true, typecnt);
+
+		/* Determine whether to output a transition before the first
+		   transition in range.  This is needed when the output is
+		   truncated at the start, and is also useful when catering to
+		   buggy 32-bit clients that do not use time type 0 for
+		   timestamps before the first transition.  */
+		if ((locut || (pass == 1 && thistimei))
+		    && ! (thistimecnt && ats[thistimei] == lo_time)) {
+		  pretranstype = thisdefaulttype;
+		  omittype[pretranstype] = false;
+		}
+
+		/* Arguably the default time type in the 32-bit data
+		   should be range32.defaulttype, which is suited for
+		   timestamps just before ZIC32_MIN.  However, zic
+		   traditionally used the time type of the indefinite
+		   past instead.  Internet RFC 8532 says readers should
+		   ignore 32-bit data, so this discrepancy matters only
+		   to obsolete readers where the traditional type might
+		   be more appropriate even if it's "wrong".  So, use
+		   the historical zic value, unless -r specifies a low
+		   cutoff that excludes some 32-bit timestamps.  */
+		if (pass == 1 && lo_time <= thismin)
+		  thisdefaulttype = range64.defaulttype;
+
+		if (locut)
+		  thisdefaulttype = unspecifiedtype;
+		omittype[thisdefaulttype] = false;
+		for (i = thistimei; i < thistimelim; i++)
+		  omittype[types[i]] = false;
+		if (hicut)
+		  omittype[unspecifiedtype] = false;
+
+		/* Reorder types to make THISDEFAULTTYPE type 0.
+		   Use TYPEMAP to swap OLD0 and THISDEFAULTTYPE so that
+		   THISDEFAULTTYPE appears as type 0 in the output instead
+		   of OLD0.  TYPEMAP also omits unused types.  */
+		old0 = strlen(omittype);
+
+#ifndef LEAVE_SOME_PRE_2011_SYSTEMS_IN_THE_LURCH
+		/*
+		** For some pre-2011 systems: if the last-to-be-written
+		** standard (or daylight) type has an offset different from the
+		** most recently used offset,
+		** append an (unused) copy of the most recently used type
+		** (to help get global "altzone" and "timezone" variables
+		** set correctly).
+		*/
+		if (want_bloat()) {
+			register int	mrudst, mrustd, hidst, histd, type;
+
+			hidst = histd = mrudst = mrustd = -1;
+			if (0 <= pretranstype) {
+			  if (isdsts[pretranstype])
+			    mrudst = pretranstype;
+			  else
+			    mrustd = pretranstype;
+			}
+			for (i = thistimei; i < thistimelim; i++)
+				if (isdsts[types[i]])
+					mrudst = types[i];
+				else	mrustd = types[i];
+			for (i = old0; i < typecnt; i++) {
+			  int h = (i == old0 ? thisdefaulttype
+				   : i == thisdefaulttype ? old0 : i);
+			  if (!omittype[h]) {
+			    if (isdsts[h])
+			      hidst = i;
+			    else
+			      histd = i;
+			  }
+			}
+			if (hidst >= 0 && mrudst >= 0 && hidst != mrudst &&
+				utoffs[hidst] != utoffs[mrudst]) {
+					isdsts[mrudst] = -1;
+					type = addtype(utoffs[mrudst],
+						&chars[desigidx[mrudst]],
+						true,
+						ttisstds[mrudst],
+						ttisuts[mrudst]);
+					isdsts[mrudst] = 1;
+					omittype[type] = false;
+			}
+			if (histd >= 0 && mrustd >= 0 && histd != mrustd &&
+				utoffs[histd] != utoffs[mrustd]) {
+					isdsts[mrustd] = -1;
+					type = addtype(utoffs[mrustd],
+						&chars[desigidx[mrustd]],
+						false,
+						ttisstds[mrustd],
+						ttisuts[mrustd]);
+					isdsts[mrustd] = 0;
+					omittype[type] = false;
+			}
+		}
+#endif /* !defined LEAVE_SOME_PRE_2011_SYSTEMS_IN_THE_LURCH */
+		thistypecnt = 0;
+		for (i = old0; i < typecnt; i++)
+		  if (!omittype[i])
+		    typemap[i == old0 ? thisdefaulttype
+			    : i == thisdefaulttype ? old0 : i]
+		      = thistypecnt++;
+
+		for (i = 0; i < sizeof indmap / sizeof indmap[0]; ++i)
+			indmap[i] = -1;
+		thischarcnt = stdcnt = utcnt = 0;
+		for (i = old0; i < typecnt; i++) {
+			register char *	thisabbr;
+
+			if (omittype[i])
+				continue;
+			if (ttisstds[i])
+			  stdcnt = thistypecnt;
+			if (ttisuts[i])
+			  utcnt = thistypecnt;
+			if (indmap[desigidx[i]] >= 0)
+				continue;
+			thisabbr = &chars[desigidx[i]];
+			for (j = 0; j < thischarcnt; ++j)
+				if (strcmp(&thischars[j], thisabbr) == 0)
+					break;
+			if (j == thischarcnt) {
+				strcpy(&thischars[thischarcnt], thisabbr);
+				thischarcnt += strlen(thisabbr) + 1;
+			}
+			indmap[desigidx[i]] = j;
+		}
+		if (pass == 1 && !want_bloat()) {
+		  hicut = thisleapexpiry = false;
+		  pretranstype = -1;
+		  thistimecnt = thisleapcnt = 0;
+		  thistypecnt = thischarcnt = 1;
+		}
+#define DO(field)	fwrite(tzh.field, sizeof tzh.field, 1, fp)
+		memset(&tzh, 0, sizeof tzh);
+		memcpy(tzh.tzh_magic, TZ_MAGIC, sizeof tzh.tzh_magic);
+		tzh.tzh_version[0] = version;
+		convert(utcnt, tzh.tzh_ttisutcnt);
+		convert(stdcnt, tzh.tzh_ttisstdcnt);
+		convert(thisleapcnt + thisleapexpiry, tzh.tzh_leapcnt);
+		convert((0 <= pretranstype) + thistimecnt + hicut,
+			tzh.tzh_timecnt);
+		convert(thistypecnt, tzh.tzh_typecnt);
+		convert(thischarcnt, tzh.tzh_charcnt);
+		DO(tzh_magic);
+		DO(tzh_version);
+		DO(tzh_reserved);
+		DO(tzh_ttisutcnt);
+		DO(tzh_ttisstdcnt);
+		DO(tzh_leapcnt);
+		DO(tzh_timecnt);
+		DO(tzh_typecnt);
+		DO(tzh_charcnt);
+#undef DO
+		if (pass == 1 && !want_bloat()) {
+		  /* Output a minimal data block with just one time type.  */
+		  puttzcode(0, fp);	/* utoff */
+		  putc(0, fp);		/* dst */
+		  putc(0, fp);		/* index of abbreviation */
+		  putc(0, fp);		/* empty-string abbreviation */
+		  continue;
+		}
+
+		/* Output a LO_TIME transition if needed; see limitrange.
+		   But do not go below the minimum representable value
+		   for this pass.  */
+		lo = pass == 1 && lo_time < ZIC32_MIN ? ZIC32_MIN : lo_time;
+
+		if (0 <= pretranstype)
+		  puttzcodepass(lo, fp, pass);
+		for (i = thistimei; i < thistimelim; ++i) {
+		  puttzcodepass(ats[i], fp, pass);
+		}
+		if (hicut)
+		  puttzcodepass(hi_time + 1, fp, pass);
+		if (0 <= pretranstype)
+		  putc(typemap[pretranstype], fp);
+		for (i = thistimei; i < thistimelim; i++)
+		  putc(typemap[types[i]], fp);
+		if (hicut)
+		  putc(typemap[unspecifiedtype], fp);
+
+		for (i = old0; i < typecnt; i++) {
+		  int h = (i == old0 ? thisdefaulttype
+			   : i == thisdefaulttype ? old0 : i);
+		  if (!omittype[h]) {
+		    puttzcode(utoffs[h], fp);
+		    putc(isdsts[h], fp);
+		    putc(indmap[desigidx[h]], fp);
+		  }
+		}
+		if (thischarcnt != 0)
+			fwrite(thischars, sizeof thischars[0],
+				      thischarcnt, fp);
+		thisleaplim = thisleapi + thisleapcnt;
+		for (i = thisleapi; i < thisleaplim; ++i) {
+			register zic_t	todo;
+
+			if (roll[i]) {
+				if (timecnt == 0 || trans[i] < ats[0]) {
+					j = 0;
+					while (isdsts[j])
+						if (++j >= typecnt) {
+							j = 0;
+							break;
+						}
+				} else {
+					j = 1;
+					while (j < timecnt &&
+						trans[i] >= ats[j])
+							++j;
+					j = types[j - 1];
+				}
+				todo = tadd(trans[i], -utoffs[j]);
+			} else	todo = trans[i];
+			puttzcodepass(todo, fp, pass);
+			puttzcode(corr[i], fp);
+		}
+		if (thisleapexpiry) {
+		  /* Append a no-op leap correction indicating when the leap
+		     second table expires.  Although this does not conform to
+		     Internet RFC 8536, most clients seem to accept this and
+		     the plan is to amend the RFC to allow this in version 4
+		     TZif files.  */
+		  puttzcodepass(leapexpires, fp, pass);
+		  puttzcode(thisleaplim ? corr[thisleaplim - 1] : 0, fp);
+		}
+		if (stdcnt != 0)
+		  for (i = old0; i < typecnt; i++)
+			if (!omittype[i])
+				putc(ttisstds[i], fp);
+		if (utcnt != 0)
+		  for (i = old0; i < typecnt; i++)
+			if (!omittype[i])
+				putc(ttisuts[i], fp);
+	}
+	fprintf(fp, "\n%s\n", string);
+	close_file(fp, directory, name, tempname);
+	rename_dest(tempname, name);
+	free(ats);
+}
+
+static char const *
+abbroffset(char *buf, zic_t offset)
+{
+  char sign = '+';
+  int seconds, minutes;
+
+  if (offset < 0) {
+    offset = -offset;
+    sign = '-';
+  }
+
+  seconds = offset % SECSPERMIN;
+  offset /= SECSPERMIN;
+  minutes = offset % MINSPERHOUR;
+  offset /= MINSPERHOUR;
+  if (100 <= offset) {
+    error(_("%%z UT offset magnitude exceeds 99:59:59"));
+    return "%z";
+  } else {
+    char *p = buf;
+    *p++ = sign;
+    *p++ = '0' + offset / 10;
+    *p++ = '0' + offset % 10;
+    if (minutes | seconds) {
+      *p++ = '0' + minutes / 10;
+      *p++ = '0' + minutes % 10;
+      if (seconds) {
+	*p++ = '0' + seconds / 10;
+	*p++ = '0' + seconds % 10;
+      }
+    }
+    *p = '\0';
+    return buf;
+  }
+}
+
+static char const disable_percent_s[] = "";
+
+static ptrdiff_t
+doabbr(char *abbr, struct zone const *zp, char const *letters,
+       bool isdst, zic_t save, bool doquotes)
+{
+	register char *	cp;
+	register char *	slashp;
+	ptrdiff_t len;
+	char const *format = zp->z_format;
+
+	slashp = strchr(format, '/');
+	if (slashp == NULL) {
+	  char letterbuf[PERCENT_Z_LEN_BOUND + 1];
+	  if (zp->z_format_specifier == 'z')
+	    letters = abbroffset(letterbuf, zp->z_stdoff + save);
+	  else if (!letters)
+	    letters = "%s";
+	  else if (letters == disable_percent_s)
+	    return 0;
+	  sprintf(abbr, format, letters);
+	} else if (isdst) {
+		strcpy(abbr, slashp + 1);
+	} else {
+		memcpy(abbr, format, slashp - format);
+		abbr[slashp - format] = '\0';
+	}
+	len = strlen(abbr);
+	if (!doquotes)
+		return len;
+	for (cp = abbr; is_alpha(*cp); cp++)
+		continue;
+	if (len > 0 && *cp == '\0')
+		return len;
+	abbr[len + 2] = '\0';
+	abbr[len + 1] = '>';
+	memmove(abbr + 1, abbr, len);
+	abbr[0] = '<';
+	return len + 2;
+}
+
+static void
+updateminmax(const zic_t x)
+{
+	if (min_year > x)
+		min_year = x;
+	if (max_year < x)
+		max_year = x;
+}
+
+static int
+stringoffset(char *result, zic_t offset)
+{
+	register int	hours;
+	register int	minutes;
+	register int	seconds;
+	bool negative = offset < 0;
+	int len = negative;
+
+	if (negative) {
+		offset = -offset;
+		result[0] = '-';
+	}
+	seconds = offset % SECSPERMIN;
+	offset /= SECSPERMIN;
+	minutes = offset % MINSPERHOUR;
+	offset /= MINSPERHOUR;
+	hours = offset;
+	if (hours >= HOURSPERDAY * DAYSPERWEEK) {
+		result[0] = '\0';
+		return 0;
+	}
+	len += sprintf(result + len, "%d", hours);
+	if (minutes != 0 || seconds != 0) {
+		len += sprintf(result + len, ":%02d", minutes);
+		if (seconds != 0)
+			len += sprintf(result + len, ":%02d", seconds);
+	}
+	return len;
+}
+
+static int
+stringrule(char *result, struct rule *const rp, zic_t save, zic_t stdoff)
+{
+	register zic_t	tod = rp->r_tod;
+	register int	compat = 0;
+
+	if (rp->r_dycode == DC_DOM) {
+		register int	month, total;
+
+		if (rp->r_dayofmonth == 29 && rp->r_month == TM_FEBRUARY)
+			return -1;
+		total = 0;
+		for (month = 0; month < rp->r_month; ++month)
+			total += len_months[0][month];
+		/* Omit the "J" in Jan and Feb, as that's shorter.  */
+		if (rp->r_month <= 1)
+		  result += sprintf(result, "%d", total + rp->r_dayofmonth - 1);
+		else
+		  result += sprintf(result, "J%d", total + rp->r_dayofmonth);
+	} else {
+		register int	week;
+		register int	wday = rp->r_wday;
+		register int	wdayoff;
+
+		if (rp->r_dycode == DC_DOWGEQ) {
+			wdayoff = (rp->r_dayofmonth - 1) % DAYSPERWEEK;
+			if (wdayoff)
+				compat = 2013;
+			wday -= wdayoff;
+			tod += wdayoff * SECSPERDAY;
+			week = 1 + (rp->r_dayofmonth - 1) / DAYSPERWEEK;
+		} else if (rp->r_dycode == DC_DOWLEQ) {
+			if (rp->r_dayofmonth == len_months[1][rp->r_month])
+				week = 5;
+			else {
+				wdayoff = rp->r_dayofmonth % DAYSPERWEEK;
+				if (wdayoff)
+					compat = 2013;
+				wday -= wdayoff;
+				tod += wdayoff * SECSPERDAY;
+				week = rp->r_dayofmonth / DAYSPERWEEK;
+			}
+		} else	return -1;	/* "cannot happen" */
+		if (wday < 0)
+			wday += DAYSPERWEEK;
+		result += sprintf(result, "M%d.%d.%d",
+				  rp->r_month + 1, week, wday);
+	}
+	if (rp->r_todisut)
+	  tod += stdoff;
+	if (rp->r_todisstd && !rp->r_isdst)
+	  tod += save;
+	if (tod != 2 * SECSPERMIN * MINSPERHOUR) {
+		*result++ = '/';
+		if (! stringoffset(result, tod))
+			return -1;
+		if (tod < 0) {
+			if (compat < 2013)
+				compat = 2013;
+		} else if (SECSPERDAY <= tod) {
+			if (compat < 1994)
+				compat = 1994;
+		}
+	}
+	return compat;
+}
+
+static int
+rule_cmp(struct rule const *a, struct rule const *b)
+{
+	if (!a)
+		return -!!b;
+	if (!b)
+		return 1;
+	if (a->r_hiyear != b->r_hiyear)
+		return a->r_hiyear < b->r_hiyear ? -1 : 1;
+	if (a->r_hiyear == ZIC_MAX)
+		return 0;
+	if (a->r_month - b->r_month != 0)
+		return a->r_month - b->r_month;
+	return a->r_dayofmonth - b->r_dayofmonth;
+}
+
+/* Store into RESULT a proleptic TZ string that represent the future
+   predictions for the zone ZPFIRST with ZONECOUNT entries.  Return a
+   compatibility indicator (a TZDB release year) if successful, a
+   negative integer if no such TZ string exists.  */
+static int
+stringzone(char *result, struct zone const *zpfirst, ptrdiff_t zonecount)
+{
+	register const struct zone *	zp;
+	register struct rule *		rp;
+	register struct rule *		stdrp;
+	register struct rule *		dstrp;
+	register ptrdiff_t		i;
+	register int			compat = 0;
+	register int			c;
+	int				offsetlen;
+	struct rule			stdr, dstr;
+	ptrdiff_t len;
+	int dstcmp;
+	struct rule *lastrp[2] = { NULL, NULL };
+	struct zone zstr[2];
+	struct zone const *stdzp;
+	struct zone const *dstzp;
+
+	result[0] = '\0';
+
+	/* Internet RFC 8536 section 5.1 says to use an empty TZ string if
+	   future timestamps are truncated.  */
+	if (hi_time < max_time)
+	  return -1;
+
+	zp = zpfirst + zonecount - 1;
+	for (i = 0; i < zp->z_nrules; ++i) {
+		struct rule **last;
+		int cmp;
+		rp = &zp->z_rules[i];
+		last = &lastrp[rp->r_isdst];
+		cmp = rule_cmp(*last, rp);
+		if (cmp < 0)
+		  *last = rp;
+		else if (cmp == 0)
+		  return -1;
+	}
+	stdrp = lastrp[false];
+	dstrp = lastrp[true];
+	dstcmp = zp->z_nrules ? rule_cmp(dstrp, stdrp) : zp->z_isdst ? 1 : -1;
+	stdzp = dstzp = zp;
+
+	if (dstcmp < 0) {
+	  /* Standard time all year.  */
+	  dstrp = NULL;
+	} else if (0 < dstcmp) {
+	  /* DST all year.  Use an abbreviation like
+	     "XXX3EDT4,0/0,J365/23" for EDT (-04) all year.  */
+	  zic_t save = dstrp ? dstrp->r_save : zp->z_save;
+	  if (0 <= save)
+	    {
+	      /* Positive DST, the typical case for all-year DST.
+		 Fake a timezone with negative DST.  */
+	      stdzp = &zstr[0];
+	      dstzp = &zstr[1];
+	      zstr[0].z_stdoff = zp->z_stdoff + 2 * save;
+	      zstr[0].z_format = "XXX";  /* Any 3 letters will do.  */
+	      zstr[0].z_format_specifier = 0;
+	      zstr[1].z_stdoff = zstr[0].z_stdoff;
+	      zstr[1].z_format = zp->z_format;
+	      zstr[1].z_format_specifier = zp->z_format_specifier;
+	    }
+	  dstr.r_month = TM_JANUARY;
+	  dstr.r_dycode = DC_DOM;
+	  dstr.r_dayofmonth = 1;
+	  dstr.r_tod = 0;
+	  dstr.r_todisstd = dstr.r_todisut = false;
+	  dstr.r_isdst = true;
+	  dstr.r_save = save < 0 ? save : -save;
+	  dstr.r_abbrvar = dstrp ? dstrp->r_abbrvar : NULL;
+	  stdr.r_month = TM_DECEMBER;
+	  stdr.r_dycode = DC_DOM;
+	  stdr.r_dayofmonth = 31;
+	  stdr.r_tod = SECSPERDAY + dstr.r_save;
+	  stdr.r_todisstd = stdr.r_todisut = false;
+	  stdr.r_isdst = false;
+	  stdr.r_save = 0;
+	  stdr.r_abbrvar = save < 0 && stdrp ? stdrp->r_abbrvar : NULL;
+	  dstrp = &dstr;
+	  stdrp = &stdr;
+	}
+	len = doabbr(result, stdzp, stdrp ? stdrp->r_abbrvar : NULL,
+		     false, 0, true);
+	offsetlen = stringoffset(result + len, - stdzp->z_stdoff);
+	if (! offsetlen) {
+		result[0] = '\0';
+		return -1;
+	}
+	len += offsetlen;
+	if (dstrp == NULL)
+		return compat;
+	len += doabbr(result + len, dstzp, dstrp->r_abbrvar,
+		      dstrp->r_isdst, dstrp->r_save, true);
+	if (dstrp->r_save != SECSPERMIN * MINSPERHOUR) {
+	  offsetlen = stringoffset(result + len,
+				   - (dstzp->z_stdoff + dstrp->r_save));
+	  if (! offsetlen) {
+	    result[0] = '\0';
+	    return -1;
+	  }
+	  len += offsetlen;
+	}
+	result[len++] = ',';
+	c = stringrule(result + len, dstrp, dstrp->r_save, stdzp->z_stdoff);
+	if (c < 0) {
+		result[0] = '\0';
+		return -1;
+	}
+	if (compat < c)
+		compat = c;
+	len += strlen(result + len);
+	result[len++] = ',';
+	c = stringrule(result + len, stdrp, dstrp->r_save, stdzp->z_stdoff);
+	if (c < 0) {
+		result[0] = '\0';
+		return -1;
+	}
+	if (compat < c)
+		compat = c;
+	return compat;
+}
+
+static void
+outzone(const struct zone *zpfirst, ptrdiff_t zonecount)
+{
+	register ptrdiff_t		i, j;
+	register zic_t			starttime = 0, untiltime = 0;
+	register bool			startttisstd;
+	register bool			startttisut;
+	register char *			startbuf;
+	register char *			ab;
+	register char *			envvar;
+	register int			max_abbr_len;
+	register int			max_envvar_len;
+	register int			compat;
+	register bool			do_extend;
+	register char			version;
+	zic_t nonTZlimtime = ZIC_MIN;
+	int nonTZlimtype = -1;
+	zic_t max_year0;
+	int defaulttype = -1;
+
+	check_for_signal();
+
+	/* This cannot overflow; see FORMAT_LEN_GROWTH_BOUND.  */
+	max_abbr_len = 2 + max_format_len + max_abbrvar_len;
+	max_envvar_len = 2 * max_abbr_len + 5 * 9;
+
+	startbuf = emalloc(max_abbr_len + 1);
+	ab = emalloc(max_abbr_len + 1);
+	envvar = emalloc(max_envvar_len + 1);
+	INITIALIZE(untiltime);
+	INITIALIZE(starttime);
+	/*
+	** Now. . .finally. . .generate some useful data!
+	*/
+	timecnt = 0;
+	typecnt = 0;
+	charcnt = 0;
+	/*
+	** Thanks to Earl Chew
+	** for noting the need to unconditionally initialize startttisstd.
+	*/
+	startttisstd = false;
+	startttisut = false;
+	min_year = max_year = EPOCH_YEAR;
+	if (leapseen) {
+		updateminmax(leapminyear);
+		updateminmax(leapmaxyear + (leapmaxyear < ZIC_MAX));
+	}
+	for (i = 0; i < zonecount; ++i) {
+		struct zone const *zp = &zpfirst[i];
+		if (i < zonecount - 1)
+			updateminmax(zp->z_untilrule.r_loyear);
+		for (j = 0; j < zp->z_nrules; ++j) {
+			struct rule *rp = &zp->z_rules[j];
+			updateminmax(rp->r_loyear);
+			if (rp->r_hiwasnum)
+				updateminmax(rp->r_hiyear);
+		}
+	}
+	/*
+	** Generate lots of data if a rule can't cover all future times.
+	*/
+	compat = stringzone(envvar, zpfirst, zonecount);
+	version = compat < 2013 ? '2' : '3';
+	do_extend = compat < 0;
+	if (noise) {
+		if (!*envvar)
+			warning("%s %s",
+				_("no proleptic TZ string for zone"),
+				zpfirst->z_name);
+		else if (compat != 0) {
+			/* Circa-COMPAT clients, and earlier clients, might
+			   not work for this zone when given dates before
+			   1970 or after 2038.  */
+			warning(_("%s: pre-%d clients may mishandle"
+				  " distant timestamps"),
+				zpfirst->z_name, compat);
+		}
+	}
+	if (do_extend) {
+		if (min_year >= ZIC_MIN + years_of_observations)
+			min_year -= years_of_observations;
+		else	min_year = ZIC_MIN;
+		if (max_year <= ZIC_MAX - years_of_observations)
+			max_year += years_of_observations;
+		else	max_year = ZIC_MAX;
+	}
+	max_year = max(max_year, (redundant_time / (SECSPERDAY * DAYSPERNYEAR)
+				  + EPOCH_YEAR + 1));
+	max_year0 = max_year;
+	if (want_bloat()) {
+	  /* For the benefit of older systems,
+	     generate data from 1900 through 2038.  */
+	  if (min_year > YEAR_32BIT_MIN - 1)
+		min_year = YEAR_32BIT_MIN - 1;
+	  if (max_year < YEAR_32BIT_MAX)
+		max_year = YEAR_32BIT_MAX;
+	}
+
+	if (min_time < lo_time || hi_time < max_time)
+	  unspecifiedtype = addtype(0, "-00", false, false, false);
+
+	for (i = 0; i < zonecount; ++i) {
+		/*
+		** A guess that may well be corrected later.
+		*/
+		zic_t save = 0;
+		struct zone const *zp = &zpfirst[i];
+		bool usestart = i > 0 && (zp - 1)->z_untiltime > min_time;
+		bool useuntil = i < (zonecount - 1);
+		zic_t stdoff = zp->z_stdoff;
+		zic_t startoff = stdoff;
+		if (useuntil && zp->z_untiltime <= min_time)
+			continue;
+		eat(zp->z_filenum, zp->z_linenum);
+		*startbuf = '\0';
+		if (zp->z_nrules == 0) {
+			int type;
+			save = zp->z_save;
+			doabbr(startbuf, zp, NULL, zp->z_isdst, save, false);
+			type = addtype(oadd(zp->z_stdoff, save),
+				startbuf, zp->z_isdst, startttisstd,
+				startttisut);
+			if (usestart) {
+				addtt(starttime, type);
+				if (useuntil && nonTZlimtime < starttime) {
+				  nonTZlimtime = starttime;
+				  nonTZlimtype = type;
+				}
+				usestart = false;
+			} else
+				defaulttype = type;
+		} else {
+		  zic_t year;
+		  for (year = min_year; year <= max_year; ++year) {
+			if (useuntil && year > zp->z_untilrule.r_hiyear)
+				break;
+			/*
+			** Mark which rules to do in the current year.
+			** For those to do, calculate rpytime(rp, year);
+			** The former TYPE field was also considered here.
+			*/
+			for (j = 0; j < zp->z_nrules; ++j) {
+				zic_t one = 1;
+				zic_t y2038_boundary = one << 31;
+				struct rule *rp = &zp->z_rules[j];
+				eats(zp->z_filenum, zp->z_linenum,
+				     rp->r_filenum, rp->r_linenum);
+				rp->r_todo = year >= rp->r_loyear &&
+						year <= rp->r_hiyear;
+				if (rp->r_todo) {
+					rp->r_temp = rpytime(rp, year);
+					rp->r_todo
+					  = (rp->r_temp < y2038_boundary
+					     || year <= max_year0);
+				}
+			}
+			for ( ; ; ) {
+				register ptrdiff_t k;
+				register zic_t	jtime = 0, ktime = 0;
+				register zic_t	offset;
+				struct rule *rp;
+				int type;
+
+				INITIALIZE(ktime);
+				if (useuntil) {
+					/*
+					** Turn untiltime into UT
+					** assuming the current stdoff and
+					** save values.
+					*/
+					untiltime = zp->z_untiltime;
+					if (!zp->z_untilrule.r_todisut)
+						untiltime = tadd(untiltime,
+								 -stdoff);
+					if (!zp->z_untilrule.r_todisstd)
+						untiltime = tadd(untiltime,
+								 -save);
+				}
+				/*
+				** Find the rule (of those to do, if any)
+				** that takes effect earliest in the year.
+				*/
+				k = -1;
+				for (j = 0; j < zp->z_nrules; ++j) {
+					struct rule *r = &zp->z_rules[j];
+					if (!r->r_todo)
+						continue;
+					eats(zp->z_filenum, zp->z_linenum,
+					     r->r_filenum, r->r_linenum);
+					offset = r->r_todisut ? 0 : stdoff;
+					if (!r->r_todisstd)
+						offset = oadd(offset, save);
+					jtime = r->r_temp;
+					if (jtime == min_time ||
+						jtime == max_time)
+							continue;
+					jtime = tadd(jtime, -offset);
+					if (k < 0 || jtime < ktime) {
+						k = j;
+						ktime = jtime;
+					} else if (jtime == ktime) {
+					  char const *dup_rules_msg =
+					    _("two rules for same instant");
+					  eats(zp->z_filenum, zp->z_linenum,
+					       r->r_filenum, r->r_linenum);
+					  warning("%s", dup_rules_msg);
+					  r = &zp->z_rules[k];
+					  eats(zp->z_filenum, zp->z_linenum,
+					       r->r_filenum, r->r_linenum);
+					  error("%s", dup_rules_msg);
+					}
+				}
+				if (k < 0)
+					break;	/* go on to next year */
+				rp = &zp->z_rules[k];
+				rp->r_todo = false;
+				if (useuntil && ktime >= untiltime) {
+					if (!*startbuf
+					    && (oadd(zp->z_stdoff, rp->r_save)
+						== startoff))
+					  doabbr(startbuf, zp, rp->r_abbrvar,
+						 rp->r_isdst, rp->r_save,
+						 false);
+					break;
+				}
+				save = rp->r_save;
+				if (usestart && ktime == starttime)
+					usestart = false;
+				if (usestart) {
+					if (ktime < starttime) {
+						startoff = oadd(zp->z_stdoff,
+								save);
+						doabbr(startbuf, zp,
+							rp->r_abbrvar,
+							rp->r_isdst,
+							rp->r_save,
+							false);
+						continue;
+					}
+					if (*startbuf == '\0'
+					    && startoff == oadd(zp->z_stdoff,
+								save)) {
+							doabbr(startbuf,
+								zp,
+								rp->r_abbrvar,
+								rp->r_isdst,
+								rp->r_save,
+								false);
+					}
+				}
+				eats(zp->z_filenum, zp->z_linenum,
+				     rp->r_filenum, rp->r_linenum);
+				doabbr(ab, zp, rp->r_abbrvar,
+				       rp->r_isdst, rp->r_save, false);
+				offset = oadd(zp->z_stdoff, rp->r_save);
+				type = addtype(offset, ab, rp->r_isdst,
+					rp->r_todisstd, rp->r_todisut);
+				if (defaulttype < 0 && !rp->r_isdst)
+				  defaulttype = type;
+				addtt(ktime, type);
+				if (nonTZlimtime < ktime
+				    && (useuntil || rp->r_hiyear != ZIC_MAX)) {
+				  nonTZlimtime = ktime;
+				  nonTZlimtype = type;
+				}
+			}
+		  }
+		}
+		if (usestart) {
+			bool isdst = startoff != zp->z_stdoff;
+			if (*startbuf == '\0' && zp->z_format)
+			  doabbr(startbuf, zp, disable_percent_s,
+				 isdst, save, false);
+			eat(zp->z_filenum, zp->z_linenum);
+			if (*startbuf == '\0')
+			  error(_("can't determine time zone abbreviation"
+				  " to use just after until time"));
+			else {
+			  int type = addtype(startoff, startbuf, isdst,
+					     startttisstd, startttisut);
+			  if (defaulttype < 0 && !isdst)
+			    defaulttype = type;
+			  addtt(starttime, type);
+			}
+		}
+		/*
+		** Now we may get to set starttime for the next zone line.
+		*/
+		if (useuntil) {
+			startttisstd = zp->z_untilrule.r_todisstd;
+			startttisut = zp->z_untilrule.r_todisut;
+			starttime = zp->z_untiltime;
+			if (!startttisstd)
+			  starttime = tadd(starttime, -save);
+			if (!startttisut)
+			  starttime = tadd(starttime, -stdoff);
+		}
+	}
+	if (defaulttype < 0)
+	  defaulttype = 0;
+	if (!do_extend && !want_bloat()) {
+	  /* Keep trailing transitions that are no greater than this.  */
+	  zic_t keep_at_max;
+
+	  /* The earliest transition into a time governed by the TZ string.  */
+	  zic_t TZstarttime = ZIC_MAX;
+	  for (i = 0; i < timecnt; i++) {
+	    zic_t at = attypes[i].at;
+	    if (nonTZlimtime < at && at < TZstarttime)
+	      TZstarttime = at;
+	  }
+	  if (TZstarttime == ZIC_MAX)
+	    TZstarttime = nonTZlimtime;
+
+	  /* Omit trailing transitions deducible from the TZ string,
+	     and not needed for -r or -R.  */
+	  keep_at_max = max(TZstarttime, redundant_time);
+	  for (i = j = 0; i < timecnt; i++)
+	    if (attypes[i].at <= keep_at_max) {
+	      attypes[j].at = attypes[i].at;
+	      attypes[j].dontmerge = (attypes[i].at == TZstarttime
+				      && (nonTZlimtype != attypes[i].type
+					  || strchr(envvar, ',')));
+	      attypes[j].type = attypes[i].type;
+	      j++;
+	    }
+	  timecnt = j;
+	}
+	if (do_extend) {
+		/*
+		** If we're extending the explicitly listed observations for
+		** 400 years because we can't fill the proleptic TZ field,
+		** check whether we actually ended up explicitly listing
+		** observations through that period.  If there aren't any
+		** near the end of the 400-year period, add a redundant
+		** one at the end of the final year, to make it clear
+		** that we are claiming to have definite knowledge of
+		** the lack of transitions up to that point.
+		*/
+		struct rule xr;
+		struct attype *lastat;
+		xr.r_month = TM_JANUARY;
+		xr.r_dycode = DC_DOM;
+		xr.r_dayofmonth = 1;
+		xr.r_tod = 0;
+		for (lastat = attypes, i = 1; i < timecnt; i++)
+			if (attypes[i].at > lastat->at)
+				lastat = &attypes[i];
+		if (!lastat || lastat->at < rpytime(&xr, max_year - 1)) {
+			addtt(rpytime(&xr, max_year + 1),
+			      lastat ? lastat->type : defaulttype);
+			attypes[timecnt - 1].dontmerge = true;
+		}
+	}
+	writezone(zpfirst->z_name, envvar, version, defaulttype);
+	free(startbuf);
+	free(ab);
+	free(envvar);
+}
+
+static void
+addtt(zic_t starttime, int type)
+{
+	attypes = growalloc(attypes, sizeof *attypes, timecnt, &timecnt_alloc);
+	attypes[timecnt].at = starttime;
+	attypes[timecnt].dontmerge = false;
+	attypes[timecnt].type = type;
+	++timecnt;
+}
+
+static int
+addtype(zic_t utoff, char const *abbr, bool isdst, bool ttisstd, bool ttisut)
+{
+	register int	i, j;
+
+	if (! (-1L - 2147483647L <= utoff && utoff <= 2147483647L)) {
+		error(_("UT offset out of range"));
+		exit(EXIT_FAILURE);
+	}
+	if (!want_bloat())
+	  ttisstd = ttisut = false;
+
+	for (j = 0; j < charcnt; ++j)
+		if (strcmp(&chars[j], abbr) == 0)
+			break;
+	if (j == charcnt)
+		newabbr(abbr);
+	else {
+	  /* If there's already an entry, return its index.  */
+	  for (i = 0; i < typecnt; i++)
+	    if (utoff == utoffs[i] && isdst == isdsts[i] && j == desigidx[i]
+		&& ttisstd == ttisstds[i] && ttisut == ttisuts[i])
+	      return i;
+	}
+	/*
+	** There isn't one; add a new one, unless there are already too
+	** many.
+	*/
+	if (typecnt >= TZ_MAX_TYPES) {
+		error(_("too many local time types"));
+		exit(EXIT_FAILURE);
+	}
+	i = typecnt++;
+	utoffs[i] = utoff;
+	isdsts[i] = isdst;
+	ttisstds[i] = ttisstd;
+	ttisuts[i] = ttisut;
+	desigidx[i] = j;
+	return i;
+}
+
+static void
+leapadd(zic_t t, int correction, int rolling)
+{
+	register int i;
+
+	if (TZ_MAX_LEAPS <= leapcnt) {
+		error(_("too many leap seconds"));
+		exit(EXIT_FAILURE);
+	}
+	if (rolling && (lo_time != min_time || hi_time != max_time)) {
+	  error(_("Rolling leap seconds not supported with -r"));
+	  exit(EXIT_FAILURE);
+	}
+	for (i = 0; i < leapcnt; ++i)
+		if (t <= trans[i])
+			break;
+	memmove(&trans[i + 1], &trans[i], (leapcnt - i) * sizeof *trans);
+	memmove(&corr[i + 1], &corr[i], (leapcnt - i) * sizeof *corr);
+	memmove(&roll[i + 1], &roll[i], (leapcnt - i) * sizeof *roll);
+	trans[i] = t;
+	corr[i] = correction;
+	roll[i] = rolling;
+	++leapcnt;
+}
+
+static void
+adjleap(void)
+{
+	register int	i;
+	register zic_t	last = 0;
+	register zic_t	prevtrans = 0;
+
+	/*
+	** propagate leap seconds forward
+	*/
+	for (i = 0; i < leapcnt; ++i) {
+		if (trans[i] - prevtrans < 28 * SECSPERDAY) {
+		  error(_("Leap seconds too close together"));
+		  exit(EXIT_FAILURE);
+		}
+		prevtrans = trans[i];
+		trans[i] = tadd(trans[i], last);
+		last = corr[i] += last;
+	}
+
+	if (0 <= leapexpires) {
+	  leapexpires = oadd(leapexpires, last);
+	  if (! (leapcnt == 0 || (trans[leapcnt - 1] < leapexpires))) {
+	    error(_("last Leap time does not precede Expires time"));
+	    exit(EXIT_FAILURE);
+	  }
+	}
+}
+
+/* Is A a space character in the C locale?  */
+static bool
+is_space(char a)
+{
+	switch (a) {
+	  default:
+		return false;
+	  case ' ': case '\f': case '\n': case '\r': case '\t': case '\v':
+		return true;
+	}
+}
+
+/* Is A an alphabetic character in the C locale?  */
+static bool
+is_alpha(char a)
+{
+	switch (a) {
+	  default:
+		return false;
+	  case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G':
+	  case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N':
+	  case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U':
+	  case 'V': case 'W': case 'X': case 'Y': case 'Z':
+	  case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g':
+	  case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n':
+	  case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u':
+	  case 'v': case 'w': case 'x': case 'y': case 'z':
+		return true;
+	}
+}
+
+/* If A is an uppercase character in the C locale, return its lowercase
+   counterpart.  Otherwise, return A.  */
+static char
+lowerit(char a)
+{
+	switch (a) {
+	  default: return a;
+	  case 'A': return 'a'; case 'B': return 'b'; case 'C': return 'c';
+	  case 'D': return 'd'; case 'E': return 'e'; case 'F': return 'f';
+	  case 'G': return 'g'; case 'H': return 'h'; case 'I': return 'i';
+	  case 'J': return 'j'; case 'K': return 'k'; case 'L': return 'l';
+	  case 'M': return 'm'; case 'N': return 'n'; case 'O': return 'o';
+	  case 'P': return 'p'; case 'Q': return 'q'; case 'R': return 'r';
+	  case 'S': return 's'; case 'T': return 't'; case 'U': return 'u';
+	  case 'V': return 'v'; case 'W': return 'w'; case 'X': return 'x';
+	  case 'Y': return 'y'; case 'Z': return 'z';
+	}
+}
+
+/* case-insensitive equality */
+ATTRIBUTE_PURE_114833 static bool
+ciequal(register const char *ap, register const char *bp)
+{
+	while (lowerit(*ap) == lowerit(*bp++))
+		if (*ap++ == '\0')
+			return true;
+	return false;
+}
+
+ATTRIBUTE_PURE_114833 static bool
+itsabbr(register const char *abbr, register const char *word)
+{
+	if (lowerit(*abbr) != lowerit(*word))
+		return false;
+	++word;
+	while (*++abbr != '\0')
+		do {
+			if (*word == '\0')
+				return false;
+		} while (lowerit(*word++) != lowerit(*abbr));
+	return true;
+}
+
+/* Return true if ABBR is an initial prefix of WORD, ignoring ASCII case.  */
+
+ATTRIBUTE_PURE_114833 static bool
+ciprefix(char const *abbr, char const *word)
+{
+  do
+    if (!*abbr)
+      return true;
+  while (lowerit(*abbr++) == lowerit(*word++));
+
+  return false;
+}
+
+static const struct lookup *
+byword(const char *word, const struct lookup *table)
+{
+	register const struct lookup *	foundlp;
+	register const struct lookup *	lp;
+
+	if (word == NULL || table == NULL)
+		return NULL;
+
+	/* If TABLE is LASTS and the word starts with "last" followed
+	   by a non-'-', skip the "last" and look in WDAY_NAMES instead.
+	   Warn about any usage of the undocumented prefix "last-".  */
+	if (table == lasts && ciprefix("last", word) && word[4]) {
+	  if (word[4] == '-')
+	    warning(_("\"%s\" is undocumented; use \"last%s\" instead"),
+		    word, word + 5);
+	  else {
+	    word += 4;
+	    table = wday_names;
+	  }
+	}
+
+	/*
+	** Look for exact match.
+	*/
+	for (lp = table; lp->l_word != NULL; ++lp)
+		if (ciequal(word, lp->l_word))
+			return lp;
+	/*
+	** Look for inexact match.
+	*/
+	foundlp = NULL;
+	for (lp = table; lp->l_word != NULL; ++lp)
+		if (ciprefix(word, lp->l_word)) {
+			if (foundlp == NULL)
+				foundlp = lp;
+			else	return NULL;	/* multiple inexact matches */
+		}
+
+	if (foundlp && noise) {
+	  /* Warn about any backward-compatibility issue with pre-2017c zic.  */
+	  bool pre_2017c_match = false;
+	  for (lp = table; lp->l_word; lp++)
+	    if (itsabbr(word, lp->l_word)) {
+	      if (pre_2017c_match) {
+		warning(_("\"%s\" is ambiguous in pre-2017c zic"), word);
+		break;
+	      }
+	      pre_2017c_match = true;
+	    }
+	}
+
+	return foundlp;
+}
+
+static int
+getfields(char *cp, char **array, int arrayelts)
+{
+	register char *		dp;
+	register int		nsubs;
+
+	nsubs = 0;
+	for ( ; ; ) {
+		char *dstart;
+		while (is_space(*cp))
+				++cp;
+		if (*cp == '\0' || *cp == '#')
+			break;
+		dstart = dp = cp;
+		do {
+			if ((*dp = *cp++) != '"')
+				++dp;
+			else while ((*dp = *cp++) != '"')
+				if (*dp != '\0')
+					++dp;
+				else {
+				  error(_("Odd number of quotation marks"));
+				  exit(EXIT_FAILURE);
+				}
+		} while (*cp && *cp != '#' && !is_space(*cp));
+		if (is_space(*cp))
+			++cp;
+		*dp = '\0';
+		if (nsubs == arrayelts) {
+		  error(_("Too many input fields"));
+		  exit(EXIT_FAILURE);
+		}
+		array[nsubs++] = dstart + (*dstart == '-' && dp == dstart + 1);
+	}
+	return nsubs;
+}
+
+ATTRIBUTE_NORETURN static void
+time_overflow(void)
+{
+  error(_("time overflow"));
+  exit(EXIT_FAILURE);
+}
+
+ATTRIBUTE_PURE_114833 static zic_t
+oadd(zic_t t1, zic_t t2)
+{
+#ifdef ckd_add
+  zic_t sum;
+  if (!ckd_add(&sum, t1, t2))
+    return sum;
+#else
+  if (t1 < 0 ? ZIC_MIN - t1 <= t2 : t2 <= ZIC_MAX - t1)
+    return t1 + t2;
+#endif
+  time_overflow();
+}
+
+ATTRIBUTE_PURE_114833 static zic_t
+tadd(zic_t t1, zic_t t2)
+{
+#ifdef ckd_add
+  zic_t sum;
+  if (!ckd_add(&sum, t1, t2) && min_time <= sum && sum <= max_time)
+    return sum;
+#else
+  if (t1 < 0 ? min_time - t1 <= t2 : t2 <= max_time - t1)
+    return t1 + t2;
+#endif
+  if (t1 == min_time || t1 == max_time)
+    return t1;
+  time_overflow();
+}
+
+/*
+** Given a rule, and a year, compute the date (in seconds since January 1,
+** 1970, 00:00 LOCAL time) in that year that the rule refers to.
+*/
+
+static zic_t
+rpytime(const struct rule *rp, zic_t wantedy)
+{
+	register int	m, i;
+	register zic_t	dayoff;			/* with a nod to Margaret O. */
+	register zic_t	t, y;
+	int yrem;
+
+	if (wantedy == ZIC_MIN)
+		return min_time;
+	if (wantedy == ZIC_MAX)
+		return max_time;
+	m = TM_JANUARY;
+	y = EPOCH_YEAR;
+
+	/* dayoff = floor((wantedy - y) / YEARSPERREPEAT) * DAYSPERREPEAT,
+	   sans overflow.  */
+	yrem = wantedy % YEARSPERREPEAT - y % YEARSPERREPEAT;
+	dayoff = ((wantedy / YEARSPERREPEAT - y / YEARSPERREPEAT
+		   + yrem / YEARSPERREPEAT - (yrem % YEARSPERREPEAT < 0))
+		  * DAYSPERREPEAT);
+	/* wantedy = y + ((wantedy - y) mod YEARSPERREPEAT), sans overflow.  */
+	wantedy = y + (yrem + 2 * YEARSPERREPEAT) % YEARSPERREPEAT;
+
+	while (wantedy != y) {
+		i = len_years[isleap(y)];
+		dayoff = oadd(dayoff, i);
+		y++;
+	}
+	while (m != rp->r_month) {
+		i = len_months[isleap(y)][m];
+		dayoff = oadd(dayoff, i);
+		++m;
+	}
+	i = rp->r_dayofmonth;
+	if (m == TM_FEBRUARY && i == 29 && !isleap(y)) {
+		if (rp->r_dycode == DC_DOWLEQ)
+			--i;
+		else {
+			error(_("use of 2/29 in non leap-year"));
+			exit(EXIT_FAILURE);
+		}
+	}
+	--i;
+	dayoff = oadd(dayoff, i);
+	if (rp->r_dycode == DC_DOWGEQ || rp->r_dycode == DC_DOWLEQ) {
+		/*
+		** Don't trust mod of negative numbers.
+		*/
+		zic_t wday = ((EPOCH_WDAY + dayoff % DAYSPERWEEK + DAYSPERWEEK)
+			      % DAYSPERWEEK);
+		while (wday != rp->r_wday)
+			if (rp->r_dycode == DC_DOWGEQ) {
+				dayoff = oadd(dayoff, 1);
+				if (++wday >= DAYSPERWEEK)
+					wday = 0;
+				++i;
+			} else {
+				dayoff = oadd(dayoff, -1);
+				if (--wday < 0)
+					wday = DAYSPERWEEK - 1;
+				--i;
+			}
+		if (i < 0 || i >= len_months[isleap(y)][m]) {
+			if (noise)
+				warning(_("rule goes past start/end of month; \
+will not work with pre-2004 versions of zic"));
+		}
+	}
+	if (dayoff < min_time / SECSPERDAY)
+		return min_time;
+	if (dayoff > max_time / SECSPERDAY)
+		return max_time;
+	t = (zic_t) dayoff * SECSPERDAY;
+	return tadd(t, rp->r_tod);
+}
+
+static void
+newabbr(const char *string)
+{
+	register int	i;
+
+	if (strcmp(string, GRANDPARENTED) != 0) {
+		register const char *	cp;
+		const char *		mp;
+
+		cp = string;
+		mp = NULL;
+		while (is_alpha(*cp) || ('0' <= *cp && *cp <= '9')
+		       || *cp == '-' || *cp == '+')
+				++cp;
+		if (noise && cp - string < 3)
+		  mp = _("time zone abbreviation has fewer than 3 characters");
+		if (cp - string > ZIC_MAX_ABBR_LEN_WO_WARN)
+		  mp = _("time zone abbreviation has too many characters");
+		if (*cp != '\0')
+mp = _("time zone abbreviation differs from POSIX standard");
+		if (mp != NULL)
+			warning("%s (%s)", mp, string);
+	}
+	i = strlen(string) + 1;
+	if (charcnt + i > TZ_MAX_CHARS) {
+		error(_("too many, or too long, time zone abbreviations"));
+		exit(EXIT_FAILURE);
+	}
+	strcpy(&chars[charcnt], string);
+	charcnt += i;
+}
+
+/* Ensure that the directories of ARGNAME exist, by making any missing
+   ones.  If ANCESTORS, do this only for ARGNAME's ancestors; otherwise,
+   do it for ARGNAME too.  Exit with failure if there is trouble.
+   Do not consider an existing file to be trouble.  */
+static void
+mkdirs(char const *argname, bool ancestors)
+{
+	char *name = estrdup(argname);
+	char *cp = name;
+
+	/* On MS-Windows systems, do not worry about drive letters or
+	   backslashes, as this should suffice in practice.  Time zone
+	   names do not use drive letters and backslashes.  If the -d
+	   option of zic does not name an already-existing directory,
+	   it can use slashes to separate the already-existing
+	   ancestor prefix from the to-be-created subdirectories.  */
+
+	/* Do not mkdir a root directory, as it must exist.  */
+	while (*cp == '/')
+	  cp++;
+
+	while (cp && ((cp = strchr(cp, '/')) || !ancestors)) {
+		if (cp)
+		  *cp = '\0';
+		/*
+		** Try to create it.  It's OK if creation fails because
+		** the directory already exists, perhaps because some
+		** other process just created it.  For simplicity do
+		** not check first whether it already exists, as that
+		** is checked anyway if the mkdir fails.
+		*/
+		if (mkdir(name, MKDIR_UMASK) != 0) {
+			/* Do not report an error if err == EEXIST, because
+			   some other process might have made the directory
+			   in the meantime.  Likewise for ENOSYS, because
+			   Solaris 10 mkdir fails with ENOSYS if the
+			   directory is an automounted mount point.
+			   Likewise for EACCES, since mkdir can fail
+			   with EACCES merely because the parent directory
+			   is unwritable.  Likewise for most other error
+			   numbers.  */
+			int err = errno;
+			if (err == ELOOP || err == ENAMETOOLONG
+			    || err == ENOENT || err == ENOTDIR) {
+				error(_("%s: Can't create directory %s: %s"),
+				      progname, name, strerror(err));
+				exit(EXIT_FAILURE);
+			}
+		}
+		if (cp)
+		  *cp++ = '/';
+	}
+	free(name);
+}
Index: sources/iana/tz/create-2024b-version-patch/create.patch.sh
===================================================================
--- sources/iana/tz/create-2024b-version-patch/create.patch.sh	(nonexistent)
+++ sources/iana/tz/create-2024b-version-patch/create.patch.sh	(revision 394)
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+VERSION=2024b
+
+mkdir -p timezone
+tar -C timezone --files-from=file.list -xzvf ../tzcode$VERSION.tar.gz
+mv timezone timezone-orig
+
+cp -rf ./timezone-new ./timezone
+
+diff --unified -Nr  timezone-orig  timezone > tzcode-$VERSION-version.patch
+
+mv tzcode-$VERSION-version.patch ../patches
+
+rm -rf ./timezone
+rm -rf ./timezone-orig

Property changes on: sources/iana/tz/create-2024b-version-patch/create.patch.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: sources/iana/tz/create-2024b-version-patch/file.list
===================================================================
--- sources/iana/tz/create-2024b-version-patch/file.list	(nonexistent)
+++ sources/iana/tz/create-2024b-version-patch/file.list	(revision 394)
@@ -0,0 +1 @@
+Makefile
Index: sources/iana/tz/create-2024b-version-patch/timezone-new/Makefile
===================================================================
--- sources/iana/tz/create-2024b-version-patch/timezone-new/Makefile	(nonexistent)
+++ sources/iana/tz/create-2024b-version-patch/timezone-new/Makefile	(revision 394)
@@ -0,0 +1,1381 @@
+# Make and install tzdb code and data.
+# This file is in the public domain, so clarified as of
+# 2009-05-17 by Arthur David Olson.
+# Request POSIX conformance; this must be the first non-comment line.
+.POSIX:
+# On older platforms you may need to scrounge for POSIX conformance.
+# For example, on Solaris 10 (2005) with Sun Studio 12 aka Sun C 5.9 (2007),
+# use 'PATH=/usr/xpg4/bin:$PATH make CC=c99'.
+
+# To affect how this Makefile works, you can run a shell script like this:
+#
+#	#!/bin/sh
+#	make CC='gcc -std=gnu23' "$@"
+#
+# This example script is appropriate for a circa 2024 GNU/Linux system
+# where a non-default setting enables this package's optional use of C23.
+#
+# Alternatively, you can simply edit this Makefile to tailor the following
+# macro definitions.
+
+###############################################################################
+# Start of macros that one plausibly might want to tailor.
+
+# Package name for the code distribution.
+PACKAGE=	tzcode
+
+# Version number for the distribution, overridden in the 'tarballs' rule below.
+VERSION=	2024b
+
+# Email address for bug reports.
+BUGEMAIL=	tz@iana.org
+
+# DATAFORM selects the data format.
+# Available formats represent essentially the same data, albeit
+# possibly with minor discrepancies that users are not likely to notice.
+# To get new features and the best data right away, use:
+#	DATAFORM=	vanguard
+# To wait a while before using new features, to give downstream users
+# time to upgrade zic (the default), use:
+#	DATAFORM=	main
+# To wait even longer for new features, use:
+#	DATAFORM=	rearguard
+# Rearguard users might also want "ZFLAGS = -b fat"; see below.
+DATAFORM=		main
+
+# Change the line below for your timezone (after finding the one you want in
+# one of the $(TDATA) source files, or adding it to a source file).
+# Alternatively, if you discover you've got the wrong timezone, you can just
+# 'zic -l -' to remove it, or 'zic -l rightzone' to change it.
+# Use the command
+#	make zonenames
+# to get a list of the values you can use for LOCALTIME.
+
+LOCALTIME=	Factory
+
+# The POSIXRULES macro controls interpretation of POSIX-like TZ
+# settings like TZ='EET-2EEST' that lack DST transition rules.
+# If POSIXRULES is '-', no template is installed; this is the default.
+# Any other value for POSIXRULES is obsolete and should not be relied on, as:
+# * It does not work correctly in popular implementations such as GNU/Linux.
+# * It does not work even in tzcode, except for historical timestamps
+#   that precede the last explicit transition in the POSIXRULES file.
+#   Hence it typically does not work for current and future timestamps.
+# If, despite the above, you want a template for handling these settings,
+# you can change the line below (after finding the timezone you want in the
+# one of the $(TDATA) source files, or adding it to a source file).
+# Alternatively, if you discover you've got the wrong timezone, you can just
+# 'zic -p -' to remove it, or 'zic -p rightzone' to change it.
+# Use the command
+#	make zonenames
+# to get a list of the values you can use for POSIXRULES.
+
+POSIXRULES=	-
+
+# Also see TZDEFRULESTRING below, which takes effect only
+# if POSIXRULES is '-' or if the template file cannot be accessed.
+
+
+# Installation locations.
+#
+# The defaults are suitable for Debian, except that if REDO is
+# posix_right or right_posix then files that Debian puts under
+# /usr/share/zoneinfo/posix and /usr/share/zoneinfo/right are instead
+# put under /usr/share/zoneinfo-posix and /usr/share/zoneinfo-leaps,
+# respectively.  Problems with the Debian approach are discussed in
+# the commentary for the right_posix rule (below).
+
+# Destination directory, which can be used for staging.
+# 'make DESTDIR=/stage install' installs under /stage (e.g., to
+# /stage/etc/localtime instead of to /etc/localtime).  Files under
+# /stage are not intended to work as-is, but can be copied by hand to
+# the root directory later.  If DESTDIR is empty, 'make install' does
+# not stage, but installs directly into production locations.
+DESTDIR =
+
+# Everything is installed into subdirectories of TOPDIR, and used there.
+# TOPDIR should be empty (meaning the root directory),
+# or a directory name that does not end in "/".
+# TOPDIR should be empty or an absolute name unless you're just testing.
+TOPDIR =
+
+# The default local timezone is taken from the file TZDEFAULT.
+TZDEFAULT = $(TOPDIR)/etc/localtime
+
+# The subdirectory containing installed program and data files, and
+# likewise for installed files that can be shared among architectures.
+# These should be relative file names.
+USRDIR = usr
+USRSHAREDIR = $(USRDIR)/share
+
+# "Compiled" timezone information is placed in the "TZDIR" directory
+# (and subdirectories).
+# TZDIR_BASENAME should not contain "/" and should not be ".", ".." or empty.
+TZDIR_BASENAME=	zoneinfo
+TZDIR = $(TOPDIR)/$(USRSHAREDIR)/$(TZDIR_BASENAME)
+
+# The "tzselect" and (if you do "make INSTALL") "date" commands go in:
+BINDIR = $(TOPDIR)/$(USRDIR)/bin
+
+# The "zdump" command goes in:
+ZDUMPDIR = $(BINDIR)
+
+# The "zic" command goes in:
+ZICDIR = $(TOPDIR)/$(USRDIR)/sbin
+
+# Manual pages go in subdirectories of. . .
+MANDIR = $(TOPDIR)/$(USRSHAREDIR)/man
+
+# Library functions are put in an archive in LIBDIR.
+LIBDIR = $(TOPDIR)/$(USRDIR)/lib
+
+
+# Types to try, as an alternative to time_t.
+TIME_T_ALTERNATIVES = $(TIME_T_ALTERNATIVES_HEAD) $(TIME_T_ALTERNATIVES_TAIL)
+TIME_T_ALTERNATIVES_HEAD = int_least64_t.ck
+TIME_T_ALTERNATIVES_TAIL = int_least32_t.ck uint_least32_t.ck \
+  uint_least64_t.ck
+
+# What kind of TZif data files to generate.  (TZif is the binary time
+# zone data format that zic generates; see Internet RFC 8536.)
+# If you want only POSIX time, with time values interpreted as
+# seconds since the epoch (not counting leap seconds), use
+#	REDO=		posix_only
+# below.  If you want only "right" time, with values interpreted
+# as seconds since the epoch (counting leap seconds), use
+#	REDO=		right_only
+# below.  If you want both sets of data available, with leap seconds not
+# counted normally, use
+#	REDO=		posix_right
+# below.  If you want both sets of data available, with leap seconds counted
+# normally, use
+#	REDO=		right_posix
+# below.  POSIX mandates that leap seconds not be counted; for compatibility
+# with it, use "posix_only" or "posix_right".  Use POSIX time on systems with
+# leap smearing; this can work better than unsmeared "right" time with
+# applications that are not leap second aware, and is closer to unsmeared
+# "right" time than unsmeared POSIX time is (e.g., 0.5 vs 1.0 s max error).
+
+REDO=		posix_right
+
+# Whether to put an "Expires" line in the leapseconds file.
+# Use EXPIRES_LINE=1 to put the line in, 0 to omit it.
+# The EXPIRES_LINE value matters only if REDO's value contains "right".
+# If you change EXPIRES_LINE, remove the leapseconds file before running "make".
+# zic's support for the Expires line was introduced in tzdb 2020a,
+# and was modified in tzdb 2021b to generate version 4 TZif files.
+# EXPIRES_LINE defaults to 0 for now so that the leapseconds file
+# can be given to pre-2020a zic implementations and so that TZif files
+# built by newer zic implementations can be read by pre-2021b libraries.
+EXPIRES_LINE=	0
+
+# To install data in text form that has all the information of the TZif data,
+# (optionally incorporating leap second information), use
+#	TZDATA_TEXT=	tzdata.zi leapseconds
+# To install text data without leap second information (e.g., because
+# REDO='posix_only'), use
+#	TZDATA_TEXT=	tzdata.zi
+# To avoid installing text data, use
+#	TZDATA_TEXT=
+
+TZDATA_TEXT=	leapseconds tzdata.zi
+
+# For backward-compatibility links for old zone names, use
+#	BACKWARD=	backward
+# To omit these links, use
+#	BACKWARD=
+
+BACKWARD=	backward
+
+# If you want out-of-scope and often-wrong data from the file 'backzone',
+# but only for entries listed in the backward-compatibility file zone.tab, use
+#	PACKRATDATA=	backzone
+#	PACKRATLIST=	zone.tab
+# If you want all the 'backzone' data, use
+#	PACKRATDATA=	backzone
+#	PACKRATLIST=
+# To omit this data, use
+#	PACKRATDATA=
+#	PACKRATLIST=
+
+PACKRATDATA=
+PACKRATLIST=
+
+# The name of a locale using the UTF-8 encoding, used during self-tests.
+# The tests are skipped if the name does not appear to work on this system.
+
+UTF8_LOCALE=	en_US.utf8
+
+# Non-default libraries needed to link.
+# On some hosts, this should have -lintl unless CFLAGS has -DHAVE_GETTEXT=0.
+LDLIBS=
+
+# Add the following to an uncommented "CFLAGS=" line as needed
+# to override defaults specified in the source code or by the system.
+# "-DFOO" is equivalent to "-DFOO=1".
+#  -DDEPRECATE_TWO_DIGIT_YEARS for optional runtime warnings about strftime
+#	formats that generate only the last two digits of year numbers
+#  -DEPOCH_LOCAL if the 'time' function returns local time not UT
+#  -DEPOCH_OFFSET=N if the 'time' function returns a value N greater
+#	than what POSIX specifies, assuming local time is UT.
+#	For example, N is 252460800 on AmigaOS.
+#  -DHAVE_DECL_ASCTIME_R=0 if <time.h> does not declare asctime_r
+#	on POSIX platforms predating POSIX.1-2024
+#  -DHAVE_DECL_ENVIRON if <unistd.h> declares 'environ'
+#  -DHAVE_DECL_TIMEGM=0 if <time.h> does not declare timegm
+#  -DHAVE_DIRECT_H if mkdir needs <direct.h> (MS-Windows)
+#  -DHAVE__GENERIC=0 if _Generic does not work*
+#  -DHAVE_GETRANDOM if getrandom works (e.g., GNU/Linux),
+#	-DHAVE_GETRANDOM=0 to avoid using getrandom
+#  -DHAVE_GETTEXT if gettext works (e.g., GNU/Linux, FreeBSD, Solaris),
+#	where LDLIBS also needs to contain -lintl on some hosts;
+#	-DHAVE_GETTEXT=0 to avoid using gettext
+#  -DHAVE_INCOMPATIBLE_CTIME_R if your system's time.h declares
+#	ctime_r and asctime_r incompatibly with POSIX.1-2017 and earlier
+#	(Solaris when _POSIX_PTHREAD_SEMANTICS is not defined).
+#  -DHAVE_INTTYPES_H=0 if <inttypes.h> does not work*+
+#  -DHAVE_LINK=0 if your system lacks a link function
+#  -DHAVE_LOCALTIME_R=0 if your system lacks a localtime_r function
+#  -DHAVE_LOCALTIME_RZ=0 if you do not want zdump to use localtime_rz
+#	localtime_rz can make zdump significantly faster, but is nonstandard.
+#  -DHAVE_MALLOC_ERRNO=0 if malloc etc. do not set errno on failure.
+#  -DHAVE_POSIX_DECLS=0 if your system's include files do not declare
+#	functions like 'link' or variables like 'tzname' required by POSIX
+#  -DHAVE_SETENV=0 if your system lacks the setenv function
+#  -DHAVE_SNPRINTF=0 if your system lacks the snprintf function+
+#  -DHAVE_STDCKDINT_H=0 if neither <stdckdint.h> nor substitutes like
+#	__builtin_add_overflow work*
+#  -DHAVE_STDINT_H=0 if <stdint.h> does not work*+
+#  -DHAVE_STRFTIME_L if <time.h> declares locale_t and strftime_l
+#  -DHAVE_STRDUP=0 if your system lacks the strdup function
+#  -DHAVE_STRTOLL=0 if your system lacks the strtoll function+
+#  -DHAVE_SYMLINK=0 if your system lacks the symlink function
+#  -DHAVE_SYS_STAT_H=0 if <sys/stat.h> does not work*
+#  -DHAVE_TZSET=0 if your system lacks a tzset function
+#  -DHAVE_UNISTD_H=0 if <unistd.h> does not work*
+#  -DHAVE_UTMPX_H=0 if <utmpx.h> does not work*
+#  -Dlocale_t=XXX if your system uses XXX instead of locale_t
+#  -DPORT_TO_C89 if tzcode should also run on mostly-C89 platforms+
+#	Typically it is better to use a later standard.  For example,
+#	with GCC 4.9.4 (2016), prefer '-std=gnu11' to '-DPORT_TO_C89'.
+#	Even with -DPORT_TO_C89, the code needs at least one C99
+#	feature (integers at least 64 bits wide) and maybe more.
+#  -DRESERVE_STD_EXT_IDS if your platform reserves standard identifiers
+#	with external linkage, e.g., applications cannot define 'localtime'.
+#  -Dssize_t=long on hosts like MS-Windows that lack ssize_t
+#  -DSUPPORT_C89=0 if the tzcode library should not support C89 callers
+#	Although -DSUPPORT_C89=0 might work around latent bugs in callers,
+#	it does not conform to POSIX.
+#  -DSUPPORT_POSIX2008 if the library should support older POSIX callers+
+#	However, this might cause problems in POSIX.1-2024-or-later callers.
+#  -DSUPPRESS_TZDIR to not prepend TZDIR to file names; this has
+#	security implications and is not recommended for general use
+#  -DTHREAD_SAFE to make localtime.c thread-safe, as POSIX requires;
+#	not needed by the main-program tz code, which is single-threaded.
+#	Append other compiler flags as needed, e.g., -pthread on GNU/Linux.
+#  -Dtime_tz=\"T\" to use T as the time_t type, rather than the system time_t
+#	This is intended for internal use only; it mangles external names.
+#  -DTZ_DOMAIN=\"foo\" to use "foo" for gettext domain name; default is "tz"
+#  -DTZ_DOMAINDIR=\"/path\" to use "/path" for gettext directory;
+#	the default is system-supplied, typically "/usr/lib/locale"
+#  -DTZDEFRULESTRING=\",date/time,date/time\" to default to the specified
+#	DST transitions for proleptic format TZ strings lacking them,
+#	in the usual case where POSIXRULES is '-'.  If not specified,
+#	TZDEFRULESTRING defaults to US rules for future DST transitions.
+#	This mishandles some past timestamps, as US DST rules have changed.
+#	It also mishandles settings like TZ='EET-2EEST' for eastern Europe,
+#	as Europe and US DST rules differ.
+#  -DTZNAME_MAXIMUM=N to limit time zone abbreviations to N bytes (default 255)
+#  -DUNINIT_TRAP if reading uninitialized storage can cause problems
+#	other than simply getting garbage data
+#  -DUSE_LTZ=0 to build zdump with the system time zone library
+#	Also set TZDOBJS=zdump.o and CHECK_TIME_T_ALTERNATIVES= below.
+#  -DZIC_BLOAT_DEFAULT=\"fat\" to default zic's -b option to "fat", and
+#	similarly for "slim".  Fat TZif files work around incompatibilities
+#	and bugs in some TZif readers, notably older ones that
+#	ignore or otherwise mishandle 64-bit data in TZif files;
+#	however, fat TZif files may trigger bugs in newer TZif readers.
+#	Slim TZif files are more efficient, and are the default.
+#  -DZIC_MAX_ABBR_LEN_WO_WARN=3
+#	(or some other number) to set the maximum time zone abbreviation length
+#	that zic will accept without a warning (the default is 6)
+#  -g to generate symbolic debugging info
+#  -Idir to include from directory 'dir'
+#  -O0 to disable optimization; other -O options to enable more optimization
+#  -Uname to remove any definition of the macro 'name'
+#  $(GCC_DEBUG_FLAGS) if you are using recent GCC and want lots of checking
+#
+# * Options marked "*" can be omitted if your compiler is C23 compatible.
+# * Options marked "+" are obsolescent and are planned to be removed
+#   once the code assumes C99 or later (say in the year 2029)
+#   and POSIX.1-2024 or later (say in the year 2034).
+#
+# Select instrumentation via "make GCC_INSTRUMENT='whatever'".
+GCC_INSTRUMENT = \
+  -fsanitize=undefined -fsanitize-address-use-after-scope \
+  -fsanitize-undefined-trap-on-error -fstack-protector
+# Omit -fanalyzer from GCC_DEBUG_FLAGS, as it makes GCC too slow.
+GCC_DEBUG_FLAGS = -DGCC_LINT -g3 -O3 \
+  $(GCC_INSTRUMENT) \
+  -Wall -Wextra \
+  -Walloc-size-larger-than=100000 -Warray-bounds=2 \
+  -Wbad-function-cast -Wbidi-chars=any,ucn -Wcast-align=strict -Wdate-time \
+  -Wdeclaration-after-statement -Wdouble-promotion \
+  -Wduplicated-branches -Wduplicated-cond -Wflex-array-member-not-at-end \
+  -Wformat=2 -Wformat-overflow=2 -Wformat-signedness -Wformat-truncation \
+  -Wimplicit-fallthrough=5 -Winit-self -Wlogical-op \
+  -Wmissing-declarations -Wmissing-prototypes \
+  -Wmissing-variable-declarations -Wnested-externs \
+  -Wnull-dereference \
+  -Wold-style-definition -Woverlength-strings -Wpointer-arith \
+  -Wshadow -Wshift-overflow=2 -Wstrict-overflow \
+  -Wstrict-prototypes -Wstringop-overflow=4 \
+  -Wstringop-truncation -Wsuggest-attribute=cold \
+  -Wsuggest-attribute=const -Wsuggest-attribute=format \
+  -Wsuggest-attribute=malloc \
+  -Wsuggest-attribute=noreturn -Wsuggest-attribute=pure \
+  -Wtrampolines -Wundef -Wunused-macros -Wuse-after-free=3 \
+  -Wvariadic-macros -Wvla -Wwrite-strings \
+  -Wno-format-nonliteral -Wno-sign-compare
+#
+# If your system has a "GMT offset" field in its "struct tm"s
+# (or if you decide to add such a field in your system's "time.h" file),
+# add the name to a define such as
+#	-DTM_GMTOFF=tm_gmtoff
+# to the end of the "CFLAGS=" line.  If not defined, the code attempts to
+# guess TM_GMTOFF from other macros; define NO_TM_GMTOFF to suppress this.
+# Similarly, if your system has a "zone abbreviation" field, define
+#	-DTM_ZONE=tm_zone
+# and define NO_TM_ZONE to suppress any guessing.
+# Although POSIX.1-2024 requires these fields and they are widely available
+# on GNU/Linux and BSD systems, some older systems lack them.
+#
+# The next batch of options control support for external variables
+# exported by tzcode.  In practice these variables are less useful
+# than TM_GMTOFF and TM_ZONE.  However, most of them are standardized.
+# #
+# # To omit or support the external variable "tzname", add one of:
+# #	-DHAVE_TZNAME=0 # do not support "tzname"
+# #	-DHAVE_TZNAME=1 # support "tzname", which is defined by system library
+# #	-DHAVE_TZNAME=2 # support and define "tzname"
+# # to the "CFLAGS=" line.  Although "tzname" is required by POSIX.1-1988
+# # and later, its contents are unspecified if you use a geographical TZ
+# # and the variable is planned to be removed in a future POSIX edition.
+# # If not defined, the code attempts to guess HAVE_TZNAME from other macros.
+# # Warning: unless time_tz is also defined, HAVE_TZNAME=1 can cause
+# # crashes when combined with some platforms' standard libraries,
+# # presumably due to memory allocation issues.
+# #
+# # To omit or support the external variables "timezone" and "daylight", add
+# #	-DUSG_COMPAT=0 # do not support
+# #	-DUSG_COMPAT=1 # support, and variables are defined by system library
+# #	-DUSG_COMPAT=2 # support and define variables
+# # to the "CFLAGS=" line; "timezone" and "daylight" are inspired by Unix
+# # Systems Group code and are required by POSIX.1-2008 and later (with XSI),
+# # although their contents are unspecified if you use a geographical TZ
+# # and the variables are planned to be removed in a future edition of POSIX.
+# # If not defined, the code attempts to guess USG_COMPAT from other macros.
+# #
+# # To support the external variable "altzone", add
+# #	-DALTZONE=0 # do not support
+# #	-DALTZONE=1 # support "altzone", which is defined by system library
+# #	-DALTZONE=2 # support and define "altzone"
+# # to the end of the "CFLAGS=" line; although "altzone" appeared in
+# # System V Release 3.1 it has not been standardized.
+# # If not defined, the code attempts to guess ALTZONE from other macros.
+#
+# If you want functions that were inspired by early versions of X3J11's work,
+# add
+#	-DSTD_INSPIRED
+# to the end of the "CFLAGS=" line.  This arranges for the following
+# functions to be added to the time conversion library.
+# "offtime" is like "gmtime" except that it accepts a second (long) argument
+# that gives an offset to add to the time_t when converting it.
+# I.e., "offtime" is like calling "localtime_rz" with a fixed-offset zone.
+# "timelocal" is nearly equivalent to "mktime".
+# "timeoff" is like "timegm" except that it accepts a second (long) argument
+# that gives an offset to use when converting to a time_t.
+# I.e., "timeoff" is like calling "mktime_z" with a fixed-offset zone.
+# "posix2time" and "time2posix" are described in an included manual page.
+# X3J11's work does not describe any of these functions.
+# These functions may well disappear in future releases of the time
+# conversion package.
+#
+# If you don't want functions that were inspired by NetBSD, add
+#	-DNETBSD_INSPIRED=0
+# to the end of the "CFLAGS=" line.  Otherwise, the functions
+# "localtime_rz", "mktime_z", "tzalloc", and "tzfree" are added to the
+# time library, and if STD_INSPIRED is also defined to nonzero the functions
+# "posix2time_z" and "time2posix_z" are added as well.
+# The functions ending in "_z" (or "_rz") are like their unsuffixed
+# (or suffixed-by-"_r") counterparts, except with an extra first
+# argument of opaque type timezone_t that specifies the timezone.
+# "tzalloc" allocates a timezone_t value, and "tzfree" frees it.
+#
+# If you want to allocate state structures in localtime, add
+#	-DALL_STATE
+# to the end of the "CFLAGS=" line.  Storage is obtained by calling malloc.
+#
+# NIST-PCTS:151-2, Version 1.4, (1993-12-03) is a test suite put
+# out by the National Institute of Standards and Technology
+# which claims to test C and POSIX conformance.  If you want to pass PCTS, add
+#	-DPCTS
+# to the end of the "CFLAGS=" line.
+#
+# If you want strict compliance with XPG4 as of 1994-04-09, add
+#	-DXPG4_1994_04_09
+# to the end of the "CFLAGS=" line.  This causes "strftime" to always return
+# 53 as a week number (rather than 52 or 53) for January days before
+# January's first Monday when a "%V" format is used and January 1
+# falls on a Friday, Saturday, or Sunday.
+#
+# POSIX says CFLAGS defaults to "-O 1".
+# Uncomment the following line and edit its contents as needed.
+
+#CFLAGS= -O 1
+
+
+# The name of a POSIX-like library archiver, its flags, C compiler,
+# linker flags, and 'make' utility.  Ordinarily the defaults suffice.
+# The commented-out values are the defaults specified by POSIX.1-2024.
+#AR = ar
+#ARFLAGS = -rv
+#CC = c17
+#LDFLAGS =
+#MAKE = make
+
+# Where to fetch leap-seconds.list from.
+leaplist_URI = \
+  https://hpiers.obspm.fr/iers/bul/bulc/ntp/leap-seconds.list
+# The file is generated by the IERS Earth Orientation Centre, in Paris.
+leaplist_TZ = Europe/Paris
+
+# The zic command and its arguments.
+
+zic=		./zic
+ZIC=		$(zic) $(ZFLAGS)
+
+# To shrink the size of installed TZif files,
+# append "-r @N" to omit data before N-seconds-after-the-Epoch.
+# To grow the files and work around bugs in older applications,
+# possibly at the expense of introducing bugs in newer ones,
+# append "-b fat"; see ZIC_BLOAT_DEFAULT above.
+# See the zic man page for more about -b and -r.
+ZFLAGS=
+
+# How to use zic to install TZif files.
+
+ZIC_INSTALL=	$(ZIC) -d '$(DESTDIR)$(TZDIR)'
+
+# The name of a POSIX-compliant 'awk' on your system.
+# mawk 1.3.3 and Solaris 10 /usr/bin/awk do not work.
+# Also, it is better (though not essential) if 'awk' supports UTF-8,
+# and unfortunately mawk and busybox awk do not support UTF-8.
+# Try AWK=gawk or AWK=nawk if your awk has the abovementioned problems.
+AWK=		awk
+
+# The full path name of a POSIX-compliant shell, preferably one that supports
+# the Korn shell's 'select' statement as an extension.
+# These days, Bash is the most popular.
+# It should be OK to set this to /bin/sh, on platforms where /bin/sh
+# lacks 'select' or doesn't completely conform to POSIX, but /bin/bash
+# is typically nicer if it works.
+KSHELL=		/bin/bash
+
+# Name of curl <https://curl.haxx.se/>, used for HTML validation
+# and to fetch leap-seconds.list from upstream.
+# Set CURL=: to disable use of the Internet.
+CURL=		curl
+
+# Name of GNU Privacy Guard <https://gnupg.org/>, used to sign distributions.
+GPG=		gpg
+
+# This expensive test requires USE_LTZ.
+# To suppress it, define this macro to be empty.
+CHECK_TIME_T_ALTERNATIVES = check_time_t_alternatives
+
+# SAFE_CHAR is a regular expression that matches a safe character.
+# Some parts of this distribution are limited to safe characters;
+# others can use any UTF-8 character.
+# For now, the safe characters are a safe subset of ASCII.
+# The caller must set the shell variable 'sharp' to the character '#',
+# since Makefile macros cannot contain '#'.
+# TAB_CHAR is a single tab character, in single quotes.
+TAB_CHAR=	'	'
+SAFE_CHARSET1=	$(TAB_CHAR)' !\"'$$sharp'$$%&'\''()*+,./0123456789:;<=>?@'
+SAFE_CHARSET2=	'ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\^_`'
+SAFE_CHARSET3=	'abcdefghijklmnopqrstuvwxyz{|}~'
+SAFE_CHARSET=	$(SAFE_CHARSET1)$(SAFE_CHARSET2)$(SAFE_CHARSET3)
+SAFE_CHAR=	'[]'$(SAFE_CHARSET)'-]'
+
+# These non-alphabetic, non-ASCII printable characters are Latin-1,
+# and so are likely displayable even in editors like XEmacs 21
+# that have limited display capabilities.
+UNUSUAL_OK_LATIN_1 = ¡¢£¤¥¦§¨©«¬®¯°±²³´¶·¸¹»¼½¾¿×÷
+# Non-ASCII non-letters that OK_CHAR allows, as these characters are
+# useful in commentary.
+UNUSUAL_OK_CHARSET= $(UNUSUAL_OK_LATIN_1)
+
+# Put this in a bracket expression to match spaces.
+s = [:space:]
+
+# OK_CHAR matches any character allowed in the distributed files.
+# This is the same as SAFE_CHAR, except that UNUSUAL_OK_CHARSET and
+# multibyte letters are also allowed so that commentary can contain a
+# few safe symbols and people's names and can quote non-English sources.
+# Other non-letters are limited to ASCII renderings for the
+# convenience of maintainers using XEmacs 21.5.34, which by default
+# mishandles Unicode characters U+0100 and greater.
+OK_CHAR=	'[][:alpha:]$(UNUSUAL_OK_CHARSET)'$(SAFE_CHARSET)'-]'
+
+# SAFE_LINE matches a line of safe characters.
+# SAFE_SHARP_LINE is similar, except any OK character can follow '#';
+# this is so that comments can contain non-ASCII characters.
+# OK_LINE matches a line of OK characters.
+SAFE_LINE=	'^'$(SAFE_CHAR)'*$$'
+SAFE_SHARP_LINE='^'$(SAFE_CHAR)'*('$$sharp$(OK_CHAR)'*)?$$'
+OK_LINE=	'^'$(OK_CHAR)'*$$'
+
+# Flags to give 'tar' when making a distribution.
+# Try to use flags appropriate for GNU tar.
+GNUTARFLAGS= --format=pax --pax-option=delete=atime,delete=ctime \
+  --numeric-owner --owner=0 --group=0 \
+  --mode=go+u,go-w --sort=name
+SETUP_TAR= \
+  export LC_ALL=C && \
+  if tar $(GNUTARFLAGS) --version >/dev/null 2>&1; then \
+    TAR='tar $(GNUTARFLAGS)'; \
+  else \
+    TAR=tar; \
+  fi
+
+# Flags to give 'gzip' when making a distribution.
+GZIPFLAGS=	-9n
+
+# When comparing .tzs files, use GNU diff's -F'^TZ=' option if supported.
+# This makes it easier to see which Zone has been affected.
+SETUP_DIFF_TZS = \
+  if diff -u -F'^TZ=' - - <>/dev/null >&0 2>&1; then \
+    DIFF_TZS='diff -u -F^TZ='; \
+  else \
+    DIFF_TZS='diff -u'; \
+  fi
+
+# ':' on typical hosts; 'ranlib' on the ancient hosts that still need ranlib.
+RANLIB=		:
+
+# POSIX prohibits defining or using SHELL.  However, csh users on systems
+# that use the user shell for Makefile commands may need to define SHELL.
+#SHELL=		/bin/sh
+
+# End of macros that one plausibly might want to tailor.
+###############################################################################
+
+
+TZCOBJS=	zic.o
+TZDOBJS=	zdump.o localtime.o strftime.o
+DATEOBJS=	date.o localtime.o strftime.o
+LIBSRCS=	localtime.c asctime.c difftime.c strftime.c
+LIBOBJS=	localtime.o asctime.o difftime.o strftime.o
+HEADERS=	tzfile.h private.h
+NONLIBSRCS=	zic.c zdump.c
+NEWUCBSRCS=	date.c
+SOURCES=	$(HEADERS) $(LIBSRCS) $(NONLIBSRCS) $(NEWUCBSRCS) \
+			tzselect.ksh workman.sh
+MANS=		newctime.3 newstrftime.3 newtzset.3 time2posix.3 \
+			tzfile.5 tzselect.8 zic.8 zdump.8
+MANTXTS=	newctime.3.txt newstrftime.3.txt newtzset.3.txt \
+			time2posix.3.txt \
+			tzfile.5.txt tzselect.8.txt zic.8.txt zdump.8.txt \
+			date.1.txt
+COMMON=		calendars CONTRIBUTING LICENSE Makefile \
+			NEWS README SECURITY theory.html version
+WEB_PAGES=	tz-art.html tz-how-to.html tz-link.html
+CHECK_WEB_PAGES=theory.ck tz-art.ck tz-how-to.ck tz-link.ck
+DOCS=		$(MANS) date.1 $(MANTXTS) $(WEB_PAGES)
+PRIMARY_YDATA=	africa antarctica asia australasia \
+		europe northamerica southamerica
+YDATA=		$(PRIMARY_YDATA) etcetera
+NDATA=		factory
+TDATA_TO_CHECK=	$(YDATA) $(NDATA) backward
+TDATA=		$(YDATA) $(NDATA) $(BACKWARD)
+ZONETABLES=	zone.tab zone1970.tab zonenow.tab
+TABDATA=	iso3166.tab $(TZDATA_TEXT) $(ZONETABLES)
+LEAP_DEPS=	leapseconds.awk leap-seconds.list
+TZDATA_ZI_DEPS=	ziguard.awk zishrink.awk version $(TDATA) \
+		  $(PACKRATDATA) $(PACKRATLIST)
+DSTDATA_ZI_DEPS= ziguard.awk $(TDATA) $(PACKRATDATA) $(PACKRATLIST)
+DATA=		$(TDATA_TO_CHECK) backzone iso3166.tab leap-seconds.list \
+			leapseconds $(ZONETABLES)
+AWK_SCRIPTS=	checklinks.awk checknow.awk checktab.awk leapseconds.awk \
+			ziguard.awk zishrink.awk
+MISC=		$(AWK_SCRIPTS)
+TZS_YEAR=	2050
+TZS_CUTOFF_FLAG=	-c $(TZS_YEAR)
+TZS=		to$(TZS_YEAR).tzs
+TZS_NEW=	to$(TZS_YEAR)new.tzs
+TZS_DEPS=	$(YDATA) asctime.c localtime.c \
+			private.h tzfile.h zdump.c zic.c
+TZDATA_DIST = $(COMMON) $(DATA) $(MISC)
+# EIGHT_YARDS is just a yard short of the whole ENCHILADA.
+EIGHT_YARDS = $(TZDATA_DIST) $(DOCS) $(SOURCES) tzdata.zi
+ENCHILADA = $(EIGHT_YARDS) $(TZS)
+
+# Consult these files when deciding whether to rebuild the 'version' file.
+# This list is not the same as the output of 'git ls-files', since
+# .gitignore is not distributed.
+VERSION_DEPS= \
+		calendars CONTRIBUTING LICENSE Makefile NEWS README SECURITY \
+		africa antarctica asctime.c asia australasia \
+		backward backzone \
+		checklinks.awk checknow.awk checktab.awk \
+		date.1 date.c difftime.c \
+		etcetera europe factory iso3166.tab \
+		leap-seconds.list leapseconds.awk localtime.c \
+		newctime.3 newstrftime.3 newtzset.3 northamerica \
+		private.h southamerica strftime.c theory.html \
+		time2posix.3 tz-art.html tz-how-to.html tz-link.html \
+		tzfile.5 tzfile.h tzselect.8 tzselect.ksh \
+		workman.sh zdump.8 zdump.c zic.8 zic.c \
+		ziguard.awk zishrink.awk \
+		zone.tab zone1970.tab zonenow.tab
+
+all:		tzselect zic zdump libtz.a $(TABDATA) \
+		  vanguard.zi main.zi rearguard.zi
+
+ALL:		all date $(ENCHILADA)
+
+install:	all $(DATA) $(REDO) $(MANS)
+		mkdir -p '$(DESTDIR)$(BINDIR)' \
+			'$(DESTDIR)$(ZDUMPDIR)' '$(DESTDIR)$(ZICDIR)' \
+			'$(DESTDIR)$(LIBDIR)' \
+			'$(DESTDIR)$(MANDIR)/man3' '$(DESTDIR)$(MANDIR)/man5' \
+			'$(DESTDIR)$(MANDIR)/man8'
+		$(ZIC_INSTALL) -l $(LOCALTIME) \
+			-p $(POSIXRULES) \
+			-t '$(DESTDIR)$(TZDEFAULT)'
+		cp -f $(TABDATA) '$(DESTDIR)$(TZDIR)/.'
+		cp tzselect '$(DESTDIR)$(BINDIR)/.'
+		cp zdump '$(DESTDIR)$(ZDUMPDIR)/.'
+		cp zic '$(DESTDIR)$(ZICDIR)/.'
+		cp libtz.a '$(DESTDIR)$(LIBDIR)/.'
+		$(RANLIB) '$(DESTDIR)$(LIBDIR)/libtz.a'
+		cp -f newctime.3 newtzset.3 '$(DESTDIR)$(MANDIR)/man3/.'
+		cp -f tzfile.5 '$(DESTDIR)$(MANDIR)/man5/.'
+		cp -f tzselect.8 zdump.8 zic.8 '$(DESTDIR)$(MANDIR)/man8/.'
+
+INSTALL:	ALL install date.1
+		mkdir -p '$(DESTDIR)$(BINDIR)' '$(DESTDIR)$(MANDIR)/man1'
+		cp date '$(DESTDIR)$(BINDIR)/.'
+		cp -f date.1 '$(DESTDIR)$(MANDIR)/man1/.'
+
+# Calculate version number from git, if available.
+# Otherwise, use $(VERSION) unless it is "unknown" and there is already
+# a 'version' file, in which case reuse the existing 'version' contents
+# and append "-dirty" if the contents do not already end in "-dirty".
+version:	$(VERSION_DEPS)
+		{ (type git) >/dev/null 2>&1 && \
+		  V=$$(git describe --match '[0-9][0-9][0-9][0-9][a-z]*' \
+				--abbrev=7 --dirty) || \
+		  if test '$(VERSION)' = unknown && read -r V <$@; then \
+		    V=$${V%-dirty}-dirty; \
+		  else \
+		    V='$(VERSION)'; \
+		  fi; } && \
+		printf '%s\n' "$$V" >$@.out
+		mv $@.out $@
+
+# These files can be tailored by setting BACKWARD, PACKRATDATA, PACKRATLIST.
+vanguard.zi main.zi rearguard.zi: $(DSTDATA_ZI_DEPS)
+		$(AWK) \
+		  -v DATAFORM=$(@:.zi=) \
+		  -v PACKRATDATA='$(PACKRATDATA)' \
+		  -v PACKRATLIST='$(PACKRATLIST)' \
+		  -f ziguard.awk \
+		  $(TDATA) $(PACKRATDATA) >$@.out
+		mv $@.out $@
+# This file has a version comment that attempts to capture any tailoring
+# via BACKWARD, DATAFORM, PACKRATDATA, PACKRATLIST, and REDO.
+tzdata.zi:	$(DATAFORM).zi version zishrink.awk
+		read -r version <version && \
+		  LC_ALL=C $(AWK) \
+		    -v dataform='$(DATAFORM)' \
+		    -v deps='$(DSTDATA_ZI_DEPS) zishrink.awk' \
+		    -v redo='$(REDO)' \
+		    -v version="$$version" \
+		    -f zishrink.awk \
+		    $(DATAFORM).zi >$@.out
+		mv $@.out $@
+
+tzdir.h:
+		printf '%s\n' >$@.out \
+		  '#ifndef TZDEFAULT' \
+		  '# define TZDEFAULT "$(TZDEFAULT)" /* default zone */' \
+		  '#endif' \
+		  '#ifndef TZDIR' \
+		  '# define TZDIR "$(TZDIR)" /* TZif directory */' \
+		  '#endif'
+		mv $@.out $@
+
+version.h:	version
+		read -r VERSION <version && printf '%s\n' \
+		  'static char const PKGVERSION[]="($(PACKAGE)) ";' \
+		  "static char const TZVERSION[]=\"$$VERSION\";" \
+		  'static char const REPORT_BUGS_TO[]="$(BUGEMAIL)";' \
+		  >$@.out
+		mv $@.out $@
+
+zdump:		$(TZDOBJS)
+		$(CC) -o $@ $(CFLAGS) $(LDFLAGS) $(TZDOBJS) $(LDLIBS)
+
+zic:		$(TZCOBJS)
+		$(CC) -o $@ $(CFLAGS) $(LDFLAGS) $(TZCOBJS) $(LDLIBS)
+
+leapseconds:	$(LEAP_DEPS)
+		$(AWK) -v EXPIRES_LINE=$(EXPIRES_LINE) \
+		  -f leapseconds.awk leap-seconds.list >$@.out
+		mv $@.out $@
+
+# Awk script to extract a Git-style author from leap-seconds.list comments.
+EXTRACT_AUTHOR = \
+  author_line { sub(/^.[[:space:]]*/, ""); \
+      sub(/:[[:space:]]*/, " <"); \
+      printf "%s>\n", $$0; \
+      success = 1; \
+      exit \
+  } \
+  /Questions or comments to:/ { author_line = 1 } \
+  END { exit !success }
+
+# Fetch leap-seconds.list from upstream.
+fetch-leap-seconds.list:
+		$(CURL) -OR $(leaplist_URI)
+
+# Fetch leap-seconds.list from upstream and commit it to the local repository.
+commit-leap-seconds.list: fetch-leap-seconds.list
+		author=$$($(AWK) '$(EXTRACT_AUTHOR)' leap-seconds.list) && \
+		date=$$(TZ=$(leaplist_TZ) stat -c%y leap-seconds.list) && \
+		git commit --author="$$author" --date="$$date" -m'make $@' \
+		  leap-seconds.list
+
+# Arguments to pass to submakes.
+# They can be overridden by later submake arguments.
+INSTALLARGS = \
+ BACKWARD='$(BACKWARD)' \
+ DESTDIR='$(DESTDIR)' \
+ PACKRATDATA='$(PACKRATDATA)' \
+ PACKRATLIST='$(PACKRATLIST)' \
+ TZDEFAULT='$(TZDEFAULT)' \
+ TZDIR='$(TZDIR)' \
+ ZIC='$(ZIC)'
+
+INSTALL_DATA_DEPS = zic leapseconds tzdata.zi
+
+posix_only: $(INSTALL_DATA_DEPS)
+		$(ZIC_INSTALL) tzdata.zi
+
+right_only: $(INSTALL_DATA_DEPS)
+		$(ZIC_INSTALL) -L leapseconds tzdata.zi
+
+# In earlier versions of this makefile, the other two directories were
+# subdirectories of $(TZDIR).  However, this led to configuration errors.
+# For example, with posix_right under the earlier scheme,
+# TZ='right/Australia/Adelaide' got you localtime with leap seconds,
+# but gmtime without leap seconds, which led to problems with applications
+# like sendmail that subtract gmtime from localtime.
+# Therefore, the other two directories are now siblings of $(TZDIR).
+# You must replace all of $(TZDIR) to switch from not using leap seconds
+# to using them, or vice versa.
+right_posix:	right_only
+		rm -fr '$(DESTDIR)$(TZDIR)-leaps'
+		ln -s '$(TZDIR_BASENAME)' '$(DESTDIR)$(TZDIR)-leaps' || \
+		  $(MAKE) $(INSTALLARGS) TZDIR='$(TZDIR)-leaps' right_only
+		$(MAKE) $(INSTALLARGS) TZDIR='$(TZDIR)-posix' posix_only
+
+posix_right:	posix_only
+		rm -fr '$(DESTDIR)$(TZDIR)-posix'
+		ln -s '$(TZDIR_BASENAME)' '$(DESTDIR)$(TZDIR)-posix' || \
+		  $(MAKE) $(INSTALLARGS) TZDIR='$(TZDIR)-posix' posix_only
+		$(MAKE) $(INSTALLARGS) TZDIR='$(TZDIR)-leaps' right_only
+
+zones:		$(REDO)
+
+# dummy.zd is not a real file; it is mentioned here only so that the
+# top-level 'make' does not have a syntax error.
+ZDS = dummy.zd
+# Rule used only by submakes invoked by the $(TZS_NEW) rule.
+# It is separate so that GNU 'make -j' can run instances in parallel.
+$(ZDS): zdump
+		./zdump -i $(TZS_CUTOFF_FLAG) "$$PWD/$(@:.zd=)" >$@
+
+TZS_NEW_DEPS = tzdata.zi zdump zic
+$(TZS_NEW): $(TZS_NEW_DEPS)
+		rm -fr tzs$(TZS_YEAR).dir
+		mkdir tzs$(TZS_YEAR).dir
+		$(zic) -d tzs$(TZS_YEAR).dir tzdata.zi
+		$(AWK) '/^L/{print "Link\t" $$2 "\t" $$3}' \
+		   tzdata.zi | LC_ALL=C sort >$@.out
+		x=$$($(AWK) '/^Z/{print "tzs$(TZS_YEAR).dir/" $$2 ".zd"}' \
+				tzdata.zi \
+		     | LC_ALL=C sort -t . -k 2,2) && \
+		set x $$x && \
+		shift && \
+		ZDS=$$* && \
+		$(MAKE) TZS_CUTOFF_FLAG="$(TZS_CUTOFF_FLAG)" \
+		  ZDS="$$ZDS" $$ZDS && \
+		sed 's,^TZ=".*\.dir/,TZ=",' $$ZDS >>$@.out
+		rm -fr tzs$(TZS_YEAR).dir
+		mv $@.out $@
+
+# If $(TZS) exists but 'make tzs.ck' fails, a maintainer should inspect the
+# failed output and fix the inconsistency, perhaps by running 'make force_tzs'.
+$(TZS):
+		touch $@
+
+force_tzs:	$(TZS_NEW)
+		cp $(TZS_NEW) $(TZS)
+
+libtz.a:	$(LIBOBJS)
+		rm -f $@
+		$(AR) $(ARFLAGS) $@ $(LIBOBJS)
+		$(RANLIB) $@
+
+date:		$(DATEOBJS)
+		$(CC) -o $@ $(CFLAGS) $(LDFLAGS) $(DATEOBJS) $(LDLIBS)
+
+tzselect:	tzselect.ksh version
+		read -r VERSION <version && sed \
+		  -e "s'#!/bin/bash'#!"'$(KSHELL)'\' \
+		  -e s\''\(AWK\)=[^}]*'\''\1=\'\''$(AWK)\'\'\' \
+		  -e s\''\(PKGVERSION\)=.*'\''\1=\'\''($(PACKAGE)) \'\'\' \
+		  -e s\''\(REPORT_BUGS_TO\)=.*'\''\1=\'\''$(BUGEMAIL)\'\'\' \
+		  -e s\''\(TZDIR\)=[^}]*'\''\1=\'\''$(TZDIR)\'\'\' \
+		  -e s\''\(TZVERSION\)=.*'\''\1=\'"'$$VERSION\\''" \
+		  <$@.ksh >$@.out
+		chmod +x $@.out
+		mv $@.out $@
+
+check: check_mild back.ck
+check_mild: check_web check_zishrink \
+  character-set.ck white-space.ck links.ck mainguard.ck \
+  name-lengths.ck now.ck slashed-abbrs.ck sorted.ck \
+  tables.ck ziguard.ck tzs.ck
+
+# True if UTF8_LOCALE does not work;
+# otherwise, false but with LC_ALL set to $(UTF8_LOCALE).
+UTF8_LOCALE_MISSING = \
+  { test ! '$(UTF8_LOCALE)' \
+    || ! printf 'A\304\200B\n' \
+         | LC_ALL='$(UTF8_LOCALE)' grep -q '^A.B$$' >/dev/null 2>&1 \
+    || { export LC_ALL='$(UTF8_LOCALE)'; false; }; }
+
+character-set.ck: $(ENCHILADA)
+	$(UTF8_LOCALE_MISSING) || { \
+		sharp='#' && \
+		! grep -Env $(SAFE_LINE) $(MANS) date.1 $(MANTXTS) \
+			$(MISC) $(SOURCES) $(WEB_PAGES) \
+			CONTRIBUTING LICENSE README SECURITY \
+			version tzdata.zi && \
+		! grep -Env $(SAFE_LINE)'|^UNUSUAL_OK_'$(OK_CHAR)'*$$' \
+			Makefile && \
+		! grep -Env $(SAFE_SHARP_LINE) $(TDATA_TO_CHECK) backzone \
+			leapseconds zone.tab && \
+		! grep -Env $(OK_LINE) $(ENCHILADA); \
+	}
+	touch $@
+
+white-space.ck: $(ENCHILADA)
+	$(UTF8_LOCALE_MISSING) || { \
+		enchilada='$(ENCHILADA)' && \
+		patfmt=' \t|[\f\r\v]' && pat=$$(printf "$$patfmt\\n") && \
+		! grep -En "$$pat|[$s]\$$" \
+		    $${enchilada%leap-seconds.list*} \
+		    $${enchilada#*leap-seconds.list}; \
+	}
+	touch $@
+
+PRECEDES_FILE_NAME = ^(Zone|Link[$s]+[^$s]+)[$s]+
+FILE_NAME_COMPONENT_TOO_LONG = $(PRECEDES_FILE_NAME)[^$s]*[^/$s]{15}
+
+name-lengths.ck: $(TDATA_TO_CHECK) backzone
+		:;! grep -En '$(FILE_NAME_COMPONENT_TOO_LONG)' \
+			$(TDATA_TO_CHECK) backzone
+		touch $@
+
+mainguard.ck: main.zi
+		test '$(PACKRATLIST)' || \
+		  cat $(TDATA) $(PACKRATDATA) | diff -u - main.zi
+		touch $@
+
+PRECEDES_STDOFF = ^(Zone[$s]+[^$s]+)?[$s]+
+STDOFF = [-+]?[0-9:.]+
+RULELESS_SAVE = (-|$(STDOFF)[sd]?)
+RULELESS_SLASHED_ABBRS = \
+  $(PRECEDES_STDOFF)$(STDOFF)[$s]+$(RULELESS_SAVE)[$s]+[^$s]*/
+
+slashed-abbrs.ck: $(TDATA_TO_CHECK)
+		:;! grep -En '$(RULELESS_SLASHED_ABBRS)' $(TDATA_TO_CHECK)
+		touch $@
+
+CHECK_CC_LIST = { n = split($$1,a,/,/); for (i=2; i<=n; i++) print a[1], a[i]; }
+
+sorted.ck: backward backzone
+		$(AWK) '/^Link/ {printf "%.5d %s\n", g, $$3} !/./ {g++}' \
+		  backward | LC_ALL=C sort -cu
+		$(AWK) '/^Zone.*\// {print $$2}' backzone | LC_ALL=C sort -cu
+		touch $@
+
+back.ck: checklinks.awk $(TDATA_TO_CHECK)
+		$(AWK) \
+		  -v DATAFORM=$(DATAFORM) \
+		  -v backcheck=backward \
+		  -f checklinks.awk $(TDATA_TO_CHECK)
+		touch $@
+
+links.ck: checklinks.awk tzdata.zi
+		$(AWK) \
+		  -v DATAFORM=$(DATAFORM) \
+		  -f checklinks.awk tzdata.zi
+		touch $@
+
+# Check timestamps from now through 28 years from now, to make sure
+# that zonenow.tab contains all sequences of planned timestamps,
+# without any duplicate sequences.  In theory this might require
+# 2800+ years but that would take a long time to check.
+CHECK_NOW_TIMESTAMP = $$(./date +%s)
+CHECK_NOW_FUTURE_YEARS = 28
+CHECK_NOW_FUTURE_SECS = $(CHECK_NOW_FUTURE_YEARS) * 366 * 24 * 60 * 60
+now.ck: checknow.awk date tzdata.zi zdump zic zone1970.tab zonenow.tab
+		rm -fr $@d
+		mkdir $@d
+		./zic -d $@d tzdata.zi
+		now=$(CHECK_NOW_TIMESTAMP) && \
+		  future=$$(($(CHECK_NOW_FUTURE_SECS) + $$now)) && \
+		  ./zdump -i -t $$now,$$future \
+		     $$(find "$$PWD/$@d"/????*/ -type f) \
+		     >$@d/zdump-now.tab && \
+		  ./zdump -i -t 0,$$future \
+		     $$(find "$$PWD/$@d" -name Etc -prune \
+			  -o -type f ! -name '*.tab' -print) \
+		     >$@d/zdump-1970.tab
+		$(AWK) \
+		  -v zdump_table=$@d/zdump-now.tab \
+		  -f checknow.awk zonenow.tab
+		$(AWK) \
+		  'BEGIN {print "-\t-\tUTC"} /^Zone/ {print "-\t-\t" $$2}' \
+		  $(PRIMARY_YDATA) backward factory | \
+		 $(AWK) \
+		   -v zdump_table=$@d/zdump-1970.tab \
+		   -f checknow.awk
+		rm -fr $@d
+		touch $@
+
+tables.ck: checktab.awk $(YDATA) backward zone.tab zone1970.tab
+		for tab in $(ZONETABLES); do \
+		  test "$$tab" = zone.tab && links='$(BACKWARD)' || links=''; \
+		  $(AWK) -f checktab.awk -v zone_table=$$tab $(YDATA) $$links \
+		    || exit; \
+		done
+		touch $@
+
+tzs.ck: $(TZS) $(TZS_NEW)
+		if test -s $(TZS); then \
+		  $(SETUP_DIFF_TZS) && $$DIFF_TZS $(TZS) $(TZS_NEW); \
+		else \
+		  cp $(TZS_NEW) $(TZS); \
+		fi
+		touch $@
+
+check_web:	$(CHECK_WEB_PAGES)
+.SUFFIXES: .ck .html
+.html.ck:
+		{ ! ($(CURL) --version) >/dev/null 2>&1 || \
+		    $(CURL) -sS --url https://validator.w3.org/nu/ -F out=gnu \
+		          -F file=@$<; } >$@.out && \
+		  test ! -s $@.out || { cat $@.out; exit 1; }
+		mv $@.out $@
+
+ziguard.ck: rearguard.zi vanguard.zi ziguard.awk
+		$(AWK) -v DATAFORM=rearguard -f ziguard.awk vanguard.zi | \
+		  diff -u rearguard.zi -
+		$(AWK) -v DATAFORM=vanguard -f ziguard.awk rearguard.zi | \
+		  diff -u vanguard.zi -
+		touch $@
+
+# Check that zishrink.awk does not alter the data, and that ziguard.awk
+# preserves main-format data.
+check_zishrink: zishrink-posix.ck zishrink-right.ck
+zishrink-posix.ck zishrink-right.ck: \
+  zic leapseconds $(PACKRATDATA) $(PACKRATLIST) \
+  $(TDATA) $(DATAFORM).zi tzdata.zi
+		rm -fr $@d t-$@d shrunk-$@d
+		mkdir $@d t-$@d shrunk-$@d
+		case $@ in \
+		  *right*) leap='-L leapseconds';; \
+		  *) leap=;; \
+		esac && \
+		  $(ZIC) $$leap -d $@d $(DATAFORM).zi && \
+		  $(ZIC) $$leap -d shrunk-$@d tzdata.zi && \
+		  case $(DATAFORM),$(PACKRATLIST) in \
+		    main,) \
+		      $(ZIC) $$leap -d t-$@d $(TDATA) && \
+		      $(AWK) '/^Rule/' $(TDATA) | \
+			$(ZIC) $$leap -d t-$@d - $(PACKRATDATA) && \
+		      diff -r $@d t-$@d;; \
+		  esac
+		diff -r $@d shrunk-$@d
+		rm -fr $@d t-$@d shrunk-$@d
+		touch $@
+
+clean_misc:
+		rm -fr *.ckd *.dir
+		rm -f *.ck *.core *.o *.out core core.* \
+		  date tzdir.h tzselect version.h zdump zic libtz.a
+clean:		clean_misc
+		rm -fr tzdb-*/
+		rm -f *.zi $(TZS_NEW)
+
+maintainer-clean: clean
+		@echo 'This command is intended for maintainers to use; it'
+		@echo 'deletes files that may need special tools to rebuild.'
+		rm -f leapseconds version $(MANTXTS) $(TZS) *.asc *.tar.*
+
+names:
+		@echo $(ENCHILADA)
+
+public: check public.ck $(CHECK_TIME_T_ALTERNATIVES) \
+		tarballs signatures
+
+date.1.txt:	date.1
+newctime.3.txt:	newctime.3
+newstrftime.3.txt: newstrftime.3
+newtzset.3.txt:	newtzset.3
+time2posix.3.txt: time2posix.3
+tzfile.5.txt:	tzfile.5
+tzselect.8.txt:	tzselect.8
+zdump.8.txt:	zdump.8
+zic.8.txt:	zic.8
+
+$(MANTXTS):	workman.sh
+		LC_ALL=C sh workman.sh $(@:.txt=) >$@.out
+		mv $@.out $@
+
+# Set file timestamps deterministically if possible,
+# so that tarballs containing the timestamps are reproducible.
+#
+# '$(SET_TIMESTAMP_N) N DEST A B C ...' sets the timestamp of the
+# file DEST to the maximum of the timestamps of the files A B C ...,
+# plus N if GNU ls and touch are available.
+SET_TIMESTAMP_N = sh -c '\
+  n=$$0 dest=$$1; shift; \
+  <"$$dest" && \
+  if test $$n != 0 && \
+     lsout=$$(ls -nt --time-style="+%s" "$$@" 2>/dev/null); then \
+    set x $$lsout && \
+    timestamp=$$(($$7 + $$n)) && \
+    echo "+ touch -md @$$timestamp $$dest" && \
+    touch -md @$$timestamp "$$dest"; \
+  else \
+    newest=$$(ls -t "$$@" | sed 1q) && \
+    echo "+ touch -mr $$newest $$dest" && \
+    touch -mr "$$newest" "$$dest"; \
+  fi'
+# If DEST depends on A B C ... in this Makefile, callers should use
+# $(SET_TIMESTAMP_DEP) DEST A B C ..., for the benefit of any
+# downstream 'make' that considers equal timestamps to be out of date.
+# POSIX allows this 'make' behavior, and HP-UX 'make' does it.
+# If all that matters is that the timestamp be reproducible
+# and plausible, use $(SET_TIMESTAMP).
+SET_TIMESTAMP = $(SET_TIMESTAMP_N) 0
+SET_TIMESTAMP_DEP = $(SET_TIMESTAMP_N) 1
+
+# Set the timestamps to those of the git repository, if available,
+# and if the files have not changed since then.
+# This uses GNU 'ls --time-style=+%s', which outputs the seconds count,
+# and GNU 'touch -d@N FILE', where N is the number of seconds since 1970.
+# If git or GNU is absent, don't bother to sync with git timestamps.
+# Also, set the timestamp of each prebuilt file like 'leapseconds'
+# to be the maximum of the files it depends on.
+set-timestamps.out: $(EIGHT_YARDS)
+		rm -f $@
+		if (type git) >/dev/null 2>&1 && \
+		   files=$$(git ls-files $(EIGHT_YARDS)) && \
+		   touch -md @1 test.out; then \
+		  rm -f test.out && \
+		  for file in $$files; do \
+		    if git diff --quiet $$file; then \
+		      time=$$(TZ=UTC0 git log -1 \
+			--format='tformat:%cd' \
+			--date='format:%Y-%m-%dT%H:%M:%SZ' \
+			$$file) && \
+		      echo "+ touch -md $$time $$file" && \
+		      touch -md $$time $$file; \
+		    else \
+		      echo >&2 "$$file: warning: does not match repository"; \
+		    fi || exit; \
+		  done; \
+		fi
+		$(SET_TIMESTAMP_DEP) leapseconds $(LEAP_DEPS)
+		for file in $(MANTXTS); do \
+		  $(SET_TIMESTAMP_DEP) $$file $${file%.txt} workman.sh || \
+		    exit; \
+		done
+		$(SET_TIMESTAMP_DEP) version $(VERSION_DEPS)
+		$(SET_TIMESTAMP_DEP) tzdata.zi $(TZDATA_ZI_DEPS)
+		touch $@
+set-tzs-timestamp.out: $(TZS)
+		$(SET_TIMESTAMP_DEP) $(TZS) $(TZS_DEPS)
+		touch $@
+
+# The zics below ensure that each data file can stand on its own.
+# We also do an all-files run to catch links to links.
+
+public.ck: $(VERSION_DEPS)
+		rm -fr $@d
+		mkdir $@d
+		ln $(VERSION_DEPS) $@d
+		cd $@d \
+		  && $(MAKE) CFLAGS='$(GCC_DEBUG_FLAGS)' TZDIR='$(TZDIR)' ALL
+		for i in $(TDATA_TO_CHECK) \
+		    tzdata.zi vanguard.zi main.zi rearguard.zi; \
+		do \
+		  $@d/zic -v -d $@d/zoneinfo $@d/$$i || exit; \
+		done
+		$@d/zic -v -d $@d/zoneinfo-all $(TDATA_TO_CHECK)
+		:
+		: Also check 'backzone' syntax.
+		rm $@d/main.zi
+		cd $@d && $(MAKE) PACKRATDATA=backzone main.zi
+		$@d/zic -d $@d/zoneinfo main.zi
+		rm $@d/main.zi
+		cd $@d && \
+		  $(MAKE) PACKRATDATA=backzone PACKRATLIST=zone.tab main.zi
+		$@d/zic -d $@d/zoneinfo main.zi
+		:
+		rm -fr $@d
+		touch $@
+
+# Check that the code works under various alternative
+# implementations of time_t.
+check_time_t_alternatives: $(TIME_T_ALTERNATIVES)
+$(TIME_T_ALTERNATIVES_TAIL): $(TIME_T_ALTERNATIVES_HEAD)
+$(TIME_T_ALTERNATIVES): $(VERSION_DEPS)
+		rm -fr $@d
+		mkdir $@d
+		ln $(VERSION_DEPS) $@d
+		case $@ in \
+		  *32_t*) range=-2147483648,2147483648;; \
+		  u*) range=0,4294967296;; \
+		  *) range=-4294967296,4294967296;; \
+		esac && \
+		wd=$$PWD && \
+		zones=$$($(AWK) '/^[^#]/ { print $$3 }' <zone1970.tab) && \
+		if test $@ = $(TIME_T_ALTERNATIVES_HEAD); then \
+		  range_target=; \
+		else \
+		  range_target=to$$range.tzs; \
+		fi && \
+		(cd $@d && \
+		  $(MAKE) TOPDIR="$$wd/$@d" \
+		    CFLAGS='$(CFLAGS) -Dtime_tz='"'$(@:.ck=)'" \
+		    REDO='$(REDO)' \
+		    D="$$wd/$@d" \
+		    TZS_YEAR="$$range" TZS_CUTOFF_FLAG="-t $$range" \
+		    install $$range_target) && \
+		test $@ = $(TIME_T_ALTERNATIVES_HEAD) || { \
+		  (cd $(TIME_T_ALTERNATIVES_HEAD)d && \
+		    $(MAKE) TOPDIR="$$wd/$@d" \
+		      TZS_YEAR="$$range" TZS_CUTOFF_FLAG="-t $$range" \
+		      D="$$wd/$@d" \
+		      to$$range.tzs) && \
+		  $(SETUP_DIFF_TZS) && \
+		  $$DIFF_TZS $(TIME_T_ALTERNATIVES_HEAD)d/to$$range.tzs \
+			  $@d/to$$range.tzs && \
+		  if diff -q Makefile Makefile 2>/dev/null; then \
+		    quiet_option='-q'; \
+		  else \
+		    quiet_option=''; \
+		  fi && \
+		    diff $$quiet_option -r $(TIME_T_ALTERNATIVES_HEAD)d/etc \
+					   $@d/etc && \
+		    diff $$quiet_option -r \
+		      $(TIME_T_ALTERNATIVES_HEAD)d/usr/share \
+		      $@d/usr/share; \
+		}
+		touch $@
+
+TRADITIONAL_ASC = \
+  tzcode$(VERSION).tar.gz.asc \
+  tzdata$(VERSION).tar.gz.asc
+REARGUARD_ASC = \
+  tzdata$(VERSION)-rearguard.tar.gz.asc
+ALL_ASC = $(TRADITIONAL_ASC) $(REARGUARD_ASC) \
+  tzdb-$(VERSION).tar.lz.asc
+
+tarballs rearguard_tarballs tailored_tarballs traditional_tarballs \
+signatures rearguard_signatures traditional_signatures: \
+  version set-timestamps.out rearguard.zi vanguard.zi
+		read -r VERSION <version && \
+		$(MAKE) AWK='$(AWK)' VERSION="$$VERSION" $@_version
+
+# These *_version rules are intended for use if VERSION is set by some
+# other means.  Ordinarily these rules are used only by the above
+# non-_version rules, which set VERSION on the 'make' command line.
+tarballs_version: traditional_tarballs_version rearguard_tarballs_version \
+  tzdb-$(VERSION).tar.lz
+rearguard_tarballs_version: \
+  tzdata$(VERSION)-rearguard.tar.gz
+traditional_tarballs_version: \
+  tzcode$(VERSION).tar.gz tzdata$(VERSION).tar.gz
+tailored_tarballs_version: \
+  tzdata$(VERSION)-tailored.tar.gz
+signatures_version: $(ALL_ASC)
+rearguard_signatures_version: $(REARGUARD_ASC)
+traditional_signatures_version: $(TRADITIONAL_ASC)
+
+tzcode$(VERSION).tar.gz: set-timestamps.out
+		$(SETUP_TAR) && \
+		$$TAR -cf - \
+		    $(COMMON) $(DOCS) $(SOURCES) | \
+		  gzip $(GZIPFLAGS) >$@.out
+		mv $@.out $@
+
+tzdata$(VERSION).tar.gz: set-timestamps.out
+		$(SETUP_TAR) && \
+		$$TAR -cf - $(TZDATA_DIST) | \
+		  gzip $(GZIPFLAGS) >$@.out
+		mv $@.out $@
+
+# Create empty files with a reproducible timestamp.
+CREATE_EMPTY = TZ=UTC0 touch -mt 202010122253.00
+
+# The obsolescent *rearguard* targets and related macros are present
+# for backwards compatibility with tz releases 2018e through 2022a.
+# They should go away eventually.  To build rearguard tarballs you
+# can instead use 'make DATAFORM=rearguard tailored_tarballs'.
+tzdata$(VERSION)-rearguard.tar.gz: rearguard.zi set-timestamps.out
+		rm -fr $@.dir
+		mkdir $@.dir
+		ln $(TZDATA_DIST) $@.dir
+		cd $@.dir && rm -f $(TDATA) $(PACKRATDATA) version
+		for f in $(TDATA) $(PACKRATDATA); do \
+		  rearf=$@.dir/$$f; \
+		  $(AWK) -v DATAFORM=rearguard -f ziguard.awk $$f >$$rearf && \
+		  $(SET_TIMESTAMP_DEP) $$rearf ziguard.awk $$f || exit; \
+		done
+		sed '1s/$$/-rearguard/' <version >$@.dir/version
+		: The dummy pacificnew pacifies TZUpdater 2.3.1 and earlier.
+		$(CREATE_EMPTY) $@.dir/pacificnew
+		touch -mr version $@.dir/version
+		$(SETUP_TAR) && \
+		  (cd $@.dir && \
+		   $$TAR -cf - \
+			$(TZDATA_DIST) pacificnew | \
+		     gzip $(GZIPFLAGS)) >$@.out
+		mv $@.out $@
+
+# Create a tailored tarball suitable for TZUpdater and compatible tools.
+# For example, 'make DATAFORM=vanguard tailored_tarballs' makes a tarball
+# useful for testing whether TZUpdater supports vanguard form.
+# The generated tarball is not byte-for-byte equivalent to a hand-tailored
+# traditional tarball, as data entries are put into 'etcetera' even if they
+# came from some other source file.  However, the effect should be the same
+# for ordinary use, which reads all the source files.
+tzdata$(VERSION)-tailored.tar.gz: set-timestamps.out
+		rm -fr $@.dir
+		mkdir $@.dir
+		: The dummy pacificnew pacifies TZUpdater 2.3.1 and earlier.
+		if test $(DATAFORM) = vanguard; then \
+		  pacificnew=; \
+		else \
+		  pacificnew=pacificnew; \
+		fi && \
+		cd $@.dir && \
+		  $(CREATE_EMPTY) $(PRIMARY_YDATA) $(NDATA) backward \
+		  $$pacificnew
+		(grep '^#' tzdata.zi && echo && cat $(DATAFORM).zi) \
+		  >$@.dir/etcetera
+		touch -mr tzdata.zi $@.dir/etcetera
+		sed -n \
+		  -e '/^# *version  *\(.*\)/h' \
+		  -e '/^# *ddeps  */H' \
+		  -e '$$!d' \
+		  -e 'g' \
+		  -e 's/^# *version  *//' \
+		  -e 's/\n# *ddeps  */-/' \
+		  -e 's/ /-/g' \
+		  -e 'p' \
+		  <tzdata.zi >$@.dir/version
+		touch -mr version $@.dir/version
+		links= && \
+		  for file in $(TZDATA_DIST); do \
+		    test -f $@.dir/$$file || links="$$links $$file"; \
+		  done && \
+		  ln $$links $@.dir
+		$(SETUP_TAR) && \
+		  (cd $@.dir && \
+		   $$TAR -cf - * | gzip $(GZIPFLAGS)) >$@.out
+		mv $@.out $@
+
+tzdb-$(VERSION).tar.lz: set-timestamps.out set-tzs-timestamp.out
+		rm -fr tzdb-$(VERSION)
+		mkdir tzdb-$(VERSION)
+		ln $(ENCHILADA) tzdb-$(VERSION)
+		$(SET_TIMESTAMP) tzdb-$(VERSION) tzdb-$(VERSION)/*
+		$(SETUP_TAR) && \
+		$$TAR -cf - tzdb-$(VERSION) | lzip -9 >$@.out
+		mv $@.out $@
+
+tzcode$(VERSION).tar.gz.asc: tzcode$(VERSION).tar.gz
+tzdata$(VERSION).tar.gz.asc: tzdata$(VERSION).tar.gz
+tzdata$(VERSION)-rearguard.tar.gz.asc: tzdata$(VERSION)-rearguard.tar.gz
+tzdb-$(VERSION).tar.lz.asc: tzdb-$(VERSION).tar.lz
+$(ALL_ASC):
+		$(GPG) --armor --detach-sign $?
+
+TYPECHECK_CFLAGS = $(CFLAGS) -DTYPECHECK -D__time_t_defined -D_TIME_T
+typecheck: long-long.ck unsigned.ck
+long-long.ck unsigned.ck: $(VERSION_DEPS)
+		rm -fr $@d
+		mkdir $@d
+		ln $(VERSION_DEPS) $@d
+		cd $@d && \
+		  case $@ in \
+		    long-long.*) i="long long";; \
+		    unsigned.* ) i="unsigned" ;; \
+		  esac && \
+		  $(MAKE) \
+		    CFLAGS="$(TYPECHECK_CFLAGS) \"-Dtime_t=$$i\"" \
+		    TOPDIR="$$PWD" \
+		    install
+		$@d/zdump -i -c 1970,1971 Europe/Rome
+		touch $@
+
+zonenames:	tzdata.zi
+		@$(AWK) '/^Z/ { print $$2 } /^L/ { print $$3 }' tzdata.zi
+
+asctime.o:	private.h tzfile.h
+date.o:		private.h
+difftime.o:	private.h
+localtime.o:	private.h tzfile.h tzdir.h
+strftime.o:	private.h tzfile.h
+zdump.o:	version.h
+zic.o:		private.h tzfile.h tzdir.h version.h
+
+.PHONY: ALL INSTALL all
+.PHONY: check check_mild check_time_t_alternatives
+.PHONY: check_web check_zishrink
+.PHONY: clean clean_misc commit-leap-seconds.list dummy.zd
+.PHONY: fetch-leap-seconds.list force_tzs
+.PHONY: install maintainer-clean names
+.PHONY: posix_only posix_right public
+.PHONY: rearguard_signatures rearguard_signatures_version
+.PHONY: rearguard_tarballs rearguard_tarballs_version
+.PHONY: right_only right_posix signatures signatures_version
+.PHONY: tarballs tarballs_version
+.PHONY: traditional_signatures traditional_signatures_version
+.PHONY: traditional_tarballs traditional_tarballs_version
+.PHONY: tailored_tarballs tailored_tarballs_version
+.PHONY: typecheck
+.PHONY: zonenames zones
+.PHONY: $(ZDS)