Index: GNU/glibc/create-2.36-en_US-no-am-pm-patch/file.list
===================================================================
--- GNU/glibc/create-2.36-en_US-no-am-pm-patch/file.list (revision 10)
+++ GNU/glibc/create-2.36-en_US-no-am-pm-patch/file.list (nonexistent)
@@ -1 +0,0 @@
-glibc-2.36/localedata/locales/en_US
Index: GNU/glibc/create-2.36-en_US-no-am-pm-patch/create.patch.sh
===================================================================
--- GNU/glibc/create-2.36-en_US-no-am-pm-patch/create.patch.sh (revision 10)
+++ GNU/glibc/create-2.36-en_US-no-am-pm-patch/create.patch.sh (nonexistent)
@@ -1,15 +0,0 @@
-#!/bin/bash
-
-VERSION=2.36
-
-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: GNU/glibc/create-2.36-en_US-no-am-pm-patch/create.patch.sh
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: GNU/glibc/create-2.36-en_US-no-am-pm-patch/glibc-2.36-new/localedata/locales/en_US
===================================================================
--- GNU/glibc/create-2.36-en_US-no-am-pm-patch/glibc-2.36-new/localedata/locales/en_US (revision 10)
+++ GNU/glibc/create-2.36-en_US-no-am-pm-patch/glibc-2.36-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: GNU/glibc/create-2.36-en_US-no-am-pm-patch/glibc-2.36-new/localedata/locales
===================================================================
--- GNU/glibc/create-2.36-en_US-no-am-pm-patch/glibc-2.36-new/localedata/locales (revision 10)
+++ GNU/glibc/create-2.36-en_US-no-am-pm-patch/glibc-2.36-new/localedata/locales (nonexistent)
Property changes on: GNU/glibc/create-2.36-en_US-no-am-pm-patch/glibc-2.36-new/localedata/locales
___________________________________________________________________
Deleted: svn:ignore
## -1,80 +0,0 ##
-
-# Target build dirs
-.noarch
-.host
-
-.arm32-newlib
-.a33xx-newlib
-.a9xx-newlib
-.h5-newlib
-.s9xx-newlib
-.rk33xx-newlib
-.m1000-newlib
-.riscv64-newlib
-.at91sam7s-newlib
-
-.a1x-glibc
-.a2x-glibc
-.a311x-glibc
-.h3-glibc
-.h5-glibc
-.imx6-glibc
-.imx6ull-glibc
-.jz47xx-glibc
-.p5600-glibc
-.m1000-glibc
-.omap543x-glibc
-.am335x-glibc
-.rk328x-glibc
-.s8xx-glibc
-.s9xx-glibc
-.a9xx-glibc
-.rk33xx-glibc
-.rk339x-glibc
-.a33xx-glibc
-.power8-glibc
-.power9-glibc
-.power8le-glibc
-.power9le-glibc
-.riscv64-glibc
-.i586-glibc
-.i686-glibc
-.x86_64-glibc
-
-# Hidden files (each file)
-.makefile
-.src_requires
-.src_requires_depend
-.dist
-
-# Destinations
-dist
-
-
-# Tarballs
-*.gz
-*.bz2
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Text files
-*.txt
-
-# Default linux config files
-*.defconfig
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: GNU/glibc/create-2.36-en_US-no-am-pm-patch/glibc-2.36-new/localedata
===================================================================
--- GNU/glibc/create-2.36-en_US-no-am-pm-patch/glibc-2.36-new/localedata (revision 10)
+++ GNU/glibc/create-2.36-en_US-no-am-pm-patch/glibc-2.36-new/localedata (nonexistent)
Property changes on: GNU/glibc/create-2.36-en_US-no-am-pm-patch/glibc-2.36-new/localedata
___________________________________________________________________
Deleted: svn:ignore
## -1,80 +0,0 ##
-
-# Target build dirs
-.noarch
-.host
-
-.arm32-newlib
-.a33xx-newlib
-.a9xx-newlib
-.h5-newlib
-.s9xx-newlib
-.rk33xx-newlib
-.m1000-newlib
-.riscv64-newlib
-.at91sam7s-newlib
-
-.a1x-glibc
-.a2x-glibc
-.a311x-glibc
-.h3-glibc
-.h5-glibc
-.imx6-glibc
-.imx6ull-glibc
-.jz47xx-glibc
-.p5600-glibc
-.m1000-glibc
-.omap543x-glibc
-.am335x-glibc
-.rk328x-glibc
-.s8xx-glibc
-.s9xx-glibc
-.a9xx-glibc
-.rk33xx-glibc
-.rk339x-glibc
-.a33xx-glibc
-.power8-glibc
-.power9-glibc
-.power8le-glibc
-.power9le-glibc
-.riscv64-glibc
-.i586-glibc
-.i686-glibc
-.x86_64-glibc
-
-# Hidden files (each file)
-.makefile
-.src_requires
-.src_requires_depend
-.dist
-
-# Destinations
-dist
-
-
-# Tarballs
-*.gz
-*.bz2
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Text files
-*.txt
-
-# Default linux config files
-*.defconfig
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: GNU/glibc/create-2.36-en_US-no-am-pm-patch/glibc-2.36-new
===================================================================
--- GNU/glibc/create-2.36-en_US-no-am-pm-patch/glibc-2.36-new (revision 10)
+++ GNU/glibc/create-2.36-en_US-no-am-pm-patch/glibc-2.36-new (nonexistent)
Property changes on: GNU/glibc/create-2.36-en_US-no-am-pm-patch/glibc-2.36-new
___________________________________________________________________
Deleted: svn:ignore
## -1,80 +0,0 ##
-
-# Target build dirs
-.noarch
-.host
-
-.arm32-newlib
-.a33xx-newlib
-.a9xx-newlib
-.h5-newlib
-.s9xx-newlib
-.rk33xx-newlib
-.m1000-newlib
-.riscv64-newlib
-.at91sam7s-newlib
-
-.a1x-glibc
-.a2x-glibc
-.a311x-glibc
-.h3-glibc
-.h5-glibc
-.imx6-glibc
-.imx6ull-glibc
-.jz47xx-glibc
-.p5600-glibc
-.m1000-glibc
-.omap543x-glibc
-.am335x-glibc
-.rk328x-glibc
-.s8xx-glibc
-.s9xx-glibc
-.a9xx-glibc
-.rk33xx-glibc
-.rk339x-glibc
-.a33xx-glibc
-.power8-glibc
-.power9-glibc
-.power8le-glibc
-.power9le-glibc
-.riscv64-glibc
-.i586-glibc
-.i686-glibc
-.x86_64-glibc
-
-# Hidden files (each file)
-.makefile
-.src_requires
-.src_requires_depend
-.dist
-
-# Destinations
-dist
-
-
-# Tarballs
-*.gz
-*.bz2
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Text files
-*.txt
-
-# Default linux config files
-*.defconfig
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: GNU/glibc/create-2.36-en_US-no-am-pm-patch
===================================================================
--- GNU/glibc/create-2.36-en_US-no-am-pm-patch (revision 10)
+++ GNU/glibc/create-2.36-en_US-no-am-pm-patch (nonexistent)
Property changes on: GNU/glibc/create-2.36-en_US-no-am-pm-patch
___________________________________________________________________
Deleted: svn:ignore
## -1,80 +0,0 ##
-
-# Target build dirs
-.noarch
-.host
-
-.arm32-newlib
-.a33xx-newlib
-.a9xx-newlib
-.h5-newlib
-.s9xx-newlib
-.rk33xx-newlib
-.m1000-newlib
-.riscv64-newlib
-.at91sam7s-newlib
-
-.a1x-glibc
-.a2x-glibc
-.a311x-glibc
-.h3-glibc
-.h5-glibc
-.imx6-glibc
-.imx6ull-glibc
-.jz47xx-glibc
-.p5600-glibc
-.m1000-glibc
-.omap543x-glibc
-.am335x-glibc
-.rk328x-glibc
-.s8xx-glibc
-.s9xx-glibc
-.a9xx-glibc
-.rk33xx-glibc
-.rk339x-glibc
-.a33xx-glibc
-.power8-glibc
-.power9-glibc
-.power8le-glibc
-.power9le-glibc
-.riscv64-glibc
-.i586-glibc
-.i686-glibc
-.x86_64-glibc
-
-# Hidden files (each file)
-.makefile
-.src_requires
-.src_requires_depend
-.dist
-
-# Destinations
-dist
-
-
-# Tarballs
-*.gz
-*.bz2
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Text files
-*.txt
-
-# Default linux config files
-*.defconfig
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: GNU/glibc/create-2.36-ppc64-interpreter-patch/file.list
===================================================================
--- GNU/glibc/create-2.36-ppc64-interpreter-patch/file.list (revision 10)
+++ GNU/glibc/create-2.36-ppc64-interpreter-patch/file.list (nonexistent)
@@ -1,2 +0,0 @@
-glibc-2.36/sysdeps/unix/sysv/linux/powerpc/ldconfig.h
-glibc-2.36/sysdeps/unix/sysv/linux/powerpc/ldd-rewrite.sed
Index: GNU/glibc/create-2.36-ppc64-interpreter-patch/create.patch.sh
===================================================================
--- GNU/glibc/create-2.36-ppc64-interpreter-patch/create.patch.sh (revision 10)
+++ GNU/glibc/create-2.36-ppc64-interpreter-patch/create.patch.sh (nonexistent)
@@ -1,15 +0,0 @@
-#!/bin/bash
-
-VERSION=2.36
-
-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: GNU/glibc/create-2.36-ppc64-interpreter-patch/create.patch.sh
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: GNU/glibc/create-2.36-ppc64-interpreter-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/powerpc/ldd-rewrite.sed
===================================================================
--- GNU/glibc/create-2.36-ppc64-interpreter-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/powerpc/ldd-rewrite.sed (revision 10)
+++ GNU/glibc/create-2.36-ppc64-interpreter-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/powerpc/ldd-rewrite.sed (nonexistent)
@@ -1,15 +0,0 @@
-/LD_TRACE_LOADED_OBJECTS=1/a\
-add_env="$add_env LD_LIBRARY_VERSION=\\$verify_out"
-
-# 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: GNU/glibc/create-2.36-ppc64-interpreter-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/powerpc/ldconfig.h
===================================================================
--- GNU/glibc/create-2.36-ppc64-interpreter-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/powerpc/ldconfig.h (revision 10)
+++ GNU/glibc/create-2.36-ppc64-interpreter-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/powerpc/ldconfig.h (nonexistent)
@@ -1,27 +0,0 @@
-/* ldconfig default paths and libraries. Linux/PowerPC version.
- Copyright (C) 2002-2022 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 <sysdeps/generic/ldconfig.h>
-
-#define SYSDEP_KNOWN_INTERPRETER_NAMES \
- { "/lib/ld64.so.1", FLAG_ELF_LIBC6 }, \
- { "/lib/ld64.so.2", FLAG_ELF_LIBC6 }, \
- { "/lib32/ld.so.1", FLAG_ELF_LIBC6 },
-#define SYSDEP_KNOWN_LIBRARY_NAMES \
- { "libc.so.6", FLAG_ELF_LIBC6 }, \
- { "libm.so.6", FLAG_ELF_LIBC6 },
Index: GNU/glibc/create-2.36-ppc64-interpreter-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/powerpc
===================================================================
--- GNU/glibc/create-2.36-ppc64-interpreter-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/powerpc (revision 10)
+++ GNU/glibc/create-2.36-ppc64-interpreter-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/powerpc (nonexistent)
Property changes on: GNU/glibc/create-2.36-ppc64-interpreter-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/powerpc
___________________________________________________________________
Deleted: svn:ignore
## -1,80 +0,0 ##
-
-# Target build dirs
-.noarch
-.host
-
-.arm32-newlib
-.a33xx-newlib
-.a9xx-newlib
-.h5-newlib
-.s9xx-newlib
-.rk33xx-newlib
-.m1000-newlib
-.riscv64-newlib
-.at91sam7s-newlib
-
-.a1x-glibc
-.a2x-glibc
-.a311x-glibc
-.h3-glibc
-.h5-glibc
-.imx6-glibc
-.imx6ull-glibc
-.jz47xx-glibc
-.p5600-glibc
-.m1000-glibc
-.omap543x-glibc
-.am335x-glibc
-.rk328x-glibc
-.s8xx-glibc
-.s9xx-glibc
-.a9xx-glibc
-.rk33xx-glibc
-.rk339x-glibc
-.a33xx-glibc
-.power8-glibc
-.power9-glibc
-.power8le-glibc
-.power9le-glibc
-.riscv64-glibc
-.i586-glibc
-.i686-glibc
-.x86_64-glibc
-
-# Hidden files (each file)
-.makefile
-.src_requires
-.src_requires_depend
-.dist
-
-# Destinations
-dist
-
-
-# Tarballs
-*.gz
-*.bz2
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Text files
-*.txt
-
-# Default linux config files
-*.defconfig
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: GNU/glibc/create-2.36-ppc64-interpreter-patch/glibc-2.36-new/sysdeps/unix/sysv/linux
===================================================================
--- GNU/glibc/create-2.36-ppc64-interpreter-patch/glibc-2.36-new/sysdeps/unix/sysv/linux (revision 10)
+++ GNU/glibc/create-2.36-ppc64-interpreter-patch/glibc-2.36-new/sysdeps/unix/sysv/linux (nonexistent)
Property changes on: GNU/glibc/create-2.36-ppc64-interpreter-patch/glibc-2.36-new/sysdeps/unix/sysv/linux
___________________________________________________________________
Deleted: svn:ignore
## -1,80 +0,0 ##
-
-# Target build dirs
-.noarch
-.host
-
-.arm32-newlib
-.a33xx-newlib
-.a9xx-newlib
-.h5-newlib
-.s9xx-newlib
-.rk33xx-newlib
-.m1000-newlib
-.riscv64-newlib
-.at91sam7s-newlib
-
-.a1x-glibc
-.a2x-glibc
-.a311x-glibc
-.h3-glibc
-.h5-glibc
-.imx6-glibc
-.imx6ull-glibc
-.jz47xx-glibc
-.p5600-glibc
-.m1000-glibc
-.omap543x-glibc
-.am335x-glibc
-.rk328x-glibc
-.s8xx-glibc
-.s9xx-glibc
-.a9xx-glibc
-.rk33xx-glibc
-.rk339x-glibc
-.a33xx-glibc
-.power8-glibc
-.power9-glibc
-.power8le-glibc
-.power9le-glibc
-.riscv64-glibc
-.i586-glibc
-.i686-glibc
-.x86_64-glibc
-
-# Hidden files (each file)
-.makefile
-.src_requires
-.src_requires_depend
-.dist
-
-# Destinations
-dist
-
-
-# Tarballs
-*.gz
-*.bz2
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Text files
-*.txt
-
-# Default linux config files
-*.defconfig
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: GNU/glibc/create-2.36-ppc64-interpreter-patch/glibc-2.36-new/sysdeps/unix/sysv
===================================================================
--- GNU/glibc/create-2.36-ppc64-interpreter-patch/glibc-2.36-new/sysdeps/unix/sysv (revision 10)
+++ GNU/glibc/create-2.36-ppc64-interpreter-patch/glibc-2.36-new/sysdeps/unix/sysv (nonexistent)
Property changes on: GNU/glibc/create-2.36-ppc64-interpreter-patch/glibc-2.36-new/sysdeps/unix/sysv
___________________________________________________________________
Deleted: svn:ignore
## -1,80 +0,0 ##
-
-# Target build dirs
-.noarch
-.host
-
-.arm32-newlib
-.a33xx-newlib
-.a9xx-newlib
-.h5-newlib
-.s9xx-newlib
-.rk33xx-newlib
-.m1000-newlib
-.riscv64-newlib
-.at91sam7s-newlib
-
-.a1x-glibc
-.a2x-glibc
-.a311x-glibc
-.h3-glibc
-.h5-glibc
-.imx6-glibc
-.imx6ull-glibc
-.jz47xx-glibc
-.p5600-glibc
-.m1000-glibc
-.omap543x-glibc
-.am335x-glibc
-.rk328x-glibc
-.s8xx-glibc
-.s9xx-glibc
-.a9xx-glibc
-.rk33xx-glibc
-.rk339x-glibc
-.a33xx-glibc
-.power8-glibc
-.power9-glibc
-.power8le-glibc
-.power9le-glibc
-.riscv64-glibc
-.i586-glibc
-.i686-glibc
-.x86_64-glibc
-
-# Hidden files (each file)
-.makefile
-.src_requires
-.src_requires_depend
-.dist
-
-# Destinations
-dist
-
-
-# Tarballs
-*.gz
-*.bz2
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Text files
-*.txt
-
-# Default linux config files
-*.defconfig
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: GNU/glibc/create-2.36-ppc64-interpreter-patch/glibc-2.36-new/sysdeps/unix
===================================================================
--- GNU/glibc/create-2.36-ppc64-interpreter-patch/glibc-2.36-new/sysdeps/unix (revision 10)
+++ GNU/glibc/create-2.36-ppc64-interpreter-patch/glibc-2.36-new/sysdeps/unix (nonexistent)
Property changes on: GNU/glibc/create-2.36-ppc64-interpreter-patch/glibc-2.36-new/sysdeps/unix
___________________________________________________________________
Deleted: svn:ignore
## -1,80 +0,0 ##
-
-# Target build dirs
-.noarch
-.host
-
-.arm32-newlib
-.a33xx-newlib
-.a9xx-newlib
-.h5-newlib
-.s9xx-newlib
-.rk33xx-newlib
-.m1000-newlib
-.riscv64-newlib
-.at91sam7s-newlib
-
-.a1x-glibc
-.a2x-glibc
-.a311x-glibc
-.h3-glibc
-.h5-glibc
-.imx6-glibc
-.imx6ull-glibc
-.jz47xx-glibc
-.p5600-glibc
-.m1000-glibc
-.omap543x-glibc
-.am335x-glibc
-.rk328x-glibc
-.s8xx-glibc
-.s9xx-glibc
-.a9xx-glibc
-.rk33xx-glibc
-.rk339x-glibc
-.a33xx-glibc
-.power8-glibc
-.power9-glibc
-.power8le-glibc
-.power9le-glibc
-.riscv64-glibc
-.i586-glibc
-.i686-glibc
-.x86_64-glibc
-
-# Hidden files (each file)
-.makefile
-.src_requires
-.src_requires_depend
-.dist
-
-# Destinations
-dist
-
-
-# Tarballs
-*.gz
-*.bz2
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Text files
-*.txt
-
-# Default linux config files
-*.defconfig
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: GNU/glibc/create-2.36-ppc64-interpreter-patch/glibc-2.36-new/sysdeps
===================================================================
--- GNU/glibc/create-2.36-ppc64-interpreter-patch/glibc-2.36-new/sysdeps (revision 10)
+++ GNU/glibc/create-2.36-ppc64-interpreter-patch/glibc-2.36-new/sysdeps (nonexistent)
Property changes on: GNU/glibc/create-2.36-ppc64-interpreter-patch/glibc-2.36-new/sysdeps
___________________________________________________________________
Deleted: svn:ignore
## -1,80 +0,0 ##
-
-# Target build dirs
-.noarch
-.host
-
-.arm32-newlib
-.a33xx-newlib
-.a9xx-newlib
-.h5-newlib
-.s9xx-newlib
-.rk33xx-newlib
-.m1000-newlib
-.riscv64-newlib
-.at91sam7s-newlib
-
-.a1x-glibc
-.a2x-glibc
-.a311x-glibc
-.h3-glibc
-.h5-glibc
-.imx6-glibc
-.imx6ull-glibc
-.jz47xx-glibc
-.p5600-glibc
-.m1000-glibc
-.omap543x-glibc
-.am335x-glibc
-.rk328x-glibc
-.s8xx-glibc
-.s9xx-glibc
-.a9xx-glibc
-.rk33xx-glibc
-.rk339x-glibc
-.a33xx-glibc
-.power8-glibc
-.power9-glibc
-.power8le-glibc
-.power9le-glibc
-.riscv64-glibc
-.i586-glibc
-.i686-glibc
-.x86_64-glibc
-
-# Hidden files (each file)
-.makefile
-.src_requires
-.src_requires_depend
-.dist
-
-# Destinations
-dist
-
-
-# Tarballs
-*.gz
-*.bz2
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Text files
-*.txt
-
-# Default linux config files
-*.defconfig
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: GNU/glibc/create-2.36-ppc64-interpreter-patch/glibc-2.36-new
===================================================================
--- GNU/glibc/create-2.36-ppc64-interpreter-patch/glibc-2.36-new (revision 10)
+++ GNU/glibc/create-2.36-ppc64-interpreter-patch/glibc-2.36-new (nonexistent)
Property changes on: GNU/glibc/create-2.36-ppc64-interpreter-patch/glibc-2.36-new
___________________________________________________________________
Deleted: svn:ignore
## -1,80 +0,0 ##
-
-# Target build dirs
-.noarch
-.host
-
-.arm32-newlib
-.a33xx-newlib
-.a9xx-newlib
-.h5-newlib
-.s9xx-newlib
-.rk33xx-newlib
-.m1000-newlib
-.riscv64-newlib
-.at91sam7s-newlib
-
-.a1x-glibc
-.a2x-glibc
-.a311x-glibc
-.h3-glibc
-.h5-glibc
-.imx6-glibc
-.imx6ull-glibc
-.jz47xx-glibc
-.p5600-glibc
-.m1000-glibc
-.omap543x-glibc
-.am335x-glibc
-.rk328x-glibc
-.s8xx-glibc
-.s9xx-glibc
-.a9xx-glibc
-.rk33xx-glibc
-.rk339x-glibc
-.a33xx-glibc
-.power8-glibc
-.power9-glibc
-.power8le-glibc
-.power9le-glibc
-.riscv64-glibc
-.i586-glibc
-.i686-glibc
-.x86_64-glibc
-
-# Hidden files (each file)
-.makefile
-.src_requires
-.src_requires_depend
-.dist
-
-# Destinations
-dist
-
-
-# Tarballs
-*.gz
-*.bz2
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Text files
-*.txt
-
-# Default linux config files
-*.defconfig
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: GNU/glibc/create-2.36-ppc64-interpreter-patch
===================================================================
--- GNU/glibc/create-2.36-ppc64-interpreter-patch (revision 10)
+++ GNU/glibc/create-2.36-ppc64-interpreter-patch (nonexistent)
Property changes on: GNU/glibc/create-2.36-ppc64-interpreter-patch
___________________________________________________________________
Deleted: svn:ignore
## -1,80 +0,0 ##
-
-# Target build dirs
-.noarch
-.host
-
-.arm32-newlib
-.a33xx-newlib
-.a9xx-newlib
-.h5-newlib
-.s9xx-newlib
-.rk33xx-newlib
-.m1000-newlib
-.riscv64-newlib
-.at91sam7s-newlib
-
-.a1x-glibc
-.a2x-glibc
-.a311x-glibc
-.h3-glibc
-.h5-glibc
-.imx6-glibc
-.imx6ull-glibc
-.jz47xx-glibc
-.p5600-glibc
-.m1000-glibc
-.omap543x-glibc
-.am335x-glibc
-.rk328x-glibc
-.s8xx-glibc
-.s9xx-glibc
-.a9xx-glibc
-.rk33xx-glibc
-.rk339x-glibc
-.a33xx-glibc
-.power8-glibc
-.power9-glibc
-.power8le-glibc
-.power9le-glibc
-.riscv64-glibc
-.i586-glibc
-.i686-glibc
-.x86_64-glibc
-
-# Hidden files (each file)
-.makefile
-.src_requires
-.src_requires_depend
-.dist
-
-# Destinations
-dist
-
-
-# Tarballs
-*.gz
-*.bz2
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Text files
-*.txt
-
-# Default linux config files
-*.defconfig
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: GNU/glibc/create-2.36-reenable-DT-HASH-patch/file.list
===================================================================
--- GNU/glibc/create-2.36-reenable-DT-HASH-patch/file.list (revision 10)
+++ GNU/glibc/create-2.36-reenable-DT-HASH-patch/file.list (nonexistent)
@@ -1,5 +0,0 @@
-glibc-2.36/Makeconfig
-glibc-2.36/Makerules
-glibc-2.36/config.make.in
-glibc-2.36/configure
-glibc-2.36/configure.ac
Index: GNU/glibc/create-2.36-reenable-DT-HASH-patch/create.patch.sh
===================================================================
--- GNU/glibc/create-2.36-reenable-DT-HASH-patch/create.patch.sh (revision 10)
+++ GNU/glibc/create-2.36-reenable-DT-HASH-patch/create.patch.sh (nonexistent)
@@ -1,15 +0,0 @@
-#!/bin/bash
-
-VERSION=2.36
-
-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: GNU/glibc/create-2.36-reenable-DT-HASH-patch/create.patch.sh
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: GNU/glibc/create-2.36-reenable-DT-HASH-patch/glibc-2.36-new/configure
===================================================================
--- GNU/glibc/create-2.36-reenable-DT-HASH-patch/glibc-2.36-new/configure (revision 10)
+++ GNU/glibc/create-2.36-reenable-DT-HASH-patch/glibc-2.36-new/configure (nonexistent)
@@ -1,8474 +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
-PYTHON
-PYTHON_PROG
-AUTOCONF
-NM
-BISON
-AWK
-SED
-MAKEINFO
-MSGFMT
-MAKE
-LD
-AS
-GPROF
-OBJCOPY
-OBJDUMP
-AR
-LN_S
-INSTALL_DATA
-INSTALL_SCRIPT
-INSTALL_PROGRAM
-sysnames
-submachine
-multi_arch
-libc_cv_textrel_ifunc
-no_stack_protector
-stack_protector
-libc_cv_ssp
-libc_cv_with_fp
-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
-READELF
-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
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}readelf", so it can be a program name with args.
-set dummy ${ac_tool_prefix}readelf; 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_READELF+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$READELF"; then
- ac_cv_prog_READELF="$READELF" # 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_READELF="${ac_tool_prefix}readelf"
- $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
-READELF=$ac_cv_prog_READELF
-if test -n "$READELF"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $READELF" >&5
-$as_echo "$READELF" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_READELF"; then
- ac_ct_READELF=$READELF
- # Extract the first word of "readelf", so it can be a program name with args.
-set dummy readelf; 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_READELF+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_READELF"; then
- ac_cv_prog_ac_ct_READELF="$ac_ct_READELF" # 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_READELF="readelf"
- $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_READELF=$ac_cv_prog_ac_ct_READELF
-if test -n "$ac_ct_READELF"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_READELF" >&5
-$as_echo "$ac_ct_READELF" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_READELF" = x; then
- READELF="false"
- 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
- READELF=$ac_ct_READELF
- fi
-else
- READELF="$ac_cv_prog_READELF"
-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
-
-
-# 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; }
-
-
-### 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
-AS=`$CC -print-prog-name=as`
-LD=`$CC -print-prog-name=$LDNAME`
-AR=`$CC -print-prog-name=ar`
-
-OBJDUMP=`$CC -print-prog-name=objdump`
-
-OBJCOPY=`$CC -print-prog-name=objcopy`
-
-GPROF=`$CC -print-prog-name=gprof`
-
-
-# Determine whether we are using GNU binutils.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $AS is GNU as" >&5
-$as_echo_n "checking whether $AS is GNU as... " >&6; }
-if ${libc_cv_prog_as_gnu+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- # Most GNU programs take a -v and spit out some text including
-# the word 'GNU'. Some try to read stdin, so give them /dev/null.
-if $AS -o conftest -v </dev/null 2>&1 | grep GNU > /dev/null 2>&1; then
- libc_cv_prog_as_gnu=yes
-else
- libc_cv_prog_as_gnu=no
-fi
-rm -fr contest*
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_prog_as_gnu" >&5
-$as_echo "$libc_cv_prog_as_gnu" >&6; }
-rm -f a.out
-gnu_as=$libc_cv_prog_as_gnu
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $LD is GNU ld" >&5
-$as_echo_n "checking whether $LD is GNU ld... " >&6; }
-if ${libc_cv_prog_ld_gnu+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- # Most GNU programs take a -v and spit out some text including
-# the word 'GNU'. Some try to read stdin, so give them /dev/null.
-if $LD -o conftest -v </dev/null 2>&1 | grep GNU > /dev/null 2>&1; then
- libc_cv_prog_ld_gnu=yes
-else
- libc_cv_prog_ld_gnu=no
-fi
-rm -fr contest*
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_prog_ld_gnu" >&5
-$as_echo "$libc_cv_prog_ld_gnu" >&6; }
-gnu_ld=$libc_cv_prog_ld_gnu
-
-
-# Accept binutils 2.25 or newer.
-for ac_prog in $AS
-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_AS+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$AS"; then
- ac_cv_prog_AS="$AS" # 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_AS="$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
-AS=$ac_cv_prog_AS
-if test -n "$AS"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AS" >&5
-$as_echo "$AS" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$AS" && break
-done
-
-if test -z "$AS"; then
- ac_verc_fail=yes
-else
- # Found it, now check the version.
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking version of $AS" >&5
-$as_echo_n "checking version of $AS... " >&6; }
- ac_prog_version=`$AS --version 2>&1 | sed -n 's/^.*GNU assembler.* \([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
- AS=: critic_missing="$critic_missing as"
-fi
-
-
-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 -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}nm", so it can be a program name with args.
-set dummy ${ac_tool_prefix}nm; 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_NM+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$NM"; then
- ac_cv_prog_NM="$NM" # 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_NM="${ac_tool_prefix}nm"
- $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
-NM=$ac_cv_prog_NM
-if test -n "$NM"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NM" >&5
-$as_echo "$NM" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_NM"; then
- ac_ct_NM=$NM
- # Extract the first word of "nm", so it can be a program name with args.
-set dummy nm; 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_NM+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_NM"; then
- ac_cv_prog_ac_ct_NM="$ac_ct_NM" # 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_NM="nm"
- $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_NM=$ac_cv_prog_ac_ct_NM
-if test -n "$ac_ct_NM"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NM" >&5
-$as_echo "$ac_ct_NM" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_NM" = x; then
- NM="false"
- 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
- NM=$ac_ct_NM
- fi
-else
- NM="$ac_cv_prog_NM"
-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;}
-
-# 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 -M -MP -x c++ - 2>/dev/null \
- | sed -n "\,$1:,{s/:\$//;p}"
- }
- 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
-if test x"$gnu_ld" = x"yes"; then
- 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*
-fi
-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
-if test x"$gnu_ld" = x"yes"; then
- 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*
-fi
-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
-if test x"$gnu_ld" = x"yes"; then
- 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*
-fi
-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
-if test x"$gnu_ld" = x"yes"; then
- 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*
-fi
-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
-if test x"$gnu_ld" = x"yes"; then
- 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*
-fi
-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 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 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: GNU/glibc/create-2.36-reenable-DT-HASH-patch/glibc-2.36-new/configure
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: GNU/glibc/create-2.36-reenable-DT-HASH-patch/glibc-2.36-new/configure.ac
===================================================================
--- GNU/glibc/create-2.36-reenable-DT-HASH-patch/glibc-2.36-new/configure.ac (revision 10)
+++ GNU/glibc/create-2.36-reenable-DT-HASH-patch/glibc-2.36-new/configure.ac (nonexistent)
@@ -1,1838 +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
-AC_CHECK_TOOL(READELF, readelf, false)
-
-# 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)
-
-# 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)
-
-
-### 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.
-AC_CHECK_PROG_VER(AS, $AS, --version,
- [GNU assembler.* \([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]*],
- AS=: critic_missing="$critic_missing as")
-
-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"])
-
-AC_CHECK_TOOL(NM, nm, false)
-
-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.])
-
-# 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 -M -MP -x c++ - 2>/dev/null \
- | sed -n "\,$1:,{s/:\$//;p}"
- }
- 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])
-
-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)
-
-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: GNU/glibc/create-2.36-reenable-DT-HASH-patch/glibc-2.36-new/config.make.in
===================================================================
--- GNU/glibc/create-2.36-reenable-DT-HASH-patch/glibc-2.36-new/config.make.in (revision 10)
+++ GNU/glibc/create-2.36-reenable-DT-HASH-patch/glibc-2.36-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: GNU/glibc/create-2.36-reenable-DT-HASH-patch/glibc-2.36-new/Makeconfig
===================================================================
--- GNU/glibc/create-2.36-reenable-DT-HASH-patch/glibc-2.36-new/Makeconfig (revision 10)
+++ GNU/glibc/create-2.36-reenable-DT-HASH-patch/glibc-2.36-new/Makeconfig (nonexistent)
@@ -1,1415 +0,0 @@
-# Copyright (C) 1991-2022 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
-
-# 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 lddlibc4 ldconfig locale_programs \
- iconvprogs libnss_files libnss_compat libnss_db libnss_hesiod \
- libutil libpcprofile libSegFault
-+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.
-ifneq "$(findstring s,$(MAKEFLAGS))" "" # 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 lddlibc4 libmemusage \
- libSegFault 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: GNU/glibc/create-2.36-reenable-DT-HASH-patch/glibc-2.36-new/Makerules
===================================================================
--- GNU/glibc/create-2.36-reenable-DT-HASH-patch/glibc-2.36-new/Makerules (revision 10)
+++ GNU/glibc/create-2.36-reenable-DT-HASH-patch/glibc-2.36-new/Makerules (nonexistent)
@@ -1,1507 +0,0 @@
-# Copyright (C) 1991-2022 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.
-shlib-lds =
-shlib-lds-flags =
-else
-# binutils only position loadable notes into the first page for binaries,
-# not for shared objects
-$(common-objpfx)shlib.lds: $(common-objpfx)config.make $(..)Makerules
- $(LINK.o) -shared -Wl,-O1 \
- -nostdlib -nostartfiles \
- $(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_atexit = .);\
- __libc_atexit : { *(__libc_atexit) }\
- PROVIDE(__stop___libc_atexit = .);\
- 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 "$(findstring s,$(MAKEFLAGS))" "" # 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: GNU/glibc/create-2.36-reenable-DT-HASH-patch/glibc-2.36-new
===================================================================
--- GNU/glibc/create-2.36-reenable-DT-HASH-patch/glibc-2.36-new (revision 10)
+++ GNU/glibc/create-2.36-reenable-DT-HASH-patch/glibc-2.36-new (nonexistent)
Property changes on: GNU/glibc/create-2.36-reenable-DT-HASH-patch/glibc-2.36-new
___________________________________________________________________
Deleted: svn:ignore
## -1,80 +0,0 ##
-
-# Target build dirs
-.noarch
-.host
-
-.arm32-newlib
-.a33xx-newlib
-.a9xx-newlib
-.h5-newlib
-.s9xx-newlib
-.rk33xx-newlib
-.m1000-newlib
-.riscv64-newlib
-.at91sam7s-newlib
-
-.a1x-glibc
-.a2x-glibc
-.a311x-glibc
-.h3-glibc
-.h5-glibc
-.imx6-glibc
-.imx6ull-glibc
-.jz47xx-glibc
-.p5600-glibc
-.m1000-glibc
-.omap543x-glibc
-.am335x-glibc
-.rk328x-glibc
-.s8xx-glibc
-.s9xx-glibc
-.a9xx-glibc
-.rk33xx-glibc
-.rk339x-glibc
-.a33xx-glibc
-.power8-glibc
-.power9-glibc
-.power8le-glibc
-.power9le-glibc
-.riscv64-glibc
-.i586-glibc
-.i686-glibc
-.x86_64-glibc
-
-# Hidden files (each file)
-.makefile
-.src_requires
-.src_requires_depend
-.dist
-
-# Destinations
-dist
-
-
-# Tarballs
-*.gz
-*.bz2
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Text files
-*.txt
-
-# Default linux config files
-*.defconfig
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: GNU/glibc/create-2.36-reenable-DT-HASH-patch
===================================================================
--- GNU/glibc/create-2.36-reenable-DT-HASH-patch (revision 10)
+++ GNU/glibc/create-2.36-reenable-DT-HASH-patch (nonexistent)
Property changes on: GNU/glibc/create-2.36-reenable-DT-HASH-patch
___________________________________________________________________
Deleted: svn:ignore
## -1,80 +0,0 ##
-
-# Target build dirs
-.noarch
-.host
-
-.arm32-newlib
-.a33xx-newlib
-.a9xx-newlib
-.h5-newlib
-.s9xx-newlib
-.rk33xx-newlib
-.m1000-newlib
-.riscv64-newlib
-.at91sam7s-newlib
-
-.a1x-glibc
-.a2x-glibc
-.a311x-glibc
-.h3-glibc
-.h5-glibc
-.imx6-glibc
-.imx6ull-glibc
-.jz47xx-glibc
-.p5600-glibc
-.m1000-glibc
-.omap543x-glibc
-.am335x-glibc
-.rk328x-glibc
-.s8xx-glibc
-.s9xx-glibc
-.a9xx-glibc
-.rk33xx-glibc
-.rk339x-glibc
-.a33xx-glibc
-.power8-glibc
-.power9-glibc
-.power8le-glibc
-.power9le-glibc
-.riscv64-glibc
-.i586-glibc
-.i686-glibc
-.x86_64-glibc
-
-# Hidden files (each file)
-.makefile
-.src_requires
-.src_requires_depend
-.dist
-
-# Destinations
-dist
-
-
-# Tarballs
-*.gz
-*.bz2
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Text files
-*.txt
-
-# Default linux config files
-*.defconfig
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: GNU/glibc/create-2.36-i18n-patch/file.list
===================================================================
--- GNU/glibc/create-2.36-i18n-patch/file.list (revision 10)
+++ GNU/glibc/create-2.36-i18n-patch/file.list (nonexistent)
@@ -1,2 +0,0 @@
-glibc-2.36/localedata/SUPPORTED
-glibc-2.36/localedata/locales/ru_RU
Index: GNU/glibc/create-2.36-i18n-patch/create.patch.sh
===================================================================
--- GNU/glibc/create-2.36-i18n-patch/create.patch.sh (revision 10)
+++ GNU/glibc/create-2.36-i18n-patch/create.patch.sh (nonexistent)
@@ -1,15 +0,0 @@
-#!/bin/bash
-
-VERSION=2.36
-
-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: GNU/glibc/create-2.36-i18n-patch/create.patch.sh
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: GNU/glibc/create-2.36-i18n-patch/glibc-2.36-new/localedata/locales/ru_RU
===================================================================
--- GNU/glibc/create-2.36-i18n-patch/glibc-2.36-new/localedata/locales/ru_RU (revision 10)
+++ GNU/glibc/create-2.36-i18n-patch/glibc-2.36-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: GNU/glibc/create-2.36-i18n-patch/glibc-2.36-new/localedata/locales/en_RU
===================================================================
--- GNU/glibc/create-2.36-i18n-patch/glibc-2.36-new/localedata/locales/en_RU (revision 10)
+++ GNU/glibc/create-2.36-i18n-patch/glibc-2.36-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: GNU/glibc/create-2.36-i18n-patch/glibc-2.36-new/localedata/locales
===================================================================
--- GNU/glibc/create-2.36-i18n-patch/glibc-2.36-new/localedata/locales (revision 10)
+++ GNU/glibc/create-2.36-i18n-patch/glibc-2.36-new/localedata/locales (nonexistent)
Property changes on: GNU/glibc/create-2.36-i18n-patch/glibc-2.36-new/localedata/locales
___________________________________________________________________
Deleted: svn:ignore
## -1,80 +0,0 ##
-
-# Target build dirs
-.noarch
-.host
-
-.arm32-newlib
-.a33xx-newlib
-.a9xx-newlib
-.h5-newlib
-.s9xx-newlib
-.rk33xx-newlib
-.m1000-newlib
-.riscv64-newlib
-.at91sam7s-newlib
-
-.a1x-glibc
-.a2x-glibc
-.a311x-glibc
-.h3-glibc
-.h5-glibc
-.imx6-glibc
-.imx6ull-glibc
-.jz47xx-glibc
-.p5600-glibc
-.m1000-glibc
-.omap543x-glibc
-.am335x-glibc
-.rk328x-glibc
-.s8xx-glibc
-.s9xx-glibc
-.a9xx-glibc
-.rk33xx-glibc
-.rk339x-glibc
-.a33xx-glibc
-.power8-glibc
-.power9-glibc
-.power8le-glibc
-.power9le-glibc
-.riscv64-glibc
-.i586-glibc
-.i686-glibc
-.x86_64-glibc
-
-# Hidden files (each file)
-.makefile
-.src_requires
-.src_requires_depend
-.dist
-
-# Destinations
-dist
-
-
-# Tarballs
-*.gz
-*.bz2
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Text files
-*.txt
-
-# Default linux config files
-*.defconfig
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: GNU/glibc/create-2.36-i18n-patch/glibc-2.36-new/localedata/SUPPORTED
===================================================================
--- GNU/glibc/create-2.36-i18n-patch/glibc-2.36-new/localedata/SUPPORTED (revision 10)
+++ GNU/glibc/create-2.36-i18n-patch/glibc-2.36-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: GNU/glibc/create-2.36-i18n-patch/glibc-2.36-new/localedata
===================================================================
--- GNU/glibc/create-2.36-i18n-patch/glibc-2.36-new/localedata (revision 10)
+++ GNU/glibc/create-2.36-i18n-patch/glibc-2.36-new/localedata (nonexistent)
Property changes on: GNU/glibc/create-2.36-i18n-patch/glibc-2.36-new/localedata
___________________________________________________________________
Deleted: svn:ignore
## -1,80 +0,0 ##
-
-# Target build dirs
-.noarch
-.host
-
-.arm32-newlib
-.a33xx-newlib
-.a9xx-newlib
-.h5-newlib
-.s9xx-newlib
-.rk33xx-newlib
-.m1000-newlib
-.riscv64-newlib
-.at91sam7s-newlib
-
-.a1x-glibc
-.a2x-glibc
-.a311x-glibc
-.h3-glibc
-.h5-glibc
-.imx6-glibc
-.imx6ull-glibc
-.jz47xx-glibc
-.p5600-glibc
-.m1000-glibc
-.omap543x-glibc
-.am335x-glibc
-.rk328x-glibc
-.s8xx-glibc
-.s9xx-glibc
-.a9xx-glibc
-.rk33xx-glibc
-.rk339x-glibc
-.a33xx-glibc
-.power8-glibc
-.power9-glibc
-.power8le-glibc
-.power9le-glibc
-.riscv64-glibc
-.i586-glibc
-.i686-glibc
-.x86_64-glibc
-
-# Hidden files (each file)
-.makefile
-.src_requires
-.src_requires_depend
-.dist
-
-# Destinations
-dist
-
-
-# Tarballs
-*.gz
-*.bz2
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Text files
-*.txt
-
-# Default linux config files
-*.defconfig
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: GNU/glibc/create-2.36-i18n-patch/glibc-2.36-new
===================================================================
--- GNU/glibc/create-2.36-i18n-patch/glibc-2.36-new (revision 10)
+++ GNU/glibc/create-2.36-i18n-patch/glibc-2.36-new (nonexistent)
Property changes on: GNU/glibc/create-2.36-i18n-patch/glibc-2.36-new
___________________________________________________________________
Deleted: svn:ignore
## -1,80 +0,0 ##
-
-# Target build dirs
-.noarch
-.host
-
-.arm32-newlib
-.a33xx-newlib
-.a9xx-newlib
-.h5-newlib
-.s9xx-newlib
-.rk33xx-newlib
-.m1000-newlib
-.riscv64-newlib
-.at91sam7s-newlib
-
-.a1x-glibc
-.a2x-glibc
-.a311x-glibc
-.h3-glibc
-.h5-glibc
-.imx6-glibc
-.imx6ull-glibc
-.jz47xx-glibc
-.p5600-glibc
-.m1000-glibc
-.omap543x-glibc
-.am335x-glibc
-.rk328x-glibc
-.s8xx-glibc
-.s9xx-glibc
-.a9xx-glibc
-.rk33xx-glibc
-.rk339x-glibc
-.a33xx-glibc
-.power8-glibc
-.power9-glibc
-.power8le-glibc
-.power9le-glibc
-.riscv64-glibc
-.i586-glibc
-.i686-glibc
-.x86_64-glibc
-
-# Hidden files (each file)
-.makefile
-.src_requires
-.src_requires_depend
-.dist
-
-# Destinations
-dist
-
-
-# Tarballs
-*.gz
-*.bz2
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Text files
-*.txt
-
-# Default linux config files
-*.defconfig
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: GNU/glibc/create-2.36-i18n-patch
===================================================================
--- GNU/glibc/create-2.36-i18n-patch (revision 10)
+++ GNU/glibc/create-2.36-i18n-patch (nonexistent)
Property changes on: GNU/glibc/create-2.36-i18n-patch
___________________________________________________________________
Deleted: svn:ignore
## -1,80 +0,0 ##
-
-# Target build dirs
-.noarch
-.host
-
-.arm32-newlib
-.a33xx-newlib
-.a9xx-newlib
-.h5-newlib
-.s9xx-newlib
-.rk33xx-newlib
-.m1000-newlib
-.riscv64-newlib
-.at91sam7s-newlib
-
-.a1x-glibc
-.a2x-glibc
-.a311x-glibc
-.h3-glibc
-.h5-glibc
-.imx6-glibc
-.imx6ull-glibc
-.jz47xx-glibc
-.p5600-glibc
-.m1000-glibc
-.omap543x-glibc
-.am335x-glibc
-.rk328x-glibc
-.s8xx-glibc
-.s9xx-glibc
-.a9xx-glibc
-.rk33xx-glibc
-.rk339x-glibc
-.a33xx-glibc
-.power8-glibc
-.power9-glibc
-.power8le-glibc
-.power9le-glibc
-.riscv64-glibc
-.i586-glibc
-.i686-glibc
-.x86_64-glibc
-
-# Hidden files (each file)
-.makefile
-.src_requires
-.src_requires_depend
-.dist
-
-# Destinations
-dist
-
-
-# Tarballs
-*.gz
-*.bz2
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Text files
-*.txt
-
-# Default linux config files
-*.defconfig
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: GNU/glibc/create-2.36-x86_64-interpreter-patch/file.list
===================================================================
--- GNU/glibc/create-2.36-x86_64-interpreter-patch/file.list (revision 10)
+++ GNU/glibc/create-2.36-x86_64-interpreter-patch/file.list (nonexistent)
@@ -1,2 +0,0 @@
-glibc-2.36/sysdeps/unix/sysv/linux/x86_64/ldconfig.h
-glibc-2.36/sysdeps/unix/sysv/linux/x86_64/ldd-rewrite.sed
Index: GNU/glibc/create-2.36-x86_64-interpreter-patch/create.patch.sh
===================================================================
--- GNU/glibc/create-2.36-x86_64-interpreter-patch/create.patch.sh (revision 10)
+++ GNU/glibc/create-2.36-x86_64-interpreter-patch/create.patch.sh (nonexistent)
@@ -1,15 +0,0 @@
-#!/bin/bash
-
-VERSION=2.36
-
-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: GNU/glibc/create-2.36-x86_64-interpreter-patch/create.patch.sh
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: GNU/glibc/create-2.36-x86_64-interpreter-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/x86_64/ldd-rewrite.sed
===================================================================
--- GNU/glibc/create-2.36-x86_64-interpreter-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/x86_64/ldd-rewrite.sed (revision 10)
+++ GNU/glibc/create-2.36-x86_64-interpreter-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/x86_64/ldd-rewrite.sed (nonexistent)
@@ -1,3 +0,0 @@
-/LD_TRACE_LOADED_OBJECTS=1/a\
-add_env="$add_env LD_LIBRARY_VERSION=\\$verify_out"
-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: GNU/glibc/create-2.36-x86_64-interpreter-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/x86_64/ldconfig.h
===================================================================
--- GNU/glibc/create-2.36-x86_64-interpreter-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/x86_64/ldconfig.h (revision 10)
+++ GNU/glibc/create-2.36-x86_64-interpreter-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/x86_64/ldconfig.h (nonexistent)
@@ -1,26 +0,0 @@
-/* Copyright (C) 2001-2022 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 <sysdeps/generic/ldconfig.h>
-
-#define SYSDEP_KNOWN_INTERPRETER_NAMES \
- { "/lib/ld-linux-x86-64.so.2", FLAG_ELF_LIBC6 }, \
- { "/lib32/ld-linux.so.2", FLAG_ELF_LIBC6 }, \
- { "/libx32/ld-linux-x32.so.2", FLAG_ELF_LIBC6 },
-#define SYSDEP_KNOWN_LIBRARY_NAMES \
- { "libc.so.6", FLAG_ELF_LIBC6 }, \
- { "libm.so.6", FLAG_ELF_LIBC6 },
Index: GNU/glibc/create-2.36-x86_64-interpreter-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/x86_64
===================================================================
--- GNU/glibc/create-2.36-x86_64-interpreter-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/x86_64 (revision 10)
+++ GNU/glibc/create-2.36-x86_64-interpreter-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/x86_64 (nonexistent)
Property changes on: GNU/glibc/create-2.36-x86_64-interpreter-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/x86_64
___________________________________________________________________
Deleted: svn:ignore
## -1,80 +0,0 ##
-
-# Target build dirs
-.noarch
-.host
-
-.arm32-newlib
-.a33xx-newlib
-.a9xx-newlib
-.h5-newlib
-.s9xx-newlib
-.rk33xx-newlib
-.m1000-newlib
-.riscv64-newlib
-.at91sam7s-newlib
-
-.a1x-glibc
-.a2x-glibc
-.a311x-glibc
-.h3-glibc
-.h5-glibc
-.imx6-glibc
-.imx6ull-glibc
-.jz47xx-glibc
-.p5600-glibc
-.m1000-glibc
-.omap543x-glibc
-.am335x-glibc
-.rk328x-glibc
-.s8xx-glibc
-.s9xx-glibc
-.a9xx-glibc
-.rk33xx-glibc
-.rk339x-glibc
-.a33xx-glibc
-.power8-glibc
-.power9-glibc
-.power8le-glibc
-.power9le-glibc
-.riscv64-glibc
-.i586-glibc
-.i686-glibc
-.x86_64-glibc
-
-# Hidden files (each file)
-.makefile
-.src_requires
-.src_requires_depend
-.dist
-
-# Destinations
-dist
-
-
-# Tarballs
-*.gz
-*.bz2
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Text files
-*.txt
-
-# Default linux config files
-*.defconfig
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: GNU/glibc/create-2.36-x86_64-interpreter-patch/glibc-2.36-new/sysdeps/unix/sysv/linux
===================================================================
--- GNU/glibc/create-2.36-x86_64-interpreter-patch/glibc-2.36-new/sysdeps/unix/sysv/linux (revision 10)
+++ GNU/glibc/create-2.36-x86_64-interpreter-patch/glibc-2.36-new/sysdeps/unix/sysv/linux (nonexistent)
Property changes on: GNU/glibc/create-2.36-x86_64-interpreter-patch/glibc-2.36-new/sysdeps/unix/sysv/linux
___________________________________________________________________
Deleted: svn:ignore
## -1,80 +0,0 ##
-
-# Target build dirs
-.noarch
-.host
-
-.arm32-newlib
-.a33xx-newlib
-.a9xx-newlib
-.h5-newlib
-.s9xx-newlib
-.rk33xx-newlib
-.m1000-newlib
-.riscv64-newlib
-.at91sam7s-newlib
-
-.a1x-glibc
-.a2x-glibc
-.a311x-glibc
-.h3-glibc
-.h5-glibc
-.imx6-glibc
-.imx6ull-glibc
-.jz47xx-glibc
-.p5600-glibc
-.m1000-glibc
-.omap543x-glibc
-.am335x-glibc
-.rk328x-glibc
-.s8xx-glibc
-.s9xx-glibc
-.a9xx-glibc
-.rk33xx-glibc
-.rk339x-glibc
-.a33xx-glibc
-.power8-glibc
-.power9-glibc
-.power8le-glibc
-.power9le-glibc
-.riscv64-glibc
-.i586-glibc
-.i686-glibc
-.x86_64-glibc
-
-# Hidden files (each file)
-.makefile
-.src_requires
-.src_requires_depend
-.dist
-
-# Destinations
-dist
-
-
-# Tarballs
-*.gz
-*.bz2
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Text files
-*.txt
-
-# Default linux config files
-*.defconfig
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: GNU/glibc/create-2.36-x86_64-interpreter-patch/glibc-2.36-new/sysdeps/unix/sysv
===================================================================
--- GNU/glibc/create-2.36-x86_64-interpreter-patch/glibc-2.36-new/sysdeps/unix/sysv (revision 10)
+++ GNU/glibc/create-2.36-x86_64-interpreter-patch/glibc-2.36-new/sysdeps/unix/sysv (nonexistent)
Property changes on: GNU/glibc/create-2.36-x86_64-interpreter-patch/glibc-2.36-new/sysdeps/unix/sysv
___________________________________________________________________
Deleted: svn:ignore
## -1,80 +0,0 ##
-
-# Target build dirs
-.noarch
-.host
-
-.arm32-newlib
-.a33xx-newlib
-.a9xx-newlib
-.h5-newlib
-.s9xx-newlib
-.rk33xx-newlib
-.m1000-newlib
-.riscv64-newlib
-.at91sam7s-newlib
-
-.a1x-glibc
-.a2x-glibc
-.a311x-glibc
-.h3-glibc
-.h5-glibc
-.imx6-glibc
-.imx6ull-glibc
-.jz47xx-glibc
-.p5600-glibc
-.m1000-glibc
-.omap543x-glibc
-.am335x-glibc
-.rk328x-glibc
-.s8xx-glibc
-.s9xx-glibc
-.a9xx-glibc
-.rk33xx-glibc
-.rk339x-glibc
-.a33xx-glibc
-.power8-glibc
-.power9-glibc
-.power8le-glibc
-.power9le-glibc
-.riscv64-glibc
-.i586-glibc
-.i686-glibc
-.x86_64-glibc
-
-# Hidden files (each file)
-.makefile
-.src_requires
-.src_requires_depend
-.dist
-
-# Destinations
-dist
-
-
-# Tarballs
-*.gz
-*.bz2
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Text files
-*.txt
-
-# Default linux config files
-*.defconfig
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: GNU/glibc/create-2.36-x86_64-interpreter-patch/glibc-2.36-new/sysdeps/unix
===================================================================
--- GNU/glibc/create-2.36-x86_64-interpreter-patch/glibc-2.36-new/sysdeps/unix (revision 10)
+++ GNU/glibc/create-2.36-x86_64-interpreter-patch/glibc-2.36-new/sysdeps/unix (nonexistent)
Property changes on: GNU/glibc/create-2.36-x86_64-interpreter-patch/glibc-2.36-new/sysdeps/unix
___________________________________________________________________
Deleted: svn:ignore
## -1,80 +0,0 ##
-
-# Target build dirs
-.noarch
-.host
-
-.arm32-newlib
-.a33xx-newlib
-.a9xx-newlib
-.h5-newlib
-.s9xx-newlib
-.rk33xx-newlib
-.m1000-newlib
-.riscv64-newlib
-.at91sam7s-newlib
-
-.a1x-glibc
-.a2x-glibc
-.a311x-glibc
-.h3-glibc
-.h5-glibc
-.imx6-glibc
-.imx6ull-glibc
-.jz47xx-glibc
-.p5600-glibc
-.m1000-glibc
-.omap543x-glibc
-.am335x-glibc
-.rk328x-glibc
-.s8xx-glibc
-.s9xx-glibc
-.a9xx-glibc
-.rk33xx-glibc
-.rk339x-glibc
-.a33xx-glibc
-.power8-glibc
-.power9-glibc
-.power8le-glibc
-.power9le-glibc
-.riscv64-glibc
-.i586-glibc
-.i686-glibc
-.x86_64-glibc
-
-# Hidden files (each file)
-.makefile
-.src_requires
-.src_requires_depend
-.dist
-
-# Destinations
-dist
-
-
-# Tarballs
-*.gz
-*.bz2
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Text files
-*.txt
-
-# Default linux config files
-*.defconfig
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: GNU/glibc/create-2.36-x86_64-interpreter-patch/glibc-2.36-new/sysdeps
===================================================================
--- GNU/glibc/create-2.36-x86_64-interpreter-patch/glibc-2.36-new/sysdeps (revision 10)
+++ GNU/glibc/create-2.36-x86_64-interpreter-patch/glibc-2.36-new/sysdeps (nonexistent)
Property changes on: GNU/glibc/create-2.36-x86_64-interpreter-patch/glibc-2.36-new/sysdeps
___________________________________________________________________
Deleted: svn:ignore
## -1,80 +0,0 ##
-
-# Target build dirs
-.noarch
-.host
-
-.arm32-newlib
-.a33xx-newlib
-.a9xx-newlib
-.h5-newlib
-.s9xx-newlib
-.rk33xx-newlib
-.m1000-newlib
-.riscv64-newlib
-.at91sam7s-newlib
-
-.a1x-glibc
-.a2x-glibc
-.a311x-glibc
-.h3-glibc
-.h5-glibc
-.imx6-glibc
-.imx6ull-glibc
-.jz47xx-glibc
-.p5600-glibc
-.m1000-glibc
-.omap543x-glibc
-.am335x-glibc
-.rk328x-glibc
-.s8xx-glibc
-.s9xx-glibc
-.a9xx-glibc
-.rk33xx-glibc
-.rk339x-glibc
-.a33xx-glibc
-.power8-glibc
-.power9-glibc
-.power8le-glibc
-.power9le-glibc
-.riscv64-glibc
-.i586-glibc
-.i686-glibc
-.x86_64-glibc
-
-# Hidden files (each file)
-.makefile
-.src_requires
-.src_requires_depend
-.dist
-
-# Destinations
-dist
-
-
-# Tarballs
-*.gz
-*.bz2
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Text files
-*.txt
-
-# Default linux config files
-*.defconfig
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: GNU/glibc/create-2.36-x86_64-interpreter-patch/glibc-2.36-new
===================================================================
--- GNU/glibc/create-2.36-x86_64-interpreter-patch/glibc-2.36-new (revision 10)
+++ GNU/glibc/create-2.36-x86_64-interpreter-patch/glibc-2.36-new (nonexistent)
Property changes on: GNU/glibc/create-2.36-x86_64-interpreter-patch/glibc-2.36-new
___________________________________________________________________
Deleted: svn:ignore
## -1,80 +0,0 ##
-
-# Target build dirs
-.noarch
-.host
-
-.arm32-newlib
-.a33xx-newlib
-.a9xx-newlib
-.h5-newlib
-.s9xx-newlib
-.rk33xx-newlib
-.m1000-newlib
-.riscv64-newlib
-.at91sam7s-newlib
-
-.a1x-glibc
-.a2x-glibc
-.a311x-glibc
-.h3-glibc
-.h5-glibc
-.imx6-glibc
-.imx6ull-glibc
-.jz47xx-glibc
-.p5600-glibc
-.m1000-glibc
-.omap543x-glibc
-.am335x-glibc
-.rk328x-glibc
-.s8xx-glibc
-.s9xx-glibc
-.a9xx-glibc
-.rk33xx-glibc
-.rk339x-glibc
-.a33xx-glibc
-.power8-glibc
-.power9-glibc
-.power8le-glibc
-.power9le-glibc
-.riscv64-glibc
-.i586-glibc
-.i686-glibc
-.x86_64-glibc
-
-# Hidden files (each file)
-.makefile
-.src_requires
-.src_requires_depend
-.dist
-
-# Destinations
-dist
-
-
-# Tarballs
-*.gz
-*.bz2
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Text files
-*.txt
-
-# Default linux config files
-*.defconfig
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: GNU/glibc/create-2.36-x86_64-interpreter-patch
===================================================================
--- GNU/glibc/create-2.36-x86_64-interpreter-patch (revision 10)
+++ GNU/glibc/create-2.36-x86_64-interpreter-patch (nonexistent)
Property changes on: GNU/glibc/create-2.36-x86_64-interpreter-patch
___________________________________________________________________
Deleted: svn:ignore
## -1,80 +0,0 ##
-
-# Target build dirs
-.noarch
-.host
-
-.arm32-newlib
-.a33xx-newlib
-.a9xx-newlib
-.h5-newlib
-.s9xx-newlib
-.rk33xx-newlib
-.m1000-newlib
-.riscv64-newlib
-.at91sam7s-newlib
-
-.a1x-glibc
-.a2x-glibc
-.a311x-glibc
-.h3-glibc
-.h5-glibc
-.imx6-glibc
-.imx6ull-glibc
-.jz47xx-glibc
-.p5600-glibc
-.m1000-glibc
-.omap543x-glibc
-.am335x-glibc
-.rk328x-glibc
-.s8xx-glibc
-.s9xx-glibc
-.a9xx-glibc
-.rk33xx-glibc
-.rk339x-glibc
-.a33xx-glibc
-.power8-glibc
-.power9-glibc
-.power8le-glibc
-.power9le-glibc
-.riscv64-glibc
-.i586-glibc
-.i686-glibc
-.x86_64-glibc
-
-# Hidden files (each file)
-.makefile
-.src_requires
-.src_requires_depend
-.dist
-
-# Destinations
-dist
-
-
-# Tarballs
-*.gz
-*.bz2
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Text files
-*.txt
-
-# Default linux config files
-*.defconfig
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: GNU/glibc/create-2.36-locale-no-archive-patch/file.list
===================================================================
--- GNU/glibc/create-2.36-locale-no-archive-patch/file.list (revision 10)
+++ GNU/glibc/create-2.36-locale-no-archive-patch/file.list (nonexistent)
@@ -1 +0,0 @@
-glibc-2.36/localedata/Makefile
Index: GNU/glibc/create-2.36-locale-no-archive-patch/create.patch.sh
===================================================================
--- GNU/glibc/create-2.36-locale-no-archive-patch/create.patch.sh (revision 10)
+++ GNU/glibc/create-2.36-locale-no-archive-patch/create.patch.sh (nonexistent)
@@ -1,15 +0,0 @@
-#!/bin/bash
-
-VERSION=2.36
-
-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: GNU/glibc/create-2.36-locale-no-archive-patch/create.patch.sh
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: GNU/glibc/create-2.36-locale-no-archive-patch/glibc-2.36-new/localedata/Makefile
===================================================================
--- GNU/glibc/create-2.36-locale-no-archive-patch/glibc-2.36-new/localedata/Makefile (revision 10)
+++ GNU/glibc/create-2.36-locale-no-archive-patch/glibc-2.36-new/localedata/Makefile (nonexistent)
@@ -1,496 +0,0 @@
-# Copyright (C) 1996-2022 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: GNU/glibc/create-2.36-locale-no-archive-patch/glibc-2.36-new/localedata
===================================================================
--- GNU/glibc/create-2.36-locale-no-archive-patch/glibc-2.36-new/localedata (revision 10)
+++ GNU/glibc/create-2.36-locale-no-archive-patch/glibc-2.36-new/localedata (nonexistent)
Property changes on: GNU/glibc/create-2.36-locale-no-archive-patch/glibc-2.36-new/localedata
___________________________________________________________________
Deleted: svn:ignore
## -1,80 +0,0 ##
-
-# Target build dirs
-.noarch
-.host
-
-.arm32-newlib
-.a33xx-newlib
-.a9xx-newlib
-.h5-newlib
-.s9xx-newlib
-.rk33xx-newlib
-.m1000-newlib
-.riscv64-newlib
-.at91sam7s-newlib
-
-.a1x-glibc
-.a2x-glibc
-.a311x-glibc
-.h3-glibc
-.h5-glibc
-.imx6-glibc
-.imx6ull-glibc
-.jz47xx-glibc
-.p5600-glibc
-.m1000-glibc
-.omap543x-glibc
-.am335x-glibc
-.rk328x-glibc
-.s8xx-glibc
-.s9xx-glibc
-.a9xx-glibc
-.rk33xx-glibc
-.rk339x-glibc
-.a33xx-glibc
-.power8-glibc
-.power9-glibc
-.power8le-glibc
-.power9le-glibc
-.riscv64-glibc
-.i586-glibc
-.i686-glibc
-.x86_64-glibc
-
-# Hidden files (each file)
-.makefile
-.src_requires
-.src_requires_depend
-.dist
-
-# Destinations
-dist
-
-
-# Tarballs
-*.gz
-*.bz2
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Text files
-*.txt
-
-# Default linux config files
-*.defconfig
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: GNU/glibc/create-2.36-locale-no-archive-patch/glibc-2.36-new
===================================================================
--- GNU/glibc/create-2.36-locale-no-archive-patch/glibc-2.36-new (revision 10)
+++ GNU/glibc/create-2.36-locale-no-archive-patch/glibc-2.36-new (nonexistent)
Property changes on: GNU/glibc/create-2.36-locale-no-archive-patch/glibc-2.36-new
___________________________________________________________________
Deleted: svn:ignore
## -1,80 +0,0 ##
-
-# Target build dirs
-.noarch
-.host
-
-.arm32-newlib
-.a33xx-newlib
-.a9xx-newlib
-.h5-newlib
-.s9xx-newlib
-.rk33xx-newlib
-.m1000-newlib
-.riscv64-newlib
-.at91sam7s-newlib
-
-.a1x-glibc
-.a2x-glibc
-.a311x-glibc
-.h3-glibc
-.h5-glibc
-.imx6-glibc
-.imx6ull-glibc
-.jz47xx-glibc
-.p5600-glibc
-.m1000-glibc
-.omap543x-glibc
-.am335x-glibc
-.rk328x-glibc
-.s8xx-glibc
-.s9xx-glibc
-.a9xx-glibc
-.rk33xx-glibc
-.rk339x-glibc
-.a33xx-glibc
-.power8-glibc
-.power9-glibc
-.power8le-glibc
-.power9le-glibc
-.riscv64-glibc
-.i586-glibc
-.i686-glibc
-.x86_64-glibc
-
-# Hidden files (each file)
-.makefile
-.src_requires
-.src_requires_depend
-.dist
-
-# Destinations
-dist
-
-
-# Tarballs
-*.gz
-*.bz2
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Text files
-*.txt
-
-# Default linux config files
-*.defconfig
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: GNU/glibc/create-2.36-locale-no-archive-patch
===================================================================
--- GNU/glibc/create-2.36-locale-no-archive-patch (revision 10)
+++ GNU/glibc/create-2.36-locale-no-archive-patch (nonexistent)
Property changes on: GNU/glibc/create-2.36-locale-no-archive-patch
___________________________________________________________________
Deleted: svn:ignore
## -1,80 +0,0 ##
-
-# Target build dirs
-.noarch
-.host
-
-.arm32-newlib
-.a33xx-newlib
-.a9xx-newlib
-.h5-newlib
-.s9xx-newlib
-.rk33xx-newlib
-.m1000-newlib
-.riscv64-newlib
-.at91sam7s-newlib
-
-.a1x-glibc
-.a2x-glibc
-.a311x-glibc
-.h3-glibc
-.h5-glibc
-.imx6-glibc
-.imx6ull-glibc
-.jz47xx-glibc
-.p5600-glibc
-.m1000-glibc
-.omap543x-glibc
-.am335x-glibc
-.rk328x-glibc
-.s8xx-glibc
-.s9xx-glibc
-.a9xx-glibc
-.rk33xx-glibc
-.rk339x-glibc
-.a33xx-glibc
-.power8-glibc
-.power9-glibc
-.power8le-glibc
-.power9le-glibc
-.riscv64-glibc
-.i586-glibc
-.i686-glibc
-.x86_64-glibc
-
-# Hidden files (each file)
-.makefile
-.src_requires
-.src_requires_depend
-.dist
-
-# Destinations
-dist
-
-
-# Tarballs
-*.gz
-*.bz2
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Text files
-*.txt
-
-# Default linux config files
-*.defconfig
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: GNU/glibc/create-2.36-malloc-hooks-patch/file.list
===================================================================
--- GNU/glibc/create-2.36-malloc-hooks-patch/file.list (revision 10)
+++ GNU/glibc/create-2.36-malloc-hooks-patch/file.list (nonexistent)
@@ -1 +0,0 @@
-glibc-2.36/malloc/malloc-check.c
Index: GNU/glibc/create-2.36-malloc-hooks-patch/create.patch.sh
===================================================================
--- GNU/glibc/create-2.36-malloc-hooks-patch/create.patch.sh (revision 10)
+++ GNU/glibc/create-2.36-malloc-hooks-patch/create.patch.sh (nonexistent)
@@ -1,15 +0,0 @@
-#!/bin/bash
-
-VERSION=2.36
-
-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: GNU/glibc/create-2.36-malloc-hooks-patch/create.patch.sh
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: GNU/glibc/create-2.36-malloc-hooks-patch/glibc-2.36-new/malloc/malloc-check.c
===================================================================
--- GNU/glibc/create-2.36-malloc-hooks-patch/glibc-2.36-new/malloc/malloc-check.c (revision 10)
+++ GNU/glibc/create-2.36-malloc-hooks-patch/glibc-2.36-new/malloc/malloc-check.c (nonexistent)
@@ -1,403 +0,0 @@
-/* glibc.malloc.check implementation.
- Copyright (C) 2001-2022 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: GNU/glibc/create-2.36-malloc-hooks-patch/glibc-2.36-new/malloc
===================================================================
--- GNU/glibc/create-2.36-malloc-hooks-patch/glibc-2.36-new/malloc (revision 10)
+++ GNU/glibc/create-2.36-malloc-hooks-patch/glibc-2.36-new/malloc (nonexistent)
Property changes on: GNU/glibc/create-2.36-malloc-hooks-patch/glibc-2.36-new/malloc
___________________________________________________________________
Deleted: svn:ignore
## -1,80 +0,0 ##
-
-# Target build dirs
-.noarch
-.host
-
-.arm32-newlib
-.a33xx-newlib
-.a9xx-newlib
-.h5-newlib
-.s9xx-newlib
-.rk33xx-newlib
-.m1000-newlib
-.riscv64-newlib
-.at91sam7s-newlib
-
-.a1x-glibc
-.a2x-glibc
-.a311x-glibc
-.h3-glibc
-.h5-glibc
-.imx6-glibc
-.imx6ull-glibc
-.jz47xx-glibc
-.p5600-glibc
-.m1000-glibc
-.omap543x-glibc
-.am335x-glibc
-.rk328x-glibc
-.s8xx-glibc
-.s9xx-glibc
-.a9xx-glibc
-.rk33xx-glibc
-.rk339x-glibc
-.a33xx-glibc
-.power8-glibc
-.power9-glibc
-.power8le-glibc
-.power9le-glibc
-.riscv64-glibc
-.i586-glibc
-.i686-glibc
-.x86_64-glibc
-
-# Hidden files (each file)
-.makefile
-.src_requires
-.src_requires_depend
-.dist
-
-# Destinations
-dist
-
-
-# Tarballs
-*.gz
-*.bz2
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Text files
-*.txt
-
-# Default linux config files
-*.defconfig
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: GNU/glibc/create-2.36-malloc-hooks-patch/glibc-2.36-new
===================================================================
--- GNU/glibc/create-2.36-malloc-hooks-patch/glibc-2.36-new (revision 10)
+++ GNU/glibc/create-2.36-malloc-hooks-patch/glibc-2.36-new (nonexistent)
Property changes on: GNU/glibc/create-2.36-malloc-hooks-patch/glibc-2.36-new
___________________________________________________________________
Deleted: svn:ignore
## -1,80 +0,0 ##
-
-# Target build dirs
-.noarch
-.host
-
-.arm32-newlib
-.a33xx-newlib
-.a9xx-newlib
-.h5-newlib
-.s9xx-newlib
-.rk33xx-newlib
-.m1000-newlib
-.riscv64-newlib
-.at91sam7s-newlib
-
-.a1x-glibc
-.a2x-glibc
-.a311x-glibc
-.h3-glibc
-.h5-glibc
-.imx6-glibc
-.imx6ull-glibc
-.jz47xx-glibc
-.p5600-glibc
-.m1000-glibc
-.omap543x-glibc
-.am335x-glibc
-.rk328x-glibc
-.s8xx-glibc
-.s9xx-glibc
-.a9xx-glibc
-.rk33xx-glibc
-.rk339x-glibc
-.a33xx-glibc
-.power8-glibc
-.power9-glibc
-.power8le-glibc
-.power9le-glibc
-.riscv64-glibc
-.i586-glibc
-.i686-glibc
-.x86_64-glibc
-
-# Hidden files (each file)
-.makefile
-.src_requires
-.src_requires_depend
-.dist
-
-# Destinations
-dist
-
-
-# Tarballs
-*.gz
-*.bz2
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Text files
-*.txt
-
-# Default linux config files
-*.defconfig
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: GNU/glibc/create-2.36-malloc-hooks-patch
===================================================================
--- GNU/glibc/create-2.36-malloc-hooks-patch (revision 10)
+++ GNU/glibc/create-2.36-malloc-hooks-patch (nonexistent)
Property changes on: GNU/glibc/create-2.36-malloc-hooks-patch
___________________________________________________________________
Deleted: svn:ignore
## -1,80 +0,0 ##
-
-# Target build dirs
-.noarch
-.host
-
-.arm32-newlib
-.a33xx-newlib
-.a9xx-newlib
-.h5-newlib
-.s9xx-newlib
-.rk33xx-newlib
-.m1000-newlib
-.riscv64-newlib
-.at91sam7s-newlib
-
-.a1x-glibc
-.a2x-glibc
-.a311x-glibc
-.h3-glibc
-.h5-glibc
-.imx6-glibc
-.imx6ull-glibc
-.jz47xx-glibc
-.p5600-glibc
-.m1000-glibc
-.omap543x-glibc
-.am335x-glibc
-.rk328x-glibc
-.s8xx-glibc
-.s9xx-glibc
-.a9xx-glibc
-.rk33xx-glibc
-.rk339x-glibc
-.a33xx-glibc
-.power8-glibc
-.power9-glibc
-.power8le-glibc
-.power9le-glibc
-.riscv64-glibc
-.i586-glibc
-.i686-glibc
-.x86_64-glibc
-
-# Hidden files (each file)
-.makefile
-.src_requires
-.src_requires_depend
-.dist
-
-# Destinations
-dist
-
-
-# Tarballs
-*.gz
-*.bz2
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Text files
-*.txt
-
-# Default linux config files
-*.defconfig
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/file.list
===================================================================
--- GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/file.list (revision 10)
+++ GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/file.list (nonexistent)
@@ -1,27 +0,0 @@
-glibc-2.36/NEWS
-glibc-2.36/bits/socket.h
-glibc-2.36/dlfcn/dlopen.c
-glibc-2.36/elf/Makefile
-glibc-2.36/elf/dl-cache.c
-glibc-2.36/elf/dl-open.c
-glibc-2.36/elf/rtld.c
-glibc-2.36/misc/syslog.c
-glibc-2.36/misc/tst-syslog.c
-glibc-2.36/scripts/glibcextract.py
-glibc-2.36/socket/Makefile
-glibc-2.36/sysdeps/mach/hurd/bits/socket.h
-glibc-2.36/sysdeps/unix/sysv/linux/Makefile
-glibc-2.36/sysdeps/unix/sysv/linux/alpha/brk_call.h
-glibc-2.36/sysdeps/unix/sysv/linux/bits/socket.h
-glibc-2.36/sysdeps/unix/sysv/linux/cmsg_nxthdr.c
-glibc-2.36/sysdeps/unix/sysv/linux/riscv/rv32/arch-syscall.h
-glibc-2.36/sysdeps/unix/sysv/linux/riscv/rv64/arch-syscall.h
-glibc-2.36/sysdeps/unix/sysv/linux/sys/mount.h
-glibc-2.36/sysdeps/unix/sysv/linux/syscall-names.list
-glibc-2.36/sysdeps/unix/sysv/linux/tst-mount-consts.py
-glibc-2.36/sysdeps/unix/sysv/linux/tst-pidfd-consts.py
-glibc-2.36/sysdeps/unix/sysv/linux/tst-pidfd.c
-glibc-2.36/wcsmbs/Makefile
-glibc-2.36/wcsmbs/bits/wchar2.h
-glibc-2.36/wcsmbs/uchar.h
-glibc-2.36/wcsmbs/wchar.h
Index: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/create.patch.sh
===================================================================
--- GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/create.patch.sh (revision 10)
+++ GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/create.patch.sh (nonexistent)
@@ -1,15 +0,0 @@
-#!/bin/bash
-
-VERSION=2.36
-
-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-b3736d1a3c-2.36.1.patch
-
-mv glibc-$VERSION-b3736d1a3c-2.36.1.patch ../patches
-
-rm -rf ./glibc-$VERSION
-rm -rf ./glibc-$VERSION-orig
Property changes on: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/create.patch.sh
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/scripts/glibcextract.py
===================================================================
--- GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/scripts/glibcextract.py (revision 10)
+++ GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/scripts/glibcextract.py (nonexistent)
@@ -1,194 +0,0 @@
-#!/usr/bin/python3
-# Extract information from C headers.
-# Copyright (C) 2018-2022 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/>.
-
-import collections
-import os.path
-import re
-import subprocess
-import tempfile
-
-
-def compute_c_consts(sym_data, cc):
- """Compute the values of some C constants.
-
- The first argument is a list whose elements are either strings
- (preprocessor directives, or the special string 'START' to
- indicate this function should insert its initial boilerplate text
- in the output there) or pairs of strings (a name and a C
- expression for the corresponding value). Preprocessor directives
- in the middle of the list may be used to select which constants
- end up being evaluated using which expressions.
-
- """
- out_lines = []
- for arg in sym_data:
- if isinstance(arg, str):
- if arg == 'START':
- out_lines.append('void\ndummy (void)\n{')
- else:
- out_lines.append(arg)
- continue
- name = arg[0]
- value = arg[1]
- out_lines.append('asm ("/* @@@name@@@%s@@@value@@@%%0@@@end@@@ */" '
- ': : \"i\" ((long int) (%s)));'
- % (name, value))
- out_lines.append('}')
- out_lines.append('')
- out_text = '\n'.join(out_lines)
- with tempfile.TemporaryDirectory() as temp_dir:
- c_file_name = os.path.join(temp_dir, 'test.c')
- s_file_name = os.path.join(temp_dir, 'test.s')
- with open(c_file_name, 'w') as c_file:
- c_file.write(out_text)
- # Compilation has to be from stdin to avoid the temporary file
- # name being written into the generated dependencies.
- cmd = ('%s -S -o %s -x c - < %s' % (cc, s_file_name, c_file_name))
- subprocess.check_call(cmd, shell=True)
- consts = {}
- with open(s_file_name, 'r') as s_file:
- for line in s_file:
- match = re.search('@@@name@@@([^@]*)'
- '@@@value@@@[^0-9Xxa-fA-F-]*'
- '([0-9Xxa-fA-F-]+).*@@@end@@@', line)
- if match:
- if (match.group(1) in consts
- and match.group(2) != consts[match.group(1)]):
- raise ValueError('duplicate constant %s'
- % match.group(1))
- consts[match.group(1)] = match.group(2)
- return consts
-
-
-def list_macros(source_text, cc):
- """List the preprocessor macros defined by the given source code.
-
- The return value is a pair of dicts, the first one mapping macro
- names to their expansions and the second one mapping macro names
- to lists of their arguments, or to None for object-like macros.
-
- """
- with tempfile.TemporaryDirectory() as temp_dir:
- c_file_name = os.path.join(temp_dir, 'test.c')
- i_file_name = os.path.join(temp_dir, 'test.i')
- with open(c_file_name, 'w') as c_file:
- c_file.write(source_text)
- cmd = ('%s -E -dM -o %s %s' % (cc, i_file_name, c_file_name))
- subprocess.check_call(cmd, shell=True)
- macros_exp = {}
- macros_args = {}
- with open(i_file_name, 'r') as i_file:
- for line in i_file:
- match = re.fullmatch('#define ([0-9A-Za-z_]+)(.*)\n', line)
- if not match:
- raise ValueError('bad -dM output line: %s' % line)
- name = match.group(1)
- value = match.group(2)
- if value.startswith(' '):
- value = value[1:]
- args = None
- elif value.startswith('('):
- match = re.fullmatch(r'\((.*?)\) (.*)', value)
- if not match:
- raise ValueError('bad -dM output line: %s' % line)
- args = match.group(1).split(',')
- value = match.group(2)
- else:
- raise ValueError('bad -dM output line: %s' % line)
- if name in macros_exp:
- raise ValueError('duplicate macro: %s' % line)
- macros_exp[name] = value
- macros_args[name] = args
- return macros_exp, macros_args
-
-
-def compute_macro_consts(source_text, cc, macro_re, exclude_re=None):
- """Compute the integer constant values of macros defined by source_text.
-
- Macros must match the regular expression macro_re, and if
- exclude_re is defined they must not match exclude_re. Values are
- computed with compute_c_consts.
-
- """
- macros_exp, macros_args = list_macros(source_text, cc)
- macros_set = {m for m in macros_exp
- if (macros_args[m] is None
- and re.fullmatch(macro_re, m)
- and (exclude_re is None
- or not re.fullmatch(exclude_re, m)))}
- sym_data = [source_text, 'START']
- sym_data.extend(sorted((m, m) for m in macros_set))
- return compute_c_consts(sym_data, cc)
-
-
-def compare_macro_consts(source_1, source_2, cc, macro_re, exclude_re=None,
- allow_extra_1=False, allow_extra_2=False):
- """Compare the values of macros defined by two different sources.
-
- The sources would typically be includes of a glibc header and a
- kernel header. If allow_extra_1, the first source may define
- extra macros (typically if the kernel headers are older than the
- version glibc has taken definitions from); if allow_extra_2, the
- second source may define extra macros (typically if the kernel
- headers are newer than the version glibc has taken definitions
- from). Return 1 if there were any differences other than those
- allowed, 0 if the macro values were the same apart from any
- allowed differences.
-
- """
- macros_1 = compute_macro_consts(source_1, cc, macro_re, exclude_re)
- macros_2 = compute_macro_consts(source_2, cc, macro_re, exclude_re)
- if macros_1 == macros_2:
- return 0
- print('First source:\n%s\n' % source_1)
- print('Second source:\n%s\n' % source_2)
- ret = 0
- for name, value in sorted(macros_1.items()):
- if name not in macros_2:
- print('Only in first source: %s' % name)
- if not allow_extra_1:
- ret = 1
- elif macros_1[name] != macros_2[name]:
- print('Different values for %s: %s != %s'
- % (name, macros_1[name], macros_2[name]))
- ret = 1
- for name in sorted(macros_2.keys()):
- if name not in macros_1:
- print('Only in second source: %s' % name)
- if not allow_extra_2:
- ret = 1
- return ret
-
-CompileResult = collections.namedtuple("CompileResult", "returncode output")
-
-def compile_c_snippet(snippet, cc, extra_cc_args=''):
- """Compile and return whether the SNIPPET can be build with CC along
- EXTRA_CC_ARGS compiler flags. Return a CompileResult with RETURNCODE
- being 0 for success, or the failure value and the compiler output.
- """
- with tempfile.TemporaryDirectory() as temp_dir:
- c_file_name = os.path.join(temp_dir, 'test.c')
- obj_file_name = os.path.join(temp_dir, 'test.o')
- with open(c_file_name, 'w') as c_file:
- c_file.write(snippet + '\n')
- cmd = cc.split() + extra_cc_args.split() + ['-c', '-o', obj_file_name,
- c_file_name]
- r = subprocess.run(cmd, check=False, stdout=subprocess.PIPE,
- stderr=subprocess.STDOUT)
- return CompileResult(r.returncode, r.stdout)
Index: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/scripts
===================================================================
--- GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/scripts (revision 10)
+++ GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/scripts (nonexistent)
Property changes on: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/scripts
___________________________________________________________________
Deleted: svn:ignore
## -1,80 +0,0 ##
-
-# Target build dirs
-.noarch
-.host
-
-.arm32-newlib
-.a33xx-newlib
-.a9xx-newlib
-.h5-newlib
-.s9xx-newlib
-.rk33xx-newlib
-.m1000-newlib
-.riscv64-newlib
-.at91sam7s-newlib
-
-.a1x-glibc
-.a2x-glibc
-.a311x-glibc
-.h3-glibc
-.h5-glibc
-.imx6-glibc
-.imx6ull-glibc
-.jz47xx-glibc
-.p5600-glibc
-.m1000-glibc
-.omap543x-glibc
-.am335x-glibc
-.rk328x-glibc
-.s8xx-glibc
-.s9xx-glibc
-.a9xx-glibc
-.rk33xx-glibc
-.rk339x-glibc
-.a33xx-glibc
-.power8-glibc
-.power9-glibc
-.power8le-glibc
-.power9le-glibc
-.riscv64-glibc
-.i586-glibc
-.i686-glibc
-.x86_64-glibc
-
-# Hidden files (each file)
-.makefile
-.src_requires
-.src_requires_depend
-.dist
-
-# Destinations
-dist
-
-
-# Tarballs
-*.gz
-*.bz2
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Text files
-*.txt
-
-# Default linux config files
-*.defconfig
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/riscv/rv32/arch-syscall.h
===================================================================
--- GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/riscv/rv32/arch-syscall.h (revision 10)
+++ GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/riscv/rv32/arch-syscall.h (nonexistent)
@@ -1,297 +0,0 @@
-/* AUTOGENERATED by update-syscall-lists.py. */
-#define __NR_accept 202
-#define __NR_accept4 242
-#define __NR_acct 89
-#define __NR_add_key 217
-#define __NR_bind 200
-#define __NR_bpf 280
-#define __NR_brk 214
-#define __NR_capget 90
-#define __NR_capset 91
-#define __NR_chdir 49
-#define __NR_chroot 51
-#define __NR_clock_adjtime64 405
-#define __NR_clock_getres_time64 406
-#define __NR_clock_gettime64 403
-#define __NR_clock_nanosleep_time64 407
-#define __NR_clock_settime64 404
-#define __NR_clone 220
-#define __NR_clone3 435
-#define __NR_close 57
-#define __NR_close_range 436
-#define __NR_connect 203
-#define __NR_copy_file_range 285
-#define __NR_delete_module 106
-#define __NR_dup 23
-#define __NR_dup3 24
-#define __NR_epoll_create1 20
-#define __NR_epoll_ctl 21
-#define __NR_epoll_pwait 22
-#define __NR_epoll_pwait2 441
-#define __NR_eventfd2 19
-#define __NR_execve 221
-#define __NR_execveat 281
-#define __NR_exit 93
-#define __NR_exit_group 94
-#define __NR_faccessat 48
-#define __NR_faccessat2 439
-#define __NR_fadvise64_64 223
-#define __NR_fallocate 47
-#define __NR_fanotify_init 262
-#define __NR_fanotify_mark 263
-#define __NR_fchdir 50
-#define __NR_fchmod 52
-#define __NR_fchmodat 53
-#define __NR_fchown 55
-#define __NR_fchownat 54
-#define __NR_fcntl64 25
-#define __NR_fdatasync 83
-#define __NR_fgetxattr 10
-#define __NR_finit_module 273
-#define __NR_flistxattr 13
-#define __NR_flock 32
-#define __NR_fremovexattr 16
-#define __NR_fsconfig 431
-#define __NR_fsetxattr 7
-#define __NR_fsmount 432
-#define __NR_fsopen 430
-#define __NR_fspick 433
-#define __NR_fstatfs64 44
-#define __NR_fsync 82
-#define __NR_ftruncate64 46
-#define __NR_futex_time64 422
-#define __NR_futex_waitv 449
-#define __NR_get_mempolicy 236
-#define __NR_get_robust_list 100
-#define __NR_getcpu 168
-#define __NR_getcwd 17
-#define __NR_getdents64 61
-#define __NR_getegid 177
-#define __NR_geteuid 175
-#define __NR_getgid 176
-#define __NR_getgroups 158
-#define __NR_getitimer 102
-#define __NR_getpeername 205
-#define __NR_getpgid 155
-#define __NR_getpid 172
-#define __NR_getppid 173
-#define __NR_getpriority 141
-#define __NR_getrandom 278
-#define __NR_getresgid 150
-#define __NR_getresuid 148
-#define __NR_getrusage 165
-#define __NR_getsid 156
-#define __NR_getsockname 204
-#define __NR_getsockopt 209
-#define __NR_gettid 178
-#define __NR_getuid 174
-#define __NR_getxattr 8
-#define __NR_init_module 105
-#define __NR_inotify_add_watch 27
-#define __NR_inotify_init1 26
-#define __NR_inotify_rm_watch 28
-#define __NR_io_cancel 3
-#define __NR_io_destroy 1
-#define __NR_io_pgetevents_time64 416
-#define __NR_io_setup 0
-#define __NR_io_submit 2
-#define __NR_io_uring_enter 426
-#define __NR_io_uring_register 427
-#define __NR_io_uring_setup 425
-#define __NR_ioctl 29
-#define __NR_ioprio_get 31
-#define __NR_ioprio_set 30
-#define __NR_kcmp 272
-#define __NR_kexec_file_load 294
-#define __NR_kexec_load 104
-#define __NR_keyctl 219
-#define __NR_kill 129
-#define __NR_landlock_add_rule 445
-#define __NR_landlock_create_ruleset 444
-#define __NR_landlock_restrict_self 446
-#define __NR_lgetxattr 9
-#define __NR_linkat 37
-#define __NR_listen 201
-#define __NR_listxattr 11
-#define __NR_llistxattr 12
-#define __NR_llseek 62
-#define __NR_lookup_dcookie 18
-#define __NR_lremovexattr 15
-#define __NR_lsetxattr 6
-#define __NR_madvise 233
-#define __NR_mbind 235
-#define __NR_membarrier 283
-#define __NR_memfd_create 279
-#define __NR_memfd_secret 447
-#define __NR_migrate_pages 238
-#define __NR_mincore 232
-#define __NR_mkdirat 34
-#define __NR_mknodat 33
-#define __NR_mlock 228
-#define __NR_mlock2 284
-#define __NR_mlockall 230
-#define __NR_mmap2 222
-#define __NR_mount 40
-#define __NR_mount_setattr 442
-#define __NR_move_mount 429
-#define __NR_move_pages 239
-#define __NR_mprotect 226
-#define __NR_mq_getsetattr 185
-#define __NR_mq_notify 184
-#define __NR_mq_open 180
-#define __NR_mq_timedreceive_time64 419
-#define __NR_mq_timedsend_time64 418
-#define __NR_mq_unlink 181
-#define __NR_mremap 216
-#define __NR_msgctl 187
-#define __NR_msgget 186
-#define __NR_msgrcv 188
-#define __NR_msgsnd 189
-#define __NR_msync 227
-#define __NR_munlock 229
-#define __NR_munlockall 231
-#define __NR_munmap 215
-#define __NR_name_to_handle_at 264
-#define __NR_nfsservctl 42
-#define __NR_open_by_handle_at 265
-#define __NR_open_tree 428
-#define __NR_openat 56
-#define __NR_openat2 437
-#define __NR_perf_event_open 241
-#define __NR_personality 92
-#define __NR_pidfd_getfd 438
-#define __NR_pidfd_open 434
-#define __NR_pidfd_send_signal 424
-#define __NR_pipe2 59
-#define __NR_pivot_root 41
-#define __NR_pkey_alloc 289
-#define __NR_pkey_free 290
-#define __NR_pkey_mprotect 288
-#define __NR_ppoll_time64 414
-#define __NR_prctl 167
-#define __NR_pread64 67
-#define __NR_preadv 69
-#define __NR_preadv2 286
-#define __NR_prlimit64 261
-#define __NR_process_madvise 440
-#define __NR_process_mrelease 448
-#define __NR_process_vm_readv 270
-#define __NR_process_vm_writev 271
-#define __NR_pselect6_time64 413
-#define __NR_ptrace 117
-#define __NR_pwrite64 68
-#define __NR_pwritev 70
-#define __NR_pwritev2 287
-#define __NR_quotactl 60
-#define __NR_quotactl_fd 443
-#define __NR_read 63
-#define __NR_readahead 213
-#define __NR_readlinkat 78
-#define __NR_readv 65
-#define __NR_reboot 142
-#define __NR_recvfrom 207
-#define __NR_recvmmsg_time64 417
-#define __NR_recvmsg 212
-#define __NR_remap_file_pages 234
-#define __NR_removexattr 14
-#define __NR_renameat2 276
-#define __NR_request_key 218
-#define __NR_restart_syscall 128
-#define __NR_riscv_flush_icache 259
-#define __NR_rseq 293
-#define __NR_rt_sigaction 134
-#define __NR_rt_sigpending 136
-#define __NR_rt_sigprocmask 135
-#define __NR_rt_sigqueueinfo 138
-#define __NR_rt_sigreturn 139
-#define __NR_rt_sigsuspend 133
-#define __NR_rt_sigtimedwait_time64 421
-#define __NR_rt_tgsigqueueinfo 240
-#define __NR_sched_get_priority_max 125
-#define __NR_sched_get_priority_min 126
-#define __NR_sched_getaffinity 123
-#define __NR_sched_getattr 275
-#define __NR_sched_getparam 121
-#define __NR_sched_getscheduler 120
-#define __NR_sched_rr_get_interval_time64 423
-#define __NR_sched_setaffinity 122
-#define __NR_sched_setattr 274
-#define __NR_sched_setparam 118
-#define __NR_sched_setscheduler 119
-#define __NR_sched_yield 124
-#define __NR_seccomp 277
-#define __NR_semctl 191
-#define __NR_semget 190
-#define __NR_semop 193
-#define __NR_semtimedop_time64 420
-#define __NR_sendfile64 71
-#define __NR_sendmmsg 269
-#define __NR_sendmsg 211
-#define __NR_sendto 206
-#define __NR_set_mempolicy 237
-#define __NR_set_mempolicy_home_node 450
-#define __NR_set_robust_list 99
-#define __NR_set_tid_address 96
-#define __NR_setdomainname 162
-#define __NR_setfsgid 152
-#define __NR_setfsuid 151
-#define __NR_setgid 144
-#define __NR_setgroups 159
-#define __NR_sethostname 161
-#define __NR_setitimer 103
-#define __NR_setns 268
-#define __NR_setpgid 154
-#define __NR_setpriority 140
-#define __NR_setregid 143
-#define __NR_setresgid 149
-#define __NR_setresuid 147
-#define __NR_setreuid 145
-#define __NR_setsid 157
-#define __NR_setsockopt 208
-#define __NR_setuid 146
-#define __NR_setxattr 5
-#define __NR_shmat 196
-#define __NR_shmctl 195
-#define __NR_shmdt 197
-#define __NR_shmget 194
-#define __NR_shutdown 210
-#define __NR_sigaltstack 132
-#define __NR_signalfd4 74
-#define __NR_socket 198
-#define __NR_socketpair 199
-#define __NR_splice 76
-#define __NR_statfs64 43
-#define __NR_statx 291
-#define __NR_swapoff 225
-#define __NR_swapon 224
-#define __NR_symlinkat 36
-#define __NR_sync 81
-#define __NR_sync_file_range 84
-#define __NR_syncfs 267
-#define __NR_sysinfo 179
-#define __NR_syslog 116
-#define __NR_tee 77
-#define __NR_tgkill 131
-#define __NR_timer_create 107
-#define __NR_timer_delete 111
-#define __NR_timer_getoverrun 109
-#define __NR_timer_gettime64 408
-#define __NR_timer_settime64 409
-#define __NR_timerfd_create 85
-#define __NR_timerfd_gettime64 410
-#define __NR_timerfd_settime64 411
-#define __NR_times 153
-#define __NR_tkill 130
-#define __NR_truncate64 45
-#define __NR_umask 166
-#define __NR_umount2 39
-#define __NR_uname 160
-#define __NR_unlinkat 35
-#define __NR_unshare 97
-#define __NR_userfaultfd 282
-#define __NR_utimensat_time64 412
-#define __NR_vhangup 58
-#define __NR_vmsplice 75
-#define __NR_waitid 95
-#define __NR_write 64
-#define __NR_writev 66
Index: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/riscv/rv32
===================================================================
--- GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/riscv/rv32 (revision 10)
+++ GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/riscv/rv32 (nonexistent)
Property changes on: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/riscv/rv32
___________________________________________________________________
Deleted: svn:ignore
## -1,80 +0,0 ##
-
-# Target build dirs
-.noarch
-.host
-
-.arm32-newlib
-.a33xx-newlib
-.a9xx-newlib
-.h5-newlib
-.s9xx-newlib
-.rk33xx-newlib
-.m1000-newlib
-.riscv64-newlib
-.at91sam7s-newlib
-
-.a1x-glibc
-.a2x-glibc
-.a311x-glibc
-.h3-glibc
-.h5-glibc
-.imx6-glibc
-.imx6ull-glibc
-.jz47xx-glibc
-.p5600-glibc
-.m1000-glibc
-.omap543x-glibc
-.am335x-glibc
-.rk328x-glibc
-.s8xx-glibc
-.s9xx-glibc
-.a9xx-glibc
-.rk33xx-glibc
-.rk339x-glibc
-.a33xx-glibc
-.power8-glibc
-.power9-glibc
-.power8le-glibc
-.power9le-glibc
-.riscv64-glibc
-.i586-glibc
-.i686-glibc
-.x86_64-glibc
-
-# Hidden files (each file)
-.makefile
-.src_requires
-.src_requires_depend
-.dist
-
-# Destinations
-dist
-
-
-# Tarballs
-*.gz
-*.bz2
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Text files
-*.txt
-
-# Default linux config files
-*.defconfig
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/riscv/rv64/arch-syscall.h
===================================================================
--- GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/riscv/rv64/arch-syscall.h (revision 10)
+++ GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/riscv/rv64/arch-syscall.h (nonexistent)
@@ -1,307 +0,0 @@
-/* AUTOGENERATED by update-syscall-lists.py. */
-#define __NR_accept 202
-#define __NR_accept4 242
-#define __NR_acct 89
-#define __NR_add_key 217
-#define __NR_adjtimex 171
-#define __NR_bind 200
-#define __NR_bpf 280
-#define __NR_brk 214
-#define __NR_capget 90
-#define __NR_capset 91
-#define __NR_chdir 49
-#define __NR_chroot 51
-#define __NR_clock_adjtime 266
-#define __NR_clock_getres 114
-#define __NR_clock_gettime 113
-#define __NR_clock_nanosleep 115
-#define __NR_clock_settime 112
-#define __NR_clone 220
-#define __NR_clone3 435
-#define __NR_close 57
-#define __NR_close_range 436
-#define __NR_connect 203
-#define __NR_copy_file_range 285
-#define __NR_delete_module 106
-#define __NR_dup 23
-#define __NR_dup3 24
-#define __NR_epoll_create1 20
-#define __NR_epoll_ctl 21
-#define __NR_epoll_pwait 22
-#define __NR_epoll_pwait2 441
-#define __NR_eventfd2 19
-#define __NR_execve 221
-#define __NR_execveat 281
-#define __NR_exit 93
-#define __NR_exit_group 94
-#define __NR_faccessat 48
-#define __NR_faccessat2 439
-#define __NR_fadvise64 223
-#define __NR_fallocate 47
-#define __NR_fanotify_init 262
-#define __NR_fanotify_mark 263
-#define __NR_fchdir 50
-#define __NR_fchmod 52
-#define __NR_fchmodat 53
-#define __NR_fchown 55
-#define __NR_fchownat 54
-#define __NR_fcntl 25
-#define __NR_fdatasync 83
-#define __NR_fgetxattr 10
-#define __NR_finit_module 273
-#define __NR_flistxattr 13
-#define __NR_flock 32
-#define __NR_fremovexattr 16
-#define __NR_fsconfig 431
-#define __NR_fsetxattr 7
-#define __NR_fsmount 432
-#define __NR_fsopen 430
-#define __NR_fspick 433
-#define __NR_fstat 80
-#define __NR_fstatfs 44
-#define __NR_fsync 82
-#define __NR_ftruncate 46
-#define __NR_futex 98
-#define __NR_futex_waitv 449
-#define __NR_get_mempolicy 236
-#define __NR_get_robust_list 100
-#define __NR_getcpu 168
-#define __NR_getcwd 17
-#define __NR_getdents64 61
-#define __NR_getegid 177
-#define __NR_geteuid 175
-#define __NR_getgid 176
-#define __NR_getgroups 158
-#define __NR_getitimer 102
-#define __NR_getpeername 205
-#define __NR_getpgid 155
-#define __NR_getpid 172
-#define __NR_getppid 173
-#define __NR_getpriority 141
-#define __NR_getrandom 278
-#define __NR_getresgid 150
-#define __NR_getresuid 148
-#define __NR_getrlimit 163
-#define __NR_getrusage 165
-#define __NR_getsid 156
-#define __NR_getsockname 204
-#define __NR_getsockopt 209
-#define __NR_gettid 178
-#define __NR_gettimeofday 169
-#define __NR_getuid 174
-#define __NR_getxattr 8
-#define __NR_init_module 105
-#define __NR_inotify_add_watch 27
-#define __NR_inotify_init1 26
-#define __NR_inotify_rm_watch 28
-#define __NR_io_cancel 3
-#define __NR_io_destroy 1
-#define __NR_io_getevents 4
-#define __NR_io_pgetevents 292
-#define __NR_io_setup 0
-#define __NR_io_submit 2
-#define __NR_io_uring_enter 426
-#define __NR_io_uring_register 427
-#define __NR_io_uring_setup 425
-#define __NR_ioctl 29
-#define __NR_ioprio_get 31
-#define __NR_ioprio_set 30
-#define __NR_kcmp 272
-#define __NR_kexec_file_load 294
-#define __NR_kexec_load 104
-#define __NR_keyctl 219
-#define __NR_kill 129
-#define __NR_landlock_add_rule 445
-#define __NR_landlock_create_ruleset 444
-#define __NR_landlock_restrict_self 446
-#define __NR_lgetxattr 9
-#define __NR_linkat 37
-#define __NR_listen 201
-#define __NR_listxattr 11
-#define __NR_llistxattr 12
-#define __NR_lookup_dcookie 18
-#define __NR_lremovexattr 15
-#define __NR_lseek 62
-#define __NR_lsetxattr 6
-#define __NR_madvise 233
-#define __NR_mbind 235
-#define __NR_membarrier 283
-#define __NR_memfd_create 279
-#define __NR_memfd_secret 447
-#define __NR_migrate_pages 238
-#define __NR_mincore 232
-#define __NR_mkdirat 34
-#define __NR_mknodat 33
-#define __NR_mlock 228
-#define __NR_mlock2 284
-#define __NR_mlockall 230
-#define __NR_mmap 222
-#define __NR_mount 40
-#define __NR_mount_setattr 442
-#define __NR_move_mount 429
-#define __NR_move_pages 239
-#define __NR_mprotect 226
-#define __NR_mq_getsetattr 185
-#define __NR_mq_notify 184
-#define __NR_mq_open 180
-#define __NR_mq_timedreceive 183
-#define __NR_mq_timedsend 182
-#define __NR_mq_unlink 181
-#define __NR_mremap 216
-#define __NR_msgctl 187
-#define __NR_msgget 186
-#define __NR_msgrcv 188
-#define __NR_msgsnd 189
-#define __NR_msync 227
-#define __NR_munlock 229
-#define __NR_munlockall 231
-#define __NR_munmap 215
-#define __NR_name_to_handle_at 264
-#define __NR_nanosleep 101
-#define __NR_newfstatat 79
-#define __NR_nfsservctl 42
-#define __NR_open_by_handle_at 265
-#define __NR_open_tree 428
-#define __NR_openat 56
-#define __NR_openat2 437
-#define __NR_perf_event_open 241
-#define __NR_personality 92
-#define __NR_pidfd_getfd 438
-#define __NR_pidfd_open 434
-#define __NR_pidfd_send_signal 424
-#define __NR_pipe2 59
-#define __NR_pivot_root 41
-#define __NR_pkey_alloc 289
-#define __NR_pkey_free 290
-#define __NR_pkey_mprotect 288
-#define __NR_ppoll 73
-#define __NR_prctl 167
-#define __NR_pread64 67
-#define __NR_preadv 69
-#define __NR_preadv2 286
-#define __NR_prlimit64 261
-#define __NR_process_madvise 440
-#define __NR_process_mrelease 448
-#define __NR_process_vm_readv 270
-#define __NR_process_vm_writev 271
-#define __NR_pselect6 72
-#define __NR_ptrace 117
-#define __NR_pwrite64 68
-#define __NR_pwritev 70
-#define __NR_pwritev2 287
-#define __NR_quotactl 60
-#define __NR_quotactl_fd 443
-#define __NR_read 63
-#define __NR_readahead 213
-#define __NR_readlinkat 78
-#define __NR_readv 65
-#define __NR_reboot 142
-#define __NR_recvfrom 207
-#define __NR_recvmmsg 243
-#define __NR_recvmsg 212
-#define __NR_remap_file_pages 234
-#define __NR_removexattr 14
-#define __NR_renameat2 276
-#define __NR_request_key 218
-#define __NR_restart_syscall 128
-#define __NR_riscv_flush_icache 259
-#define __NR_rseq 293
-#define __NR_rt_sigaction 134
-#define __NR_rt_sigpending 136
-#define __NR_rt_sigprocmask 135
-#define __NR_rt_sigqueueinfo 138
-#define __NR_rt_sigreturn 139
-#define __NR_rt_sigsuspend 133
-#define __NR_rt_sigtimedwait 137
-#define __NR_rt_tgsigqueueinfo 240
-#define __NR_sched_get_priority_max 125
-#define __NR_sched_get_priority_min 126
-#define __NR_sched_getaffinity 123
-#define __NR_sched_getattr 275
-#define __NR_sched_getparam 121
-#define __NR_sched_getscheduler 120
-#define __NR_sched_rr_get_interval 127
-#define __NR_sched_setaffinity 122
-#define __NR_sched_setattr 274
-#define __NR_sched_setparam 118
-#define __NR_sched_setscheduler 119
-#define __NR_sched_yield 124
-#define __NR_seccomp 277
-#define __NR_semctl 191
-#define __NR_semget 190
-#define __NR_semop 193
-#define __NR_semtimedop 192
-#define __NR_sendfile 71
-#define __NR_sendmmsg 269
-#define __NR_sendmsg 211
-#define __NR_sendto 206
-#define __NR_set_mempolicy 237
-#define __NR_set_mempolicy_home_node 450
-#define __NR_set_robust_list 99
-#define __NR_set_tid_address 96
-#define __NR_setdomainname 162
-#define __NR_setfsgid 152
-#define __NR_setfsuid 151
-#define __NR_setgid 144
-#define __NR_setgroups 159
-#define __NR_sethostname 161
-#define __NR_setitimer 103
-#define __NR_setns 268
-#define __NR_setpgid 154
-#define __NR_setpriority 140
-#define __NR_setregid 143
-#define __NR_setresgid 149
-#define __NR_setresuid 147
-#define __NR_setreuid 145
-#define __NR_setrlimit 164
-#define __NR_setsid 157
-#define __NR_setsockopt 208
-#define __NR_settimeofday 170
-#define __NR_setuid 146
-#define __NR_setxattr 5
-#define __NR_shmat 196
-#define __NR_shmctl 195
-#define __NR_shmdt 197
-#define __NR_shmget 194
-#define __NR_shutdown 210
-#define __NR_sigaltstack 132
-#define __NR_signalfd4 74
-#define __NR_socket 198
-#define __NR_socketpair 199
-#define __NR_splice 76
-#define __NR_statfs 43
-#define __NR_statx 291
-#define __NR_swapoff 225
-#define __NR_swapon 224
-#define __NR_symlinkat 36
-#define __NR_sync 81
-#define __NR_sync_file_range 84
-#define __NR_syncfs 267
-#define __NR_sysinfo 179
-#define __NR_syslog 116
-#define __NR_tee 77
-#define __NR_tgkill 131
-#define __NR_timer_create 107
-#define __NR_timer_delete 111
-#define __NR_timer_getoverrun 109
-#define __NR_timer_gettime 108
-#define __NR_timer_settime 110
-#define __NR_timerfd_create 85
-#define __NR_timerfd_gettime 87
-#define __NR_timerfd_settime 86
-#define __NR_times 153
-#define __NR_tkill 130
-#define __NR_truncate 45
-#define __NR_umask 166
-#define __NR_umount2 39
-#define __NR_uname 160
-#define __NR_unlinkat 35
-#define __NR_unshare 97
-#define __NR_userfaultfd 282
-#define __NR_utimensat 88
-#define __NR_vhangup 58
-#define __NR_vmsplice 75
-#define __NR_wait4 260
-#define __NR_waitid 95
-#define __NR_write 64
-#define __NR_writev 66
Index: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/riscv/rv64
===================================================================
--- GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/riscv/rv64 (revision 10)
+++ GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/riscv/rv64 (nonexistent)
Property changes on: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/riscv/rv64
___________________________________________________________________
Deleted: svn:ignore
## -1,80 +0,0 ##
-
-# Target build dirs
-.noarch
-.host
-
-.arm32-newlib
-.a33xx-newlib
-.a9xx-newlib
-.h5-newlib
-.s9xx-newlib
-.rk33xx-newlib
-.m1000-newlib
-.riscv64-newlib
-.at91sam7s-newlib
-
-.a1x-glibc
-.a2x-glibc
-.a311x-glibc
-.h3-glibc
-.h5-glibc
-.imx6-glibc
-.imx6ull-glibc
-.jz47xx-glibc
-.p5600-glibc
-.m1000-glibc
-.omap543x-glibc
-.am335x-glibc
-.rk328x-glibc
-.s8xx-glibc
-.s9xx-glibc
-.a9xx-glibc
-.rk33xx-glibc
-.rk339x-glibc
-.a33xx-glibc
-.power8-glibc
-.power9-glibc
-.power8le-glibc
-.power9le-glibc
-.riscv64-glibc
-.i586-glibc
-.i686-glibc
-.x86_64-glibc
-
-# Hidden files (each file)
-.makefile
-.src_requires
-.src_requires_depend
-.dist
-
-# Destinations
-dist
-
-
-# Tarballs
-*.gz
-*.bz2
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Text files
-*.txt
-
-# Default linux config files
-*.defconfig
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/riscv
===================================================================
--- GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/riscv (revision 10)
+++ GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/riscv (nonexistent)
Property changes on: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/riscv
___________________________________________________________________
Deleted: svn:ignore
## -1,80 +0,0 ##
-
-# Target build dirs
-.noarch
-.host
-
-.arm32-newlib
-.a33xx-newlib
-.a9xx-newlib
-.h5-newlib
-.s9xx-newlib
-.rk33xx-newlib
-.m1000-newlib
-.riscv64-newlib
-.at91sam7s-newlib
-
-.a1x-glibc
-.a2x-glibc
-.a311x-glibc
-.h3-glibc
-.h5-glibc
-.imx6-glibc
-.imx6ull-glibc
-.jz47xx-glibc
-.p5600-glibc
-.m1000-glibc
-.omap543x-glibc
-.am335x-glibc
-.rk328x-glibc
-.s8xx-glibc
-.s9xx-glibc
-.a9xx-glibc
-.rk33xx-glibc
-.rk339x-glibc
-.a33xx-glibc
-.power8-glibc
-.power9-glibc
-.power8le-glibc
-.power9le-glibc
-.riscv64-glibc
-.i586-glibc
-.i686-glibc
-.x86_64-glibc
-
-# Hidden files (each file)
-.makefile
-.src_requires
-.src_requires_depend
-.dist
-
-# Destinations
-dist
-
-
-# Tarballs
-*.gz
-*.bz2
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Text files
-*.txt
-
-# Default linux config files
-*.defconfig
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/tst-pidfd-consts.py
===================================================================
--- GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/tst-pidfd-consts.py (revision 10)
+++ GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/tst-pidfd-consts.py (nonexistent)
@@ -1,54 +0,0 @@
-#!/usr/bin/python3
-# Test that glibc's sys/pidfd.h constants match the kernel's.
-# Copyright (C) 2022 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/>.
-
-import argparse
-import sys
-
-import glibcextract
-import glibcsyscalls
-
-
-def main():
- """The main entry point."""
- parser = argparse.ArgumentParser(
- description="Test that glibc's sys/pidfd.h constants "
- "match the kernel's.")
- parser.add_argument('--cc', metavar='CC',
- help='C compiler (including options) to use')
- args = parser.parse_args()
-
- if glibcextract.compile_c_snippet(
- '#include <linux/pidfd.h>',
- args.cc).returncode != 0:
- sys.exit (77)
-
- linux_version_headers = glibcsyscalls.linux_kernel_version(args.cc)
- linux_version_glibc = (5, 19)
- sys.exit(glibcextract.compare_macro_consts(
- '#include <sys/pidfd.h>\n',
- '#include <asm/fcntl.h>\n'
- '#include <linux/pidfd.h>\n',
- args.cc,
- 'PIDFD_.*',
- None,
- linux_version_glibc > linux_version_headers,
- linux_version_headers > linux_version_glibc))
-
-if __name__ == '__main__':
- main()
Index: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/tst-pidfd.c
===================================================================
--- GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/tst-pidfd.c (revision 10)
+++ GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/tst-pidfd.c (nonexistent)
@@ -1,182 +0,0 @@
-/* Basic tests for Linux pidfd interfaces.
- Copyright (C) 2022 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 <errno.h>
-#include <fcntl.h>
-#include <support/capture_subprocess.h>
-#include <support/check.h>
-#include <support/process_state.h>
-#include <support/support.h>
-#include <support/xsignal.h>
-#include <support/xunistd.h>
-#include <support/xsocket.h>
-#include <sys/pidfd.h>
-#include <sys/wait.h>
-
-#define REMOTE_PATH "/dev/null"
-
-/* The pair of sockets used for coordination. The subprocess uses
- sockets[1]. */
-static int sockets[2];
-
-static pid_t ppid;
-static uid_t puid;
-
-static void
-sighandler (int sig)
-{
-}
-
-static void
-subprocess (void)
-{
- xsignal (SIGUSR1, sighandler);
- xsignal (SIGUSR2, sighandler);
-
- /* Check first pidfd_send_signal with default NULL siginfo_t argument. */
- {
- sigset_t set;
- sigemptyset (&set);
- sigaddset (&set, SIGUSR1);
- siginfo_t info;
- TEST_COMPARE (sigtimedwait (&set, &info, NULL), SIGUSR1);
- TEST_COMPARE (info.si_signo, SIGUSR1);
- TEST_COMPARE (info.si_errno, 0);
- TEST_COMPARE (info.si_code, SI_USER);
- TEST_COMPARE (info.si_pid, ppid);
- TEST_COMPARE (info.si_uid, puid);
- }
-
- /* Check second pidfd_send_signal with crafted siginfo_t argument. */
- {
- sigset_t set;
- sigemptyset (&set);
- sigaddset (&set, SIGUSR2);
- siginfo_t info;
- TEST_COMPARE (sigtimedwait (&set, &info, NULL), SIGUSR2);
- TEST_COMPARE (info.si_signo, SIGUSR2);
- TEST_COMPARE (info.si_errno, EAGAIN);
- TEST_COMPARE (info.si_code, -10);
- TEST_COMPARE (info.si_pid, ppid);
- TEST_COMPARE (info.si_uid, puid);
- }
-
- /* Send a local file descriptor value to check pidfd_getfd. */
- int remote_fd = xopen (REMOTE_PATH, O_WRONLY | O_CLOEXEC, 0);
- xsendto (sockets[1], &remote_fd, sizeof (remote_fd), 0, NULL, 0);
-
- /* Wait for final pidfd_send_signal. */
- pause ();
-
- _exit (0);
-}
-
-static int
-do_test (void)
-{
- {
- /* The pidfd_getfd syscall was the last in the set of pidfd related
- syscalls added to the kernel. Use pidfd_getfd to decide if this
- kernel has pidfd support that we can test. */
- int r = pidfd_getfd (0, 0, 1);
- TEST_VERIFY_EXIT (r == -1);
- if (errno == ENOSYS)
- FAIL_UNSUPPORTED ("kernel does not support pidfd_getfd, skipping test");
- }
-
- ppid = getpid ();
- puid = getuid ();
-
- TEST_COMPARE (socketpair (AF_UNIX, SOCK_STREAM, 0, sockets), 0);
-
- pid_t pid = xfork ();
- if (pid == 0)
- {
- xclose (sockets[0]);
- subprocess ();
- }
- xclose (sockets[1]);
-
- TEST_COMPARE (pidfd_open (-1, 0), -1);
- TEST_COMPARE (errno, EINVAL);
-
- int pidfd = pidfd_open (pid, 0);
- TEST_VERIFY (pidfd != -1);
-
- /* Wait for first sigtimedwait. */
- support_process_state_wait (pid, support_process_state_sleeping);
- TEST_COMPARE (pidfd_send_signal (pidfd, SIGUSR1, NULL, 0), 0);
-
- /* Wait for second sigtimedwait. */
- support_process_state_wait (pid, support_process_state_sleeping);
- {
- siginfo_t info =
- {
- .si_signo = SIGUSR2,
- .si_errno = EAGAIN,
- .si_code = -10,
- .si_pid = ppid,
- .si_uid = puid
- };
- TEST_COMPARE (pidfd_send_signal (pidfd, SIGUSR2, &info, 0), 0);
- }
-
- /* Get remote file descriptor to check for pidfd_getfd. */
- {
- int remote_fd;
- xrecvfrom (sockets[0], &remote_fd, sizeof (remote_fd), 0, NULL, 0);
-
- int fd = pidfd_getfd (pidfd, remote_fd, 0);
- /* pidfd_getfd may fail with EPERM if the process does not have
- PTRACE_MODE_ATTACH_REALCREDS permissions. This means the call
- may be denied if the process doesn't have CAP_SYS_PTRACE or
- if a LSM security_ptrace_access_check denies access. */
- if (fd == -1 && errno == EPERM)
- {
- TEST_COMPARE (pidfd_send_signal (pidfd, SIGKILL, NULL, 0), 0);
- FAIL_UNSUPPORTED ("don't have permission to use pidfd_getfd on pidfd, "
- "skipping test");
- }
- TEST_VERIFY (fd > 0);
-
- char *path = xasprintf ("/proc/%d/fd/%d", pid, remote_fd);
- char *resolved = xreadlink (path);
- TEST_COMPARE_STRING (resolved, REMOTE_PATH);
-
- int remote_fd_mode = fcntl (fd, F_GETFL);
- TEST_VERIFY (remote_fd_mode != -1);
- TEST_VERIFY (remote_fd_mode & O_WRONLY);
-
- int remote_fd_flags = fcntl (fd, F_GETFD);
- TEST_VERIFY (remote_fd_flags != -1);
- TEST_VERIFY (remote_fd_flags & FD_CLOEXEC);
- }
-
- TEST_COMPARE (pidfd_send_signal (pidfd, SIGKILL, NULL, 0), 0);
- {
- siginfo_t info;
- int r = waitid (P_PIDFD, pidfd, &info, WEXITED);
- TEST_COMPARE (r, 0);
- TEST_COMPARE (info.si_status, SIGKILL);
- TEST_COMPARE (info.si_code, CLD_KILLED);
- }
-
- return 0;
-}
-
-#include <support/test-driver.c>
Index: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/syscall-names.list
===================================================================
--- GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/syscall-names.list (revision 10)
+++ GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/syscall-names.list (nonexistent)
@@ -1,663 +0,0 @@
-# List of all known Linux system calls.
-# Copyright (C) 2017-2022 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 contains the list of system call names. It has to remain in
-# alphabetical order. Lines which start with # are treated as comments.
-# This file can list all potential system calls. The names are only
-# used if the installed kernel headers also provide them.
-
-# The list of system calls is current as of Linux 5.19.
-kernel 5.19
-
-FAST_atomic_update
-FAST_cmpxchg
-FAST_cmpxchg64
-_llseek
-_newselect
-_sysctl
-accept
-accept4
-access
-acct
-acl_get
-acl_set
-add_key
-adjtimex
-afs_syscall
-alarm
-alloc_hugepages
-arc_gettls
-arc_settls
-arc_usr_cmpxchg
-arch_prctl
-arm_fadvise64_64
-arm_sync_file_range
-atomic_barrier
-atomic_cmpxchg_32
-attrctl
-bdflush
-bind
-bpf
-break
-breakpoint
-brk
-cachectl
-cacheflush
-capget
-capset
-chdir
-chmod
-chown
-chown32
-chroot
-clock_adjtime
-clock_adjtime64
-clock_getres
-clock_getres_time64
-clock_gettime
-clock_gettime64
-clock_nanosleep
-clock_nanosleep_time64
-clock_settime
-clock_settime64
-clone
-clone2
-clone3
-close
-close_range
-cmpxchg_badaddr
-connect
-copy_file_range
-creat
-create_module
-delete_module
-dipc
-dup
-dup2
-dup3
-epoll_create
-epoll_create1
-epoll_ctl
-epoll_ctl_old
-epoll_pwait
-epoll_pwait2
-epoll_wait
-epoll_wait_old
-eventfd
-eventfd2
-exec_with_loader
-execv
-execve
-execveat
-exit
-exit_group
-faccessat
-faccessat2
-fadvise64
-fadvise64_64
-fallocate
-fanotify_init
-fanotify_mark
-fchdir
-fchmod
-fchmodat
-fchown
-fchown32
-fchownat
-fcntl
-fcntl64
-fdatasync
-fgetxattr
-finit_module
-flistxattr
-flock
-fork
-fp_udfiex_crtl
-free_hugepages
-fremovexattr
-fsconfig
-fsetxattr
-fsmount
-fsopen
-fspick
-fstat
-fstat64
-fstatat64
-fstatfs
-fstatfs64
-fsync
-ftime
-ftruncate
-ftruncate64
-futex
-futex_time64
-futex_waitv
-futimesat
-get_kernel_syms
-get_mempolicy
-get_robust_list
-get_thread_area
-get_tls
-getcpu
-getcwd
-getdents
-getdents64
-getdomainname
-getdtablesize
-getegid
-getegid32
-geteuid
-geteuid32
-getgid
-getgid32
-getgroups
-getgroups32
-gethostname
-getitimer
-getpagesize
-getpeername
-getpgid
-getpgrp
-getpid
-getpmsg
-getppid
-getpriority
-getrandom
-getresgid
-getresgid32
-getresuid
-getresuid32
-getrlimit
-getrusage
-getsid
-getsockname
-getsockopt
-gettid
-gettimeofday
-getuid
-getuid32
-getunwind
-getxattr
-getxgid
-getxpid
-getxuid
-gtty
-idle
-init_module
-inotify_add_watch
-inotify_init
-inotify_init1
-inotify_rm_watch
-io_cancel
-io_destroy
-io_getevents
-io_pgetevents
-io_pgetevents_time64
-io_setup
-io_submit
-io_uring_enter
-io_uring_register
-io_uring_setup
-ioctl
-ioperm
-iopl
-ioprio_get
-ioprio_set
-ipc
-kcmp
-kern_features
-kexec_file_load
-kexec_load
-keyctl
-kill
-landlock_add_rule
-landlock_create_ruleset
-landlock_restrict_self
-lchown
-lchown32
-lgetxattr
-link
-linkat
-listen
-listxattr
-llistxattr
-llseek
-lock
-lookup_dcookie
-lremovexattr
-lseek
-lsetxattr
-lstat
-lstat64
-madvise
-mbind
-membarrier
-memfd_create
-memfd_secret
-memory_ordering
-migrate_pages
-mincore
-mkdir
-mkdirat
-mknod
-mknodat
-mlock
-mlock2
-mlockall
-mmap
-mmap2
-modify_ldt
-mount
-mount_setattr
-move_mount
-move_pages
-mprotect
-mpx
-mq_getsetattr
-mq_notify
-mq_open
-mq_timedreceive
-mq_timedreceive_time64
-mq_timedsend
-mq_timedsend_time64
-mq_unlink
-mremap
-msgctl
-msgget
-msgrcv
-msgsnd
-msync
-multiplexer
-munlock
-munlockall
-munmap
-name_to_handle_at
-nanosleep
-newfstatat
-nfsservctl
-ni_syscall
-nice
-old_adjtimex
-old_getpagesize
-oldfstat
-oldlstat
-oldolduname
-oldstat
-oldumount
-olduname
-open
-open_by_handle_at
-open_tree
-openat
-openat2
-or1k_atomic
-osf_adjtime
-osf_afs_syscall
-osf_alt_plock
-osf_alt_setsid
-osf_alt_sigpending
-osf_asynch_daemon
-osf_audcntl
-osf_audgen
-osf_chflags
-osf_execve
-osf_exportfs
-osf_fchflags
-osf_fdatasync
-osf_fpathconf
-osf_fstat
-osf_fstatfs
-osf_fstatfs64
-osf_fuser
-osf_getaddressconf
-osf_getdirentries
-osf_getdomainname
-osf_getfh
-osf_getfsstat
-osf_gethostid
-osf_getitimer
-osf_getlogin
-osf_getmnt
-osf_getrusage
-osf_getsysinfo
-osf_gettimeofday
-osf_kloadcall
-osf_kmodcall
-osf_lstat
-osf_memcntl
-osf_mincore
-osf_mount
-osf_mremap
-osf_msfs_syscall
-osf_msleep
-osf_mvalid
-osf_mwakeup
-osf_naccept
-osf_nfssvc
-osf_ngetpeername
-osf_ngetsockname
-osf_nrecvfrom
-osf_nrecvmsg
-osf_nsendmsg
-osf_ntp_adjtime
-osf_ntp_gettime
-osf_old_creat
-osf_old_fstat
-osf_old_getpgrp
-osf_old_killpg
-osf_old_lstat
-osf_old_open
-osf_old_sigaction
-osf_old_sigblock
-osf_old_sigreturn
-osf_old_sigsetmask
-osf_old_sigvec
-osf_old_stat
-osf_old_vadvise
-osf_old_vtrace
-osf_old_wait
-osf_oldquota
-osf_pathconf
-osf_pid_block
-osf_pid_unblock
-osf_plock
-osf_priocntlset
-osf_profil
-osf_proplist_syscall
-osf_reboot
-osf_revoke
-osf_sbrk
-osf_security
-osf_select
-osf_set_program_attributes
-osf_set_speculative
-osf_sethostid
-osf_setitimer
-osf_setlogin
-osf_setsysinfo
-osf_settimeofday
-osf_shmat
-osf_signal
-osf_sigprocmask
-osf_sigsendset
-osf_sigstack
-osf_sigwaitprim
-osf_sstk
-osf_stat
-osf_statfs
-osf_statfs64
-osf_subsys_info
-osf_swapctl
-osf_swapon
-osf_syscall
-osf_sysinfo
-osf_table
-osf_uadmin
-osf_usleep_thread
-osf_uswitch
-osf_utc_adjtime
-osf_utc_gettime
-osf_utimes
-osf_utsname
-osf_wait4
-osf_waitid
-pause
-pciconfig_iobase
-pciconfig_read
-pciconfig_write
-perf_event_open
-perfctr
-perfmonctl
-personality
-pidfd_getfd
-pidfd_open
-pidfd_send_signal
-pipe
-pipe2
-pivot_root
-pkey_alloc
-pkey_free
-pkey_mprotect
-poll
-ppoll
-ppoll_time64
-prctl
-pread64
-preadv
-preadv2
-prlimit64
-process_madvise
-process_mrelease
-process_vm_readv
-process_vm_writev
-prof
-profil
-pselect6
-pselect6_time64
-ptrace
-putpmsg
-pwrite64
-pwritev
-pwritev2
-query_module
-quotactl
-quotactl_fd
-read
-readahead
-readdir
-readlink
-readlinkat
-readv
-reboot
-recv
-recvfrom
-recvmmsg
-recvmmsg_time64
-recvmsg
-remap_file_pages
-removexattr
-rename
-renameat
-renameat2
-request_key
-restart_syscall
-riscv_flush_icache
-rmdir
-rseq
-rt_sigaction
-rt_sigpending
-rt_sigprocmask
-rt_sigqueueinfo
-rt_sigreturn
-rt_sigsuspend
-rt_sigtimedwait
-rt_sigtimedwait_time64
-rt_tgsigqueueinfo
-rtas
-s390_guarded_storage
-s390_pci_mmio_read
-s390_pci_mmio_write
-s390_runtime_instr
-s390_sthyi
-sched_get_affinity
-sched_get_priority_max
-sched_get_priority_min
-sched_getaffinity
-sched_getattr
-sched_getparam
-sched_getscheduler
-sched_rr_get_interval
-sched_rr_get_interval_time64
-sched_set_affinity
-sched_setaffinity
-sched_setattr
-sched_setparam
-sched_setscheduler
-sched_yield
-seccomp
-security
-select
-semctl
-semget
-semop
-semtimedop
-semtimedop_time64
-send
-sendfile
-sendfile64
-sendmmsg
-sendmsg
-sendto
-set_mempolicy
-set_mempolicy_home_node
-set_robust_list
-set_thread_area
-set_tid_address
-set_tls
-setdomainname
-setfsgid
-setfsgid32
-setfsuid
-setfsuid32
-setgid
-setgid32
-setgroups
-setgroups32
-sethae
-sethostname
-setitimer
-setns
-setpgid
-setpgrp
-setpriority
-setregid
-setregid32
-setresgid
-setresgid32
-setresuid
-setresuid32
-setreuid
-setreuid32
-setrlimit
-setsid
-setsockopt
-settimeofday
-setuid
-setuid32
-setxattr
-sgetmask
-shmat
-shmctl
-shmdt
-shmget
-shutdown
-sigaction
-sigaltstack
-signal
-signalfd
-signalfd4
-sigpending
-sigprocmask
-sigreturn
-sigsuspend
-socket
-socketcall
-socketpair
-splice
-spu_create
-spu_run
-ssetmask
-stat
-stat64
-statfs
-statfs64
-statx
-stime
-stty
-subpage_prot
-swapcontext
-swapoff
-swapon
-switch_endian
-symlink
-symlinkat
-sync
-sync_file_range
-sync_file_range2
-syncfs
-sys_debug_setcontext
-sys_epoll_create
-sys_epoll_ctl
-sys_epoll_wait
-syscall
-sysfs
-sysinfo
-syslog
-sysmips
-tee
-tgkill
-time
-timer_create
-timer_delete
-timer_getoverrun
-timer_gettime
-timer_gettime64
-timer_settime
-timer_settime64
-timerfd
-timerfd_create
-timerfd_gettime
-timerfd_gettime64
-timerfd_settime
-timerfd_settime64
-times
-tkill
-truncate
-truncate64
-tuxcall
-udftrap
-ugetrlimit
-ulimit
-umask
-umount
-umount2
-uname
-unlink
-unlinkat
-unshare
-uselib
-userfaultfd
-usr26
-usr32
-ustat
-utime
-utimensat
-utimensat_time64
-utimes
-utrap_install
-vfork
-vhangup
-vm86
-vm86old
-vmsplice
-vserver
-wait4
-waitid
-waitpid
-write
-writev
Index: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/tst-mount-compile.py
===================================================================
--- GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/tst-mount-compile.py (revision 10)
+++ GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/tst-mount-compile.py (nonexistent)
@@ -1,66 +0,0 @@
-#!/usr/bin/python3
-# Check if glibc provided sys/mount.h can be used along related kernel
-# headers.
-# Copyright (C) 2022 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/>.
-
-import argparse
-import sys
-
-import glibcextract
-
-
-def main():
- """The main entry point."""
- parser = argparse.ArgumentParser(
- description='Check if glibc provided sys/mount.h can be '
- ' used along related kernel headers.')
- parser.add_argument('--cc', metavar='CC',
- help='C compiler (including options) to use')
- args = parser.parse_args()
-
- if glibcextract.compile_c_snippet(
- '#include <linux/mount.h>',
- args.cc).returncode != 0:
- sys.exit (77)
-
- def check(testname, snippet):
- # Add -Werror to catch macro redefinitions and _ISOMAC to avoid
- # internal glibc definitions.
- r = glibcextract.compile_c_snippet(snippet, args.cc,
- '-Werror -D_ISOMAC')
- if r.returncode != 0:
- print('error: test {}:\n{}'.format(testname, r.output.decode()))
- return r.returncode
-
- status = max(
- check("sys/mount.h + linux/mount.h",
- "#include <sys/mount.h>\n"
- "#include <linux/mount.h>"),
- check("sys/mount.h + linux/fs.h",
- "#include <sys/mount.h>\n"
- "#include <linux/fs.h>"),
- check("linux/mount.h + sys/mount.h",
- "#include <linux/mount.h>\n"
- "#include <sys/mount.h>"),
- check("linux/fs.h + sys/mount.h",
- "#include <linux/fs.h>\n"
- "#include <sys/mount.h>"))
- sys.exit(status)
-
-if __name__ == '__main__':
- main()
Index: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/tst-mount-consts.py
===================================================================
--- GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/tst-mount-consts.py (revision 10)
+++ GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/tst-mount-consts.py (nonexistent)
@@ -1,70 +0,0 @@
-#!/usr/bin/python3
-# Test that glibc's sys/mount.h constants match the kernel's.
-# Copyright (C) 2022 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/>.
-
-import argparse
-import sys
-
-import glibcextract
-import glibcsyscalls
-
-
-def main():
- """The main entry point."""
- parser = argparse.ArgumentParser(
- description="Test that glibc's sys/mount.h constants "
- "match the kernel's.")
- parser.add_argument('--cc', metavar='CC',
- help='C compiler (including options) to use')
- args = parser.parse_args()
-
- if glibcextract.compile_c_snippet(
- '#include <linux/mount.h>',
- args.cc).returncode != 0:
- sys.exit (77)
-
- linux_version_headers = glibcsyscalls.linux_kernel_version(args.cc)
- # Constants in glibc were updated to match Linux v5.16. When glibc
- # constants are updated this value should be updated to match the
- # released kernel version from which the constants were taken.
- linux_version_glibc = (5, 16)
- def check(cte, exclude=None):
- return glibcextract.compare_macro_consts(
- '#include <sys/mount.h>\n',
- '#include <asm/fcntl.h>\n'
- '#include <linux/mount.h>\n',
- args.cc,
- cte,
- exclude,
- linux_version_glibc > linux_version_headers,
- linux_version_headers > linux_version_glibc)
-
- # Skip testing FS_CONFIG commands since they are only enums in the kernel
- # header.
- status = max(
- check('FSOPEN_.*'),
- check('FSMOUNT_.*'),
- # MOVE_MOUNT__MASK may vary depending of the kernel version.
- check('MOVE_MOUNT_.*', 'MOVE_MOUNT__MASK'),
- check('OPEN_TREE_*'),
- # MOUNT_ATTR_SIZE_VER0 is used for mount_setattr.
- check('MOUNT_ATTR_.*', 'MOUNT_ATTR_SIZE_VER0'))
- sys.exit(status)
-
-if __name__ == '__main__':
- main()
Property changes on: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/tst-mount-consts.py
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/alpha/brk_call.h
===================================================================
--- GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/alpha/brk_call.h (revision 10)
+++ GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/alpha/brk_call.h (nonexistent)
@@ -1,27 +0,0 @@
-/* Invoke the brk system call. Alpha version.
- Copyright (C) 2022 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/>. */
-
-static inline void *
-__brk_call (void *addr)
-{
- unsigned long int result = INTERNAL_SYSCALL_CALL (brk, addr);
- if (result == -ENOMEM)
- /* Mimic the generic error reporting behavior. */
- result = INTERNAL_SYSCALL_CALL (brk, 0);
- return (void *) result;
-}
Index: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/alpha
===================================================================
--- GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/alpha (revision 10)
+++ GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/alpha (nonexistent)
Property changes on: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/alpha
___________________________________________________________________
Deleted: svn:ignore
## -1,80 +0,0 ##
-
-# Target build dirs
-.noarch
-.host
-
-.arm32-newlib
-.a33xx-newlib
-.a9xx-newlib
-.h5-newlib
-.s9xx-newlib
-.rk33xx-newlib
-.m1000-newlib
-.riscv64-newlib
-.at91sam7s-newlib
-
-.a1x-glibc
-.a2x-glibc
-.a311x-glibc
-.h3-glibc
-.h5-glibc
-.imx6-glibc
-.imx6ull-glibc
-.jz47xx-glibc
-.p5600-glibc
-.m1000-glibc
-.omap543x-glibc
-.am335x-glibc
-.rk328x-glibc
-.s8xx-glibc
-.s9xx-glibc
-.a9xx-glibc
-.rk33xx-glibc
-.rk339x-glibc
-.a33xx-glibc
-.power8-glibc
-.power9-glibc
-.power8le-glibc
-.power9le-glibc
-.riscv64-glibc
-.i586-glibc
-.i686-glibc
-.x86_64-glibc
-
-# Hidden files (each file)
-.makefile
-.src_requires
-.src_requires_depend
-.dist
-
-# Destinations
-dist
-
-
-# Tarballs
-*.gz
-*.bz2
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Text files
-*.txt
-
-# Default linux config files
-*.defconfig
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/cmsg_nxthdr.c
===================================================================
--- GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/cmsg_nxthdr.c (revision 10)
+++ GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/cmsg_nxthdr.c (nonexistent)
@@ -1,60 +0,0 @@
-/* Return point to next ancillary data entry in message header.
- Copyright (C) 1997-2022 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 <stddef.h>
-#include <sys/socket.h>
-
-
-struct cmsghdr *
-__cmsg_nxthdr (struct msghdr *mhdr, struct cmsghdr *cmsg)
-{
- /* We may safely assume that cmsg lies between mhdr->msg_control and
- mhdr->msg_controllen because the user is required to obtain the first
- cmsg via CMSG_FIRSTHDR, set its length, then obtain subsequent cmsgs
- via CMSG_NXTHDR, setting lengths along the way. However, we don't yet
- trust the value of cmsg->cmsg_len and therefore do not use it in any
- pointer arithmetic until we check its value. */
-
- unsigned char * msg_control_ptr = (unsigned char *) mhdr->msg_control;
- unsigned char * cmsg_ptr = (unsigned char *) cmsg;
-
- size_t size_needed = sizeof (struct cmsghdr)
- + __CMSG_PADDING (cmsg->cmsg_len);
-
- /* The current header is malformed, too small to be a full header. */
- if ((size_t) cmsg->cmsg_len < sizeof (struct cmsghdr))
- return (struct cmsghdr *) 0;
-
- /* There isn't enough space between cmsg and the end of the buffer to
- hold the current cmsg *and* the next one. */
- if (((size_t)
- (msg_control_ptr + mhdr->msg_controllen - cmsg_ptr)
- < size_needed)
- || ((size_t)
- (msg_control_ptr + mhdr->msg_controllen - cmsg_ptr
- - size_needed)
- < cmsg->cmsg_len))
-
- return (struct cmsghdr *) 0;
-
- /* Now, we trust cmsg_len and can use it to find the next header. */
- cmsg = (struct cmsghdr *) ((unsigned char *) cmsg
- + CMSG_ALIGN (cmsg->cmsg_len));
- return cmsg;
-}
-libc_hidden_def (__cmsg_nxthdr)
Index: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/bits/socket.h
===================================================================
--- GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/bits/socket.h (revision 10)
+++ GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/bits/socket.h (nonexistent)
@@ -1,398 +0,0 @@
-/* System-specific socket constants and types. Linux version.
- Copyright (C) 1991-2022 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/>. */
-
-#ifndef __BITS_SOCKET_H
-#define __BITS_SOCKET_H
-
-#ifndef _SYS_SOCKET_H
-# error "Never include <bits/socket.h> directly; use <sys/socket.h> instead."
-#endif
-
-#define __need_size_t
-#include <stddef.h>
-
-#include <sys/types.h>
-
-/* Type for length arguments in socket calls. */
-#ifndef __socklen_t_defined
-typedef __socklen_t socklen_t;
-# define __socklen_t_defined
-#endif
-
-/* Get the architecture-dependent definition of enum __socket_type. */
-#include <bits/socket_type.h>
-
-/* Protocol families. */
-#define PF_UNSPEC 0 /* Unspecified. */
-#define PF_LOCAL 1 /* Local to host (pipes and file-domain). */
-#define PF_UNIX PF_LOCAL /* POSIX name for PF_LOCAL. */
-#define PF_FILE PF_LOCAL /* Another non-standard name for PF_LOCAL. */
-#define PF_INET 2 /* IP protocol family. */
-#define PF_AX25 3 /* Amateur Radio AX.25. */
-#define PF_IPX 4 /* Novell Internet Protocol. */
-#define PF_APPLETALK 5 /* Appletalk DDP. */
-#define PF_NETROM 6 /* Amateur radio NetROM. */
-#define PF_BRIDGE 7 /* Multiprotocol bridge. */
-#define PF_ATMPVC 8 /* ATM PVCs. */
-#define PF_X25 9 /* Reserved for X.25 project. */
-#define PF_INET6 10 /* IP version 6. */
-#define PF_ROSE 11 /* Amateur Radio X.25 PLP. */
-#define PF_DECnet 12 /* Reserved for DECnet project. */
-#define PF_NETBEUI 13 /* Reserved for 802.2LLC project. */
-#define PF_SECURITY 14 /* Security callback pseudo AF. */
-#define PF_KEY 15 /* PF_KEY key management API. */
-#define PF_NETLINK 16
-#define PF_ROUTE PF_NETLINK /* Alias to emulate 4.4BSD. */
-#define PF_PACKET 17 /* Packet family. */
-#define PF_ASH 18 /* Ash. */
-#define PF_ECONET 19 /* Acorn Econet. */
-#define PF_ATMSVC 20 /* ATM SVCs. */
-#define PF_RDS 21 /* RDS sockets. */
-#define PF_SNA 22 /* Linux SNA Project */
-#define PF_IRDA 23 /* IRDA sockets. */
-#define PF_PPPOX 24 /* PPPoX sockets. */
-#define PF_WANPIPE 25 /* Wanpipe API sockets. */
-#define PF_LLC 26 /* Linux LLC. */
-#define PF_IB 27 /* Native InfiniBand address. */
-#define PF_MPLS 28 /* MPLS. */
-#define PF_CAN 29 /* Controller Area Network. */
-#define PF_TIPC 30 /* TIPC sockets. */
-#define PF_BLUETOOTH 31 /* Bluetooth sockets. */
-#define PF_IUCV 32 /* IUCV sockets. */
-#define PF_RXRPC 33 /* RxRPC sockets. */
-#define PF_ISDN 34 /* mISDN sockets. */
-#define PF_PHONET 35 /* Phonet sockets. */
-#define PF_IEEE802154 36 /* IEEE 802.15.4 sockets. */
-#define PF_CAIF 37 /* CAIF sockets. */
-#define PF_ALG 38 /* Algorithm sockets. */
-#define PF_NFC 39 /* NFC sockets. */
-#define PF_VSOCK 40 /* vSockets. */
-#define PF_KCM 41 /* Kernel Connection Multiplexor. */
-#define PF_QIPCRTR 42 /* Qualcomm IPC Router. */
-#define PF_SMC 43 /* SMC sockets. */
-#define PF_XDP 44 /* XDP sockets. */
-#define PF_MCTP 45 /* Management component transport protocol. */
-#define PF_MAX 46 /* For now.. */
-
-/* Address families. */
-#define AF_UNSPEC PF_UNSPEC
-#define AF_LOCAL PF_LOCAL
-#define AF_UNIX PF_UNIX
-#define AF_FILE PF_FILE
-#define AF_INET PF_INET
-#define AF_AX25 PF_AX25
-#define AF_IPX PF_IPX
-#define AF_APPLETALK PF_APPLETALK
-#define AF_NETROM PF_NETROM
-#define AF_BRIDGE PF_BRIDGE
-#define AF_ATMPVC PF_ATMPVC
-#define AF_X25 PF_X25
-#define AF_INET6 PF_INET6
-#define AF_ROSE PF_ROSE
-#define AF_DECnet PF_DECnet
-#define AF_NETBEUI PF_NETBEUI
-#define AF_SECURITY PF_SECURITY
-#define AF_KEY PF_KEY
-#define AF_NETLINK PF_NETLINK
-#define AF_ROUTE PF_ROUTE
-#define AF_PACKET PF_PACKET
-#define AF_ASH PF_ASH
-#define AF_ECONET PF_ECONET
-#define AF_ATMSVC PF_ATMSVC
-#define AF_RDS PF_RDS
-#define AF_SNA PF_SNA
-#define AF_IRDA PF_IRDA
-#define AF_PPPOX PF_PPPOX
-#define AF_WANPIPE PF_WANPIPE
-#define AF_LLC PF_LLC
-#define AF_IB PF_IB
-#define AF_MPLS PF_MPLS
-#define AF_CAN PF_CAN
-#define AF_TIPC PF_TIPC
-#define AF_BLUETOOTH PF_BLUETOOTH
-#define AF_IUCV PF_IUCV
-#define AF_RXRPC PF_RXRPC
-#define AF_ISDN PF_ISDN
-#define AF_PHONET PF_PHONET
-#define AF_IEEE802154 PF_IEEE802154
-#define AF_CAIF PF_CAIF
-#define AF_ALG PF_ALG
-#define AF_NFC PF_NFC
-#define AF_VSOCK PF_VSOCK
-#define AF_KCM PF_KCM
-#define AF_QIPCRTR PF_QIPCRTR
-#define AF_SMC PF_SMC
-#define AF_XDP PF_XDP
-#define AF_MCTP PF_MCTP
-#define AF_MAX PF_MAX
-
-/* Socket level values. Others are defined in the appropriate headers.
-
- XXX These definitions also should go into the appropriate headers as
- far as they are available. */
-#define SOL_RAW 255
-#define SOL_DECNET 261
-#define SOL_X25 262
-#define SOL_PACKET 263
-#define SOL_ATM 264 /* ATM layer (cell level). */
-#define SOL_AAL 265 /* ATM Adaption Layer (packet level). */
-#define SOL_IRDA 266
-#define SOL_NETBEUI 267
-#define SOL_LLC 268
-#define SOL_DCCP 269
-#define SOL_NETLINK 270
-#define SOL_TIPC 271
-#define SOL_RXRPC 272
-#define SOL_PPPOL2TP 273
-#define SOL_BLUETOOTH 274
-#define SOL_PNPIPE 275
-#define SOL_RDS 276
-#define SOL_IUCV 277
-#define SOL_CAIF 278
-#define SOL_ALG 279
-#define SOL_NFC 280
-#define SOL_KCM 281
-#define SOL_TLS 282
-#define SOL_XDP 283
-#define SOL_MPTCP 284
-#define SOL_MCTP 285
-#define SOL_SMC 286
-
-/* Maximum queue length specifiable by listen. */
-#define SOMAXCONN 4096
-
-/* Get the definition of the macro to define the common sockaddr members. */
-#include <bits/sockaddr.h>
-
-/* Structure describing a generic socket address. */
-struct sockaddr
- {
- __SOCKADDR_COMMON (sa_); /* Common data: address family and length. */
- char sa_data[14]; /* Address data. */
- };
-
-
-/* Structure large enough to hold any socket address (with the historical
- exception of AF_UNIX). */
-#define __ss_aligntype unsigned long int
-#define _SS_PADSIZE \
- (_SS_SIZE - __SOCKADDR_COMMON_SIZE - sizeof (__ss_aligntype))
-
-struct sockaddr_storage
- {
- __SOCKADDR_COMMON (ss_); /* Address family, etc. */
- char __ss_padding[_SS_PADSIZE];
- __ss_aligntype __ss_align; /* Force desired alignment. */
- };
-
-
-/* Bits in the FLAGS argument to `send', `recv', et al. */
-enum
- {
- MSG_OOB = 0x01, /* Process out-of-band data. */
-#define MSG_OOB MSG_OOB
- MSG_PEEK = 0x02, /* Peek at incoming messages. */
-#define MSG_PEEK MSG_PEEK
- MSG_DONTROUTE = 0x04, /* Don't use local routing. */
-#define MSG_DONTROUTE MSG_DONTROUTE
-#ifdef __USE_GNU
- /* DECnet uses a different name. */
- MSG_TRYHARD = MSG_DONTROUTE,
-# define MSG_TRYHARD MSG_DONTROUTE
-#endif
- MSG_CTRUNC = 0x08, /* Control data lost before delivery. */
-#define MSG_CTRUNC MSG_CTRUNC
- MSG_PROXY = 0x10, /* Supply or ask second address. */
-#define MSG_PROXY MSG_PROXY
- MSG_TRUNC = 0x20,
-#define MSG_TRUNC MSG_TRUNC
- MSG_DONTWAIT = 0x40, /* Nonblocking IO. */
-#define MSG_DONTWAIT MSG_DONTWAIT
- MSG_EOR = 0x80, /* End of record. */
-#define MSG_EOR MSG_EOR
- MSG_WAITALL = 0x100, /* Wait for a full request. */
-#define MSG_WAITALL MSG_WAITALL
- MSG_FIN = 0x200,
-#define MSG_FIN MSG_FIN
- MSG_SYN = 0x400,
-#define MSG_SYN MSG_SYN
- MSG_CONFIRM = 0x800, /* Confirm path validity. */
-#define MSG_CONFIRM MSG_CONFIRM
- MSG_RST = 0x1000,
-#define MSG_RST MSG_RST
- MSG_ERRQUEUE = 0x2000, /* Fetch message from error queue. */
-#define MSG_ERRQUEUE MSG_ERRQUEUE
- MSG_NOSIGNAL = 0x4000, /* Do not generate SIGPIPE. */
-#define MSG_NOSIGNAL MSG_NOSIGNAL
- MSG_MORE = 0x8000, /* Sender will send more. */
-#define MSG_MORE MSG_MORE
- MSG_WAITFORONE = 0x10000, /* Wait for at least one packet to return.*/
-#define MSG_WAITFORONE MSG_WAITFORONE
- MSG_BATCH = 0x40000, /* sendmmsg: more messages coming. */
-#define MSG_BATCH MSG_BATCH
- MSG_ZEROCOPY = 0x4000000, /* Use user data in kernel path. */
-#define MSG_ZEROCOPY MSG_ZEROCOPY
- MSG_FASTOPEN = 0x20000000, /* Send data in TCP SYN. */
-#define MSG_FASTOPEN MSG_FASTOPEN
-
- MSG_CMSG_CLOEXEC = 0x40000000 /* Set close_on_exit for file
- descriptor received through
- SCM_RIGHTS. */
-#define MSG_CMSG_CLOEXEC MSG_CMSG_CLOEXEC
- };
-
-
-/* Structure describing messages sent by
- `sendmsg' and received by `recvmsg'. */
-struct msghdr
- {
- void *msg_name; /* Address to send to/receive from. */
- socklen_t msg_namelen; /* Length of address data. */
-
- struct iovec *msg_iov; /* Vector of data to send/receive into. */
- size_t msg_iovlen; /* Number of elements in the vector. */
-
- void *msg_control; /* Ancillary data (eg BSD filedesc passing). */
- size_t msg_controllen; /* Ancillary data buffer length.
- !! The type should be socklen_t but the
- definition of the kernel is incompatible
- with this. */
-
- int msg_flags; /* Flags on received message. */
- };
-
-/* Structure used for storage of ancillary data object information. */
-struct cmsghdr
- {
- size_t cmsg_len; /* Length of data in cmsg_data plus length
- of cmsghdr structure.
- !! The type should be socklen_t but the
- definition of the kernel is incompatible
- with this. */
- int cmsg_level; /* Originating protocol. */
- int cmsg_type; /* Protocol specific type. */
-#if __glibc_c99_flexarr_available
- __extension__ unsigned char __cmsg_data __flexarr; /* Ancillary data. */
-#endif
- };
-
-/* Ancillary data object manipulation macros. */
-#if __glibc_c99_flexarr_available
-# define CMSG_DATA(cmsg) ((cmsg)->__cmsg_data)
-#else
-# define CMSG_DATA(cmsg) ((unsigned char *) ((struct cmsghdr *) (cmsg) + 1))
-#endif
-#define CMSG_NXTHDR(mhdr, cmsg) __cmsg_nxthdr (mhdr, cmsg)
-#define CMSG_FIRSTHDR(mhdr) \
- ((size_t) (mhdr)->msg_controllen >= sizeof (struct cmsghdr) \
- ? (struct cmsghdr *) (mhdr)->msg_control : (struct cmsghdr *) 0)
-#define CMSG_ALIGN(len) (((len) + sizeof (size_t) - 1) \
- & (size_t) ~(sizeof (size_t) - 1))
-#define CMSG_SPACE(len) (CMSG_ALIGN (len) \
- + CMSG_ALIGN (sizeof (struct cmsghdr)))
-#define CMSG_LEN(len) (CMSG_ALIGN (sizeof (struct cmsghdr)) + (len))
-
-/* Given a length, return the additional padding necessary such that
- len + __CMSG_PADDING(len) == CMSG_ALIGN (len). */
-#define __CMSG_PADDING(len) ((sizeof (size_t) \
- - ((len) & (sizeof (size_t) - 1))) \
- & (sizeof (size_t) - 1))
-
-extern struct cmsghdr *__cmsg_nxthdr (struct msghdr *__mhdr,
- struct cmsghdr *__cmsg) __THROW;
-#ifdef __USE_EXTERN_INLINES
-# ifndef _EXTERN_INLINE
-# define _EXTERN_INLINE __extern_inline
-# endif
-_EXTERN_INLINE struct cmsghdr *
-__NTH (__cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg))
-{
- /* We may safely assume that __cmsg lies between __mhdr->msg_control and
- __mhdr->msg_controllen because the user is required to obtain the first
- cmsg via CMSG_FIRSTHDR, set its length, then obtain subsequent cmsgs
- via CMSG_NXTHDR, setting lengths along the way. However, we don't yet
- trust the value of __cmsg->cmsg_len and therefore do not use it in any
- pointer arithmetic until we check its value. */
-
- unsigned char * __msg_control_ptr = (unsigned char *) __mhdr->msg_control;
- unsigned char * __cmsg_ptr = (unsigned char *) __cmsg;
-
- size_t __size_needed = sizeof (struct cmsghdr)
- + __CMSG_PADDING (__cmsg->cmsg_len);
-
- /* The current header is malformed, too small to be a full header. */
- if ((size_t) __cmsg->cmsg_len < sizeof (struct cmsghdr))
- return (struct cmsghdr *) 0;
-
- /* There isn't enough space between __cmsg and the end of the buffer to
- hold the current cmsg *and* the next one. */
- if (((size_t)
- (__msg_control_ptr + __mhdr->msg_controllen - __cmsg_ptr)
- < __size_needed)
- || ((size_t)
- (__msg_control_ptr + __mhdr->msg_controllen - __cmsg_ptr
- - __size_needed)
- < __cmsg->cmsg_len))
-
- return (struct cmsghdr *) 0;
-
- /* Now, we trust cmsg_len and can use it to find the next header. */
- __cmsg = (struct cmsghdr *) ((unsigned char *) __cmsg
- + CMSG_ALIGN (__cmsg->cmsg_len));
- return __cmsg;
-}
-#endif /* Use `extern inline'. */
-
-/* Socket level message types. This must match the definitions in
- <linux/socket.h>. */
-enum
- {
- SCM_RIGHTS = 0x01 /* Transfer file descriptors. */
-#define SCM_RIGHTS SCM_RIGHTS
-#ifdef __USE_GNU
- , SCM_CREDENTIALS = 0x02 /* Credentials passing. */
-# define SCM_CREDENTIALS SCM_CREDENTIALS
-#endif
- };
-
-#ifdef __USE_GNU
-/* User visible structure for SCM_CREDENTIALS message */
-struct ucred
-{
- pid_t pid; /* PID of sending process. */
- uid_t uid; /* UID of sending process. */
- gid_t gid; /* GID of sending process. */
-};
-#endif
-
-#ifdef __USE_MISC
-# include <bits/types/time_t.h>
-# include <asm/socket.h>
-#else
-# define SO_DEBUG 1
-# include <bits/socket-constants.h>
-#endif
-
-/* Structure used to manipulate the SO_LINGER option. */
-struct linger
- {
- int l_onoff; /* Nonzero to linger on close. */
- int l_linger; /* Time to linger. */
- };
-
-#endif /* bits/socket.h */
Index: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/bits
===================================================================
--- GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/bits (revision 10)
+++ GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/bits (nonexistent)
Property changes on: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/bits
___________________________________________________________________
Deleted: svn:ignore
## -1,80 +0,0 ##
-
-# Target build dirs
-.noarch
-.host
-
-.arm32-newlib
-.a33xx-newlib
-.a9xx-newlib
-.h5-newlib
-.s9xx-newlib
-.rk33xx-newlib
-.m1000-newlib
-.riscv64-newlib
-.at91sam7s-newlib
-
-.a1x-glibc
-.a2x-glibc
-.a311x-glibc
-.h3-glibc
-.h5-glibc
-.imx6-glibc
-.imx6ull-glibc
-.jz47xx-glibc
-.p5600-glibc
-.m1000-glibc
-.omap543x-glibc
-.am335x-glibc
-.rk328x-glibc
-.s8xx-glibc
-.s9xx-glibc
-.a9xx-glibc
-.rk33xx-glibc
-.rk339x-glibc
-.a33xx-glibc
-.power8-glibc
-.power9-glibc
-.power8le-glibc
-.power9le-glibc
-.riscv64-glibc
-.i586-glibc
-.i686-glibc
-.x86_64-glibc
-
-# Hidden files (each file)
-.makefile
-.src_requires
-.src_requires_depend
-.dist
-
-# Destinations
-dist
-
-
-# Tarballs
-*.gz
-*.bz2
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Text files
-*.txt
-
-# Default linux config files
-*.defconfig
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/Makefile
===================================================================
--- GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/Makefile (revision 10)
+++ GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/Makefile (nonexistent)
@@ -1,427 +0,0 @@
-# Option to pass to Python scripts to set the C compiler. Rewriting
-# MODULE_NAME is required to enable the _ISOMAC verbatim header
-# environment.
-sysdeps-linux-python-cc = \
- --cc="$(CC) $(patsubst -DMODULE_NAME=%,-DMODULE_NAME=testsuite,$(CPPFLAGS))"
-
-# Additional dependencies for Python scripts.
-sysdeps-linux-python-deps = \
- $(..)sysdeps/unix/sysv/linux/glibcsyscalls.py \
- $(..)scripts/glibcextract.py
-
-# Invocation of the Python interpreter with the Python search path.
-sysdeps-linux-python = \
- PYTHONPATH=$(..)scripts:$(..)sysdeps/unix/sysv/linux $(PYTHON)
-
-ifndef subdir
-# This target performs two actions:
-#
-# Replace <arch-syscall.h> with a file generated from kernel headers
-# and <fixup-asm-unistd.h>. Both files are located via the sysdeps
-# override search path.
-#
-# Update sysdeps/unix/sysv/linux/syscall-names.list with additional
-# names found in the generated <arch-syscall.h> file, so that the
-# global system call names list is a superset of the
-# architecture-specific system call names.
-#
-# To bootstrap a new architecture, create an empty file in the right
-# place and run `make update-syscall-lists' from the top-level of a
-# configured, but not-yet-built glibc tree.
-#
-# --lock points to a file not replaced during the update operation, so
-# that mutual exclusion is achieved.
-.PHONY: update-syscall-lists
-update-syscall-lists: arch-syscall.h
- $(sysdeps-linux-python) \
- sysdeps/unix/sysv/linux/update-syscall-lists.py \
- $(sysdeps-linux-python-cc) \
- --lock=sysdeps/unix/sysv/linux/update-syscall-lists.py $< \
- sysdeps/unix/sysv/linux/syscall-names.list
-endif
-
-ifeq ($(subdir),csu)
-sysdep_routines += errno-loc
-endif
-
-ifeq ($(subdir),assert)
-CFLAGS-assert.c += -DFATAL_PREPARE_INCLUDE='<fatal-prepare.h>'
-CFLAGS-assert-perr.c += -DFATAL_PREPARE_INCLUDE='<fatal-prepare.h>'
-endif
-
-ifeq ($(subdir),malloc)
-CFLAGS-malloc.c += -DMORECORE_CLEARS=2
-endif
-
-ifeq ($(subdir),misc)
-sysdep_routines += adjtimex clone umount umount2 readahead sysctl \
- setfsuid setfsgid epoll_pwait epoll_pwait2 signalfd \
- eventfd eventfd_read eventfd_write prlimit prlimit64 \
- personality epoll_wait tee vmsplice splice \
- open_by_handle_at mlock2 pkey_mprotect pkey_set pkey_get \
- timerfd_gettime timerfd_settime prctl \
- process_vm_readv process_vm_writev clock_adjtime \
- pselect32 \
- xstat fxstat lxstat xstat64 fxstat64 lxstat64 \
- fxstatat fxstatat64 \
- xmknod xmknodat convert_scm_timestamps \
- closefrom_fallback \
- clone3 clone-internal \
- fanotify_mark \
- mremap \
-
-CFLAGS-gethostid.c = -fexceptions
-CFLAGS-tee.c = -fexceptions -fasynchronous-unwind-tables
-CFLAGS-vmsplice.c = -fexceptions -fasynchronous-unwind-tables
-CFLAGS-splice.c = -fexceptions -fasynchronous-unwind-tables
-CFLAGS-open_by_handle_at.c = -fexceptions -fasynchronous-unwind-tables
-CFLAGS-sync_file_range.c = -fexceptions -fasynchronous-unwind-tables
-CFLAGS-pselect32.c = -fexceptions -fasynchronous-unwind-tables
-CFLAGS-tst-writev.c += "-DARTIFICIAL_LIMIT=(0x80000000-sysconf(_SC_PAGESIZE))"
-
-sysdep_headers += sys/mount.h sys/acct.h \
- sys/klog.h \
- sys/user.h sys/prctl.h \
- sys/kd.h sys/soundcard.h sys/vt.h \
- sys/quota.h sys/fsuid.h \
- scsi/sg.h scsi/scsi.h scsi/scsi_ioctl.h sys/pci.h \
- sys/raw.h sys/personality.h sys/epoll.h \
- bits/a.out.h sys/inotify.h sys/signalfd.h sys/eventfd.h \
- sys/timerfd.h sys/fanotify.h bits/eventfd.h bits/inotify.h \
- bits/signalfd.h bits/timerfd.h bits/epoll.h \
- bits/socket_type.h bits/syscall.h \
- bits/mman-linux.h bits/mman-shared.h bits/ptrace-shared.h \
- bits/siginfo-arch.h bits/siginfo-consts-arch.h \
- bits/procfs.h bits/procfs-id.h bits/procfs-extra.h \
- bits/procfs-prregset.h bits/mman-map-flags-generic.h \
- bits/shmlba.h \
- bits/termios-struct.h bits/termios-c_cc.h \
- bits/termios-c_iflag.h bits/termios-c_oflag.h \
- bits/termios-baud.h bits/termios-c_cflag.h \
- bits/termios-c_lflag.h bits/termios-tcflow.h \
- bits/termios-misc.h \
- bits/types/struct_semid_ds.h \
- bits/types/struct_msqid_ds.h \
- bits/types/struct_shmid_ds.h \
- bits/ipc-perm.h \
- bits/struct_stat.h \
- bits/struct_stat_time64_helper.h \
- bits/types/struct_msqid64_ds.h \
- bits/types/struct_msqid64_ds_helper.h \
- bits/types/struct_semid64_ds.h \
- bits/types/struct_semid64_ds_helper.h \
- bits/types/struct_shmid64_ds.h \
- bits/types/struct_shmid64_ds_helper.h \
- bits/pthread_stack_min.h bits/pthread_stack_min-dynamic.h \
- sys/rseq.h bits/rseq.h \
- sys/pidfd.h
-
-tests += tst-clone tst-clone2 tst-clone3 tst-fanotify tst-personality \
- tst-quota tst-sync_file_range tst-sysconf-iov_max tst-ttyname \
- test-errno-linux tst-memfd_create tst-mlock2 tst-pkey \
- tst-rlimit-infinity tst-ofdlocks tst-gettid tst-gettid-kill \
- tst-tgkill tst-sysvsem-linux tst-sysvmsg-linux tst-sysvshm-linux \
- tst-timerfd tst-ppoll \
- tst-clock_adjtime tst-adjtimex tst-ntp_adjtime tst-ntp_gettime \
- tst-ntp_gettimex tst-sigtimedwait tst-misalign-clone \
- tst-prctl \
- tst-scm_rights \
- tst-epoll \
- tst-getauxval \
- tst-pidfd \
- tst-process_mrelease \
- tst-mount \
- # tests
-
-# process_madvise requires CAP_SYS_ADMIN.
-xtests += \
- tst-process_madvise \
- # xtests
-
-# For +depfiles in Makerules.
-extra-test-objs += tst-sysconf-iov_max-uapi.o
-
-# Test for the symbol version of fcntl that was replaced in glibc 2.28.
-ifeq ($(have-GLIBC_2.27)$(build-shared),yesyes)
-tests += tst-ofdlocks-compat
-endif
-
-tests-internal += \
- tst-rseq \
- tst-sigcontext-get_pc \
- # tests-internal
-
-ifneq (no,$(have-tunables))
-tests-internal += \
- tst-rseq-disable \
- # tests-internal $(have-tunables)
-endif
-
-tests-time64 += \
- tst-adjtimex-time64 \
- tst-clock_adjtime-time64 \
- tst-epoll-time64 \
- tst-ntp_adjtime-time64 \
- tst-ntp_gettime-time64 \
- tst-ntp_gettimex-time64 \
- tst-ppoll-time64 \
- tst-sigtimedwait-time64 \
- tst-timerfd-time64 \
- tst-prctl-time64 \
- tst-scm_rights-time64 \
- # tests-time64
-
-tests-clone-internal = \
- tst-align-clone-internal \
- tst-clone2-internal \
- tst-clone3-internal \
- tst-getpid1-internal \
- tst-misalign-clone-internal
-tests-internal += $(tests-clone-internal)
-tests-static += $(tests-clone-internal)
-
-CFLAGS-tst-sigcontext-get_pc.c = -fasynchronous-unwind-tables
-
-# Generate the list of SYS_* macros for the system calls (__NR_*
-# macros). The file syscall-names.list contains all possible system
-# call names, and the generated header file produces SYS_* macros for
-# the __NR_* macros which are actually defined.
-
-generated += bits/syscall.h
-$(objpfx)bits/syscall.h: \
- ../sysdeps/unix/sysv/linux/gen-syscall-h.awk \
- ../sysdeps/unix/sysv/linux/syscall-names.list
- $(make-target-directory)
- LC_ALL=C $(AWK) -f $^ > $@-tmp
- $(move-if-change) $@-tmp $@
-before-compile += $(objpfx)bits/syscall.h
-
-# All macros defined by <sys/syscall.h>. Include <bits/syscall.h>
-# explicitly because <sys/sycall.h> skips it if _LIBC is defined.
-$(objpfx)tst-syscall-list-macros.list: \
- $(objpfx)bits/syscall.h ../sysdeps/unix/sysv/linux/sys/syscall.h
- printf '#include <linux/version.h>\n\
-#include <sys/syscall.h>\n#include <bits/syscall.h>\n' | \
- $(CC) -E -o $@-tmp $(CFLAGS) $(CPPFLAGS) -x c - -dM
- $(move-if-change) $@-tmp $@
-
-# __NR_* system call names. Used by the test below.
-$(objpfx)tst-syscall-list-nr.list: \
- ../sysdeps/unix/sysv/linux/filter-nr-syscalls.awk \
- $(objpfx)tst-syscall-list-macros.list
- LC_ALL=C $(AWK) -f $^ > $@-tmp
- $(move-if-change) $@-tmp $@
-
-# SYS_* system call names. Used by the test below.
-$(objpfx)tst-syscall-list-sys.list: $(objpfx)tst-syscall-list-macros.list
- LC_ALL=C $(AWK) '/^#define SYS_/ { print substr($$2, 5) }' $< > $@-tmp
- $(move-if-change) $@-tmp $@
-
-tests-special += $(objpfx)tst-syscall-list.out
-$(objpfx)tst-syscall-list.out: \
- ../sysdeps/unix/sysv/linux/tst-syscall-list.sh \
- $(objpfx)tst-syscall-list-macros.list \
- $(objpfx)tst-syscall-list-nr.list \
- $(objpfx)tst-syscall-list-sys.list
- $(BASH) $^ $(AWK) > $@; $(evaluate-test)
-
-tests-special += $(objpfx)tst-glibcsyscalls.out
-# arch-syscall.h is located via the sysdeps override search path.
-$(objpfx)tst-glibcsyscalls.out: arch-syscall.h \
- ../sysdeps/unix/sysv/linux/syscall-names.list
- $(sysdeps-linux-python) \
- ../sysdeps/unix/sysv/linux/tst-glibcsyscalls.py \
- $(sysdeps-linux-python-cc) $< \
- ../sysdeps/unix/sysv/linux/syscall-names.list \
- < /dev/null > $@ 2>&1; $(evaluate-test)
-$(objpfx)tst-glibcsyscalls.out: \
- ../sysdeps/unix/sysv/linux/tst-glibcsyscalls.py \
- $(sysdeps-linux-python-deps)
-
-# Separate object file for access to the constant from the UAPI header.
-$(objpfx)tst-sysconf-iov_max: $(objpfx)tst-sysconf-iov_max-uapi.o
-
-tests-special += $(objpfx)tst-mman-consts.out
-$(objpfx)tst-mman-consts.out: ../sysdeps/unix/sysv/linux/tst-mman-consts.py
- $(sysdeps-linux-python) \
- ../sysdeps/unix/sysv/linux/tst-mman-consts.py \
- $(sysdeps-linux-python-cc) \
- < /dev/null > $@ 2>&1; $(evaluate-test)
-$(objpfx)tst-mman-consts.out: $(sysdeps-linux-python-deps)
-
-tests-special += $(objpfx)tst-pidfd-consts.out
-$(objpfx)tst-pidfd-consts.out: ../sysdeps/unix/sysv/linux/tst-pidfd-consts.py
- $(sysdeps-linux-python) \
- ../sysdeps/unix/sysv/linux/tst-pidfd-consts.py \
- $(sysdeps-linux-python-cc) \
- < /dev/null > $@ 2>&1; $(evaluate-test)
-$(objpfx)tst-pidfd-consts.out: $(sysdeps-linux-python-deps)
-
-tests-special += $(objpfx)tst-mount-consts.out
-$(objpfx)tst-mount-consts.out: ../sysdeps/unix/sysv/linux/tst-mount-consts.py
- $(sysdeps-linux-python) \
- ../sysdeps/unix/sysv/linux/tst-mount-consts.py \
- $(sysdeps-linux-python-cc) \
- < /dev/null > $@ 2>&1; $(evaluate-test)
-$(objpfx)tst-mount-consts.out: $(sysdeps-linux-python-deps)
-
-tests-special += $(objpfx)tst-mount-compile.out
-$(objpfx)tst-mount-compile.out: ../sysdeps/unix/sysv/linux/tst-mount-compile.py
- $(sysdeps-linux-python) \
- ../sysdeps/unix/sysv/linux/tst-mount-compile.py \
- $(sysdeps-linux-python-cc) \
- < /dev/null > $@ 2>&1; $(evaluate-test)
-$(objpfx)tst-mount-compile.out: $(sysdeps-linux-python-deps)
-
-tst-rseq-disable-ENV = GLIBC_TUNABLES=glibc.pthread.rseq=0
-
-endif # $(subdir) == misc
-
-ifeq ($(subdir),time)
-sysdep_headers += sys/timex.h bits/timex.h
-
-sysdep_routines += ntp_gettime ntp_gettimex
-
-tests += \
- tst-clock_gettime-clobber \
- tst-gettimeofday-clobber \
- tst-time-clobber \
- # tests
-endif
-
-ifeq ($(subdir),signal)
-tests-special += $(objpfx)tst-signal-numbers.out
-# Depending on signal.o* is a hack. What we actually want is a dependency
-# on signal.h and everything it includes. That's impractical to write
-# in this context, but signal.c includes signal.h and not much else so it'll
-# be conservatively correct.
-$(objpfx)tst-signal-numbers.out: \
- ../sysdeps/unix/sysv/linux/tst-signal-numbers.py \
- $(objpfx)signal.o*
- $(sysdeps-linux-python) \
- ../sysdeps/unix/sysv/linux/tst-signal-numbers.py \
- $(sysdeps-linux-python-cc) \
- < /dev/null > $@ 2>&1; $(evaluate-test)
-$(objpfx)tst-signal-numbers.out: $(sysdeps-linux-python-deps)
-endif
-
-ifeq ($(subdir),socket)
-sysdep_headers += net/if_ppp.h net/ppp-comp.h \
- net/ppp_defs.h net/if_arp.h net/route.h net/ethernet.h \
- net/if_slip.h net/if_packet.h net/if_shaper.h \
- bits/socket-constants.h
-sysdep_routines += cmsg_nxthdr
-CFLAGS-recvmmsg.c = -fexceptions -fasynchronous-unwind-tables
-CFLAGS-sendmmsg.c = -fexceptions -fasynchronous-unwind-tables
-
-tests += \
- tst-socket-timestamp \
- tst-socket-timestamp-compat \
- # tests
-tests-time64 += \
- tst-socket-timestamp-time64 \
- tst-socket-timestamp-compat-time64
- # tests-time64
-
-tests-special += $(objpfx)tst-socket-consts.out
-$(objpfx)tst-socket-consts.out: ../sysdeps/unix/sysv/linux/tst-socket-consts.py
- PYTHONPATH=../scripts \
- $(PYTHON) ../sysdeps/unix/sysv/linux/tst-socket-consts.py \
- --cc="$(CC) $(patsubst -DMODULE_NAME=%, \
- -DMODULE_NAME=testsuite, \
- $(CPPFLAGS)) -D_ISOMAC" \
- < /dev/null > $@ 2>&1; $(evaluate-test)
-endif # $(subdir) == socket
-
-ifeq ($(subdir),sunrpc)
-sysdep_headers += nfs/nfs.h
-endif
-
-ifeq ($(subdir),termios)
-sysdep_headers += termio.h
-endif
-
-ifeq ($(subdir),posix)
-sysdep_headers += bits/initspin.h
-
-sysdep_routines += sched_getcpu oldglob getcpu
-
-tests += tst-affinity tst-affinity-pid
-
-tests-static := tst-affinity-static
-tests += $(tests-static)
-
-CFLAGS-fork.c = $(libio-mtsafe)
-CFLAGS-getpid.o = -fomit-frame-pointer
-CFLAGS-getpid.os = -fomit-frame-pointer
-endif
-
-ifeq ($(subdir),inet)
-sysdep_headers += netinet/if_fddi.h netinet/if_tr.h \
- netipx/ipx.h netash/ash.h netax25/ax25.h netatalk/at.h \
- netrom/netrom.h netpacket/packet.h netrose/rose.h \
- neteconet/ec.h netiucv/iucv.h
-sysdep_routines += netlink_assert_response
-endif
-
-# Don't compile the ctype glue code, since there is no old non-GNU C library.
-inhibit-glue = yes
-
-ifeq ($(subdir),dirent)
-sysdep_routines += getdirentries getdirentries64
-tests += \
- tst-getdents64 \
- tst-readdir64-compat \
- # tests
-endif # $(subdir) == dirent
-
-ifeq ($(subdir),nis)
-CFLAGS-ypclnt.c = -DUSE_BINDINGDIR=1
-endif
-
-ifeq ($(subdir),io)
-sysdep_routines += xstatconv internal_statvfs \
- sync_file_range fallocate fallocate64 \
- close_nocancel fcntl_nocancel \
- open_nocancel open64_nocancel \
- openat_nocancel openat64_nocancel \
- read_nocancel pread64_nocancel \
- write_nocancel statx_cp stat_t64_cp
-
-sysdep_headers += bits/fcntl-linux.h
-
-tests += \
- tst-fallocate \
- tst-fallocate64 \
- tst-getcwd-smallbuff \
- tst-o_path-locks \
-# tests
-endif
-
-ifeq ($(subdir),elf)
-sysdep-rtld-routines += dl-brk dl-sbrk dl-getcwd dl-openat64 dl-opendir
-
-libof-lddlibc4 = lddlibc4
-
-others += pldd
-install-bin += pldd
-$(objpfx)pldd: $(objpfx)xmalloc.o
-endif
-
-ifeq ($(subdir),rt)
-CFLAGS-mq_send.c += -fexceptions
-CFLAGS-mq_receive.c += -fexceptions
-endif
-
-ifeq ($(subdir),nscd)
-sysdep-CFLAGS += -DHAVE_EPOLL -DHAVE_INOTIFY -DHAVE_NETLINK
-CFLAGS-gai.c += -DNEED_NETLINK
-endif
-
-ifeq ($(subdir),nptl)
-tests += tst-align-clone tst-getpid1
-
-# tst-rseq-nptl is an internal test because it requires a definition of
-# __NR_rseq from the internal system call list.
-tests-internal += tst-rseq-nptl
-endif
Index: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/sys/mount.h
===================================================================
--- GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/sys/mount.h (revision 10)
+++ GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/sys/mount.h (nonexistent)
@@ -1,322 +0,0 @@
-/* Header file for mounting/unmount Linux filesystems.
- Copyright (C) 1996-2022 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 is taken from /usr/include/linux/fs.h. */
-
-#ifndef _SYS_MOUNT_H
-#define _SYS_MOUNT_H 1
-
-#include <fcntl.h>
-#include <features.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <sys/ioctl.h>
-
-#ifdef __has_include
-# if __has_include ("linux/mount.h")
-# include "linux/mount.h"
-# endif
-#endif
-
-
-#define BLOCK_SIZE_BITS 10
-#define BLOCK_SIZE (1<<BLOCK_SIZE_BITS)
-
-
-/* These are the fs-independent mount-flags: up to 16 flags are
- supported */
-enum
-{
-#undef MS_RDONLY
- MS_RDONLY = 1, /* Mount read-only. */
-#define MS_RDONLY MS_RDONLY
-#undef MS_NOSUID
- MS_NOSUID = 2, /* Ignore suid and sgid bits. */
-#define MS_NOSUID MS_NOSUID
-#undef MS_NODEV
- MS_NODEV = 4, /* Disallow access to device special files. */
-#define MS_NODEV MS_NODEV
-#undef MS_NOEXEC
- MS_NOEXEC = 8, /* Disallow program execution. */
-#define MS_NOEXEC MS_NOEXEC
-#undef MS_SYNCHRONOUS
- MS_SYNCHRONOUS = 16, /* Writes are synced at once. */
-#define MS_SYNCHRONOUS MS_SYNCHRONOUS
-#undef MS_REMOUNT
- MS_REMOUNT = 32, /* Alter flags of a mounted FS. */
-#define MS_REMOUNT MS_REMOUNT
-#undef MS_MANDLOCK
- MS_MANDLOCK = 64, /* Allow mandatory locks on an FS. */
-#define MS_MANDLOCK MS_MANDLOCK
-#undef MS_DIRSYNC
- MS_DIRSYNC = 128, /* Directory modifications are synchronous. */
-#define MS_DIRSYNC MS_DIRSYNC
-#undef MS_NOSYMFOLLOW
- MS_NOSYMFOLLOW = 256, /* Do not follow symlinks. */
-#define MS_NOSYMFOLLOW MS_NOSYMFOLLOW
-#undef MS_NOATIME
- MS_NOATIME = 1024, /* Do not update access times. */
-#define MS_NOATIME MS_NOATIME
-#undef MS_NODIRATIME
- MS_NODIRATIME = 2048, /* Do not update directory access times. */
-#define MS_NODIRATIME MS_NODIRATIME
-#undef MS_BIND
- MS_BIND = 4096, /* Bind directory at different place. */
-#define MS_BIND MS_BIND
-#undef MS_MOVE
- MS_MOVE = 8192,
-#define MS_MOVE MS_MOVE
-#undef MS_REC
- MS_REC = 16384,
-#define MS_REC MS_REC
-#undef MS_SILENT
- MS_SILENT = 32768,
-#define MS_SILENT MS_SILENT
-#undef MS_POSIXACL
- MS_POSIXACL = 1 << 16, /* VFS does not apply the umask. */
-#define MS_POSIXACL MS_POSIXACL
-#undef MS_UNBINDABLE
- MS_UNBINDABLE = 1 << 17, /* Change to unbindable. */
-#define MS_UNBINDABLE MS_UNBINDABLE
-#undef MS_PRIVATE
- MS_PRIVATE = 1 << 18, /* Change to private. */
-#define MS_PRIVATE MS_PRIVATE
-#undef MS_SLAVE
- MS_SLAVE = 1 << 19, /* Change to slave. */
-#define MS_SLAVE MS_SLAVE
-#undef MS_SHARED
- MS_SHARED = 1 << 20, /* Change to shared. */
-#define MS_SHARED MS_SHARED
-#undef MS_RELATIME
- MS_RELATIME = 1 << 21, /* Update atime relative to mtime/ctime. */
-#define MS_RELATIME MS_RELATIME
-#undef MS_KERNMOUNT
- MS_KERNMOUNT = 1 << 22, /* This is a kern_mount call. */
-#define MS_KERNMOUNT MS_KERNMOUNT
-#undef MS_I_VERSION
- MS_I_VERSION = 1 << 23, /* Update inode I_version field. */
-#define MS_I_VERSION MS_I_VERSION
-#undef MS_STRICTATIME
- MS_STRICTATIME = 1 << 24, /* Always perform atime updates. */
-#define MS_STRICTATIME MS_STRICTATIME
-#undef MS_LAZYTIME
- MS_LAZYTIME = 1 << 25, /* Update the on-disk [acm]times lazily. */
-#define MS_LAZYTIME MS_LAZYTIME
-#undef MS_ACTIVE
- MS_ACTIVE = 1 << 30,
-#define MS_ACTIVE MS_ACTIVE
-#undef MS_NOUSER
- MS_NOUSER = 1 << 31
-#define MS_NOUSER MS_NOUSER
-};
-
-/* Flags that can be altered by MS_REMOUNT */
-#undef MS_RMT_MASK
-#define MS_RMT_MASK (MS_RDONLY|MS_SYNCHRONOUS|MS_MANDLOCK|MS_I_VERSION \
- |MS_LAZYTIME)
-
-
-/* Magic mount flag number. Has to be or-ed to the flag values. */
-
-#undef MS_MGC_VAL
-#define MS_MGC_VAL 0xc0ed0000 /* Magic flag number to indicate "new" flags */
-#define MS_MGC_MSK 0xffff0000 /* Magic flag number mask */
-
-
-/* The read-only stuff doesn't really belong here, but any other place
- is probably as bad and I don't want to create yet another include
- file. */
-
-#undef BLKROSET
-#define BLKROSET _IO(0x12, 93) /* Set device read-only (0 = read-write). */
-#undef BLKROGET
-#define BLKROGET _IO(0x12, 94) /* Get read-only status (0 = read_write). */
-#undef BLKRRPART
-#define BLKRRPART _IO(0x12, 95) /* Re-read partition table. */
-#undef BLKGETSIZE
-#define BLKGETSIZE _IO(0x12, 96) /* Return device size. */
-#undef BLKFLSBUF
-#define BLKFLSBUF _IO(0x12, 97) /* Flush buffer cache. */
-#undef BLKRASET
-#define BLKRASET _IO(0x12, 98) /* Set read ahead for block device. */
-#undef BLKRAGET
-#define BLKRAGET _IO(0x12, 99) /* Get current read ahead setting. */
-#undef BLKFRASET
-#define BLKFRASET _IO(0x12,100) /* Set filesystem read-ahead. */
-#undef BLKFRAGET
-#define BLKFRAGET _IO(0x12,101) /* Get filesystem read-ahead. */
-#undef BLKSECTSET
-#define BLKSECTSET _IO(0x12,102) /* Set max sectors per request. */
-#undef BLKSECTGET
-#define BLKSECTGET _IO(0x12,103) /* Get max sectors per request. */
-#undef BLKSSZGET
-#define BLKSSZGET _IO(0x12,104) /* Get block device sector size. */
-#undef BLKBSZGET
-#define BLKBSZGET _IOR(0x12,112,size_t)
-#undef BLKBSZSET
-#define BLKBSZSET _IOW(0x12,113,size_t)
-#undef BLKGETSIZE64
-#define BLKGETSIZE64 _IOR(0x12,114,size_t) /* return device size. */
-
-
-/* Possible value for FLAGS parameter of `umount2'. */
-enum
-{
- MNT_FORCE = 1, /* Force unmounting. */
-#define MNT_FORCE MNT_FORCE
- MNT_DETACH = 2, /* Just detach from the tree. */
-#define MNT_DETACH MNT_DETACH
- MNT_EXPIRE = 4, /* Mark for expiry. */
-#define MNT_EXPIRE MNT_EXPIRE
- UMOUNT_NOFOLLOW = 8 /* Don't follow symlink on umount. */
-#define UMOUNT_NOFOLLOW UMOUNT_NOFOLLOW
-};
-
-
-/* fsmount flags. */
-#define FSMOUNT_CLOEXEC 0x00000001
-
-/* mount attributes used on fsmount. */
-#define MOUNT_ATTR_RDONLY 0x00000001 /* Mount read-only. */
-#define MOUNT_ATTR_NOSUID 0x00000002 /* Ignore suid and sgid bits. */
-#define MOUNT_ATTR_NODEV 0x00000004 /* Disallow access to device special files. */
-#define MOUNT_ATTR_NOEXEC 0x00000008 /* Disallow program execution. */
-#define MOUNT_ATTR__ATIME 0x00000070 /* Setting on how atime should be updated. */
-#define MOUNT_ATTR_RELATIME 0x00000000 /* - Update atime relative to mtime/ctime. */
-#define MOUNT_ATTR_NOATIME 0x00000010 /* - Do not update access times. */
-#define MOUNT_ATTR_STRICTATIME 0x00000020 /* - Always perform atime updates */
-#define MOUNT_ATTR_NODIRATIME 0x00000080 /* Do not update directory access times. */
-#define MOUNT_ATTR_IDMAP 0x00100000 /* Idmap mount to @userns_fd in struct mount_attr. */
-#define MOUNT_ATTR_NOSYMFOLLOW 0x00200000 /* Do not follow symlinks. */
-
-
-#ifndef MOUNT_ATTR_SIZE_VER0
-/* For mount_setattr. */
-struct mount_attr
-{
- uint64_t attr_set;
- uint64_t attr_clr;
- uint64_t propagation;
- uint64_t userns_fd;
-};
-#endif
-
-#define MOUNT_ATTR_SIZE_VER0 32 /* sizeof first published struct */
-
-/* move_mount flags. */
-#define MOVE_MOUNT_F_SYMLINKS 0x00000001 /* Follow symlinks on from path */
-#define MOVE_MOUNT_F_AUTOMOUNTS 0x00000002 /* Follow automounts on from path */
-#define MOVE_MOUNT_F_EMPTY_PATH 0x00000004 /* Empty from path permitted */
-#define MOVE_MOUNT_T_SYMLINKS 0x00000010 /* Follow symlinks on to path */
-#define MOVE_MOUNT_T_AUTOMOUNTS 0x00000020 /* Follow automounts on to path */
-#define MOVE_MOUNT_T_EMPTY_PATH 0x00000040 /* Empty to path permitted */
-#define MOVE_MOUNT_SET_GROUP 0x00000100 /* Set sharing group instead */
-
-
-/* fspick flags. */
-#define FSPICK_CLOEXEC 0x00000001
-#define FSPICK_SYMLINK_NOFOLLOW 0x00000002
-#define FSPICK_NO_AUTOMOUNT 0x00000004
-#define FSPICK_EMPTY_PATH 0x00000008
-
-
-#ifndef FSOPEN_CLOEXEC
-/* The type of fsconfig call made. */
-enum fsconfig_command
-{
- FSCONFIG_SET_FLAG = 0, /* Set parameter, supplying no value */
-# define FSCONFIG_SET_FLAG FSCONFIG_SET_FLAG
- FSCONFIG_SET_STRING = 1, /* Set parameter, supplying a string value */
-# define FSCONFIG_SET_STRING FSCONFIG_SET_STRING
- FSCONFIG_SET_BINARY = 2, /* Set parameter, supplying a binary blob value */
-# define FSCONFIG_SET_BINARY FSCONFIG_SET_BINARY
- FSCONFIG_SET_PATH = 3, /* Set parameter, supplying an object by path */
-# define FSCONFIG_SET_PATH FSCONFIG_SET_PATH
- FSCONFIG_SET_PATH_EMPTY = 4, /* Set parameter, supplying an object by (empty) path */
-# define FSCONFIG_SET_PATH_EMPTY FSCONFIG_SET_PATH_EMPTY
- FSCONFIG_SET_FD = 5, /* Set parameter, supplying an object by fd */
-# define FSCONFIG_SET_FD FSCONFIG_SET_FD
- FSCONFIG_CMD_CREATE = 6, /* Invoke superblock creation */
-# define FSCONFIG_CMD_CREATE FSCONFIG_CMD_CREATE
- FSCONFIG_CMD_RECONFIGURE = 7, /* Invoke superblock reconfiguration */
-# define FSCONFIG_CMD_RECONFIGURE FSCONFIG_CMD_RECONFIGURE
-};
-#endif
-
-/* fsopen flags. */
-#define FSOPEN_CLOEXEC 0x00000001
-
-/* open_tree flags. */
-#define OPEN_TREE_CLONE 1 /* Clone the target tree and attach the clone */
-#define OPEN_TREE_CLOEXEC O_CLOEXEC /* Close the file on execve() */
-
-
-__BEGIN_DECLS
-
-/* Mount a filesystem. */
-extern int mount (const char *__special_file, const char *__dir,
- const char *__fstype, unsigned long int __rwflag,
- const void *__data) __THROW;
-
-/* Unmount a filesystem. */
-extern int umount (const char *__special_file) __THROW;
-
-/* Unmount a filesystem. Force unmounting if FLAGS is set to MNT_FORCE. */
-extern int umount2 (const char *__special_file, int __flags) __THROW;
-
-/* Open the filesystem referenced by FS_NAME so it can be configured for
- mouting. */
-extern int fsopen (const char *__fs_name, unsigned int __flags) __THROW;
-
-/* Create a mount representation for the FD created by fsopen using
- FLAGS with ATTR_FLAGS describing how the mount is to be performed. */
-extern int fsmount (int __fd, unsigned int __flags,
- unsigned int __ms_flags) __THROW;
-
-/* Add the mounted FROM_DFD referenced by FROM_PATHNAME filesystem returned
- by fsmount in the hierarchy in the place TO_DFD reference by TO_PATHNAME
- using FLAGS. */
-extern int move_mount (int __from_dfd, const char *__from_pathname,
- int __to_dfd, const char *__to_pathname,
- unsigned int flags) __THROW;
-
-/* Set parameters and trigger CMD action on the FD context. KEY, VALUE,
- and AUX are used depending ng of the CMD. */
-extern int fsconfig (int __fd, unsigned int __cmd, const char *__key,
- const void *__value, int __aux) __THROW;
-
-/* Equivalent of fopen for an existing mount point. */
-extern int fspick (int __dfd, const char *__path, unsigned int __flags)
- __THROW;
-
-/* Open the mount point FILENAME in directory DFD using FLAGS. */
-extern int open_tree (int __dfd, const char *__filename, unsigned int __flags)
- __THROW;
-
-/* Change the mount properties of the mount or an entire mount tree. If
- PATH is a relative pathname, then it is interpreted relative to the
- directory referred to by the file descriptor dirfd. Otherwise if DFD is
- the special value AT_FDCWD then PATH is interpreted relative to the current
- working directory of the calling process. */
-extern int mount_setattr (int __dfd, const char *__path, unsigned int __flags,
- struct mount_attr *__uattr, size_t __usize)
- __THROW;
-
-__END_DECLS
-
-#endif /* _SYS_MOUNT_H */
Index: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/sys
===================================================================
--- GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/sys (revision 10)
+++ GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/sys (nonexistent)
Property changes on: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux/sys
___________________________________________________________________
Deleted: svn:ignore
## -1,80 +0,0 ##
-
-# Target build dirs
-.noarch
-.host
-
-.arm32-newlib
-.a33xx-newlib
-.a9xx-newlib
-.h5-newlib
-.s9xx-newlib
-.rk33xx-newlib
-.m1000-newlib
-.riscv64-newlib
-.at91sam7s-newlib
-
-.a1x-glibc
-.a2x-glibc
-.a311x-glibc
-.h3-glibc
-.h5-glibc
-.imx6-glibc
-.imx6ull-glibc
-.jz47xx-glibc
-.p5600-glibc
-.m1000-glibc
-.omap543x-glibc
-.am335x-glibc
-.rk328x-glibc
-.s8xx-glibc
-.s9xx-glibc
-.a9xx-glibc
-.rk33xx-glibc
-.rk339x-glibc
-.a33xx-glibc
-.power8-glibc
-.power9-glibc
-.power8le-glibc
-.power9le-glibc
-.riscv64-glibc
-.i586-glibc
-.i686-glibc
-.x86_64-glibc
-
-# Hidden files (each file)
-.makefile
-.src_requires
-.src_requires_depend
-.dist
-
-# Destinations
-dist
-
-
-# Tarballs
-*.gz
-*.bz2
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Text files
-*.txt
-
-# Default linux config files
-*.defconfig
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux
===================================================================
--- GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux (revision 10)
+++ GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux (nonexistent)
Property changes on: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv/linux
___________________________________________________________________
Deleted: svn:ignore
## -1,80 +0,0 ##
-
-# Target build dirs
-.noarch
-.host
-
-.arm32-newlib
-.a33xx-newlib
-.a9xx-newlib
-.h5-newlib
-.s9xx-newlib
-.rk33xx-newlib
-.m1000-newlib
-.riscv64-newlib
-.at91sam7s-newlib
-
-.a1x-glibc
-.a2x-glibc
-.a311x-glibc
-.h3-glibc
-.h5-glibc
-.imx6-glibc
-.imx6ull-glibc
-.jz47xx-glibc
-.p5600-glibc
-.m1000-glibc
-.omap543x-glibc
-.am335x-glibc
-.rk328x-glibc
-.s8xx-glibc
-.s9xx-glibc
-.a9xx-glibc
-.rk33xx-glibc
-.rk339x-glibc
-.a33xx-glibc
-.power8-glibc
-.power9-glibc
-.power8le-glibc
-.power9le-glibc
-.riscv64-glibc
-.i586-glibc
-.i686-glibc
-.x86_64-glibc
-
-# Hidden files (each file)
-.makefile
-.src_requires
-.src_requires_depend
-.dist
-
-# Destinations
-dist
-
-
-# Tarballs
-*.gz
-*.bz2
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Text files
-*.txt
-
-# Default linux config files
-*.defconfig
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv
===================================================================
--- GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv (revision 10)
+++ GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv (nonexistent)
Property changes on: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix/sysv
___________________________________________________________________
Deleted: svn:ignore
## -1,80 +0,0 ##
-
-# Target build dirs
-.noarch
-.host
-
-.arm32-newlib
-.a33xx-newlib
-.a9xx-newlib
-.h5-newlib
-.s9xx-newlib
-.rk33xx-newlib
-.m1000-newlib
-.riscv64-newlib
-.at91sam7s-newlib
-
-.a1x-glibc
-.a2x-glibc
-.a311x-glibc
-.h3-glibc
-.h5-glibc
-.imx6-glibc
-.imx6ull-glibc
-.jz47xx-glibc
-.p5600-glibc
-.m1000-glibc
-.omap543x-glibc
-.am335x-glibc
-.rk328x-glibc
-.s8xx-glibc
-.s9xx-glibc
-.a9xx-glibc
-.rk33xx-glibc
-.rk339x-glibc
-.a33xx-glibc
-.power8-glibc
-.power9-glibc
-.power8le-glibc
-.power9le-glibc
-.riscv64-glibc
-.i586-glibc
-.i686-glibc
-.x86_64-glibc
-
-# Hidden files (each file)
-.makefile
-.src_requires
-.src_requires_depend
-.dist
-
-# Destinations
-dist
-
-
-# Tarballs
-*.gz
-*.bz2
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Text files
-*.txt
-
-# Default linux config files
-*.defconfig
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix
===================================================================
--- GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix (revision 10)
+++ GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix (nonexistent)
Property changes on: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/unix
___________________________________________________________________
Deleted: svn:ignore
## -1,80 +0,0 ##
-
-# Target build dirs
-.noarch
-.host
-
-.arm32-newlib
-.a33xx-newlib
-.a9xx-newlib
-.h5-newlib
-.s9xx-newlib
-.rk33xx-newlib
-.m1000-newlib
-.riscv64-newlib
-.at91sam7s-newlib
-
-.a1x-glibc
-.a2x-glibc
-.a311x-glibc
-.h3-glibc
-.h5-glibc
-.imx6-glibc
-.imx6ull-glibc
-.jz47xx-glibc
-.p5600-glibc
-.m1000-glibc
-.omap543x-glibc
-.am335x-glibc
-.rk328x-glibc
-.s8xx-glibc
-.s9xx-glibc
-.a9xx-glibc
-.rk33xx-glibc
-.rk339x-glibc
-.a33xx-glibc
-.power8-glibc
-.power9-glibc
-.power8le-glibc
-.power9le-glibc
-.riscv64-glibc
-.i586-glibc
-.i686-glibc
-.x86_64-glibc
-
-# Hidden files (each file)
-.makefile
-.src_requires
-.src_requires_depend
-.dist
-
-# Destinations
-dist
-
-
-# Tarballs
-*.gz
-*.bz2
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Text files
-*.txt
-
-# Default linux config files
-*.defconfig
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/mach/hurd/bits/socket.h
===================================================================
--- GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/mach/hurd/bits/socket.h (revision 10)
+++ GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/mach/hurd/bits/socket.h (nonexistent)
@@ -1,395 +0,0 @@
-/* System-specific socket constants and types. Hurd version.
- Copyright (C) 1991-2022 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/>. */
-
-#ifndef __BITS_SOCKET_H
-#define __BITS_SOCKET_H 1
-
-#ifndef _SYS_SOCKET_H
-# error "Never include <bits/socket.h> directly; use <sys/socket.h> instead."
-#endif
-
-#define __need_size_t
-#include <stddef.h>
-
-#include <bits/wordsize.h>
-#include <sys/types.h>
-
-/* Type for length arguments in socket calls. */
-#ifndef __socklen_t_defined
-typedef __socklen_t socklen_t;
-# define __socklen_t_defined
-#endif
-
-
-/* Types of sockets. */
-enum __socket_type
-{
- SOCK_STREAM = 1, /* Sequenced, reliable, connection-based
- byte streams. */
-#define SOCK_STREAM SOCK_STREAM
- SOCK_DGRAM = 2, /* Connectionless, unreliable datagrams
- of fixed maximum length. */
-#define SOCK_DGRAM SOCK_DGRAM
- SOCK_RAW = 3, /* Raw protocol interface. */
-#define SOCK_RAW SOCK_RAW
- SOCK_RDM = 4, /* Reliably-delivered messages. */
-#define SOCK_RDM SOCK_RDM
- SOCK_SEQPACKET = 5, /* Sequenced, reliable, connection-based,
- datagrams of fixed maximum length. */
-#define SOCK_SEQPACKET SOCK_SEQPACKET
-
-#define SOCK_MAX (SOCK_SEQPACKET + 1)
- /* Mask which covers at least up to SOCK_MASK-1. The
- remaining bits are used as flags. */
-#define SOCK_TYPE_MASK 0xf
-
- /* Flags to be ORed into the type parameter of socket and socketpair and
- used for the flags parameter of accept4. */
-
- SOCK_CLOEXEC = 0x00400000, /* Atomically set close-on-exec flag for the
- new descriptor(s). */
-#define SOCK_CLOEXEC SOCK_CLOEXEC
-
- /* Changed from the O_NONBLOCK value (0x8, which is unusable for us as it is
- conflicting with the original SOCK_* flags' values) to the Linux value
- (04000). TODO: is there a ``better'' value? */
- SOCK_NONBLOCK = 0x0800 /* Atomically mark descriptor(s) as
- non-blocking. */
-#define SOCK_NONBLOCK SOCK_NONBLOCK
-};
-
-/* Protocol families. */
-#define PF_UNSPEC 0 /* Unspecified. */
-#define PF_LOCAL 1 /* Local to host (pipes and file-domain). */
-#define PF_UNIX PF_LOCAL /* Old BSD name for PF_LOCAL. */
-#define PF_FILE PF_LOCAL /* POSIX name for PF_LOCAL. */
-#define PF_INET 2 /* IP protocol family. */
-#define PF_IMPLINK 3 /* ARPAnet IMP protocol. */
-#define PF_PUP 4 /* PUP protocols. */
-#define PF_CHAOS 5 /* MIT Chaos protocols. */
-#define PF_NS 6 /* Xerox NS protocols. */
-#define PF_ISO 7 /* ISO protocols. */
-#define PF_OSI PF_ISO
-#define PF_ECMA 8 /* ECMA protocols. */
-#define PF_DATAKIT 9 /* AT&T Datakit protocols. */
-#define PF_CCITT 10 /* CCITT protocols (X.25 et al). */
-#define PF_SNA 11 /* IBM SNA protocol. */
-#define PF_DECnet 12 /* DECnet protocols. */
-#define PF_DLI 13 /* Direct data link interface. */
-#define PF_LAT 14 /* DEC Local Area Transport protocol. */
-#define PF_HYLINK 15 /* NSC Hyperchannel protocol. */
-#define PF_APPLETALK 16 /* Don't use this. */
-#define PF_ROUTE 17 /* Internal Routing Protocol. */
-#define PF_LINK 18 /* Link layer interface. */
-#define PF_XTP 19 /* eXpress Transfer Protocol (no AF). */
-#define PF_COIP 20 /* Connection-oriented IP, aka ST II. */
-#define PF_CNT 21 /* Computer Network Technology. */
-#define PF_RTIP 22 /* Help Identify RTIP packets. **/
-#define PF_IPX 23 /* Novell Internet Protocol. */
-#define PF_SIP 24 /* Simple Internet Protocol. */
-#define PF_PIP 25 /* Help Identify PIP packets. */
-#define PF_INET6 26 /* IP version 6. */
-#define PF_MAX 27
-
-/* Address families. */
-#define AF_UNSPEC PF_UNSPEC
-#define AF_LOCAL PF_LOCAL
-#define AF_UNIX PF_UNIX
-#define AF_FILE PF_FILE
-#define AF_INET PF_INET
-#define AF_IMPLINK PF_IMPLINK
-#define AF_PUP PF_PUP
-#define AF_CHAOS PF_CHAOS
-#define AF_NS PF_NS
-#define AF_ISO PF_ISO
-#define AF_OSI PF_OSI
-#define AF_ECMA PF_ECMA
-#define AF_DATAKIT PF_DATAKIT
-#define AF_CCITT PF_CCITT
-#define AF_SNA PF_SNA
-#define AF_DECnet PF_DECnet
-#define AF_DLI PF_DLI
-#define AF_LAT PF_LAT
-#define AF_HYLINK PF_HYLINK
-#define AF_APPLETALK PF_APPLETALK
-#define AF_ROUTE PF_ROUTE
-#define AF_LINK PF_LINK
-#ifdef __USE_MISC
-# define pseudo_AF_XTP PF_XTP
-#endif
-#define AF_COIP PF_COIP
-#define AF_CNT PF_CNT
-#ifdef __USE_MISC
-# define pseudo_AF_RTIP PF_RTIP
-#endif
-#define AF_IPX PF_IPX
-#define AF_SIP PF_SIP
-#ifdef __USE_MISC
-# define pseudo_AF_PIP PF_PIP
-#endif
-#define AF_INET6 PF_INET6
-#define AF_MAX PF_MAX
-
-/* Maximum queue length specifiable by listen. */
-#define SOMAXCONN 128 /* 5 on the origional 4.4 BSD. */
-
-/* Get the definition of the macro to define the common sockaddr members. */
-#include <bits/sockaddr.h>
-
-/* Structure describing a generic socket address. */
-struct sockaddr
- {
- __SOCKADDR_COMMON (sa_); /* Common data: address family and length. */
- char sa_data[14]; /* Address data. */
- };
-
-
-/* Structure large enough to hold any socket address (with the historical
- exception of AF_UNIX). */
-#if __WORDSIZE == 64
-# define __ss_aligntype __uint64_t
-#else
-# define __ss_aligntype __uint32_t
-#endif
-#define _SS_PADSIZE \
- (_SS_SIZE - __SOCKADDR_COMMON_SIZE - sizeof (__ss_aligntype))
-
-struct sockaddr_storage
- {
- __SOCKADDR_COMMON (ss_); /* Address family, etc. */
- char __ss_padding[_SS_PADSIZE];
- __ss_aligntype __ss_align; /* Force desired alignment. */
- };
-
-
-/* Bits in the FLAGS argument to `send', `recv', et al. */
-enum
- {
- MSG_OOB = 0x01, /* Process out-of-band data. */
-#define MSG_OOB MSG_OOB
- MSG_PEEK = 0x02, /* Peek at incoming messages. */
-#define MSG_PEEK MSG_PEEK
- MSG_DONTROUTE = 0x04, /* Don't use local routing. */
-#define MSG_DONTROUTE MSG_DONTROUTE
- MSG_EOR = 0x08, /* Data completes record. */
-#define MSG_EOR MSG_EOR
- MSG_TRUNC = 0x10, /* Data discarded before delivery. */
-#define MSG_TRUNC MSG_TRUNC
- MSG_CTRUNC = 0x20, /* Control data lost before delivery. */
-#define MSG_CTRUNC MSG_CTRUNC
- MSG_WAITALL = 0x40, /* Wait for full request or error. */
-#define MSG_WAITALL MSG_WAITALL
- MSG_DONTWAIT = 0x80, /* This message should be nonblocking. */
-#define MSG_DONTWAIT MSG_DONTWAIT
- MSG_NOSIGNAL = 0x0400 /* Do not generate SIGPIPE on EPIPE. */
-#define MSG_NOSIGNAL MSG_NOSIGNAL
- };
-
-
-/* Structure describing messages sent by
- `sendmsg' and received by `recvmsg'. */
-struct msghdr
- {
- void *msg_name; /* Address to send to/receive from. */
- socklen_t msg_namelen; /* Length of address data. */
-
- struct iovec *msg_iov; /* Vector of data to send/receive into. */
- int msg_iovlen; /* Number of elements in the vector. */
-
- void *msg_control; /* Ancillary data (eg BSD filedesc passing). */
- socklen_t msg_controllen; /* Ancillary data buffer length. */
-
- int msg_flags; /* Flags in received message. */
- };
-
-/* Structure used for storage of ancillary data object information. */
-struct cmsghdr
- {
- socklen_t cmsg_len; /* Length of data in cmsg_data plus length
- of cmsghdr structure. */
- int cmsg_level; /* Originating protocol. */
- int cmsg_type; /* Protocol specific type. */
-#if __glibc_c99_flexarr_available
- __extension__ unsigned char __cmsg_data __flexarr; /* Ancillary data. */
-#endif
- };
-
-/* Ancillary data object manipulation macros. */
-#if __glibc_c99_flexarr_available
-# define CMSG_DATA(cmsg) ((cmsg)->__cmsg_data)
-#else
-# define CMSG_DATA(cmsg) ((unsigned char *) ((struct cmsghdr *) (cmsg) + 1))
-#endif
-
-#define CMSG_NXTHDR(mhdr, cmsg) __cmsg_nxthdr (mhdr, cmsg)
-
-#define CMSG_FIRSTHDR(mhdr) \
- ((size_t) (mhdr)->msg_controllen >= sizeof (struct cmsghdr) \
- ? (struct cmsghdr *) (mhdr)->msg_control : (struct cmsghdr *) 0)
-
-#define CMSG_ALIGN(len) (((len) + sizeof (size_t) - 1) \
- & (size_t) ~(sizeof (size_t) - 1))
-#define CMSG_SPACE(len) (CMSG_ALIGN (len) \
- + CMSG_ALIGN (sizeof (struct cmsghdr)))
-#define CMSG_LEN(len) (CMSG_ALIGN (sizeof (struct cmsghdr)) + (len))
-
-/* Given a length, return the additional padding necessary such that
- len + __CMSG_PADDING(len) == CMSG_ALIGN (len). */
-#define __CMSG_PADDING(len) ((sizeof (size_t) \
- - ((len) & (sizeof (size_t) - 1))) \
- & (sizeof (size_t) - 1))
-
-extern struct cmsghdr *__cmsg_nxthdr (struct msghdr *__mhdr,
- struct cmsghdr *__cmsg) __THROW;
-#ifdef __USE_EXTERN_INLINES
-# ifndef _EXTERN_INLINE
-# define _EXTERN_INLINE __extern_inline
-# endif
-_EXTERN_INLINE struct cmsghdr *
-__NTH (__cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg))
-{
- /* We may safely assume that __cmsg lies between __mhdr->msg_control and
- __mhdr->msg_controllen because the user is required to obtain the first
- cmsg via CMSG_FIRSTHDR, set its length, then obtain subsequent cmsgs
- via CMSG_NXTHDR, setting lengths along the way. However, we don't yet
- trust the value of __cmsg->cmsg_len and therefore do not use it in any
- pointer arithmetic until we check its value. */
-
- unsigned char * __msg_control_ptr = (unsigned char *) __mhdr->msg_control;
- unsigned char * __cmsg_ptr = (unsigned char *) __cmsg;
-
- size_t __size_needed = sizeof (struct cmsghdr)
- + __CMSG_PADDING (__cmsg->cmsg_len);
-
- /* The current header is malformed, too small to be a full header. */
- if ((size_t) __cmsg->cmsg_len < sizeof (struct cmsghdr))
- return (struct cmsghdr *) 0;
-
- /* There isn't enough space between __cmsg and the end of the buffer to
- hold the current cmsg *and* the next one. */
- if (((size_t)
- (__msg_control_ptr + __mhdr->msg_controllen - __cmsg_ptr)
- < __size_needed)
- || ((size_t)
- (__msg_control_ptr + __mhdr->msg_controllen - __cmsg_ptr
- - __size_needed)
- < __cmsg->cmsg_len))
-
- return (struct cmsghdr *) 0;
-
- /* Now, we trust cmsg_len and can use it to find the next header. */
- __cmsg = (struct cmsghdr *) ((unsigned char *) __cmsg
- + CMSG_ALIGN (__cmsg->cmsg_len));
- return __cmsg;
-}
-#endif /* Use `extern inline'. */
-
-/* Socket level message types. */
-enum
- {
- SCM_RIGHTS = 0x01, /* Access rights (array of int). */
-#define SCM_RIGHTS SCM_RIGHTS
- SCM_TIMESTAMP = 0x02, /* Timestamp (struct timeval). */
-#define SCM_TIMESTAMP SCM_TIMESTAMP
- SCM_CREDS = 0x03 /* Process creds (struct cmsgcred). */
-#define SCM_CREDS SCM_CREDS
- };
-
-#ifdef __USE_MISC
-/* Unfortunately, BSD practice dictates this structure be of fixed size.
- If there are more than CMGROUP_MAX groups, the list is truncated.
- (On GNU systems, the `cmcred_euid' field is just the first in the
- list of effective UIDs.) */
-#define CMGROUP_MAX 16
-
-/* Structure delivered by SCM_CREDS. This describes the identity of the
- sender of the data simultaneously received on the socket. By BSD
- convention, this is included only when a sender on a AF_LOCAL socket
- sends cmsg data of this type and size; the sender's structure is
- ignored, and the system fills in the various IDs of the sender process. */
-struct cmsgcred
- {
- __pid_t cmcred_pid;
- __uid_t cmcred_uid;
- __uid_t cmcred_euid;
- __gid_t cmcred_gid;
- int cmcred_ngroups;
- __gid_t cmcred_groups[CMGROUP_MAX];
- };
-#endif
-
-/* Protocol number used to manipulate socket-level options
- with `getsockopt' and `setsockopt'. */
-#define SOL_SOCKET 0xffff
-
-/* Socket-level options for `getsockopt' and `setsockopt'. */
-enum
- {
- SO_DEBUG = 0x0001, /* Record debugging information. */
-#define SO_DEBUG SO_DEBUG
- SO_ACCEPTCONN = 0x0002, /* Accept connections on socket. */
-#define SO_ACCEPTCONN SO_ACCEPTCONN
- SO_REUSEADDR = 0x0004, /* Allow reuse of local addresses. */
-#define SO_REUSEADDR SO_REUSEADDR
- SO_KEEPALIVE = 0x0008, /* Keep connections alive and send
- SIGPIPE when they die. */
-#define SO_KEEPALIVE SO_KEEPALIVE
- SO_DONTROUTE = 0x0010, /* Don't do local routing. */
-#define SO_DONTROUTE SO_DONTROUTE
- SO_BROADCAST = 0x0020, /* Allow transmission of
- broadcast messages. */
-#define SO_BROADCAST SO_BROADCAST
- SO_USELOOPBACK = 0x0040, /* Use the software loopback to avoid
- hardware use when possible. */
-#define SO_USELOOPBACK SO_USELOOPBACK
- SO_LINGER = 0x0080, /* Block on close of a reliable
- socket to transmit pending data. */
-#define SO_LINGER SO_LINGER
- SO_OOBINLINE = 0x0100, /* Receive out-of-band data in-band. */
-#define SO_OOBINLINE SO_OOBINLINE
- SO_REUSEPORT = 0x0200, /* Allow local address and port reuse. */
-#define SO_REUSEPORT SO_REUSEPORT
- SO_SNDBUF = 0x1001, /* Send buffer size. */
-#define SO_SNDBUF SO_SNDBUF
- SO_RCVBUF = 0x1002, /* Receive buffer. */
-#define SO_RCVBUF SO_RCVBUF
- SO_SNDLOWAT = 0x1003, /* Send low-water mark. */
-#define SO_SNDLOWAT SO_SNDLOWAT
- SO_RCVLOWAT = 0x1004, /* Receive low-water mark. */
-#define SO_RCVLOWAT SO_RCVLOWAT
- SO_SNDTIMEO = 0x1005, /* Send timeout. */
-#define SO_SNDTIMEO SO_SNDTIMEO
- SO_RCVTIMEO = 0x1006, /* Receive timeout. */
-#define SO_RCVTIMEO SO_RCVTIMEO
- SO_ERROR = 0x1007, /* Get and clear error status. */
-#define SO_ERROR SO_ERROR
- SO_STYLE = 0x1008, /* Get socket connection style. */
-#define SO_STYLE SO_STYLE
- SO_TYPE = SO_STYLE /* Compatible name for SO_STYLE. */
-#define SO_TYPE SO_TYPE
- };
-
-/* Structure used to manipulate the SO_LINGER option. */
-struct linger
- {
- int l_onoff; /* Nonzero to linger on close. */
- int l_linger; /* Time to linger. */
- };
-
-#endif /* bits/socket.h */
Index: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/mach/hurd/bits
===================================================================
--- GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/mach/hurd/bits (revision 10)
+++ GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/mach/hurd/bits (nonexistent)
Property changes on: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/mach/hurd/bits
___________________________________________________________________
Deleted: svn:ignore
## -1,80 +0,0 ##
-
-# Target build dirs
-.noarch
-.host
-
-.arm32-newlib
-.a33xx-newlib
-.a9xx-newlib
-.h5-newlib
-.s9xx-newlib
-.rk33xx-newlib
-.m1000-newlib
-.riscv64-newlib
-.at91sam7s-newlib
-
-.a1x-glibc
-.a2x-glibc
-.a311x-glibc
-.h3-glibc
-.h5-glibc
-.imx6-glibc
-.imx6ull-glibc
-.jz47xx-glibc
-.p5600-glibc
-.m1000-glibc
-.omap543x-glibc
-.am335x-glibc
-.rk328x-glibc
-.s8xx-glibc
-.s9xx-glibc
-.a9xx-glibc
-.rk33xx-glibc
-.rk339x-glibc
-.a33xx-glibc
-.power8-glibc
-.power9-glibc
-.power8le-glibc
-.power9le-glibc
-.riscv64-glibc
-.i586-glibc
-.i686-glibc
-.x86_64-glibc
-
-# Hidden files (each file)
-.makefile
-.src_requires
-.src_requires_depend
-.dist
-
-# Destinations
-dist
-
-
-# Tarballs
-*.gz
-*.bz2
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Text files
-*.txt
-
-# Default linux config files
-*.defconfig
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/mach/hurd
===================================================================
--- GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/mach/hurd (revision 10)
+++ GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/mach/hurd (nonexistent)
Property changes on: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/mach/hurd
___________________________________________________________________
Deleted: svn:ignore
## -1,80 +0,0 ##
-
-# Target build dirs
-.noarch
-.host
-
-.arm32-newlib
-.a33xx-newlib
-.a9xx-newlib
-.h5-newlib
-.s9xx-newlib
-.rk33xx-newlib
-.m1000-newlib
-.riscv64-newlib
-.at91sam7s-newlib
-
-.a1x-glibc
-.a2x-glibc
-.a311x-glibc
-.h3-glibc
-.h5-glibc
-.imx6-glibc
-.imx6ull-glibc
-.jz47xx-glibc
-.p5600-glibc
-.m1000-glibc
-.omap543x-glibc
-.am335x-glibc
-.rk328x-glibc
-.s8xx-glibc
-.s9xx-glibc
-.a9xx-glibc
-.rk33xx-glibc
-.rk339x-glibc
-.a33xx-glibc
-.power8-glibc
-.power9-glibc
-.power8le-glibc
-.power9le-glibc
-.riscv64-glibc
-.i586-glibc
-.i686-glibc
-.x86_64-glibc
-
-# Hidden files (each file)
-.makefile
-.src_requires
-.src_requires_depend
-.dist
-
-# Destinations
-dist
-
-
-# Tarballs
-*.gz
-*.bz2
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Text files
-*.txt
-
-# Default linux config files
-*.defconfig
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/mach
===================================================================
--- GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/mach (revision 10)
+++ GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/mach (nonexistent)
Property changes on: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps/mach
___________________________________________________________________
Deleted: svn:ignore
## -1,80 +0,0 ##
-
-# Target build dirs
-.noarch
-.host
-
-.arm32-newlib
-.a33xx-newlib
-.a9xx-newlib
-.h5-newlib
-.s9xx-newlib
-.rk33xx-newlib
-.m1000-newlib
-.riscv64-newlib
-.at91sam7s-newlib
-
-.a1x-glibc
-.a2x-glibc
-.a311x-glibc
-.h3-glibc
-.h5-glibc
-.imx6-glibc
-.imx6ull-glibc
-.jz47xx-glibc
-.p5600-glibc
-.m1000-glibc
-.omap543x-glibc
-.am335x-glibc
-.rk328x-glibc
-.s8xx-glibc
-.s9xx-glibc
-.a9xx-glibc
-.rk33xx-glibc
-.rk339x-glibc
-.a33xx-glibc
-.power8-glibc
-.power9-glibc
-.power8le-glibc
-.power9le-glibc
-.riscv64-glibc
-.i586-glibc
-.i686-glibc
-.x86_64-glibc
-
-# Hidden files (each file)
-.makefile
-.src_requires
-.src_requires_depend
-.dist
-
-# Destinations
-dist
-
-
-# Tarballs
-*.gz
-*.bz2
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Text files
-*.txt
-
-# Default linux config files
-*.defconfig
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps
===================================================================
--- GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps (revision 10)
+++ GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps (nonexistent)
Property changes on: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/sysdeps
___________________________________________________________________
Deleted: svn:ignore
## -1,80 +0,0 ##
-
-# Target build dirs
-.noarch
-.host
-
-.arm32-newlib
-.a33xx-newlib
-.a9xx-newlib
-.h5-newlib
-.s9xx-newlib
-.rk33xx-newlib
-.m1000-newlib
-.riscv64-newlib
-.at91sam7s-newlib
-
-.a1x-glibc
-.a2x-glibc
-.a311x-glibc
-.h3-glibc
-.h5-glibc
-.imx6-glibc
-.imx6ull-glibc
-.jz47xx-glibc
-.p5600-glibc
-.m1000-glibc
-.omap543x-glibc
-.am335x-glibc
-.rk328x-glibc
-.s8xx-glibc
-.s9xx-glibc
-.a9xx-glibc
-.rk33xx-glibc
-.rk339x-glibc
-.a33xx-glibc
-.power8-glibc
-.power9-glibc
-.power8le-glibc
-.power9le-glibc
-.riscv64-glibc
-.i586-glibc
-.i686-glibc
-.x86_64-glibc
-
-# Hidden files (each file)
-.makefile
-.src_requires
-.src_requires_depend
-.dist
-
-# Destinations
-dist
-
-
-# Tarballs
-*.gz
-*.bz2
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Text files
-*.txt
-
-# Default linux config files
-*.defconfig
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/dlfcn/dlopen.c
===================================================================
--- GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/dlfcn/dlopen.c (revision 10)
+++ GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/dlfcn/dlopen.c (nonexistent)
@@ -1,103 +0,0 @@
-/* Load a shared object at run time.
- Copyright (C) 1995-2022 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 <dlfcn.h>
-#include <libintl.h>
-#include <stddef.h>
-#include <unistd.h>
-#include <ldsodefs.h>
-#include <shlib-compat.h>
-
-struct dlopen_args
-{
- /* The arguments for dlopen_doit. */
- const char *file;
- int mode;
- /* The return value of dlopen_doit. */
- void *new;
- /* Address of the caller. */
- const void *caller;
-};
-
-
-/* Non-shared code has no support for multiple namespaces. */
-#ifdef SHARED
-# define NS __LM_ID_CALLER
-#else
-# define NS LM_ID_BASE
-#endif
-
-
-static void
-dlopen_doit (void *a)
-{
- struct dlopen_args *args = (struct dlopen_args *) a;
-
- if (args->mode & ~(RTLD_BINDING_MASK | RTLD_NOLOAD | RTLD_DEEPBIND
- | RTLD_GLOBAL | RTLD_LOCAL | RTLD_NODELETE
- | __RTLD_SPROF))
- _dl_signal_error (0, NULL, NULL, _("invalid mode parameter"));
-
- args->new = GLRO(dl_open) (args->file ?: "", args->mode | __RTLD_DLOPEN,
- args->caller,
- args->file == NULL ? LM_ID_BASE : NS,
- __libc_argc, __libc_argv, __environ);
-}
-
-
-static void *
-dlopen_implementation (const char *file, int mode, void *dl_caller)
-{
- struct dlopen_args args;
- args.file = file;
- args.mode = mode;
- args.caller = dl_caller;
-
- return _dlerror_run (dlopen_doit, &args) ? NULL : args.new;
-}
-
-#ifdef SHARED
-void *
-___dlopen (const char *file, int mode)
-{
- if (GLRO (dl_dlfcn_hook) != NULL)
- return GLRO (dl_dlfcn_hook)->dlopen (file, mode, RETURN_ADDRESS (0));
- else
- return dlopen_implementation (file, mode, RETURN_ADDRESS (0));
-}
-versioned_symbol (libc, ___dlopen, dlopen, GLIBC_2_34);
-
-# if OTHER_SHLIB_COMPAT (libdl, GLIBC_2_1, GLIBC_2_34)
-compat_symbol (libdl, ___dlopen, dlopen, GLIBC_2_1);
-# endif
-#else /* !SHARED */
-/* Also used with _dlfcn_hook. */
-void *
-__dlopen (const char *file, int mode, void *dl_caller)
-{
- return dlopen_implementation (file, mode, dl_caller);
-}
-
-void *
-___dlopen (const char *file, int mode)
-{
- return __dlopen (file, mode, RETURN_ADDRESS (0));
-}
-weak_alias (___dlopen, dlopen)
-static_link_warning (dlopen)
-#endif /* !SHARED */
Index: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/dlfcn
===================================================================
--- GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/dlfcn (revision 10)
+++ GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/dlfcn (nonexistent)
Property changes on: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/dlfcn
___________________________________________________________________
Deleted: svn:ignore
## -1,80 +0,0 ##
-
-# Target build dirs
-.noarch
-.host
-
-.arm32-newlib
-.a33xx-newlib
-.a9xx-newlib
-.h5-newlib
-.s9xx-newlib
-.rk33xx-newlib
-.m1000-newlib
-.riscv64-newlib
-.at91sam7s-newlib
-
-.a1x-glibc
-.a2x-glibc
-.a311x-glibc
-.h3-glibc
-.h5-glibc
-.imx6-glibc
-.imx6ull-glibc
-.jz47xx-glibc
-.p5600-glibc
-.m1000-glibc
-.omap543x-glibc
-.am335x-glibc
-.rk328x-glibc
-.s8xx-glibc
-.s9xx-glibc
-.a9xx-glibc
-.rk33xx-glibc
-.rk339x-glibc
-.a33xx-glibc
-.power8-glibc
-.power9-glibc
-.power8le-glibc
-.power9le-glibc
-.riscv64-glibc
-.i586-glibc
-.i686-glibc
-.x86_64-glibc
-
-# Hidden files (each file)
-.makefile
-.src_requires
-.src_requires_depend
-.dist
-
-# Destinations
-dist
-
-
-# Tarballs
-*.gz
-*.bz2
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Text files
-*.txt
-
-# Default linux config files
-*.defconfig
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/wcsmbs/uchar.h
===================================================================
--- GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/wcsmbs/uchar.h (revision 10)
+++ GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/wcsmbs/uchar.h (nonexistent)
@@ -1,96 +0,0 @@
-/* Copyright (C) 2011-2022 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/>. */
-
-/*
- * ISO C11 Standard: 7.28
- * Unicode utilities <uchar.h>
- */
-
-#ifndef _UCHAR_H
-#define _UCHAR_H 1
-
-#include <features.h>
-
-#define __need_size_t
-#include <stddef.h>
-
-#include <bits/types.h>
-#include <bits/types/mbstate_t.h>
-
-/* Declare the C2x char8_t typedef in C2x modes, but only if the C++
- __cpp_char8_t feature test macro is not defined. */
-#if __GLIBC_USE (ISOC2X) && !defined __cpp_char8_t
-#if __GNUC_PREREQ (10, 0) && defined __cplusplus
-/* Suppress the diagnostic regarding char8_t being a keyword in C++20. */
-# pragma GCC diagnostic push
-# pragma GCC diagnostic ignored "-Wc++20-compat"
-#endif
-/* Define the 8-bit character type. */
-typedef unsigned char char8_t;
-#if __GNUC_PREREQ (10, 0) && defined __cplusplus
-# pragma GCC diagnostic pop
-#endif
-#endif
-
-#ifndef __USE_ISOCXX11
-/* Define the 16-bit and 32-bit character types. */
-typedef __uint_least16_t char16_t;
-typedef __uint_least32_t char32_t;
-#endif
-
-
-__BEGIN_DECLS
-
-/* Declare the C2x mbrtoc8() and c8rtomb() functions in C2x modes or if
- the C++ __cpp_char8_t feature test macro is defined. */
-#if __GLIBC_USE (ISOC2X) || defined __cpp_char8_t
-/* Write char8_t representation of multibyte character pointed
- to by S to PC8. */
-extern size_t mbrtoc8 (char8_t *__restrict __pc8,
- const char *__restrict __s, size_t __n,
- mbstate_t *__restrict __p) __THROW;
-
-/* Write multibyte representation of char8_t C8 to S. */
-extern size_t c8rtomb (char *__restrict __s, char8_t __c8,
- mbstate_t *__restrict __ps) __THROW;
-#endif
-
-/* Write char16_t representation of multibyte character pointed
- to by S to PC16. */
-extern size_t mbrtoc16 (char16_t *__restrict __pc16,
- const char *__restrict __s, size_t __n,
- mbstate_t *__restrict __p) __THROW;
-
-/* Write multibyte representation of char16_t C16 to S. */
-extern size_t c16rtomb (char *__restrict __s, char16_t __c16,
- mbstate_t *__restrict __ps) __THROW;
-
-
-
-/* Write char32_t representation of multibyte character pointed
- to by S to PC32. */
-extern size_t mbrtoc32 (char32_t *__restrict __pc32,
- const char *__restrict __s, size_t __n,
- mbstate_t *__restrict __p) __THROW;
-
-/* Write multibyte representation of char32_t C32 to S. */
-extern size_t c32rtomb (char *__restrict __s, char32_t __c32,
- mbstate_t *__restrict __ps) __THROW;
-
-__END_DECLS
-
-#endif /* uchar.h */
Index: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/wcsmbs/wchar.h
===================================================================
--- GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/wcsmbs/wchar.h (revision 10)
+++ GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/wcsmbs/wchar.h (nonexistent)
@@ -1,884 +0,0 @@
-/* Copyright (C) 1995-2022 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/>. */
-
-/*
- * ISO C99 Standard: 7.24
- * Extended multibyte and wide character utilities <wchar.h>
- */
-
-#ifndef _WCHAR_H
-#define _WCHAR_H 1
-
-#define __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION
-#include <bits/libc-header-start.h>
-
-/* Gather machine dependent type support. */
-#include <bits/floatn.h>
-
-#define __need_size_t
-#define __need_wchar_t
-#define __need_NULL
-#include <stddef.h>
-
-#define __need___va_list
-#include <stdarg.h>
-
-#include <bits/wchar.h>
-#include <bits/types/wint_t.h>
-#include <bits/types/mbstate_t.h>
-#include <bits/types/__FILE.h>
-
-#if defined __USE_UNIX98 || defined __USE_XOPEN2K
-# include <bits/types/FILE.h>
-#endif
-#ifdef __USE_XOPEN2K8
-# include <bits/types/locale_t.h>
-#endif
-
-/* Tell the caller that we provide correct C++ prototypes. */
-#if defined __cplusplus && __GNUC_PREREQ (4, 4)
-# define __CORRECT_ISO_CPP_WCHAR_H_PROTO
-#endif
-
-#ifndef WCHAR_MIN
-/* These constants might also be defined in <inttypes.h>. */
-# define WCHAR_MIN __WCHAR_MIN
-# define WCHAR_MAX __WCHAR_MAX
-#endif
-
-#ifndef WEOF
-# define WEOF (0xffffffffu)
-#endif
-
-/* All versions of XPG prior to the publication of ISO C99 required
- the bulk of <wctype.h>'s declarations to appear in this header
- (because <wctype.h> did not exist prior to C99). In POSIX.1-2001
- those declarations were marked as XSI extensions; in -2008 they
- were additionally marked as obsolescent. _GNU_SOURCE mode
- anticipates the removal of these declarations in the next revision
- of POSIX. */
-#if (defined __USE_XOPEN && !defined __USE_GNU \
- && !(defined __USE_XOPEN2K && !defined __USE_XOPEN2KXSI))
-# include <bits/wctype-wchar.h>
-#endif
-
-__BEGIN_DECLS
-
-/* This incomplete type is defined in <time.h> but needed here because
- of `wcsftime'. */
-struct tm;
-
-
-/* Copy SRC to DEST. */
-extern wchar_t *wcscpy (wchar_t *__restrict __dest,
- const wchar_t *__restrict __src)
- __THROW __nonnull ((1, 2));
-
-/* Copy no more than N wide-characters of SRC to DEST. */
-extern wchar_t *wcsncpy (wchar_t *__restrict __dest,
- const wchar_t *__restrict __src, size_t __n)
- __THROW __nonnull ((1, 2));
-
-/* Append SRC onto DEST. */
-extern wchar_t *wcscat (wchar_t *__restrict __dest,
- const wchar_t *__restrict __src)
- __THROW __nonnull ((1, 2));
-/* Append no more than N wide-characters of SRC onto DEST. */
-extern wchar_t *wcsncat (wchar_t *__restrict __dest,
- const wchar_t *__restrict __src, size_t __n)
- __THROW __nonnull ((1, 2));
-
-/* Compare S1 and S2. */
-extern int wcscmp (const wchar_t *__s1, const wchar_t *__s2)
- __THROW __attribute_pure__ __nonnull ((1, 2));
-/* Compare N wide-characters of S1 and S2. */
-extern int wcsncmp (const wchar_t *__s1, const wchar_t *__s2, size_t __n)
- __THROW __attribute_pure__ __nonnull ((1, 2));
-
-#ifdef __USE_XOPEN2K8
-/* Compare S1 and S2, ignoring case. */
-extern int wcscasecmp (const wchar_t *__s1, const wchar_t *__s2) __THROW;
-
-/* Compare no more than N chars of S1 and S2, ignoring case. */
-extern int wcsncasecmp (const wchar_t *__s1, const wchar_t *__s2,
- size_t __n) __THROW;
-
-/* Similar to the two functions above but take the information from
- the provided locale and not the global locale. */
-extern int wcscasecmp_l (const wchar_t *__s1, const wchar_t *__s2,
- locale_t __loc) __THROW;
-
-extern int wcsncasecmp_l (const wchar_t *__s1, const wchar_t *__s2,
- size_t __n, locale_t __loc) __THROW;
-#endif
-
-/* Compare S1 and S2, both interpreted as appropriate to the
- LC_COLLATE category of the current locale. */
-extern int wcscoll (const wchar_t *__s1, const wchar_t *__s2) __THROW;
-/* Transform S2 into array pointed to by S1 such that if wcscmp is
- applied to two transformed strings the result is the as applying
- `wcscoll' to the original strings. */
-extern size_t wcsxfrm (wchar_t *__restrict __s1,
- const wchar_t *__restrict __s2, size_t __n) __THROW;
-
-#ifdef __USE_XOPEN2K8
-/* Similar to the two functions above but take the information from
- the provided locale and not the global locale. */
-
-/* Compare S1 and S2, both interpreted as appropriate to the
- LC_COLLATE category of the given locale. */
-extern int wcscoll_l (const wchar_t *__s1, const wchar_t *__s2,
- locale_t __loc) __THROW;
-
-/* Transform S2 into array pointed to by S1 such that if wcscmp is
- applied to two transformed strings the result is the as applying
- `wcscoll' to the original strings. */
-extern size_t wcsxfrm_l (wchar_t *__s1, const wchar_t *__s2,
- size_t __n, locale_t __loc) __THROW;
-
-/* Duplicate S, returning an identical malloc'd string. */
-extern wchar_t *wcsdup (const wchar_t *__s) __THROW
- __attribute_malloc__ __attr_dealloc_free;
-#endif
-
-/* Find the first occurrence of WC in WCS. */
-#ifdef __CORRECT_ISO_CPP_WCHAR_H_PROTO
-extern "C++" wchar_t *wcschr (wchar_t *__wcs, wchar_t __wc)
- __THROW __asm ("wcschr") __attribute_pure__;
-extern "C++" const wchar_t *wcschr (const wchar_t *__wcs, wchar_t __wc)
- __THROW __asm ("wcschr") __attribute_pure__;
-#else
-extern wchar_t *wcschr (const wchar_t *__wcs, wchar_t __wc)
- __THROW __attribute_pure__;
-#endif
-/* Find the last occurrence of WC in WCS. */
-#ifdef __CORRECT_ISO_CPP_WCHAR_H_PROTO
-extern "C++" wchar_t *wcsrchr (wchar_t *__wcs, wchar_t __wc)
- __THROW __asm ("wcsrchr") __attribute_pure__;
-extern "C++" const wchar_t *wcsrchr (const wchar_t *__wcs, wchar_t __wc)
- __THROW __asm ("wcsrchr") __attribute_pure__;
-#else
-extern wchar_t *wcsrchr (const wchar_t *__wcs, wchar_t __wc)
- __THROW __attribute_pure__;
-#endif
-
-#ifdef __USE_GNU
-/* This function is similar to `wcschr'. But it returns a pointer to
- the closing NUL wide character in case C is not found in S. */
-extern wchar_t *wcschrnul (const wchar_t *__s, wchar_t __wc)
- __THROW __attribute_pure__;
-#endif
-
-/* Return the length of the initial segmet of WCS which
- consists entirely of wide characters not in REJECT. */
-extern size_t wcscspn (const wchar_t *__wcs, const wchar_t *__reject)
- __THROW __attribute_pure__;
-/* Return the length of the initial segmet of WCS which
- consists entirely of wide characters in ACCEPT. */
-extern size_t wcsspn (const wchar_t *__wcs, const wchar_t *__accept)
- __THROW __attribute_pure__;
-/* Find the first occurrence in WCS of any character in ACCEPT. */
-#ifdef __CORRECT_ISO_CPP_WCHAR_H_PROTO
-extern "C++" wchar_t *wcspbrk (wchar_t *__wcs, const wchar_t *__accept)
- __THROW __asm ("wcspbrk") __attribute_pure__;
-extern "C++" const wchar_t *wcspbrk (const wchar_t *__wcs,
- const wchar_t *__accept)
- __THROW __asm ("wcspbrk") __attribute_pure__;
-#else
-extern wchar_t *wcspbrk (const wchar_t *__wcs, const wchar_t *__accept)
- __THROW __attribute_pure__;
-#endif
-/* Find the first occurrence of NEEDLE in HAYSTACK. */
-#ifdef __CORRECT_ISO_CPP_WCHAR_H_PROTO
-extern "C++" wchar_t *wcsstr (wchar_t *__haystack, const wchar_t *__needle)
- __THROW __asm ("wcsstr") __attribute_pure__;
-extern "C++" const wchar_t *wcsstr (const wchar_t *__haystack,
- const wchar_t *__needle)
- __THROW __asm ("wcsstr") __attribute_pure__;
-#else
-extern wchar_t *wcsstr (const wchar_t *__haystack, const wchar_t *__needle)
- __THROW __attribute_pure__;
-#endif
-
-/* Divide WCS into tokens separated by characters in DELIM. */
-extern wchar_t *wcstok (wchar_t *__restrict __s,
- const wchar_t *__restrict __delim,
- wchar_t **__restrict __ptr) __THROW;
-
-/* Return the number of wide characters in S. */
-extern size_t wcslen (const wchar_t *__s) __THROW __attribute_pure__;
-
-#ifdef __USE_XOPEN
-/* Another name for `wcsstr' from XPG4. */
-# ifdef __CORRECT_ISO_CPP_WCHAR_H_PROTO
-extern "C++" wchar_t *wcswcs (wchar_t *__haystack, const wchar_t *__needle)
- __THROW __asm ("wcswcs") __attribute_pure__;
-extern "C++" const wchar_t *wcswcs (const wchar_t *__haystack,
- const wchar_t *__needle)
- __THROW __asm ("wcswcs") __attribute_pure__;
-# else
-extern wchar_t *wcswcs (const wchar_t *__haystack, const wchar_t *__needle)
- __THROW __attribute_pure__;
-# endif
-#endif
-
-#ifdef __USE_XOPEN2K8
-/* Return the number of wide characters in S, but at most MAXLEN. */
-extern size_t wcsnlen (const wchar_t *__s, size_t __maxlen)
- __THROW __attribute_pure__;
-#endif
-
-
-/* Search N wide characters of S for C. */
-#ifdef __CORRECT_ISO_CPP_WCHAR_H_PROTO
-extern "C++" wchar_t *wmemchr (wchar_t *__s, wchar_t __c, size_t __n)
- __THROW __asm ("wmemchr") __attribute_pure__;
-extern "C++" const wchar_t *wmemchr (const wchar_t *__s, wchar_t __c,
- size_t __n)
- __THROW __asm ("wmemchr") __attribute_pure__;
-#else
-extern wchar_t *wmemchr (const wchar_t *__s, wchar_t __c, size_t __n)
- __THROW __attribute_pure__;
-#endif
-
-/* Compare N wide characters of S1 and S2. */
-extern int wmemcmp (const wchar_t *__s1, const wchar_t *__s2, size_t __n)
- __THROW __attribute_pure__;
-
-/* Copy N wide characters of SRC to DEST. */
-extern wchar_t *wmemcpy (wchar_t *__restrict __s1,
- const wchar_t *__restrict __s2, size_t __n) __THROW;
-
-/* Copy N wide characters of SRC to DEST, guaranteeing
- correct behavior for overlapping strings. */
-extern wchar_t *wmemmove (wchar_t *__s1, const wchar_t *__s2, size_t __n)
- __THROW;
-
-/* Set N wide characters of S to C. */
-extern wchar_t *wmemset (wchar_t *__s, wchar_t __c, size_t __n) __THROW;
-
-#ifdef __USE_GNU
-/* Copy N wide characters of SRC to DEST and return pointer to following
- wide character. */
-extern wchar_t *wmempcpy (wchar_t *__restrict __s1,
- const wchar_t *__restrict __s2, size_t __n)
- __THROW;
-#endif
-
-
-/* Determine whether C constitutes a valid (one-byte) multibyte
- character. */
-extern wint_t btowc (int __c) __THROW;
-
-/* Determine whether C corresponds to a member of the extended
- character set whose multibyte representation is a single byte. */
-extern int wctob (wint_t __c) __THROW;
-
-/* Determine whether PS points to an object representing the initial
- state. */
-extern int mbsinit (const mbstate_t *__ps) __THROW __attribute_pure__;
-
-/* Write wide character representation of multibyte character pointed
- to by S to PWC. */
-extern size_t mbrtowc (wchar_t *__restrict __pwc,
- const char *__restrict __s, size_t __n,
- mbstate_t *__restrict __p) __THROW;
-
-/* Write multibyte representation of wide character WC to S. */
-extern size_t wcrtomb (char *__restrict __s, wchar_t __wc,
- mbstate_t *__restrict __ps) __THROW;
-
-/* Return number of bytes in multibyte character pointed to by S. */
-extern size_t __mbrlen (const char *__restrict __s, size_t __n,
- mbstate_t *__restrict __ps) __THROW;
-extern size_t mbrlen (const char *__restrict __s, size_t __n,
- mbstate_t *__restrict __ps) __THROW;
-
-#ifdef __USE_EXTERN_INLINES
-/* Define inline function as optimization. */
-
-/* We can use the BTOWC and WCTOB optimizations since we know that all
- locales must use ASCII encoding for the values in the ASCII range
- and because the wchar_t encoding is always ISO 10646. */
-extern wint_t __btowc_alias (int __c) __asm ("btowc");
-__extern_inline wint_t
-__NTH (btowc (int __c))
-{ return (__builtin_constant_p (__c) && __c >= '\0' && __c <= '\x7f'
- ? (wint_t) __c : __btowc_alias (__c)); }
-
-extern int __wctob_alias (wint_t __c) __asm ("wctob");
-__extern_inline int
-__NTH (wctob (wint_t __wc))
-{ return (__builtin_constant_p (__wc) && __wc >= L'\0' && __wc <= L'\x7f'
- ? (int) __wc : __wctob_alias (__wc)); }
-
-__extern_inline size_t
-__NTH (mbrlen (const char *__restrict __s, size_t __n,
- mbstate_t *__restrict __ps))
-{ return (__ps != NULL
- ? mbrtowc (NULL, __s, __n, __ps) : __mbrlen (__s, __n, NULL)); }
-#endif
-
-/* Write wide character representation of multibyte character string
- SRC to DST. */
-extern size_t mbsrtowcs (wchar_t *__restrict __dst,
- const char **__restrict __src, size_t __len,
- mbstate_t *__restrict __ps) __THROW;
-
-/* Write multibyte character representation of wide character string
- SRC to DST. */
-extern size_t wcsrtombs (char *__restrict __dst,
- const wchar_t **__restrict __src, size_t __len,
- mbstate_t *__restrict __ps) __THROW;
-
-
-#ifdef __USE_XOPEN2K8
-/* Write wide character representation of at most NMC bytes of the
- multibyte character string SRC to DST. */
-extern size_t mbsnrtowcs (wchar_t *__restrict __dst,
- const char **__restrict __src, size_t __nmc,
- size_t __len, mbstate_t *__restrict __ps) __THROW;
-
-/* Write multibyte character representation of at most NWC characters
- from the wide character string SRC to DST. */
-extern size_t wcsnrtombs (char *__restrict __dst,
- const wchar_t **__restrict __src,
- size_t __nwc, size_t __len,
- mbstate_t *__restrict __ps) __THROW;
-#endif /* use POSIX 2008 */
-
-
-/* The following functions are extensions found in X/Open CAE. */
-#ifdef __USE_XOPEN
-/* Determine number of column positions required for C. */
-extern int wcwidth (wchar_t __c) __THROW;
-
-/* Determine number of column positions required for first N wide
- characters (or fewer if S ends before this) in S. */
-extern int wcswidth (const wchar_t *__s, size_t __n) __THROW;
-#endif /* Use X/Open. */
-
-
-/* Convert initial portion of the wide string NPTR to `double'
- representation. */
-extern double wcstod (const wchar_t *__restrict __nptr,
- wchar_t **__restrict __endptr) __THROW;
-
-#ifdef __USE_ISOC99
-/* Likewise for `float' and `long double' sizes of floating-point numbers. */
-extern float wcstof (const wchar_t *__restrict __nptr,
- wchar_t **__restrict __endptr) __THROW;
-extern long double wcstold (const wchar_t *__restrict __nptr,
- wchar_t **__restrict __endptr) __THROW;
-#endif /* C99 */
-
-/* Likewise for `_FloatN' and `_FloatNx' when support is enabled. */
-
-#if __HAVE_FLOAT16 && defined __USE_GNU
-extern _Float16 wcstof16 (const wchar_t *__restrict __nptr,
- wchar_t **__restrict __endptr) __THROW;
-#endif
-
-#if __HAVE_FLOAT32 && defined __USE_GNU
-extern _Float32 wcstof32 (const wchar_t *__restrict __nptr,
- wchar_t **__restrict __endptr) __THROW;
-#endif
-
-#if __HAVE_FLOAT64 && defined __USE_GNU
-extern _Float64 wcstof64 (const wchar_t *__restrict __nptr,
- wchar_t **__restrict __endptr) __THROW;
-#endif
-
-#if __HAVE_FLOAT128 && defined __USE_GNU
-extern _Float128 wcstof128 (const wchar_t *__restrict __nptr,
- wchar_t **__restrict __endptr) __THROW;
-#endif
-
-#if __HAVE_FLOAT32X && defined __USE_GNU
-extern _Float32x wcstof32x (const wchar_t *__restrict __nptr,
- wchar_t **__restrict __endptr) __THROW;
-#endif
-
-#if __HAVE_FLOAT64X && defined __USE_GNU
-extern _Float64x wcstof64x (const wchar_t *__restrict __nptr,
- wchar_t **__restrict __endptr) __THROW;
-#endif
-
-#if __HAVE_FLOAT128X && defined __USE_GNU
-extern _Float128x wcstof128x (const wchar_t *__restrict __nptr,
- wchar_t **__restrict __endptr) __THROW;
-#endif
-
-
-/* Convert initial portion of wide string NPTR to `long int'
- representation. */
-extern long int wcstol (const wchar_t *__restrict __nptr,
- wchar_t **__restrict __endptr, int __base) __THROW;
-
-/* Convert initial portion of wide string NPTR to `unsigned long int'
- representation. */
-extern unsigned long int wcstoul (const wchar_t *__restrict __nptr,
- wchar_t **__restrict __endptr, int __base)
- __THROW;
-
-#ifdef __USE_ISOC99
-/* Convert initial portion of wide string NPTR to `long long int'
- representation. */
-__extension__
-extern long long int wcstoll (const wchar_t *__restrict __nptr,
- wchar_t **__restrict __endptr, int __base)
- __THROW;
-
-/* Convert initial portion of wide string NPTR to `unsigned long long int'
- representation. */
-__extension__
-extern unsigned long long int wcstoull (const wchar_t *__restrict __nptr,
- wchar_t **__restrict __endptr,
- int __base) __THROW;
-#endif /* ISO C99. */
-
-#ifdef __USE_GNU
-/* Convert initial portion of wide string NPTR to `long long int'
- representation. */
-__extension__
-extern long long int wcstoq (const wchar_t *__restrict __nptr,
- wchar_t **__restrict __endptr, int __base)
- __THROW;
-
-/* Convert initial portion of wide string NPTR to `unsigned long long int'
- representation. */
-__extension__
-extern unsigned long long int wcstouq (const wchar_t *__restrict __nptr,
- wchar_t **__restrict __endptr,
- int __base) __THROW;
-#endif /* Use GNU. */
-
-#ifdef __USE_GNU
-/* Parallel versions of the functions above which take the locale to
- use as an additional parameter. These are GNU extensions inspired
- by the POSIX.1-2008 extended locale API. */
-extern long int wcstol_l (const wchar_t *__restrict __nptr,
- wchar_t **__restrict __endptr, int __base,
- locale_t __loc) __THROW;
-
-extern unsigned long int wcstoul_l (const wchar_t *__restrict __nptr,
- wchar_t **__restrict __endptr,
- int __base, locale_t __loc) __THROW;
-
-__extension__
-extern long long int wcstoll_l (const wchar_t *__restrict __nptr,
- wchar_t **__restrict __endptr,
- int __base, locale_t __loc) __THROW;
-
-__extension__
-extern unsigned long long int wcstoull_l (const wchar_t *__restrict __nptr,
- wchar_t **__restrict __endptr,
- int __base, locale_t __loc)
- __THROW;
-
-extern double wcstod_l (const wchar_t *__restrict __nptr,
- wchar_t **__restrict __endptr, locale_t __loc)
- __THROW;
-
-extern float wcstof_l (const wchar_t *__restrict __nptr,
- wchar_t **__restrict __endptr, locale_t __loc)
- __THROW;
-
-extern long double wcstold_l (const wchar_t *__restrict __nptr,
- wchar_t **__restrict __endptr,
- locale_t __loc) __THROW;
-
-# if __HAVE_FLOAT16
-extern _Float16 wcstof16_l (const wchar_t *__restrict __nptr,
- wchar_t **__restrict __endptr,
- locale_t __loc) __THROW;
-# endif
-
-# if __HAVE_FLOAT32
-extern _Float32 wcstof32_l (const wchar_t *__restrict __nptr,
- wchar_t **__restrict __endptr,
- locale_t __loc) __THROW;
-# endif
-
-# if __HAVE_FLOAT64
-extern _Float64 wcstof64_l (const wchar_t *__restrict __nptr,
- wchar_t **__restrict __endptr,
- locale_t __loc) __THROW;
-# endif
-
-# if __HAVE_FLOAT128
-extern _Float128 wcstof128_l (const wchar_t *__restrict __nptr,
- wchar_t **__restrict __endptr,
- locale_t __loc) __THROW;
-# endif
-
-# if __HAVE_FLOAT32X
-extern _Float32x wcstof32x_l (const wchar_t *__restrict __nptr,
- wchar_t **__restrict __endptr,
- locale_t __loc) __THROW;
-# endif
-
-# if __HAVE_FLOAT64X
-extern _Float64x wcstof64x_l (const wchar_t *__restrict __nptr,
- wchar_t **__restrict __endptr,
- locale_t __loc) __THROW;
-# endif
-
-# if __HAVE_FLOAT128X
-extern _Float128x wcstof128x_l (const wchar_t *__restrict __nptr,
- wchar_t **__restrict __endptr,
- locale_t __loc) __THROW;
-# endif
-#endif /* use GNU */
-
-
-#ifdef __USE_XOPEN2K8
-/* Copy SRC to DEST, returning the address of the terminating L'\0' in
- DEST. */
-extern wchar_t *wcpcpy (wchar_t *__restrict __dest,
- const wchar_t *__restrict __src) __THROW;
-
-/* Copy no more than N characters of SRC to DEST, returning the address of
- the last character written into DEST. */
-extern wchar_t *wcpncpy (wchar_t *__restrict __dest,
- const wchar_t *__restrict __src, size_t __n)
- __THROW;
-#endif
-
-
-/* Wide character I/O functions. */
-
-#if defined __USE_XOPEN2K8 || __GLIBC_USE (LIB_EXT2)
-# ifndef __attr_dealloc_fclose
-# if defined __has_builtin
-# if __has_builtin (__builtin_fclose)
-/* If the attribute macro hasn't been defined yet (by <stdio.h>) and
- fclose is a built-in, use it. */
-# define __attr_dealloc_fclose __attr_dealloc (__builtin_fclose, 1)
-# endif
-# endif
-# endif
-# ifndef __attr_dealloc_fclose
-# define __attr_dealloc_fclose /* empty */
-# endif
-
-/* Like OPEN_MEMSTREAM, but the stream is wide oriented and produces
- a wide character string. */
-extern __FILE *open_wmemstream (wchar_t **__bufloc, size_t *__sizeloc) __THROW
- __attribute_malloc__ __attr_dealloc_fclose;
-#endif
-
-#if defined __USE_ISOC95 || defined __USE_UNIX98
-
-/* Select orientation for stream. */
-extern int fwide (__FILE *__fp, int __mode) __THROW;
-
-
-/* Write formatted output to STREAM.
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
-extern int fwprintf (__FILE *__restrict __stream,
- const wchar_t *__restrict __format, ...)
- /* __attribute__ ((__format__ (__wprintf__, 2, 3))) */;
-/* Write formatted output to stdout.
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
-extern int wprintf (const wchar_t *__restrict __format, ...)
- /* __attribute__ ((__format__ (__wprintf__, 1, 2))) */;
-/* Write formatted output of at most N characters to S. */
-extern int swprintf (wchar_t *__restrict __s, size_t __n,
- const wchar_t *__restrict __format, ...)
- __THROW /* __attribute__ ((__format__ (__wprintf__, 3, 4))) */;
-
-/* Write formatted output to S from argument list ARG.
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
-extern int vfwprintf (__FILE *__restrict __s,
- const wchar_t *__restrict __format,
- __gnuc_va_list __arg)
- /* __attribute__ ((__format__ (__wprintf__, 2, 0))) */;
-/* Write formatted output to stdout from argument list ARG.
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
-extern int vwprintf (const wchar_t *__restrict __format,
- __gnuc_va_list __arg)
- /* __attribute__ ((__format__ (__wprintf__, 1, 0))) */;
-/* Write formatted output of at most N character to S from argument
- list ARG. */
-extern int vswprintf (wchar_t *__restrict __s, size_t __n,
- const wchar_t *__restrict __format,
- __gnuc_va_list __arg)
- __THROW /* __attribute__ ((__format__ (__wprintf__, 3, 0))) */;
-
-
-/* Read formatted input from STREAM.
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
-extern int fwscanf (__FILE *__restrict __stream,
- const wchar_t *__restrict __format, ...)
- /* __attribute__ ((__format__ (__wscanf__, 2, 3))) */;
-/* Read formatted input from stdin.
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
-extern int wscanf (const wchar_t *__restrict __format, ...)
- /* __attribute__ ((__format__ (__wscanf__, 1, 2))) */;
-/* Read formatted input from S. */
-extern int swscanf (const wchar_t *__restrict __s,
- const wchar_t *__restrict __format, ...)
- __THROW /* __attribute__ ((__format__ (__wscanf__, 2, 3))) */;
-
-/* For historical reasons, the C99-compliant versions of the scanf
- functions are at alternative names. When __LDBL_COMPAT or
- __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI are in effect, this is handled in
- bits/wchar-ldbl.h. */
-#if !__GLIBC_USE (DEPRECATED_SCANF) && !defined __LDBL_COMPAT \
- && __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 0
-# ifdef __REDIRECT
-extern int __REDIRECT (fwscanf, (__FILE *__restrict __stream,
- const wchar_t *__restrict __format, ...),
- __isoc99_fwscanf)
- /* __attribute__ ((__format__ (__wscanf__, 2, 3))) */;
-extern int __REDIRECT (wscanf, (const wchar_t *__restrict __format, ...),
- __isoc99_wscanf)
- /* __attribute__ ((__format__ (__wscanf__, 1, 2))) */;
-extern int __REDIRECT_NTH (swscanf, (const wchar_t *__restrict __s,
- const wchar_t *__restrict __format,
- ...), __isoc99_swscanf)
- /* __attribute__ ((__format__ (__wscanf__, 2, 3))) */;
-# else
-extern int __isoc99_fwscanf (__FILE *__restrict __stream,
- const wchar_t *__restrict __format, ...);
-extern int __isoc99_wscanf (const wchar_t *__restrict __format, ...);
-extern int __isoc99_swscanf (const wchar_t *__restrict __s,
- const wchar_t *__restrict __format, ...)
- __THROW;
-# define fwscanf __isoc99_fwscanf
-# define wscanf __isoc99_wscanf
-# define swscanf __isoc99_swscanf
-# endif
-# endif
-
-#endif /* Use ISO C95, C99 and Unix98. */
-
-#ifdef __USE_ISOC99
-/* Read formatted input from S into argument list ARG.
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
-extern int vfwscanf (__FILE *__restrict __s,
- const wchar_t *__restrict __format,
- __gnuc_va_list __arg)
- /* __attribute__ ((__format__ (__wscanf__, 2, 0))) */;
-/* Read formatted input from stdin into argument list ARG.
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
-extern int vwscanf (const wchar_t *__restrict __format,
- __gnuc_va_list __arg)
- /* __attribute__ ((__format__ (__wscanf__, 1, 0))) */;
-/* Read formatted input from S into argument list ARG. */
-extern int vswscanf (const wchar_t *__restrict __s,
- const wchar_t *__restrict __format,
- __gnuc_va_list __arg)
- __THROW /* __attribute__ ((__format__ (__wscanf__, 2, 0))) */;
-
-/* Same redirection as above for the v*wscanf family. */
-# if !__GLIBC_USE (DEPRECATED_SCANF) \
- && (!defined __LDBL_COMPAT || !defined __REDIRECT) \
- && (defined __STRICT_ANSI__ || defined __USE_XOPEN2K) \
- && __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 0
-# ifdef __REDIRECT
-extern int __REDIRECT (vfwscanf, (__FILE *__restrict __s,
- const wchar_t *__restrict __format,
- __gnuc_va_list __arg), __isoc99_vfwscanf)
- /* __attribute__ ((__format__ (__wscanf__, 2, 0))) */;
-extern int __REDIRECT (vwscanf, (const wchar_t *__restrict __format,
- __gnuc_va_list __arg), __isoc99_vwscanf)
- /* __attribute__ ((__format__ (__wscanf__, 1, 0))) */;
-extern int __REDIRECT_NTH (vswscanf, (const wchar_t *__restrict __s,
- const wchar_t *__restrict __format,
- __gnuc_va_list __arg), __isoc99_vswscanf)
- /* __attribute__ ((__format__ (__wscanf__, 2, 0))) */;
-# else
-extern int __isoc99_vfwscanf (__FILE *__restrict __s,
- const wchar_t *__restrict __format,
- __gnuc_va_list __arg);
-extern int __isoc99_vwscanf (const wchar_t *__restrict __format,
- __gnuc_va_list __arg);
-extern int __isoc99_vswscanf (const wchar_t *__restrict __s,
- const wchar_t *__restrict __format,
- __gnuc_va_list __arg) __THROW;
-# define vfwscanf __isoc99_vfwscanf
-# define vwscanf __isoc99_vwscanf
-# define vswscanf __isoc99_vswscanf
-# endif
-# endif
-
-#endif /* Use ISO C99. */
-
-
-/* Read a character from STREAM.
-
- These functions are possible cancellation points and therefore not
- marked with __THROW. */
-extern wint_t fgetwc (__FILE *__stream);
-extern wint_t getwc (__FILE *__stream);
-
-/* Read a character from stdin.
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
-extern wint_t getwchar (void);
-
-
-/* Write a character to STREAM.
-
- These functions are possible cancellation points and therefore not
- marked with __THROW. */
-extern wint_t fputwc (wchar_t __wc, __FILE *__stream);
-extern wint_t putwc (wchar_t __wc, __FILE *__stream);
-
-/* Write a character to stdout.
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
-extern wint_t putwchar (wchar_t __wc);
-
-
-/* Get a newline-terminated wide character string of finite length
- from STREAM.
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
-extern wchar_t *fgetws (wchar_t *__restrict __ws, int __n,
- __FILE *__restrict __stream);
-
-/* Write a string to STREAM.
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
-extern int fputws (const wchar_t *__restrict __ws,
- __FILE *__restrict __stream);
-
-
-/* Push a character back onto the input buffer of STREAM.
-
- This function is a possible cancellation point and therefore not
- marked with __THROW. */
-extern wint_t ungetwc (wint_t __wc, __FILE *__stream);
-
-
-#ifdef __USE_GNU
-/* These are defined to be equivalent to the `char' functions defined
- in POSIX.1:1996.
-
- These functions are not part of POSIX and therefore no official
- cancellation point. But due to similarity with an POSIX interface
- or due to the implementation they are cancellation points and
- therefore not marked with __THROW. */
-extern wint_t getwc_unlocked (__FILE *__stream);
-extern wint_t getwchar_unlocked (void);
-
-/* This is the wide character version of a GNU extension.
-
- This function is not part of POSIX and therefore no official
- cancellation point. But due to similarity with an POSIX interface
- or due to the implementation it is a cancellation point and
- therefore not marked with __THROW. */
-extern wint_t fgetwc_unlocked (__FILE *__stream);
-
-/* Faster version when locking is not necessary.
-
- This function is not part of POSIX and therefore no official
- cancellation point. But due to similarity with an POSIX interface
- or due to the implementation it is a cancellation point and
- therefore not marked with __THROW. */
-extern wint_t fputwc_unlocked (wchar_t __wc, __FILE *__stream);
-
-/* These are defined to be equivalent to the `char' functions defined
- in POSIX.1:1996.
-
- These functions are not part of POSIX and therefore no official
- cancellation point. But due to similarity with an POSIX interface
- or due to the implementation they are cancellation points and
- therefore not marked with __THROW. */
-extern wint_t putwc_unlocked (wchar_t __wc, __FILE *__stream);
-extern wint_t putwchar_unlocked (wchar_t __wc);
-
-
-/* This function does the same as `fgetws' but does not lock the stream.
-
- This function is not part of POSIX and therefore no official
- cancellation point. But due to similarity with an POSIX interface
- or due to the implementation it is a cancellation point and
- therefore not marked with __THROW. */
-extern wchar_t *fgetws_unlocked (wchar_t *__restrict __ws, int __n,
- __FILE *__restrict __stream);
-
-/* This function does the same as `fputws' but does not lock the stream.
-
- This function is not part of POSIX and therefore no official
- cancellation point. But due to similarity with an POSIX interface
- or due to the implementation it is a cancellation point and
- therefore not marked with __THROW. */
-extern int fputws_unlocked (const wchar_t *__restrict __ws,
- __FILE *__restrict __stream);
-#endif
-
-
-/* Format TP into S according to FORMAT.
- Write no more than MAXSIZE wide characters and return the number
- of wide characters written, or 0 if it would exceed MAXSIZE. */
-extern size_t wcsftime (wchar_t *__restrict __s, size_t __maxsize,
- const wchar_t *__restrict __format,
- const struct tm *__restrict __tp) __THROW;
-
-# ifdef __USE_GNU
-/* Similar to `wcsftime' but takes the information from
- the provided locale and not the global locale. */
-extern size_t wcsftime_l (wchar_t *__restrict __s, size_t __maxsize,
- const wchar_t *__restrict __format,
- const struct tm *__restrict __tp,
- locale_t __loc) __THROW;
-# endif
-
-/* Define some macros helping to catch buffer overflows. */
-#if __USE_FORTIFY_LEVEL > 0 && defined __fortify_function
-/* Declare all functions from bits/wchar2-decl.h first. */
-# include <bits/wchar2-decl.h>
-#endif
-
-/* The following headers provide asm redirections. These redirections must
- appear before the first usage of these functions, e.g. in bits/wchar.h. */
-#if defined __LDBL_COMPAT || __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1
-# include <bits/wchar-ldbl.h>
-#endif
-
-#if __USE_FORTIFY_LEVEL > 0 && defined __fortify_function
-/* Now include the function definitions and redirects too. */
-# include <bits/wchar2.h>
-#endif
-
-__END_DECLS
-
-#endif /* wchar.h */
Index: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/wcsmbs/bits/wchar2.h
===================================================================
--- GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/wcsmbs/bits/wchar2.h (revision 10)
+++ GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/wcsmbs/bits/wchar2.h (nonexistent)
@@ -1,442 +0,0 @@
-/* Checking macros for wchar functions.
- Copyright (C) 2005-2022 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/>. */
-
-#ifndef _WCHAR_H
-# error "Never include <bits/wchar2.h> directly; use <wchar.h> instead."
-#endif
-
-
-extern wchar_t *__REDIRECT_NTH (__wmemcpy_alias,
- (wchar_t *__restrict __s1,
- const wchar_t *__restrict __s2, size_t __n),
- wmemcpy);
-extern wchar_t *__REDIRECT_NTH (__wmemcpy_chk_warn,
- (wchar_t *__restrict __s1,
- const wchar_t *__restrict __s2, size_t __n,
- size_t __ns1), __wmemcpy_chk)
- __warnattr ("wmemcpy called with length bigger than size of destination "
- "buffer");
-
-__fortify_function wchar_t *
-__NTH (wmemcpy (wchar_t *__restrict __s1, const wchar_t *__restrict __s2,
- size_t __n))
-{
- return __glibc_fortify_n (wmemcpy, __n, sizeof (wchar_t),
- __glibc_objsize0 (__s1),
- __s1, __s2, __n);
-}
-
-
-extern wchar_t *__REDIRECT_NTH (__wmemmove_alias, (wchar_t *__s1,
- const wchar_t *__s2,
- size_t __n), wmemmove);
-extern wchar_t *__REDIRECT_NTH (__wmemmove_chk_warn,
- (wchar_t *__s1, const wchar_t *__s2,
- size_t __n, size_t __ns1), __wmemmove_chk)
- __warnattr ("wmemmove called with length bigger than size of destination "
- "buffer");
-
-__fortify_function wchar_t *
-__NTH (wmemmove (wchar_t *__s1, const wchar_t *__s2, size_t __n))
-{
- return __glibc_fortify_n (wmemmove, __n, sizeof (wchar_t),
- __glibc_objsize0 (__s1),
- __s1, __s2, __n);
-}
-
-
-#ifdef __USE_GNU
-extern wchar_t *__REDIRECT_NTH (__wmempcpy_alias,
- (wchar_t *__restrict __s1,
- const wchar_t *__restrict __s2,
- size_t __n), wmempcpy);
-extern wchar_t *__REDIRECT_NTH (__wmempcpy_chk_warn,
- (wchar_t *__restrict __s1,
- const wchar_t *__restrict __s2, size_t __n,
- size_t __ns1), __wmempcpy_chk)
- __warnattr ("wmempcpy called with length bigger than size of destination "
- "buffer");
-
-__fortify_function wchar_t *
-__NTH (wmempcpy (wchar_t *__restrict __s1, const wchar_t *__restrict __s2,
- size_t __n))
-{
- return __glibc_fortify_n (wmempcpy, __n, sizeof (wchar_t),
- __glibc_objsize0 (__s1),
- __s1, __s2, __n);
-}
-#endif
-
-
-extern wchar_t *__REDIRECT_NTH (__wmemset_alias, (wchar_t *__s, wchar_t __c,
- size_t __n), wmemset);
-extern wchar_t *__REDIRECT_NTH (__wmemset_chk_warn,
- (wchar_t *__s, wchar_t __c, size_t __n,
- size_t __ns), __wmemset_chk)
- __warnattr ("wmemset called with length bigger than size of destination "
- "buffer");
-
-__fortify_function wchar_t *
-__NTH (wmemset (wchar_t *__s, wchar_t __c, size_t __n))
-{
- return __glibc_fortify_n (wmemset, __n, sizeof (wchar_t),
- __glibc_objsize0 (__s),
- __s, __c, __n);
-}
-
-
-extern wchar_t *__REDIRECT_NTH (__wcscpy_alias,
- (wchar_t *__restrict __dest,
- const wchar_t *__restrict __src), wcscpy);
-
-__fortify_function wchar_t *
-__NTH (wcscpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src))
-{
- size_t sz = __glibc_objsize (__dest);
- if (sz != (size_t) -1)
- return __wcscpy_chk (__dest, __src, sz / sizeof (wchar_t));
- return __wcscpy_alias (__dest, __src);
-}
-
-
-extern wchar_t *__REDIRECT_NTH (__wcpcpy_alias,
- (wchar_t *__restrict __dest,
- const wchar_t *__restrict __src), wcpcpy);
-
-__fortify_function wchar_t *
-__NTH (wcpcpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src))
-{
- size_t sz = __glibc_objsize (__dest);
- if (sz != (size_t) -1)
- return __wcpcpy_chk (__dest, __src, sz / sizeof (wchar_t));
- return __wcpcpy_alias (__dest, __src);
-}
-
-
-extern wchar_t *__REDIRECT_NTH (__wcsncpy_alias,
- (wchar_t *__restrict __dest,
- const wchar_t *__restrict __src,
- size_t __n), wcsncpy);
-extern wchar_t *__REDIRECT_NTH (__wcsncpy_chk_warn,
- (wchar_t *__restrict __dest,
- const wchar_t *__restrict __src,
- size_t __n, size_t __destlen), __wcsncpy_chk)
- __warnattr ("wcsncpy called with length bigger than size of destination "
- "buffer");
-
-__fortify_function wchar_t *
-__NTH (wcsncpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src,
- size_t __n))
-{
- return __glibc_fortify_n (wcsncpy, __n, sizeof (wchar_t),
- __glibc_objsize (__dest),
- __dest, __src, __n);
-}
-
-
-extern wchar_t *__REDIRECT_NTH (__wcpncpy_alias,
- (wchar_t *__restrict __dest,
- const wchar_t *__restrict __src,
- size_t __n), wcpncpy);
-extern wchar_t *__REDIRECT_NTH (__wcpncpy_chk_warn,
- (wchar_t *__restrict __dest,
- const wchar_t *__restrict __src,
- size_t __n, size_t __destlen), __wcpncpy_chk)
- __warnattr ("wcpncpy called with length bigger than size of destination "
- "buffer");
-
-__fortify_function wchar_t *
-__NTH (wcpncpy (wchar_t *__restrict __dest, const wchar_t *__restrict __src,
- size_t __n))
-{
- return __glibc_fortify_n (wcpncpy, __n, sizeof (wchar_t),
- __glibc_objsize (__dest),
- __dest, __src, __n);
-}
-
-
-extern wchar_t *__REDIRECT_NTH (__wcscat_alias,
- (wchar_t *__restrict __dest,
- const wchar_t *__restrict __src), wcscat);
-
-__fortify_function wchar_t *
-__NTH (wcscat (wchar_t *__restrict __dest, const wchar_t *__restrict __src))
-{
- size_t sz = __glibc_objsize (__dest);
- if (sz != (size_t) -1)
- return __wcscat_chk (__dest, __src, sz / sizeof (wchar_t));
- return __wcscat_alias (__dest, __src);
-}
-
-
-extern wchar_t *__REDIRECT_NTH (__wcsncat_alias,
- (wchar_t *__restrict __dest,
- const wchar_t *__restrict __src,
- size_t __n), wcsncat);
-
-__fortify_function wchar_t *
-__NTH (wcsncat (wchar_t *__restrict __dest, const wchar_t *__restrict __src,
- size_t __n))
-{
- size_t sz = __glibc_objsize (__dest);
- if (sz != (size_t) -1)
- return __wcsncat_chk (__dest, __src, __n, sz / sizeof (wchar_t));
- return __wcsncat_alias (__dest, __src, __n);
-}
-
-
-
-extern int __REDIRECT_NTH_LDBL (__swprintf_alias,
- (wchar_t *__restrict __s, size_t __n,
- const wchar_t *__restrict __fmt, ...),
- swprintf);
-
-#ifdef __va_arg_pack
-__fortify_function int
-__NTH (swprintf (wchar_t *__restrict __s, size_t __n,
- const wchar_t *__restrict __fmt, ...))
-{
- size_t sz = __glibc_objsize (__s);
- if (sz != (size_t) -1 || __USE_FORTIFY_LEVEL > 1)
- return __swprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
- sz / sizeof (wchar_t), __fmt, __va_arg_pack ());
- return __swprintf_alias (__s, __n, __fmt, __va_arg_pack ());
-}
-#elif !defined __cplusplus
-/* XXX We might want to have support in gcc for swprintf. */
-# define swprintf(s, n, ...) \
- (__glibc_objsize (s) != (size_t) -1 || __USE_FORTIFY_LEVEL > 1 \
- ? __swprintf_chk (s, n, __USE_FORTIFY_LEVEL - 1, \
- __glibc_objsize (s) / sizeof (wchar_t), __VA_ARGS__) \
- : swprintf (s, n, __VA_ARGS__))
-#endif
-
-
-extern int __REDIRECT_NTH_LDBL (__vswprintf_alias,
- (wchar_t *__restrict __s, size_t __n,
- const wchar_t *__restrict __fmt,
- __gnuc_va_list __ap), vswprintf);
-
-__fortify_function int
-__NTH (vswprintf (wchar_t *__restrict __s, size_t __n,
- const wchar_t *__restrict __fmt, __gnuc_va_list __ap))
-{
- size_t sz = __glibc_objsize (__s);
- if (sz != (size_t) -1 || __USE_FORTIFY_LEVEL > 1)
- return __vswprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
- sz / sizeof (wchar_t), __fmt, __ap);
- return __vswprintf_alias (__s, __n, __fmt, __ap);
-}
-
-
-#if __USE_FORTIFY_LEVEL > 1
-
-# ifdef __va_arg_pack
-__fortify_function int
-wprintf (const wchar_t *__restrict __fmt, ...)
-{
- return __wprintf_chk (__USE_FORTIFY_LEVEL - 1, __fmt, __va_arg_pack ());
-}
-
-__fortify_function int
-fwprintf (__FILE *__restrict __stream, const wchar_t *__restrict __fmt, ...)
-{
- return __fwprintf_chk (__stream, __USE_FORTIFY_LEVEL - 1, __fmt,
- __va_arg_pack ());
-}
-# elif !defined __cplusplus
-# define wprintf(...) \
- __wprintf_chk (__USE_FORTIFY_LEVEL - 1, __VA_ARGS__)
-# define fwprintf(stream, ...) \
- __fwprintf_chk (stream, __USE_FORTIFY_LEVEL - 1, __VA_ARGS__)
-# endif
-
-__fortify_function int
-vwprintf (const wchar_t *__restrict __fmt, __gnuc_va_list __ap)
-{
- return __vwprintf_chk (__USE_FORTIFY_LEVEL - 1, __fmt, __ap);
-}
-
-__fortify_function int
-vfwprintf (__FILE *__restrict __stream,
- const wchar_t *__restrict __fmt, __gnuc_va_list __ap)
-{
- return __vfwprintf_chk (__stream, __USE_FORTIFY_LEVEL - 1, __fmt, __ap);
-}
-
-#endif
-
-extern wchar_t *__REDIRECT (__fgetws_alias,
- (wchar_t *__restrict __s, int __n,
- __FILE *__restrict __stream), fgetws) __wur;
-extern wchar_t *__REDIRECT (__fgetws_chk_warn,
- (wchar_t *__restrict __s, size_t __size, int __n,
- __FILE *__restrict __stream), __fgetws_chk)
- __wur __warnattr ("fgetws called with bigger size than length "
- "of destination buffer");
-
-__fortify_function __wur wchar_t *
-fgetws (wchar_t *__restrict __s, int __n, __FILE *__restrict __stream)
-{
- size_t sz = __glibc_objsize (__s);
- if (__glibc_safe_or_unknown_len (__n, sizeof (wchar_t), sz))
- return __fgetws_alias (__s, __n, __stream);
- if (__glibc_unsafe_len (__n, sizeof (wchar_t), sz))
- return __fgetws_chk_warn (__s, sz / sizeof (wchar_t), __n, __stream);
- return __fgetws_chk (__s, sz / sizeof (wchar_t), __n, __stream);
-}
-
-#ifdef __USE_GNU
-extern wchar_t *__REDIRECT (__fgetws_unlocked_alias,
- (wchar_t *__restrict __s, int __n,
- __FILE *__restrict __stream), fgetws_unlocked)
- __wur;
-extern wchar_t *__REDIRECT (__fgetws_unlocked_chk_warn,
- (wchar_t *__restrict __s, size_t __size, int __n,
- __FILE *__restrict __stream),
- __fgetws_unlocked_chk)
- __wur __warnattr ("fgetws_unlocked called with bigger size than length "
- "of destination buffer");
-
-__fortify_function __wur wchar_t *
-fgetws_unlocked (wchar_t *__restrict __s, int __n, __FILE *__restrict __stream)
-{
- size_t sz = __glibc_objsize (__s);
- if (__glibc_safe_or_unknown_len (__n, sizeof (wchar_t), sz))
- return __fgetws_unlocked_alias (__s, __n, __stream);
- if (__glibc_unsafe_len (__n, sizeof (wchar_t), sz))
- return __fgetws_unlocked_chk_warn (__s, sz / sizeof (wchar_t), __n,
- __stream);
- return __fgetws_unlocked_chk (__s, sz / sizeof (wchar_t), __n, __stream);
-}
-#endif
-
-
-extern size_t __REDIRECT_NTH (__wcrtomb_alias,
- (char *__restrict __s, wchar_t __wchar,
- mbstate_t *__restrict __ps), wcrtomb) __wur;
-
-__fortify_function __wur size_t
-__NTH (wcrtomb (char *__restrict __s, wchar_t __wchar,
- mbstate_t *__restrict __ps))
-{
- /* We would have to include <limits.h> to get a definition of MB_LEN_MAX.
- But this would only disturb the namespace. So we define our own
- version here. */
-#define __WCHAR_MB_LEN_MAX 16
-#if defined MB_LEN_MAX && MB_LEN_MAX != __WCHAR_MB_LEN_MAX
-# error "Assumed value of MB_LEN_MAX wrong"
-#endif
- if (__glibc_objsize (__s) != (size_t) -1
- && __WCHAR_MB_LEN_MAX > __glibc_objsize (__s))
- return __wcrtomb_chk (__s, __wchar, __ps, __glibc_objsize (__s));
- return __wcrtomb_alias (__s, __wchar, __ps);
-}
-
-
-extern size_t __REDIRECT_NTH (__mbsrtowcs_alias,
- (wchar_t *__restrict __dst,
- const char **__restrict __src,
- size_t __len, mbstate_t *__restrict __ps),
- mbsrtowcs);
-extern size_t __REDIRECT_NTH (__mbsrtowcs_chk_warn,
- (wchar_t *__restrict __dst,
- const char **__restrict __src,
- size_t __len, mbstate_t *__restrict __ps,
- size_t __dstlen), __mbsrtowcs_chk)
- __warnattr ("mbsrtowcs called with dst buffer smaller than len "
- "* sizeof (wchar_t)");
-
-__fortify_function size_t
-__NTH (mbsrtowcs (wchar_t *__restrict __dst, const char **__restrict __src,
- size_t __len, mbstate_t *__restrict __ps))
-{
- return __glibc_fortify_n (mbsrtowcs, __len, sizeof (wchar_t),
- __glibc_objsize (__dst),
- __dst, __src, __len, __ps);
-}
-
-
-extern size_t __REDIRECT_NTH (__wcsrtombs_alias,
- (char *__restrict __dst,
- const wchar_t **__restrict __src,
- size_t __len, mbstate_t *__restrict __ps),
- wcsrtombs);
-extern size_t __REDIRECT_NTH (__wcsrtombs_chk_warn,
- (char *__restrict __dst,
- const wchar_t **__restrict __src,
- size_t __len, mbstate_t *__restrict __ps,
- size_t __dstlen), __wcsrtombs_chk)
- __warnattr ("wcsrtombs called with dst buffer smaller than len");
-
-__fortify_function size_t
-__NTH (wcsrtombs (char *__restrict __dst, const wchar_t **__restrict __src,
- size_t __len, mbstate_t *__restrict __ps))
-{
- return __glibc_fortify (wcsrtombs, __len, sizeof (char),
- __glibc_objsize (__dst),
- __dst, __src, __len, __ps);
-}
-
-
-#ifdef __USE_XOPEN2K8
-extern size_t __REDIRECT_NTH (__mbsnrtowcs_alias,
- (wchar_t *__restrict __dst,
- const char **__restrict __src, size_t __nmc,
- size_t __len, mbstate_t *__restrict __ps),
- mbsnrtowcs);
-extern size_t __REDIRECT_NTH (__mbsnrtowcs_chk_warn,
- (wchar_t *__restrict __dst,
- const char **__restrict __src, size_t __nmc,
- size_t __len, mbstate_t *__restrict __ps,
- size_t __dstlen), __mbsnrtowcs_chk)
- __warnattr ("mbsnrtowcs called with dst buffer smaller than len "
- "* sizeof (wchar_t)");
-
-__fortify_function size_t
-__NTH (mbsnrtowcs (wchar_t *__restrict __dst, const char **__restrict __src,
- size_t __nmc, size_t __len, mbstate_t *__restrict __ps))
-{
- return __glibc_fortify_n (mbsnrtowcs, __len, sizeof (wchar_t),
- __glibc_objsize (__dst),
- __dst, __src, __nmc, __len, __ps);
-}
-
-
-extern size_t __REDIRECT_NTH (__wcsnrtombs_alias,
- (char *__restrict __dst,
- const wchar_t **__restrict __src,
- size_t __nwc, size_t __len,
- mbstate_t *__restrict __ps), wcsnrtombs);
-extern size_t __REDIRECT_NTH (__wcsnrtombs_chk_warn,
- (char *__restrict __dst,
- const wchar_t **__restrict __src,
- size_t __nwc, size_t __len,
- mbstate_t *__restrict __ps,
- size_t __dstlen), __wcsnrtombs_chk)
- __warnattr ("wcsnrtombs called with dst buffer smaller than len");
-
-__fortify_function size_t
-__NTH (wcsnrtombs (char *__restrict __dst, const wchar_t **__restrict __src,
- size_t __nwc, size_t __len, mbstate_t *__restrict __ps))
-{
- return __glibc_fortify (wcsnrtombs, __len, sizeof (char),
- __glibc_objsize (__dst),
- __dst, __src, __nwc, __len, __ps);
-}
-#endif
Index: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/wcsmbs/bits/wchar2-decl.h
===================================================================
--- GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/wcsmbs/bits/wchar2-decl.h (revision 10)
+++ GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/wcsmbs/bits/wchar2-decl.h (nonexistent)
@@ -1,124 +0,0 @@
-/* Checking macros for wchar functions. Declarations only.
- Copyright (C) 2004-2022 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/>. */
-
-#ifndef _BITS_WCHAR2_DECL_H
-#define _BITS_WCHAR2_DECL_H 1
-
-#ifndef _WCHAR_H
-# error "Never include <bits/wchar2-decl.h> directly; use <wchar.h> instead."
-#endif
-
-
-extern wchar_t *__wmemcpy_chk (wchar_t *__restrict __s1,
- const wchar_t *__restrict __s2, size_t __n,
- size_t __ns1) __THROW;
-extern wchar_t *__wmemmove_chk (wchar_t *__s1, const wchar_t *__s2,
- size_t __n, size_t __ns1) __THROW;
-
-
-#ifdef __USE_GNU
-
-extern wchar_t *__wmempcpy_chk (wchar_t *__restrict __s1,
- const wchar_t *__restrict __s2, size_t __n,
- size_t __ns1) __THROW;
-
-#endif
-
-
-extern wchar_t *__wmemset_chk (wchar_t *__s, wchar_t __c, size_t __n,
- size_t __ns) __THROW;
-extern wchar_t *__wcscpy_chk (wchar_t *__restrict __dest,
- const wchar_t *__restrict __src,
- size_t __n) __THROW;
-extern wchar_t *__wcpcpy_chk (wchar_t *__restrict __dest,
- const wchar_t *__restrict __src,
- size_t __destlen) __THROW;
-extern wchar_t *__wcsncpy_chk (wchar_t *__restrict __dest,
- const wchar_t *__restrict __src, size_t __n,
- size_t __destlen) __THROW;
-extern wchar_t *__wcpncpy_chk (wchar_t *__restrict __dest,
- const wchar_t *__restrict __src, size_t __n,
- size_t __destlen) __THROW;
-extern wchar_t *__wcscat_chk (wchar_t *__restrict __dest,
- const wchar_t *__restrict __src,
- size_t __destlen) __THROW;
-extern wchar_t *__wcsncat_chk (wchar_t *__restrict __dest,
- const wchar_t *__restrict __src,
- size_t __n, size_t __destlen) __THROW;
-extern int __swprintf_chk (wchar_t *__restrict __s, size_t __n,
- int __flag, size_t __s_len,
- const wchar_t *__restrict __format, ...)
- __THROW /* __attribute__ ((__format__ (__wprintf__, 5, 6))) */;
-extern int __vswprintf_chk (wchar_t *__restrict __s, size_t __n,
- int __flag, size_t __s_len,
- const wchar_t *__restrict __format,
- __gnuc_va_list __arg)
- __THROW /* __attribute__ ((__format__ (__wprintf__, 5, 0))) */;
-
-#if __USE_FORTIFY_LEVEL > 1
-
-extern int __fwprintf_chk (__FILE *__restrict __stream, int __flag,
- const wchar_t *__restrict __format, ...);
-extern int __wprintf_chk (int __flag, const wchar_t *__restrict __format,
- ...);
-extern int __vfwprintf_chk (__FILE *__restrict __stream, int __flag,
- const wchar_t *__restrict __format,
- __gnuc_va_list __ap);
-extern int __vwprintf_chk (int __flag, const wchar_t *__restrict __format,
- __gnuc_va_list __ap);
-
-#endif
-
-extern wchar_t *__fgetws_chk (wchar_t *__restrict __s, size_t __size, int __n,
- __FILE *__restrict __stream) __wur;
-
-#ifdef __USE_GNU
-
-extern wchar_t *__fgetws_unlocked_chk (wchar_t *__restrict __s, size_t __size,
- int __n, __FILE *__restrict __stream)
- __wur;
-
-#endif
-
-extern size_t __wcrtomb_chk (char *__restrict __s, wchar_t __wchar,
- mbstate_t *__restrict __p,
- size_t __buflen) __THROW __wur;
-extern size_t __mbsrtowcs_chk (wchar_t *__restrict __dst,
- const char **__restrict __src,
- size_t __len, mbstate_t *__restrict __ps,
- size_t __dstlen) __THROW;
-extern size_t __wcsrtombs_chk (char *__restrict __dst,
- const wchar_t **__restrict __src,
- size_t __len, mbstate_t *__restrict __ps,
- size_t __dstlen) __THROW;
-
-#ifdef __USE_XOPEN2K8
-
-extern size_t __mbsnrtowcs_chk (wchar_t *__restrict __dst,
- const char **__restrict __src, size_t __nmc,
- size_t __len, mbstate_t *__restrict __ps,
- size_t __dstlen) __THROW;
-extern size_t __wcsnrtombs_chk (char *__restrict __dst,
- const wchar_t **__restrict __src,
- size_t __nwc, size_t __len,
- mbstate_t *__restrict __ps, size_t __dstlen)
- __THROW;
-
-#endif
-
-#endif /* bits/wchar2-decl.h. */
Index: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/wcsmbs/bits
===================================================================
--- GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/wcsmbs/bits (revision 10)
+++ GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/wcsmbs/bits (nonexistent)
Property changes on: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/wcsmbs/bits
___________________________________________________________________
Deleted: svn:ignore
## -1,80 +0,0 ##
-
-# Target build dirs
-.noarch
-.host
-
-.arm32-newlib
-.a33xx-newlib
-.a9xx-newlib
-.h5-newlib
-.s9xx-newlib
-.rk33xx-newlib
-.m1000-newlib
-.riscv64-newlib
-.at91sam7s-newlib
-
-.a1x-glibc
-.a2x-glibc
-.a311x-glibc
-.h3-glibc
-.h5-glibc
-.imx6-glibc
-.imx6ull-glibc
-.jz47xx-glibc
-.p5600-glibc
-.m1000-glibc
-.omap543x-glibc
-.am335x-glibc
-.rk328x-glibc
-.s8xx-glibc
-.s9xx-glibc
-.a9xx-glibc
-.rk33xx-glibc
-.rk339x-glibc
-.a33xx-glibc
-.power8-glibc
-.power9-glibc
-.power8le-glibc
-.power9le-glibc
-.riscv64-glibc
-.i586-glibc
-.i686-glibc
-.x86_64-glibc
-
-# Hidden files (each file)
-.makefile
-.src_requires
-.src_requires_depend
-.dist
-
-# Destinations
-dist
-
-
-# Tarballs
-*.gz
-*.bz2
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Text files
-*.txt
-
-# Default linux config files
-*.defconfig
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/wcsmbs/Makefile
===================================================================
--- GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/wcsmbs/Makefile (revision 10)
+++ GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/wcsmbs/Makefile (nonexistent)
@@ -1,116 +0,0 @@
-# Copyright (C) 1995-2022 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/>.
-
-#
-# Sub-makefile for wcsmbs portion of the library.
-#
-subdir := wcsmbs
-
-include ../Makeconfig
-
-headers := wchar.h bits/wchar.h bits/wchar2.h bits/wchar2-decl.h \
- bits/wchar-ldbl.h uchar.h bits/types/__mbstate_t.h \
- bits/types/mbstate_t.h bits/types/wint_t.h
-
-routines := wcscat wcschr wcscmp wcscpy wcscspn wcsdup wcslen wcsncat \
- wcsncmp wcsncpy wcspbrk wcsrchr wcsspn wcstok wcsstr wmemchr \
- wmemcmp wmemcpy wmemmove wmemset wcpcpy wcpncpy wmempcpy \
- btowc wctob mbsinit \
- mbrlen mbrtowc wcrtomb mbsrtowcs wcsrtombs \
- mbsnrtowcs wcsnrtombs wcsnlen wcschrnul \
- wcstol wcstoul wcstoll wcstoull wcstod wcstold wcstof \
- wcstol_l wcstoul_l wcstoll_l wcstoull_l \
- wcstod_l wcstold_l wcstof_l \
- wcstod_nan wcstold_nan wcstof_nan \
- wcscoll wcsxfrm \
- wcwidth wcswidth \
- wcscoll_l wcsxfrm_l \
- wcscasecmp wcsncase wcscasecmp_l wcsncase_l \
- wcsmbsload mbsrtowcs_l \
- isoc99_wscanf isoc99_vwscanf isoc99_fwscanf isoc99_vfwscanf \
- isoc99_swscanf isoc99_vswscanf \
- mbrtoc8 c8rtomb mbrtoc16 c16rtomb mbrtoc32 c32rtomb
-
-strop-tests := wcscmp wcsncmp wmemcmp wcslen wcschr wcsrchr wcscpy wcsnlen \
- wcpcpy wcsncpy wcpncpy wcscat wcsncat wcschrnul wcsspn wcspbrk \
- wcscspn wmemchr wmemset
-tests := tst-wcstof wcsmbs-tst1 tst-wcsnlen tst-btowc tst-mbrtowc \
- tst-wcrtomb tst-wcpncpy tst-mbsrtowcs tst-wchar-h tst-mbrtowc2 \
- tst-c16c32-1 wcsatcliff tst-wcstol-locale tst-wcstod-nan-locale \
- tst-wcstod-round test-char-types tst-fgetwc-after-eof \
- tst-wcstod-nan-sign tst-c16-surrogate tst-c32-state \
- test-mbrtoc8 test-c8rtomb \
- $(addprefix test-,$(strop-tests)) tst-mbstowcs \
- tst-wprintf-binary
-
-include ../Rules
-
-ifeq ($(run-built-tests),yes)
-LOCALES := de_DE.ISO-8859-1 de_DE.UTF-8 en_US.ANSI_X3.4-1968 hr_HR.ISO-8859-2 \
- ja_JP.EUC-JP zh_TW.EUC-TW tr_TR.UTF-8 tr_TR.ISO-8859-9 zh_HK.BIG5-HKSCS
-include ../gen-locales.mk
-
-$(objpfx)tst-btowc.out: $(gen-locales)
-$(objpfx)tst-c16c32-1.out: $(gen-locales)
-$(objpfx)tst-mbrtowc.out: $(gen-locales)
-$(objpfx)tst-mbrtowc2.out: $(gen-locales)
-$(objpfx)tst-wcrtomb.out: $(gen-locales)
-$(objpfx)wcsmbs-tst1.out: $(gen-locales)
-$(objpfx)tst-wcstol-locale.out: $(gen-locales)
-$(objpfx)tst-wcstod-nan-locale.out: $(gen-locales)
-$(objpfx)tst-c16-surrogate.out: $(gen-locales)
-$(objpfx)tst-c32-state.out: $(gen-locales)
-$(objpfx)test-c8rtomb.out: $(gen-locales)
-$(objpfx)test-mbrtoc8.out: $(gen-locales)
-endif
-
-$(objpfx)tst-wcstod-round: $(libm)
-
-CFLAGS-wcwidth.c += -I../wctype
-CFLAGS-wcswidth.c += -I../wctype
-
-strtox-CFLAGS = -I../include
-CFLAGS-wcstol.c += $(strtox-CFLAGS)
-CFLAGS-wcstoul.c += $(strtox-CFLAGS)
-CFLAGS-wcstoll.c += $(strtox-CFLAGS)
-CFLAGS-wcstoull.c += $(strtox-CFLAGS)
-CFLAGS-wcstod.c += $(strtox-CFLAGS)
-CFLAGS-wcstold.c += $(strtox-CFLAGS)
-CFLAGS-wcstof128.c += $(strtox-CFLAGS)
-CFLAGS-wcstof.c += $(strtox-CFLAGS)
-CFLAGS-wcstol_l.c += $(strtox-CFLAGS)
-CFLAGS-wcstoul_l.c += $(strtox-CFLAGS)
-CFLAGS-wcstoll_l.c += $(strtox-CFLAGS)
-CFLAGS-wcstoull_l.c += $(strtox-CFLAGS)
-CFLAGS-wcstod_l.c += $(strtox-CFLAGS)
-CFLAGS-wcstold_l.c += $(strtox-CFLAGS)
-CFLAGS-wcstof128_l.c += $(strtox-CFLAGS)
-CFLAGS-wcstof_l.c += $(strtox-CFLAGS)
-CPPFLAGS-tst-wchar-h.c += -D_FORTIFY_SOURCE=2
-
-CFLAGS-isoc99_wscanf.c += -fexceptions
-CFLAGS-isoc99_fwscanf.c += -fexceptions
-CFLAGS-isoc99_vwscanf.c += -fexceptions
-CFLAGS-isoc99_vfwscanf.c += -fexceptions
-
-CPPFLAGS += $(libio-mtsafe)
-
-# We need to find the default version of strtold_l in stdlib.
-CPPFLAGS-wcstold_l.c += -I../stdlib
-
-$(objpfx)tst-wcstod-nan-locale: $(libm)
-$(objpfx)tst-wcstod-nan-sign: $(libm)
Index: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/wcsmbs
===================================================================
--- GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/wcsmbs (revision 10)
+++ GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/wcsmbs (nonexistent)
Property changes on: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/wcsmbs
___________________________________________________________________
Deleted: svn:ignore
## -1,80 +0,0 ##
-
-# Target build dirs
-.noarch
-.host
-
-.arm32-newlib
-.a33xx-newlib
-.a9xx-newlib
-.h5-newlib
-.s9xx-newlib
-.rk33xx-newlib
-.m1000-newlib
-.riscv64-newlib
-.at91sam7s-newlib
-
-.a1x-glibc
-.a2x-glibc
-.a311x-glibc
-.h3-glibc
-.h5-glibc
-.imx6-glibc
-.imx6ull-glibc
-.jz47xx-glibc
-.p5600-glibc
-.m1000-glibc
-.omap543x-glibc
-.am335x-glibc
-.rk328x-glibc
-.s8xx-glibc
-.s9xx-glibc
-.a9xx-glibc
-.rk33xx-glibc
-.rk339x-glibc
-.a33xx-glibc
-.power8-glibc
-.power9-glibc
-.power8le-glibc
-.power9le-glibc
-.riscv64-glibc
-.i586-glibc
-.i686-glibc
-.x86_64-glibc
-
-# Hidden files (each file)
-.makefile
-.src_requires
-.src_requires_depend
-.dist
-
-# Destinations
-dist
-
-
-# Tarballs
-*.gz
-*.bz2
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Text files
-*.txt
-
-# Default linux config files
-*.defconfig
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/misc/tst-syslog.c
===================================================================
--- GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/misc/tst-syslog.c (revision 10)
+++ GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/misc/tst-syslog.c (nonexistent)
@@ -1,583 +0,0 @@
-/* Basic tests for syslog interfaces.
- Copyright (C) 2022 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 <array_length.h>
-#include <fcntl.h>
-#include <paths.h>
-#include <netinet/in.h>
-#include <support/capture_subprocess.h>
-#include <support/check.h>
-#include <support/xstdio.h>
-#include <support/xsocket.h>
-#include <support/xunistd.h>
-#include <stdarg.h>
-#include <stdbool.h>
-#include <stddef.h>
-#include <stdlib.h>
-#include <syslog.h>
-#include <sys/un.h>
-
-static const int facilities[] =
- {
- LOG_KERN,
- LOG_USER,
- LOG_MAIL,
- LOG_DAEMON,
- LOG_AUTH,
- LOG_SYSLOG,
- LOG_LPR,
- LOG_NEWS,
- LOG_UUCP,
- LOG_CRON,
- LOG_AUTHPRIV,
- LOG_FTP,
- LOG_LOCAL0,
- LOG_LOCAL1,
- LOG_LOCAL2,
- LOG_LOCAL3,
- LOG_LOCAL4,
- LOG_LOCAL5,
- LOG_LOCAL6,
- LOG_LOCAL7,
- };
-
-static const int priorities[] =
- {
- LOG_EMERG,
- LOG_ALERT,
- LOG_CRIT,
- LOG_ERR,
- LOG_WARNING,
- LOG_NOTICE,
- LOG_INFO,
- LOG_DEBUG
- };
-
-#define IDENT_LENGTH 64
-#define MSG_LENGTH 1024
-
-#define SYSLOG_MSG_BASE "syslog_message"
-#define OPENLOG_IDENT "openlog_ident"
-static char large_message[MSG_LENGTH];
-
-struct msg_t
- {
- int priority;
- int facility;
- char ident[IDENT_LENGTH];
- char msg[MSG_LENGTH];
- pid_t pid;
- };
-
-static void
-call_vsyslog (int priority, const char *format, ...)
-{
- va_list ap;
- va_start (ap, format);
- vsyslog (priority, format, ap);
- va_end (ap);
-}
-
-static void
-send_vsyslog (int options)
-{
- for (size_t i = 0; i < array_length (facilities); i++)
- {
- for (size_t j = 0; j < array_length (priorities); j++)
- {
- int facility = facilities[i];
- int priority = priorities[j];
- call_vsyslog (facility | priority, "%s %d %d", SYSLOG_MSG_BASE,
- facility, priority);
- }
- }
-}
-
-static void
-send_syslog (int options)
-{
- for (size_t i = 0; i < array_length (facilities); i++)
- {
- for (size_t j = 0; j < array_length (priorities); j++)
- {
- int facility = facilities[i];
- int priority = priorities[j];
- syslog (facility | priority, "%s %d %d", SYSLOG_MSG_BASE, facility,
- priority);
- }
- }
-}
-
-static bool
-check_syslog_message (const struct msg_t *msg, int msgnum, int options,
- pid_t pid)
-{
- if (msgnum == array_length (facilities) * array_length (priorities) - 1)
- return false;
-
- int i = msgnum / array_length (priorities);
- int j = msgnum % array_length (priorities);
-
- int expected_facility = facilities[i];
- /* With no preceding openlog, syslog default to LOG_USER. */
- if (expected_facility == LOG_KERN)
- expected_facility = LOG_USER;
- int expected_priority = priorities[j];
-
- TEST_COMPARE (msg->facility, expected_facility);
- TEST_COMPARE (msg->priority, expected_priority);
-
- return true;
-}
-
-static void
-send_syslog_large (int options)
-{
- int facility = LOG_USER;
- int priority = LOG_INFO;
-
- syslog (facility | priority, "%s %d %d", large_message, facility,
- priority);
-}
-
-static void
-send_vsyslog_large (int options)
-{
- int facility = LOG_USER;
- int priority = LOG_INFO;
-
- call_vsyslog (facility | priority, "%s %d %d", large_message, facility,
- priority);
-}
-
-static bool
-check_syslog_message_large (const struct msg_t *msg, int msgnum, int options,
- pid_t pid)
-{
- TEST_COMPARE (msg->facility, LOG_USER);
- TEST_COMPARE (msg->priority, LOG_INFO);
- TEST_COMPARE_STRING (msg->msg, large_message);
-
- return false;
-}
-
-static void
-send_openlog (int options)
-{
- /* Define a non-default IDENT and a not default facility. */
- openlog (OPENLOG_IDENT, options, LOG_LOCAL0);
- for (size_t j = 0; j < array_length (priorities); j++)
- {
- int priority = priorities[j];
- syslog (priority, "%s %d %d", SYSLOG_MSG_BASE, LOG_LOCAL0, priority);
- }
- closelog ();
-
- /* Back to the default IDENT with a non default facility. */
- openlog (NULL, 0, LOG_LOCAL6);
- for (size_t j = 0; j < array_length (priorities); j++)
- {
- int priority = priorities[j];
- syslog (LOG_LOCAL7 | priority, "%s %d %d", SYSLOG_MSG_BASE, LOG_LOCAL7,
- priority);
- }
- closelog ();
-
- /* LOG_KERN does not change the internal default facility. */
- openlog (NULL, 0, LOG_KERN);
- for (size_t j = 0; j < array_length (priorities); j++)
- {
- int priority = priorities[j];
- syslog (priority, "%s %d %d", SYSLOG_MSG_BASE, LOG_KERN, priority);
- }
- closelog ();
-}
-
-static void
-send_openlog_large (int options)
-{
- /* Define a non-default IDENT and a not default facility. */
- openlog (OPENLOG_IDENT, options, LOG_LOCAL0);
-
- syslog (LOG_INFO, "%s %d %d", large_message, LOG_LOCAL0, LOG_INFO);
-
- closelog ();
-}
-
-static bool
-check_openlog_message (const struct msg_t *msg, int msgnum,
- int options, pid_t pid)
-{
- if (msgnum == 3 * array_length (priorities) - 1)
- return false;
-
- int expected_priority = priorities[msgnum % array_length (priorities)];
- TEST_COMPARE (msg->priority, expected_priority);
-
- char expected_ident[IDENT_LENGTH];
- snprintf (expected_ident, sizeof (expected_ident), "%s%s%.0d%s:",
- OPENLOG_IDENT,
- options & LOG_PID ? "[" : "",
- options & LOG_PID ? pid : 0,
- options & LOG_PID ? "]" : "");
-
- if (msgnum < array_length (priorities))
- {
- if (options & LOG_PID)
- TEST_COMPARE (msg->pid, pid);
- TEST_COMPARE_STRING (msg->ident, expected_ident);
- TEST_COMPARE (msg->facility, LOG_LOCAL0);
- }
- else if (msgnum < 2 * array_length (priorities))
- TEST_COMPARE (msg->facility, LOG_LOCAL7);
- else if (msgnum < 3 * array_length (priorities))
- TEST_COMPARE (msg->facility, LOG_KERN);
-
- return true;
-}
-
-static bool
-check_openlog_message_large (const struct msg_t *msg, int msgnum,
- int options, pid_t pid)
-{
- char expected_ident[IDENT_LENGTH];
- snprintf (expected_ident, sizeof (expected_ident), "%s%s%.0d%s:",
- OPENLOG_IDENT,
- options & LOG_PID ? "[" : "",
- options & LOG_PID ? pid : 0,
- options & LOG_PID ? "]" : "");
-
- TEST_COMPARE_STRING (msg->ident, expected_ident);
- TEST_COMPARE_STRING (msg->msg, large_message);
- TEST_COMPARE (msg->priority, LOG_INFO);
- TEST_COMPARE (msg->facility, LOG_LOCAL0);
-
- return false;
-}
-
-static struct msg_t
-parse_syslog_msg (const char *msg)
-{
- struct msg_t r = { .pid = -1 };
- int number;
-
-#define STRINPUT(size) XSTRINPUT(size)
-#define XSTRINPUT(size) "%" # size "s"
-
- /* The message in the form:
- <179>Apr 8 14:51:19 tst-syslog: message 176 3 */
- int n = sscanf (msg, "<%3d>%*s %*d %*d:%*d:%*d " STRINPUT(IDENT_LENGTH)
- " " STRINPUT(MSG_LENGTH) " %*d %*d",
- &number, r.ident, r.msg);
- TEST_COMPARE (n, 3);
-
- r.facility = number & LOG_FACMASK;
- r.priority = number & LOG_PRIMASK;
-
- char *pid_start = strchr (r.ident, '[');
- if (pid_start != NULL)
- {
- char *pid_end = strchr (r.ident, ']');
- if (pid_end != NULL)
- r.pid = strtoul (pid_start + 1, NULL, 10);
- }
-
- return r;
-}
-
-static struct msg_t
-parse_syslog_console (const char *msg)
-{
- int priority;
- int facility;
- struct msg_t r;
-
- /* The message in the form:
- openlog_ident: syslog_message 128 0 */
- int n = sscanf (msg, STRINPUT(IDENT_LENGTH) " " STRINPUT(MSG_LENGTH) " %d %d",
- r.ident, r.msg, &facility, &priority);
- TEST_COMPARE (n, 4);
-
- r.facility = facility;
- r.priority = priority;
-
- return r;
-}
-
-static void
-check_syslog_udp (void (*syslog_send)(int), int options,
- bool (*syslog_check)(const struct msg_t *, int, int,
- pid_t))
-{
- struct sockaddr_un addr =
- {
- .sun_family = AF_UNIX,
- .sun_path = _PATH_LOG
- };
-
- socklen_t addrlen = sizeof (addr);
- int server_udp = xsocket (AF_UNIX, SOCK_DGRAM | SOCK_CLOEXEC, 0);
- xbind (server_udp, (struct sockaddr *) &addr, addrlen);
-
- pid_t sender_pid = xfork ();
- if (sender_pid == 0)
- {
- syslog_send (options);
- _exit (0);
- }
-
- int msgnum = 0;
- while (1)
- {
- char buf[2048];
- size_t l = xrecvfrom (server_udp, buf, sizeof (buf), 0,
- (struct sockaddr *) &addr, &addrlen);
- buf[l] = '\0';
-
- struct msg_t msg = parse_syslog_msg (buf);
- if (!syslog_check (&msg, msgnum++, options, sender_pid))
- break;
- }
-
- xclose (server_udp);
-
- int status;
- xwaitpid (sender_pid, &status, 0);
- TEST_COMPARE (status, 0);
-
- unlink (_PATH_LOG);
-}
-
-static void
-check_syslog_tcp (void (*syslog_send)(int), int options,
- bool (*syslog_check)(const struct msg_t *, int, int,
- pid_t))
-{
- struct sockaddr_un addr =
- {
- .sun_family = AF_UNIX,
- .sun_path = _PATH_LOG
- };
- socklen_t addrlen = sizeof (addr);
-
- int server_tcp = xsocket (AF_UNIX, SOCK_STREAM | SOCK_CLOEXEC, 0);
- xbind (server_tcp, (struct sockaddr *) &addr, addrlen);
- xlisten (server_tcp, 5);
-
- pid_t sender_pid = xfork ();
- if (sender_pid == 0)
- {
- syslog_send (options);
- _exit (0);
- }
-
- int client_tcp = xaccept (server_tcp, NULL, NULL);
-
- char buf[2048], *rb = buf;
- size_t rbl = sizeof (buf);
- size_t prl = 0; /* Track the size of the partial record. */
- int msgnum = 0;
-
- while (1)
- {
- size_t rl = xrecvfrom (client_tcp, rb, rbl - prl, 0, NULL, NULL);
- if (rl == 0)
- break;
-
- /* Iterate over the buffer to find and check the record. */
- size_t l = rl + prl;
- char *b = buf;
- while (1)
- {
- /* With TCP each record ends with a '\0'. */
- char *e = memchr (b, '\0', l);
- if (e != NULL)
- {
- struct msg_t msg = parse_syslog_msg (b);
- if (!syslog_check (&msg, msgnum++, options, sender_pid))
- break;
-
- /* Advance to the next record. */
- ptrdiff_t diff = e + 1 - b;
- b += diff;
- l -= diff;
- }
- else
- {
- /* Move the partial record to the start of the buffer. */
- memmove (buf, b, l);
- rb = buf + l;
- prl = l;
- break;
- }
- }
- }
-
- xclose (client_tcp);
- xclose (server_tcp);
-
- int status;
- xwaitpid (sender_pid, &status, 0);
- TEST_COMPARE (status, 0);
-
- unlink (_PATH_LOG);
-}
-
-static void
-check_syslog_console_read (FILE *fp)
-{
- char buf[512];
- int msgnum = 0;
- while (fgets (buf, sizeof (buf), fp) != NULL)
- {
- struct msg_t msg = parse_syslog_console (buf);
- TEST_COMPARE_STRING (msg.ident, OPENLOG_IDENT ":");
- TEST_COMPARE (msg.priority, priorities[msgnum]);
- TEST_COMPARE (msg.facility, LOG_LOCAL0);
-
- if (++msgnum == array_length (priorities))
- break;
- }
-}
-
-static void
-check_syslog_console_read_large (FILE *fp)
-{
- char buf[2048];
- TEST_VERIFY (fgets (buf, sizeof (buf), fp) != NULL);
- struct msg_t msg = parse_syslog_console (buf);
-
- TEST_COMPARE_STRING (msg.ident, OPENLOG_IDENT ":");
- TEST_COMPARE_STRING (msg.msg, large_message);
- TEST_COMPARE (msg.priority, LOG_INFO);
- TEST_COMPARE (msg.facility, LOG_LOCAL0);
-}
-
-static void
-check_syslog_console (void (*syslog_send)(int),
- void (*syslog_check)(FILE *fp))
-{
- xmkfifo (_PATH_CONSOLE, 0666);
-
- pid_t sender_pid = xfork ();
- if (sender_pid == 0)
- {
- syslog_send (LOG_CONS);
- _exit (0);
- }
-
- {
- FILE *fp = xfopen (_PATH_CONSOLE, "r+");
- syslog_check (fp);
- xfclose (fp);
- }
-
- int status;
- xwaitpid (sender_pid, &status, 0);
- TEST_COMPARE (status, 0);
-
- unlink (_PATH_CONSOLE);
-}
-
-static void
-send_openlog_callback (void *clousure)
-{
- int options = *(int *) clousure;
- send_openlog (options);
-}
-
-static void
-send_openlog_callback_large (void *clousure)
-{
- int options = *(int *) clousure;
- send_openlog_large (options);
-}
-
-static void
-check_syslog_perror (bool large)
-{
- struct support_capture_subprocess result;
- result = support_capture_subprocess (large
- ? send_openlog_callback_large
- : send_openlog_callback,
- &(int){LOG_PERROR});
-
- FILE *mfp = fmemopen (result.err.buffer, result.err.length, "r");
- if (mfp == NULL)
- FAIL_EXIT1 ("fmemopen: %m");
- if (large)
- check_syslog_console_read_large (mfp);
- else
- check_syslog_console_read (mfp);
- xfclose (mfp);
-
- support_capture_subprocess_check (&result, "tst-openlog-child", 0,
- sc_allow_stderr);
- support_capture_subprocess_free (&result);
-}
-
-static int
-do_test (void)
-{
- /* Send every combination of facility/priority over UDP and TCP. */
- check_syslog_udp (send_syslog, 0, check_syslog_message);
- check_syslog_tcp (send_syslog, 0, check_syslog_message);
-
- /* Also check vsyslog. */
- check_syslog_udp (send_vsyslog, 0, check_syslog_message);
- check_syslog_tcp (send_vsyslog, 0, check_syslog_message);
-
- /* Run some openlog/syslog/closelog combinations. */
- check_syslog_udp (send_openlog, 0, check_openlog_message);
- check_syslog_tcp (send_openlog, 0, check_openlog_message);
-
- /* Check the LOG_PID option. */
- check_syslog_udp (send_openlog, LOG_PID, check_openlog_message);
- check_syslog_tcp (send_openlog, LOG_PID, check_openlog_message);
-
- /* Check the LOG_CONS option. */
- check_syslog_console (send_openlog, check_syslog_console_read);
-
- /* Check the LOG_PERROR option. */
- check_syslog_perror (false);
-
- /* Similar tests as before, but with a large message to trigger the
- syslog path that uses dynamically allocated memory. */
- memset (large_message, 'a', sizeof large_message - 1);
- large_message[sizeof large_message - 1] = '\0';
-
- check_syslog_udp (send_syslog_large, 0, check_syslog_message_large);
- check_syslog_tcp (send_syslog_large, 0, check_syslog_message_large);
-
- check_syslog_udp (send_vsyslog_large, 0, check_syslog_message_large);
- check_syslog_tcp (send_vsyslog_large, 0, check_syslog_message_large);
-
- check_syslog_udp (send_openlog_large, 0, check_openlog_message_large);
- check_syslog_tcp (send_openlog_large, 0, check_openlog_message_large);
-
- check_syslog_udp (send_openlog_large, LOG_PID, check_openlog_message_large);
- check_syslog_tcp (send_openlog_large, LOG_PID, check_openlog_message_large);
-
- check_syslog_console (send_openlog_large, check_syslog_console_read_large);
-
- check_syslog_perror (true);
-
- return 0;
-}
-
-#include <support/test-driver.c>
Index: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/misc/syslog.c
===================================================================
--- GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/misc/syslog.c (revision 10)
+++ GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/misc/syslog.c (nonexistent)
@@ -1,391 +0,0 @@
-/*
- * Copyright (c) 1983, 1988, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static char sccsid[] = "@(#)syslog.c 8.4 (Berkeley) 3/18/94";
-#endif /* LIBC_SCCS and not lint */
-
-#include <libio/libioP.h>
-#include <paths.h>
-#include <stdarg.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <stdio_ext.h>
-#include <sys/socket.h>
-#include <sys/uio.h>
-#include <sys/un.h>
-#include <syslog.h>
-
-static int LogType = SOCK_DGRAM; /* type of socket connection */
-static int LogFile = -1; /* fd for log */
-static bool connected; /* have done connect */
-static int LogStat; /* status bits, set by openlog() */
-static const char *LogTag; /* string to tag the entry with */
-static int LogFacility = LOG_USER; /* default facility code */
-static int LogMask = 0xff; /* mask of priorities to be logged */
-extern char *__progname; /* Program name, from crt0. */
-
-/* Define the lock. */
-__libc_lock_define_initialized (static, syslog_lock)
-static void openlog_internal (const char *, int, int);
-static void closelog_internal (void);
-
-struct cleanup_arg
-{
- void *buf;
- struct sigaction *oldaction;
-};
-
-static void
-cancel_handler (void *ptr)
-{
- /* Restore the old signal handler. */
- struct cleanup_arg *clarg = (struct cleanup_arg *) ptr;
-
- if (clarg != NULL)
- /* Free the memstream buffer, */
- free (clarg->buf);
-
- /* Free the lock. */
- __libc_lock_unlock (syslog_lock);
-}
-
-
-/*
- * syslog, vsyslog --
- * print message on log file; output is intended for syslogd(8).
- */
-void
-__syslog (int pri, const char *fmt, ...)
-{
- va_list ap;
-
- va_start (ap, fmt);
- __vsyslog_internal (pri, fmt, ap, 0);
- va_end (ap);
-}
-ldbl_hidden_def (__syslog, syslog)
-ldbl_strong_alias (__syslog, syslog)
-
-void
-__vsyslog (int pri, const char *fmt, va_list ap)
-{
- __vsyslog_internal (pri, fmt, ap, 0);
-}
-ldbl_weak_alias (__vsyslog, vsyslog)
-
-void
-__syslog_chk (int pri, int flag, const char *fmt, ...)
-{
- va_list ap;
-
- va_start (ap, fmt);
- __vsyslog_internal (pri, fmt, ap, (flag > 0) ? PRINTF_FORTIFY : 0);
- va_end (ap);
-}
-
-void
-__vsyslog_chk (int pri, int flag, const char *fmt, va_list ap)
-{
- __vsyslog_internal (pri, fmt, ap, (flag > 0) ? PRINTF_FORTIFY : 0);
-}
-
-void
-__vsyslog_internal (int pri, const char *fmt, va_list ap,
- unsigned int mode_flags)
-{
- /* Try to use a static buffer as an optimization. */
- char bufs[1024];
- char *buf = NULL;
- size_t bufsize = 0;
- int msgoff;
- int saved_errno = errno;
-
-#define INTERNALLOG LOG_ERR|LOG_CONS|LOG_PERROR|LOG_PID
- /* Check for invalid bits. */
- if (pri & ~(LOG_PRIMASK | LOG_FACMASK))
- {
- syslog (INTERNALLOG, "syslog: unknown facility/priority: %x", pri);
- pri &= LOG_PRIMASK | LOG_FACMASK;
- }
-
- /* Prepare for multiple users. We have to take care: most syscalls we are
- using are cancellation points. */
- struct cleanup_arg clarg = { NULL, NULL };
- __libc_cleanup_push (cancel_handler, &clarg);
- __libc_lock_lock (syslog_lock);
-
- /* Check priority against setlogmask values. */
- if ((LOG_MASK (LOG_PRI (pri)) & LogMask) == 0)
- goto out;
-
- /* Set default facility if none specified. */
- if ((pri & LOG_FACMASK) == 0)
- pri |= LogFacility;
-
- pid_t pid = LogStat & LOG_PID ? __getpid () : 0;
-
- /* "%b %e %H:%M:%S " */
- char timestamp[sizeof "MMM DD hh:mm:ss "];
- __time64_t now = time64_now ();
- struct tm now_tm;
- struct tm *now_tmp = __localtime64_r (&now, &now_tm);
- bool has_ts = now_tmp != NULL;
-
- /* In the unlikely case of localtime_r failure (tm_year out of int range)
- skip the hostname so the message is handled as valid PRI but without
- TIMESTAMP or invalid TIMESTAMP (which should force the relay to add the
- timestamp itself). */
- if (has_ts)
- __strftime_l (timestamp, sizeof timestamp, "%h %e %T ", now_tmp,
- _nl_C_locobj_ptr);
-
-#define SYSLOG_HEADER(__pri, __timestamp, __msgoff, pid) \
- "<%d>%s %n%s%s%.0d%s: ", \
- __pri, __timestamp, __msgoff, \
- LogTag == NULL ? __progname : LogTag, \
- "[" + (pid == 0), pid, "]" + (pid == 0)
-
-#define SYSLOG_HEADER_WITHOUT_TS(__pri, __msgoff) \
- "<%d>: %n", __pri, __msgoff
-
- int l;
- if (has_ts)
- l = __snprintf (bufs, sizeof bufs,
- SYSLOG_HEADER (pri, timestamp, &msgoff, pid));
- else
- l = __snprintf (bufs, sizeof bufs,
- SYSLOG_HEADER_WITHOUT_TS (pri, &msgoff));
- if (0 <= l && l < sizeof bufs)
- {
- va_list apc;
- va_copy (apc, ap);
-
- /* Restore errno for %m format. */
- __set_errno (saved_errno);
-
- int vl = __vsnprintf_internal (bufs + l, sizeof bufs - l, fmt, apc,
- mode_flags);
- if (0 <= vl && vl < sizeof bufs - l)
- buf = bufs;
- bufsize = l + vl;
-
- va_end (apc);
- }
-
- if (buf == NULL)
- {
- buf = malloc ((bufsize + 1) * sizeof (char));
- if (buf != NULL)
- {
- /* Tell the cancellation handler to free this buffer. */
- clarg.buf = buf;
-
- if (has_ts)
- __snprintf (buf, l + 1,
- SYSLOG_HEADER (pri, timestamp, &msgoff, pid));
- else
- __snprintf (buf, l + 1,
- SYSLOG_HEADER_WITHOUT_TS (pri, &msgoff));
-
- va_list apc;
- va_copy (apc, ap);
- __vsnprintf_internal (buf + l, bufsize - l + 1, fmt, apc,
- mode_flags);
- va_end (apc);
- }
- else
- {
- /* Nothing much to do but emit an error message. */
- bufsize = __snprintf (bufs, sizeof bufs,
- "out of memory[%d]", __getpid ());
- buf = bufs;
- }
- }
-
- /* Output to stderr if requested. */
- if (LogStat & LOG_PERROR)
- __dprintf (STDERR_FILENO, "%s%s", buf + msgoff,
- "\n" + (buf[bufsize - 1] == '\n'));
-
- /* Get connected, output the message to the local logger. */
- if (!connected)
- openlog_internal (NULL, LogStat | LOG_NDELAY, LogFacility);
-
- /* If we have a SOCK_STREAM connection, also send ASCII NUL as a record
- terminator. */
- if (LogType == SOCK_STREAM)
- ++bufsize;
-
- if (!connected || __send (LogFile, buf, bufsize, MSG_NOSIGNAL) < 0)
- {
- if (connected)
- {
- /* Try to reopen the syslog connection. Maybe it went down. */
- closelog_internal ();
- openlog_internal (NULL, LogStat | LOG_NDELAY, LogFacility);
- }
-
- if (!connected || __send (LogFile, buf, bufsize, MSG_NOSIGNAL) < 0)
- {
- closelog_internal (); /* attempt re-open next time */
- /*
- * Output the message to the console; don't worry
- * about blocking, if console blocks everything will.
- * Make sure the error reported is the one from the
- * syslogd failure.
- */
- int fd;
- if (LogStat & LOG_CONS &&
- (fd = __open (_PATH_CONSOLE, O_WRONLY | O_NOCTTY
- | O_CLOEXEC, 0)) >= 0)
- {
- __dprintf (fd, "%s\r\n", buf + msgoff);
- __close (fd);
- }
- }
- }
-
-out:
- /* End of critical section. */
- __libc_cleanup_pop (0);
- __libc_lock_unlock (syslog_lock);
-
- if (buf != bufs)
- free (buf);
-}
-
-/* AF_UNIX address of local logger */
-static const struct sockaddr_un SyslogAddr =
- {
- .sun_family = AF_UNIX,
- .sun_path = _PATH_LOG
- };
-
-static void
-openlog_internal (const char *ident, int logstat, int logfac)
-{
- if (ident != NULL)
- LogTag = ident;
- LogStat = logstat;
- if ((logfac & ~LOG_FACMASK) == 0)
- LogFacility = logfac;
-
- int retry = 0;
- while (retry < 2)
- {
- if (LogFile == -1)
- {
- if (LogStat & LOG_NDELAY)
- {
- LogFile = __socket (AF_UNIX, LogType | SOCK_CLOEXEC, 0);
- if (LogFile == -1)
- return;
- }
- }
- if (LogFile != -1 && !connected)
- {
- int old_errno = errno;
- if (__connect (LogFile, &SyslogAddr, sizeof (SyslogAddr)) == -1)
- {
- int saved_errno = errno;
- int fd = LogFile;
- LogFile = -1;
- __close (fd);
- __set_errno (old_errno);
- if (saved_errno == EPROTOTYPE)
- {
- /* retry with the other type: */
- LogType = LogType == SOCK_DGRAM ? SOCK_STREAM : SOCK_DGRAM;
- ++retry;
- continue;
- }
- }
- else
- connected = true;
- }
- break;
- }
-}
-
-void
-openlog (const char *ident, int logstat, int logfac)
-{
- /* Protect against multiple users and cancellation. */
- __libc_cleanup_push (cancel_handler, NULL);
- __libc_lock_lock (syslog_lock);
-
- openlog_internal (ident, logstat, logfac);
-
- __libc_cleanup_pop (1);
-}
-
-static void
-closelog_internal (void)
-{
- if (!connected)
- return;
-
- __close (LogFile);
- LogFile = -1;
- connected = false;
-}
-
-void
-closelog (void)
-{
- /* Protect against multiple users and cancellation. */
- __libc_cleanup_push (cancel_handler, NULL);
- __libc_lock_lock (syslog_lock);
-
- closelog_internal ();
- LogTag = NULL;
- LogType = SOCK_DGRAM; /* this is the default */
-
- /* Free the lock. */
- __libc_cleanup_pop (1);
-}
-
-/* setlogmask -- set the log mask level */
-int
-setlogmask (int pmask)
-{
- int omask;
-
- /* Protect against multiple users. */
- __libc_lock_lock (syslog_lock);
-
- omask = LogMask;
- if (pmask != 0)
- LogMask = pmask;
-
- __libc_lock_unlock (syslog_lock);
-
- return (omask);
-}
Index: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/misc
===================================================================
--- GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/misc (revision 10)
+++ GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/misc (nonexistent)
Property changes on: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/misc
___________________________________________________________________
Deleted: svn:ignore
## -1,80 +0,0 ##
-
-# Target build dirs
-.noarch
-.host
-
-.arm32-newlib
-.a33xx-newlib
-.a9xx-newlib
-.h5-newlib
-.s9xx-newlib
-.rk33xx-newlib
-.m1000-newlib
-.riscv64-newlib
-.at91sam7s-newlib
-
-.a1x-glibc
-.a2x-glibc
-.a311x-glibc
-.h3-glibc
-.h5-glibc
-.imx6-glibc
-.imx6ull-glibc
-.jz47xx-glibc
-.p5600-glibc
-.m1000-glibc
-.omap543x-glibc
-.am335x-glibc
-.rk328x-glibc
-.s8xx-glibc
-.s9xx-glibc
-.a9xx-glibc
-.rk33xx-glibc
-.rk339x-glibc
-.a33xx-glibc
-.power8-glibc
-.power9-glibc
-.power8le-glibc
-.power9le-glibc
-.riscv64-glibc
-.i586-glibc
-.i686-glibc
-.x86_64-glibc
-
-# Hidden files (each file)
-.makefile
-.src_requires
-.src_requires_depend
-.dist
-
-# Destinations
-dist
-
-
-# Tarballs
-*.gz
-*.bz2
-*.xz
-*.tgz
-*.txz
-
-# Signatures
-*.asc
-*.sig
-*.sign
-*.sha1sum
-
-# Patches
-*.patch
-
-# Text files
-*.txt
-
-# Default linux config files
-*.defconfig
-
-# Object Files
-*.[ao]
-
-# backup copies
-*~
Index: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/elf/dl-cache.c
===================================================================
--- GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/elf/dl-cache.c (revision 10)
+++ GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/elf/dl-cache.c (nonexistent)
@@ -1,536 +0,0 @@
-/* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
- Copyright (C) 1996-2022 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 <unistd.h>
-#include <ldsodefs.h>
-#include <sys/mman.h>
-#include <dl-cache.h>
-#include <dl-procinfo.h>
-#include <stdint.h>
-#include <_itoa.h>
-#include <dl-hwcaps.h>
-#include <dl-isa-level.h>
-
-#ifndef _DL_PLATFORMS_COUNT
-# define _DL_PLATFORMS_COUNT 0
-#endif
-
-/* This is the starting address and the size of the mmap()ed file. */
-static struct cache_file *cache;
-static struct cache_file_new *cache_new;
-static size_t cachesize;
-
-#ifdef SHARED
-/* This is used to cache the priorities of glibc-hwcaps
- subdirectories. The elements of _dl_cache_priorities correspond to
- the strings in the cache_extension_tag_glibc_hwcaps section. */
-static uint32_t *glibc_hwcaps_priorities;
-static uint32_t glibc_hwcaps_priorities_length;
-static uint32_t glibc_hwcaps_priorities_allocated;
-
-/* True if the full malloc was used to allocated the array. */
-static bool glibc_hwcaps_priorities_malloced;
-
-/* Deallocate the glibc_hwcaps_priorities array. */
-static void
-glibc_hwcaps_priorities_free (void)
-{
- /* When the minimal malloc is in use, free does not do anything,
- so it does not make sense to call it. */
- if (glibc_hwcaps_priorities_malloced)
- free (glibc_hwcaps_priorities);
- glibc_hwcaps_priorities = NULL;
- glibc_hwcaps_priorities_allocated = 0;
-}
-
-/* Ordered comparison of a hwcaps string from the cache on the left
- (identified by its string table index) and a _dl_hwcaps_priorities
- element on the right. */
-static int
-glibc_hwcaps_compare (uint32_t left_index, struct dl_hwcaps_priority *right)
-{
- const char *left_name = (const char *) cache + left_index;
- uint32_t left_name_length = strlen (left_name);
- uint32_t to_compare;
- if (left_name_length < right->name_length)
- to_compare = left_name_length;
- else
- to_compare = right->name_length;
- int cmp = memcmp (left_name, right->name, to_compare);
- if (cmp != 0)
- return cmp;
- if (left_name_length < right->name_length)
- return -1;
- else if (left_name_length > right->name_length)
- return 1;
- else
- return 0;
-}
-
-/* Initialize the glibc_hwcaps_priorities array and its length,
- glibc_hwcaps_priorities_length. */
-static void
-glibc_hwcaps_priorities_init (void)
-{
- struct cache_extension_all_loaded ext;
- if (!cache_extension_load (cache_new, cache, cachesize, &ext))
- return;
-
- uint32_t length = (ext.sections[cache_extension_tag_glibc_hwcaps].size
- / sizeof (uint32_t));
- if (length > glibc_hwcaps_priorities_allocated)
- {
- glibc_hwcaps_priorities_free ();
-
- uint32_t *new_allocation = malloc (length * sizeof (uint32_t));
- if (new_allocation == NULL)
- /* This effectively disables hwcaps on memory allocation
- errors. */
- return;
-
- glibc_hwcaps_priorities = new_allocation;
- glibc_hwcaps_priorities_allocated = length;
- glibc_hwcaps_priorities_malloced = __rtld_malloc_is_complete ();
- }
-
- /* Compute the priorities for the subdirectories by merging the
- array in the cache with the dl_hwcaps_priorities array. */
- const uint32_t *left = ext.sections[cache_extension_tag_glibc_hwcaps].base;
- const uint32_t *left_end = left + length;
- struct dl_hwcaps_priority *right = _dl_hwcaps_priorities;
- struct dl_hwcaps_priority *right_end = right + _dl_hwcaps_priorities_length;
- uint32_t *result = glibc_hwcaps_priorities;
-
- while (left < left_end && right < right_end)
- {
- if (*left < cachesize)
- {
- int cmp = glibc_hwcaps_compare (*left, right);
- if (cmp == 0)
- {
- *result = right->priority;
- ++result;
- ++left;
- ++right;
- }
- else if (cmp < 0)
- {
- *result = 0;
- ++result;
- ++left;
- }
- else
- ++right;
- }
- else
- {
- *result = 0;
- ++result;
- }
- }
- while (left < left_end)
- {
- *result = 0;
- ++result;
- ++left;
- }
-
- glibc_hwcaps_priorities_length = length;
-}
-
-/* Return the priority of the cache_extension_tag_glibc_hwcaps section
- entry at INDEX. Zero means do not use. Otherwise, lower values
- indicate greater preference. */
-static uint32_t
-glibc_hwcaps_priority (uint32_t index)
-{
- /* This does not need to repeated initialization attempts because
- this function is only called if there is glibc-hwcaps data in the
- cache, so the first call initializes the glibc_hwcaps_priorities
- array. */
- if (glibc_hwcaps_priorities_length == 0)
- glibc_hwcaps_priorities_init ();
-
- if (index < glibc_hwcaps_priorities_length)
- return glibc_hwcaps_priorities[index];
- else
- return 0;
-}
-#endif /* SHARED */
-
-/* True if PTR is a valid string table index. */
-static inline bool
-_dl_cache_verify_ptr (uint32_t ptr, size_t string_table_size)
-{
- return ptr < string_table_size;
-}
-
-/* Compute the address of the element INDEX of the array at LIBS.
- Conceptually, this is &LIBS[INDEX], but use ENTRY_SIZE for the size
- of *LIBS. */
-static inline const struct file_entry *
-_dl_cache_file_entry (const struct file_entry *libs, size_t entry_size,
- size_t index)
-{
- return (const void *) libs + index * entry_size;
-}
-
-/* We use binary search since the table is sorted in the cache file.
- The first matching entry in the table is returned. It is important
- to use the same algorithm as used while generating the cache file.
- STRING_TABLE_SIZE indicates the maximum offset in STRING_TABLE at
- which data is mapped; it is not exact. */
-static const char *
-search_cache (const char *string_table, uint32_t string_table_size,
- struct file_entry *libs, uint32_t nlibs, uint32_t entry_size,
- const char *name)
-{
- /* Used by the HWCAP check in the struct file_entry_new case. */
- uint64_t platform = _dl_string_platform (GLRO (dl_platform));
- if (platform != (uint64_t) -1)
- platform = 1ULL << platform;
- uint64_t hwcap_mask = GET_HWCAP_MASK ();
-#define _DL_HWCAP_TLS_MASK (1LL << 63)
- uint64_t hwcap_exclude = ~((GLRO (dl_hwcap) & hwcap_mask)
- | _DL_HWCAP_PLATFORM | _DL_HWCAP_TLS_MASK);
-
- int left = 0;
- int right = nlibs - 1;
- const char *best = NULL;
-#ifdef SHARED
- uint32_t best_priority = 0;
-#endif
-
- while (left <= right)
- {
- int middle = (left + right) / 2;
- uint32_t key = _dl_cache_file_entry (libs, entry_size, middle)->key;
-
- /* Make sure string table indices are not bogus before using
- them. */
- if (!_dl_cache_verify_ptr (key, string_table_size))
- return NULL;
-
- /* Actually compare the entry with the key. */
- int cmpres = _dl_cache_libcmp (name, string_table + key);
- if (__glibc_unlikely (cmpres == 0))
- {
- /* Found it. LEFT now marks the last entry for which we
- know the name is correct. */
- left = middle;
-
- /* There might be entries with this name before the one we
- found. So we have to find the beginning. */
- while (middle > 0)
- {
- key = _dl_cache_file_entry (libs, entry_size, middle - 1)->key;
- /* Make sure string table indices are not bogus before
- using them. */
- if (!_dl_cache_verify_ptr (key, string_table_size)
- /* Actually compare the entry. */
- || _dl_cache_libcmp (name, string_table + key) != 0)
- break;
- --middle;
- }
-
- do
- {
- int flags;
- const struct file_entry *lib
- = _dl_cache_file_entry (libs, entry_size, middle);
-
- /* Only perform the name test if necessary. */
- if (middle > left
- /* We haven't seen this string so far. Test whether the
- index is ok and whether the name matches. Otherwise
- we are done. */
- && (! _dl_cache_verify_ptr (lib->key, string_table_size)
- || (_dl_cache_libcmp (name, string_table + lib->key)
- != 0)))
- break;
-
- flags = lib->flags;
- if (_dl_cache_check_flags (flags)
- && _dl_cache_verify_ptr (lib->value, string_table_size))
- {
- /* Named/extension hwcaps get slightly different
- treatment: We keep searching for a better
- match. */
- bool named_hwcap = false;
-
- if (entry_size >= sizeof (struct file_entry_new))
- {
- /* The entry is large enough to include
- HWCAP data. Check it. */
- struct file_entry_new *libnew
- = (struct file_entry_new *) lib;
-
-#ifdef SHARED
- named_hwcap = dl_cache_hwcap_extension (libnew);
- if (named_hwcap
- && !dl_cache_hwcap_isa_level_compatible (libnew))
- continue;
-#endif
-
- /* The entries with named/extension hwcaps have
- been exhausted (they are listed before all
- other entries). Return the best match
- encountered so far if there is one. */
- if (!named_hwcap && best != NULL)
- break;
-
- if ((libnew->hwcap & hwcap_exclude) && !named_hwcap)
- continue;
- if (_DL_PLATFORMS_COUNT
- && (libnew->hwcap & _DL_HWCAP_PLATFORM) != 0
- && ((libnew->hwcap & _DL_HWCAP_PLATFORM)
- != platform))
- continue;
-
-#ifdef SHARED
- /* For named hwcaps, determine the priority and
- see if beats what has been found so far. */
- if (named_hwcap)
- {
- uint32_t entry_priority
- = glibc_hwcaps_priority (libnew->hwcap);
- if (entry_priority == 0)
- /* Not usable at all. Skip. */
- continue;
- else if (best == NULL
- || entry_priority < best_priority)
- /* This entry is of higher priority
- than the previous one, or it is the
- first entry. */
- best_priority = entry_priority;
- else
- /* An entry has already been found,
- but it is a better match. */
- continue;
- }
-#endif /* SHARED */
- }
-
- best = string_table + lib->value;
-
- if (!named_hwcap && flags == _DL_CACHE_DEFAULT_ID)
- /* With named hwcaps, we need to keep searching to
- see if we find a better match. A better match
- is also possible if the flags of the current
- entry do not match the expected cache flags.
- But if the flags match, no better entry will be
- found. */
- break;
- }
- }
- while (++middle <= right);
- break;
- }
-
- if (cmpres < 0)
- left = middle + 1;
- else
- right = middle - 1;
- }
-
- return best;
-}
-
-int
-_dl_cache_libcmp (const char *p1, const char *p2)
-{
- while (*p1 != '\0')
- {
- if (*p1 >= '0' && *p1 <= '9')
- {
- if (*p2 >= '0' && *p2 <= '9')
- {
- /* Must compare this numerically. */
- int val1;
- int val2;
-
- val1 = *p1++ - '0';
- val2 = *p2++ - '0';
- while (*p1 >= '0' && *p1 <= '9')
- val1 = val1 * 10 + *p1++ - '0';
- while (*p2 >= '0' && *p2 <= '9')
- val2 = val2 * 10 + *p2++ - '0';
- if (val1 != val2)
- return val1 - val2;
- }
- else
- return 1;
- }
- else if (*p2 >= '0' && *p2 <= '9')
- return -1;
- else if (*p1 != *p2)
- return *p1 - *p2;
- else
- {
- ++p1;
- ++p2;
- }
- }
- return *p1 - *p2;
-}
-
-
-/* Look up NAME in ld.so.cache and return the file name stored there, or null
- if none is found. The cache is loaded if it was not already. If loading
- the cache previously failed there will be no more attempts to load it.
- The caller is responsible for freeing the returned string. The ld.so.cache
- may be unmapped at any time by a completing recursive dlopen and
- this function must take care that it does not return references to
- any data in the mapping. */
-char *
-_dl_load_cache_lookup (const char *name)
-{
- /* Print a message if the loading of libs is traced. */
- if (__glibc_unlikely (GLRO(dl_debug_mask) & DL_DEBUG_LIBS))
- _dl_debug_printf (" search cache=%s\n", LD_SO_CACHE);
-
- if (cache == NULL)
- {
- /* Read the contents of the file. */
- void *file = _dl_sysdep_read_whole_file (LD_SO_CACHE, &cachesize,
- PROT_READ);
-
- /* We can handle three different cache file formats here:
- - only the new format
- - the old libc5/glibc2.0/2.1 format
- - the old format with the new format in it
- The following checks if the cache contains any of these formats. */
- if (file != MAP_FAILED && cachesize > sizeof *cache_new
- && memcmp (file, CACHEMAGIC_VERSION_NEW,
- sizeof CACHEMAGIC_VERSION_NEW - 1) == 0
- /* Check for corruption, avoiding overflow. */
- && ((cachesize - sizeof *cache_new) / sizeof (struct file_entry_new)
- >= ((struct cache_file_new *) file)->nlibs))
- {
- if (! cache_file_new_matches_endian (file))
- {
- __munmap (file, cachesize);
- file = (void *) -1;
- }
- cache_new = file;
- cache = file;
- }
- else if (file != MAP_FAILED && cachesize > sizeof *cache
- && memcmp (file, CACHEMAGIC, sizeof CACHEMAGIC - 1) == 0
- /* Check for corruption, avoiding overflow. */
- && ((cachesize - sizeof *cache) / sizeof (struct file_entry)
- >= ((struct cache_file *) file)->nlibs))
- {
- size_t offset;
- /* Looks ok. */
- cache = file;
-
- /* Check for new version. */
- offset = ALIGN_CACHE (sizeof (struct cache_file)
- + cache->nlibs * sizeof (struct file_entry));
-
- cache_new = (struct cache_file_new *) ((void *) cache + offset);
- if (cachesize < (offset + sizeof (struct cache_file_new))
- || memcmp (cache_new->magic, CACHEMAGIC_VERSION_NEW,
- sizeof CACHEMAGIC_VERSION_NEW - 1) != 0)
- cache_new = (void *) -1;
- else
- {
- if (! cache_file_new_matches_endian (cache_new))
- {
- /* The old-format part of the cache is bogus as well
- if the endianness does not match. (But it is
- unclear how the new header can be located if the
- endianess does not match.) */
- cache = (void *) -1;
- cache_new = (void *) -1;
- __munmap (file, cachesize);
- }
- }
- }
- else
- {
- if (file != MAP_FAILED)
- __munmap (file, cachesize);
- cache = (void *) -1;
- }
-
- assert (cache != NULL);
- }
-
- if (cache == (void *) -1)
- /* Previously looked for the cache file and didn't find it. */
- return NULL;
-
- const char *best;
- if (cache_new != (void *) -1)
- {
- const char *string_table = (const char *) cache_new;
- best = search_cache (string_table, cachesize,
- &cache_new->libs[0].entry, cache_new->nlibs,
- sizeof (cache_new->libs[0]), name);
- }
- else
- {
- const char *string_table = (const char *) &cache->libs[cache->nlibs];
- uint32_t string_table_size
- = (const char *) cache + cachesize - string_table;
- best = search_cache (string_table, string_table_size,
- &cache->libs[0], cache->nlibs,
- sizeof (cache->libs[0]), name);
- }
-
- /* Print our result if wanted. */
- if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_LIBS, 0)
- && best != NULL)
- _dl_debug_printf (" trying file=%s\n", best);
-
- if (best == NULL)
- return NULL;
-
- /* The double copy is *required* since malloc may be interposed
- and call dlopen itself whose completion would unmap the data
- we are accessing. Therefore we must make the copy of the
- mapping data without using malloc. */
- char *temp;
- size_t best_len = strlen (best) + 1;
- temp = alloca (best_len);
- memcpy (temp, best, best_len);
- return __strdup (temp);
-}
-
-#ifndef MAP_COPY
-/* If the system does not support MAP_COPY we cannot leave the file open
- all the time since this would create problems when the file is replaced.
- Therefore we provide this function to close the file and open it again
- once needed. */
-void
-_dl_unload_cache (void)
-{
- if (cache != NULL && cache != (struct cache_file *) -1)
- {
- __munmap (cache, cachesize);
- cache = NULL;
- }
-#ifdef SHARED
- /* This marks the glibc_hwcaps_priorities array as out-of-date. */
- glibc_hwcaps_priorities_length = 0;
-#endif
-}
-#endif
Index: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/elf/dl-open.c
===================================================================
--- GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/elf/dl-open.c (revision 10)
+++ GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/elf/dl-open.c (nonexistent)
@@ -1,963 +0,0 @@
-/* Load a shared object at runtime, relocate it, and run its initializer.
- Copyright (C) 1996-2022 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 <dlfcn.h>
-#include <errno.h>
-#include <libintl.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/mman.h> /* Check whether MAP_COPY is defined. */
-#include <sys/param.h>
-#include <libc-lock.h>
-#include <ldsodefs.h>
-#include <sysdep-cancel.h>
-#include <tls.h>
-#include <stap-probe.h>
-#include <atomic.h>
-#include <libc-internal.h>
-#include <array_length.h>
-#include <libc-early-init.h>
-#include <gnu/lib-names.h>
-#include <dl-find_object.h>
-
-#include <dl-dst.h>
-#include <dl-prop.h>
-
-
-/* We must be careful not to leave us in an inconsistent state. Thus we
- catch any error and re-raise it after cleaning up. */
-
-struct dl_open_args
-{
- const char *file;
- int mode;
- /* This is the caller of the dlopen() function. */
- const void *caller_dlopen;
- struct link_map *map;
- /* Namespace ID. */
- Lmid_t nsid;
-
- /* Original value of _ns_global_scope_pending_adds. Set by
- dl_open_worker. Only valid if nsid is a real namespace
- (non-negative). */
- unsigned int original_global_scope_pending_adds;
-
- /* Set to true by dl_open_worker if libc.so was already loaded into
- the namespace at the time dl_open_worker was called. This is
- used to determine whether libc.so early initialization has
- already been done before, and whether to roll back the cached
- libc_map value in the namespace in case of a dlopen failure. */
- bool libc_already_loaded;
-
- /* Set to true if the end of dl_open_worker_begin was reached. */
- bool worker_continue;
-
- /* Original parameters to the program and the current environment. */
- int argc;
- char **argv;
- char **env;
-};
-
-/* Called in case the global scope cannot be extended. */
-static void __attribute__ ((noreturn))
-add_to_global_resize_failure (struct link_map *new)
-{
- _dl_signal_error (ENOMEM, new->l_libname->name, NULL,
- N_ ("cannot extend global scope"));
-}
-
-/* Grow the global scope array for the namespace, so that all the new
- global objects can be added later in add_to_global_update, without
- risk of memory allocation failure. add_to_global_resize raises
- exceptions for memory allocation errors. */
-static void
-add_to_global_resize (struct link_map *new)
-{
- struct link_namespaces *ns = &GL (dl_ns)[new->l_ns];
-
- /* Count the objects we have to put in the global scope. */
- unsigned int to_add = 0;
- for (unsigned int cnt = 0; cnt < new->l_searchlist.r_nlist; ++cnt)
- if (new->l_searchlist.r_list[cnt]->l_global == 0)
- ++to_add;
-
- /* The symbols of the new objects and its dependencies are to be
- introduced into the global scope that will be used to resolve
- references from other dynamically-loaded objects.
-
- The global scope is the searchlist in the main link map. We
- extend this list if necessary. There is one problem though:
- since this structure was allocated very early (before the libc
- is loaded) the memory it uses is allocated by the malloc()-stub
- in the ld.so. When we come here these functions are not used
- anymore. Instead the malloc() implementation of the libc is
- used. But this means the block from the main map cannot be used
- in an realloc() call. Therefore we allocate a completely new
- array the first time we have to add something to the locale scope. */
-
- if (__builtin_add_overflow (ns->_ns_global_scope_pending_adds, to_add,
- &ns->_ns_global_scope_pending_adds))
- add_to_global_resize_failure (new);
-
- unsigned int new_size = 0; /* 0 means no new allocation. */
- void *old_global = NULL; /* Old allocation if free-able. */
-
- /* Minimum required element count for resizing. Adjusted below for
- an exponential resizing policy. */
- size_t required_new_size;
- if (__builtin_add_overflow (ns->_ns_main_searchlist->r_nlist,
- ns->_ns_global_scope_pending_adds,
- &required_new_size))
- add_to_global_resize_failure (new);
-
- if (ns->_ns_global_scope_alloc == 0)
- {
- if (__builtin_add_overflow (required_new_size, 8, &new_size))
- add_to_global_resize_failure (new);
- }
- else if (required_new_size > ns->_ns_global_scope_alloc)
- {
- if (__builtin_mul_overflow (required_new_size, 2, &new_size))
- add_to_global_resize_failure (new);
-
- /* The old array was allocated with our malloc, not the minimal
- malloc. */
- old_global = ns->_ns_main_searchlist->r_list;
- }
-
- if (new_size > 0)
- {
- size_t allocation_size;
- if (__builtin_mul_overflow (new_size, sizeof (struct link_map *),
- &allocation_size))
- add_to_global_resize_failure (new);
- struct link_map **new_global = malloc (allocation_size);
- if (new_global == NULL)
- add_to_global_resize_failure (new);
-
- /* Copy over the old entries. */
- memcpy (new_global, ns->_ns_main_searchlist->r_list,
- ns->_ns_main_searchlist->r_nlist * sizeof (struct link_map *));
-
- ns->_ns_global_scope_alloc = new_size;
- ns->_ns_main_searchlist->r_list = new_global;
-
- if (!RTLD_SINGLE_THREAD_P)
- THREAD_GSCOPE_WAIT ();
-
- free (old_global);
- }
-}
-
-/* Actually add the new global objects to the global scope. Must be
- called after add_to_global_resize. This function cannot fail. */
-static void
-add_to_global_update (struct link_map *new)
-{
- struct link_namespaces *ns = &GL (dl_ns)[new->l_ns];
-
- /* Now add the new entries. */
- unsigned int new_nlist = ns->_ns_main_searchlist->r_nlist;
- for (unsigned int cnt = 0; cnt < new->l_searchlist.r_nlist; ++cnt)
- {
- struct link_map *map = new->l_searchlist.r_list[cnt];
-
- if (map->l_global == 0)
- {
- map->l_global = 1;
-
- /* The array has been resized by add_to_global_resize. */
- assert (new_nlist < ns->_ns_global_scope_alloc);
-
- ns->_ns_main_searchlist->r_list[new_nlist++] = map;
-
- /* We modify the global scope. Report this. */
- if (__glibc_unlikely (GLRO(dl_debug_mask) & DL_DEBUG_SCOPES))
- _dl_debug_printf ("\nadd %s [%lu] to global scope\n",
- map->l_name, map->l_ns);
- }
- }
-
- /* Some of the pending adds have been performed by the loop above.
- Adjust the counter accordingly. */
- unsigned int added = new_nlist - ns->_ns_main_searchlist->r_nlist;
- assert (added <= ns->_ns_global_scope_pending_adds);
- ns->_ns_global_scope_pending_adds -= added;
-
- atomic_write_barrier ();
- ns->_ns_main_searchlist->r_nlist = new_nlist;
-}
-
-/* Search link maps in all namespaces for the DSO that contains the object at
- address ADDR. Returns the pointer to the link map of the matching DSO, or
- NULL if a match is not found. */
-struct link_map *
-_dl_find_dso_for_object (const ElfW(Addr) addr)
-{
- struct link_map *l;
-
- /* Find the highest-addressed object that ADDR is not below. */
- for (Lmid_t ns = 0; ns < GL(dl_nns); ++ns)
- for (l = GL(dl_ns)[ns]._ns_loaded; l != NULL; l = l->l_next)
- if (addr >= l->l_map_start && addr < l->l_map_end
- && (l->l_contiguous
- || _dl_addr_inside_object (l, (ElfW(Addr)) addr)))
- {
- assert (ns == l->l_ns);
- return l;
- }
- return NULL;
-}
-rtld_hidden_def (_dl_find_dso_for_object);
-
-/* Return true if NEW is found in the scope for MAP. */
-static size_t
-scope_has_map (struct link_map *map, struct link_map *new)
-{
- size_t cnt;
- for (cnt = 0; map->l_scope[cnt] != NULL; ++cnt)
- if (map->l_scope[cnt] == &new->l_searchlist)
- return true;
- return false;
-}
-
-/* Return the length of the scope for MAP. */
-static size_t
-scope_size (struct link_map *map)
-{
- size_t cnt;
- for (cnt = 0; map->l_scope[cnt] != NULL; )
- ++cnt;
- return cnt;
-}
-
-/* Resize the scopes of depended-upon objects, so that the new object
- can be added later without further allocation of memory. This
- function can raise an exceptions due to malloc failure. */
-static void
-resize_scopes (struct link_map *new)
-{
- /* If the file is not loaded now as a dependency, add the search
- list of the newly loaded object to the scope. */
- for (unsigned int i = 0; i < new->l_searchlist.r_nlist; ++i)
- {
- struct link_map *imap = new->l_searchlist.r_list[i];
-
- /* If the initializer has been called already, the object has
- not been loaded here and now. */
- if (imap->l_init_called && imap->l_type == lt_loaded)
- {
- if (scope_has_map (imap, new))
- /* Avoid duplicates. */
- continue;
-
- size_t cnt = scope_size (imap);
- if (__glibc_unlikely (cnt + 1 >= imap->l_scope_max))
- {
- /* The l_scope array is too small. Allocate a new one
- dynamically. */
- size_t new_size;
- struct r_scope_elem **newp;
-
- if (imap->l_scope != imap->l_scope_mem
- && imap->l_scope_max < array_length (imap->l_scope_mem))
- {
- /* If the current l_scope memory is not pointing to
- the static memory in the structure, but the
- static memory in the structure is large enough to
- use for cnt + 1 scope entries, then switch to
- using the static memory. */
- new_size = array_length (imap->l_scope_mem);
- newp = imap->l_scope_mem;
- }
- else
- {
- new_size = imap->l_scope_max * 2;
- newp = (struct r_scope_elem **)
- malloc (new_size * sizeof (struct r_scope_elem *));
- if (newp == NULL)
- _dl_signal_error (ENOMEM, "dlopen", NULL,
- N_("cannot create scope list"));
- }
-
- /* Copy the array and the terminating NULL. */
- memcpy (newp, imap->l_scope,
- (cnt + 1) * sizeof (imap->l_scope[0]));
- struct r_scope_elem **old = imap->l_scope;
-
- imap->l_scope = newp;
-
- if (old != imap->l_scope_mem)
- _dl_scope_free (old);
-
- imap->l_scope_max = new_size;
- }
- }
- }
-}
-
-/* Second stage of resize_scopes: Add NEW to the scopes. Also print
- debugging information about scopes if requested.
-
- This function cannot raise an exception because all required memory
- has been allocated by a previous call to resize_scopes. */
-static void
-update_scopes (struct link_map *new)
-{
- for (unsigned int i = 0; i < new->l_searchlist.r_nlist; ++i)
- {
- struct link_map *imap = new->l_searchlist.r_list[i];
- int from_scope = 0;
-
- if (imap->l_init_called && imap->l_type == lt_loaded)
- {
- if (scope_has_map (imap, new))
- /* Avoid duplicates. */
- continue;
-
- size_t cnt = scope_size (imap);
- /* Assert that resize_scopes has sufficiently enlarged the
- array. */
- assert (cnt + 1 < imap->l_scope_max);
-
- /* First terminate the extended list. Otherwise a thread
- might use the new last element and then use the garbage
- at offset IDX+1. */
- imap->l_scope[cnt + 1] = NULL;
- atomic_write_barrier ();
- imap->l_scope[cnt] = &new->l_searchlist;
-
- from_scope = cnt;
- }
-
- /* Print scope information. */
- if (__glibc_unlikely (GLRO(dl_debug_mask) & DL_DEBUG_SCOPES))
- _dl_show_scope (imap, from_scope);
- }
-}
-
-/* Call _dl_add_to_slotinfo with DO_ADD set to false, to allocate
- space in GL (dl_tls_dtv_slotinfo_list). This can raise an
- exception. The return value is true if any of the new objects use
- TLS. */
-static bool
-resize_tls_slotinfo (struct link_map *new)
-{
- bool any_tls = false;
- for (unsigned int i = 0; i < new->l_searchlist.r_nlist; ++i)
- {
- struct link_map *imap = new->l_searchlist.r_list[i];
-
- /* Only add TLS memory if this object is loaded now and
- therefore is not yet initialized. */
- if (! imap->l_init_called && imap->l_tls_blocksize > 0)
- {
- _dl_add_to_slotinfo (imap, false);
- any_tls = true;
- }
- }
- return any_tls;
-}
-
-/* Second stage of TLS update, after resize_tls_slotinfo. This
- function does not raise any exception. It should only be called if
- resize_tls_slotinfo returned true. */
-static void
-update_tls_slotinfo (struct link_map *new)
-{
- unsigned int first_static_tls = new->l_searchlist.r_nlist;
- for (unsigned int i = 0; i < new->l_searchlist.r_nlist; ++i)
- {
- struct link_map *imap = new->l_searchlist.r_list[i];
-
- /* Only add TLS memory if this object is loaded now and
- therefore is not yet initialized. */
- if (! imap->l_init_called && imap->l_tls_blocksize > 0)
- {
- _dl_add_to_slotinfo (imap, true);
-
- if (imap->l_need_tls_init
- && first_static_tls == new->l_searchlist.r_nlist)
- first_static_tls = i;
- }
- }
-
- size_t newgen = GL(dl_tls_generation) + 1;
- if (__glibc_unlikely (newgen == 0))
- _dl_fatal_printf (N_("\
-TLS generation counter wrapped! Please report this."));
- /* Can be read concurrently. */
- atomic_store_relaxed (&GL(dl_tls_generation), newgen);
-
- /* We need a second pass for static tls data, because
- _dl_update_slotinfo must not be run while calls to
- _dl_add_to_slotinfo are still pending. */
- for (unsigned int i = first_static_tls; i < new->l_searchlist.r_nlist; ++i)
- {
- struct link_map *imap = new->l_searchlist.r_list[i];
-
- if (imap->l_need_tls_init
- && ! imap->l_init_called
- && imap->l_tls_blocksize > 0)
- {
- /* For static TLS we have to allocate the memory here and
- now, but we can delay updating the DTV. */
- imap->l_need_tls_init = 0;
-#ifdef SHARED
- /* Update the slot information data for at least the
- generation of the DSO we are allocating data for. */
-
- /* FIXME: This can terminate the process on memory
- allocation failure. It is not possible to raise
- exceptions from this context; to fix this bug,
- _dl_update_slotinfo would have to be split into two
- operations, similar to resize_scopes and update_scopes
- above. This is related to bug 16134. */
- _dl_update_slotinfo (imap->l_tls_modid);
-#endif
-
- dl_init_static_tls (imap);
- assert (imap->l_need_tls_init == 0);
- }
- }
-}
-
-/* Mark the objects as NODELETE if required. This is delayed until
- after dlopen failure is not possible, so that _dl_close can clean
- up objects if necessary. */
-static void
-activate_nodelete (struct link_map *new)
-{
- /* It is necessary to traverse the entire namespace. References to
- objects in the global scope and unique symbol bindings can force
- NODELETE status for objects outside the local scope. */
- for (struct link_map *l = GL (dl_ns)[new->l_ns]._ns_loaded; l != NULL;
- l = l->l_next)
- if (l->l_nodelete_pending)
- {
- if (__glibc_unlikely (GLRO (dl_debug_mask) & DL_DEBUG_FILES))
- _dl_debug_printf ("activating NODELETE for %s [%lu]\n",
- l->l_name, l->l_ns);
-
- /* The flag can already be true at this point, e.g. a signal
- handler may have triggered lazy binding and set NODELETE
- status immediately. */
- l->l_nodelete_active = true;
-
- /* This is just a debugging aid, to indicate that
- activate_nodelete has run for this map. */
- l->l_nodelete_pending = false;
- }
-}
-
-/* struct dl_init_args and call_dl_init are used to call _dl_init with
- exception handling disabled. */
-struct dl_init_args
-{
- struct link_map *new;
- int argc;
- char **argv;
- char **env;
-};
-
-static void
-call_dl_init (void *closure)
-{
- struct dl_init_args *args = closure;
- _dl_init (args->new, args->argc, args->argv, args->env);
-}
-
-static void
-dl_open_worker_begin (void *a)
-{
- struct dl_open_args *args = a;
- const char *file = args->file;
- int mode = args->mode;
- struct link_map *call_map = NULL;
-
- /* Determine the caller's map if necessary. This is needed in case
- we have a DST, when we don't know the namespace ID we have to put
- the new object in, or when the file name has no path in which
- case we need to look along the RUNPATH/RPATH of the caller. */
- const char *dst = strchr (file, '$');
- if (dst != NULL || args->nsid == __LM_ID_CALLER
- || strchr (file, '/') == NULL)
- {
- const void *caller_dlopen = args->caller_dlopen;
-
- /* We have to find out from which object the caller is calling.
- By default we assume this is the main application. */
- call_map = GL(dl_ns)[LM_ID_BASE]._ns_loaded;
-
- struct link_map *l = _dl_find_dso_for_object ((ElfW(Addr)) caller_dlopen);
-
- if (l)
- call_map = l;
-
- if (args->nsid == __LM_ID_CALLER)
- args->nsid = call_map->l_ns;
- }
-
- /* The namespace ID is now known. Keep track of whether libc.so was
- already loaded, to determine whether it is necessary to call the
- early initialization routine (or clear libc_map on error). */
- args->libc_already_loaded = GL(dl_ns)[args->nsid].libc_map != NULL;
-
- /* Retain the old value, so that it can be restored. */
- args->original_global_scope_pending_adds
- = GL (dl_ns)[args->nsid]._ns_global_scope_pending_adds;
-
- /* One might be tempted to assert that we are RT_CONSISTENT at this point, but that
- may not be true if this is a recursive call to dlopen. */
- _dl_debug_initialize (0, args->nsid);
-
- /* Load the named object. */
- struct link_map *new;
- args->map = new = _dl_map_object (call_map, file, lt_loaded, 0,
- mode | __RTLD_CALLMAP, args->nsid);
-
- /* If the pointer returned is NULL this means the RTLD_NOLOAD flag is
- set and the object is not already loaded. */
- if (new == NULL)
- {
- assert (mode & RTLD_NOLOAD);
- return;
- }
-
- if (__glibc_unlikely (mode & __RTLD_SPROF))
- /* This happens only if we load a DSO for 'sprof'. */
- return;
-
- /* This object is directly loaded. */
- ++new->l_direct_opencount;
-
- /* It was already open. */
- if (__glibc_unlikely (new->l_searchlist.r_list != NULL))
- {
- /* Let the user know about the opencount. */
- if (__glibc_unlikely (GLRO(dl_debug_mask) & DL_DEBUG_FILES))
- _dl_debug_printf ("opening file=%s [%lu]; direct_opencount=%u\n\n",
- new->l_name, new->l_ns, new->l_direct_opencount);
-
- /* If the user requested the object to be in the global
- namespace but it is not so far, prepare to add it now. This
- can raise an exception to do a malloc failure. */
- if ((mode & RTLD_GLOBAL) && new->l_global == 0)
- add_to_global_resize (new);
-
- /* Mark the object as not deletable if the RTLD_NODELETE flags
- was passed. */
- if (__glibc_unlikely (mode & RTLD_NODELETE))
- {
- if (__glibc_unlikely (GLRO (dl_debug_mask) & DL_DEBUG_FILES)
- && !new->l_nodelete_active)
- _dl_debug_printf ("marking %s [%lu] as NODELETE\n",
- new->l_name, new->l_ns);
- new->l_nodelete_active = true;
- }
-
- /* Finalize the addition to the global scope. */
- if ((mode & RTLD_GLOBAL) && new->l_global == 0)
- add_to_global_update (new);
-
- assert (_dl_debug_update (args->nsid)->r_state == RT_CONSISTENT);
-
- return;
- }
-
- /* Schedule NODELETE marking for the directly loaded object if
- requested. */
- if (__glibc_unlikely (mode & RTLD_NODELETE))
- new->l_nodelete_pending = true;
-
- /* Load that object's dependencies. */
- _dl_map_object_deps (new, NULL, 0, 0,
- mode & (__RTLD_DLOPEN | RTLD_DEEPBIND | __RTLD_AUDIT));
-
- /* So far, so good. Now check the versions. */
- for (unsigned int i = 0; i < new->l_searchlist.r_nlist; ++i)
- if (new->l_searchlist.r_list[i]->l_real->l_versions == NULL)
- {
- struct link_map *map = new->l_searchlist.r_list[i]->l_real;
- _dl_check_map_versions (map, 0, 0);
-#ifndef SHARED
- /* During static dlopen, check if ld.so has been loaded.
- Perform partial initialization in this case. This must
- come after the symbol versioning initialization in
- _dl_check_map_versions. */
- if (map->l_info[DT_SONAME] != NULL
- && strcmp (((const char *) D_PTR (map, l_info[DT_STRTAB])
- + map->l_info[DT_SONAME]->d_un.d_val), LD_SO) == 0)
- __rtld_static_init (map);
-#endif
- }
-
-#ifdef SHARED
- /* Auditing checkpoint: we have added all objects. */
- _dl_audit_activity_nsid (new->l_ns, LA_ACT_CONSISTENT);
-#endif
-
- /* Notify the debugger all new objects are now ready to go. */
- struct r_debug *r = _dl_debug_update (args->nsid);
- r->r_state = RT_CONSISTENT;
- _dl_debug_state ();
- LIBC_PROBE (map_complete, 3, args->nsid, r, new);
-
- _dl_open_check (new);
-
- /* Print scope information. */
- if (__glibc_unlikely (GLRO(dl_debug_mask) & DL_DEBUG_SCOPES))
- _dl_show_scope (new, 0);
-
- /* Only do lazy relocation if `LD_BIND_NOW' is not set. */
- int reloc_mode = mode & __RTLD_AUDIT;
- if (GLRO(dl_lazy))
- reloc_mode |= mode & RTLD_LAZY;
-
- /* Objects must be sorted by dependency for the relocation process.
- This allows IFUNC relocations to work and it also means copy
- relocation of dependencies are if necessary overwritten.
- __dl_map_object_deps has already sorted l_initfini for us. */
- unsigned int first = UINT_MAX;
- unsigned int last = 0;
- unsigned int j = 0;
- struct link_map *l = new->l_initfini[0];
- do
- {
- if (! l->l_real->l_relocated)
- {
- if (first == UINT_MAX)
- first = j;
- last = j + 1;
- }
- l = new->l_initfini[++j];
- }
- while (l != NULL);
-
- int relocation_in_progress = 0;
-
- /* Perform relocation. This can trigger lazy binding in IFUNC
- resolvers. For NODELETE mappings, these dependencies are not
- recorded because the flag has not been applied to the newly
- loaded objects. This means that upon dlopen failure, these
- NODELETE objects can be unloaded despite existing references to
- them. However, such relocation dependencies in IFUNC resolvers
- are undefined anyway, so this is not a problem. */
-
- for (unsigned int i = last; i-- > first; )
- {
- l = new->l_initfini[i];
-
- if (l->l_real->l_relocated)
- continue;
-
- if (! relocation_in_progress)
- {
- /* Notify the debugger that relocations are about to happen. */
- LIBC_PROBE (reloc_start, 2, args->nsid, r);
- relocation_in_progress = 1;
- }
-
-#ifdef SHARED
- if (__glibc_unlikely (GLRO(dl_profile) != NULL))
- {
- /* If this here is the shared object which we want to profile
- make sure the profile is started. We can find out whether
- this is necessary or not by observing the `_dl_profile_map'
- variable. If it was NULL but is not NULL afterwards we must
- start the profiling. */
- struct link_map *old_profile_map = GL(dl_profile_map);
-
- _dl_relocate_object (l, l->l_scope, reloc_mode | RTLD_LAZY, 1);
-
- if (old_profile_map == NULL && GL(dl_profile_map) != NULL)
- {
- /* We must prepare the profiling. */
- _dl_start_profile ();
-
- /* Prevent unloading the object. */
- GL(dl_profile_map)->l_nodelete_active = true;
- }
- }
- else
-#endif
- _dl_relocate_object (l, l->l_scope, reloc_mode, 0);
- }
-
- /* This only performs the memory allocations. The actual update of
- the scopes happens below, after failure is impossible. */
- resize_scopes (new);
-
- /* Increase the size of the GL (dl_tls_dtv_slotinfo_list) data
- structure. */
- bool any_tls = resize_tls_slotinfo (new);
-
- /* Perform the necessary allocations for adding new global objects
- to the global scope below. */
- if (mode & RTLD_GLOBAL)
- add_to_global_resize (new);
-
- /* Demarcation point: After this, no recoverable errors are allowed.
- All memory allocations for new objects must have happened
- before. */
-
- /* Finalize the NODELETE status first. This comes before
- update_scopes, so that lazy binding will not see pending NODELETE
- state for newly loaded objects. There is a compiler barrier in
- update_scopes which ensures that the changes from
- activate_nodelete are visible before new objects show up in the
- local scope. */
- activate_nodelete (new);
-
- /* Second stage after resize_scopes: Actually perform the scope
- update. After this, dlsym and lazy binding can bind to new
- objects. */
- update_scopes (new);
-
- if (!_dl_find_object_update (new))
- _dl_signal_error (ENOMEM, new->l_libname->name, NULL,
- N_ ("cannot allocate address lookup data"));
-
- /* FIXME: It is unclear whether the order here is correct.
- Shouldn't new objects be made available for binding (and thus
- execution) only after there TLS data has been set up fully?
- Fixing bug 16134 will likely make this distinction less
- important. */
-
- /* Second stage after resize_tls_slotinfo: Update the slotinfo data
- structures. */
- if (any_tls)
- /* FIXME: This calls _dl_update_slotinfo, which aborts the process
- on memory allocation failure. See bug 16134. */
- update_tls_slotinfo (new);
-
- /* Notify the debugger all new objects have been relocated. */
- if (relocation_in_progress)
- LIBC_PROBE (reloc_complete, 3, args->nsid, r, new);
-
- /* If libc.so was not there before, attempt to call its early
- initialization routine. Indicate to the initialization routine
- whether the libc being initialized is the one in the base
- namespace. */
- if (!args->libc_already_loaded)
- {
- /* dlopen cannot be used to load an initial libc by design. */
- struct link_map *libc_map = GL(dl_ns)[args->nsid].libc_map;
- _dl_call_libc_early_init (libc_map, false);
- }
-
- args->worker_continue = true;
-}
-
-static void
-dl_open_worker (void *a)
-{
- struct dl_open_args *args = a;
-
- args->worker_continue = false;
-
- {
- /* Protects global and module specific TLS state. */
- __rtld_lock_lock_recursive (GL(dl_load_tls_lock));
-
- struct dl_exception ex;
- int err = _dl_catch_exception (&ex, dl_open_worker_begin, args);
-
- __rtld_lock_unlock_recursive (GL(dl_load_tls_lock));
-
- if (__glibc_unlikely (ex.errstring != NULL))
- /* Reraise the error. */
- _dl_signal_exception (err, &ex, NULL);
- }
-
- if (!args->worker_continue)
- return;
-
- int mode = args->mode;
- struct link_map *new = args->map;
-
- /* Run the initializer functions of new objects. Temporarily
- disable the exception handler, so that lazy binding failures are
- fatal. */
- {
- struct dl_init_args init_args =
- {
- .new = new,
- .argc = args->argc,
- .argv = args->argv,
- .env = args->env
- };
- _dl_catch_exception (NULL, call_dl_init, &init_args);
- }
-
- /* Now we can make the new map available in the global scope. */
- if (mode & RTLD_GLOBAL)
- add_to_global_update (new);
-
- /* Let the user know about the opencount. */
- if (__glibc_unlikely (GLRO(dl_debug_mask) & DL_DEBUG_FILES))
- _dl_debug_printf ("opening file=%s [%lu]; direct_opencount=%u\n\n",
- new->l_name, new->l_ns, new->l_direct_opencount);
-}
-
-void *
-_dl_open (const char *file, int mode, const void *caller_dlopen, Lmid_t nsid,
- int argc, char *argv[], char *env[])
-{
- if ((mode & RTLD_BINDING_MASK) == 0)
- /* One of the flags must be set. */
- _dl_signal_error (EINVAL, file, NULL, N_("invalid mode for dlopen()"));
-
- /* Make sure we are alone. */
- __rtld_lock_lock_recursive (GL(dl_load_lock));
-
- if (__glibc_unlikely (nsid == LM_ID_NEWLM))
- {
- /* Find a new namespace. */
- for (nsid = 1; DL_NNS > 1 && nsid < GL(dl_nns); ++nsid)
- if (GL(dl_ns)[nsid]._ns_loaded == NULL)
- break;
-
- if (__glibc_unlikely (nsid == DL_NNS))
- {
- /* No more namespace available. */
- __rtld_lock_unlock_recursive (GL(dl_load_lock));
-
- _dl_signal_error (EINVAL, file, NULL, N_("\
-no more namespaces available for dlmopen()"));
- }
-
- if (nsid == GL(dl_nns))
- ++GL(dl_nns);
-
- /* Initialize the new namespace. Most members are
- zero-initialized, only the lock needs special treatment. */
- memset (&GL(dl_ns)[nsid], 0, sizeof (GL(dl_ns)[nsid]));
- __rtld_lock_initialize (GL(dl_ns)[nsid]._ns_unique_sym_table.lock);
-
- _dl_debug_update (nsid)->r_state = RT_CONSISTENT;
- }
- /* Never allow loading a DSO in a namespace which is empty. Such
- direct placements is only causing problems. Also don't allow
- loading into a namespace used for auditing. */
- else if (__glibc_unlikely (nsid != LM_ID_BASE && nsid != __LM_ID_CALLER)
- && (__glibc_unlikely (nsid < 0 || nsid >= GL(dl_nns))
- /* This prevents the [NSID] index expressions from being
- evaluated, so the compiler won't think that we are
- accessing an invalid index here in the !SHARED case where
- DL_NNS is 1 and so any NSID != 0 is invalid. */
- || DL_NNS == 1
- || GL(dl_ns)[nsid]._ns_nloaded == 0
- || GL(dl_ns)[nsid]._ns_loaded->l_auditing))
- _dl_signal_error (EINVAL, file, NULL,
- N_("invalid target namespace in dlmopen()"));
-
- struct dl_open_args args;
- args.file = file;
- args.mode = mode;
- args.caller_dlopen = caller_dlopen;
- args.map = NULL;
- args.nsid = nsid;
- /* args.libc_already_loaded is always assigned by dl_open_worker
- (before any explicit/non-local returns). */
- args.argc = argc;
- args.argv = argv;
- args.env = env;
-
- struct dl_exception exception;
- int errcode = _dl_catch_exception (&exception, dl_open_worker, &args);
-
-#if defined USE_LDCONFIG && !defined MAP_COPY
- /* We must unmap the cache file. */
- _dl_unload_cache ();
-#endif
-
- /* Do this for both the error and success cases. The old value has
- only been determined if the namespace ID was assigned (i.e., it
- is not __LM_ID_CALLER). In the success case, we actually may
- have consumed more pending adds than planned (because the local
- scopes overlap in case of a recursive dlopen, the inner dlopen
- doing some of the globalization work of the outer dlopen), so the
- old pending adds value is larger than absolutely necessary.
- Since it is just a conservative upper bound, this is harmless.
- The top-level dlopen call will restore the field to zero. */
- if (args.nsid >= 0)
- GL (dl_ns)[args.nsid]._ns_global_scope_pending_adds
- = args.original_global_scope_pending_adds;
-
- /* See if an error occurred during loading. */
- if (__glibc_unlikely (exception.errstring != NULL))
- {
- /* Avoid keeping around a dangling reference to the libc.so link
- map in case it has been cached in libc_map. */
- if (!args.libc_already_loaded)
- GL(dl_ns)[args.nsid].libc_map = NULL;
-
- /* Remove the object from memory. It may be in an inconsistent
- state if relocation failed, for example. */
- if (args.map)
- {
- _dl_close_worker (args.map, true);
-
- /* All l_nodelete_pending objects should have been deleted
- at this point, which is why it is not necessary to reset
- the flag here. */
- }
-
- /* Release the lock. */
- __rtld_lock_unlock_recursive (GL(dl_load_lock));
-
- /* Reraise the error. */
- _dl_signal_exception (errcode, &exception, NULL);
- }
-
- assert (_dl_debug_update (args.nsid)->r_state == RT_CONSISTENT);
-
- /* Release the lock. */
- __rtld_lock_unlock_recursive (GL(dl_load_lock));
-
- return args.map;
-}
-
-
-void
-_dl_show_scope (struct link_map *l, int from)
-{
- _dl_debug_printf ("object=%s [%lu]\n",
- DSO_FILENAME (l->l_name), l->l_ns);
- if (l->l_scope != NULL)
- for (int scope_cnt = from; l->l_scope[scope_cnt] != NULL; ++scope_cnt)
- {
- _dl_debug_printf (" scope %u:", scope_cnt);
-
- for (unsigned int cnt = 0; cnt < l->l_scope[scope_cnt]->r_nlist; ++cnt)
- if (*l->l_scope[scope_cnt]->r_list[cnt]->l_name)
- _dl_debug_printf_c (" %s",
- l->l_scope[scope_cnt]->r_list[cnt]->l_name);
- else
- _dl_debug_printf_c (" %s", RTLD_PROGNAME);
-
- _dl_debug_printf_c ("\n");
- }
- else
- _dl_debug_printf (" no scope\n");
- _dl_debug_printf ("\n");
-}
Index: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/elf/rtld.c
===================================================================
--- GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/elf/rtld.c (revision 10)
+++ GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/elf/rtld.c (nonexistent)
@@ -1,2827 +0,0 @@
-/* Run time dynamic linker.
- Copyright (C) 1995-2022 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 <errno.h>
-#include <dlfcn.h>
-#include <fcntl.h>
-#include <stdbool.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/mman.h>
-#include <sys/param.h>
-#include <sys/stat.h>
-#include <ldsodefs.h>
-#include <_itoa.h>
-#include <entry.h>
-#include <fpu_control.h>
-#include <hp-timing.h>
-#include <libc-lock.h>
-#include <unsecvars.h>
-#include <dl-cache.h>
-#include <dl-osinfo.h>
-#include <dl-procinfo.h>
-#include <dl-prop.h>
-#include <dl-vdso.h>
-#include <dl-vdso-setup.h>
-#include <tls.h>
-#include <stap-probe.h>
-#include <stackinfo.h>
-#include <not-cancel.h>
-#include <array_length.h>
-#include <libc-early-init.h>
-#include <dl-main.h>
-#include <gnu/lib-names.h>
-#include <dl-tunables.h>
-#include <get-dynamic-info.h>
-#include <dl-execve.h>
-#include <dl-find_object.h>
-#include <dl-audit-check.h>
-
-#include <assert.h>
-
-/* This #define produces dynamic linking inline functions for
- bootstrap relocation instead of general-purpose relocation.
- Since ld.so must not have any undefined symbols the result
- is trivial: always the map of ld.so itself. */
-#define RTLD_BOOTSTRAP
-#define RESOLVE_MAP(map, scope, sym, version, flags) map
-#include "dynamic-link.h"
-
-/* Must include after <dl-machine.h> for DT_MIPS definition. */
-#include <dl-debug.h>
-
-/* Only enables rtld profiling for architectures which provides non generic
- hp-timing support. The generic support requires either syscall
- (clock_gettime), which will incur in extra overhead on loading time.
- Using vDSO is also an option, but it will require extra support on loader
- to setup the vDSO pointer before its usage. */
-#if HP_TIMING_INLINE
-# define RLTD_TIMING_DECLARE(var, classifier,...) \
- classifier hp_timing_t var __VA_ARGS__
-# define RTLD_TIMING_VAR(var) RLTD_TIMING_DECLARE (var, )
-# define RTLD_TIMING_SET(var, value) (var) = (value)
-# define RTLD_TIMING_REF(var) &(var)
-
-static inline void
-rtld_timer_start (hp_timing_t *var)
-{
- HP_TIMING_NOW (*var);
-}
-
-static inline void
-rtld_timer_stop (hp_timing_t *var, hp_timing_t start)
-{
- hp_timing_t stop;
- HP_TIMING_NOW (stop);
- HP_TIMING_DIFF (*var, start, stop);
-}
-
-static inline void
-rtld_timer_accum (hp_timing_t *sum, hp_timing_t start)
-{
- hp_timing_t stop;
- rtld_timer_stop (&stop, start);
- HP_TIMING_ACCUM_NT(*sum, stop);
-}
-#else
-# define RLTD_TIMING_DECLARE(var, classifier...)
-# define RTLD_TIMING_SET(var, value)
-# define RTLD_TIMING_VAR(var)
-# define RTLD_TIMING_REF(var) 0
-# define rtld_timer_start(var)
-# define rtld_timer_stop(var, start)
-# define rtld_timer_accum(sum, start)
-#endif
-
-/* Avoid PLT use for our local calls at startup. */
-extern __typeof (__mempcpy) __mempcpy attribute_hidden;
-
-/* GCC has mental blocks about _exit. */
-extern __typeof (_exit) exit_internal asm ("_exit") attribute_hidden;
-#define _exit exit_internal
-
-/* Helper function to handle errors while resolving symbols. */
-static void print_unresolved (int errcode, const char *objname,
- const char *errsting);
-
-/* Helper function to handle errors when a version is missing. */
-static void print_missing_version (int errcode, const char *objname,
- const char *errsting);
-
-/* Print the various times we collected. */
-static void print_statistics (const hp_timing_t *total_timep);
-
-/* Creates an empty audit list. */
-static void audit_list_init (struct audit_list *);
-
-/* Add a string to the end of the audit list, for later parsing. Must
- not be called after audit_list_next. */
-static void audit_list_add_string (struct audit_list *, const char *);
-
-/* Add the audit strings from the link map, found in the dynamic
- segment at TG (either DT_AUDIT and DT_DEPAUDIT). Must be called
- before audit_list_next. */
-static void audit_list_add_dynamic_tag (struct audit_list *,
- struct link_map *,
- unsigned int tag);
-
-/* Extract the next audit module from the audit list. Only modules
- for which dso_name_valid_for_suid is true are returned. Must be
- called after all the audit_list_add_string,
- audit_list_add_dynamic_tags calls. */
-static const char *audit_list_next (struct audit_list *);
-
-/* Initialize *STATE with the defaults. */
-static void dl_main_state_init (struct dl_main_state *state);
-
-/* Process all environments variables the dynamic linker must recognize.
- Since all of them start with `LD_' we are a bit smarter while finding
- all the entries. */
-extern char **_environ attribute_hidden;
-static void process_envvars (struct dl_main_state *state);
-
-int _dl_argc attribute_relro attribute_hidden;
-char **_dl_argv attribute_relro = NULL;
-rtld_hidden_data_def (_dl_argv)
-
-#ifndef THREAD_SET_STACK_GUARD
-/* Only exported for architectures that don't store the stack guard canary
- in thread local area. */
-uintptr_t __stack_chk_guard attribute_relro;
-#endif
-
-/* Only exported for architectures that don't store the pointer guard
- value in thread local area. */
-uintptr_t __pointer_chk_guard_local attribute_relro attribute_hidden;
-#ifndef THREAD_SET_POINTER_GUARD
-strong_alias (__pointer_chk_guard_local, __pointer_chk_guard)
-#endif
-
-/* Check that AT_SECURE=0, or that the passed name does not contain
- directories and is not overly long. Reject empty names
- unconditionally. */
-static bool
-dso_name_valid_for_suid (const char *p)
-{
- if (__glibc_unlikely (__libc_enable_secure))
- {
- /* Ignore pathnames with directories for AT_SECURE=1
- programs, and also skip overlong names. */
- size_t len = strlen (p);
- if (len >= SECURE_NAME_LIMIT || memchr (p, '/', len) != NULL)
- return false;
- }
- return *p != '\0';
-}
-
-static void
-audit_list_init (struct audit_list *list)
-{
- list->length = 0;
- list->current_index = 0;
- list->current_tail = NULL;
-}
-
-static void
-audit_list_add_string (struct audit_list *list, const char *string)
-{
- /* Empty strings do not load anything. */
- if (*string == '\0')
- return;
-
- if (list->length == array_length (list->audit_strings))
- _dl_fatal_printf ("Fatal glibc error: Too many audit modules requested\n");
-
- list->audit_strings[list->length++] = string;
-
- /* Initialize processing of the first string for
- audit_list_next. */
- if (list->length == 1)
- list->current_tail = string;
-}
-
-static void
-audit_list_add_dynamic_tag (struct audit_list *list, struct link_map *main_map,
- unsigned int tag)
-{
- ElfW(Dyn) *info = main_map->l_info[ADDRIDX (tag)];
- const char *strtab = (const char *) D_PTR (main_map, l_info[DT_STRTAB]);
- if (info != NULL)
- audit_list_add_string (list, strtab + info->d_un.d_val);
-}
-
-static const char *
-audit_list_next (struct audit_list *list)
-{
- if (list->current_tail == NULL)
- return NULL;
-
- while (true)
- {
- /* Advance to the next string in audit_strings if the current
- string has been exhausted. */
- while (*list->current_tail == '\0')
- {
- ++list->current_index;
- if (list->current_index == list->length)
- {
- list->current_tail = NULL;
- return NULL;
- }
- list->current_tail = list->audit_strings[list->current_index];
- }
-
- /* Split the in-string audit list at the next colon colon. */
- size_t len = strcspn (list->current_tail, ":");
- if (len > 0 && len < sizeof (list->fname))
- {
- memcpy (list->fname, list->current_tail, len);
- list->fname[len] = '\0';
- }
- else
- /* Mark the name as unusable for dso_name_valid_for_suid. */
- list->fname[0] = '\0';
-
- /* Skip over the substring and the following delimiter. */
- list->current_tail += len;
- if (*list->current_tail == ':')
- ++list->current_tail;
-
- /* If the name is valid, return it. */
- if (dso_name_valid_for_suid (list->fname))
- return list->fname;
-
- /* Otherwise wrap around to find the next list element. . */
- }
-}
-
-/* Count audit modules before they are loaded so GLRO(dl_naudit)
- is not yet usable. */
-static size_t
-audit_list_count (struct audit_list *list)
-{
- /* Restore the audit_list iterator state at the end. */
- const char *saved_tail = list->current_tail;
- size_t naudit = 0;
-
- assert (list->current_index == 0);
- while (audit_list_next (list) != NULL)
- naudit++;
- list->current_tail = saved_tail;
- list->current_index = 0;
- return naudit;
-}
-
-static void
-dl_main_state_init (struct dl_main_state *state)
-{
- audit_list_init (&state->audit_list);
- state->library_path = NULL;
- state->library_path_source = NULL;
- state->preloadlist = NULL;
- state->preloadarg = NULL;
- state->glibc_hwcaps_prepend = NULL;
- state->glibc_hwcaps_mask = NULL;
- state->mode = rtld_mode_normal;
- state->any_debug = false;
- state->version_info = false;
-}
-
-#ifndef HAVE_INLINED_SYSCALLS
-/* Set nonzero during loading and initialization of executable and
- libraries, cleared before the executable's entry point runs. This
- must not be initialized to nonzero, because the unused dynamic
- linker loaded in for libc.so's "ld.so.1" dep will provide the
- definition seen by libc.so's initializer; that value must be zero,
- and will be since that dynamic linker's _dl_start and dl_main will
- never be called. */
-int _dl_starting_up = 0;
-rtld_hidden_def (_dl_starting_up)
-#endif
-
-/* This is the structure which defines all variables global to ld.so
- (except those which cannot be added for some reason). */
-struct rtld_global _rtld_global =
- {
- /* Get architecture specific initializer. */
-#include <dl-procruntime.c>
- /* Generally the default presumption without further information is an
- * executable stack but this is not true for all platforms. */
- ._dl_stack_flags = DEFAULT_STACK_PERMS,
-#ifdef _LIBC_REENTRANT
- ._dl_load_lock = _RTLD_LOCK_RECURSIVE_INITIALIZER,
- ._dl_load_write_lock = _RTLD_LOCK_RECURSIVE_INITIALIZER,
- ._dl_load_tls_lock = _RTLD_LOCK_RECURSIVE_INITIALIZER,
-#endif
- ._dl_nns = 1,
- ._dl_ns =
- {
-#ifdef _LIBC_REENTRANT
- [LM_ID_BASE] = { ._ns_unique_sym_table
- = { .lock = _RTLD_LOCK_RECURSIVE_INITIALIZER } }
-#endif
- }
- };
-/* If we would use strong_alias here the compiler would see a
- non-hidden definition. This would undo the effect of the previous
- declaration. So spell out what strong_alias does plus add the
- visibility attribute. */
-extern struct rtld_global _rtld_local
- __attribute__ ((alias ("_rtld_global"), visibility ("hidden")));
-
-
-/* This variable is similar to _rtld_local, but all values are
- read-only after relocation. */
-struct rtld_global_ro _rtld_global_ro attribute_relro =
- {
- /* Get architecture specific initializer. */
-#include <dl-procinfo.c>
-#ifdef NEED_DL_SYSINFO
- ._dl_sysinfo = DL_SYSINFO_DEFAULT,
-#endif
- ._dl_debug_fd = STDERR_FILENO,
-#if !HAVE_TUNABLES
- ._dl_hwcap_mask = HWCAP_IMPORTANT,
-#endif
- ._dl_lazy = 1,
- ._dl_fpu_control = _FPU_DEFAULT,
- ._dl_pagesize = EXEC_PAGESIZE,
- ._dl_inhibit_cache = 0,
-
- /* Function pointers. */
- ._dl_debug_printf = _dl_debug_printf,
- ._dl_mcount = _dl_mcount,
- ._dl_lookup_symbol_x = _dl_lookup_symbol_x,
- ._dl_open = _dl_open,
- ._dl_close = _dl_close,
- ._dl_catch_error = _rtld_catch_error,
- ._dl_error_free = _dl_error_free,
- ._dl_tls_get_addr_soft = _dl_tls_get_addr_soft,
- ._dl_libc_freeres = __rtld_libc_freeres,
- };
-/* If we would use strong_alias here the compiler would see a
- non-hidden definition. This would undo the effect of the previous
- declaration. So spell out was strong_alias does plus add the
- visibility attribute. */
-extern struct rtld_global_ro _rtld_local_ro
- __attribute__ ((alias ("_rtld_global_ro"), visibility ("hidden")));
-
-
-static void dl_main (const ElfW(Phdr) *phdr, ElfW(Word) phnum,
- ElfW(Addr) *user_entry, ElfW(auxv_t) *auxv);
-
-/* These two variables cannot be moved into .data.rel.ro. */
-static struct libname_list _dl_rtld_libname;
-static struct libname_list _dl_rtld_libname2;
-
-/* Variable for statistics. */
-RLTD_TIMING_DECLARE (relocate_time, static);
-RLTD_TIMING_DECLARE (load_time, static, attribute_relro);
-RLTD_TIMING_DECLARE (start_time, static, attribute_relro);
-
-/* Additional definitions needed by TLS initialization. */
-#ifdef TLS_INIT_HELPER
-TLS_INIT_HELPER
-#endif
-
-/* Helper function for syscall implementation. */
-#ifdef DL_SYSINFO_IMPLEMENTATION
-DL_SYSINFO_IMPLEMENTATION
-#endif
-
-/* Before ld.so is relocated we must not access variables which need
- relocations. This means variables which are exported. Variables
- declared as static are fine. If we can mark a variable hidden this
- is fine, too. The latter is important here. We can avoid setting
- up a temporary link map for ld.so if we can mark _rtld_global as
- hidden. */
-#ifndef HIDDEN_VAR_NEEDS_DYNAMIC_RELOC
-# define DONT_USE_BOOTSTRAP_MAP 1
-#endif
-
-#ifdef DONT_USE_BOOTSTRAP_MAP
-static ElfW(Addr) _dl_start_final (void *arg);
-#else
-struct dl_start_final_info
-{
- struct link_map l;
- RTLD_TIMING_VAR (start_time);
-};
-static ElfW(Addr) _dl_start_final (void *arg,
- struct dl_start_final_info *info);
-#endif
-
-/* These are defined magically by the linker. */
-extern const ElfW(Ehdr) __ehdr_start attribute_hidden;
-extern char _etext[] attribute_hidden;
-extern char _end[] attribute_hidden;
-
-
-#ifdef RTLD_START
-RTLD_START
-#else
-# error "sysdeps/MACHINE/dl-machine.h fails to define RTLD_START"
-#endif
-
-/* This is the second half of _dl_start (below). It can be inlined safely
- under DONT_USE_BOOTSTRAP_MAP, where it is careful not to make any GOT
- references. When the tools don't permit us to avoid using a GOT entry
- for _dl_rtld_global (no attribute_hidden support), we must make sure
- this function is not inlined (see below). */
-
-#ifdef DONT_USE_BOOTSTRAP_MAP
-static inline ElfW(Addr) __attribute__ ((always_inline))
-_dl_start_final (void *arg)
-#else
-static ElfW(Addr) __attribute__ ((noinline))
-_dl_start_final (void *arg, struct dl_start_final_info *info)
-#endif
-{
- ElfW(Addr) start_addr;
-
- /* Do not use an initializer for these members because it would
- intefere with __rtld_static_init. */
- GLRO (dl_find_object) = &_dl_find_object;
-
- /* If it hasn't happen yet record the startup time. */
- rtld_timer_start (&start_time);
-#if !defined DONT_USE_BOOTSTRAP_MAP
- RTLD_TIMING_SET (start_time, info->start_time);
-#endif
-
- /* Transfer data about ourselves to the permanent link_map structure. */
-#ifndef DONT_USE_BOOTSTRAP_MAP
- GL(dl_rtld_map).l_addr = info->l.l_addr;
- GL(dl_rtld_map).l_ld = info->l.l_ld;
- GL(dl_rtld_map).l_ld_readonly = info->l.l_ld_readonly;
- memcpy (GL(dl_rtld_map).l_info, info->l.l_info,
- sizeof GL(dl_rtld_map).l_info);
- GL(dl_rtld_map).l_mach = info->l.l_mach;
- GL(dl_rtld_map).l_relocated = 1;
-#endif
- _dl_setup_hash (&GL(dl_rtld_map));
- GL(dl_rtld_map).l_real = &GL(dl_rtld_map);
- GL(dl_rtld_map).l_map_start = (ElfW(Addr)) &__ehdr_start;
- GL(dl_rtld_map).l_map_end = (ElfW(Addr)) _end;
- GL(dl_rtld_map).l_text_end = (ElfW(Addr)) _etext;
- /* Copy the TLS related data if necessary. */
-#ifndef DONT_USE_BOOTSTRAP_MAP
-# if NO_TLS_OFFSET != 0
- GL(dl_rtld_map).l_tls_offset = NO_TLS_OFFSET;
-# endif
-#endif
-
- /* Initialize the stack end variable. */
- __libc_stack_end = __builtin_frame_address (0);
-
- /* Call the OS-dependent function to set up life so we can do things like
- file access. It will call `dl_main' (below) to do all the real work
- of the dynamic linker, and then unwind our frame and run the user
- entry point on the same stack we entered on. */
- start_addr = _dl_sysdep_start (arg, &dl_main);
-
- if (__glibc_unlikely (GLRO(dl_debug_mask) & DL_DEBUG_STATISTICS))
- {
- RTLD_TIMING_VAR (rtld_total_time);
- rtld_timer_stop (&rtld_total_time, start_time);
- print_statistics (RTLD_TIMING_REF(rtld_total_time));
- }
-
-#ifndef ELF_MACHINE_START_ADDRESS
-# define ELF_MACHINE_START_ADDRESS(map, start) (start)
-#endif
- return ELF_MACHINE_START_ADDRESS (GL(dl_ns)[LM_ID_BASE]._ns_loaded, start_addr);
-}
-
-#ifdef DONT_USE_BOOTSTRAP_MAP
-# define bootstrap_map GL(dl_rtld_map)
-#else
-# define bootstrap_map info.l
-#endif
-
-static ElfW(Addr) __attribute_used__
-_dl_start (void *arg)
-{
-#ifdef DONT_USE_BOOTSTRAP_MAP
- rtld_timer_start (&start_time);
-#else
- struct dl_start_final_info info;
- rtld_timer_start (&info.start_time);
-#endif
-
- /* Partly clean the `bootstrap_map' structure up. Don't use
- `memset' since it might not be built in or inlined and we cannot
- make function calls at this point. Use '__builtin_memset' if we
- know it is available. We do not have to clear the memory if we
- do not have to use the temporary bootstrap_map. Global variables
- are initialized to zero by default. */
-#ifndef DONT_USE_BOOTSTRAP_MAP
-# ifdef HAVE_BUILTIN_MEMSET
- __builtin_memset (bootstrap_map.l_info, '\0', sizeof (bootstrap_map.l_info));
-# else
- for (size_t cnt = 0;
- cnt < sizeof (bootstrap_map.l_info) / sizeof (bootstrap_map.l_info[0]);
- ++cnt)
- bootstrap_map.l_info[cnt] = 0;
-# endif
-#endif
-
- /* Figure out the run-time load address of the dynamic linker itself. */
- bootstrap_map.l_addr = elf_machine_load_address ();
-
- /* Read our own dynamic section and fill in the info array. */
- bootstrap_map.l_ld = (void *) bootstrap_map.l_addr + elf_machine_dynamic ();
- bootstrap_map.l_ld_readonly = DL_RO_DYN_SECTION;
- elf_get_dynamic_info (&bootstrap_map, true, false);
-
-#if NO_TLS_OFFSET != 0
- bootstrap_map.l_tls_offset = NO_TLS_OFFSET;
-#endif
-
-#ifdef ELF_MACHINE_BEFORE_RTLD_RELOC
- ELF_MACHINE_BEFORE_RTLD_RELOC (&bootstrap_map, bootstrap_map.l_info);
-#endif
-
- if (bootstrap_map.l_addr)
- {
- /* Relocate ourselves so we can do normal function calls and
- data access using the global offset table. */
-
- ELF_DYNAMIC_RELOCATE (&bootstrap_map, NULL, 0, 0, 0);
- }
- bootstrap_map.l_relocated = 1;
-
- /* Please note that we don't allow profiling of this object and
- therefore need not test whether we have to allocate the array
- for the relocation results (as done in dl-reloc.c). */
-
- /* Now life is sane; we can call functions and access global data.
- Set up to use the operating system facilities, and find out from
- the operating system's program loader where to find the program
- header table in core. Put the rest of _dl_start into a separate
- function, that way the compiler cannot put accesses to the GOT
- before ELF_DYNAMIC_RELOCATE. */
-
- __rtld_malloc_init_stubs ();
-
-#ifdef DONT_USE_BOOTSTRAP_MAP
- return _dl_start_final (arg);
-#else
- return _dl_start_final (arg, &info);
-#endif
-}
-
-
-
-/* Now life is peachy; we can do all normal operations.
- On to the real work. */
-
-/* Some helper functions. */
-
-/* Arguments to relocate_doit. */
-struct relocate_args
-{
- struct link_map *l;
- int reloc_mode;
-};
-
-struct map_args
-{
- /* Argument to map_doit. */
- const char *str;
- struct link_map *loader;
- int mode;
- /* Return value of map_doit. */
- struct link_map *map;
-};
-
-struct dlmopen_args
-{
- const char *fname;
- struct link_map *map;
-};
-
-struct lookup_args
-{
- const char *name;
- struct link_map *map;
- void *result;
-};
-
-/* Arguments to version_check_doit. */
-struct version_check_args
-{
- int doexit;
- int dotrace;
-};
-
-static void
-relocate_doit (void *a)
-{
- struct relocate_args *args = (struct relocate_args *) a;
-
- _dl_relocate_object (args->l, args->l->l_scope, args->reloc_mode, 0);
-}
-
-static void
-map_doit (void *a)
-{
- struct map_args *args = (struct map_args *) a;
- int type = (args->mode == __RTLD_OPENEXEC) ? lt_executable : lt_library;
- args->map = _dl_map_object (args->loader, args->str, type, 0,
- args->mode, LM_ID_BASE);
-}
-
-static void
-dlmopen_doit (void *a)
-{
- struct dlmopen_args *args = (struct dlmopen_args *) a;
- args->map = _dl_open (args->fname,
- (RTLD_LAZY | __RTLD_DLOPEN | __RTLD_AUDIT
- | __RTLD_SECURE),
- dl_main, LM_ID_NEWLM, _dl_argc, _dl_argv,
- __environ);
-}
-
-static void
-lookup_doit (void *a)
-{
- struct lookup_args *args = (struct lookup_args *) a;
- const ElfW(Sym) *ref = NULL;
- args->result = NULL;
- lookup_t l = _dl_lookup_symbol_x (args->name, args->map, &ref,
- args->map->l_local_scope, NULL, 0,
- DL_LOOKUP_RETURN_NEWEST, NULL);
- if (ref != NULL)
- args->result = DL_SYMBOL_ADDRESS (l, ref);
-}
-
-static void
-version_check_doit (void *a)
-{
- struct version_check_args *args = (struct version_check_args *) a;
- if (_dl_check_all_versions (GL(dl_ns)[LM_ID_BASE]._ns_loaded, 1,
- args->dotrace) && args->doexit)
- /* We cannot start the application. Abort now. */
- _exit (1);
-}
-
-
-static inline struct link_map *
-find_needed (const char *name)
-{
- struct r_scope_elem *scope = &GL(dl_ns)[LM_ID_BASE]._ns_loaded->l_searchlist;
- unsigned int n = scope->r_nlist;
-
- while (n-- > 0)
- if (_dl_name_match_p (name, scope->r_list[n]))
- return scope->r_list[n];
-
- /* Should never happen. */
- return NULL;
-}
-
-static int
-match_version (const char *string, struct link_map *map)
-{
- const char *strtab = (const void *) D_PTR (map, l_info[DT_STRTAB]);
- ElfW(Verdef) *def;
-
-#define VERDEFTAG (DT_NUM + DT_THISPROCNUM + DT_VERSIONTAGIDX (DT_VERDEF))
- if (map->l_info[VERDEFTAG] == NULL)
- /* The file has no symbol versioning. */
- return 0;
-
- def = (ElfW(Verdef) *) ((char *) map->l_addr
- + map->l_info[VERDEFTAG]->d_un.d_ptr);
- while (1)
- {
- ElfW(Verdaux) *aux = (ElfW(Verdaux) *) ((char *) def + def->vd_aux);
-
- /* Compare the version strings. */
- if (strcmp (string, strtab + aux->vda_name) == 0)
- /* Bingo! */
- return 1;
-
- /* If no more definitions we failed to find what we want. */
- if (def->vd_next == 0)
- break;
-
- /* Next definition. */
- def = (ElfW(Verdef) *) ((char *) def + def->vd_next);
- }
-
- return 0;
-}
-
-static bool tls_init_tp_called;
-
-static void *
-init_tls (size_t naudit)
-{
- /* Number of elements in the static TLS block. */
- GL(dl_tls_static_nelem) = GL(dl_tls_max_dtv_idx);
-
- /* Do not do this twice. The audit interface might have required
- the DTV interfaces to be set up early. */
- if (GL(dl_initial_dtv) != NULL)
- return NULL;
-
- /* Allocate the array which contains the information about the
- dtv slots. We allocate a few entries more than needed to
- avoid the need for reallocation. */
- size_t nelem = GL(dl_tls_max_dtv_idx) + 1 + TLS_SLOTINFO_SURPLUS;
-
- /* Allocate. */
- GL(dl_tls_dtv_slotinfo_list) = (struct dtv_slotinfo_list *)
- calloc (sizeof (struct dtv_slotinfo_list)
- + nelem * sizeof (struct dtv_slotinfo), 1);
- /* No need to check the return value. If memory allocation failed
- the program would have been terminated. */
-
- struct dtv_slotinfo *slotinfo = GL(dl_tls_dtv_slotinfo_list)->slotinfo;
- GL(dl_tls_dtv_slotinfo_list)->len = nelem;
- GL(dl_tls_dtv_slotinfo_list)->next = NULL;
-
- /* Fill in the information from the loaded modules. No namespace
- but the base one can be filled at this time. */
- assert (GL(dl_ns)[LM_ID_BASE + 1]._ns_loaded == NULL);
- int i = 0;
- for (struct link_map *l = GL(dl_ns)[LM_ID_BASE]._ns_loaded; l != NULL;
- l = l->l_next)
- if (l->l_tls_blocksize != 0)
- {
- /* This is a module with TLS data. Store the map reference.
- The generation counter is zero. */
- slotinfo[i].map = l;
- /* slotinfo[i].gen = 0; */
- ++i;
- }
- assert (i == GL(dl_tls_max_dtv_idx));
-
- /* Calculate the size of the static TLS surplus. */
- _dl_tls_static_surplus_init (naudit);
-
- /* Compute the TLS offsets for the various blocks. */
- _dl_determine_tlsoffset ();
-
- /* Construct the static TLS block and the dtv for the initial
- thread. For some platforms this will include allocating memory
- for the thread descriptor. The memory for the TLS block will
- never be freed. It should be allocated accordingly. The dtv
- array can be changed if dynamic loading requires it. */
- void *tcbp = _dl_allocate_tls_storage ();
- if (tcbp == NULL)
- _dl_fatal_printf ("\
-cannot allocate TLS data structures for initial thread\n");
-
- /* Store for detection of the special case by __tls_get_addr
- so it knows not to pass this dtv to the normal realloc. */
- GL(dl_initial_dtv) = GET_DTV (tcbp);
-
- /* And finally install it for the main thread. */
- const char *lossage = TLS_INIT_TP (tcbp);
- if (__glibc_unlikely (lossage != NULL))
- _dl_fatal_printf ("cannot set up thread-local storage: %s\n", lossage);
- __tls_init_tp ();
- tls_init_tp_called = true;
-
- return tcbp;
-}
-
-static unsigned int
-do_preload (const char *fname, struct link_map *main_map, const char *where)
-{
- const char *objname;
- const char *err_str = NULL;
- struct map_args args;
- bool malloced;
-
- args.str = fname;
- args.loader = main_map;
- args.mode = __RTLD_SECURE;
-
- unsigned int old_nloaded = GL(dl_ns)[LM_ID_BASE]._ns_nloaded;
-
- (void) _dl_catch_error (&objname, &err_str, &malloced, map_doit, &args);
- if (__glibc_unlikely (err_str != NULL))
- {
- _dl_error_printf ("\
-ERROR: ld.so: object '%s' from %s cannot be preloaded (%s): ignored.\n",
- fname, where, err_str);
- /* No need to call free, this is still before
- the libc's malloc is used. */
- }
- else if (GL(dl_ns)[LM_ID_BASE]._ns_nloaded != old_nloaded)
- /* It is no duplicate. */
- return 1;
-
- /* Nothing loaded. */
- return 0;
-}
-
-static void
-security_init (void)
-{
- /* Set up the stack checker's canary. */
- uintptr_t stack_chk_guard = _dl_setup_stack_chk_guard (_dl_random);
-#ifdef THREAD_SET_STACK_GUARD
- THREAD_SET_STACK_GUARD (stack_chk_guard);
-#else
- __stack_chk_guard = stack_chk_guard;
-#endif
-
- /* Set up the pointer guard as well, if necessary. */
- uintptr_t pointer_chk_guard
- = _dl_setup_pointer_guard (_dl_random, stack_chk_guard);
-#ifdef THREAD_SET_POINTER_GUARD
- THREAD_SET_POINTER_GUARD (pointer_chk_guard);
-#endif
- __pointer_chk_guard_local = pointer_chk_guard;
-
- /* We do not need the _dl_random value anymore. The less
- information we leave behind, the better, so clear the
- variable. */
- _dl_random = NULL;
-}
-
-#include <setup-vdso.h>
-
-/* The LD_PRELOAD environment variable gives list of libraries
- separated by white space or colons that are loaded before the
- executable's dependencies and prepended to the global scope list.
- (If the binary is running setuid all elements containing a '/' are
- ignored since it is insecure.) Return the number of preloads
- performed. Ditto for --preload command argument. */
-unsigned int
-handle_preload_list (const char *preloadlist, struct link_map *main_map,
- const char *where)
-{
- unsigned int npreloads = 0;
- const char *p = preloadlist;
- char fname[SECURE_PATH_LIMIT];
-
- while (*p != '\0')
- {
- /* Split preload list at space/colon. */
- size_t len = strcspn (p, " :");
- if (len > 0 && len < sizeof (fname))
- {
- memcpy (fname, p, len);
- fname[len] = '\0';
- }
- else
- fname[0] = '\0';
-
- /* Skip over the substring and the following delimiter. */
- p += len;
- if (*p != '\0')
- ++p;
-
- if (dso_name_valid_for_suid (fname))
- npreloads += do_preload (fname, main_map, where);
- }
- return npreloads;
-}
-
-/* Called if the audit DSO cannot be used: if it does not have the
- appropriate interfaces, or it expects a more recent version library
- version than what the dynamic linker provides. */
-static void
-unload_audit_module (struct link_map *map, int original_tls_idx)
-{
-#ifndef NDEBUG
- Lmid_t ns = map->l_ns;
-#endif
- _dl_close (map);
-
- /* Make sure the namespace has been cleared entirely. */
- assert (GL(dl_ns)[ns]._ns_loaded == NULL);
- assert (GL(dl_ns)[ns]._ns_nloaded == 0);
-
- GL(dl_tls_max_dtv_idx) = original_tls_idx;
-}
-
-/* Called to print an error message if loading of an audit module
- failed. */
-static void
-report_audit_module_load_error (const char *name, const char *err_str,
- bool malloced)
-{
- _dl_error_printf ("\
-ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
- name, err_str);
- if (malloced)
- free ((char *) err_str);
-}
-
-/* Load one audit module. */
-static void
-load_audit_module (const char *name, struct audit_ifaces **last_audit)
-{
- int original_tls_idx = GL(dl_tls_max_dtv_idx);
-
- struct dlmopen_args dlmargs;
- dlmargs.fname = name;
- dlmargs.map = NULL;
-
- const char *objname;
- const char *err_str = NULL;
- bool malloced;
- _dl_catch_error (&objname, &err_str, &malloced, dlmopen_doit, &dlmargs);
- if (__glibc_unlikely (err_str != NULL))
- {
- report_audit_module_load_error (name, err_str, malloced);
- return;
- }
-
- struct lookup_args largs;
- largs.name = "la_version";
- largs.map = dlmargs.map;
- _dl_catch_error (&objname, &err_str, &malloced, lookup_doit, &largs);
- if (__glibc_likely (err_str != NULL))
- {
- unload_audit_module (dlmargs.map, original_tls_idx);
- report_audit_module_load_error (name, err_str, malloced);
- return;
- }
-
- unsigned int (*laversion) (unsigned int) = largs.result;
-
- /* A null symbol indicates that something is very wrong with the
- loaded object because defined symbols are supposed to have a
- valid, non-null address. */
- assert (laversion != NULL);
-
- unsigned int lav = laversion (LAV_CURRENT);
- if (lav == 0)
- {
- /* Only print an error message if debugging because this can
- happen deliberately. */
- if (GLRO(dl_debug_mask) & DL_DEBUG_FILES)
- _dl_debug_printf ("\
-file=%s [%lu]; audit interface function la_version returned zero; ignored.\n",
- dlmargs.map->l_name, dlmargs.map->l_ns);
- unload_audit_module (dlmargs.map, original_tls_idx);
- return;
- }
-
- if (!_dl_audit_check_version (lav))
- {
- _dl_debug_printf ("\
-ERROR: audit interface '%s' requires version %d (maximum supported version %d); ignored.\n",
- name, lav, LAV_CURRENT);
- unload_audit_module (dlmargs.map, original_tls_idx);
- return;
- }
-
- enum { naudit_ifaces = 8 };
- union
- {
- struct audit_ifaces ifaces;
- void (*fptr[naudit_ifaces]) (void);
- } *newp = malloc (sizeof (*newp));
- if (newp == NULL)
- _dl_fatal_printf ("Out of memory while loading audit modules\n");
-
- /* Names of the auditing interfaces. All in one
- long string. */
- static const char audit_iface_names[] =
- "la_activity\0"
- "la_objsearch\0"
- "la_objopen\0"
- "la_preinit\0"
- LA_SYMBIND "\0"
-#define STRING(s) __STRING (s)
- "la_" STRING (ARCH_LA_PLTENTER) "\0"
- "la_" STRING (ARCH_LA_PLTEXIT) "\0"
- "la_objclose\0";
- unsigned int cnt = 0;
- const char *cp = audit_iface_names;
- do
- {
- largs.name = cp;
- _dl_catch_error (&objname, &err_str, &malloced, lookup_doit, &largs);
-
- /* Store the pointer. */
- if (err_str == NULL && largs.result != NULL)
- newp->fptr[cnt] = largs.result;
- else
- newp->fptr[cnt] = NULL;
- ++cnt;
-
- cp = rawmemchr (cp, '\0') + 1;
- }
- while (*cp != '\0');
- assert (cnt == naudit_ifaces);
-
- /* Now append the new auditing interface to the list. */
- newp->ifaces.next = NULL;
- if (*last_audit == NULL)
- *last_audit = GLRO(dl_audit) = &newp->ifaces;
- else
- *last_audit = (*last_audit)->next = &newp->ifaces;
-
- /* The dynamic linker link map is statically allocated, so the
- cookie in _dl_new_object has not happened. */
- link_map_audit_state (&GL (dl_rtld_map), GLRO (dl_naudit))->cookie
- = (intptr_t) &GL (dl_rtld_map);
-
- ++GLRO(dl_naudit);
-
- /* Mark the DSO as being used for auditing. */
- dlmargs.map->l_auditing = 1;
-}
-
-/* Load all audit modules. */
-static void
-load_audit_modules (struct link_map *main_map, struct audit_list *audit_list)
-{
- struct audit_ifaces *last_audit = NULL;
-
- while (true)
- {
- const char *name = audit_list_next (audit_list);
- if (name == NULL)
- break;
- load_audit_module (name, &last_audit);
- }
-
- /* Notify audit modules of the initially loaded modules (the main
- program and the dynamic linker itself). */
- if (GLRO(dl_naudit) > 0)
- {
- _dl_audit_objopen (main_map, LM_ID_BASE);
- _dl_audit_objopen (&GL(dl_rtld_map), LM_ID_BASE);
- }
-}
-
-/* Check if the executable is not actualy dynamically linked, and
- invoke it directly in that case. */
-static void
-rtld_chain_load (struct link_map *main_map, char *argv0)
-{
- /* The dynamic loader run against itself. */
- const char *rtld_soname
- = ((const char *) D_PTR (&GL(dl_rtld_map), l_info[DT_STRTAB])
- + GL(dl_rtld_map).l_info[DT_SONAME]->d_un.d_val);
- if (main_map->l_info[DT_SONAME] != NULL
- && strcmp (rtld_soname,
- ((const char *) D_PTR (main_map, l_info[DT_STRTAB])
- + main_map->l_info[DT_SONAME]->d_un.d_val)) == 0)
- _dl_fatal_printf ("%s: loader cannot load itself\n", rtld_soname);
-
- /* With DT_NEEDED dependencies, the executable is dynamically
- linked. */
- if (__glibc_unlikely (main_map->l_info[DT_NEEDED] != NULL))
- return;
-
- /* If the executable has program interpreter, it is dynamically
- linked. */
- for (size_t i = 0; i < main_map->l_phnum; ++i)
- if (main_map->l_phdr[i].p_type == PT_INTERP)
- return;
-
- const char *pathname = _dl_argv[0];
- if (argv0 != NULL)
- _dl_argv[0] = argv0;
- int errcode = __rtld_execve (pathname, _dl_argv, _environ);
- const char *errname = strerrorname_np (errcode);
- if (errname != NULL)
- _dl_fatal_printf("%s: cannot execute %s: %s\n",
- rtld_soname, pathname, errname);
- else
- _dl_fatal_printf("%s: cannot execute %s: %d\n",
- rtld_soname, pathname, errcode);
-}
-
-/* Called to complete the initialization of the link map for the main
- executable. Returns true if there is a PT_INTERP segment. */
-static bool
-rtld_setup_main_map (struct link_map *main_map)
-{
- /* This have already been filled in right after _dl_new_object, or
- as part of _dl_map_object. */
- const ElfW(Phdr) *phdr = main_map->l_phdr;
- ElfW(Word) phnum = main_map->l_phnum;
-
- bool has_interp = false;
-
- main_map->l_map_end = 0;
- main_map->l_text_end = 0;
- /* Perhaps the executable has no PT_LOAD header entries at all. */
- main_map->l_map_start = ~0;
- /* And it was opened directly. */
- ++main_map->l_direct_opencount;
- main_map->l_contiguous = 1;
-
- /* A PT_LOAD segment at an unexpected address will clear the
- l_contiguous flag. The ELF specification says that PT_LOAD
- segments need to be sorted in in increasing order, but perhaps
- not all executables follow this requirement. Having l_contiguous
- equal to 1 is just an optimization, so the code below does not
- try to sort the segments in case they are unordered.
-
- There is one corner case in which l_contiguous is not set to 1,
- but where it could be set: If a PIE (ET_DYN) binary is loaded by
- glibc itself (not the kernel), it is always contiguous due to the
- way the glibc loader works. However, the kernel loader may still
- create holes in this case, and the code here still uses 0
- conservatively for the glibc-loaded case, too. */
- ElfW(Addr) expected_load_address = 0;
-
- /* Scan the program header table for the dynamic section. */
- for (const ElfW(Phdr) *ph = phdr; ph < &phdr[phnum]; ++ph)
- switch (ph->p_type)
- {
- case PT_PHDR:
- /* Find out the load address. */
- main_map->l_addr = (ElfW(Addr)) phdr - ph->p_vaddr;
- break;
- case PT_DYNAMIC:
- /* This tells us where to find the dynamic section,
- which tells us everything we need to do. */
- main_map->l_ld = (void *) main_map->l_addr + ph->p_vaddr;
- main_map->l_ld_readonly = (ph->p_flags & PF_W) == 0;
- break;
- case PT_INTERP:
- /* This "interpreter segment" was used by the program loader to
- find the program interpreter, which is this program itself, the
- dynamic linker. We note what name finds us, so that a future
- dlopen call or DT_NEEDED entry, for something that wants to link
- against the dynamic linker as a shared library, will know that
- the shared object is already loaded. */
- _dl_rtld_libname.name = ((const char *) main_map->l_addr
- + ph->p_vaddr);
- /* _dl_rtld_libname.next = NULL; Already zero. */
- GL(dl_rtld_map).l_libname = &_dl_rtld_libname;
-
- /* Ordinarilly, we would get additional names for the loader from
- our DT_SONAME. This can't happen if we were actually linked as
- a static executable (detect this case when we have no DYNAMIC).
- If so, assume the filename component of the interpreter path to
- be our SONAME, and add it to our name list. */
- if (GL(dl_rtld_map).l_ld == NULL)
- {
- const char *p = NULL;
- const char *cp = _dl_rtld_libname.name;
-
- /* Find the filename part of the path. */
- while (*cp != '\0')
- if (*cp++ == '/')
- p = cp;
-
- if (p != NULL)
- {
- _dl_rtld_libname2.name = p;
- /* _dl_rtld_libname2.next = NULL; Already zero. */
- _dl_rtld_libname.next = &_dl_rtld_libname2;
- }
- }
-
- has_interp = true;
- break;
- case PT_LOAD:
- {
- ElfW(Addr) mapstart;
- ElfW(Addr) allocend;
-
- /* Remember where the main program starts in memory. */
- mapstart = (main_map->l_addr
- + (ph->p_vaddr & ~(GLRO(dl_pagesize) - 1)));
- if (main_map->l_map_start > mapstart)
- main_map->l_map_start = mapstart;
-
- if (main_map->l_contiguous && expected_load_address != 0
- && expected_load_address != mapstart)
- main_map->l_contiguous = 0;
-
- /* Also where it ends. */
- allocend = main_map->l_addr + ph->p_vaddr + ph->p_memsz;
- if (main_map->l_map_end < allocend)
- main_map->l_map_end = allocend;
- if ((ph->p_flags & PF_X) && allocend > main_map->l_text_end)
- main_map->l_text_end = allocend;
-
- /* The next expected address is the page following this load
- segment. */
- expected_load_address = ((allocend + GLRO(dl_pagesize) - 1)
- & ~(GLRO(dl_pagesize) - 1));
- }
- break;
-
- case PT_TLS:
- if (ph->p_memsz > 0)
- {
- /* Note that in the case the dynamic linker we duplicate work
- here since we read the PT_TLS entry already in
- _dl_start_final. But the result is repeatable so do not
- check for this special but unimportant case. */
- main_map->l_tls_blocksize = ph->p_memsz;
- main_map->l_tls_align = ph->p_align;
- if (ph->p_align == 0)
- main_map->l_tls_firstbyte_offset = 0;
- else
- main_map->l_tls_firstbyte_offset = (ph->p_vaddr
- & (ph->p_align - 1));
- main_map->l_tls_initimage_size = ph->p_filesz;
- main_map->l_tls_initimage = (void *) ph->p_vaddr;
-
- /* This image gets the ID one. */
- GL(dl_tls_max_dtv_idx) = main_map->l_tls_modid = 1;
- }
- break;
-
- case PT_GNU_STACK:
- GL(dl_stack_flags) = ph->p_flags;
- break;
-
- case PT_GNU_RELRO:
- main_map->l_relro_addr = ph->p_vaddr;
- main_map->l_relro_size = ph->p_memsz;
- break;
- }
- /* Process program headers again, but scan them backwards so
- that PT_NOTE can be skipped if PT_GNU_PROPERTY exits. */
- for (const ElfW(Phdr) *ph = &phdr[phnum]; ph != phdr; --ph)
- switch (ph[-1].p_type)
- {
- case PT_NOTE:
- _dl_process_pt_note (main_map, -1, &ph[-1]);
- break;
- case PT_GNU_PROPERTY:
- _dl_process_pt_gnu_property (main_map, -1, &ph[-1]);
- break;
- }
-
- /* Adjust the address of the TLS initialization image in case
- the executable is actually an ET_DYN object. */
- if (main_map->l_tls_initimage != NULL)
- main_map->l_tls_initimage
- = (char *) main_map->l_tls_initimage + main_map->l_addr;
- if (! main_map->l_map_end)
- main_map->l_map_end = ~0;
- if (! main_map->l_text_end)
- main_map->l_text_end = ~0;
- if (! GL(dl_rtld_map).l_libname && GL(dl_rtld_map).l_name)
- {
- /* We were invoked directly, so the program might not have a
- PT_INTERP. */
- _dl_rtld_libname.name = GL(dl_rtld_map).l_name;
- /* _dl_rtld_libname.next = NULL; Already zero. */
- GL(dl_rtld_map).l_libname = &_dl_rtld_libname;
- }
- else
- assert (GL(dl_rtld_map).l_libname); /* How else did we get here? */
-
- return has_interp;
-}
-
-/* Adjusts the contents of the stack and related globals for the user
- entry point. The ld.so processed skip_args arguments and bumped
- _dl_argv and _dl_argc accordingly. Those arguments are removed from
- argv here. */
-static void
-_dl_start_args_adjust (int skip_args)
-{
- void **sp = (void **) (_dl_argv - skip_args - 1);
- void **p = sp + skip_args;
-
- if (skip_args == 0)
- return;
-
- /* Sanity check. */
- intptr_t argc __attribute__ ((unused)) = (intptr_t) sp[0] - skip_args;
- assert (argc == _dl_argc);
-
- /* Adjust argc on stack. */
- sp[0] = (void *) (intptr_t) _dl_argc;
-
- /* Update globals in rtld. */
- _dl_argv -= skip_args;
- _environ -= skip_args;
-
- /* Shuffle argv down. */
- do
- *++sp = *++p;
- while (*p != NULL);
-
- assert (_environ == (char **) (sp + 1));
-
- /* Shuffle envp down. */
- do
- *++sp = *++p;
- while (*p != NULL);
-
-#ifdef HAVE_AUX_VECTOR
- void **auxv = (void **) GLRO(dl_auxv) - skip_args;
- GLRO(dl_auxv) = (ElfW(auxv_t) *) auxv; /* Aliasing violation. */
- assert (auxv == sp + 1);
-
- /* Shuffle auxv down. */
- ElfW(auxv_t) ax;
- char *oldp = (char *) (p + 1);
- char *newp = (char *) (sp + 1);
- do
- {
- memcpy (&ax, oldp, sizeof (ax));
- memcpy (newp, &ax, sizeof (ax));
- oldp += sizeof (ax);
- newp += sizeof (ax);
- }
- while (ax.a_type != AT_NULL);
-#endif
-}
-
-static void
-dl_main (const ElfW(Phdr) *phdr,
- ElfW(Word) phnum,
- ElfW(Addr) *user_entry,
- ElfW(auxv_t) *auxv)
-{
- struct link_map *main_map;
- size_t file_size;
- char *file;
- unsigned int i;
- bool rtld_is_main = false;
- void *tcbp = NULL;
-
- struct dl_main_state state;
- dl_main_state_init (&state);
-
- __tls_pre_init_tp ();
-
-#if !PTHREAD_IN_LIBC
- /* The explicit initialization here is cheaper than processing the reloc
- in the _rtld_local definition's initializer. */
- GL(dl_make_stack_executable_hook) = &_dl_make_stack_executable;
-#endif
-
- /* Process the environment variable which control the behaviour. */
- process_envvars (&state);
-
-#ifndef HAVE_INLINED_SYSCALLS
- /* Set up a flag which tells we are just starting. */
- _dl_starting_up = 1;
-#endif
-
- const char *ld_so_name = _dl_argv[0];
- if (*user_entry == (ElfW(Addr)) ENTRY_POINT)
- {
- /* Ho ho. We are not the program interpreter! We are the program
- itself! This means someone ran ld.so as a command. Well, that
- might be convenient to do sometimes. We support it by
- interpreting the args like this:
-
- ld.so PROGRAM ARGS...
-
- The first argument is the name of a file containing an ELF
- executable we will load and run with the following arguments.
- To simplify life here, PROGRAM is searched for using the
- normal rules for shared objects, rather than $PATH or anything
- like that. We just load it and use its entry point; we don't
- pay attention to its PT_INTERP command (we are the interpreter
- ourselves). This is an easy way to test a new ld.so before
- installing it. */
- rtld_is_main = true;
-
- char *argv0 = NULL;
- char **orig_argv = _dl_argv;
-
- /* Note the place where the dynamic linker actually came from. */
- GL(dl_rtld_map).l_name = rtld_progname;
-
- while (_dl_argc > 1)
- if (! strcmp (_dl_argv[1], "--list"))
- {
- if (state.mode != rtld_mode_help)
- {
- state.mode = rtld_mode_list;
- /* This means do no dependency analysis. */
- GLRO(dl_lazy) = -1;
- }
-
- --_dl_argc;
- ++_dl_argv;
- }
- else if (! strcmp (_dl_argv[1], "--verify"))
- {
- if (state.mode != rtld_mode_help)
- state.mode = rtld_mode_verify;
-
- --_dl_argc;
- ++_dl_argv;
- }
- else if (! strcmp (_dl_argv[1], "--inhibit-cache"))
- {
- GLRO(dl_inhibit_cache) = 1;
- --_dl_argc;
- ++_dl_argv;
- }
- else if (! strcmp (_dl_argv[1], "--library-path")
- && _dl_argc > 2)
- {
- state.library_path = _dl_argv[2];
- state.library_path_source = "--library-path";
-
- _dl_argc -= 2;
- _dl_argv += 2;
- }
- else if (! strcmp (_dl_argv[1], "--inhibit-rpath")
- && _dl_argc > 2)
- {
- GLRO(dl_inhibit_rpath) = _dl_argv[2];
-
- _dl_argc -= 2;
- _dl_argv += 2;
- }
- else if (! strcmp (_dl_argv[1], "--audit") && _dl_argc > 2)
- {
- audit_list_add_string (&state.audit_list, _dl_argv[2]);
-
- _dl_argc -= 2;
- _dl_argv += 2;
- }
- else if (! strcmp (_dl_argv[1], "--preload") && _dl_argc > 2)
- {
- state.preloadarg = _dl_argv[2];
- _dl_argc -= 2;
- _dl_argv += 2;
- }
- else if (! strcmp (_dl_argv[1], "--argv0") && _dl_argc > 2)
- {
- argv0 = _dl_argv[2];
-
- _dl_argc -= 2;
- _dl_argv += 2;
- }
- else if (strcmp (_dl_argv[1], "--glibc-hwcaps-prepend") == 0
- && _dl_argc > 2)
- {
- state.glibc_hwcaps_prepend = _dl_argv[2];
- _dl_argc -= 2;
- _dl_argv += 2;
- }
- else if (strcmp (_dl_argv[1], "--glibc-hwcaps-mask") == 0
- && _dl_argc > 2)
- {
- state.glibc_hwcaps_mask = _dl_argv[2];
- _dl_argc -= 2;
- _dl_argv += 2;
- }
-#if HAVE_TUNABLES
- else if (! strcmp (_dl_argv[1], "--list-tunables"))
- {
- state.mode = rtld_mode_list_tunables;
-
- --_dl_argc;
- ++_dl_argv;
- }
-#endif
- else if (! strcmp (_dl_argv[1], "--list-diagnostics"))
- {
- state.mode = rtld_mode_list_diagnostics;
-
- --_dl_argc;
- ++_dl_argv;
- }
- else if (strcmp (_dl_argv[1], "--help") == 0)
- {
- state.mode = rtld_mode_help;
- --_dl_argc;
- ++_dl_argv;
- }
- else if (strcmp (_dl_argv[1], "--version") == 0)
- _dl_version ();
- else if (_dl_argv[1][0] == '-' && _dl_argv[1][1] == '-')
- {
- if (_dl_argv[1][1] == '\0')
- /* End of option list. */
- break;
- else
- /* Unrecognized option. */
- _dl_usage (ld_so_name, _dl_argv[1]);
- }
- else
- break;
-
-#if HAVE_TUNABLES
- if (__glibc_unlikely (state.mode == rtld_mode_list_tunables))
- {
- __tunables_print ();
- _exit (0);
- }
-#endif
-
- if (state.mode == rtld_mode_list_diagnostics)
- _dl_print_diagnostics (_environ);
-
- /* If we have no further argument the program was called incorrectly.
- Grant the user some education. */
- if (_dl_argc < 2)
- {
- if (state.mode == rtld_mode_help)
- /* --help without an executable is not an error. */
- _dl_help (ld_so_name, &state);
- else
- _dl_usage (ld_so_name, NULL);
- }
-
- --_dl_argc;
- ++_dl_argv;
-
- /* The initialization of _dl_stack_flags done below assumes the
- executable's PT_GNU_STACK may have been honored by the kernel, and
- so a PT_GNU_STACK with PF_X set means the stack started out with
- execute permission. However, this is not really true if the
- dynamic linker is the executable the kernel loaded. For this
- case, we must reinitialize _dl_stack_flags to match the dynamic
- linker itself. If the dynamic linker was built with a
- PT_GNU_STACK, then the kernel may have loaded us with a
- nonexecutable stack that we will have to make executable when we
- load the program below unless it has a PT_GNU_STACK indicating
- nonexecutable stack is ok. */
-
- for (const ElfW(Phdr) *ph = phdr; ph < &phdr[phnum]; ++ph)
- if (ph->p_type == PT_GNU_STACK)
- {
- GL(dl_stack_flags) = ph->p_flags;
- break;
- }
-
- if (__glibc_unlikely (state.mode == rtld_mode_verify
- || state.mode == rtld_mode_help))
- {
- const char *objname;
- const char *err_str = NULL;
- struct map_args args;
- bool malloced;
-
- args.str = rtld_progname;
- args.loader = NULL;
- args.mode = __RTLD_OPENEXEC;
- (void) _dl_catch_error (&objname, &err_str, &malloced, map_doit,
- &args);
- if (__glibc_unlikely (err_str != NULL))
- {
- /* We don't free the returned string, the programs stops
- anyway. */
- if (state.mode == rtld_mode_help)
- /* Mask the failure to load the main object. The help
- message contains less information in this case. */
- _dl_help (ld_so_name, &state);
- else
- _exit (EXIT_FAILURE);
- }
- }
- else
- {
- RTLD_TIMING_VAR (start);
- rtld_timer_start (&start);
- _dl_map_object (NULL, rtld_progname, lt_executable, 0,
- __RTLD_OPENEXEC, LM_ID_BASE);
- rtld_timer_stop (&load_time, start);
- }
-
- /* Now the map for the main executable is available. */
- main_map = GL(dl_ns)[LM_ID_BASE]._ns_loaded;
-
- if (__glibc_likely (state.mode == rtld_mode_normal))
- rtld_chain_load (main_map, argv0);
-
- phdr = main_map->l_phdr;
- phnum = main_map->l_phnum;
- /* We overwrite here a pointer to a malloc()ed string. But since
- the malloc() implementation used at this point is the dummy
- implementations which has no real free() function it does not
- makes sense to free the old string first. */
- main_map->l_name = (char *) "";
- *user_entry = main_map->l_entry;
-
- /* Set bit indicating this is the main program map. */
- main_map->l_main_map = 1;
-
-#ifdef HAVE_AUX_VECTOR
- /* Adjust the on-stack auxiliary vector so that it looks like the
- binary was executed directly. */
- for (ElfW(auxv_t) *av = auxv; av->a_type != AT_NULL; av++)
- switch (av->a_type)
- {
- case AT_PHDR:
- av->a_un.a_val = (uintptr_t) phdr;
- break;
- case AT_PHNUM:
- av->a_un.a_val = phnum;
- break;
- case AT_ENTRY:
- av->a_un.a_val = *user_entry;
- break;
- case AT_EXECFN:
- av->a_un.a_val = (uintptr_t) _dl_argv[0];
- break;
- }
-#endif
-
- /* Set the argv[0] string now that we've processed the executable. */
- if (argv0 != NULL)
- _dl_argv[0] = argv0;
-
- /* Adjust arguments for the application entry point. */
- _dl_start_args_adjust (_dl_argv - orig_argv);
- }
- else
- {
- /* Create a link_map for the executable itself.
- This will be what dlopen on "" returns. */
- main_map = _dl_new_object ((char *) "", "", lt_executable, NULL,
- __RTLD_OPENEXEC, LM_ID_BASE);
- assert (main_map != NULL);
- main_map->l_phdr = phdr;
- main_map->l_phnum = phnum;
- main_map->l_entry = *user_entry;
-
- /* Even though the link map is not yet fully initialized we can add
- it to the map list since there are no possible users running yet. */
- _dl_add_to_namespace_list (main_map, LM_ID_BASE);
- assert (main_map == GL(dl_ns)[LM_ID_BASE]._ns_loaded);
-
- /* At this point we are in a bit of trouble. We would have to
- fill in the values for l_dev and l_ino. But in general we
- do not know where the file is. We also do not handle AT_EXECFD
- even if it would be passed up.
-
- We leave the values here defined to 0. This is normally no
- problem as the program code itself is normally no shared
- object and therefore cannot be loaded dynamically. Nothing
- prevent the use of dynamic binaries and in these situations
- we might get problems. We might not be able to find out
- whether the object is already loaded. But since there is no
- easy way out and because the dynamic binary must also not
- have an SONAME we ignore this program for now. If it becomes
- a problem we can force people using SONAMEs. */
-
- /* We delay initializing the path structure until we got the dynamic
- information for the program. */
- }
-
- bool has_interp = rtld_setup_main_map (main_map);
-
- /* If the current libname is different from the SONAME, add the
- latter as well. */
- if (GL(dl_rtld_map).l_info[DT_SONAME] != NULL
- && strcmp (GL(dl_rtld_map).l_libname->name,
- (const char *) D_PTR (&GL(dl_rtld_map), l_info[DT_STRTAB])
- + GL(dl_rtld_map).l_info[DT_SONAME]->d_un.d_val) != 0)
- {
- static struct libname_list newname;
- newname.name = ((char *) D_PTR (&GL(dl_rtld_map), l_info[DT_STRTAB])
- + GL(dl_rtld_map).l_info[DT_SONAME]->d_un.d_ptr);
- newname.next = NULL;
- newname.dont_free = 1;
-
- assert (GL(dl_rtld_map).l_libname->next == NULL);
- GL(dl_rtld_map).l_libname->next = &newname;
- }
- /* The ld.so must be relocated since otherwise loading audit modules
- will fail since they reuse the very same ld.so. */
- assert (GL(dl_rtld_map).l_relocated);
-
- if (! rtld_is_main)
- {
- /* Extract the contents of the dynamic section for easy access. */
- elf_get_dynamic_info (main_map, false, false);
-
- /* If the main map is libc.so, update the base namespace to
- refer to this map. If libc.so is loaded later, this happens
- in _dl_map_object_from_fd. */
- if (main_map->l_info[DT_SONAME] != NULL
- && (strcmp (((const char *) D_PTR (main_map, l_info[DT_STRTAB])
- + main_map->l_info[DT_SONAME]->d_un.d_val), LIBC_SO)
- == 0))
- GL(dl_ns)[LM_ID_BASE].libc_map = main_map;
-
- /* Set up our cache of pointers into the hash table. */
- _dl_setup_hash (main_map);
- }
-
- if (__glibc_unlikely (state.mode == rtld_mode_verify))
- {
- /* We were called just to verify that this is a dynamic
- executable using us as the program interpreter. Exit with an
- error if we were not able to load the binary or no interpreter
- is specified (i.e., this is no dynamically linked binary. */
- if (main_map->l_ld == NULL)
- _exit (1);
-
- _exit (has_interp ? 0 : 2);
- }
-
- struct link_map **first_preload = &GL(dl_rtld_map).l_next;
- /* Set up the data structures for the system-supplied DSO early,
- so they can influence _dl_init_paths. */
- setup_vdso (main_map, &first_preload);
-
- /* With vDSO setup we can initialize the function pointers. */
- setup_vdso_pointers ();
-
- /* Initialize the data structures for the search paths for shared
- objects. */
- call_init_paths (&state);
-
- /* Initialize _r_debug_extended. */
- struct r_debug *r = _dl_debug_initialize (GL(dl_rtld_map).l_addr,
- LM_ID_BASE);
- r->r_state = RT_CONSISTENT;
-
- /* Put the link_map for ourselves on the chain so it can be found by
- name. Note that at this point the global chain of link maps contains
- exactly one element, which is pointed to by dl_loaded. */
- if (! GL(dl_rtld_map).l_name)
- /* If not invoked directly, the dynamic linker shared object file was
- found by the PT_INTERP name. */
- GL(dl_rtld_map).l_name = (char *) GL(dl_rtld_map).l_libname->name;
- GL(dl_rtld_map).l_type = lt_library;
- main_map->l_next = &GL(dl_rtld_map);
- GL(dl_rtld_map).l_prev = main_map;
- ++GL(dl_ns)[LM_ID_BASE]._ns_nloaded;
- ++GL(dl_load_adds);
-
- /* Starting from binutils-2.23, the linker will define the magic symbol
- __ehdr_start to point to our own ELF header if it is visible in a
- segment that also includes the phdrs. If that's not available, we use
- the old method that assumes the beginning of the file is part of the
- lowest-addressed PT_LOAD segment. */
-
- /* Set up the program header information for the dynamic linker
- itself. It is needed in the dl_iterate_phdr callbacks. */
- const ElfW(Ehdr) *rtld_ehdr = &__ehdr_start;
- assert (rtld_ehdr->e_ehsize == sizeof *rtld_ehdr);
- assert (rtld_ehdr->e_phentsize == sizeof (ElfW(Phdr)));
-
- const ElfW(Phdr) *rtld_phdr = (const void *) rtld_ehdr + rtld_ehdr->e_phoff;
-
- GL(dl_rtld_map).l_phdr = rtld_phdr;
- GL(dl_rtld_map).l_phnum = rtld_ehdr->e_phnum;
-
-
- /* PT_GNU_RELRO is usually the last phdr. */
- size_t cnt = rtld_ehdr->e_phnum;
- while (cnt-- > 0)
- if (rtld_phdr[cnt].p_type == PT_GNU_RELRO)
- {
- GL(dl_rtld_map).l_relro_addr = rtld_phdr[cnt].p_vaddr;
- GL(dl_rtld_map).l_relro_size = rtld_phdr[cnt].p_memsz;
- break;
- }
-
- /* Add the dynamic linker to the TLS list if it also uses TLS. */
- if (GL(dl_rtld_map).l_tls_blocksize != 0)
- /* Assign a module ID. Do this before loading any audit modules. */
- _dl_assign_tls_modid (&GL(dl_rtld_map));
-
- audit_list_add_dynamic_tag (&state.audit_list, main_map, DT_AUDIT);
- audit_list_add_dynamic_tag (&state.audit_list, main_map, DT_DEPAUDIT);
-
- /* At this point, all data has been obtained that is included in the
- --help output. */
- if (__glibc_unlikely (state.mode == rtld_mode_help))
- _dl_help (ld_so_name, &state);
-
- /* If we have auditing DSOs to load, do it now. */
- bool need_security_init = true;
- if (state.audit_list.length > 0)
- {
- size_t naudit = audit_list_count (&state.audit_list);
-
- /* Since we start using the auditing DSOs right away we need to
- initialize the data structures now. */
- tcbp = init_tls (naudit);
-
- /* Initialize security features. We need to do it this early
- since otherwise the constructors of the audit libraries will
- use different values (especially the pointer guard) and will
- fail later on. */
- security_init ();
- need_security_init = false;
-
- load_audit_modules (main_map, &state.audit_list);
-
- /* The count based on audit strings may overestimate the number
- of audit modules that got loaded, but not underestimate. */
- assert (GLRO(dl_naudit) <= naudit);
- }
-
- /* Keep track of the currently loaded modules to count how many
- non-audit modules which use TLS are loaded. */
- size_t count_modids = _dl_count_modids ();
-
- /* Set up debugging before the debugger is notified for the first time. */
- elf_setup_debug_entry (main_map, r);
-
- /* We start adding objects. */
- r->r_state = RT_ADD;
- _dl_debug_state ();
- LIBC_PROBE (init_start, 2, LM_ID_BASE, r);
-
- /* Auditing checkpoint: we are ready to signal that the initial map
- is being constructed. */
- _dl_audit_activity_map (main_map, LA_ACT_ADD);
-
- /* We have two ways to specify objects to preload: via environment
- variable and via the file /etc/ld.so.preload. The latter can also
- be used when security is enabled. */
- assert (*first_preload == NULL);
- struct link_map **preloads = NULL;
- unsigned int npreloads = 0;
-
- if (__glibc_unlikely (state.preloadlist != NULL))
- {
- RTLD_TIMING_VAR (start);
- rtld_timer_start (&start);
- npreloads += handle_preload_list (state.preloadlist, main_map,
- "LD_PRELOAD");
- rtld_timer_accum (&load_time, start);
- }
-
- if (__glibc_unlikely (state.preloadarg != NULL))
- {
- RTLD_TIMING_VAR (start);
- rtld_timer_start (&start);
- npreloads += handle_preload_list (state.preloadarg, main_map,
- "--preload");
- rtld_timer_accum (&load_time, start);
- }
-
- /* There usually is no ld.so.preload file, it should only be used
- for emergencies and testing. So the open call etc should usually
- fail. Using access() on a non-existing file is faster than using
- open(). So we do this first. If it succeeds we do almost twice
- the work but this does not matter, since it is not for production
- use. */
- static const char preload_file[] = "/etc/ld.so.preload";
- if (__glibc_unlikely (__access (preload_file, R_OK) == 0))
- {
- /* Read the contents of the file. */
- file = _dl_sysdep_read_whole_file (preload_file, &file_size,
- PROT_READ | PROT_WRITE);
- if (__glibc_unlikely (file != MAP_FAILED))
- {
- /* Parse the file. It contains names of libraries to be loaded,
- separated by white spaces or `:'. It may also contain
- comments introduced by `#'. */
- char *problem;
- char *runp;
- size_t rest;
-
- /* Eliminate comments. */
- runp = file;
- rest = file_size;
- while (rest > 0)
- {
- char *comment = memchr (runp, '#', rest);
- if (comment == NULL)
- break;
-
- rest -= comment - runp;
- do
- *comment = ' ';
- while (--rest > 0 && *++comment != '\n');
- }
-
- /* We have one problematic case: if we have a name at the end of
- the file without a trailing terminating characters, we cannot
- place the \0. Handle the case separately. */
- if (file[file_size - 1] != ' ' && file[file_size - 1] != '\t'
- && file[file_size - 1] != '\n' && file[file_size - 1] != ':')
- {
- problem = &file[file_size];
- while (problem > file && problem[-1] != ' '
- && problem[-1] != '\t'
- && problem[-1] != '\n' && problem[-1] != ':')
- --problem;
-
- if (problem > file)
- problem[-1] = '\0';
- }
- else
- {
- problem = NULL;
- file[file_size - 1] = '\0';
- }
-
- RTLD_TIMING_VAR (start);
- rtld_timer_start (&start);
-
- if (file != problem)
- {
- char *p;
- runp = file;
- while ((p = strsep (&runp, ": \t\n")) != NULL)
- if (p[0] != '\0')
- npreloads += do_preload (p, main_map, preload_file);
- }
-
- if (problem != NULL)
- {
- char *p = strndupa (problem, file_size - (problem - file));
-
- npreloads += do_preload (p, main_map, preload_file);
- }
-
- rtld_timer_accum (&load_time, start);
-
- /* We don't need the file anymore. */
- __munmap (file, file_size);
- }
- }
-
- if (__glibc_unlikely (*first_preload != NULL))
- {
- /* Set up PRELOADS with a vector of the preloaded libraries. */
- struct link_map *l = *first_preload;
- preloads = __alloca (npreloads * sizeof preloads[0]);
- i = 0;
- do
- {
- preloads[i++] = l;
- l = l->l_next;
- } while (l);
- assert (i == npreloads);
- }
-
-#ifdef NEED_DL_SYSINFO_DSO
- /* Now that the audit modules are opened, call la_objopen for the vDSO. */
- if (GLRO(dl_sysinfo_map) != NULL)
- _dl_audit_objopen (GLRO(dl_sysinfo_map), LM_ID_BASE);
-#endif
-
- /* Load all the libraries specified by DT_NEEDED entries. If LD_PRELOAD
- specified some libraries to load, these are inserted before the actual
- dependencies in the executable's searchlist for symbol resolution. */
- {
- RTLD_TIMING_VAR (start);
- rtld_timer_start (&start);
- _dl_map_object_deps (main_map, preloads, npreloads,
- state.mode == rtld_mode_trace, 0);
- rtld_timer_accum (&load_time, start);
- }
-
- /* Mark all objects as being in the global scope. */
- for (i = main_map->l_searchlist.r_nlist; i > 0; )
- main_map->l_searchlist.r_list[--i]->l_global = 1;
-
- /* Remove _dl_rtld_map from the chain. */
- GL(dl_rtld_map).l_prev->l_next = GL(dl_rtld_map).l_next;
- if (GL(dl_rtld_map).l_next != NULL)
- GL(dl_rtld_map).l_next->l_prev = GL(dl_rtld_map).l_prev;
-
- for (i = 1; i < main_map->l_searchlist.r_nlist; ++i)
- if (main_map->l_searchlist.r_list[i] == &GL(dl_rtld_map))
- break;
-
- bool rtld_multiple_ref = false;
- if (__glibc_likely (i < main_map->l_searchlist.r_nlist))
- {
- /* Some DT_NEEDED entry referred to the interpreter object itself, so
- put it back in the list of visible objects. We insert it into the
- chain in symbol search order because gdb uses the chain's order as
- its symbol search order. */
- rtld_multiple_ref = true;
-
- GL(dl_rtld_map).l_prev = main_map->l_searchlist.r_list[i - 1];
- if (__glibc_likely (state.mode == rtld_mode_normal))
- {
- GL(dl_rtld_map).l_next = (i + 1 < main_map->l_searchlist.r_nlist
- ? main_map->l_searchlist.r_list[i + 1]
- : NULL);
-#ifdef NEED_DL_SYSINFO_DSO
- if (GLRO(dl_sysinfo_map) != NULL
- && GL(dl_rtld_map).l_prev->l_next == GLRO(dl_sysinfo_map)
- && GL(dl_rtld_map).l_next != GLRO(dl_sysinfo_map))
- GL(dl_rtld_map).l_prev = GLRO(dl_sysinfo_map);
-#endif
- }
- else
- /* In trace mode there might be an invisible object (which we
- could not find) after the previous one in the search list.
- In this case it doesn't matter much where we put the
- interpreter object, so we just initialize the list pointer so
- that the assertion below holds. */
- GL(dl_rtld_map).l_next = GL(dl_rtld_map).l_prev->l_next;
-
- assert (GL(dl_rtld_map).l_prev->l_next == GL(dl_rtld_map).l_next);
- GL(dl_rtld_map).l_prev->l_next = &GL(dl_rtld_map);
- if (GL(dl_rtld_map).l_next != NULL)
- {
- assert (GL(dl_rtld_map).l_next->l_prev == GL(dl_rtld_map).l_prev);
- GL(dl_rtld_map).l_next->l_prev = &GL(dl_rtld_map);
- }
- }
-
- /* Now let us see whether all libraries are available in the
- versions we need. */
- {
- struct version_check_args args;
- args.doexit = state.mode == rtld_mode_normal;
- args.dotrace = state.mode == rtld_mode_trace;
- _dl_receive_error (print_missing_version, version_check_doit, &args);
- }
-
- /* We do not initialize any of the TLS functionality unless any of the
- initial modules uses TLS. This makes dynamic loading of modules with
- TLS impossible, but to support it requires either eagerly doing setup
- now or lazily doing it later. Doing it now makes us incompatible with
- an old kernel that can't perform TLS_INIT_TP, even if no TLS is ever
- used. Trying to do it lazily is too hairy to try when there could be
- multiple threads (from a non-TLS-using libpthread). */
- bool was_tls_init_tp_called = tls_init_tp_called;
- if (tcbp == NULL)
- tcbp = init_tls (0);
-
- if (__glibc_likely (need_security_init))
- /* Initialize security features. But only if we have not done it
- earlier. */
- security_init ();
-
- if (__glibc_unlikely (state.mode != rtld_mode_normal))
- {
- /* We were run just to list the shared libraries. It is
- important that we do this before real relocation, because the
- functions we call below for output may no longer work properly
- after relocation. */
- struct link_map *l;
-
- if (GLRO(dl_debug_mask) & DL_DEBUG_UNUSED)
- {
- /* Look through the dependencies of the main executable
- and determine which of them is not actually
- required. */
- struct link_map *l = main_map;
-
- /* Relocate the main executable. */
- struct relocate_args args = { .l = l,
- .reloc_mode = ((GLRO(dl_lazy)
- ? RTLD_LAZY : 0)
- | __RTLD_NOIFUNC) };
- _dl_receive_error (print_unresolved, relocate_doit, &args);
-
- /* This loop depends on the dependencies of the executable to
- correspond in number and order to the DT_NEEDED entries. */
- ElfW(Dyn) *dyn = main_map->l_ld;
- bool first = true;
- while (dyn->d_tag != DT_NULL)
- {
- if (dyn->d_tag == DT_NEEDED)
- {
- l = l->l_next;
-#ifdef NEED_DL_SYSINFO_DSO
- /* Skip the VDSO since it's not part of the list
- of objects we brought in via DT_NEEDED entries. */
- if (l == GLRO(dl_sysinfo_map))
- l = l->l_next;
-#endif
- if (!l->l_used)
- {
- if (first)
- {
- _dl_printf ("Unused direct dependencies:\n");
- first = false;
- }
-
- _dl_printf ("\t%s\n", l->l_name);
- }
- }
-
- ++dyn;
- }
-
- _exit (first != true);
- }
- else if (! main_map->l_info[DT_NEEDED])
- _dl_printf ("\tstatically linked\n");
- else
- {
- for (l = state.mode_trace_program ? main_map : main_map->l_next;
- l; l = l->l_next) {
- if (l->l_faked)
- /* The library was not found. */
- _dl_printf ("\t%s => not found\n", l->l_libname->name);
- else if (strcmp (l->l_libname->name, l->l_name) == 0)
- /* Print vDSO like libraries without duplicate name. Some
- consumers depend of this format. */
- _dl_printf ("\t%s (0x%0*Zx)\n", l->l_libname->name,
- (int) sizeof l->l_map_start * 2,
- (size_t) l->l_map_start);
- else
- _dl_printf ("\t%s => %s (0x%0*Zx)\n",
- DSO_FILENAME (l->l_libname->name),
- DSO_FILENAME (l->l_name),
- (int) sizeof l->l_map_start * 2,
- (size_t) l->l_map_start);
- }
- }
-
- if (__glibc_unlikely (state.mode != rtld_mode_trace))
- for (i = 1; i < (unsigned int) _dl_argc; ++i)
- {
- const ElfW(Sym) *ref = NULL;
- ElfW(Addr) loadbase;
- lookup_t result;
-
- result = _dl_lookup_symbol_x (_dl_argv[i], main_map,
- &ref, main_map->l_scope,
- NULL, ELF_RTYPE_CLASS_PLT,
- DL_LOOKUP_ADD_DEPENDENCY, NULL);
-
- loadbase = LOOKUP_VALUE_ADDRESS (result, false);
-
- _dl_printf ("%s found at 0x%0*Zd in object at 0x%0*Zd\n",
- _dl_argv[i],
- (int) sizeof ref->st_value * 2,
- (size_t) ref->st_value,
- (int) sizeof loadbase * 2, (size_t) loadbase);
- }
- else
- {
- /* If LD_WARN is set, warn about undefined symbols. */
- if (GLRO(dl_lazy) >= 0 && GLRO(dl_verbose))
- {
- /* We have to do symbol dependency testing. */
- struct relocate_args args;
- unsigned int i;
-
- args.reloc_mode = ((GLRO(dl_lazy) ? RTLD_LAZY : 0)
- | __RTLD_NOIFUNC);
-
- i = main_map->l_searchlist.r_nlist;
- while (i-- > 0)
- {
- struct link_map *l = main_map->l_initfini[i];
- if (l != &GL(dl_rtld_map) && ! l->l_faked)
- {
- args.l = l;
- _dl_receive_error (print_unresolved, relocate_doit,
- &args);
- }
- }
-
- }
-#define VERNEEDTAG (DT_NUM + DT_THISPROCNUM + DT_VERSIONTAGIDX (DT_VERNEED))
- if (state.version_info)
- {
- /* Print more information. This means here, print information
- about the versions needed. */
- int first = 1;
- struct link_map *map;
-
- for (map = main_map; map != NULL; map = map->l_next)
- {
- const char *strtab;
- ElfW(Dyn) *dyn = map->l_info[VERNEEDTAG];
- ElfW(Verneed) *ent;
-
- if (dyn == NULL)
- continue;
-
- strtab = (const void *) D_PTR (map, l_info[DT_STRTAB]);
- ent = (ElfW(Verneed) *) (map->l_addr + dyn->d_un.d_ptr);
-
- if (first)
- {
- _dl_printf ("\n\tVersion information:\n");
- first = 0;
- }
-
- _dl_printf ("\t%s:\n", DSO_FILENAME (map->l_name));
-
- while (1)
- {
- ElfW(Vernaux) *aux;
- struct link_map *needed;
-
- needed = find_needed (strtab + ent->vn_file);
- aux = (ElfW(Vernaux) *) ((char *) ent + ent->vn_aux);
-
- while (1)
- {
- const char *fname = NULL;
-
- if (needed != NULL
- && match_version (strtab + aux->vna_name,
- needed))
- fname = needed->l_name;
-
- _dl_printf ("\t\t%s (%s) %s=> %s\n",
- strtab + ent->vn_file,
- strtab + aux->vna_name,
- aux->vna_flags & VER_FLG_WEAK
- ? "[WEAK] " : "",
- fname ?: "not found");
-
- if (aux->vna_next == 0)
- /* No more symbols. */
- break;
-
- /* Next symbol. */
- aux = (ElfW(Vernaux) *) ((char *) aux
- + aux->vna_next);
- }
-
- if (ent->vn_next == 0)
- /* No more dependencies. */
- break;
-
- /* Next dependency. */
- ent = (ElfW(Verneed) *) ((char *) ent + ent->vn_next);
- }
- }
- }
- }
-
- _exit (0);
- }
-
- /* Now set up the variable which helps the assembler startup code. */
- GL(dl_ns)[LM_ID_BASE]._ns_main_searchlist = &main_map->l_searchlist;
-
- /* Save the information about the original global scope list since
- we need it in the memory handling later. */
- GLRO(dl_initial_searchlist) = *GL(dl_ns)[LM_ID_BASE]._ns_main_searchlist;
-
- /* Remember the last search directory added at startup, now that
- malloc will no longer be the one from dl-minimal.c. As a side
- effect, this marks ld.so as initialized, so that the rtld_active
- function returns true from now on. */
- GLRO(dl_init_all_dirs) = GL(dl_all_dirs);
-
- /* Print scope information. */
- if (__glibc_unlikely (GLRO(dl_debug_mask) & DL_DEBUG_SCOPES))
- {
- _dl_debug_printf ("\nInitial object scopes\n");
-
- for (struct link_map *l = main_map; l != NULL; l = l->l_next)
- _dl_show_scope (l, 0);
- }
-
- _rtld_main_check (main_map, _dl_argv[0]);
-
- /* Now we have all the objects loaded. Relocate them all except for
- the dynamic linker itself. We do this in reverse order so that copy
- relocs of earlier objects overwrite the data written by later
- objects. We do not re-relocate the dynamic linker itself in this
- loop because that could result in the GOT entries for functions we
- call being changed, and that would break us. It is safe to relocate
- the dynamic linker out of order because it has no copy relocs (we
- know that because it is self-contained). */
-
- int consider_profiling = GLRO(dl_profile) != NULL;
-
- /* If we are profiling we also must do lazy reloaction. */
- GLRO(dl_lazy) |= consider_profiling;
-
- RTLD_TIMING_VAR (start);
- rtld_timer_start (&start);
- {
- unsigned i = main_map->l_searchlist.r_nlist;
- while (i-- > 0)
- {
- struct link_map *l = main_map->l_initfini[i];
-
- /* While we are at it, help the memory handling a bit. We have to
- mark some data structures as allocated with the fake malloc()
- implementation in ld.so. */
- struct libname_list *lnp = l->l_libname->next;
-
- while (__builtin_expect (lnp != NULL, 0))
- {
- lnp->dont_free = 1;
- lnp = lnp->next;
- }
- /* Also allocated with the fake malloc(). */
- l->l_free_initfini = 0;
-
- if (l != &GL(dl_rtld_map))
- _dl_relocate_object (l, l->l_scope, GLRO(dl_lazy) ? RTLD_LAZY : 0,
- consider_profiling);
-
- /* Add object to slot information data if necessasy. */
- if (l->l_tls_blocksize != 0 && tls_init_tp_called)
- _dl_add_to_slotinfo (l, true);
- }
- }
- rtld_timer_stop (&relocate_time, start);
-
- /* Now enable profiling if needed. Like the previous call,
- this has to go here because the calls it makes should use the
- rtld versions of the functions (particularly calloc()), but it
- needs to have _dl_profile_map set up by the relocator. */
- if (__glibc_unlikely (GL(dl_profile_map) != NULL))
- /* We must prepare the profiling. */
- _dl_start_profile ();
-
- if ((!was_tls_init_tp_called && GL(dl_tls_max_dtv_idx) > 0)
- || count_modids != _dl_count_modids ())
- ++GL(dl_tls_generation);
-
- /* Now that we have completed relocation, the initializer data
- for the TLS blocks has its final values and we can copy them
- into the main thread's TLS area, which we allocated above.
- Note: thread-local variables must only be accessed after completing
- the next step. */
- _dl_allocate_tls_init (tcbp, false);
-
- /* And finally install it for the main thread. */
- if (! tls_init_tp_called)
- {
- const char *lossage = TLS_INIT_TP (tcbp);
- if (__glibc_unlikely (lossage != NULL))
- _dl_fatal_printf ("cannot set up thread-local storage: %s\n",
- lossage);
- __tls_init_tp ();
- }
-
- /* Make sure no new search directories have been added. */
- assert (GLRO(dl_init_all_dirs) == GL(dl_all_dirs));
-
- if (rtld_multiple_ref)
- {
- /* There was an explicit ref to the dynamic linker as a shared lib.
- Re-relocate ourselves with user-controlled symbol definitions.
-
- We must do this after TLS initialization in case after this
- re-relocation, we might call a user-supplied function
- (e.g. calloc from _dl_relocate_object) that uses TLS data. */
-
- /* Set up the object lookup structures. */
- _dl_find_object_init ();
-
- /* The malloc implementation has been relocated, so resolving
- its symbols (and potentially calling IFUNC resolvers) is safe
- at this point. */
- __rtld_malloc_init_real (main_map);
-
- /* Likewise for the locking implementation. */
- __rtld_mutex_init ();
-
- RTLD_TIMING_VAR (start);
- rtld_timer_start (&start);
-
- /* Mark the link map as not yet relocated again. */
- GL(dl_rtld_map).l_relocated = 0;
- _dl_relocate_object (&GL(dl_rtld_map), main_map->l_scope, 0, 0);
-
- rtld_timer_accum (&relocate_time, start);
- }
-
- /* Relocation is complete. Perform early libc initialization. This
- is the initial libc, even if audit modules have been loaded with
- other libcs. */
- _dl_call_libc_early_init (GL(dl_ns)[LM_ID_BASE].libc_map, true);
-
- /* Do any necessary cleanups for the startup OS interface code.
- We do these now so that no calls are made after rtld re-relocation
- which might be resolved to different functions than we expect.
- We cannot do this before relocating the other objects because
- _dl_relocate_object might need to call `mprotect' for DT_TEXTREL. */
- _dl_sysdep_start_cleanup ();
-
-#ifdef SHARED
- /* Auditing checkpoint: we have added all objects. */
- _dl_audit_activity_nsid (LM_ID_BASE, LA_ACT_CONSISTENT);
-#endif
-
- /* Notify the debugger all new objects are now ready to go. We must re-get
- the address since by now the variable might be in another object. */
- r = _dl_debug_update (LM_ID_BASE);
- r->r_state = RT_CONSISTENT;
- _dl_debug_state ();
- LIBC_PROBE (init_complete, 2, LM_ID_BASE, r);
-
-#if defined USE_LDCONFIG && !defined MAP_COPY
- /* We must munmap() the cache file. */
- _dl_unload_cache ();
-#endif
-
- /* Once we return, _dl_sysdep_start will invoke
- the DT_INIT functions and then *USER_ENTRY. */
-}
-
-/* This is a little helper function for resolving symbols while
- tracing the binary. */
-static void
-print_unresolved (int errcode __attribute__ ((unused)), const char *objname,
- const char *errstring)
-{
- if (objname[0] == '\0')
- objname = RTLD_PROGNAME;
- _dl_error_printf ("%s (%s)\n", errstring, objname);
-}
-
-/* This is a little helper function for resolving symbols while
- tracing the binary. */
-static void
-print_missing_version (int errcode __attribute__ ((unused)),
- const char *objname, const char *errstring)
-{
- _dl_error_printf ("%s: %s: %s\n", RTLD_PROGNAME,
- objname, errstring);
-}
-
-/* Process the string given as the parameter which explains which debugging
- options are enabled. */
-static void
-process_dl_debug (struct dl_main_state *state, const char *dl_debug)
-{
- /* When adding new entries make sure that the maximal length of a name
- is correctly handled in the LD_DEBUG_HELP code below. */
- static const struct
- {
- unsigned char len;
- const char name[10];
- const char helptext[41];
- unsigned short int mask;
- } debopts[] =
- {
-#define LEN_AND_STR(str) sizeof (str) - 1, str
- { LEN_AND_STR ("libs"), "display library search paths",
- DL_DEBUG_LIBS | DL_DEBUG_IMPCALLS },
- { LEN_AND_STR ("reloc"), "display relocation processing",
- DL_DEBUG_RELOC | DL_DEBUG_IMPCALLS },
- { LEN_AND_STR ("files"), "display progress for input file",
- DL_DEBUG_FILES | DL_DEBUG_IMPCALLS },
- { LEN_AND_STR ("symbols"), "display symbol table processing",
- DL_DEBUG_SYMBOLS | DL_DEBUG_IMPCALLS },
- { LEN_AND_STR ("bindings"), "display information about symbol binding",
- DL_DEBUG_BINDINGS | DL_DEBUG_IMPCALLS },
- { LEN_AND_STR ("versions"), "display version dependencies",
- DL_DEBUG_VERSIONS | DL_DEBUG_IMPCALLS },
- { LEN_AND_STR ("scopes"), "display scope information",
- DL_DEBUG_SCOPES },
- { LEN_AND_STR ("all"), "all previous options combined",
- DL_DEBUG_LIBS | DL_DEBUG_RELOC | DL_DEBUG_FILES | DL_DEBUG_SYMBOLS
- | DL_DEBUG_BINDINGS | DL_DEBUG_VERSIONS | DL_DEBUG_IMPCALLS
- | DL_DEBUG_SCOPES },
- { LEN_AND_STR ("statistics"), "display relocation statistics",
- DL_DEBUG_STATISTICS },
- { LEN_AND_STR ("unused"), "determined unused DSOs",
- DL_DEBUG_UNUSED },
- { LEN_AND_STR ("help"), "display this help message and exit",
- DL_DEBUG_HELP },
- };
-#define ndebopts (sizeof (debopts) / sizeof (debopts[0]))
-
- /* Skip separating white spaces and commas. */
- while (*dl_debug != '\0')
- {
- if (*dl_debug != ' ' && *dl_debug != ',' && *dl_debug != ':')
- {
- size_t cnt;
- size_t len = 1;
-
- while (dl_debug[len] != '\0' && dl_debug[len] != ' '
- && dl_debug[len] != ',' && dl_debug[len] != ':')
- ++len;
-
- for (cnt = 0; cnt < ndebopts; ++cnt)
- if (debopts[cnt].len == len
- && memcmp (dl_debug, debopts[cnt].name, len) == 0)
- {
- GLRO(dl_debug_mask) |= debopts[cnt].mask;
- state->any_debug = true;
- break;
- }
-
- if (cnt == ndebopts)
- {
- /* Display a warning and skip everything until next
- separator. */
- char *copy = strndupa (dl_debug, len);
- _dl_error_printf ("\
-warning: debug option `%s' unknown; try LD_DEBUG=help\n", copy);
- }
-
- dl_debug += len;
- continue;
- }
-
- ++dl_debug;
- }
-
- if (GLRO(dl_debug_mask) & DL_DEBUG_UNUSED)
- {
- /* In order to get an accurate picture of whether a particular
- DT_NEEDED entry is actually used we have to process both
- the PLT and non-PLT relocation entries. */
- GLRO(dl_lazy) = 0;
- }
-
- if (GLRO(dl_debug_mask) & DL_DEBUG_HELP)
- {
- size_t cnt;
-
- _dl_printf ("\
-Valid options for the LD_DEBUG environment variable are:\n\n");
-
- for (cnt = 0; cnt < ndebopts; ++cnt)
- _dl_printf (" %.*s%s%s\n", debopts[cnt].len, debopts[cnt].name,
- " " + debopts[cnt].len - 3,
- debopts[cnt].helptext);
-
- _dl_printf ("\n\
-To direct the debugging output into a file instead of standard output\n\
-a filename can be specified using the LD_DEBUG_OUTPUT environment variable.\n");
- _exit (0);
- }
-}
-
-static void
-process_envvars (struct dl_main_state *state)
-{
- char **runp = _environ;
- char *envline;
- char *debug_output = NULL;
-
- /* This is the default place for profiling data file. */
- GLRO(dl_profile_output)
- = &"/var/tmp\0/var/profile"[__libc_enable_secure ? 9 : 0];
-
- while ((envline = _dl_next_ld_env_entry (&runp)) != NULL)
- {
- size_t len = 0;
-
- while (envline[len] != '\0' && envline[len] != '=')
- ++len;
-
- if (envline[len] != '=')
- /* This is a "LD_" variable at the end of the string without
- a '=' character. Ignore it since otherwise we will access
- invalid memory below. */
- continue;
-
- switch (len)
- {
- case 4:
- /* Warning level, verbose or not. */
- if (memcmp (envline, "WARN", 4) == 0)
- GLRO(dl_verbose) = envline[5] != '\0';
- break;
-
- case 5:
- /* Debugging of the dynamic linker? */
- if (memcmp (envline, "DEBUG", 5) == 0)
- {
- process_dl_debug (state, &envline[6]);
- break;
- }
- if (memcmp (envline, "AUDIT", 5) == 0)
- audit_list_add_string (&state->audit_list, &envline[6]);
- break;
-
- case 7:
- /* Print information about versions. */
- if (memcmp (envline, "VERBOSE", 7) == 0)
- {
- state->version_info = envline[8] != '\0';
- break;
- }
-
- /* List of objects to be preloaded. */
- if (memcmp (envline, "PRELOAD", 7) == 0)
- {
- state->preloadlist = &envline[8];
- break;
- }
-
- /* Which shared object shall be profiled. */
- if (memcmp (envline, "PROFILE", 7) == 0 && envline[8] != '\0')
- GLRO(dl_profile) = &envline[8];
- break;
-
- case 8:
- /* Do we bind early? */
- if (memcmp (envline, "BIND_NOW", 8) == 0)
- {
- GLRO(dl_lazy) = envline[9] == '\0';
- break;
- }
- if (memcmp (envline, "BIND_NOT", 8) == 0)
- GLRO(dl_bind_not) = envline[9] != '\0';
- break;
-
- case 9:
- /* Test whether we want to see the content of the auxiliary
- array passed up from the kernel. */
- if (!__libc_enable_secure
- && memcmp (envline, "SHOW_AUXV", 9) == 0)
- _dl_show_auxv ();
- break;
-
-#if !HAVE_TUNABLES
- case 10:
- /* Mask for the important hardware capabilities. */
- if (!__libc_enable_secure
- && memcmp (envline, "HWCAP_MASK", 10) == 0)
- GLRO(dl_hwcap_mask) = _dl_strtoul (&envline[11], NULL);
- break;
-#endif
-
- case 11:
- /* Path where the binary is found. */
- if (!__libc_enable_secure
- && memcmp (envline, "ORIGIN_PATH", 11) == 0)
- GLRO(dl_origin_path) = &envline[12];
- break;
-
- case 12:
- /* The library search path. */
- if (!__libc_enable_secure
- && memcmp (envline, "LIBRARY_PATH", 12) == 0)
- {
- state->library_path = &envline[13];
- state->library_path_source = "LD_LIBRARY_PATH";
- break;
- }
-
- /* Where to place the profiling data file. */
- if (memcmp (envline, "DEBUG_OUTPUT", 12) == 0)
- {
- debug_output = &envline[13];
- break;
- }
-
- if (!__libc_enable_secure
- && memcmp (envline, "DYNAMIC_WEAK", 12) == 0)
- GLRO(dl_dynamic_weak) = 1;
- break;
-
- case 14:
- /* Where to place the profiling data file. */
- if (!__libc_enable_secure
- && memcmp (envline, "PROFILE_OUTPUT", 14) == 0
- && envline[15] != '\0')
- GLRO(dl_profile_output) = &envline[15];
- break;
-
- case 20:
- /* The mode of the dynamic linker can be set. */
- if (memcmp (envline, "TRACE_LOADED_OBJECTS", 20) == 0)
- {
- state->mode = rtld_mode_trace;
- state->mode_trace_program
- = _dl_strtoul (&envline[21], NULL) > 1;
- }
- break;
- }
- }
-
- /* Extra security for SUID binaries. Remove all dangerous environment
- variables. */
- if (__glibc_unlikely (__libc_enable_secure))
- {
- const char *nextp = UNSECURE_ENVVARS;
- do
- {
- unsetenv (nextp);
- /* We could use rawmemchr but this need not be fast. */
- nextp = (char *) (strchr) (nextp, '\0') + 1;
- }
- while (*nextp != '\0');
-
- if (__access ("/etc/suid-debug", F_OK) != 0)
- {
-#if !HAVE_TUNABLES
- unsetenv ("MALLOC_CHECK_");
-#endif
- GLRO(dl_debug_mask) = 0;
- }
-
- if (state->mode != rtld_mode_normal)
- _exit (5);
- }
- /* If we have to run the dynamic linker in debugging mode and the
- LD_DEBUG_OUTPUT environment variable is given, we write the debug
- messages to this file. */
- else if (state->any_debug && debug_output != NULL)
- {
- const int flags = O_WRONLY | O_APPEND | O_CREAT | O_NOFOLLOW;
- size_t name_len = strlen (debug_output);
- char buf[name_len + 12];
- char *startp;
-
- buf[name_len + 11] = '\0';
- startp = _itoa (__getpid (), &buf[name_len + 11], 10, 0);
- *--startp = '.';
- startp = memcpy (startp - name_len, debug_output, name_len);
-
- GLRO(dl_debug_fd) = __open64_nocancel (startp, flags, DEFFILEMODE);
- if (GLRO(dl_debug_fd) == -1)
- /* We use standard output if opening the file failed. */
- GLRO(dl_debug_fd) = STDOUT_FILENO;
- }
-}
-
-#if HP_TIMING_INLINE
-static void
-print_statistics_item (const char *title, hp_timing_t time,
- hp_timing_t total)
-{
- char cycles[HP_TIMING_PRINT_SIZE];
- HP_TIMING_PRINT (cycles, sizeof (cycles), time);
-
- char relative[3 * sizeof (hp_timing_t) + 2];
- char *cp = _itoa ((1000ULL * time) / total, relative + sizeof (relative),
- 10, 0);
- /* Sets the decimal point. */
- char *wp = relative;
- switch (relative + sizeof (relative) - cp)
- {
- case 3:
- *wp++ = *cp++;
- /* Fall through. */
- case 2:
- *wp++ = *cp++;
- /* Fall through. */
- case 1:
- *wp++ = '.';
- *wp++ = *cp++;
- }
- *wp = '\0';
- _dl_debug_printf ("%s: %s cycles (%s%%)\n", title, cycles, relative);
-}
-#endif
-
-/* Print the various times we collected. */
-static void
-__attribute ((noinline))
-print_statistics (const hp_timing_t *rtld_total_timep)
-{
-#if HP_TIMING_INLINE
- {
- char cycles[HP_TIMING_PRINT_SIZE];
- HP_TIMING_PRINT (cycles, sizeof (cycles), *rtld_total_timep);
- _dl_debug_printf ("\nruntime linker statistics:\n"
- " total startup time in dynamic loader: %s cycles\n",
- cycles);
- print_statistics_item (" time needed for relocation",
- relocate_time, *rtld_total_timep);
- }
-#endif
-
- unsigned long int num_relative_relocations = 0;
- for (Lmid_t ns = 0; ns < GL(dl_nns); ++ns)
- {
- if (GL(dl_ns)[ns]._ns_loaded == NULL)
- continue;
-
- struct r_scope_elem *scope = &GL(dl_ns)[ns]._ns_loaded->l_searchlist;
-
- for (unsigned int i = 0; i < scope->r_nlist; i++)
- {
- struct link_map *l = scope->r_list [i];
-
- if (l->l_addr != 0 && l->l_info[VERSYMIDX (DT_RELCOUNT)])
- num_relative_relocations
- += l->l_info[VERSYMIDX (DT_RELCOUNT)]->d_un.d_val;
-#ifndef ELF_MACHINE_REL_RELATIVE
- /* Relative relocations are processed on these architectures if
- library is loaded to different address than p_vaddr. */
- if ((l->l_addr != 0)
- && l->l_info[VERSYMIDX (DT_RELACOUNT)])
-#else
- /* On e.g. IA-64 or Alpha, relative relocations are processed
- only if library is loaded to different address than p_vaddr. */
- if (l->l_addr != 0 && l->l_info[VERSYMIDX (DT_RELACOUNT)])
-#endif
- num_relative_relocations
- += l->l_info[VERSYMIDX (DT_RELACOUNT)]->d_un.d_val;
- }
- }
-
- _dl_debug_printf (" number of relocations: %lu\n"
- " number of relocations from cache: %lu\n"
- " number of relative relocations: %lu\n",
- GL(dl_num_relocations),
- GL(dl_num_cache_relocations),
- num_relative_relocations);
-
-#if HP_TIMING_INLINE
- print_statistics_item (" time needed to load objects",
- load_time, *rtld_total_timep);
-#endif
-}
Index: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/elf/tst-dlmopen-twice-mod1.c
===================================================================
--- GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/elf/tst-dlmopen-twice-mod1.c (revision 10)
+++ GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/elf/tst-dlmopen-twice-mod1.c (nonexistent)
@@ -1,37 +0,0 @@
-/* Initialization of libc after dlmopen/dlclose/dlmopen (bug 29528). Module 1.
- Copyright (C) 2022 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 <stdio.h>
-
-static void __attribute__ ((constructor))
-init (void)
-{
- puts ("info: tst-dlmopen-twice-mod1.so loaded");
- fflush (stdout);
-}
-
-static void __attribute__ ((destructor))
-fini (void)
-{
- puts ("info: tst-dlmopen-twice-mod1.so about to be unloaded");
- fflush (stdout);
-}
-
-/* Large allocation. The second module does not have this, so it
- should load libc at a different address. */
-char large_allocate[16 * 1024 * 1024];
Index: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/elf/tst-dlmopen-twice-mod2.c
===================================================================
--- GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/elf/tst-dlmopen-twice-mod2.c (revision 10)
+++ GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/elf/tst-dlmopen-twice-mod2.c (nonexistent)
@@ -1,50 +0,0 @@
-/* Initialization of libc after dlmopen/dlclose/dlmopen (bug 29528). Module 2.
- Copyright (C) 2022 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 <ctype.h>
-#include <stdio.h>
-
-static void __attribute__ ((constructor))
-init (void)
-{
- puts ("info: tst-dlmopen-twice-mod2.so loaded");
- fflush (stdout);
-}
-
-static void __attribute__ ((destructor))
-fini (void)
-{
- puts ("info: tst-dlmopen-twice-mod2.so about to be unloaded");
- fflush (stdout);
-}
-
-int
-run_check (void)
-{
- puts ("info: about to call isalpha");
- fflush (stdout);
-
- volatile char ch = 'a';
- if (!isalpha (ch))
- {
- puts ("error: isalpha ('a') is not true");
- fflush (stdout);
- return 1;
- }
- return 0;
-}
Index: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/elf/tst-dlmopen-twice.c
===================================================================
--- GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/elf/tst-dlmopen-twice.c (revision 10)
+++ GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/elf/tst-dlmopen-twice.c (nonexistent)
@@ -1,34 +0,0 @@
-/* Initialization of libc after dlmopen/dlclose/dlmopen (bug 29528). Main.
- Copyright (C) 2022 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 <support/xdlfcn.h>
-#include <support/check.h>
-
-static int
-do_test (void)
-{
- void *handle = xdlmopen (LM_ID_NEWLM, "tst-dlmopen-twice-mod1.so", RTLD_NOW);
- xdlclose (handle);
- handle = xdlmopen (LM_ID_NEWLM, "tst-dlmopen-twice-mod2.so", RTLD_NOW);
- int (*run_check) (void) = xdlsym (handle, "run_check");
- TEST_COMPARE (run_check (), 0);
- xdlclose (handle);
- return 0;
-}
-
-#include <support/test-driver.c>
Index: GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/elf/Makefile
===================================================================
--- GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/elf/Makefile (revision 10)
+++ GNU/glibc/create-2.36-b3736d1a3c-2.36.1-patch/glibc-2.36-new/elf/Makefile (nonexistent)
@@ -1,2994 +0,0 @@
-# Copyright (C) 1995-2022 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 elf subdirectory of GNU C Library.
-
-subdir := elf
-
-include ../Makeconfig
-
-headers = \
- bits/elfclass.h \
- bits/link.h \
- bits/link_lavcurrent.h \
- elf.h \
- link.h \
- # headers
-
-routines = \
- $(all-dl-routines) \
- dl-addr \
- dl-addr-obj \
- dl-early_allocate \
- dl-error \
- dl-iteratephdr \
- dl-libc \
- dl-origin \
- dl-profstub \
- dl-reloc-static-pie \
- dl-support \
- dl-sym \
- dl-sysdep \
- enbl-secure \
- libc-dl_find_object \
- libc_early_init \
- rtld_static_init \
- # routines
-
-# The core dynamic linking functions are in libc for the static and
-# profiled libraries.
-dl-routines = \
- dl-call-libc-early-init \
- dl-close \
- dl-debug \
- dl-debug-symbols \
- dl-deps \
- dl-exception \
- dl-execstack \
- dl-find_object \
- dl-fini \
- dl-init \
- dl-load \
- dl-lookup \
- dl-lookup-direct \
- dl-minimal-malloc \
- dl-misc \
- dl-object \
- dl-open \
- dl-origin \
- dl-printf \
- dl-profile \
- dl-reloc \
- dl-runtime \
- dl-scope \
- dl-setup_hash \
- dl-sort-maps \
- dl-thread_gscope_wait \
- dl-tls \
- dl-tls_init_tp \
- dl-trampoline \
- dl-version \
- dl-write \
- # dl-routines
-
-ifeq (yes,$(use-ldconfig))
-dl-routines += dl-cache
-endif
-
-ifneq (no,$(have-tunables))
-dl-routines += dl-tunables
-tunables-type = $(addprefix TUNABLES_FRONTEND_,$(have-tunables))
-CPPFLAGS-dl-tunables.c += -DTUNABLES_FRONTEND=$(tunables-type)
-
-ifeq (yesyes,$(build-shared)$(run-built-tests))
-tests-special += $(objpfx)list-tunables.out
-endif
-
-# Make sure that the compiler does not insert any library calls in tunables
-# code paths.
-ifeq (yes,$(have-loop-to-function))
-CFLAGS-dl-tunables.c += -fno-tree-loop-distribute-patterns
-endif
-endif
-
-all-dl-routines = $(dl-routines) $(sysdep-dl-routines)
-# But they are absent from the shared libc, because that code is in ld.so.
-elide-routines.os = \
- $(all-dl-routines) \
- dl-early_allocate \
- dl-exception \
- dl-origin \
- dl-reloc-static-pie \
- dl-support \
- dl-sysdep \
- enbl-secure \
- rtld_static_init \
- thread_gscope_wait \
- # elide-routines.os
-
-# These object files are only included in the dynamically-linked libc.
-shared-only-routines = libc-dl_find_object
-
-# ld.so uses those routines, plus some special stuff for being the program
-# interpreter and operating independent of libc.
-rtld-routines = \
- $(all-dl-routines) \
- dl-audit \
- dl-compat \
- dl-diagnostics \
- dl-diagnostics-cpu \
- dl-diagnostics-kernel \
- dl-environ \
- dl-error-minimal \
- dl-hwcaps \
- dl-hwcaps-subdirs \
- dl-hwcaps_split \
- dl-libc_freeres \
- dl-minimal \
- dl-mutex \
- dl-sysdep \
- dl-usage \
- rtld \
- # rtld-routines
-
-all-rtld-routines = $(rtld-routines) $(sysdep-rtld-routines)
-
-CFLAGS-dl-runtime.c += -fexceptions -fasynchronous-unwind-tables
-CFLAGS-dl-lookup.c += -fexceptions -fasynchronous-unwind-tables
-CFLAGS-dl-iteratephdr.c += $(uses-callbacks)
-
-# Called during static library initialization, so turn stack-protection
-# off for non-shared builds.
-CFLAGS-dl-minimal-malloc.o = $(no-stack-protector)
-CFLAGS-dl-minimal-malloc.op = $(no-stack-protector)
-
-# On targets without __builtin_memset, rtld.c uses a hand-coded loop
-# in _dl_start. Make sure this isn't turned into a call to regular memset.
-ifeq (yes,$(have-loop-to-function))
-CFLAGS-rtld.c += -fno-tree-loop-distribute-patterns
-endif
-
-ifeq (yes,$(have-loop-to-function))
-# Likewise, during static library startup, memset is not yet available.
-CFLAGS-dl-support.c = -fno-tree-loop-distribute-patterns
-endif
-
-# Compile rtld itself without stack protection.
-# Also compile all routines in the static library that are elided from
-# the shared libc because they are in libc.a in the same way.
-
-CFLAGS-.o += $(call elide-stack-protector,.o,$(elide-routines.os))
-CFLAGS-.op += $(call elide-stack-protector,.op,$(elide-routines.os))
-CFLAGS-.os += $(call elide-stack-protector,.os,$(all-rtld-routines))
-
-# Add the requested compiler flags to the early startup code.
-CFLAGS-dl-printf.os += $(rtld-early-cflags)
-CFLAGS-dl-setup_hash.os += $(rtld-early-cflags)
-CFLAGS-dl-sysdep.os += $(rtld-early-cflags)
-CFLAGS-dl-tunables.os += $(rtld-early-cflags)
-CFLAGS-dl-write.os += $(rtld-early-cflags)
-CFLAGS-dl-writev.os += $(rtld-early-cflags)
-CFLAGS-rtld.os += $(rtld-early-cflags)
-
-ifeq ($(unwind-find-fde),yes)
-routines += unwind-dw2-fde-glibc
-shared-only-routines += unwind-dw2-fde-glibc
-endif
-
-before-compile += $(objpfx)trusted-dirs.h
-generated += trusted-dirs.h trusted-dirs.st for-renamed/renamed.so
-generated-dirs += for-renamed
-
-ifeq ($(build-shared),yes)
-ld-map = $(common-objpfx)ld.map
-endif
-
-ifeq (yes,$(build-shared))
-extra-objs = \
- $(all-rtld-routines:%=%.os) \
- sofini.os \
- interp.os \
- # extra-objs
-generated += \
- dl-allobjs.os \
- ld.so ldd \
- librtld.os \
- # generated
-install-others = $(inst_rtlddir)/$(rtld-installed-name) $(inst_bindir)/ld.so
-install-bin-script = ldd
-endif
-
-others = sprof sln
-install-bin = sprof
-others-static = sln
-install-rootsbin = sln
-sln-modules := static-stubs
-extra-objs += $(sln-modules:=.o)
-
-ifeq (yes,$(use-ldconfig))
-ifeq (yes,$(build-shared))
-others-static += ldconfig
-others += ldconfig
-install-rootsbin += ldconfig
-
-ldconfig-modules := \
- cache \
- chroot_canon \
- readlib \
- static-stubs \
- stringtable \
- xmalloc \
- xstrdup \
- # ldconfig-modules
-extra-objs += $(ldconfig-modules:=.o)
-others-extras = $(ldconfig-modules)
-endif
-endif
-
-# To find xmalloc.c and xstrdup.c
-vpath %.c ../locale/programs
-
-ifeq ($(build-shared),yes)
-extra-objs += sotruss-lib.os sotruss-lib.so
-install-others += $(inst_auditdir)/sotruss-lib.so
-install-bin-script += sotruss
-generated += sotruss
-libof-sotruss-lib = extramodules
-LDFLAGS-sotruss-lib.so += $(z-now-$(bind-now))
-$(objpfx)sotruss-lib.so: $(objpfx)sotruss-lib.os
- $(build-module-asneeded)
-$(objpfx)sotruss-lib.so: $(common-objpfx)libc.so $(objpfx)ld.so \
- $(common-objpfx)libc_nonshared.a
-
-$(objpfx)sotruss: sotruss.sh $(common-objpfx)config.make
- sed -e 's%@VERSION@%$(version)%g' \
- -e 's%@TEXTDOMAINDIR@%$(localedir)%g' \
- -e 's%@PREFIX@%$(prefix)%g' \
- -e 's|@PKGVERSION@|$(PKGVERSION)|g' \
- -e 's|@REPORT_BUGS_TO@|$(REPORT_BUGS_TO)|g' \
- < $< > $@.new
- chmod 555 $@.new
- mv -f $@.new $@
-$(inst_auditdir)/sotruss-lib.so: $(objpfx)sotruss-lib.so $(+force)
- $(do-install-program)
-endif
-
-tests-static-normal := \
- tst-array1-static \
- tst-array5-static \
- tst-dl-iter-static \
- tst-dst-static \
- tst-env-setuid \
- tst-env-setuid-tunables \
- tst-getauxval-static \
- tst-linkall-static \
- tst-single_threaded-pthread-static \
- tst-single_threaded-static \
- tst-tls-allocation-failure-static \
- tst-tlsalign-extern-static \
- tst-tlsalign-static \
- # tests-static-normal
-
-tests-static-internal := \
- tst-dl_find_object-static \
- tst-ptrguard1-static \
- tst-stackguard1-static \
- tst-tls1-static \
- tst-tls1-static-non-pie \
- # tests-static-internal
-
-CRT-tst-tls1-static-non-pie := $(csu-objpfx)crt1.o
-tst-tls1-static-non-pie-no-pie = yes
-
-tests-container := \
- tst-ldconfig-bad-aux-cache \
- tst-ldconfig-ld_so_conf-update \
- # tests-container
-
-ifeq (no,$(build-hardcoded-path-in-tests))
-# This is an ld.so.cache test, and RPATH/RUNPATH in the executable
-# interferes with its test objectives.
-tests-container += tst-glibc-hwcaps-prepend-cache
-endif
-
-tests := \
- tst-array1 \
- tst-array2 \
- tst-array3 \
- tst-array4 \
- tst-array5 \
- tst-auxv \
- tst-dl-hash \
- tst-leaks1 \
- tst-stringtable \
- tst-tls9 \
- # tests
-
-tests-internal := \
- $(tests-static-internal) \
- tst-tls1 \
- # tests-internal
-
-tests-static := $(tests-static-normal) $(tests-static-internal)
-
-ifeq (yes,$(build-shared))
-tests-static += \
- tst-single_threaded-static-dlopen \
- tst-tls9-static \
- # tests-static
-
-static-dlopen-environment = \
- LD_LIBRARY_PATH=$(ld-library-path):$(common-objpfx)dlfcn
-tst-tls9-static-ENV = $(static-dlopen-environment)
-tst-single_threaded-static-dlopen-ENV = $(static-dlopen-environment)
-
-tests += \
- argv0test \
- constload1 \
- dblload \
- dblunload \
- filter \
- global \
- initfirst \
- lateglobal \
- loadfail \
- multiload \
- next \
- nodelete \
- nodelete2 \
- nodlopen \
- nodlopen2 \
- noload \
- order \
- order2 \
- origtest \
- preloadtest \
- reldep \
- reldep2 \
- reldep3 \
- reldep4 \
- reldep5 \
- reldep6 \
- reldep7 \
- reldep8 \
- resolvfail \
- restest1 \
- restest2 \
- tst-absolute-sym \
- tst-absolute-zero \
- tst-addr1 \
- tst-align \
- tst-align2 \
- tst-align3 \
- tst-audit1 \
- tst-audit2 \
- tst-audit8 \
- tst-audit9 \
- tst-audit11 \
- tst-audit12 \
- tst-audit13 \
- tst-audit17 \
- tst-audit18 \
- tst-audit19b \
- tst-audit20 \
- tst-audit21 \
- tst-audit22 \
- tst-audit23 \
- tst-audit24a \
- tst-audit24b \
- tst-audit24c \
- tst-audit24d \
- tst-audit25a \
- tst-audit25b \
- tst-audit28 \
- tst-auditmany \
- tst-auxobj \
- tst-auxobj-dlopen \
- tst-big-note \
- tst-debug1 \
- tst-deep1 \
- tst-dl-is_dso \
- tst-dlmodcount \
- tst-dlmopen1 \
- tst-dlmopen3 \
- tst-dlmopen4 \
- tst-dlmopen-dlerror \
- tst-dlmopen-gethostbyname \
- tst-dlmopen-twice \
- tst-dlopenfail \
- tst-dlopenfail-2 \
- tst-dlopenrpath \
- tst-dlopen-self \
- tst-dlopen-tlsmodid \
- tst-dlsym-error \
- tst-filterobj \
- tst-filterobj-dlopen \
- tst-glibc-hwcaps \
- tst-glibc-hwcaps-mask \
- tst-glibc-hwcaps-prepend \
- tst-global1 \
- tst-global2 \
- tst-initfinilazyfail \
- tst-initorder \
- tst-initorder2 \
- tst-latepthread \
- tst-main1 \
- tst-next-ver \
- tst-nodelete2 \
- tst-nodelete-dlclose \
- tst-nodelete-opened \
- tst-noload \
- tst-null-argv \
- tst-p_align1 \
- tst-p_align2 \
- tst-p_align3 \
- tst-relsort1 \
- tst-ro-dynamic \
- tst-rtld-run-static \
- tst-single_threaded \
- tst-single_threaded-pthread \
- tst-sonamemove-dlopen \
- tst-sonamemove-link \
- tst-thrlock \
- tst-tls10 \
- tst-tls11 \
- tst-tls12 \
- tst-tls13 \
- tst-tls14 \
- tst-tls15 \
- tst-tls16 \
- tst-tls17 \
- tst-tls18 \
- tst-tls19 \
- tst-tls20 \
- tst-tls21 \
- tst-tls4 \
- tst-tls5 \
- tst-tlsalign \
- tst-tlsalign-extern \
- tst-tls-dlinfo \
- tst-tls-ie \
- tst-tls-ie-dlmopen \
- tst-tls-manydynamic \
- tst-unique1 \
- tst-unique2 \
- tst-unwind-ctor \
- tst-unwind-main \
- unload3 \
- unload4 \
- unload5 \
- unload6 \
- unload7 \
- unload8 \
- valgrind-test \
- # tests
-tests-cxx = \
- tst-dlopen-nodelete-reloc \
- tst-nodelete \
- tst-unique3 \
- tst-unique4 \
- # tests-cxx
-
-tests += $(if $(CXX),$(tests-cxx))
-
-tests-internal += \
- circleload1 \
- loadtest \
- neededtest \
- neededtest2 \
- neededtest3 \
- neededtest4 \
- tst-audit19a \
- tst-create_format1 \
- tst-dl-hwcaps_split \
- tst-dl_find_object \
- tst-dl_find_object-threads \
- tst-dlmopen2 \
- tst-ptrguard1 \
- tst-stackguard1 \
- tst-tls-surplus \
- tst-tls3 \
- tst-tls6 \
- tst-tls7 \
- tst-tls8 \
- unload \
- unload2 \
- # tests-internal
-
-tests-container += \
- tst-dlopen-self-container \
- tst-dlopen-tlsmodid-container \
- tst-pldd \
- tst-preload-pthread-libc \
- # tests-container
-
-test-srcs = \
- tst-pathopt \
- # tests-srcs
-
-ifeq (yes,$(have-fpie))
-tests-pie += tst-align3
-endif
-selinux-enabled := $(shell cat /selinux/enforce 2> /dev/null)
-
-ifneq ($(selinux-enabled),1)
-tests-execstack-yes = \
- tst-execstack \
- tst-execstack-needed \
- tst-execstack-prog \
- # tests-execstack-yes
-endif
-ifeq ($(have-depaudit),yes)
-tests += \
- tst-audit14 \
- tst-audit14a \
- tst-audit15 \
- tst-audit16 \
- # tests
-ifeq ($(run-built-tests),yes)
-tests-special += \
- $(objpfx)tst-audit14-cmp.out \
- $(objpfx)tst-audit14a-cmp.out \
- $(objpfx)tst-audit15-cmp.out \
- $(objpfx)tst-audit16-cmp.out \
- # tests-special
-endif
-endif
-ifeq ($(have-dt-relr),yes)
-tests += \
- tst-relr \
- tst-relr2 \
- tst-relr3 \
- tst-relr4 \
-# tests
-modules-names-dt-relr = \
- tst-relr-mod2 \
- tst-relr-mod3a \
- tst-relr-mod3b \
- tst-relr-mod4a \
- tst-relr-mod4b \
-# modules-names-dt-relr
-modules-names += $(modules-names-dt-relr)
-# These shared libraries have special build rules.
-modules-names-nobuild += $(modules-names-dt-relr)
-ifeq ($(have-fpie),yes)
-tests += \
- tst-relr-pie \
-# tests
-tests-pie += \
- tst-relr-pie \
-# tests-pie
-tests-special += \
- $(objpfx)check-tst-relr-pie.out \
-# tests-special
-endif
-CFLAGS-tst-relr-pie.c += $(pie-ccflag)
-LDFLAGS-tst-relr += -Wl,-z,pack-relative-relocs
-LDFLAGS-tst-relr-pie += -Wl,-z,pack-relative-relocs
-CFLAGS-tst-relr-mod2.c += $(no-stack-protector)
-CFLAGS-tst-relr-mod3a.c += $(no-stack-protector)
-CFLAGS-tst-relr-mod3b.c += $(no-stack-protector)
-CFLAGS-tst-relr-mod4a.c += $(no-stack-protector)
-CFLAGS-tst-relr-mod4b.c += $(no-stack-protector)
-endif
-endif
-
-tests-special += $(objpfx)tst-relro-ldso.out $(objpfx)tst-relro-libc.out
-$(objpfx)tst-relro-ldso.out: tst-relro-symbols.py $(..)/scripts/glibcelf.py \
- $(objpfx)ld.so
- $(PYTHON) tst-relro-symbols.py $(objpfx)ld.so \
- --required=_rtld_global_ro \
- > $@ 2>&1; $(evaluate-test)
-# The optional symbols are present in libc only if the architecture has
-# the GLIBC_2.0 symbol set in libc.
-$(objpfx)tst-relro-libc.out: tst-relro-symbols.py $(..)/scripts/glibcelf.py \
- $(common-objpfx)libc.so
- $(PYTHON) tst-relro-symbols.py $(common-objpfx)libc.so \
- --required=_IO_cookie_jumps \
- --required=_IO_file_jumps \
- --required=_IO_file_jumps_maybe_mmap \
- --required=_IO_file_jumps_mmap \
- --required=_IO_helper_jumps \
- --required=_IO_mem_jumps \
- --required=_IO_obstack_jumps \
- --required=_IO_proc_jumps \
- --required=_IO_str_chk_jumps \
- --required=_IO_str_jumps \
- --required=_IO_strn_jumps \
- --required=_IO_wfile_jumps \
- --required=_IO_wfile_jumps_maybe_mmap \
- --required=_IO_wfile_jumps_mmap \
- --required=_IO_wmem_jumps \
- --required=_IO_wstr_jumps \
- --required=_IO_wstrn_jumps \
- --optional=_IO_old_cookie_jumps \
- --optional=_IO_old_file_jumps \
- --optional=_IO_old_proc_jumps \
- > $@ 2>&1; $(evaluate-test)
-
-ifeq ($(run-built-tests),yes)
-tests-special += $(objpfx)tst-valgrind-smoke.out
-endif
-$(objpfx)tst-valgrind-smoke.out: tst-valgrind-smoke.sh $(objpfx)ld.so $(objpfx)valgrind-test
- $(SHELL) $< $(objpfx)ld.so $(rtlddir)/$(rtld-installed-name) '$(test-wrapper-env)' \
- '$(run-program-env)' '$(rpath-link)' $(objpfx)valgrind-test > $@; $(evaluate-test)
-
-tests += $(tests-execstack-$(have-z-execstack))
-ifeq ($(run-built-tests),yes)
-tests-special += \
- $(objpfx)noload-mem.out \
- $(objpfx)tst-ldconfig-X.out \
- $(objpfx)tst-leaks1-mem.out \
- $(objpfx)tst-rtld-help.out \
- # tests-special
-endif
-tlsmod17a-suffixes = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
-tlsmod18a-suffixes = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
-tlsmod17a-modules = $(addprefix tst-tlsmod17a, $(tlsmod17a-suffixes))
-tlsmod18a-modules = $(addprefix tst-tlsmod18a, $(tlsmod17a-suffixes))
-one-hundred = $(foreach x,0 1 2 3 4 5 6 7 8 9, \
- 0$x 1$x 2$x 3$x 4$x 5$x 6$x 7$x 8$x 9$x)
-tst-tls-many-dynamic-modules := \
- $(foreach n,$(one-hundred),tst-tls-manydynamic$(n)mod)
-tst-tls-many-dynamic-modules-dep-suffixes = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 \
- 14 15 16 17 18 19
-tst-tls-many-dynamic-modules-dep = \
- $(foreach n,$(tst-tls-many-dynamic-modules-dep-suffixes),tst-tls-manydynamic$(n)mod-dep)
-tst-tls-many-dynamic-modules-dep-bad-suffixes = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
-tst-tls-many-dynamic-modules-dep-bad = \
- $(foreach n,$(tst-tls-many-dynamic-modules-dep-bad-suffixes),tst-tls-manydynamic$(n)mod-dep-bad)
-extra-test-objs += \
- $(tlsmod17a-modules:=.os) \
- $(tlsmod18a-modules:=.os) \
- tst-tlsalign-vars.o \
- # extra-test-objs
-test-extras += \
- tst-tlsalign-vars \
- tst-tlsmod17a \
- tst-tlsmod18a \
- # test-extras
-modules-names += \
- circlemod1 \
- circlemod1a \
- circlemod2 \
- circlemod2a \
- circlemod3 \
- circlemod3a \
- constload2 \
- constload3 \
- dblloadmod1 \
- dblloadmod2 \
- dblloadmod3 \
- dep1 \
- dep2 \
- dep3 \
- dep4 \
- failobj \
- filtmod1 \
- filtmod2 \
- firstobj \
- globalmod1 \
- libmarkermod1-1 \
- libmarkermod1-2 \
- libmarkermod1-3 \
- libmarkermod2-1 \
- libmarkermod2-2 \
- libmarkermod3-1 \
- libmarkermod3-2 \
- libmarkermod3-3 \
- libmarkermod4-1 \
- libmarkermod4-2 \
- libmarkermod4-3 \
- libmarkermod4-4 \
- libmarkermod5-1 \
- libmarkermod5-2 \
- libmarkermod5-3 \
- libmarkermod5-4 \
- libmarkermod5-5 \
- libtracemod1-1 \
- libtracemod2-1 \
- libtracemod3-1 \
- libtracemod4-1 \
- libtracemod5-1 \
- ltglobmod1 \
- ltglobmod2 \
- neededobj1 \
- neededobj2 \
- neededobj3 \
- neededobj4 \
- neededobj5 \
- neededobj6 \
- nextmod1 \
- nextmod2 \
- nextmod3 \
- nodel2mod1 \
- nodel2mod2 \
- nodel2mod3 \
- nodelmod1 \
- nodelmod2 \
- nodelmod3 \
- nodelmod4 \
- nodlopenmod \
- nodlopenmod2 \
- order2mod1 \
- order2mod2 \
- order2mod3 \
- order2mod4 \
- pathoptobj \
- reldep4mod1 \
- reldep4mod2 \
- reldep4mod3 \
- reldep4mod4 \
- reldep6mod0 \
- reldep6mod1 \
- reldep6mod2 \
- reldep6mod3 \
- reldep6mod4 \
- reldep7mod1 \
- reldep7mod2 \
- reldep8mod1 \
- reldep8mod2 \
- reldep8mod3 \
- reldep9mod1 \
- reldep9mod2 \
- reldep9mod3 \
- reldepmod1 \
- reldepmod2 \
- reldepmod3 \
- reldepmod4 \
- reldepmod5 \
- reldepmod6 \
- testobj1 \
- testobj1_1 \
- testobj2 \
- testobj3 \
- testobj4 \
- testobj5 \
- testobj6 \
- tst-absolute-sym-lib \
- tst-absolute-zero-lib \
- tst-alignmod \
- tst-alignmod2 \
- tst-alignmod3 \
- tst-array2dep \
- tst-array5dep \
- tst-audit11mod1 \
- tst-audit11mod2 \
- tst-audit12mod1 \
- tst-audit12mod2 \
- tst-audit12mod3 \
- tst-audit13mod1 \
- tst-audit18mod \
- tst-audit19bmod \
- tst-audit23mod \
- tst-audit24amod1 \
- tst-audit24amod2 \
- tst-audit24bmod1 \
- tst-audit24bmod2 \
- tst-audit24dmod1 \
- tst-audit24dmod2 \
- tst-audit24dmod3 \
- tst-audit24dmod4 \
- tst-audit25mod1 \
- tst-audit25mod2 \
- tst-audit25mod3 \
- tst-audit25mod4 \
- tst-auditlogmod-1 \
- tst-auditlogmod-2 \
- tst-auditlogmod-3 \
- tst-auditmanymod1 \
- tst-auditmanymod2 \
- tst-auditmanymod3 \
- tst-auditmanymod4 \
- tst-auditmanymod5 \
- tst-auditmanymod6 \
- tst-auditmanymod7 \
- tst-auditmanymod8 \
- tst-auditmanymod9 \
- tst-auditmod1 \
- tst-auditmod9a \
- tst-auditmod9b \
- tst-auditmod11 \
- tst-auditmod12 \
- tst-auditmod18 \
- tst-auditmod19a \
- tst-auditmod19b \
- tst-auditmod20 \
- tst-auditmod21a \
- tst-auditmod21b \
- tst-auditmod22 \
- tst-auditmod23 \
- tst-auditmod24a \
- tst-auditmod24b \
- tst-auditmod24c \
- tst-auditmod24d \
- tst-auditmod25 \
- tst-auditmod28 \
- tst-auxvalmod \
- tst-big-note-lib \
- tst-deep1mod1 \
- tst-deep1mod2 \
- tst-deep1mod3 \
- tst-dl_find_object-mod1 \
- tst-dl_find_object-mod2 \
- tst-dl_find_object-mod3 \
- tst-dl_find_object-mod4 \
- tst-dl_find_object-mod5 \
- tst-dl_find_object-mod6 \
- tst-dl_find_object-mod7 \
- tst-dl_find_object-mod8 \
- tst-dl_find_object-mod9 \
- tst-dlmopen1mod \
- tst-dlmopen-dlerror-mod \
- tst-dlmopen-gethostbyname-mod \
- tst-dlmopen-twice-mod1 \
- tst-dlmopen-twice-mod2 \
- tst-dlopenfaillinkmod \
- tst-dlopenfailmod1 \
- tst-dlopenfailmod2 \
- tst-dlopenfailmod3 \
- tst-dlopenfailnodelmod \
- tst-dlopenrpathmod \
- tst-filterobj-aux \
- tst-filterobj-filtee \
- tst-filterobj-flt \
- tst-finilazyfailmod \
- tst-globalmod2 \
- tst-initlazyfailmod \
- tst-initorder2a \
- tst-initorder2b \
- tst-initorder2c \
- tst-initorder2d \
- tst-initordera1 \
- tst-initordera2 \
- tst-initordera3 \
- tst-initordera4 \
- tst-initorderb1 \
- tst-initorderb2 \
- tst-latepthreadmod \
- tst-ldconfig-ld-mod \
- tst-main1mod \
- tst-nodelete2mod \
- tst-nodelete-dlclose-dso \
- tst-nodelete-dlclose-plugin \
- tst-nodelete-opened-lib \
- tst-null-argv-lib \
- tst-p_alignmod-base \
- tst-p_alignmod3 \
- tst-relsort1mod1 \
- tst-relsort1mod2 \
- tst-ro-dynamic-mod \
- tst-single_threaded-mod1 \
- tst-single_threaded-mod2 \
- tst-single_threaded-mod3 \
- tst-single_threaded-mod4 \
- tst-sonamemove-linkmod1 \
- tst-sonamemove-runmod1 \
- tst-sonamemove-runmod2 \
- tst-tls19mod1 \
- tst-tls19mod2 \
- tst-tls19mod3 \
- tst-tls20mod-bad \
- tst-tls21mod \
- tst-tlsalign-lib \
- tst-tls-ie-mod0 \
- tst-tls-ie-mod1 \
- tst-tls-ie-mod2 \
- tst-tls-ie-mod3 \
- tst-tls-ie-mod4 \
- tst-tls-ie-mod5 \
- tst-tls-ie-mod6 \
- tst-tlsmod1 \
- tst-tlsmod10 \
- tst-tlsmod11 \
- tst-tlsmod12 \
- tst-tlsmod13 \
- tst-tlsmod13a \
- tst-tlsmod14a \
- tst-tlsmod14b \
- tst-tlsmod15a \
- tst-tlsmod15b \
- tst-tlsmod16a \
- tst-tlsmod16b \
- tst-tlsmod17b \
- tst-tlsmod2 \
- tst-tlsmod3 \
- tst-tlsmod4 \
- tst-tlsmod5 \
- tst-tlsmod6 \
- tst-tlsmod7 \
- tst-tlsmod8 \
- tst-tlsmod9 \
- tst-unique1mod1 \
- tst-unique1mod2 \
- tst-unique2mod1 \
- tst-unique2mod2 \
- tst-unwind-ctor-lib \
- unload2dep \
- unload2mod \
- unload3mod1 \
- unload3mod2 \
- unload3mod3 \
- unload3mod4 \
- unload4mod1 \
- unload4mod2 \
- unload4mod3 \
- unload4mod4 \
- unload6mod1 \
- unload6mod2 \
- unload6mod3 \
- unload7mod1 \
- unload7mod2 \
- unload8mod1 \
- unload8mod1x \
- unload8mod2 \
- unload8mod3 \
- unloadmod \
- vismod1 \
- vismod2 \
- vismod3 \
-# modules-names
-
-modules-names-cxx = \
- tst-dlopen-nodelete-reloc-mod1 \
- tst-dlopen-nodelete-reloc-mod10 \
- tst-dlopen-nodelete-reloc-mod11 \
- tst-dlopen-nodelete-reloc-mod12 \
- tst-dlopen-nodelete-reloc-mod13 \
- tst-dlopen-nodelete-reloc-mod14 \
- tst-dlopen-nodelete-reloc-mod15 \
- tst-dlopen-nodelete-reloc-mod16 \
- tst-dlopen-nodelete-reloc-mod17 \
- tst-dlopen-nodelete-reloc-mod2 \
- tst-dlopen-nodelete-reloc-mod3 \
- tst-dlopen-nodelete-reloc-mod4 \
- tst-dlopen-nodelete-reloc-mod5 \
- tst-dlopen-nodelete-reloc-mod6 \
- tst-dlopen-nodelete-reloc-mod7 \
- tst-dlopen-nodelete-reloc-mod8 \
- tst-dlopen-nodelete-reloc-mod9 \
- tst-nodelete-rtldmod \
- tst-nodelete-uniquemod \
- tst-nodelete-zmod \
- tst-unique3lib \
- tst-unique3lib2 \
- tst-unique4lib \
- # modules-names-cxx
-
-modules-names += \
- $(if $(CXX),$(modules-names-cxx)) \
- $(modules-execstack-$(have-z-execstack)) \
- $(tlsmod17a-modules) \
- $(tlsmod18a-modules) \
- $(tst-tls-many-dynamic-modules) \
- $(tst-tls-many-dynamic-modules-dep) \
- $(tst-tls-many-dynamic-modules-dep-bad) \
- # modules-names
-
-# Most modules build with _ISOMAC defined, but those filtered out
-# depend on internal headers.
-modules-names-tests = $(filter-out ifuncmod% tst-tlsmod%,\
- $(modules-names))
-
-# For +depfiles in Makerules.
-extra-test-objs += tst-auditmod17.os
-
-ifeq (yes,$(have-mtls-dialect-gnu2))
-tests += tst-gnu2-tls1
-modules-names += tst-gnu2-tls1mod
-$(objpfx)tst-gnu2-tls1: $(objpfx)tst-gnu2-tls1mod.so
-tst-gnu2-tls1mod.so-no-z-defs = yes
-CFLAGS-tst-gnu2-tls1mod.c += -mtls-dialect=gnu2
-
-tests += tst-audit-tlsdesc tst-audit-tlsdesc-dlopen
-modules-names += tst-audit-tlsdesc-mod1 tst-audit-tlsdesc-mod2 tst-auditmod-tlsdesc
-$(objpfx)tst-audit-tlsdesc: $(objpfx)tst-audit-tlsdesc-mod1.so \
- $(objpfx)tst-audit-tlsdesc-mod2.so \
- $(shared-thread-library)
-CFLAGS-tst-audit-tlsdesc-mod1.c += -mtls-dialect=gnu2
-CFLAGS-tst-audit-tlsdesc-mod2.c += -mtls-dialect=gnu2
-$(objpfx)tst-audit-tlsdesc-dlopen: $(shared-thread-library)
-$(objpfx)tst-audit-tlsdesc-dlopen.out: $(objpfx)tst-audit-tlsdesc-mod1.so \
- $(objpfx)tst-audit-tlsdesc-mod2.so
-$(objpfx)tst-audit-tlsdesc-mod1.so: $(objpfx)tst-audit-tlsdesc-mod2.so
-$(objpfx)tst-audit-tlsdesc.out: $(objpfx)tst-auditmod-tlsdesc.so
-tst-audit-tlsdesc-ENV = LD_AUDIT=$(objpfx)tst-auditmod-tlsdesc.so
-$(objpfx)tst-audit-tlsdesc-dlopen.out: $(objpfx)tst-auditmod-tlsdesc.so
-tst-audit-tlsdesc-dlopen-ENV = LD_AUDIT=$(objpfx)tst-auditmod-tlsdesc.so
-endif
-ifeq (yes,$(have-protected-data))
-modules-names += tst-protected1moda tst-protected1modb
-tests += tst-protected1a tst-protected1b
-$(objpfx)tst-protected1a: $(addprefix $(objpfx),tst-protected1moda.so tst-protected1modb.so)
-$(objpfx)tst-protected1b: $(addprefix $(objpfx),tst-protected1modb.so tst-protected1moda.so)
-tst-protected1modb.so-no-z-defs = yes
-# These tests fail with GCC versions prior to 5.1 and with some versions
-# of binutils. See https://sourceware.org/bugzilla/show_bug.cgi?id=17709
-# and https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65248 for details.
-# Perhaps in future we can make these XFAILs conditional on some detection
-# of compiler/linker behavior/version.
-test-xfail-tst-protected1a = yes
-test-xfail-tst-protected1b = yes
-endif
-ifeq (yesyes,$(have-fpie)$(build-shared))
-modules-names += tst-piemod1
-tests += tst-pie1 tst-pie2 tst-dlopen-pie tst-dlopen-tlsmodid-pie \
- tst-dlopen-self-pie
-tests-pie += tst-pie1 tst-pie2 tst-dlopen-tlsmodid-pie tst-dlopen-self-pie
-ifeq (yes,$(have-protected-data))
-tests += vismain
-tests-pie += vismain
-CFLAGS-vismain.c += $(PIE-ccflag)
-endif
-endif
-modules-execstack-yes = tst-execstack-mod
-extra-test-objs += $(addsuffix .os,$(strip $(modules-names)))
-
-# filtmod1.so, tst-big-note-lib.so, tst-ro-dynamic-mod.so have special
-# rules.
-modules-names-nobuild += \
- filtmod1 \
- tst-audit24bmod1 \
- tst-audit24bmod2 \
- tst-big-note-lib \
- tst-ro-dynamic-mod \
-# modules-names-nobuild
-
-tests += $(tests-static)
-
-ifeq (yes,$(have-ifunc))
-tests-ifuncstatic := \
- ifuncmain1static \
- ifuncmain1picstatic \
- ifuncmain2static \
- ifuncmain2picstatic \
- ifuncmain4static \
- ifuncmain4picstatic \
- ifuncmain5static \
- ifuncmain5picstatic \
- ifuncmain7static \
- ifuncmain7picstatic \
- # tests-ifuncstatic
-ifeq (yes,$(have-gcc-ifunc))
-tests-ifuncstatic += ifuncmain9static ifuncmain9picstatic
-endif
-tests-static += $(tests-ifuncstatic)
-tests-internal += $(tests-ifuncstatic)
-ifeq (yes,$(build-shared))
-tests += \
- tst-ifunc-fault-bindnow \
- tst-ifunc-fault-lazy \
- # tests
-# Note: sysdeps/x86_64/ifuncmain8.c uses ifuncmain8.
-tests-internal += \
- ifuncmain1pic \
- ifuncmain1staticpic \
- ifuncmain1vis \
- ifuncmain1vispic \
- ifuncmain2 \
- ifuncmain2pic \
- ifuncmain3 \
- ifuncmain4 \
- ifuncmain5staticpic \
- ifuncmain7 \
- ifuncmain7pic \
- # tests-internal
-ifeq (no,$(with-lld))
-tests-internal += \
- ifuncmain1 \
- ifuncmain5 \
- ifuncmain5pic \
- # tests-internal
-endif
-ifeq (yes,$(have-gcc-ifunc))
-tests-internal += \
- ifuncmain9 \
- ifuncmain9pic \
- # tests-internal
-endif
-ifunc-test-modules = \
- ifuncdep1 \
- ifuncdep1pic \
- ifuncdep2 \
- ifuncdep2pic \
- ifuncdep5 \
- ifuncdep5pic \
- # ifunc-test-modules
-extra-test-objs += $(ifunc-test-modules:=.o)
-test-internal-extras += $(ifunc-test-modules)
-ifeq (yes,$(have-fpie))
-ifunc-pie-tests = \
- ifuncmain1pie \
- ifuncmain1staticpie \
- ifuncmain1vispie \
- ifuncmain6pie \
- ifuncmain7pie \
- # ifunc-pie-tests
-ifeq (yes,$(have-gcc-ifunc))
-ifunc-pie-tests += ifuncmain9pie
-endif
-ifeq (no,$(with-lld))
-ifunc-pie-tests += ifuncmain5pie
-endif
-ifeq (yes,$(have-textrel_ifunc))
-ifunc-pie-tests += tst-ifunc-textrel
-endif
-tests-internal += $(ifunc-pie-tests)
-tests-pie += $(ifunc-pie-tests)
-endif
-modules-names += \
- ifuncmod1 \
- ifuncmod3 \
- ifuncmod6 \
- # module-names
-ifeq (no,$(with-lld))
-modules-names += ifuncmod5
-endif
-endif
-endif
-
-ifeq (yes,$(build-shared))
-ifeq ($(run-built-tests),yes)
-tests-special += \
- $(objpfx)argv0test.out \
- $(objpfx)tst-pathopt.out \
- $(objpfx)tst-rtld-help.out \
- $(objpfx)tst-rtld-load-self.out \
- $(objpfx)tst-rtld-preload.out \
- # tests-special
-endif
-tests-special += \
- $(objpfx)check-execstack.out \
- $(objpfx)check-initfini.out \
- $(objpfx)check-localplt.out \
- $(objpfx)check-textrel.out \
- $(objpfx)check-wx-segment.out \
- # tests-special
-endif
-
-ifeq ($(run-built-tests),yes)
-tests-special += \
- $(objpfx)order-cmp.out \
- $(objpfx)order2-cmp.out \
- $(objpfx)tst-array1-cmp.out \
- $(objpfx)tst-array1-static-cmp.out \
- $(objpfx)tst-array2-cmp.out \
- $(objpfx)tst-array3-cmp.out \
- $(objpfx)tst-array4-cmp.out \
- $(objpfx)tst-array5-cmp.out \
- $(objpfx)tst-array5-static-cmp.out \
- $(objpfx)tst-initorder-cmp.out \
- $(objpfx)tst-initorder2-cmp.out \
- $(objpfx)tst-unused-dep-cmp.out \
- $(objpfx)tst-unused-dep.out \
- $(objpfx)tst-trace1.out \
- $(objpfx)tst-trace2.out \
- $(objpfx)tst-trace3.out \
- $(objpfx)tst-trace4.out \
- $(objpfx)tst-trace5.out \
- # tests-special
-endif
-
-ifndef avoid-generated
-# DSO sorting tests:
-# The dso-ordering-test.py script generates testcase source files in $(objpfx),
-# creating a $(objpfx)<testcase-name>-dir for each testcase, and creates a
-# Makefile fragment to be included.
-define include_dsosort_tests
-$(objpfx)$(1).generated-makefile: $(1)
- $(PYTHON) $(..)scripts/dso-ordering-test.py \
- --description-file $$< --objpfx $(objpfx) --output-makefile $$@T
- mv $$@T $$@
--include $(objpfx)$(1).generated-makefile
-endef
-endif
-
-postclean-generated += $(objpfx)/dso-sort-tests-2.generated-makefile \
- $(objpfx)/dso-sort-tests-2.generated-makefile
-
-# Generate from each testcase description file
-ifeq (yes,$(have-tunables))
-$(eval $(call include_dsosort_tests,dso-sort-tests-1.def))
-$(eval $(call include_dsosort_tests,dso-sort-tests-2.def))
-endif
-
-check-abi: $(objpfx)check-abi-ld.out \
- $(objpfx)check-abi-version-libc.out
-tests-special += \
- $(objpfx)check-abi-ld.out \
- $(objpfx)check-abi-version-libc.out \
-# tests-special
-update-abi: update-abi-ld
-update-all-abi: update-all-abi-ld
-
-tests-special += $(objpfx)tst-glibcelf.out
-$(objpfx)tst-glibcelf.out: tst-glibcelf.py elf.h $(..)/scripts/glibcelf.py \
- $(..)/scripts/glibcextract.py
- PYTHONPATH=$(..)scripts $(PYTHON) tst-glibcelf.py \
- --cc="$(CC) $(patsubst -DMODULE_NAME=%,-DMODULE_NAME=testsuite,$(CPPFLAGS))" \
- < /dev/null > $@ 2>&1; $(evaluate-test)
-
-ifeq ($(run-built-tests),yes)
-tests-special += $(objpfx)tst-tls-allocation-failure-static-patched.out
-endif
-
-# The test requires shared _and_ PIE because the executable
-# unit test driver must be able to link with the shared object
-# that is going to eventually go into an installed DSO.
-ifeq (yesyes,$(have-fpie)$(build-shared))
-tests-internal += tst-_dl_addr_inside_object
-tests-pie += tst-_dl_addr_inside_object
-$(objpfx)tst-_dl_addr_inside_object: $(objpfx)dl-addr-obj.os
-CFLAGS-tst-_dl_addr_inside_object.c += $(PIE-ccflag)
-endif
-
-# We can only test static libcrypt use if libcrypt has been built,
-# and either NSS crypto is not in use, or static NSS libraries are
-# available.
-ifeq ($(build-crypt),no)
-CFLAGS-tst-linkall-static.c += -DUSE_CRYPT=0
-else
-ifeq ($(nss-crypt),no)
-CFLAGS-tst-linkall-static.c += -DUSE_CRYPT=1
-else
-ifeq ($(static-nss-crypt),no)
-CFLAGS-tst-linkall-static.c += -DUSE_CRYPT=0
-else
-CFLAGS-tst-linkall-static.c += -DUSE_CRYPT=1
-endif
-endif
-endif
-
-include ../Rules
-
-ifeq (yes,$(build-shared))
-# Make sure these things are built in the `make lib' pass so they can be used
-# to run programs during the `make others' pass.
-lib-noranlib: $(objpfx)$(rtld-installed-name) \
- $(addprefix $(objpfx),$(extra-objs))
-endif
-
-# Command to link into a larger single relocatable object.
-reloc-link = $(LINK.o) -nostdlib -nostartfiles -r
-
-$(objpfx)sotruss-lib.so: $(shlib-lds)
-
-$(objpfx)dl-allobjs.os: $(all-rtld-routines:%=$(objpfx)%.os)
- $(reloc-link) -o $@ $^
-
-# Link together the dynamic linker into a single relocatable object.
-# First we do a link against libc_pic.a just to get a link map,
-# and discard the object produced by that link. From the link map
-# we can glean all the libc modules that need to go into the dynamic
-# linker. Then we do a recursive make that goes into all the subdirs
-# those modules come from and builds special rtld-foo.os versions that
-# are compiled with special flags, and puts these modules into rtld-libc.a
-# for us. Then we do the real link using rtld-libc.a instead of libc_pic.a.
-
-# These symbols need to be stubbed out during symbol discovery because
-# their implementation is provided differently in rtld, and the symbol
-# discovery mechanism is not compatible with the libc implementation
-# when compiled for libc.
-rtld-stubbed-symbols = \
- __GI___pthread_disable_asynccancel \
- __GI___pthread_enable_asynccancel \
- __pthread_disable_asynccancel \
- __pthread_enable_asynccancel \
- calloc \
- free \
- malloc \
- realloc \
- # rtld-stubbed-symbols
-
-ifeq ($(have-ssp),yes)
-# rtld is not built with the stack protector, so these references will
-# go away in the rebuilds.
-rtld-stubbed-symbols += __stack_chk_fail __stack_chk_fail_local
-endif
-
-$(objpfx)librtld.map: $(objpfx)dl-allobjs.os $(common-objpfx)libc_pic.a
- @-rm -f $@T
- for symbol in $(rtld-stubbed-symbols); do \
- echo ".globl $$symbol"; \
- echo "$$symbol:"; \
- done | $(CC) -o $@T.o $(ASFLAGS) -c -x assembler -
- $(reloc-link) -o $@.o $@T.o '-Wl,-(' $^ -lgcc '-Wl,-)' -Wl,-Map,$@T
- rm -f %@T.o $@.o
- mv -f $@T $@
-
-# For lld, skip preceding addresses and values before matching the archive and the member.
-$(objpfx)librtld.mk: $(objpfx)librtld.map Makefile
- LC_ALL=C \
- sed -n 's@^[0-9a-f ]*$(common-objpfx)\([^(]*\)(\([^)]*\.os\)) *.*$$@\1 \2@p' \
- $< | \
- while read lib file; do \
- case $$lib in \
- libc_pic.a) \
- LC_ALL=C grep -F -l /$$file \
- $(common-objpfx)stamp.os $(common-objpfx)*/stamp.os | \
- LC_ALL=C \
- sed 's@^$(common-objpfx)\([^/]*\)/stamp\.os$$@rtld-\1'" +=$$file@"\
- ;; \
- */*.a) \
- echo rtld-$${lib%%/*} += $$file ;; \
- *) echo "Wasn't expecting $$lib($$file)" >&2; exit 1 ;; \
- esac; \
- done > $@T
- echo rtld-subdirs = `LC_ALL=C sed 's/^rtld-\([^ ]*\).*$$/\1/' $@T \
- | LC_ALL=C sort -u` >> $@T
- mv -f $@T $@
-
-$(objpfx)rtld-libc.a: $(objpfx)librtld.mk FORCE
- $(MAKE) -f $< -f rtld-Rules
-
-$(objpfx)librtld.os: $(objpfx)dl-allobjs.os $(objpfx)rtld-libc.a
- $(LINK.o) -nostdlib -nostartfiles -r -o $@ '-Wl,-(' $^ -lgcc '-Wl,-)' \
- -Wl,-Map,$@.map
-
-generated += librtld.map librtld.mk rtld-libc.a librtld.os.map
-
-z-now-yes = -Wl,-z,now
-
-$(objpfx)ld.so: $(objpfx)librtld.os $(ld-map)
-# Link into a temporary file so that we don't touch $@ at all
-# if the sanity check below fails.
- $(LINK.o) -nostdlib -nostartfiles -shared -o $@.new \
- $(LDFLAGS-rtld) -Wl,-z,defs $(z-now-$(bind-now)) \
- $(dt-relr-ldflag) \
- $(filter-out $(map-file),$^) $(load-map-file) \
- -Wl,-soname=$(rtld-installed-name)
- $(call after-link,$@.new)
- $(READELF) -s $@.new \
- | $(AWK) '($$7 ~ /^UND(|EF)$$/ && $$1 != "0:" && $$4 != "REGISTER") { print; p=1 } END { exit p != 0 }'
- mv -f $@.new $@
-
-ifeq (yes,$(build-shared))
-# interp.c exists just to get the runtime linker path into libc.so.
-$(objpfx)interp.os: $(common-objpfx)runtime-linker.h
-endif
-
-ifneq (ld.so,$(rtld-installed-name))
-# Make sure ld.so.1 exists in the build directory so we can link
-# against it.
-$(objpfx)$(rtld-installed-name): $(objpfx)ld.so
- $(make-link)
-generated += $(rtld-installed-name)
-endif
-
-# Build a file mentioning all trustworthy directories to look for shared
-# libraries when using LD_LIBRARY_PATH in a setuid program. The user can
-# add directories to the list by defining $(user-defined-trusted-dirs)
-# before starting make.
-$(objpfx)trusted-dirs.h: $(objpfx)trusted-dirs.st; @:
-$(objpfx)trusted-dirs.st: Makefile $(..)Makeconfig
- $(make-target-directory)
- echo "$(subst :, ,$(default-rpath) $(user-defined-trusted-dirs))" \
- | $(AWK) -f gen-trusted-dirs.awk > ${@:st=T};
- echo '#define DL_DST_LIB "$(notdir $(slibdir))"' >> ${@:st=T}
- $(move-if-change) ${@:st=T} ${@:st=h}
- touch $@
-CPPFLAGS-dl-load.c += -I$(objpfx). -I$(csu-objpfx).
-
-ifeq (yes,$(build-shared))
-$(inst_rtlddir)/$(rtld-installed-name): $(objpfx)ld.so $(+force)
- $(make-target-directory)
- $(do-install-program)
-
-# Creates the relative /usr/bin/ld.so symbolic link.
-$(inst_bindir)/ld.so: $(inst_rtlddir)/$(rtld-installed-name)
- $(make-target-directory)
- $(make-link)
-
-# Special target called by parent to install just the dynamic linker.
-.PHONY: ldso_install
-ldso_install: $(inst_rtlddir)/$(rtld-installed-name)
-endif # $(build-shared)
-
-
-# Workarounds for ${exec_prefix} expansion in configure variables.
-# config.status cannot be used directly for processing ldd.bash.in or
-# expanding variables such as sysconfdir because the expansion
-# contains the literal string ${exec_prefix}, which is not valid in C
-# headers or installed shell scripts.
-
-ldd-rewrite = -e 's%@RTLD@%$(rtlddir)/$(rtld-installed-name)%g' \
- -e 's%@VERSION@%$(version)%g' \
- -e 's|@PKGVERSION@|$(PKGVERSION)|g' \
- -e 's|@REPORT_BUGS_TO@|$(REPORT_BUGS_TO)|g' \
- -e 's%@TEXTDOMAINDIR@%$(localedir)%g'
-
-ifeq ($(ldd-rewrite-script),no)
-define gen-ldd
-LC_ALL=C sed $(ldd-rewrite) < $< > $@.new
-endef
-else
-define gen-ldd
-LC_ALL=C sed $(ldd-rewrite) < $< \
-| LC_ALL=C sed -f $(patsubst $(..)/%,/%,$(..)$(ldd-rewrite-script)) > $@.new
-endef
-endif
-
-$(objpfx)ldd: ldd.bash.in $(common-objpfx)soversions.mk \
- $(common-objpfx)config.make
- $(gen-ldd)
- chmod 555 $@.new
- mv -f $@.new $@
-
-$(objpfx)sln: $(sln-modules:%=$(objpfx)%.o)
-
-$(objpfx)ldconfig: $(ldconfig-modules:%=$(objpfx)%.o)
-
-SYSCONF-FLAGS := -D'SYSCONFDIR="$(sysconfdir)"'
-CFLAGS-ldconfig.c += $(SYSCONF-FLAGS) -D'LIBDIR="$(libdir)"' \
- -D'SLIBDIR="$(slibdir)"'
-libof-ldconfig = ldconfig
-CFLAGS-dl-cache.c += $(SYSCONF-FLAGS)
-CFLAGS-cache.c += $(SYSCONF-FLAGS)
-CFLAGS-rtld.c += $(SYSCONF-FLAGS)
-CFLAGS-dl-usage.c += $(SYSCONF-FLAGS) \
- -D'RTLD="$(rtlddir)/$(rtld-installed-name)"'
-CFLAGS-dl-diagnostics.c += $(SYSCONF-FLAGS) \
- -D'PREFIX="$(prefix)"' \
- -D'RTLD="$(rtlddir)/$(rtld-installed-name)"'
-
-cpp-srcs-left := $(all-rtld-routines:=.os)
-lib := rtld
-include $(patsubst %,$(..)libof-iterator.mk,$(cpp-srcs-left))
-
-test-modules = $(addprefix $(objpfx),$(addsuffix .so,$(strip $(modules-names))))
-generated += $(addsuffix .so,$(strip $(modules-names)))
-
-$(objpfx)testobj1_1.so: $(objpfx)testobj1.so
-$(objpfx)testobj2.so: $(objpfx)testobj1.so
-$(objpfx)testobj6.so: $(objpfx)testobj1.so $(objpfx)testobj2.so
-$(objpfx)failobj.so: $(objpfx)testobj6.so
-$(objpfx)dep1.so: $(objpfx)dep2.so $(objpfx)dep4.so
-$(objpfx)dep2.so: $(objpfx)dep3.so $(objpfx)dep4.so
-$(objpfx)dep4.so: $(objpfx)dep3.so
-$(objpfx)nodelmod3.so: $(objpfx)nodelmod4.so
-$(objpfx)neededobj2.so: $(objpfx)neededobj1.so
-$(objpfx)neededobj3.so: $(objpfx)neededobj1.so $(objpfx)neededobj2.so
-$(objpfx)neededobj4.so: $(objpfx)neededobj1.so $(objpfx)neededobj2.so \
- $(objpfx)neededobj3.so
-$(objpfx)neededobj6.so: $(objpfx)neededobj5.so
-$(objpfx)unload2mod.so: $(objpfx)unload2dep.so
-$(objpfx)firstobj.so: $(shared-thread-library)
-$(objpfx)reldep4mod1.so: $(objpfx)reldep4mod3.so
-$(objpfx)reldep4mod2.so: $(objpfx)reldep4mod4.so
-$(objpfx)dblloadmod1.so: $(objpfx)dblloadmod3.so
-$(objpfx)dblloadmod2.so: $(objpfx)dblloadmod3.so
-$(objpfx)reldepmod5.so: $(objpfx)reldepmod2.so
-$(objpfx)reldepmod6.so: $(objpfx)reldepmod2.so
-$(objpfx)reldep6mod1.so: $(objpfx)reldep6mod0.so
-$(objpfx)reldep6mod2.so: $(objpfx)reldep6mod1.so
-$(objpfx)reldep6mod3.so: $(objpfx)reldep6mod2.so
-$(objpfx)reldep6mod4.so: $(objpfx)reldep6mod1.so
-$(objpfx)tst-tlsmod3.so: $(objpfx)tst-tlsmod2.so
-$(objpfx)tst-tlsmod8.so: $(objpfx)tst-tlsmod7.so
-$(objpfx)tst-tlsmod10.so: $(objpfx)tst-tlsmod9.so
-$(objpfx)tst-tlsmod12.so: $(objpfx)tst-tlsmod11.so
-$(objpfx)tst-tlsmod13a.so: $(objpfx)tst-tlsmod13.so
-# For tst-tls9-static, make sure the modules it dlopens have libc.so in DT_NEEDED
-$(objpfx)tst-tlsmod5.so: $(common-objpfx)libc.so
-$(objpfx)tst-tlsmod6.so: $(common-objpfx)libc.so
-$(objpfx)tst-tls19mod1.so: $(objpfx)tst-tls19mod2.so $(objpfx)tst-tls19mod3.so
-$(objpfx)tst-tls19mod3.so: $(objpfx)ld.so
-$(objpfx)reldep8mod3.so: $(objpfx)reldep8mod1.so $(objpfx)reldep8mod2.so
-$(objpfx)nodel2mod3.so: $(objpfx)nodel2mod1.so $(objpfx)nodel2mod2.so
-$(objpfx)reldep9mod2.so: $(objpfx)reldep9mod1.so
-$(objpfx)reldep9mod3.so: $(objpfx)reldep9mod1.so $(objpfx)reldep9mod2.so
-$(objpfx)unload3mod1.so: $(objpfx)unload3mod3.so
-$(objpfx)unload3mod2.so: $(objpfx)unload3mod3.so
-$(objpfx)unload3mod3.so: $(objpfx)unload3mod4.so
-$(objpfx)unload4mod1.so: $(objpfx)unload4mod2.so $(objpfx)unload4mod3.so
-$(objpfx)unload4mod2.so: $(objpfx)unload4mod4.so $(objpfx)unload4mod3.so
-$(objpfx)unload7mod2.so: $(objpfx)unload7mod1.so
-$(objpfx)unload8mod1.so: $(objpfx)unload8mod2.so
-$(objpfx)unload8mod2.so: $(objpfx)unload8mod3.so
-$(objpfx)tst-initordera2.so: $(objpfx)tst-initordera1.so
-$(objpfx)tst-initorderb2.so: $(objpfx)tst-initorderb1.so $(objpfx)tst-initordera2.so
-$(objpfx)tst-initordera3.so: $(objpfx)tst-initorderb2.so $(objpfx)tst-initorderb1.so
-$(objpfx)tst-initordera4.so: $(objpfx)tst-initordera3.so
-$(objpfx)tst-initorder: $(objpfx)tst-initordera4.so $(objpfx)tst-initordera1.so $(objpfx)tst-initorderb2.so
-$(objpfx)tst-null-argv: $(objpfx)tst-null-argv-lib.so
-$(objpfx)tst-tlsalign: $(objpfx)tst-tlsalign-lib.so
-$(objpfx)tst-nodelete-opened.out: $(objpfx)tst-nodelete-opened-lib.so
-
-$(objpfx)tst-tlsalign-extern: $(objpfx)tst-tlsalign-vars.o
-$(objpfx)tst-tlsalign-extern-static: $(objpfx)tst-tlsalign-vars.o
-
-tst-null-argv-ENV = LD_DEBUG=all LD_DEBUG_OUTPUT=$(objpfx)tst-null-argv.debug.out
-LDFLAGS-nodel2mod3.so = -Wl,--no-as-needed
-LDFLAGS-reldepmod5.so = -Wl,--no-as-needed
-LDFLAGS-reldep6mod1.so = -Wl,--no-as-needed
-LDFLAGS-reldep6mod4.so = -Wl,--no-as-needed
-LDFLAGS-reldep8mod3.so = -Wl,--no-as-needed
-LDFLAGS-unload4mod1.so = -Wl,--no-as-needed
-LDFLAGS-unload4mod2.so = -Wl,--no-as-needed
-LDFLAGS-tst-initorder = -Wl,--no-as-needed
-LDFLAGS-tst-initordera2.so = -Wl,--no-as-needed
-LDFLAGS-tst-initordera3.so = -Wl,--no-as-needed
-LDFLAGS-tst-initordera4.so = -Wl,--no-as-needed
-LDFLAGS-tst-initorderb2.so = -Wl,--no-as-needed
-LDFLAGS-tst-tlsmod5.so = -nostdlib -Wl,--no-as-needed
-LDFLAGS-tst-tlsmod6.so = -nostdlib -Wl,--no-as-needed
-
-testobj1.so-no-z-defs = yes
-testobj3.so-no-z-defs = yes
-testobj4.so-no-z-defs = yes
-testobj5.so-no-z-defs = yes
-testobj6.so-no-z-defs = yes
-failobj.so-no-z-defs = yes
-constload2.so-no-z-defs = yes
-constload3.so-no-z-defs = yes
-nodelmod1.so-no-z-defs = yes
-nodelmod2.so-no-z-defs = yes
-nodelmod4.so-no-z-defs = yes
-nodel2mod2.so-no-z-defs = yes
-reldepmod2.so-no-z-defs = yes
-reldepmod3.so-no-z-defs = yes
-reldepmod4.so-no-z-defs = yes
-reldep4mod4.so-no-z-defs = yes
-reldep4mod2.so-no-z-defs = yes
-ltglobmod2.so-no-z-defs = yes
-dblloadmod3.so-no-z-defs = yes
-tst-tlsmod1.so-no-z-defs = yes
-tst-tlsmod2.so-no-z-defs = yes
-tst-tlsmod3.so-no-z-defs = yes
-tst-tlsmod4.so-no-z-defs = yes
-tst-tlsmod7.so-no-z-defs = yes
-tst-tlsmod8.so-no-z-defs = yes
-tst-tlsmod9.so-no-z-defs = yes
-tst-tlsmod10.so-no-z-defs = yes
-tst-tlsmod12.so-no-z-defs = yes
-tst-tlsmod14a.so-no-z-defs = yes
-tst-tlsmod14b.so-no-z-defs = yes
-tst-tlsmod15a.so-no-z-defs = yes
-tst-tlsmod16b.so-no-z-defs = yes
-circlemod2.so-no-z-defs = yes
-circlemod3.so-no-z-defs = yes
-circlemod3a.so-no-z-defs = yes
-reldep8mod2.so-no-z-defs = yes
-reldep9mod1.so-no-z-defs = yes
-unload3mod4.so-no-z-defs = yes
-unload4mod1.so-no-z-defs = yes
-ifuncmod1.so-no-z-defs = yes
-ifuncmod5.so-no-z-defs = yes
-ifuncmod6.so-no-z-defs = yes
-tst-auditmod9a.so-no-z-defs = yes
-tst-auditmod9b.so-no-z-defs = yes
-tst-nodelete-uniquemod.so-no-z-defs = yes
-tst-nodelete-rtldmod.so-no-z-defs = yes
-tst-nodelete-zmod.so-no-z-defs = yes
-tst-nodelete2mod.so-no-z-defs = yes
-
-ifeq ($(build-shared),yes)
-# Build all the modules even when not actually running test programs.
-tests: $(test-modules)
-endif
-
-LDFLAGS-loadtest = -rdynamic
-
-$(objpfx)loadtest.out: $(test-modules)
-
-$(objpfx)neededtest.out: $(objpfx)neededobj1.so $(objpfx)neededobj2.so \
- $(objpfx)neededobj3.so
-
-$(objpfx)neededtest2.out: $(objpfx)neededobj1.so $(objpfx)neededobj2.so \
- $(objpfx)neededobj3.so
-
-$(objpfx)neededtest3.out: $(objpfx)neededobj1.so $(objpfx)neededobj2.so \
- $(objpfx)neededobj3.so $(objpfx)neededobj4.so
-
-$(objpfx)neededtest4: $(objpfx)neededobj1.so
-$(objpfx)neededtest4.out: $(objpfx)neededobj5.so $(objpfx)neededobj6.so
-
-$(objpfx)restest1: $(objpfx)testobj1.so $(objpfx)testobj1_1.so
-LDFLAGS-restest1 = -rdynamic
-
-LDFLAGS-restest2 = -rdynamic
-
-$(objpfx)restest1.out: $(test-modules)
-
-preloadtest-preloads = testobj1 testobj2 testobj3 testobj4 testobj5
-$(objpfx)preloadtest: $(objpfx)testobj6.so
-LDFLAGS-preloadtest = -rdynamic
-$(objpfx)preloadtest.out: $(preloadtest-preloads:%=$(objpfx)%.so)
-preloadtest-ENV = \
- LD_PRELOAD=$(subst $(empty) ,:,$(strip $(preloadtest-preloads:=.so)))
-
-LDFLAGS-loadfail = -rdynamic
-
-$(objpfx)loadfail.out: $(objpfx)failobj.so $(objpfx)testobj1.so \
- $(objpfx)testobj2.so $(objpfx)testobj3.so \
- $(objpfx)testobj4.so $(objpfx)testobj5.so
-
-LDFLAGS-multiload = -rdynamic
-CFLAGS-multiload.c += -DOBJDIR=\"$(elf-objpfx)\"
-
-$(objpfx)multiload.out: $(objpfx)testobj1.so
-
-LDFLAGS-origtest = -rdynamic
-$(objpfx)origtest.out: $(objpfx)testobj1.so
-
-ifeq ($(have-thread-library),yes)
-$(objpfx)resolvfail: $(shared-thread-library)
-endif
-
-$(objpfx)constload1.out: $(objpfx)constload2.so $(objpfx)constload3.so
-
-$(objpfx)circleload1.out: $(objpfx)circlemod1.so \
- $(objpfx)circlemod1a.so
-
-$(objpfx)circlemod1.so: $(objpfx)circlemod2.so
-$(objpfx)circlemod2.so: $(objpfx)circlemod3.so
-$(objpfx)circlemod1a.so: $(objpfx)circlemod2a.so
-$(objpfx)circlemod2a.so: $(objpfx)circlemod3a.so
-
-$(objpfx)order: $(addprefix $(objpfx),dep4.so dep3.so dep2.so dep1.so)
-
-$(objpfx)order-cmp.out: $(objpfx)order.out
- (echo "0123456789" | cmp $< -) > $@; \
- $(evaluate-test)
-
-$(objpfx)vismain: $(addprefix $(objpfx),vismod1.so vismod2.so)
-$(objpfx)vismain.out: $(addprefix $(objpfx),vismod3.so)
-vismain-ENV = LD_PRELOAD=$(addprefix $(objpfx),vismod3.so)
-
-$(objpfx)noload: $(objpfx)testobj1.so
-LDFLAGS-noload = -rdynamic -Wl,--no-as-needed
-$(objpfx)noload.out: $(objpfx)testobj5.so
-
-$(objpfx)noload-mem.out: $(objpfx)noload.out
- $(common-objpfx)malloc/mtrace $(objpfx)noload.mtrace > $@; \
- $(evaluate-test)
-noload-ENV = MALLOC_TRACE=$(objpfx)noload.mtrace \
- LD_PRELOAD=$(common-objpfx)/malloc/libc_malloc_debug.so
-
-LDFLAGS-nodelete = -rdynamic
-LDFLAGS-nodelmod1.so = -Wl,--enable-new-dtags,-z,nodelete
-LDFLAGS-nodelmod4.so = -Wl,--enable-new-dtags,-z,nodelete
-$(objpfx)nodelete.out: $(objpfx)nodelmod1.so $(objpfx)nodelmod2.so \
- $(objpfx)nodelmod3.so
-
-LDFLAGS-nodlopenmod.so = -Wl,--enable-new-dtags,-z,nodlopen
-$(objpfx)nodlopen.out: $(objpfx)nodlopenmod.so
-
-$(objpfx)nodlopenmod2.so: $(objpfx)nodlopenmod.so
-$(objpfx)nodlopen2.out: $(objpfx)nodlopenmod2.so
-
-$(objpfx)filtmod1.so: $(objpfx)filtmod1.os $(objpfx)filtmod2.so
- $(LINK.o) -shared -o $@ -B$(csu-objpfx) $(LDFLAGS.so) \
- $(dt-relr-ldflag) \
- -L$(subst :, -L,$(rpath-link)) \
- -Wl,-rpath-link=$(rpath-link) \
- $< -Wl,-F,$(objpfx)filtmod2.so
-$(objpfx)filter: $(objpfx)filtmod1.so
-
-# This does not link against libc.
-CFLAGS-filtmod1.c += $(no-stack-protector)
-
-$(objpfx)unload.out: $(objpfx)unloadmod.so
-
-$(objpfx)reldep.out: $(objpfx)reldepmod1.so $(objpfx)reldepmod2.so
-
-$(objpfx)reldep2.out: $(objpfx)reldepmod1.so $(objpfx)reldepmod3.so
-
-$(objpfx)reldep3.out: $(objpfx)reldepmod1.so $(objpfx)reldepmod4.so
-
-$(objpfx)reldep4.out: $(objpfx)reldep4mod1.so $(objpfx)reldep4mod2.so
-
-$(objpfx)next: $(objpfx)nextmod1.so $(objpfx)nextmod2.so
-LDFLAGS-next = -Wl,--no-as-needed
-
-$(objpfx)tst-next-ver: $(objpfx)nextmod3.so
-LDFLAGS-tst-next-ver = -Wl,--no-as-needed
-
-$(objpfx)unload2.out: $(objpfx)unload2mod.so $(objpfx)unload2dep.so
-
-$(objpfx)lateglobal.out: $(objpfx)ltglobmod1.so $(objpfx)ltglobmod2.so
-
-$(objpfx)tst-pathopt.out: tst-pathopt.sh $(objpfx)tst-pathopt \
- $(objpfx)pathoptobj.so
- $(SHELL) $< $(common-objpfx) '$(test-wrapper-env)' \
- '$(run-program-env)'; \
- $(evaluate-test)
-
-$(objpfx)tst-rtld-load-self.out: tst-rtld-load-self.sh $(objpfx)ld.so
- $(SHELL) $^ '$(test-wrapper)' '$(test-wrapper-env)' > $@; \
- $(evaluate-test)
-
-tst-rtld-preload-OBJS = $(subst $(empty) ,:,$(strip $(preloadtest-preloads:=.so)))
-$(objpfx)tst-rtld-preload.out: tst-rtld-preload.sh $(objpfx)ld.so \
- $(objpfx)preloadtest \
- $(preloadtest-preloads:%=$(objpfx)%.so)
- $(SHELL) $< $(objpfx)ld.so $(objpfx)preloadtest \
- '$(test-wrapper-env)' '$(run_program_env)' \
- '$(rpath-link)' '$(tst-rtld-preload-OBJS)' > $@; \
- $(evaluate-test)
-
-$(objpfx)initfirst.out: $(objpfx)firstobj.so
-
-$(objpfx)global: $(objpfx)globalmod1.so
-$(objpfx)global.out: $(objpfx)reldepmod1.so $(objpfx)reldepmod4.so
-
-$(objpfx)dblload.out: $(objpfx)dblloadmod1.so $(objpfx)dblloadmod2.so
-
-$(objpfx)dblunload.out: $(objpfx)dblloadmod1.so $(objpfx)dblloadmod2.so
-
-$(objpfx)reldep5.out: $(objpfx)reldepmod5.so $(objpfx)reldepmod6.so
-
-$(objpfx)reldep6.out: $(objpfx)reldep6mod3.so $(objpfx)reldep6mod4.so
-
-$(objpfx)reldep7.out: $(objpfx)reldep7mod1.so $(objpfx)reldep7mod2.so
-
-$(objpfx)reldep8.out: $(objpfx)reldep8mod3.so
-
-LDFLAGS-nodel2mod2.so = -Wl,--enable-new-dtags,-z,nodelete
-$(objpfx)nodelete2.out: $(objpfx)nodel2mod3.so
-
-$(objpfx)reldep9.out: $(objpfx)reldep9mod3.so
-
-$(objpfx)tst-tls3: $(objpfx)tst-tlsmod1.so
-
-$(objpfx)tst-tls4.out: $(objpfx)tst-tlsmod2.so
-
-$(objpfx)tst-tls5.out: $(objpfx)tst-tlsmod2.so
-
-$(objpfx)tst-tls6.out: $(objpfx)tst-tlsmod2.so
-
-$(objpfx)tst-tls7.out: $(objpfx)tst-tlsmod3.so
-
-$(objpfx)tst-tls8.out: $(objpfx)tst-tlsmod3.so $(objpfx)tst-tlsmod4.so
-
-$(objpfx)tst-tls9.out: $(objpfx)tst-tlsmod5.so $(objpfx)tst-tlsmod6.so
-
-$(objpfx)tst-tls10: $(objpfx)tst-tlsmod8.so $(objpfx)tst-tlsmod7.so
-
-$(objpfx)tst-tls11: $(objpfx)tst-tlsmod10.so $(objpfx)tst-tlsmod9.so
-
-$(objpfx)tst-tls12: $(objpfx)tst-tlsmod12.so $(objpfx)tst-tlsmod11.so
-
-$(objpfx)tst-tls13.out: $(objpfx)tst-tlsmod13a.so
-
-$(objpfx)tst-tls14: $(objpfx)tst-tlsmod14a.so
-$(objpfx)tst-tls14.out: $(objpfx)tst-tlsmod14b.so
-
-$(objpfx)tst-tls15.out: $(objpfx)tst-tlsmod15a.so $(objpfx)tst-tlsmod15b.so
-
-$(objpfx)tst-tls-dlinfo.out: $(objpfx)tst-tlsmod2.so
-
-
-
-$(objpfx)tst-tls16.out: $(objpfx)tst-tlsmod16a.so $(objpfx)tst-tlsmod16b.so
-
-$(objpfx)tst-tls17.out: $(objpfx)tst-tlsmod17b.so
-$(patsubst %,$(objpfx)%.os,$(tlsmod17a-modules)): $(objpfx)tst-tlsmod17a%.os: tst-tlsmod17a.c
- $(compile-command.c) -DN=$*
-$(patsubst %,$(objpfx)%.so,$(tlsmod17a-modules)): $(objpfx)tst-tlsmod17a%.so: $(objpfx)ld.so
-$(objpfx)tst-tlsmod17b.so: $(patsubst %,$(objpfx)%.so,$(tlsmod17a-modules))
-
-$(objpfx)tst-tls18.out: $(patsubst %,$(objpfx)%.so,$(tlsmod18a-modules))
-$(patsubst %,$(objpfx)%.os,$(tlsmod18a-modules)): $(objpfx)tst-tlsmod18a%.os : tst-tlsmod18a.c
- $(compile-command.c) -DN=$*
-$(patsubst %,$(objpfx)%.so,$(tlsmod18a-modules)): $(objpfx)tst-tlsmod18a%.so: $(objpfx)ld.so
-
-$(objpfx)tst-tls19.out: $(objpfx)tst-tls19mod1.so
-
-CFLAGS-tst-align.c += $(stack-align-test-flags)
-CFLAGS-tst-align2.c += $(stack-align-test-flags)
-CFLAGS-tst-alignmod.c += $(stack-align-test-flags)
-CFLAGS-tst-alignmod2.c += $(stack-align-test-flags)
-$(objpfx)tst-align.out: $(objpfx)tst-alignmod.so
-$(objpfx)tst-align2: $(objpfx)tst-alignmod2.so
-$(objpfx)tst-align3: $(objpfx)tst-alignmod3.so
-ifeq (yes,$(have-fpie))
-CFLAGS-tst-align3.c += $(PIE-ccflag)
-endif
-LDFLAGS-tst-align3 += -Wl,-z,max-page-size=0x200000
-LDFLAGS-tst-alignmod3.so += -Wl,-z,max-page-size=0x200000
-$(objpfx)tst-alignmod3.so: $(libsupport)
-
-$(objpfx)unload3.out: $(objpfx)unload3mod1.so $(objpfx)unload3mod2.so \
- $(objpfx)unload3mod3.so $(objpfx)unload3mod4.so
-
-$(objpfx)unload4.out: $(objpfx)unload4mod1.so $(objpfx)unload4mod3.so
-
-$(objpfx)unload5.out: $(objpfx)unload3mod1.so $(objpfx)unload3mod2.so \
- $(objpfx)unload3mod3.so $(objpfx)unload3mod4.so
-
-$(objpfx)unload6.out: $(objpfx)unload6mod1.so $(objpfx)unload6mod2.so \
- $(objpfx)unload6mod3.so
-
-$(objpfx)unload7.out: $(objpfx)unload7mod1.so $(objpfx)unload7mod2.so
-unload7-ENV = MALLOC_PERTURB_=85
-
-$(objpfx)unload8.out: $(objpfx)unload8mod1.so $(objpfx)unload8mod1x.so
-
-$(objpfx)tst-tls9-static.out: $(objpfx)tst-tlsmod5.so $(objpfx)tst-tlsmod6.so
-
-ifeq ($(have-z-execstack),yes)
-$(objpfx)tst-execstack.out: $(objpfx)tst-execstack-mod.so
-CPPFLAGS-tst-execstack.c += -DUSE_PTHREADS=0
-LDFLAGS-tst-execstack = -Wl,-z,noexecstack
-LDFLAGS-tst-execstack-mod.so = -Wl,-z,execstack
-
-$(objpfx)tst-execstack-needed: $(objpfx)tst-execstack-mod.so
-LDFLAGS-tst-execstack-needed = -Wl,-z,noexecstack
-
-LDFLAGS-tst-execstack-prog = -Wl,-z,execstack
-CFLAGS-tst-execstack-prog.c += -Wno-trampolines
-CFLAGS-tst-execstack-mod.c += -Wno-trampolines
-endif
-
-LDFLAGS-tst-array2 = -Wl,--no-as-needed
-LDFLAGS-tst-array5 = -Wl,--no-as-needed
-
-$(objpfx)tst-array1-cmp.out: tst-array1.exp $(objpfx)tst-array1.out
- cmp $^ > $@; \
- $(evaluate-test)
-
-$(objpfx)tst-array1-static-cmp.out: tst-array1.exp \
- $(objpfx)tst-array1-static.out
- cmp $^ > $@; \
- $(evaluate-test)
-
-$(objpfx)tst-array2: $(objpfx)tst-array2dep.so
-$(objpfx)tst-array2-cmp.out: tst-array2.exp $(objpfx)tst-array2.out
- cmp $^ > $@; \
- $(evaluate-test)
-
-$(objpfx)tst-array3-cmp.out: tst-array1.exp $(objpfx)tst-array3.out
- cmp $^ > $@; \
- $(evaluate-test)
-
-$(objpfx)tst-array4.out: $(objpfx)tst-array2dep.so
-$(objpfx)tst-array4-cmp.out: tst-array4.exp $(objpfx)tst-array4.out
- cmp $^ > $@; \
- $(evaluate-test)
-
-$(objpfx)tst-array5: $(objpfx)tst-array5dep.so
-$(objpfx)tst-array5-cmp.out: tst-array5.exp $(objpfx)tst-array5.out
- cmp $^ > $@; \
- $(evaluate-test)
-
-$(objpfx)tst-array5-static-cmp.out: tst-array5-static.exp \
- $(objpfx)tst-array5-static.out
- cmp $^ > $@; \
- $(evaluate-test)
-
-CFLAGS-tst-pie1.c += $(pie-ccflag)
-CFLAGS-tst-pie2.c += $(pie-ccflag)
-
-$(objpfx)tst-piemod1.so: $(libsupport)
-$(objpfx)tst-pie1: $(objpfx)tst-piemod1.so
-$(objpfx)tst-dlopen-pie.out: $(objpfx)tst-pie1
-
-ifeq (yes,$(build-shared))
-# NB: Please keep cet-built-dso in sysdeps/x86/Makefile in sync with
-# all-built-dso here.
-all-built-dso := $(common-objpfx)elf/ld.so $(common-objpfx)libc.so \
- $(filter-out $(common-objpfx)linkobj/libc.so, \
- $(sort $(wildcard $(addprefix $(common-objpfx), \
- */lib*.so \
- iconvdata/*.so))))
-
-$(all-built-dso:=.dyn): %.dyn: %
- @rm -f $@T
- LC_ALL=C $(READELF) -W -d $< > $@T
- test -s $@T
- mv -f $@T $@
-common-generated += $(all-built-dso:$(common-objpfx)%=%.dyn)
-
-$(objpfx)check-textrel.out: $(..)scripts/check-textrel.awk \
- $(all-built-dso:=.dyn)
- LC_ALL=C $(AWK) -f $^ > $@; \
- $(evaluate-test)
-generated += check-textrel.out
-
-$(objpfx)execstack-default: $(first-word $(wildcard $(sysdirs:%=%/stackinfo.h)))
- $(make-target-directory)
- { echo '#include <elf.h>'; \
- echo '#include <stackinfo.h>'; \
- echo '#if (DEFAULT_STACK_PERMS & PF_X) == 0'; \
- echo '@@@execstack-no@@@'; \
- echo '#else'; \
- echo '@@@execstack-yes@@@'; \
- echo '#endif'; } | \
- $(CC) $(CFLAGS) $(CPPFLAGS) -E -x c-header - | \
- sed -n -e 's/^@@@\(.*\)@@@/\1/p' > $@T
- mv -f $@T $@
-generated += execstack-default
-
-$(all-built-dso:=.phdr): %.phdr: %
- @rm -f $@T
- LC_ALL=C $(READELF) -W -l $< > $@T
- test -s $@T
- mv -f $@T $@
-common-generated += $(all-built-dso:$(common-objpfx)%=%.phdr)
-
-$(objpfx)check-execstack.out: $(..)scripts/check-execstack.awk \
- $(objpfx)execstack-default \
- $(all-built-dso:=.phdr)
- LC_ALL=C $(AWK) -v "xfail=$(check-execstack-xfail)" -f $^ > $@; \
- $(evaluate-test)
-generated += check-execstack.out
-
-$(objpfx)check-wx-segment.out: $(..)scripts/check-wx-segment.py \
- $(all-built-dso:=.phdr)
- $(PYTHON) $^ --xfail="$(check-wx-segment-xfail)" > $@; \
- $(evaluate-test)
-generated += check-wx-segment.out
-
-$(objpfx)tst-dlmodcount.out: $(test-modules)
-
-$(all-built-dso:=.jmprel): %.jmprel: % Makefile
- @rm -f $@T
- LC_ALL=C $(READELF) -W -S -d -r $< > $@T
- test -s $@T
- mv -f $@T $@
-common-generated += $(all-built-dso:$(common-objpfx)%=%.jmprel)
-
-localplt-built-dso := $(addprefix $(common-objpfx),\
- libc.so \
- elf/ld.so \
- math/libm.so \
- dlfcn/libdl.so \
- resolv/libresolv.so \
- )
-ifeq ($(build-mathvec),yes)
-localplt-built-dso += $(addprefix $(common-objpfx), mathvec/libmvec.so)
-endif
-ifeq ($(have-thread-library),yes)
-localplt-built-dso += $(filter-out %_nonshared.a, $(shared-thread-library))
-endif
-ifeq ($(build-crypt),yes)
-localplt-built-dso += $(addprefix $(common-objpfx), crypt/libcrypt.so)
-endif
-ifneq ($(pthread-in-libc),yes)
-localplt-built-dso += $(addprefix $(common-objpfx), rt/librt.so)
-endif
-
-vpath localplt.data $(+sysdep_dirs)
-
-$(objpfx)check-localplt.out: $(..)scripts/check-localplt.awk \
- $(..)scripts/localplt.awk \
- $(localplt-built-dso:=.jmprel) \
- localplt.data
- LC_ALL=C $(AWK) -f $(filter-out $< %localplt.data,$^) | \
- LC_ALL=C $(AWK) -f $< $(filter %localplt.data,$^) - \
- > $@; \
- $(evaluate-test)
-endif
-
-$(all-built-dso:=.dynsym): %.dynsym: %
- @rm -f $@T
- LC_ALL=C $(READELF) -W --dyn-syms $< > $@T
- test -s $@T
- mv -f $@T $@
-common-generated += $(all-built-dso:$(common-objpfx)%=%.dynsym)
-
-$(objpfx)check-initfini.out: $(..)scripts/check-initfini.awk \
- $(all-built-dso:=.dynsym)
- LC_ALL=C $(AWK) -f $^ > $@; \
- $(evaluate-test)
-generated += check-initfini.out
-
-$(objpfx)tst-dlopenrpath: $(objpfx)tst-dlopenrpathmod.so
-CFLAGS-tst-dlopenrpath.c += -DPFX=\"$(objpfx)\"
-LDFLAGS-tst-dlopenrpathmod.so += -Wl,-rpath,\$$ORIGIN/test-subdir
-$(objpfx)tst-dlopenrpath.out: $(objpfx)firstobj.so
-
-$(objpfx)tst-deep1mod2.so: $(objpfx)tst-deep1mod3.so
-$(objpfx)tst-deep1: $(objpfx)tst-deep1mod1.so
-$(objpfx)tst-deep1.out: $(objpfx)tst-deep1mod2.so
-LDFLAGS-tst-deep1 += -rdynamic
-tst-deep1mod3.so-no-z-defs = yes
-
-$(objpfx)tst-dlmopen1.out: $(objpfx)tst-dlmopen1mod.so
-
-$(objpfx)tst-dlmopen2.out: $(objpfx)tst-dlmopen1mod.so
-
-$(objpfx)tst-dlmopen3.out: $(objpfx)tst-dlmopen1mod.so
-
-$(objpfx)tst-dlmopen4.out: $(objpfx)tst-dlmopen1mod.so
-
-$(objpfx)tst-audit1.out: $(objpfx)tst-auditmod1.so
-tst-audit1-ENV = LD_AUDIT=$(objpfx)tst-auditmod1.so
-
-$(objpfx)tst-audit2.out: $(objpfx)tst-auditmod1.so $(objpfx)tst-auditmod9b.so
-# Prevent GCC-5 from translating a malloc/memset pair into calloc
-CFLAGS-tst-audit2.c += -fno-builtin
-tst-audit2-ENV = LD_AUDIT=$(objpfx)tst-auditmod1.so
-
-$(objpfx)tst-audit9.out: $(objpfx)tst-auditmod9a.so $(objpfx)tst-auditmod9b.so
-tst-audit9-ENV = LD_AUDIT=$(objpfx)tst-auditmod9a.so
-
-$(objpfx)tst-audit8: $(libm)
-$(objpfx)tst-audit8.out: $(objpfx)tst-auditmod1.so
-tst-audit8-ENV = LD_AUDIT=$(objpfx)tst-auditmod1.so
-
-$(objpfx)tst-global1.out: $(objpfx)testobj6.so $(objpfx)testobj2.so
-
-$(objpfx)tst-global2: $(objpfx)tst-globalmod2.so
-$(objpfx)tst-global2.out: $(objpfx)reldepmod1.so $(objpfx)reldepmod4.so
-LDFLAGS-tst-global2 = -Wl,--enable-new-dtags
-LDFLAGS-tst-globalmod2.so = -Wl,--enable-new-dtags
-
-$(objpfx)order2.out: $(objpfx)order2mod1.so $(objpfx)order2mod2.so
-$(objpfx)order2-cmp.out: $(objpfx)order2.out
- (echo "12345" | cmp $< -) > $@; \
- $(evaluate-test)
-$(objpfx)order2mod1.so: $(objpfx)order2mod4.so
-$(objpfx)order2mod4.so: $(objpfx)order2mod3.so
-$(objpfx)order2mod2.so: $(objpfx)order2mod3.so
-order2mod2.so-no-z-defs = yes
-LDFLAGS-order2mod1.so = -Wl,--no-as-needed
-LDFLAGS-order2mod2.so = -Wl,--no-as-needed
-
-tst-stackguard1-ARGS = --command "$(host-test-program-cmd) --child"
-tst-stackguard1-static-ARGS = --command "$(objpfx)tst-stackguard1-static --child"
-
-tst-ptrguard1-ARGS = --command "$(host-test-program-cmd) --child"
-# When built statically, the pointer guard interface uses
-# __pointer_chk_guard_local.
-CFLAGS-tst-ptrguard1-static.c += -DPTRGUARD_LOCAL
-tst-ptrguard1-static-ARGS = --command "$(objpfx)tst-ptrguard1-static --child"
-
-$(objpfx)tst-leaks1-mem.out: $(objpfx)tst-leaks1.out
- $(common-objpfx)malloc/mtrace $(objpfx)tst-leaks1.mtrace > $@; \
- $(evaluate-test)
-
-tst-leaks1-ENV = MALLOC_TRACE=$(objpfx)tst-leaks1.mtrace \
- LD_PRELOAD=$(common-objpfx)/malloc/libc_malloc_debug.so
-
-$(objpfx)tst-thrlock: $(shared-thread-library)
-$(objpfx)tst-thrlock.out: $(libm)
-$(objpfx)tst-noload.out: $(libm)
-
-tst-tst-dlopen-tlsmodid-no-pie = yes
-$(objpfx)tst-dlopen-tlsmodid: $(shared-thread-library)
-$(objpfx)tst-dlopen-tlsmodid.out: $(objpfx)tst-dlopen-self
-CFLAGS-tst-dlopen-tlsmodid-pie.c += $(pie-ccflag)
-$(objpfx)tst-dlopen-tlsmodid-pie: $(shared-thread-library)
-$(objpfx)tst-dlopen-tlsmodid-pie.out: $(objpfx)tst-dlopen-self-pie
-$(objpfx)tst-dlopen-tlsmodid-container: $(shared-thread-library)
-LDFLAGS-tst-dlopen-tlsmodid-container += -Wl,-rpath,\$$ORIGIN
-
-tst-tst-dlopen-self-no-pie = yes
-CFLAGS-tst-dlopen-self-pie.c += $(pie-ccflag)
-LDFLAGS-tst-dlopen-self-container += -Wl,-rpath,\$$ORIGIN
-
-CFLAGS-ifuncmain1pic.c += $(pic-ccflag)
-CFLAGS-ifuncmain1picstatic.c += $(pic-ccflag)
-CFLAGS-ifuncmain1staticpic.c += $(pic-ccflag)
-CFLAGS-ifuncdep1pic.c += $(pic-ccflag)
-CFLAGS-ifuncmain1vispic.c += $(pic-ccflag)
-CFLAGS-ifuncmain2pic.c += $(pic-ccflag)
-CFLAGS-ifuncmain2picstatic.c += $(pic-ccflag)
-CFLAGS-ifuncdep2pic.c += $(pic-ccflag)
-CFLAGS-ifuncmain4picstatic.c += $(pic-ccflag)
-CFLAGS-ifuncmain5pic.c += $(pic-ccflag)
-CFLAGS-ifuncmain5picstatic.c += $(pic-ccflag)
-CFLAGS-ifuncmain5staticpic.c += $(pic-ccflag)
-CFLAGS-ifuncdep5pic.c += $(pic-ccflag)
-CFLAGS-ifuncmain7pic.c += $(pic-ccflag)
-CFLAGS-ifuncmain7picstatic.c += $(pic-ccflag)
-CFLAGS-ifuncmain9pic.c += $(pic-ccflag)
-CFLAGS-ifuncmain9picstatic.c += $(pic-ccflag)
-
-LDFLAGS-ifuncmain3 = -Wl,-export-dynamic
-
-CFLAGS-ifuncmain1pie.c += $(pie-ccflag)
-CFLAGS-ifuncmain1vispie.c += $(pie-ccflag)
-CFLAGS-ifuncmain1staticpie.c += $(pie-ccflag)
-CFLAGS-ifuncmain5pie.c += $(pie-ccflag)
-CFLAGS-ifuncmain6pie.c += $(pie-ccflag)
-CFLAGS-ifuncmain7pie.c += $(pie-ccflag)
-CFLAGS-ifuncmain9pie.c += $(pie-ccflag)
-CFLAGS-tst-ifunc-textrel.c += $(pic-ccflag)
-
-LDFLAGS-ifuncmain6pie = -Wl,-z,lazy
-
-$(objpfx)ifuncmain1pie: $(objpfx)ifuncmod1.so
-$(objpfx)ifuncmain1staticpie: $(objpfx)ifuncdep1pic.o
-$(objpfx)ifuncmain1vispie: $(objpfx)ifuncmod1.so
-$(objpfx)ifuncmain5pie: $(objpfx)ifuncmod5.so
-$(objpfx)ifuncmain6pie: $(objpfx)ifuncmod6.so
-
-$(objpfx)ifuncmain1: $(addprefix $(objpfx),ifuncmod1.so)
-$(objpfx)ifuncmain1pic: $(addprefix $(objpfx),ifuncmod1.so)
-$(objpfx)ifuncmain1staticpic: $(addprefix $(objpfx),ifuncdep1pic.o)
-$(objpfx)ifuncmain1static: $(addprefix $(objpfx),ifuncdep1.o)
-$(objpfx)ifuncmain1picstatic: $(addprefix $(objpfx),ifuncdep1pic.o)
-$(objpfx)ifuncmain1vis: $(addprefix $(objpfx),ifuncmod1.so)
-$(objpfx)ifuncmain1vispic: $(addprefix $(objpfx),ifuncmod1.so)
-$(objpfx)ifuncmain2: $(addprefix $(objpfx),ifuncdep2.o)
-$(objpfx)ifuncmain2pic: $(addprefix $(objpfx),ifuncdep2pic.o)
-$(objpfx)ifuncmain2static: $(addprefix $(objpfx),ifuncdep2.o)
-$(objpfx)ifuncmain2picstatic: $(addprefix $(objpfx),ifuncdep2pic.o)
-
-$(objpfx)ifuncmain3.out: $(objpfx)ifuncmod3.so
-
-$(objpfx)ifuncmain5: $(addprefix $(objpfx),ifuncmod5.so)
-$(objpfx)ifuncmain5pic: $(addprefix $(objpfx),ifuncmod5.so)
-$(objpfx)ifuncmain5static: $(addprefix $(objpfx),ifuncdep5.o)
-$(objpfx)ifuncmain5staticpic: $(addprefix $(objpfx),ifuncdep5pic.o)
-$(objpfx)ifuncmain5picstatic: $(addprefix $(objpfx),ifuncdep5pic.o)
-
-LDFLAGS-tst-ifunc-fault-lazy = -Wl,-z,lazy
-LDFLAGS-tst-ifunc-fault-bindnow = -Wl,-z,now
-define tst-ifunc-fault-script
-( $(test-wrapper) $(rtld-prefix) --verify $^ \
- && $(test-wrapper-env) LD_TRACE_LOADED_OBJECTS=1 $(rtld-prefix) $^ \
- && $(test-wrapper-env) LD_TRACE_LOADED_OBJECTS=1 LD_DEBUG=unused \
- $(rtld-prefix) $^ \
-) > $@; $(evaluate-test)
-endef
-$(objpfx)tst-ifunc-fault-lazy.out: $(objpfx)tst-ifunc-fault-lazy $(objpfx)ld.so
- $(tst-ifunc-fault-script)
-$(objpfx)tst-ifunc-fault-bindnow.out: $(objpfx)tst-ifunc-fault-bindnow \
- $(objpfx)ld.so
- $(tst-ifunc-fault-script)
-
-$(objpfx)tst-unique1.out: $(objpfx)tst-unique1mod1.so \
- $(objpfx)tst-unique1mod2.so
-
-$(objpfx)tst-unique2: $(objpfx)tst-unique2mod1.so
-$(objpfx)tst-unique2.out: $(objpfx)tst-unique2mod2.so
-
-$(objpfx)tst-unique3: $(objpfx)tst-unique3lib.so
-$(objpfx)tst-unique3.out: $(objpfx)tst-unique3lib2.so
-
-$(objpfx)tst-unique4: $(objpfx)tst-unique4lib.so
-
-$(objpfx)tst-nodelete.out: $(objpfx)tst-nodelete-uniquemod.so \
- $(objpfx)tst-nodelete-rtldmod.so \
- $(objpfx)tst-nodelete-zmod.so
-
-LDFLAGS-tst-nodelete = -rdynamic
-LDFLAGS-tst-nodelete-zmod.so = -Wl,--enable-new-dtags,-z,nodelete
-
-$(objpfx)tst-nodelete2.out: $(objpfx)tst-nodelete2mod.so
-
-LDFLAGS-tst-nodelete2 = -rdynamic
-
-$(objpfx)tst-initorder-cmp.out: tst-initorder.exp $(objpfx)tst-initorder.out
- cmp $^ > $@; \
- $(evaluate-test)
-
-$(objpfx)tst-initorder2: $(objpfx)tst-initorder2a.so $(objpfx)tst-initorder2d.so $(objpfx)tst-initorder2c.so
-$(objpfx)tst-initorder2a.so: $(objpfx)tst-initorder2b.so
-$(objpfx)tst-initorder2b.so: $(objpfx)tst-initorder2c.so
-$(objpfx)tst-initorder2c.so: $(objpfx)tst-initorder2d.so
-LDFLAGS-tst-initorder2 = -Wl,--no-as-needed
-LDFLAGS-tst-initord