diff options
113 files changed, 3998 insertions, 449 deletions
diff --git a/.github/workflows/build-toolchains.yml b/.github/workflows/build-toolchains.yml index 2a410c4f..8634f83f 100644 --- a/.github/workflows/build-toolchains.yml +++ b/.github/workflows/build-toolchains.yml @@ -18,25 +18,25 @@ jobs: runs-on: ${{ matrix.host }} strategy: matrix: - host: [ "ubuntu-latest", "macos-latest" ] + host: ["ubuntu-22.04", "macos-latest"] sample: ${{ fromJSON(inputs.samples) }} exclude: # Exclude both glibc & uClibc ARC Linux toolchains as # there's no known use of ARC Linux toolchains on Mac, # and anyway glibc fails to build for ARC700, # see https://github.com/crosstool-ng/crosstool-ng/pull/1456#issuecomment-779150246 - - { host: "macos-latest", sample: "arc-multilib-linux-gnu" } - - { host: "macos-latest", sample: "arc-multilib-linux-uclibc" } + - {host: "macos-latest", sample: "arc-multilib-linux-gnu"} + - {host: "macos-latest", sample: "arc-multilib-linux-uclibc"} # Exclude mips*-*-linux-gnu because of <byteswap.h> usage in # elf-entry.c for linux kernel headers. <byteswap.h> is a GNU # extension and doesn't exist on MacOS X - - { host: "macos-latest", sample: "mips-unknown-linux-gnu" } - - { host: "macos-latest", sample: "mips64-unknown-linux-gnu" } + - {host: "macos-latest", sample: "mips-unknown-linux-gnu"} + - {host: "macos-latest", sample: "mips64-unknown-linux-gnu"} # Exclude x86_64-w64-mingw32,x86_64-pc-linux-gnu because it crashes on m4 build with # a Segmentation fault - - { host: "macos-latest", sample: "x86_64-w64-mingw32,x86_64-pc-linux-gnu" } + - {host: "macos-latest", sample: "x86_64-w64-mingw32,x86_64-pc-linux-gnu"} steps: - name: create case sensitive workspace volume for macOS if: ${{ runner.os == 'macOS' }} @@ -47,14 +47,14 @@ jobs: hdiutil mount ${HOME}/Workspace.sparseimage -mountroot /Users/runner/work/crosstool-ng cd crosstool-ng - name: download ct-ng - uses: actions/download-artifact@v2 + uses: actions/download-artifact@v3 with: name: crosstool.${{ matrix.host }} - name: extract ct-ng run: | tar -xf ct-ng.tar - name: download tarballs - uses: actions/download-artifact@v2 + uses: actions/download-artifact@v3 with: name: src.tar - name: extract tarballs @@ -73,7 +73,7 @@ jobs: echo "${{ github.workspace }}/.local/bin" >> $GITHUB_PATH - name: download x86_64-w64-mingw32.${{ matrix.host }} tarball if: ${{ inputs.canadian-cross }} - uses: actions/download-artifact@v2 + uses: actions/download-artifact@v3 with: name: x86_64-w64-mingw32.${{ matrix.host }}.tar - name: install x86_64-w64-mingw32.${{ matrix.host }} toolchain @@ -90,6 +90,7 @@ jobs: sed -i -e '/CT_LOG_PROGRESS_BAR/s/y$/n/' .config sed -i -e '/CT_LOCAL_TARBALLS_DIR/s/HOME/CT_TOP_DIR/' .config sed -i -e '/CT_PREFIX_DIR/s/HOME/CT_TOP_DIR/' .config + test ${{ matrix.host }} = "macos-latest" && sed -i -e '/CT_GDB_CROSS_PYTHON/s/y$/n/' .config ct-ng build - name: create ${{ matrix.sample }}.${{ matrix.host }} tarball if: ${{ matrix.sample == 'x86_64-w64-mingw32' }} @@ -98,13 +99,13 @@ jobs: -cf ${{ matrix.sample }}.${{ matrix.host }}.tar . - name: upload ${{ matrix.sample }}.${{ matrix.host }} tarball if: ${{ matrix.sample == 'x86_64-w64-mingw32' }} - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: x86_64-w64-mingw32.${{ matrix.host }}.tar path: | x86_64-w64-mingw32.${{ matrix.host }}.tar - name: upload log - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: ${{ matrix.sample }}.${{ matrix.host }}.log path: | diff --git a/.github/workflows/continuous-integration-workflow.yml b/.github/workflows/continuous-integration-workflow.yml index d868b202..c5696f5f 100644 --- a/.github/workflows/continuous-integration-workflow.yml +++ b/.github/workflows/continuous-integration-workflow.yml @@ -9,10 +9,10 @@ jobs: runs-on: ${{ matrix.host }} strategy: matrix: - host: [ "ubuntu-latest", "macos-latest" ] + host: ["ubuntu-22.04", "macos-latest"] steps: - name: "clone" - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: "prereq Linux" if: ${{ runner.os == 'Linux' }} run: | @@ -35,12 +35,12 @@ jobs: make install tar -cf ct-ng.tar .local/ - name: "upload ct-ng" - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: crosstool.${{ matrix.host }} path: ct-ng.tar - name: "upload config.log" - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: config.log.${{ matrix.host }} path: config.log @@ -51,10 +51,10 @@ jobs: runs-on: ${{ matrix.host }} strategy: matrix: - host: [ "ubuntu-latest" ] + host: ["ubuntu-22.04"] steps: - name: "download ct-ng" - uses: actions/download-artifact@v2 + uses: actions/download-artifact@v3 with: name: crosstool.${{ matrix.host }} - name: "extract ct-ng" @@ -83,13 +83,13 @@ jobs: done tar -cvf src.tar src - name: "upload sources" - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: src.tar path: src.tar toolchains: - needs: [ crosstool, tarballs ] + needs: [crosstool, tarballs] uses: ./.github/workflows/build-toolchains.yml with: samples: >- @@ -122,7 +122,7 @@ jobs: ] canadian-cross: - needs: [ toolchains ] + needs: [toolchains] uses: ./.github/workflows/build-toolchains.yml with: samples: >- diff --git a/config/arch/bpf.in b/config/arch/bpf.in new file mode 100644 index 00000000..9d0d7373 --- /dev/null +++ b/config/arch/bpf.in @@ -0,0 +1,9 @@ +# BPF specific configuration file + +## no-package +## select ARCH_SUPPORTS_EITHER_ENDIAN +## select ARCH_DEFAULT_LE +## select GCC_VERY_NEW +## select BINUTILS_VERY_NEW +## +## help The BPF architecture. diff --git a/config/cc.in b/config/cc.in index abc68773..068d445a 100644 --- a/config/cc.in +++ b/config/cc.in @@ -20,6 +20,9 @@ config CC_SUPPORT_ADA config CC_SUPPORT_D bool +config CC_SUPPORT_JIT + bool + config CC_SUPPORT_OBJC bool @@ -53,6 +56,17 @@ config CC_LANG_FORTRAN Only select this if you know that your specific version of the compiler supports this language. +config CC_LANG_JIT + bool + prompt "JIT (EXPERIMENTAL)" + depends on CC_SUPPORT_JIT + depends on EXPERIMENTAL + help + Enable building the GCC JIT library. + + Only select this if you know that your specific version of the + compiler supports the libgccjit. + if ! BARE_METAL config CC_LANG_JAVA @@ -67,7 +81,7 @@ config CC_LANG_JAVA config CC_LANG_ADA bool - prompt "ADA (EXPERIMENTAL)" + prompt "Ada (EXPERIMENTAL)" depends on CC_SUPPORT_ADA depends on EXPERIMENTAL help diff --git a/config/cc/gcc.in b/config/cc/gcc.in index 9a9e7c65..d5b19c79 100644 --- a/config/cc/gcc.in +++ b/config/cc/gcc.in @@ -5,6 +5,7 @@ ## select CC_SUPPORT_JAVA if !GCC_7_or_later && OBSOLETE ## select CC_SUPPORT_ADA ## select CC_SUPPORT_D +## select CC_SUPPORT_JIT ## select CC_SUPPORT_OBJC ## select CC_SUPPORT_OBJCXX ## select CC_SUPPORT_GOLANG @@ -202,6 +203,7 @@ config CC_GCC_ENABLE_DEFAULT_PIE prompt "Enable Position Independent Executable as default" default y depends on GCC_6_or_later && ! WINDOWS && ! ARCH_MIPS && ! ARCH_AVR && ! ARCH_PRU + depends on !(ARCH_RISCV && BARE_METAL) help Pass --enable-default-pie to crossgcc's configure. diff --git a/config/configure.in.in b/config/configure.in.in index c67fd35f..91093c2d 100644 --- a/config/configure.in.in +++ b/config/configure.in.in @@ -36,14 +36,14 @@ config CONFIGURE_has_libtool_2_4_or_newer config CONFIGURE_has_libtoolize_2_4_or_newer @KCONFIG_libtoolize_2_4_or_newer@ -config CONFIGURE_has_autoconf_2_65_or_newer - @KCONFIG_autoconf_2_65_or_newer@ +config CONFIGURE_has_autoconf_2_71_or_newer + @KCONFIG_autoconf_2_71_or_newer@ -config CONFIGURE_has_autoreconf_2_65_or_newer - @KCONFIG_autoreconf_2_65_or_newer@ +config CONFIGURE_has_autoreconf_2_71_or_newer + @KCONFIG_autoreconf_2_71_or_newer@ -config CONFIGURE_has_automake_1_15_or_newer - @KCONFIG_automake_1_15_or_newer@ +config CONFIGURE_has_automake_1_16_or_newer + @KCONFIG_automake_1_16_or_newer@ config CONFIGURE_has_gnu_m4_1_4_12_or_newer @KCONFIG_gnu_m4_1_4_12_or_newer@ diff --git a/configure.ac b/configure.ac index 7e1a9acd..d6e336fe 100644 --- a/configure.ac +++ b/configure.ac @@ -1,7 +1,7 @@ # -*- Autoconf -*- # Process this file with autoconf to produce a configure script. -AC_PREREQ([2.69]) +AC_PREREQ([2.71]) AC_INIT( [crosstool-NG], @@ -94,7 +94,7 @@ AM_PROG_CC_C_O AC_PROG_CXX AC_PROG_CPP AC_PROG_LEX([noyywrap]) -AC_PROG_YACC +AX_PROG_BISON AS_IF([test -z "$CC" -o -z "$CXX"], [AC_MSG_ERROR([no suitable compiler found])]) @@ -226,25 +226,25 @@ CTNG_PROG_VERSION_REQ_ANY([LIBTOOLIZE], [libtoolize_2_4_or_newer]) CTNG_PROG_VERSION([AUTOCONF], - [GNU autoconf >= 2.65], + [GNU autoconf >= 2.71], [autoconf], [autoconf], [\(GNU Autoconf\) ([3-9]\.|2\.[7-9][0-9]|2\.6[5-9])], - [autoconf_2_65_or_newer]) + [autoconf_2_71_or_newer]) CTNG_PROG_VERSION([AUTORECONF], - [GNU autoreconf >= 2.63], + [GNU autoreconf >= 2.71], [autoreconf], [autoreconf], [\(GNU Autoconf\) ([3-9]\.|2\.[7-9][0-9]|2\.6[5-9])], - [autoreconf_2_65_or_newer]) + [autoreconf_2_71_or_newer]) CTNG_PROG_VERSION([AUTOMAKE], - [GNU automake >= 1.15], + [GNU automake >= 1.16], [automake], [automake], [\(GNU automake\) ([2-9]\.|1\.[2-9][0-9]|1\.1[5-9])], - [automake_1_15_or_newer]) + [automake_1_16_or_newer]) CTNG_PROG_VERSION([M4], [GNU m4 >= 1.4.12], @@ -1,7 +1,7 @@ These autoconf helper macros come from various sources: -- ax_*.m4: autoconf-archive, version 2017.09.28 (copied) -- pkg.m4: pkg-config, version 0.29.2 (run configure, then copy) -- gettext.m4, iconv.m4, intlmacosx.m4, nls.m4: gettext 0.19.8 +- ax_*.m4: autoconf-archive, version 2022.09.03 (copied) +- pkg.m4: pkgconf, version 1.8.0 (run configure, then copy) +- gettext.m4, iconv.m4, intlmacosx.m4, nls.m4: gettext 0.21.9 - ctng_*.m4: obviously, implemented anew - po.m4: a local dummy stub for gettext's version diff --git a/m4/ax_cxx_compile_stdcxx.m4 b/m4/ax_cxx_compile_stdcxx.m4 index 9e9eaeda..a3d964c6 100644 --- a/m4/ax_cxx_compile_stdcxx.m4 +++ b/m4/ax_cxx_compile_stdcxx.m4 @@ -10,13 +10,13 @@ # # Check for baseline language coverage in the compiler for the specified # version of the C++ standard. If necessary, add switches to CXX and -# CXXCPP to enable support. VERSION may be '11' (for the C++11 standard) -# or '14' (for the C++14 standard). +# CXXCPP to enable support. VERSION may be '11', '14', '17', or '20' for +# the respective C++ standard version. # # The second argument, if specified, indicates whether you insist on an # extended mode (e.g. -std=gnu++11) or a strict conformance mode (e.g. # -std=c++11). If neither is specified, you get whatever works, with -# preference for an extended mode. +# preference for no added switch, and then for an extended mode. # # The third argument, if specified 'mandatory' or if left unspecified, # indicates that baseline support for the specified C++ standard is @@ -34,13 +34,16 @@ # Copyright (c) 2015 Paul Norman <penorman@mac.com> # Copyright (c) 2015 Moritz Klammler <moritz@klammler.eu> # Copyright (c) 2016, 2018 Krzesimir Nowak <qdlacz@gmail.com> +# Copyright (c) 2019 Enji Cooper <yaneurabeya@gmail.com> +# Copyright (c) 2020 Jason Merrill <jason@redhat.com> +# Copyright (c) 2021 Jörn Heusipp <osmanx@problemloesungsmaschine.de> # # Copying and distribution of this file, with or without modification, are # permitted in any medium without royalty provided the copyright notice # and this notice are preserved. This file is offered as-is, without any # warranty. -#serial 10 +#serial 15 dnl This macro is based on the code from the AX_CXX_COMPILE_STDCXX_11 macro dnl (serial version number 13). @@ -49,6 +52,7 @@ AC_DEFUN([AX_CXX_COMPILE_STDCXX], [dnl m4_if([$1], [11], [ax_cxx_compile_alternatives="11 0x"], [$1], [14], [ax_cxx_compile_alternatives="14 1y"], [$1], [17], [ax_cxx_compile_alternatives="17 1z"], + [$1], [20], [ax_cxx_compile_alternatives="20"], [m4_fatal([invalid first argument `$1' to AX_CXX_COMPILE_STDCXX])])dnl m4_if([$2], [], [], [$2], [ext], [], @@ -61,6 +65,16 @@ AC_DEFUN([AX_CXX_COMPILE_STDCXX], [dnl AC_LANG_PUSH([C++])dnl ac_success=no + m4_if([$2], [], [dnl + AC_CACHE_CHECK(whether $CXX supports C++$1 features by default, + ax_cv_cxx_compile_cxx$1, + [AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])], + [ax_cv_cxx_compile_cxx$1=yes], + [ax_cv_cxx_compile_cxx$1=no])]) + if test x$ax_cv_cxx_compile_cxx$1 = xyes; then + ac_success=yes + fi]) + m4_if([$2], [noext], [], [dnl if test x$ac_success = xno; then for alternative in ${ax_cxx_compile_alternatives}; do @@ -139,7 +153,6 @@ m4_define([_AX_CXX_COMPILE_STDCXX_testbody_11], _AX_CXX_COMPILE_STDCXX_testbody_new_in_11 ) - dnl Test body for checking C++14 support m4_define([_AX_CXX_COMPILE_STDCXX_testbody_14], @@ -147,12 +160,24 @@ m4_define([_AX_CXX_COMPILE_STDCXX_testbody_14], _AX_CXX_COMPILE_STDCXX_testbody_new_in_14 ) +dnl Test body for checking C++17 support + m4_define([_AX_CXX_COMPILE_STDCXX_testbody_17], _AX_CXX_COMPILE_STDCXX_testbody_new_in_11 _AX_CXX_COMPILE_STDCXX_testbody_new_in_14 _AX_CXX_COMPILE_STDCXX_testbody_new_in_17 ) +dnl Test body for checking C++20 support + +m4_define([_AX_CXX_COMPILE_STDCXX_testbody_20], + _AX_CXX_COMPILE_STDCXX_testbody_new_in_11 + _AX_CXX_COMPILE_STDCXX_testbody_new_in_14 + _AX_CXX_COMPILE_STDCXX_testbody_new_in_17 + _AX_CXX_COMPILE_STDCXX_testbody_new_in_20 +) + + dnl Tests for new features in C++11 m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_11], [[ @@ -164,7 +189,11 @@ m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_11], [[ #error "This is not a C++ compiler" -#elif __cplusplus < 201103L +// MSVC always sets __cplusplus to 199711L in older versions; newer versions +// only set it correctly if /Zc:__cplusplus is specified as well as a +// /std:c++NN switch: +// https://devblogs.microsoft.com/cppblog/msvc-now-correctly-reports-__cplusplus/ +#elif __cplusplus < 201103L && !defined _MSC_VER #error "This is not a C++11 compiler" @@ -189,11 +218,13 @@ namespace cxx11 struct Base { + virtual ~Base() {} virtual void f() {} }; struct Derived : public Base { + virtual ~Derived() override {} virtual void f() override {} }; @@ -453,7 +484,7 @@ m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_14], [[ #error "This is not a C++ compiler" -#elif __cplusplus < 201402L +#elif __cplusplus < 201402L && !defined _MSC_VER #error "This is not a C++14 compiler" @@ -577,7 +608,7 @@ m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_17], [[ #error "This is not a C++ compiler" -#elif __cplusplus < 201703L +#elif __cplusplus < 201703L && !defined _MSC_VER #error "This is not a C++17 compiler" @@ -943,6 +974,36 @@ namespace cxx17 } // namespace cxx17 -#endif // __cplusplus < 201703L +#endif // __cplusplus < 201703L && !defined _MSC_VER + +]]) + + +dnl Tests for new features in C++20 + +m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_20], [[ + +#ifndef __cplusplus + +#error "This is not a C++ compiler" + +#elif __cplusplus < 202002L && !defined _MSC_VER + +#error "This is not a C++20 compiler" + +#else + +#include <version> + +namespace cxx20 +{ + +// As C++20 supports feature test macros in the standard, there is no +// immediate need to actually test for feature availability on the +// Autoconf side. + +} // namespace cxx20 + +#endif // __cplusplus < 202002L && !defined _MSC_VER ]]) diff --git a/m4/ax_prog_bison.m4 b/m4/ax_prog_bison.m4 new file mode 100644 index 00000000..dc115dd6 --- /dev/null +++ b/m4/ax_prog_bison.m4 @@ -0,0 +1,64 @@ +# =========================================================================== +# https://www.gnu.org/software/autoconf-archive/ax_prog_bison.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_PROG_BISON(ACTION-IF-TRUE,ACTION-IF-FALSE) +# +# DESCRIPTION +# +# Check whether bison is the parser generator. Run ACTION-IF-TRUE if +# successful, ACTION-IF-FALSE otherwise +# +# LICENSE +# +# Copyright (c) 2009 Francesco Salvestrini <salvestrini@users.sourceforge.net> +# Copyright (c) 2010 Diego Elio Petteno` <flameeyes@gmail.com> +# +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation; either version 2 of the License, or (at your +# option) any later version. +# +# This program 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 General +# Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program. If not, see <https://www.gnu.org/licenses/>. +# +# As a special exception, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well. + +#serial 10 + +AC_DEFUN([AX_PROG_BISON], [ + AC_REQUIRE([AC_PROG_YACC]) + AC_REQUIRE([AC_PROG_EGREP]) + + AC_CACHE_CHECK([if bison is the parser generator],[ax_cv_prog_bison],[ + AS_IF([$YACC --version 2>/dev/null | $EGREP -q '^bison '], + [ax_cv_prog_bison=yes], [ax_cv_prog_bison=no]) + ]) + AS_IF([test "$ax_cv_prog_bison" = "yes"], [ + dnl replace the yacc-compatible compiler with the real bison, as + dnl otherwise autoconf limits us to the POSIX yacc. + dnl We also change the generated filename to the old one, so that + dnl automake's ylwrap can deal with it. + YACC="${YACC% -y} -o y.tab.c" + ] m4_ifnblank([$1], [[$1]]), + m4_ifnblank([$2], [[$2]]) + ) +]) diff --git a/m4/gettext.m4 b/m4/gettext.m4 index eef5073b..4f25a27d 100644 --- a/m4/gettext.m4 +++ b/m4/gettext.m4 @@ -1,15 +1,15 @@ -# gettext.m4 serial 68 (gettext-0.19.8) -dnl Copyright (C) 1995-2014, 2016 Free Software Foundation, Inc. +# gettext.m4 serial 71 (gettext-0.20.2) +dnl Copyright (C) 1995-2014, 2016, 2018-2020 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can be used in projects which are not available under -dnl the GNU General Public License or the GNU Library General Public +dnl the GNU General Public License or the GNU Lesser General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered -dnl by the GNU Library General Public License, and the rest of the GNU +dnl by the GNU Lesser General Public License, and the rest of the GNU dnl gettext package is covered by the GNU General Public License. dnl They are *not* in the public domain. @@ -20,15 +20,13 @@ dnl Bruno Haible <haible@clisp.cons.org>, 2000-2006, 2008-2010. dnl Macro to add for using GNU gettext. dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]). -dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The -dnl default (if it is not specified or empty) is 'no-libtool'. -dnl INTLSYMBOL should be 'external' for packages with no intl directory, -dnl and 'no-libtool' or 'use-libtool' for packages with an intl directory. +dnl INTLSYMBOL must be one of 'external', 'use-libtool'. +dnl INTLSYMBOL should be 'external' for packages other than GNU gettext, and +dnl 'use-libtool' for the packages 'gettext-runtime' and 'gettext-tools'. dnl If INTLSYMBOL is 'use-libtool', then a libtool library dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static, dnl depending on --{enable,disable}-{shared,static} and on the presence of -dnl AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library -dnl $(top_builddir)/intl/libintl.a will be created. +dnl AM-DISABLE-SHARED). dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext dnl implementations (in libc or libintl) without the ngettext() function dnl will be ignored. If NEEDSYMBOL is specified and is @@ -57,19 +55,17 @@ dnl AC_DEFUN([AM_GNU_GETTEXT], [ dnl Argument checking. - ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], , + ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [use-libtool], , [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT -])])])])]) +])])])]) ifelse(ifelse([$1], [], [old])[]ifelse([$1], [no-libtool], [old]), [old], - [AC_DIAGNOSE([obsolete], [Use of AM_GNU_GETTEXT without [external] argument is deprecated.])]) + [errprint([ERROR: Use of AM_GNU_GETTEXT without [external] argument is no longer supported. +])]) ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], , [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT ])])])]) define([gt_included_intl], - ifelse([$1], [external], - ifdef([AM_GNU_GETTEXT_][INTL_SUBDIR], [yes], [no]), - [yes])) - define([gt_libtool_suffix_prefix], ifelse([$1], [use-libtool], [l], [])) + ifelse([$1], [external], [no], [yes])) gt_NEEDS_INIT AM_GNU_GETTEXT_NEED([$2]) @@ -91,8 +87,7 @@ AC_DEFUN([AM_GNU_GETTEXT], dnl again, outside any 'if'. There are two solutions: dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'. dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE. - dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not - dnl documented, we avoid it. + dnl Since AC_PROVIDE_IFELSE is not documented, we avoid it. ifelse(gt_included_intl, yes, , [ AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) ]) @@ -278,8 +273,8 @@ return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION dnl Mark actions used to generate GNU NLS library. BUILD_INCLUDED_LIBINTL=yes USE_INCLUDED_LIBINTL=yes - LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV $LIBTHREAD" - LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV $LTLIBTHREAD" + LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.la $LIBICONV $LIBTHREAD" + LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.la $LTLIBICONV $LTLIBTHREAD" LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` fi @@ -347,43 +342,14 @@ return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION fi ifelse(gt_included_intl, yes, [ - dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL - dnl to 'yes' because some of the testsuite requires it. - if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then - BUILD_INCLUDED_LIBINTL=yes - fi + dnl In GNU gettext we have to set BUILD_INCLUDED_LIBINTL to 'yes' + dnl because some of the testsuite requires it. + BUILD_INCLUDED_LIBINTL=yes dnl Make all variables we use known to autoconf. AC_SUBST([BUILD_INCLUDED_LIBINTL]) AC_SUBST([USE_INCLUDED_LIBINTL]) AC_SUBST([CATOBJEXT]) - - dnl For backward compatibility. Some configure.ins may be using this. - nls_cv_header_intl= - nls_cv_header_libgt= - - dnl For backward compatibility. Some Makefiles may be using this. - DATADIRNAME=share - AC_SUBST([DATADIRNAME]) - - dnl For backward compatibility. Some Makefiles may be using this. - INSTOBJEXT=.mo - AC_SUBST([INSTOBJEXT]) - - dnl For backward compatibility. Some Makefiles may be using this. - GENCAT=gencat - AC_SUBST([GENCAT]) - - dnl For backward compatibility. Some Makefiles may be using this. - INTLOBJS= - if test "$USE_INCLUDED_LIBINTL" = yes; then - INTLOBJS="\$(GETTOBJS)" - fi - AC_SUBST([INTLOBJS]) - - dnl Enable libtool support if the surrounding package wishes it. - INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix - AC_SUBST([INTL_LIBTOOL_SUFFIX_PREFIX]) ]) dnl For backward compatibility. Some Makefiles may be using this. diff --git a/m4/iconv.m4 b/m4/iconv.m4 index aa159c53..e593b727 100644 --- a/m4/iconv.m4 +++ b/m4/iconv.m4 @@ -1,5 +1,6 @@ -# iconv.m4 serial 19 (gettext-0.18.2) -dnl Copyright (C) 2000-2002, 2007-2014, 2016 Free Software Foundation, Inc. +# iconv.m4 serial 21 +dnl Copyright (C) 2000-2002, 2007-2014, 2016-2020 Free Software Foundation, +dnl Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -167,15 +168,27 @@ AC_DEFUN([AM_ICONV_LINK], #endif /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is provided. */ - if (/* Try standardized names. */ - iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1) - /* Try IRIX, OSF/1 names. */ - && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1) - /* Try AIX names. */ - && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1) - /* Try HP-UX names. */ - && iconv_open ("utf8", "eucJP") == (iconv_t)(-1)) - result |= 16; + { + /* Try standardized names. */ + iconv_t cd1 = iconv_open ("UTF-8", "EUC-JP"); + /* Try IRIX, OSF/1 names. */ + iconv_t cd2 = iconv_open ("UTF-8", "eucJP"); + /* Try AIX names. */ + iconv_t cd3 = iconv_open ("UTF-8", "IBM-eucJP"); + /* Try HP-UX names. */ + iconv_t cd4 = iconv_open ("utf8", "eucJP"); + if (cd1 == (iconv_t)(-1) && cd2 == (iconv_t)(-1) + && cd3 == (iconv_t)(-1) && cd4 == (iconv_t)(-1)) + result |= 16; + if (cd1 != (iconv_t)(-1)) + iconv_close (cd1); + if (cd2 != (iconv_t)(-1)) + iconv_close (cd2); + if (cd3 != (iconv_t)(-1)) + iconv_close (cd3); + if (cd4 != (iconv_t)(-1)) + iconv_close (cd4); + } return result; ]])], [am_cv_func_iconv_works=yes], , @@ -258,14 +271,18 @@ size_t iconv(); am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` AC_MSG_RESULT([ $am_cv_proto_iconv]) - AC_DEFINE_UNQUOTED([ICONV_CONST], [$am_cv_proto_iconv_arg1], - [Define as const if the declaration of iconv() needs const.]) - dnl Also substitute ICONV_CONST in the gnulib generated <iconv.h>. - m4_ifdef([gl_ICONV_H_DEFAULTS], - [AC_REQUIRE([gl_ICONV_H_DEFAULTS]) - if test -n "$am_cv_proto_iconv_arg1"; then - ICONV_CONST="const" - fi - ]) + else + dnl When compiling GNU libiconv on a system that does not have iconv yet, + dnl pick the POSIX compliant declaration without 'const'. + am_cv_proto_iconv_arg1="" fi + AC_DEFINE_UNQUOTED([ICONV_CONST], [$am_cv_proto_iconv_arg1], + [Define as const if the declaration of iconv() needs const.]) + dnl Also substitute ICONV_CONST in the gnulib generated <iconv.h>. + m4_ifdef([gl_ICONV_H_DEFAULTS], + [AC_REQUIRE([gl_ICONV_H_DEFAULTS]) + if test -n "$am_cv_proto_iconv_arg1"; then + ICONV_CONST="const" + fi + ]) ]) diff --git a/m4/intlmacosx.m4 b/m4/intlmacosx.m4 index aca924c6..ebd9937c 100644 --- a/m4/intlmacosx.m4 +++ b/m4/intlmacosx.m4 @@ -1,15 +1,15 @@ -# intlmacosx.m4 serial 5 (gettext-0.18.2) -dnl Copyright (C) 2004-2014, 2016 Free Software Foundation, Inc. +# intlmacosx.m4 serial 8 (gettext-0.20.2) +dnl Copyright (C) 2004-2014, 2016, 2019-2020 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can be used in projects which are not available under -dnl the GNU General Public License or the GNU Library General Public +dnl the GNU General Public License or the GNU Lesser General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered -dnl by the GNU Library General Public License, and the rest of the GNU +dnl by the GNU Lesser General Public License, and the rest of the GNU dnl gettext package is covered by the GNU General Public License. dnl They are *not* in the public domain. @@ -17,7 +17,7 @@ dnl Checks for special options needed on Mac OS X. dnl Defines INTL_MACOSX_LIBS. AC_DEFUN([gt_INTL_MACOSX], [ - dnl Check for API introduced in Mac OS X 10.2. + dnl Check for API introduced in Mac OS X 10.4. AC_CACHE_CHECK([for CFPreferencesCopyAppValue], [gt_cv_func_CFPreferencesCopyAppValue], [gt_save_LIBS="$LIBS" @@ -33,23 +33,32 @@ AC_DEFUN([gt_INTL_MACOSX], AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], [1], [Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in the CoreFoundation framework.]) fi - dnl Check for API introduced in Mac OS X 10.3. - AC_CACHE_CHECK([for CFLocaleCopyCurrent], [gt_cv_func_CFLocaleCopyCurrent], + dnl Don't check for the API introduced in Mac OS X 10.5, CFLocaleCopyCurrent, + dnl because in macOS 10.13.4 it has the following behaviour: + dnl When two or more languages are specified in the + dnl "System Preferences > Language & Region > Preferred Languages" panel, + dnl it returns en_CC where CC is the territory (even when English is not among + dnl the preferred languages!). What we want instead is what + dnl CFLocaleCopyCurrent returned in earlier macOS releases and what + dnl CFPreferencesCopyAppValue still returns, namely ll_CC where ll is the + dnl first among the preferred languages and CC is the territory. + AC_CACHE_CHECK([for CFLocaleCopyPreferredLanguages], [gt_cv_func_CFLocaleCopyPreferredLanguages], [gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include <CoreFoundation/CFLocale.h>]], - [[CFLocaleCopyCurrent();]])], - [gt_cv_func_CFLocaleCopyCurrent=yes], - [gt_cv_func_CFLocaleCopyCurrent=no]) + [[CFLocaleCopyPreferredLanguages();]])], + [gt_cv_func_CFLocaleCopyPreferredLanguages=yes], + [gt_cv_func_CFLocaleCopyPreferredLanguages=no]) LIBS="$gt_save_LIBS"]) - if test $gt_cv_func_CFLocaleCopyCurrent = yes; then - AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], [1], - [Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the CoreFoundation framework.]) + if test $gt_cv_func_CFLocaleCopyPreferredLanguages = yes; then + AC_DEFINE([HAVE_CFLOCALECOPYPREFERREDLANGUAGES], [1], + [Define to 1 if you have the Mac OS X function CFLocaleCopyPreferredLanguages in the CoreFoundation framework.]) fi INTL_MACOSX_LIBS= - if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then + if test $gt_cv_func_CFPreferencesCopyAppValue = yes \ + || test $gt_cv_func_CFLocaleCopyPreferredLanguages = yes; then INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" fi AC_SUBST([INTL_MACOSX_LIBS]) diff --git a/m4/lib-ld.m4 b/m4/lib-ld.m4 index 6209de65..98c348fa 100644 --- a/m4/lib-ld.m4 +++ b/m4/lib-ld.m4 @@ -1,5 +1,5 @@ -# lib-ld.m4 serial 6 -dnl Copyright (C) 1996-2003, 2009-2016 Free Software Foundation, Inc. +# lib-ld.m4 serial 9 +dnl Copyright (C) 1996-2003, 2009-2020 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -47,73 +47,122 @@ if test "${PATH_SEPARATOR+set}" != set; then } fi -ac_prog=ld -if test "$GCC" = yes; then - # Check if gcc -print-prog-name=ld gives a path. +if test -n "$LD"; then + AC_MSG_CHECKING([for ld]) +elif test "$GCC" = yes; then AC_MSG_CHECKING([for ld used by $CC]) - case $host in - *-*-mingw*) - # gcc leaves a trailing carriage return which upsets mingw - ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; - *) - ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; - esac - case $ac_prog in - # Accept absolute paths. - [[\\/]]* | ?:[[\\/]]*) - re_direlt='/[[^/]][[^/]]*/\.\./' - # Canonicalize the pathname of ld - ac_prog=`echo "$ac_prog"| sed 's%\\\\%/%g'` - while echo "$ac_prog" | grep "$re_direlt" > /dev/null 2>&1; do - ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` - done - test -z "$LD" && LD="$ac_prog" - ;; - "") - # If it fails, then pretend we aren't using GCC. - ac_prog=ld - ;; - *) - # If it is relative, then search for the first ld in PATH. - with_gnu_ld=unknown - ;; - esac elif test "$with_gnu_ld" = yes; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi -AC_CACHE_VAL([acl_cv_path_LD], -[if test -z "$LD"; then - acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$acl_save_ifs" - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then - acl_cv_path_LD="$ac_dir/$ac_prog" - # Check to see if the program is GNU ld. I'd rather use --version, - # but apparently some variants of GNU ld only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - case `"$acl_cv_path_LD" -v 2>&1 </dev/null` in - *GNU* | *'with BFD'*) - test "$with_gnu_ld" != no && break - ;; - *) - test "$with_gnu_ld" != yes && break - ;; +if test -n "$LD"; then + # Let the user override the test with a path. + : +else + AC_CACHE_VAL([acl_cv_path_LD], + [ + acl_cv_path_LD= # Final result of this test + ac_prog=ld # Program to search in $PATH + if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + acl_output=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + acl_output=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $acl_output in + # Accept absolute paths. + [[\\/]]* | ?:[[\\/]]*) + re_direlt='/[[^/]][[^/]]*/\.\./' + # Canonicalize the pathname of ld + acl_output=`echo "$acl_output" | sed 's%\\\\%/%g'` + while echo "$acl_output" | grep "$re_direlt" > /dev/null 2>&1; do + acl_output=`echo $acl_output | sed "s%$re_direlt%/%"` + done + # Got the pathname. No search in PATH is needed. + acl_cv_path_LD="$acl_output" + ac_prog= + ;; + "") + # If it fails, then pretend we aren't using GCC. + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; esac fi - done - IFS="$acl_save_ifs" -else - acl_cv_path_LD="$LD" # Let the user override the test with a path. -fi]) -LD="$acl_cv_path_LD" + if test -n "$ac_prog"; then + # Search for $ac_prog in $PATH. + acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$acl_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + acl_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$acl_cv_path_LD" -v 2>&1 </dev/null` in + *GNU* | *'with BFD'*) + test "$with_gnu_ld" != no && break + ;; + *) + test "$with_gnu_ld" != yes && break + ;; + esac + fi + done + IFS="$acl_save_ifs" + fi + case $host in + *-*-aix*) + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined __powerpc64__ || defined _ARCH_PPC64 + int ok; + #else + error fail + #endif + ]])], + [# The compiler produces 64-bit code. Add option '-b64' so that the + # linker groks 64-bit object files. + case "$acl_cv_path_LD " in + *" -b64 "*) ;; + *) acl_cv_path_LD="$acl_cv_path_LD -b64" ;; + esac + ], []) + ;; + sparc64-*-netbsd*) + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined __sparcv9 || defined __arch64__ + int ok; + #else + error fail + #endif + ]])], + [], + [# The compiler produces 32-bit code. Add option '-m elf32_sparc' + # so that the linker groks 32-bit object files. + case "$acl_cv_path_LD " in + *" -m elf32_sparc "*) ;; + *) acl_cv_path_LD="$acl_cv_path_LD -m elf32_sparc" ;; + esac + ]) + ;; + esac + ]) + LD="$acl_cv_path_LD" +fi if test -n "$LD"; then AC_MSG_RESULT([$LD]) else AC_MSG_RESULT([no]) + AC_MSG_ERROR([no acceptable ld found in \$PATH]) fi -test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) AC_LIB_PROG_LD_GNU ]) diff --git a/m4/lib-link.m4 b/m4/lib-link.m4 index 2f518553..eecf70ec 100644 --- a/m4/lib-link.m4 +++ b/m4/lib-link.m4 @@ -1,12 +1,12 @@ -# lib-link.m4 serial 26 (gettext-0.18.2) -dnl Copyright (C) 2001-2016 Free Software Foundation, Inc. +# lib-link.m4 serial 31 +dnl Copyright (C) 2001-2020 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. -AC_PREREQ([2.54]) +AC_PREREQ([2.61]) dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and dnl the libraries corresponding to explicit and implicit dependencies. @@ -124,8 +124,8 @@ dnl acl_hardcode_direct, dnl acl_hardcode_minus_L. AC_DEFUN([AC_LIB_RPATH], [ - dnl Tell automake >= 1.10 to complain if config.rpath is missing. - m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])]) + dnl Complain if config.rpath is missing. + AC_REQUIRE_AUX_FILE([config.rpath]) AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host @@ -187,17 +187,17 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY], pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) pushdef([PACKLIBS],[m4_ifdef([acl_frompackage_]NAME, [acl_libsinpackage_]PACKUP, lib[$1])]) - dnl Autoconf >= 2.61 supports dots in --with options. - pushdef([P_A_C_K],[m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.61]),[-1],[m4_translit(PACK,[.],[_])],PACK)]) dnl By default, look in $includedir and $libdir. use_additional=yes AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" + eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\" + eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\" ]) - AC_ARG_WITH(P_A_C_K[-prefix], -[[ --with-]]P_A_C_K[[-prefix[=DIR] search for ]PACKLIBS[ in DIR/include and DIR/lib - --without-]]P_A_C_K[[-prefix don't search for ]PACKLIBS[ in includedir and libdir]], + AC_ARG_WITH(PACK[-prefix], +[[ --with-]]PACK[[-prefix[=DIR] search for ]PACKLIBS[ in DIR/include and DIR/lib + --without-]]PACK[[-prefix don't search for ]PACKLIBS[ in includedir and libdir]], [ if test "X$withval" = "Xno"; then use_additional=no @@ -206,17 +206,23 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY], AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" + eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\" + eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\" ]) else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" - if test "$acl_libdirstem2" != "$acl_libdirstem" \ - && ! test -d "$withval/$acl_libdirstem"; then - additional_libdir="$withval/$acl_libdirstem2" - fi + additional_libdir2="$withval/$acl_libdirstem2" + additional_libdir3="$withval/$acl_libdirstem3" fi fi ]) + if test "X$additional_libdir2" = "X$additional_libdir"; then + additional_libdir2= + fi + if test "X$additional_libdir3" = "X$additional_libdir"; then + additional_libdir3= + fi dnl Search the library and its dependencies in $additional_libdir and dnl $LDFLAGS. Using breadth-first-seach. LIB[]NAME= @@ -272,48 +278,54 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY], shrext= fi if test $use_additional = yes; then - dir="$additional_libdir" - dnl The same code as in the loop below: - dnl First look for a shared library. - if test -n "$acl_shlibext"; then - if test -f "$dir/$libname$shrext"; then - found_dir="$dir" - found_so="$dir/$libname$shrext" - else - if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then - ver=`(cd "$dir" && \ - for f in "$libname$shrext".*; do echo "$f"; done \ - | sed -e "s,^$libname$shrext\\\\.,," \ - | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ - | sed 1q ) 2>/dev/null` - if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then - found_dir="$dir" - found_so="$dir/$libname$shrext.$ver" + for additional_libdir_variable in additional_libdir additional_libdir2 additional_libdir3; do + if test "X$found_dir" = "X"; then + eval dir=\$$additional_libdir_variable + if test -n "$dir"; then + dnl The same code as in the loop below: + dnl First look for a shared library. + if test -n "$acl_shlibext"; then + if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then + found_dir="$dir" + found_so="$dir/$libname$shrext" + else + if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then + ver=`(cd "$dir" && \ + for f in "$libname$shrext".*; do echo "$f"; done \ + | sed -e "s,^$libname$shrext\\\\.,," \ + | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ + | sed 1q ) 2>/dev/null` + if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then + found_dir="$dir" + found_so="$dir/$libname$shrext.$ver" + fi + else + eval library_names=\"$acl_library_names_spec\" + for f in $library_names; do + if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then + found_dir="$dir" + found_so="$dir/$f" + break + fi + done + fi + fi fi - else - eval library_names=\"$acl_library_names_spec\" - for f in $library_names; do - if test -f "$dir/$f"; then + dnl Then look for a static library. + if test "X$found_dir" = "X"; then + if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then found_dir="$dir" - found_so="$dir/$f" - break + found_a="$dir/$libname.$acl_libext" fi - done + fi + if test "X$found_dir" != "X"; then + if test -f "$dir/$libname.la"; then + found_la="$dir/$libname.la" + fi + fi fi fi - fi - dnl Then look for a static library. - if test "X$found_dir" = "X"; then - if test -f "$dir/$libname.$acl_libext"; then - found_dir="$dir" - found_a="$dir/$libname.$acl_libext" - fi - fi - if test "X$found_dir" != "X"; then - if test -f "$dir/$libname.la"; then - found_la="$dir/$libname.la" - fi - fi + done fi if test "X$found_dir" = "X"; then for x in $LDFLAGS $LTLIB[]NAME; do @@ -323,7 +335,7 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY], dir=`echo "X$x" | sed -e 's/^X-L//'` dnl First look for a shared library. if test -n "$acl_shlibext"; then - if test -f "$dir/$libname$shrext"; then + if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else @@ -333,14 +345,14 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY], | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` - if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then + if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do - if test -f "$dir/$f"; then + if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break @@ -351,7 +363,7 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY], fi dnl Then look for a static library. if test "X$found_dir" = "X"; then - if test -f "$dir/$libname.$acl_libext"; then + if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi @@ -377,7 +389,8 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY], dnl standard /usr/lib. if test "$enable_rpath" = no \ || test "X$found_dir" = "X/usr/$acl_libdirstem" \ - || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then + || test "X$found_dir" = "X/usr/$acl_libdirstem2" \ + || test "X$found_dir" = "X/usr/$acl_libdirstem3"; then dnl No hardcoding is needed. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else @@ -477,6 +490,13 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY], fi additional_includedir="$basedir/include" ;; + */$acl_libdirstem3 | */$acl_libdirstem3/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem3/"'*$,,'` + if test "$name" = '$1'; then + LIB[]NAME[]_PREFIX="$basedir" + fi + additional_includedir="$basedir/include" + ;; esac if test "X$additional_includedir" != "X"; then dnl Potentially add $additional_includedir to $INCNAME. @@ -527,19 +547,21 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY], for dep in $dependency_libs; do case "$dep" in -L*) - additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` - dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME. + dependency_libdir=`echo "X$dep" | sed -e 's/^X-L//'` + dnl Potentially add $dependency_libdir to $LIBNAME and $LTLIBNAME. dnl But don't add it dnl 1. if it's the standard /usr/lib, dnl 2. if it's /usr/local/lib and we are using GCC on Linux, dnl 3. if it's already present in $LDFLAGS or the already dnl constructed $LIBNAME, dnl 4. if it doesn't exist as a directory. - if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \ - && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then + if test "X$dependency_libdir" != "X/usr/$acl_libdirstem" \ + && test "X$dependency_libdir" != "X/usr/$acl_libdirstem2" \ + && test "X$dependency_libdir" != "X/usr/$acl_libdirstem3"; then haveit= - if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \ - || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then + if test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem" \ + || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem2" \ + || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem3"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; @@ -550,29 +572,29 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY], haveit= for x in $LDFLAGS $LIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - if test "X$x" = "X-L$additional_libdir"; then + if test "X$x" = "X-L$dependency_libdir"; then haveit=yes break fi done if test -z "$haveit"; then - if test -d "$additional_libdir"; then - dnl Really add $additional_libdir to $LIBNAME. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir" + if test -d "$dependency_libdir"; then + dnl Really add $dependency_libdir to $LIBNAME. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$dependency_libdir" fi fi haveit= for x in $LDFLAGS $LTLIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - if test "X$x" = "X-L$additional_libdir"; then + if test "X$x" = "X-L$dependency_libdir"; then haveit=yes break fi done if test -z "$haveit"; then - if test -d "$additional_libdir"; then - dnl Really add $additional_libdir to $LTLIBNAME. - LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir" + if test -d "$dependency_libdir"; then + dnl Really add $dependency_libdir to $LTLIBNAME. + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$dependency_libdir" fi fi fi @@ -670,7 +692,6 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY], LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" done fi - popdef([P_A_C_K]) popdef([PACKLIBS]) popdef([PACKUP]) popdef([PACK]) @@ -721,7 +742,8 @@ AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS], dir="$next" dnl No need to hardcode the standard /usr/lib. if test "X$dir" != "X/usr/$acl_libdirstem" \ - && test "X$dir" != "X/usr/$acl_libdirstem2"; then + && test "X$dir" != "X/usr/$acl_libdirstem2" \ + && test "X$dir" != "X/usr/$acl_libdirstem3"; then rpathdirs="$rpathdirs $dir" fi next= @@ -731,7 +753,8 @@ AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS], -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'` dnl No need to hardcode the standard /usr/lib. if test "X$dir" != "X/usr/$acl_libdirstem" \ - && test "X$dir" != "X/usr/$acl_libdirstem2"; then + && test "X$dir" != "X/usr/$acl_libdirstem2" \ + && test "X$dir" != "X/usr/$acl_libdirstem3"; then rpathdirs="$rpathdirs $dir" fi next= ;; diff --git a/m4/lib-prefix.m4 b/m4/lib-prefix.m4 index 6851031d..07cd8b9e 100644 --- a/m4/lib-prefix.m4 +++ b/m4/lib-prefix.m4 @@ -1,18 +1,11 @@ -# lib-prefix.m4 serial 7 (gettext-0.18) -dnl Copyright (C) 2001-2005, 2008-2016 Free Software Foundation, Inc. +# lib-prefix.m4 serial 17 +dnl Copyright (C) 2001-2005, 2008-2020 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. -dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and -dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't -dnl require excessive bracketing. -ifdef([AC_HELP_STRING], -[AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])], -[AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])]) - dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed dnl to access previously installed libraries. The basic assumption is that dnl a user will want packages to use other packages he previously installed @@ -32,9 +25,9 @@ AC_DEFUN([AC_LIB_PREFIX], eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) - AC_LIB_ARG_WITH([lib-prefix], -[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib - --without-lib-prefix don't search for libraries in includedir and libdir], + AC_ARG_WITH([lib-prefix], +[[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib + --without-lib-prefix don't search for libraries in includedir and libdir]], [ if test "X$withval" = "Xno"; then use_additional=no @@ -154,71 +147,174 @@ AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX], ]) dnl AC_LIB_PREPARE_MULTILIB creates -dnl - a variable acl_libdirstem, containing the basename of the libdir, either -dnl "lib" or "lib64" or "lib/64", -dnl - a variable acl_libdirstem2, as a secondary possible value for -dnl acl_libdirstem, either the same as acl_libdirstem or "lib/sparcv9" or -dnl "lib/amd64". +dnl - a function acl_is_expected_elfclass, that tests whether standard input +dnl has a 32-bit or 64-bit ELF header, depending on the host CPU ABI, +dnl - 3 variables acl_libdirstem, acl_libdirstem2, acl_libdirstem3, containing +dnl the basename of the libdir to try in turn, either "lib" or "lib64" or +dnl "lib/64" or "lib32" or "lib/sparcv9" or "lib/amd64" or similar. AC_DEFUN([AC_LIB_PREPARE_MULTILIB], [ - dnl There is no formal standard regarding lib and lib64. - dnl On glibc systems, the current practice is that on a system supporting + dnl There is no formal standard regarding lib, lib32, and lib64. + dnl On most glibc systems, the current practice is that on a system supporting dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under - dnl $prefix/lib64 and 32-bit libraries go under $prefix/lib. We determine - dnl the compiler's default mode by looking at the compiler's library search - dnl path. If at least one of its elements ends in /lib64 or points to a - dnl directory whose absolute pathname ends in /lib64, we assume a 64-bit ABI. - dnl Otherwise we use the default, namely "lib". + dnl $prefix/lib64 and 32-bit libraries go under $prefix/lib. However, on + dnl Arch Linux based distributions, it's the opposite: 32-bit libraries go + dnl under $prefix/lib32 and 64-bit libraries go under $prefix/lib. + dnl We determine the compiler's default mode by looking at the compiler's + dnl library search path. If at least one of its elements ends in /lib64 or + dnl points to a directory whose absolute pathname ends in /lib64, we use that + dnl for 64-bit ABIs. Similarly for 32-bit ABIs. Otherwise we use the default, + dnl namely "lib". dnl On Solaris systems, the current practice is that on a system supporting dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under dnl $prefix/lib/64 (which is a symlink to either $prefix/lib/sparcv9 or dnl $prefix/lib/amd64) and 32-bit libraries go under $prefix/lib. AC_REQUIRE([AC_CANONICAL_HOST]) - acl_libdirstem=lib - acl_libdirstem2= - case "$host_os" in - solaris*) - dnl See Solaris 10 Software Developer Collection > Solaris 64-bit Developer's Guide > The Development Environment - dnl <http://docs.sun.com/app/docs/doc/816-5138/dev-env?l=en&a=view>. - dnl "Portable Makefiles should refer to any library directories using the 64 symbolic link." - dnl But we want to recognize the sparcv9 or amd64 subdirectory also if the - dnl symlink is missing, so we set acl_libdirstem2 too. - AC_CACHE_CHECK([for 64-bit host], [gl_cv_solaris_64bit], - [AC_EGREP_CPP([sixtyfour bits], [ -#ifdef _LP64 -sixtyfour bits -#endif - ], [gl_cv_solaris_64bit=yes], [gl_cv_solaris_64bit=no]) - ]) - if test $gl_cv_solaris_64bit = yes; then - acl_libdirstem=lib/64 - case "$host_cpu" in - sparc*) acl_libdirstem2=lib/sparcv9 ;; - i*86 | x86_64) acl_libdirstem2=lib/amd64 ;; - esac - fi - ;; - *) - searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` - if test -n "$searchpath"; then - acl_save_IFS="${IFS= }"; IFS=":" - for searchdir in $searchpath; do - if test -d "$searchdir"; then - case "$searchdir" in - */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; - */../ | */.. ) - # Better ignore directories of this form. They are misleading. - ;; - *) searchdir=`cd "$searchdir" && pwd` - case "$searchdir" in - */lib64 ) acl_libdirstem=lib64 ;; - esac ;; - esac - fi - done - IFS="$acl_save_IFS" - fi - ;; - esac - test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" + AC_REQUIRE([gl_HOST_CPU_C_ABI_32BIT]) + + AC_CACHE_CHECK([for ELF binary format], [gl_cv_elf], + [AC_EGREP_CPP([Extensible Linking Format], + [#ifdef __ELF__ + Extensible Linking Format + #endif + ], + [gl_cv_elf=yes], + [gl_cv_elf=no]) + ]) + if test $gl_cv_elf; then + # Extract the ELF class of a file (5th byte) in decimal. + # Cf. https://en.wikipedia.org/wiki/Executable_and_Linkable_Format#File_header + if od -A x < /dev/null >/dev/null 2>/dev/null; then + # Use POSIX od. + func_elfclass () + { + od -A n -t d1 -j 4 -N 1 + } + else + # Use BSD hexdump. + func_elfclass () + { + dd bs=1 count=1 skip=4 2>/dev/null | hexdump -e '1/1 "%3d "' + echo + } + fi +changequote(,)dnl + case $HOST_CPU_C_ABI_32BIT in + yes) + # 32-bit ABI. + acl_is_expected_elfclass () + { + test "`func_elfclass | sed -e 's/[ ]//g'`" = 1 + } + ;; + no) + # 64-bit ABI. + acl_is_expected_elfclass () + { + test "`func_elfclass | sed -e 's/[ ]//g'`" = 2 + } + ;; + *) + # Unknown. + acl_is_expected_elfclass () + { + : + } + ;; + esac +changequote([,])dnl + else + acl_is_expected_elfclass () + { + : + } + fi + + dnl Allow the user to override the result by setting acl_cv_libdirstems. + AC_CACHE_CHECK([for the common suffixes of directories in the library search path], + [acl_cv_libdirstems], + [dnl Try 'lib' first, because that's the default for libdir in GNU, see + dnl <https://www.gnu.org/prep/standards/html_node/Directory-Variables.html>. + acl_libdirstem=lib + acl_libdirstem2= + acl_libdirstem3= + case "$host_os" in + solaris*) + dnl See Solaris 10 Software Developer Collection > Solaris 64-bit Developer's Guide > The Development Environment + dnl <https://docs.oracle.com/cd/E19253-01/816-5138/dev-env/index.html>. + dnl "Portable Makefiles should refer to any library directories using the 64 symbolic link." + dnl But we want to recognize the sparcv9 or amd64 subdirectory also if the + dnl symlink is missing, so we set acl_libdirstem2 too. + if test $HOST_CPU_C_ABI_32BIT = no; then + acl_libdirstem2=lib/64 + case "$host_cpu" in + sparc*) acl_libdirstem3=lib/sparcv9 ;; + i*86 | x86_64) acl_libdirstem3=lib/amd64 ;; + esac + fi + ;; + *) + dnl If $CC generates code for a 32-bit ABI, the libraries are + dnl surely under $prefix/lib or $prefix/lib32, not $prefix/lib64. + dnl Similarly, if $CC generates code for a 64-bit ABI, the libraries + dnl are surely under $prefix/lib or $prefix/lib64, not $prefix/lib32. + dnl Find the compiler's search path. However, non-system compilers + dnl sometimes have odd library search paths. But we can't simply invoke + dnl '/usr/bin/gcc -print-search-dirs' because that would not take into + dnl account the -m32/-m31 or -m64 options from the $CC or $CFLAGS. + searchpath=`(LC_ALL=C $CC $CPPFLAGS $CFLAGS -print-search-dirs) 2>/dev/null \ + | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` + if test $HOST_CPU_C_ABI_32BIT != no; then + # 32-bit or unknown ABI. + if test -d /usr/lib32; then + acl_libdirstem2=lib32 + fi + fi + if test $HOST_CPU_C_ABI_32BIT != yes; then + # 64-bit or unknown ABI. + if test -d /usr/lib64; then + acl_libdirstem3=lib64 + fi + fi + if test -n "$searchpath"; then + acl_save_IFS="${IFS= }"; IFS=":" + for searchdir in $searchpath; do + if test -d "$searchdir"; then + case "$searchdir" in + */lib32/ | */lib32 ) acl_libdirstem2=lib32 ;; + */lib64/ | */lib64 ) acl_libdirstem3=lib64 ;; + */../ | */.. ) + # Better ignore directories of this form. They are misleading. + ;; + *) searchdir=`cd "$searchdir" && pwd` + case "$searchdir" in + */lib32 ) acl_libdirstem2=lib32 ;; + */lib64 ) acl_libdirstem3=lib64 ;; + esac ;; + esac + fi + done + IFS="$acl_save_IFS" + if test $HOST_CPU_C_ABI_32BIT = yes; then + # 32-bit ABI. + acl_libdirstem3= + fi + if test $HOST_CPU_C_ABI_32BIT = no; then + # 64-bit ABI. + acl_libdirstem2= + fi + fi + ;; + esac + test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" + test -n "$acl_libdirstem3" || acl_libdirstem3="$acl_libdirstem" + acl_cv_libdirstems="$acl_libdirstem,$acl_libdirstem2,$acl_libdirstem3" + ]) + dnl Decompose acl_cv_libdirstems into acl_libdirstem, acl_libdirstem2, and + dnl acl_libdirstem3. +changequote(,)dnl + acl_libdirstem=`echo "$acl_cv_libdirstems" | sed -e 's/,.*//'` + acl_libdirstem2=`echo "$acl_cv_libdirstems" | sed -e 's/^[^,]*,//' -e 's/,.*//'` + acl_libdirstem3=`echo "$acl_cv_libdirstems" | sed -e 's/^[^,]*,[^,]*,//' -e 's/,.*//'` +changequote([,])dnl ]) @@ -1,16 +1,16 @@ -# nls.m4 serial 5 (gettext-0.18) -dnl Copyright (C) 1995-2003, 2005-2006, 2008-2014, 2016 Free Software -dnl Foundation, Inc. +# nls.m4 serial 6 (gettext-0.20.2) +dnl Copyright (C) 1995-2003, 2005-2006, 2008-2014, 2016, 2019-2020 Free +dnl Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can be used in projects which are not available under -dnl the GNU General Public License or the GNU Library General Public +dnl the GNU General Public License or the GNU Lesser General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered -dnl by the GNU Library General Public License, and the rest of the GNU +dnl by the GNU Lesser General Public License, and the rest of the GNU dnl gettext package is covered by the GNU General Public License. dnl They are *not* in the public domain. @@ -1,5 +1,5 @@ # pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- -# serial 12 (pkg-config-0.29.2) +# serial 11 (pkg-config-0.29.1) dnl Copyright © 2004 Scott James Remnant <scott@netsplit.com>. dnl Copyright © 2012-2015 Dan Nicholson <dbn.lists@gmail.com> @@ -41,7 +41,7 @@ dnl dnl See the "Since" comment for each macro you use to see what version dnl of the macros you require. m4_defun([PKG_PREREQ], -[m4_define([PKG_MACROS_VERSION], [0.29.2]) +[m4_define([PKG_MACROS_VERSION], [0.29.1]) m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1, [m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])]) ])dnl PKG_PREREQ @@ -142,7 +142,7 @@ AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl pkg_failed=no -AC_MSG_CHECKING([for $2]) +AC_MSG_CHECKING([for $1]) _PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) _PKG_CONFIG([$1][_LIBS], [libs], [$2]) @@ -152,11 +152,11 @@ and $1[]_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.]) if test $pkg_failed = yes; then - AC_MSG_RESULT([no]) + AC_MSG_RESULT([no]) _PKG_SHORT_ERRORS_SUPPORTED if test $_pkg_short_errors_supported = yes; then $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` - else + else $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` fi # Put the nasty error message in config.log where it belongs @@ -173,7 +173,7 @@ installed software in a non-standard prefix. _PKG_TEXT])[]dnl ]) elif test $pkg_failed = untried; then - AC_MSG_RESULT([no]) + AC_MSG_RESULT([no]) m4_default([$4], [AC_MSG_FAILURE( [The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full @@ -273,3 +273,71 @@ AS_VAR_COPY([$1], [pkg_cv_][$1]) AS_VAR_IF([$1], [""], [$5], [$4])dnl ])dnl PKG_CHECK_VAR + +dnl PKG_WITH_MODULES(VARIABLE-PREFIX, MODULES, +dnl [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND], +dnl [DESCRIPTION], [DEFAULT]) +dnl ------------------------------------------ +dnl +dnl Prepare a "--with-" configure option using the lowercase +dnl [VARIABLE-PREFIX] name, merging the behaviour of AC_ARG_WITH and +dnl PKG_CHECK_MODULES in a single macro. +AC_DEFUN([PKG_WITH_MODULES], +[ +m4_pushdef([with_arg], m4_tolower([$1])) + +m4_pushdef([description], + [m4_default([$5], [build with ]with_arg[ support])]) + +m4_pushdef([def_arg], [m4_default([$6], [auto])]) +m4_pushdef([def_action_if_found], [AS_TR_SH([with_]with_arg)=yes]) +m4_pushdef([def_action_if_not_found], [AS_TR_SH([with_]with_arg)=no]) + +m4_case(def_arg, + [yes],[m4_pushdef([with_without], [--without-]with_arg)], + [m4_pushdef([with_without],[--with-]with_arg)]) + +AC_ARG_WITH(with_arg, + AS_HELP_STRING(with_without, description[ @<:@default=]def_arg[@:>@]),, + [AS_TR_SH([with_]with_arg)=def_arg]) + +AS_CASE([$AS_TR_SH([with_]with_arg)], + [yes],[PKG_CHECK_MODULES([$1],[$2],$3,$4)], + [auto],[PKG_CHECK_MODULES([$1],[$2], + [m4_n([def_action_if_found]) $3], + [m4_n([def_action_if_not_found]) $4])]) + +m4_popdef([with_arg]) +m4_popdef([description]) +m4_popdef([def_arg]) + +])dnl PKG_WITH_MODULES + +dnl PKG_HAVE_WITH_MODULES(VARIABLE-PREFIX, MODULES, +dnl [DESCRIPTION], [DEFAULT]) +dnl ----------------------------------------------- +dnl +dnl Convenience macro to trigger AM_CONDITIONAL after PKG_WITH_MODULES +dnl check._[VARIABLE-PREFIX] is exported as make variable. +AC_DEFUN([PKG_HAVE_WITH_MODULES], +[ +PKG_WITH_MODULES([$1],[$2],,,[$3],[$4]) + +AM_CONDITIONAL([HAVE_][$1], + [test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"]) +])dnl PKG_HAVE_WITH_MODULES + +dnl PKG_HAVE_DEFINE_WITH_MODULES(VARIABLE-PREFIX, MODULES, +dnl [DESCRIPTION], [DEFAULT]) +dnl ------------------------------------------------------ +dnl +dnl Convenience macro to run AM_CONDITIONAL and AC_DEFINE after +dnl PKG_WITH_MODULES check. HAVE_[VARIABLE-PREFIX] is exported as make +dnl and preprocessor variable. +AC_DEFUN([PKG_HAVE_DEFINE_WITH_MODULES], +[ +PKG_HAVE_WITH_MODULES([$1],[$2],[$3],[$4]) + +AS_IF([test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"], + [AC_DEFINE([HAVE_][$1], 1, [Enable ]m4_tolower([$1])[ support])]) +])dnl PKG_HAVE_DEFINE_WITH_MODULES diff --git a/m4/progtest.m4 b/m4/progtest.m4 index 9ace7c34..f28010ae 100644 --- a/m4/progtest.m4 +++ b/m4/progtest.m4 @@ -1,15 +1,15 @@ -# progtest.m4 serial 7 (gettext-0.18.2) -dnl Copyright (C) 1996-2003, 2005, 2008-2016 Free Software Foundation, Inc. +# progtest.m4 serial 8 (gettext-0.20.2) +dnl Copyright (C) 1996-2003, 2005, 2008-2020 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can be used in projects which are not available under -dnl the GNU General Public License or the GNU Library General Public +dnl the GNU General Public License or the GNU Lesser General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered -dnl by the GNU Library General Public License, and the rest of the GNU +dnl by the GNU Lesser General Public License, and the rest of the GNU dnl gettext package is covered by the GNU General Public License. dnl They are *not* in the public domain. diff --git a/packages/binutils-oracle/2.30/version.desc b/packages/binutils-oracle/2.30/version.desc index edc3c4e2..3f9982b0 100644 --- a/packages/binutils-oracle/2.30/version.desc +++ b/packages/binutils-oracle/2.30/version.desc @@ -1,2 +1,2 @@ -repository_branch='oracle/binutils/ol8-u6' -version_number='2.30-113.0.3' +repository_branch='oracle/binutils/ol8-u7' +version_number='2.30-117.0.3' diff --git a/packages/binutils-oracle/git-43eccdca/0000-Fix-a-missing-include-of-string.patch b/packages/binutils-oracle/git-43eccdca/0000-Fix-a-missing-include-of-string.patch new file mode 100644 index 00000000..141ddf82 --- /dev/null +++ b/packages/binutils-oracle/git-43eccdca/0000-Fix-a-missing-include-of-string.patch @@ -0,0 +1,24 @@ +This patch is a backport from binutils-gdb commit: +a3972330f4: Fix a missing include of <string> + +This code is free software; you can redistribute it and/or modify it +under the terms of the GNU General Public License as published by the +Free Software Foundation; either version 3, or (at your option) any +later version. + +This code 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 General Public License +for more details. + +diff -Nur binutils-gdb/gold/errors.h binutils-gdb-oracle/gold/errors.h +--- binutils-gdb/gold/errors.h 2022-06-16 17:49:08.412691685 -0500 ++++ binutils-gdb-oracle/gold/errors.h 2022-06-16 18:34:19.463006903 -0500 +@@ -24,6 +24,7 @@ + #define GOLD_ERRORS_H + + #include <cstdarg> ++#include <string> + + #include "gold-threads.h" + diff --git a/packages/binutils-oracle/git-43eccdca/0001-revert-rpm-dd-changes.patch b/packages/binutils-oracle/git-43eccdca/0001-revert-rpm-dd-changes.patch new file mode 100644 index 00000000..e517637f --- /dev/null +++ b/packages/binutils-oracle/git-43eccdca/0001-revert-rpm-dd-changes.patch @@ -0,0 +1,940 @@ +commit 6220d114b2f28345efbcea55c1befb1f0d40c215 +Author: Cupertino Miranda <cupertino.miranda@oracle.com> +Date: Mon Dec 5 20:17:30 2022 +0000 + + Revert "LAST DIFFERENCES" + + This reverts commit 43eccdca2998f3e04c8a32590345739f3f321372. + +diff --git a/bfd/config.bfd b/bfd/config.bfd +index cf02b010926..4d821d7eefc 100644 +--- a/bfd/config.bfd ++++ b/bfd/config.bfd +@@ -53,7 +53,7 @@ case $targ in + echo "*** Use or1k-*-elf or or1k-*-linux as the target instead" >&2 + exit 1 + ;; +- i[34567]86-*-netbsdelf* | i[34567]86-*-netbsd*-gnu* | i[34567]86-*-knetbsd*-gnu | \ ++ i[3-7]86-*-netbsdelf* | i[3-7]86-*-netbsd*-gnu* | i[3-7]86-*-knetbsd*-gnu | \ + mips*-*-irix5* | mips*-*-irix6*) + # Not obsolete + ;; +@@ -63,24 +63,24 @@ case $targ in + arm*-*-coff | \ + h8300*-*-coff | \ + h8500*-*-coff | \ +- i[34567]86-*-sco3.2v5*coff | \ +- i[34567]86-*-sysv4* | i[34567]86-*-unixware* | \ +- i[34567]86-*-sco3.2v5* | \ +- i[34567]86-*-dgux* | i[34567]86-*-sysv5* | \ +- i[34567]86-*-chorus* | \ +- i[34567]86-*-sysv* | i[34567]86-*-isc* | i[34567]86-*-sco* | i[34567]86-*-coff | \ +- i[34567]86-*-aix* | \ +- i[34567]86-sequent-bsd* | \ +- i[34567]86-*-freebsdaout* | i[34567]86-*-freebsd[12].* | \ +- i[34567]86-*-freebsd[12] | \ +- i[34567]86-*-netbsdaout* | i[34567]86-*-netbsd* | \ +- i[34567]86-*-openbsd[0-2].* | i[34567]86-*-openbsd3.[0-3] | \ +- i[34567]86-*-netware* | \ +- i[34567]86-*-linux*aout* | \ +- i[34567]86-*-mach* | i[34567]86-*-osf1mk* | \ +- i[34567]86-*-os9k | \ +- i[34567]86-none-* | \ +- i[34567]86-*-aout* | i[34567]86*-*-vsta* | \ ++ i[3-7]86-*-sco3.2v5*coff | \ ++ i[3-7]86-*-sysv4* | i[3-7]86-*-unixware* | \ ++ i[3-7]86-*-sco3.2v5* | \ ++ i[3-7]86-*-dgux* | i[3-7]86-*-sysv5* | \ ++ i[3-7]86-*-chorus* | \ ++ i[3-7]86-*-sysv* | i[3-7]86-*-isc* | i[3-7]86-*-sco* | i[3-7]86-*-coff | \ ++ i[3-7]86-*-aix* | \ ++ i[3-7]86-sequent-bsd* | \ ++ i[3-7]86-*-freebsdaout* | i[3-7]86-*-freebsd[12].* | \ ++ i[3-7]86-*-freebsd[12] | \ ++ i[3-7]86-*-netbsdaout* | i[3-7]86-*-netbsd* | \ ++ i[3-7]86-*-openbsd[0-2].* | i[3-7]86-*-openbsd3.[0-3] | \ ++ i[3-7]86-*-netware* | \ ++ i[3-7]86-*-linux*aout* | \ ++ i[3-7]86-*-mach* | i[3-7]86-*-osf1mk* | \ ++ i[3-7]86-*-os9k | \ ++ i[3-7]86-none-* | \ ++ i[3-7]86-*-aout* | i[3-7]86*-*-vsta* | \ + i860-*-* | \ + i960-*-* | \ + m68*-motorola-sysv* | m68*-hp-bsd* | m68*-*-aout* | \ +@@ -170,7 +170,7 @@ crx*) targ_archs=bfd_crx_arch ;; + dlx*) targ_archs=bfd_dlx_arch ;; + fido*) targ_archs=bfd_m68k_arch ;; + hppa*) targ_archs=bfd_hppa_arch ;; +-i[34567]86) targ_archs=bfd_i386_arch ;; ++i[3-7]86) targ_archs=bfd_i386_arch ;; + i370) targ_archs=bfd_i370_arch ;; + ia16) targ_archs=bfd_i386_arch ;; + lm32) targ_archs=bfd_lm32_arch ;; +@@ -627,17 +627,17 @@ case "${targ}" in + targ_selvecs="i370_elf32_vec" + ;; + +- i[34567]86-*-sco3.2v5*coff) ++ i[3-7]86-*-sco3.2v5*coff) + targ_defvec=i386_coff_vec + targ_selvecs=i386_elf32_vec + ;; +- i[34567]86-*-sysv4* | i[34567]86-*-unixware* | \ +- i[34567]86-*-elf* | i[34567]86-*-sco3.2v5* | \ +- i[34567]86-*-dgux* | i[34567]86-*-sysv5* | i[34567]86-*-rtems*) ++ i[3-7]86-*-sysv4* | i[3-7]86-*-unixware* | \ ++ i[3-7]86-*-elf* | i[3-7]86-*-sco3.2v5* | \ ++ i[3-7]86-*-dgux* | i[3-7]86-*-sysv5* | i[3-7]86-*-rtems*) + targ_defvec=i386_elf32_vec + targ_selvecs="iamcu_elf32_vec i386_coff_vec" + ;; +- i[34567]86-*-solaris2*) ++ i[3-7]86-*-solaris2*) + targ_defvec=i386_elf32_sol2_vec + targ_selvecs="iamcu_elf32_vec i386_coff_vec i386_pei_vec" + targ64_selvecs="x86_64_elf64_sol2_vec l1om_elf64_vec k1om_elf64_vec x86_64_pei_vec" +@@ -650,23 +650,23 @@ case "${targ}" in + want64=true + ;; + #endif +- i[34567]86-*-kaos*) ++ i[3-7]86-*-kaos*) + targ_defvec=i386_elf32_vec + targ_selvecs=i386_elf32_vec + ;; +- i[34567]86-*-nto*) ++ i[3-7]86-*-nto*) + targ_defvec=i386_elf32_vec + targ_selvecs="iamcu_elf32_vec i386_coff_vec" + ;; +- i[34567]86-*-aros*) ++ i[3-7]86-*-aros*) + targ_defvec=i386_elf32_vec + targ_selvecs=iamcu_elf32_vec + ;; +- i[34567]86-*-chorus*) ++ i[3-7]86-*-chorus*) + targ_defvec=i386_elf32_vec + targ_selvecs=iamcu_elf32_vec + ;; +- i[34567]86-*-dicos*) ++ i[3-7]86-*-dicos*) + targ_defvec=i386_elf32_vec + targ_selvecs=iamcu_elf32_vec + targ64_selvecs="x86_64_elf64_vec l1om_elf64_vec k1om_elf64_vec" +@@ -675,85 +675,85 @@ case "${targ}" in + targ_defvec=i386_coff_go32_vec + targ_selvecs="i386_coff_go32stubbed_vec i386_aout_vec" + ;; +- i[34567]86-*-sysv* | i[34567]86-*-isc* | i[34567]86-*-sco* | i[34567]86-*-coff | \ +- i[34567]86-*-aix*) ++ i[3-7]86-*-sysv* | i[3-7]86-*-isc* | i[3-7]86-*-sco* | i[3-7]86-*-coff | \ ++ i[3-7]86-*-aix*) + targ_defvec=i386_coff_vec + ;; +- i[34567]86-*-darwin* | i[34567]86-*-macos10* | i[34567]86-*-rhapsody*) ++ i[3-7]86-*-darwin* | i[3-7]86-*-macos10* | i[3-7]86-*-rhapsody*) + targ_defvec=i386_mach_o_vec + targ_selvecs="mach_o_le_vec mach_o_be_vec mach_o_fat_vec pef_vec pef_xlib_vec sym_vec" + targ64_selvecs=x86_64_mach_o_vec + targ_archs="$targ_archs bfd_powerpc_arch bfd_rs6000_arch" + ;; +- i[34567]86-sequent-bsd*) ++ i[3-7]86-sequent-bsd*) + targ_defvec=i386_aout_dynix_vec + targ_underscore=yes + ;; +- i[34567]86-*-bsd*) ++ i[3-7]86-*-bsd*) + targ_defvec=i386_aout_bsd_vec + targ_underscore=yes + ;; +- i[34567]86-*-dragonfly*) ++ i[3-7]86-*-dragonfly*) + targ_defvec=i386_elf32_vec + targ_selvecs=iamcu_elf32_vec + targ64_selvecs="x86_64_elf64_vec l1om_elf64_vec k1om_elf64_vec" + ;; +- i[34567]86-*-freebsdaout* | i[34567]86-*-freebsd[12].* | \ +- i[34567]86-*-freebsd[12]) ++ i[3-7]86-*-freebsdaout* | i[3-7]86-*-freebsd[12].* | \ ++ i[3-7]86-*-freebsd[12]) + targ_defvec=i386_aout_fbsd_vec + targ_selvecs=i386_aout_bsd_vec + targ_underscore=yes + ;; +- i[34567]86-*-freebsd* | i[34567]86-*-kfreebsd*-gnu) ++ i[3-7]86-*-freebsd* | i[3-7]86-*-kfreebsd*-gnu) + targ_defvec=i386_elf32_fbsd_vec + targ_selvecs="i386_elf32_vec iamcu_elf32_vec i386_pei_vec i386_coff_vec" + targ64_selvecs="x86_64_elf64_fbsd_vec x86_64_elf64_vec x86_64_pei_vec l1om_elf64_vec l1om_elf64_fbsd_vec k1om_elf64_vec k1om_elf64_fbsd_vec" + # FreeBSD <= 4.0 supports only the old nonstandard way of ABI labelling. + case "${targ}" in +- i[34567]86-*-freebsd3* | i[34567]86-*-freebsd4 | i[34567]86-*-freebsd4.0*) ++ i[3-7]86-*-freebsd3* | i[3-7]86-*-freebsd4 | i[3-7]86-*-freebsd4.0*) + targ_cflags=-DOLD_FREEBSD_ABI_LABEL ;; + esac + ;; +- i[34567]86-*-netbsdelf* | i[34567]86-*-netbsd*-gnu* | i[34567]86-*-knetbsd*-gnu) ++ i[3-7]86-*-netbsdelf* | i[3-7]86-*-netbsd*-gnu* | i[3-7]86-*-knetbsd*-gnu) + targ_defvec=i386_elf32_vec + targ_selvecs="i386_aout_nbsd_vec iamcu_elf32_vec" + targ64_selvecs="x86_64_elf64_vec l1om_elf64_vec k1om_elf64_vec" + ;; +- i[34567]86-*-netbsdpe*) ++ i[3-7]86-*-netbsdpe*) + targ_defvec=i386_pe_vec + targ_selvecs="i386_pe_vec i386_pei_vec i386_elf32_vec iamcu_elf32_vec" + ;; +- i[34567]86-*-netbsdaout* | i[34567]86-*-netbsd* | \ +- i[34567]86-*-openbsd[0-2].* | i[34567]86-*-openbsd3.[0-3]) ++ i[3-7]86-*-netbsdaout* | i[3-7]86-*-netbsd* | \ ++ i[3-7]86-*-openbsd[0-2].* | i[3-7]86-*-openbsd3.[0-3]) + targ_defvec=i386_aout_nbsd_vec + targ_selvecs="i386_elf32_vec iamcu_elf32_vec i386_aout_bsd_vec" + targ_underscore=yes + ;; +- i[34567]86-*-openbsd*) ++ i[3-7]86-*-openbsd*) + targ_defvec=i386_elf32_vec + targ_selvecs="iamcu_elf32_vec i386_aout_nbsd_vec" + ;; +- i[34567]86-*-netware*) ++ i[3-7]86-*-netware*) + targ_defvec=i386_elf32_vec + targ_selvecs="iamcu_elf32_vec i386_nlm32_vec i386_coff_vec i386_aout_vec" + ;; +- i[34567]86-*-linux*aout*) ++ i[3-7]86-*-linux*aout*) + targ_defvec=i386_aout_linux_vec + targ_selvecs="i386_elf32_vec iamcu_elf32_vec" + targ_underscore=yes + ;; +- i[34567]86-*-linux-*) ++ i[3-7]86-*-linux-*) + targ_defvec=i386_elf32_vec + targ_selvecs="iamcu_elf32_vec i386_aout_linux_vec i386_pei_vec" + targ64_selvecs="x86_64_elf64_vec x86_64_elf32_vec x86_64_pei_vec l1om_elf64_vec k1om_elf64_vec" + ;; +- i[34567]86-*-nacl*) ++ i[3-7]86-*-nacl*) + targ_defvec=i386_elf32_nacl_vec + targ_selvecs="arm_elf32_nacl_be_vec arm_elf32_nacl_le_vec" + targ64_selvecs="x86_64_elf64_nacl_vec x86_64_elf32_nacl_vec" + targ_archs="$targ_archs bfd_arm_arch" + ;; +- i[34567]86-*-redox*) ++ i[3-7]86-*-redox*) + targ_defvec=i386_elf32_vec + targ_selvecs= + targ64_selvecs=x86_64_elf64_vec +@@ -821,64 +821,64 @@ case "${targ}" in + want64=true + ;; + #endif +- i[34567]86-*-lynxos*) ++ i[3-7]86-*-lynxos*) + targ_defvec=i386_elf32_vec + targ_selvecs="iamcu_elf32_vec i386_coff_lynx_vec i386_aout_lynx_vec" + ;; +- i[34567]86-*-gnu*) ++ i[3-7]86-*-gnu*) + targ_defvec=i386_elf32_vec + targ_selvecs=iamcu_elf32_vec + ;; +- i[34567]86-*-mach* | i[34567]86-*-osf1mk*) ++ i[3-7]86-*-mach* | i[3-7]86-*-osf1mk*) + targ_defvec=i386_aout_mach3_vec + targ_cflags=-DSTAT_FOR_EXEC + targ_underscore=yes + ;; +- i[34567]86-*-os9k) ++ i[3-7]86-*-os9k) + targ_defvec=i386_aout_os9k_vec + ;; +- i[34567]86-*-msdos*) ++ i[3-7]86-*-msdos*) + targ_defvec=i386_aout_vec + targ_selvecs=i386_msdos_vec + ;; +- i[34567]86-*-moss*) ++ i[3-7]86-*-moss*) + targ_defvec=i386_elf32_vec + targ_selvecs="iamcu_elf32_vec i386_msdos_vec i386_aout_vec" + ;; +- i[34567]86-*-beospe*) ++ i[3-7]86-*-beospe*) + targ_defvec=i386_pe_vec + targ_selvecs="i386_pe_vec i386_pei_vec" + ;; +- i[34567]86-*-beoself* | i[34567]86-*-beos*) ++ i[3-7]86-*-beoself* | i[3-7]86-*-beos*) + targ_defvec=i386_elf32_vec + targ_selvecs="iamcu_elf32_vec i386_pe_vec i386_pei_vec" + ;; +- i[34567]86-*-interix*) ++ i[3-7]86-*-interix*) + targ_defvec=i386_pei_vec + targ_selvecs="i386_pe_vec" + # FIXME: This should eventually be checked at runtime. + targ_cflags=-DSTRICT_PE_FORMAT + ;; +- i[34567]86-*-rdos*) ++ i[3-7]86-*-rdos*) + targ_defvec=i386_elf32_vec + targ_selvecs="iamcu_elf32_vec i386_coff_vec" + ;; +- i[34567]86-*-mingw32* | i[34567]86-*-cygwin* | i[34567]86-*-winnt | i[34567]86-*-pe) ++ i[3-7]86-*-mingw32* | i[3-7]86-*-cygwin* | i[3-7]86-*-winnt | i[3-7]86-*-pe) + targ_defvec=i386_pe_vec + targ_selvecs="i386_pe_vec i386_pei_vec i386_elf32_vec iamcu_elf32_vec" + targ_underscore=yes + ;; +- i[34567]86-none-*) ++ i[3-7]86-none-*) + targ_defvec=i386_coff_vec + ;; +- i[34567]86-*-aout* | i[34567]86*-*-vsta*) ++ i[3-7]86-*-aout* | i[3-7]86*-*-vsta*) + targ_defvec=i386_aout_vec + ;; +- i[34567]86-*-vxworks*) ++ i[3-7]86-*-vxworks*) + targ_defvec=i386_elf32_vxworks_vec + targ_underscore=yes + ;; +- i[34567]86-*-chaos) ++ i[3-7]86-*-chaos) + targ_defvec=i386_elf32_vec + targ_selfvecs="iamcu_elf32_vec i386chaos_vec" + ;; +diff --git a/bfd/configure b/bfd/configure +index adc6cdf1c01..da810fe1c1d 100755 +--- a/bfd/configure ++++ b/bfd/configure +@@ -11910,7 +11910,7 @@ fi + + + case "${host}" in +- sparc-*-solaris*|i[34567]86-*-solaris*) ++ sparc-*-solaris*|i[3-7]86-*-solaris*) + # On native 32bit sparc and ia32 solaris, large-file and procfs support + # are mutually exclusive; and without procfs support, the bfd/ elf module + # cannot provide certain routines such as elfcore_write_prpsinfo +@@ -14840,45 +14840,45 @@ if test "${target}" = "${host}"; then + TRAD_HEADER='"hosts/i370linux.h"' + ;; + +- i[34567]86-sequent-bsd*) ++ i[3-7]86-sequent-bsd*) + COREFILE=trad-core.lo + TRAD_HEADER='"hosts/symmetry.h"' + ;; +- i[34567]86-sequent-sysv4*) ;; +- i[34567]86-sequent-sysv*) ++ i[3-7]86-sequent-sysv4*) ;; ++ i[3-7]86-sequent-sysv*) + COREFILE=trad-core.lo + TRAD_HEADER='"hosts/symmetry.h"' + ;; +- i[34567]86-*-bsdi) ++ i[3-7]86-*-bsdi) + COREFILE= + ;; +- i[34567]86-*-bsd* | i[34567]86-*-freebsd[123] | i[34567]86-*-freebsd[123]\.* | i[34567]86-*-freebsd4\.[01234] | i[34567]86-*-freebsd4\.[01234]\.* | i[34567]86-*-freebsd*aout*) ++ i[3-7]86-*-bsd* | i[3-7]86-*-freebsd[123] | i[3-7]86-*-freebsd[123]\.* | i[3-7]86-*-freebsd4\.[01234] | i[3-7]86-*-freebsd4\.[01234]\.* | i[3-7]86-*-freebsd*aout*) + COREFILE=trad-core.lo + TRAD_HEADER='"hosts/i386bsd.h"' + ;; +- i[34567]86-*-freebsd* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-dragonfly*) ++ i[3-7]86-*-freebsd* | i[3-7]86-*-kfreebsd*-gnu | i[3-7]86-*-dragonfly*) + COREFILE='' + TRAD_HEADER='"hosts/i386bsd.h"' + ;; +- i[34567]86-*-netbsd* | i[34567]86-*-knetbsd*-gnu | i[34567]86-*-openbsd*) ++ i[3-7]86-*-netbsd* | i[3-7]86-*-knetbsd*-gnu | i[3-7]86-*-openbsd*) + COREFILE=netbsd-core.lo + ;; +- i[34567]86-esix-sysv3*) ++ i[3-7]86-esix-sysv3*) + COREFILE=trad-core.lo + TRAD_HEADER='"hosts/esix.h"' + ;; +- i[34567]86-*-sco3.2v5*) ++ i[3-7]86-*-sco3.2v5*) + COREFILE=sco5-core.lo + ;; +- i[34567]86-*-sco* | i[34567]86-*-isc*) ++ i[3-7]86-*-sco* | i[3-7]86-*-isc*) + COREFILE=trad-core.lo + TRAD_HEADER='"hosts/i386sco.h"' + ;; +- i[34567]86-*-mach3*) ++ i[3-7]86-*-mach3*) + COREFILE=trad-core.lo + TRAD_HEADER='"hosts/i386mach3.h"' + ;; +- i[34567]86-*-linux-*) ++ i[3-7]86-*-linux-*) + COREFILE=trad-core.lo + TRAD_HEADER='"hosts/i386linux.h"' + case "$enable_targets"-"$want64" in +@@ -14886,8 +14886,8 @@ if test "${target}" = "${host}"; then + CORE_HEADER='"hosts/x86-64linux.h"' + esac + ;; +- i[34567]86-*-isc*) COREFILE=trad-core.lo ;; +- i[34567]86-*-aix*) COREFILE=aix386-core.lo ;; ++ i[3-7]86-*-isc*) COREFILE=trad-core.lo ;; ++ i[3-7]86-*-aix*) COREFILE=aix386-core.lo ;; + i860-*-mach3* | i860-*-osf1*) + COREFILE=trad-core.lo + TRAD_HEADER='"hosts/i860mach3.h"' +diff --git a/bfd/configure.ac b/bfd/configure.ac +index fa2e0ec0133..95daa5a86de 100644 +--- a/bfd/configure.ac ++++ b/bfd/configure.ac +@@ -884,65 +884,65 @@ if test "${target}" = "${host}"; then + ;; + + changequote(,)dnl +- i[34567]86-sequent-bsd*) ++ i[3-7]86-sequent-bsd*) + changequote([,])dnl + COREFILE=trad-core.lo + TRAD_HEADER='"hosts/symmetry.h"' + ;; + changequote(,)dnl +- i[34567]86-sequent-sysv4*) ;; +- i[34567]86-sequent-sysv*) ++ i[3-7]86-sequent-sysv4*) ;; ++ i[3-7]86-sequent-sysv*) + changequote([,])dnl + COREFILE=trad-core.lo + TRAD_HEADER='"hosts/symmetry.h"' + ;; + changequote(,)dnl +- i[34567]86-*-bsdi) ++ i[3-7]86-*-bsdi) + changequote([,])dnl + COREFILE= + ;; + changequote(,)dnl +- i[34567]86-*-bsd* | i[34567]86-*-freebsd[123] | i[34567]86-*-freebsd[123]\.* | i[34567]86-*-freebsd4\.[01234] | i[34567]86-*-freebsd4\.[01234]\.* | i[34567]86-*-freebsd*aout*) ++ i[3-7]86-*-bsd* | i[3-7]86-*-freebsd[123] | i[3-7]86-*-freebsd[123]\.* | i[3-7]86-*-freebsd4\.[01234] | i[3-7]86-*-freebsd4\.[01234]\.* | i[3-7]86-*-freebsd*aout*) + changequote([,])dnl + COREFILE=trad-core.lo + TRAD_HEADER='"hosts/i386bsd.h"' + ;; + changequote(,)dnl +- i[34567]86-*-freebsd* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-dragonfly*) ++ i[3-7]86-*-freebsd* | i[3-7]86-*-kfreebsd*-gnu | i[3-7]86-*-dragonfly*) + changequote([,])dnl + COREFILE='' + TRAD_HEADER='"hosts/i386bsd.h"' + ;; + changequote(,)dnl +- i[34567]86-*-netbsd* | i[34567]86-*-knetbsd*-gnu | i[34567]86-*-openbsd*) ++ i[3-7]86-*-netbsd* | i[3-7]86-*-knetbsd*-gnu | i[3-7]86-*-openbsd*) + changequote([,])dnl + COREFILE=netbsd-core.lo + ;; + changequote(,)dnl +- i[34567]86-esix-sysv3*) ++ i[3-7]86-esix-sysv3*) + changequote([,])dnl + COREFILE=trad-core.lo + TRAD_HEADER='"hosts/esix.h"' + ;; + changequote(,)dnl +- i[34567]86-*-sco3.2v5*) ++ i[3-7]86-*-sco3.2v5*) + changequote([,])dnl + COREFILE=sco5-core.lo + ;; + changequote(,)dnl +- i[34567]86-*-sco* | i[34567]86-*-isc*) ++ i[3-7]86-*-sco* | i[3-7]86-*-isc*) + changequote([,])dnl + COREFILE=trad-core.lo + TRAD_HEADER='"hosts/i386sco.h"' + ;; + changequote(,)dnl +- i[34567]86-*-mach3*) ++ i[3-7]86-*-mach3*) + changequote([,])dnl + COREFILE=trad-core.lo + TRAD_HEADER='"hosts/i386mach3.h"' + ;; + changequote(,)dnl +- i[34567]86-*-linux-*) ++ i[3-7]86-*-linux-*) + changequote([,])dnl + COREFILE=trad-core.lo + TRAD_HEADER='"hosts/i386linux.h"' +@@ -952,8 +952,8 @@ changequote([,])dnl + esac + ;; + changequote(,)dnl +- i[34567]86-*-isc*) COREFILE=trad-core.lo ;; +- i[34567]86-*-aix*) COREFILE=aix386-core.lo ;; ++ i[3-7]86-*-isc*) COREFILE=trad-core.lo ;; ++ i[3-7]86-*-aix*) COREFILE=aix386-core.lo ;; + changequote([,])dnl + i860-*-mach3* | i860-*-osf1*) + COREFILE=trad-core.lo +diff --git a/bfd/configure.host b/bfd/configure.host +index bfae19a0884..486de7f055f 100644 +--- a/bfd/configure.host ++++ b/bfd/configure.host +@@ -54,11 +54,11 @@ ia64-*-*) host64=true;; + + # Workaround for limitations on win9x where file contents are + # not zero'd out if you seek past the end and then write. +-i[34567]86-*-mingw32*) HDEFINES=-D__USE_MINGW_FSEEK;; ++i[3-7]86-*-mingw32*) HDEFINES=-D__USE_MINGW_FSEEK;; + +-i[34567]86-sequent-bsd*) HDEFINES=-Dshared=genshared ;; +-i[34567]86-sequent-sysv4*) ;; +-i[34567]86-sequent-sysv*) HDEFINES=-Dshared=genshared ;; ++i[3-7]86-sequent-bsd*) HDEFINES=-Dshared=genshared ;; ++i[3-7]86-sequent-sysv4*) ;; ++i[3-7]86-sequent-sysv*) HDEFINES=-Dshared=genshared ;; + + mips*-*-netbsd*) ;; + mips*-*-openbsd*) ;; +diff --git a/bfd/elf32-ppc.c b/bfd/elf32-ppc.c +index 6d48ff5b074..9d4dbcee009 100644 +--- a/bfd/elf32-ppc.c ++++ b/bfd/elf32-ppc.c +@@ -10738,7 +10738,7 @@ ppc_elf_finish_dynamic_sections (bfd *output_bfd, + #define ELF_MACHINE_CODE EM_PPC + #ifdef __QNXTARGET__ + #define ELF_MAXPAGESIZE 0x1000 +-#define ELF_COMMONPAGESIZE 0x10000 ++#define ELF_COMMONPAGESIZE 0x1000 + #else + #define ELF_MAXPAGESIZE 0x10000 + #define ELF_COMMONPAGESIZE 0x10000 +diff --git a/bfd/elfnn-aarch64.c b/bfd/elfnn-aarch64.c +index 68dc02335ab..8fa422f3ac7 100644 +--- a/bfd/elfnn-aarch64.c ++++ b/bfd/elfnn-aarch64.c +@@ -9381,7 +9381,7 @@ const struct elf_size_info elfNN_aarch64_size_info = + #define ELF_MACHINE_CODE EM_AARCH64 + #define ELF_MAXPAGESIZE 0x10000 + #define ELF_MINPAGESIZE 0x1000 +-#define ELF_COMMONPAGESIZE 0x10000 ++#define ELF_COMMONPAGESIZE 0x1000 + + #define bfd_elfNN_close_and_cleanup \ + elfNN_aarch64_close_and_cleanup +diff --git a/binutils/configure b/binutils/configure +index df671b95788..7d76ea887bc 100755 +--- a/binutils/configure ++++ b/binutils/configure +@@ -11706,7 +11706,7 @@ fi + + + case "${host}" in +- sparc-*-solaris*|i[34567]86-*-solaris*) ++ sparc-*-solaris*|i[3-7]86-*-solaris*) + # On native 32bit sparc and ia32 solaris, large-file and procfs support + # are mutually exclusive; and without procfs support, the bfd/ elf module + # cannot provide certain routines such as elfcore_write_prpsinfo +@@ -14479,7 +14479,7 @@ do + od_vectors="$od_vectors objdump_private_desc_xcoff" + else + case $targ in +- i[34567]86*-*-netware*) ++ i[3-7]86*-*-netware*) + BUILD_NLMCONV='$(NLMCONV_PROG)$(EXEEXT)' + NLMCONV_DEFS="$NLMCONV_DEFS -DNLMCONV_I386" + ;; +@@ -14539,7 +14539,7 @@ do + BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)' + BUILD_DLLWRAP='$(DLLWRAP_PROG)$(EXEEXT)' + ;; +- i[34567]86-*-pe* | i[34567]86-*-cygwin* | i[34567]86-*-mingw32** | i[34567]86-*-netbsdpe*) ++ i[3-7]86-*-pe* | i[3-7]86-*-cygwin* | i[3-7]86-*-mingw32** | i[3-7]86-*-netbsdpe*) + BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)' + if test -z "$DLLTOOL_DEFAULT"; then + DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_I386" +@@ -14549,7 +14549,7 @@ do + BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)' + BUILD_DLLWRAP='$(DLLWRAP_PROG)$(EXEEXT)' + ;; +- i[34567]86-*-interix) ++ i[3-7]86-*-interix) + BUILD_DLLTOOL='$(DLLTOOL_PROG)' + if test -z "$DLLTOOL_DEFAULT"; then + DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_I386" +diff --git a/binutils/configure.ac b/binutils/configure.ac +index 63466c584b6..6d3eaa31fe1 100644 +--- a/binutils/configure.ac ++++ b/binutils/configure.ac +@@ -264,7 +264,7 @@ do + else + case $targ in + changequote(,)dnl +- i[34567]86*-*-netware*) ++ i[3-7]86*-*-netware*) + changequote([,])dnl + BUILD_NLMCONV='$(NLMCONV_PROG)$(EXEEXT)' + NLMCONV_DEFS="$NLMCONV_DEFS -DNLMCONV_I386" +@@ -326,7 +326,7 @@ changequote([,])dnl + BUILD_DLLWRAP='$(DLLWRAP_PROG)$(EXEEXT)' + ;; + changequote(,)dnl +- i[34567]86-*-pe* | i[34567]86-*-cygwin* | i[34567]86-*-mingw32** | i[34567]86-*-netbsdpe*) ++ i[3-7]86-*-pe* | i[3-7]86-*-cygwin* | i[3-7]86-*-mingw32** | i[3-7]86-*-netbsdpe*) + changequote([,])dnl + BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)' + if test -z "$DLLTOOL_DEFAULT"; then +@@ -338,7 +338,7 @@ changequote([,])dnl + BUILD_DLLWRAP='$(DLLWRAP_PROG)$(EXEEXT)' + ;; + changequote(,)dnl +- i[34567]86-*-interix) ++ i[3-7]86-*-interix) + changequote([,])dnl + BUILD_DLLTOOL='$(DLLTOOL_PROG)' + if test -z "$DLLTOOL_DEFAULT"; then +diff --git a/gas/configure b/gas/configure +index f4a4b1256d6..2d7f44717e2 100755 +--- a/gas/configure ++++ b/gas/configure +@@ -11472,7 +11472,7 @@ fi + + + case "${host}" in +- sparc-*-solaris*|i[34567]86-*-solaris*) ++ sparc-*-solaris*|i[3-7]86-*-solaris*) + # On native 32bit sparc and ia32 solaris, large-file and procfs support + # are mutually exclusive; and without procfs support, the bfd/ elf module + # cannot provide certain routines such as elfcore_write_prpsinfo +diff --git a/gas/configure.tgt b/gas/configure.tgt +index abf7e02e869..afe4e0608cf 100644 +--- a/gas/configure.tgt ++++ b/gas/configure.tgt +@@ -61,7 +61,7 @@ case ${cpu} in + epiphany*) cpu_type=epiphany endian=little ;; + fido) cpu_type=m68k ;; + hppa*) cpu_type=hppa ;; +- i[34567]86) cpu_type=i386 arch=i386;; ++ i[3-7]86) cpu_type=i386 arch=i386;; + ia16) cpu_type=i386 arch=i386;; + ia64) cpu_type=ia64 ;; + ip2k) cpu_type=ip2k endian=big ;; +diff --git a/gold/aarch64.cc b/gold/aarch64.cc +index 1d11420dee7..f77c4cc3187 100644 +--- a/gold/aarch64.cc ++++ b/gold/aarch64.cc +@@ -3554,7 +3554,7 @@ const Target::Target_info Target_aarch64<64, false>::aarch64_info = + "/lib/ld.so.1", // program interpreter + 0x400000, // default_text_segment_address + 0x10000, // abi_pagesize (overridable by -z max-page-size) +- 0x10000, // common_pagesize (overridable by -z common-page-size) ++ 0x1000, // common_pagesize (overridable by -z common-page-size) + false, // isolate_execinstr + 0, // rosegment_gap + elfcpp::SHN_UNDEF, // small_common_shndx +@@ -3582,7 +3582,7 @@ const Target::Target_info Target_aarch64<32, false>::aarch64_info = + "/lib/ld.so.1", // program interpreter + 0x400000, // default_text_segment_address + 0x10000, // abi_pagesize (overridable by -z max-page-size) +- 0x10000, // common_pagesize (overridable by -z common-page-size) ++ 0x1000, // common_pagesize (overridable by -z common-page-size) + false, // isolate_execinstr + 0, // rosegment_gap + elfcpp::SHN_UNDEF, // small_common_shndx +@@ -3610,7 +3610,7 @@ const Target::Target_info Target_aarch64<64, true>::aarch64_info = + "/lib/ld.so.1", // program interpreter + 0x400000, // default_text_segment_address + 0x10000, // abi_pagesize (overridable by -z max-page-size) +- 0x10000, // common_pagesize (overridable by -z common-page-size) ++ 0x1000, // common_pagesize (overridable by -z common-page-size) + false, // isolate_execinstr + 0, // rosegment_gap + elfcpp::SHN_UNDEF, // small_common_shndx +@@ -3638,7 +3638,7 @@ const Target::Target_info Target_aarch64<32, true>::aarch64_info = + "/lib/ld.so.1", // program interpreter + 0x400000, // default_text_segment_address + 0x10000, // abi_pagesize (overridable by -z max-page-size) +- 0x10000, // common_pagesize (overridable by -z common-page-size) ++ 0x1000, // common_pagesize (overridable by -z common-page-size) + false, // isolate_execinstr + 0, // rosegment_gap + elfcpp::SHN_UNDEF, // small_common_shndx +diff --git a/gold/powerpc.cc b/gold/powerpc.cc +index 7869d20595b..f6d589c6ea7 100644 +--- a/gold/powerpc.cc ++++ b/gold/powerpc.cc +@@ -1614,7 +1614,7 @@ Target::Target_info Target_powerpc<32, true>::powerpc_info = + "/usr/lib/ld.so.1", // dynamic_linker + 0x10000000, // default_text_segment_address + 64 * 1024, // abi_pagesize (overridable by -z max-page-size) +- 64 * 1024, // common_pagesize (overridable by -z common-page-size) ++ 4 * 1024, // common_pagesize (overridable by -z common-page-size) + false, // isolate_execinstr + 0, // rosegment_gap + elfcpp::SHN_UNDEF, // small_common_shndx +@@ -1642,7 +1642,7 @@ Target::Target_info Target_powerpc<32, false>::powerpc_info = + "/usr/lib/ld.so.1", // dynamic_linker + 0x10000000, // default_text_segment_address + 64 * 1024, // abi_pagesize (overridable by -z max-page-size) +- 64 * 1024, // common_pagesize (overridable by -z common-page-size) ++ 4 * 1024, // common_pagesize (overridable by -z common-page-size) + false, // isolate_execinstr + 0, // rosegment_gap + elfcpp::SHN_UNDEF, // small_common_shndx +@@ -1670,7 +1670,7 @@ Target::Target_info Target_powerpc<64, true>::powerpc_info = + "/usr/lib/ld.so.1", // dynamic_linker + 0x10000000, // default_text_segment_address + 64 * 1024, // abi_pagesize (overridable by -z max-page-size) +- 64 * 1024, // common_pagesize (overridable by -z common-page-size) ++ 4 * 1024, // common_pagesize (overridable by -z common-page-size) + false, // isolate_execinstr + 0, // rosegment_gap + elfcpp::SHN_UNDEF, // small_common_shndx +@@ -1698,7 +1698,7 @@ Target::Target_info Target_powerpc<64, false>::powerpc_info = + "/usr/lib/ld.so.1", // dynamic_linker + 0x10000000, // default_text_segment_address + 64 * 1024, // abi_pagesize (overridable by -z max-page-size) +- 64 * 1024, // common_pagesize (overridable by -z common-page-size) ++ 4 * 1024, // common_pagesize (overridable by -z common-page-size) + false, // isolate_execinstr + 0, // rosegment_gap + elfcpp::SHN_UNDEF, // small_common_shndx +diff --git a/gprof/configure b/gprof/configure +index bbcd676c610..e0f2bef7776 100755 +--- a/gprof/configure ++++ b/gprof/configure +@@ -11382,7 +11382,7 @@ fi + + + case "${host}" in +- sparc-*-solaris*|i[34567]86-*-solaris*) ++ sparc-*-solaris*|i[3-7]86-*-solaris*) + # On native 32bit sparc and ia32 solaris, large-file and procfs support + # are mutually exclusive; and without procfs support, the bfd/ elf module + # cannot provide certain routines such as elfcore_write_prpsinfo +diff --git a/ld/configure b/ld/configure +index 9431f3b6ea2..e43ddd698cf 100755 +--- a/ld/configure ++++ b/ld/configure +@@ -15221,7 +15221,7 @@ fi + + + case "${host}" in +- sparc-*-solaris*|i[34567]86-*-solaris*) ++ sparc-*-solaris*|i[3-7]86-*-solaris*) + # On native 32bit sparc and ia32 solaris, large-file and procfs support + # are mutually exclusive; and without procfs support, the bfd/ elf module + # cannot provide certain routines such as elfcore_write_prpsinfo +diff --git a/ld/configure.tgt b/ld/configure.tgt +index 1a70497ae98..6183a85b3d1 100644 +--- a/ld/configure.tgt ++++ b/ld/configure.tgt +@@ -241,32 +241,32 @@ hppa*-*-openbsd*) targ_emul=hppaobsd + ;; + i370-*-elf* | i370-*-linux-*) targ_emul=elf32i370 + ;; +-i[34567]86-*-nto-qnx*) targ_emul=i386nto ;; +-i[34567]86-*-vsta) targ_emul=vsta ;; +-i[34567]86-*-go32) targ_emul=i386go32 ;; +-i[34567]86-*-msdosdjgpp*) targ_emul=i386go32 ;; +-i[34567]86-*-aix*) targ_emul=i386coff ;; +-i[34567]86-*-sco*) targ_emul=i386coff ;; +-i[34567]86-*-isc*) targ_emul=i386coff ;; +-i[34567]86-*-lynxos*) targ_emul=i386lynx ;; +-i[34567]86-*-coff) targ_emul=i386coff ;; +-i[34567]86-*-aros*) targ_emul=elf_i386 ++i[3-7]86-*-nto-qnx*) targ_emul=i386nto ;; ++i[3-7]86-*-vsta) targ_emul=vsta ;; ++i[3-7]86-*-go32) targ_emul=i386go32 ;; ++i[3-7]86-*-msdosdjgpp*) targ_emul=i386go32 ;; ++i[3-7]86-*-aix*) targ_emul=i386coff ;; ++i[3-7]86-*-sco*) targ_emul=i386coff ;; ++i[3-7]86-*-isc*) targ_emul=i386coff ;; ++i[3-7]86-*-lynxos*) targ_emul=i386lynx ;; ++i[3-7]86-*-coff) targ_emul=i386coff ;; ++i[3-7]86-*-aros*) targ_emul=elf_i386 + targ_extra_emuls=elf_iamcu ;; +-i[34567]86-*-rdos*) targ_emul=elf_i386 ++i[3-7]86-*-rdos*) targ_emul=elf_i386 + targ_extra_emuls=elf_iamcu ;; + x86_64-*-rdos*) targ_emul=elf64rdos ;; + x86_64-*-cloudabi*) targ_emul=elf_x86_64_cloudabi ;; +-i[34567]86-*-bsd) targ_emul=i386bsd ;; +-i[34567]86-*-bsd386) targ_emul=i386bsd ;; +-i[34567]86-*-bsdi*) targ_emul=i386bsd ;; +-i[34567]86-*-aout) targ_emul=i386aout ;; +-i[34567]86-*-linux*aout*) targ_emul=i386linux ++i[3-7]86-*-bsd) targ_emul=i386bsd ;; ++i[3-7]86-*-bsd386) targ_emul=i386bsd ;; ++i[3-7]86-*-bsdi*) targ_emul=i386bsd ;; ++i[3-7]86-*-aout) targ_emul=i386aout ;; ++i[3-7]86-*-linux*aout*) targ_emul=i386linux + targ_extra_emuls="elf_i386 elf_iamcu" + tdir_elf_iamcu=`echo ${targ_alias} | sed -e 's/aout//'` + tdir_elf_i386=`echo ${targ_alias} | sed -e 's/aout//'` ;; +-i[34567]86-*-linux*oldld) targ_emul=i386linux ++i[3-7]86-*-linux*oldld) targ_emul=i386linux + targ_extra_emuls="elf_i386 elf_iamcu" ;; +-i[34567]86-*-linux-*) targ_emul=elf_i386 ++i[3-7]86-*-linux-*) targ_emul=elf_i386 + targ_extra_emuls="i386linux elf_iamcu" + targ64_extra_emuls="elf_x86_64 elf32_x86_64 elf_l1om elf_k1om" + targ64_extra_libpath="elf_x86_64 elf32_x86_64" +@@ -282,13 +282,13 @@ x86_64-*-linux-*) targ_emul=elf_x86_64 + targ_extra_libpath="elf_i386 elf32_x86_64 elf_l1om elf_k1om" + tdir_i386linux=`echo ${targ_alias}aout | sed -e 's/x86_64/i386/'` + tdir_elf_i386=`echo ${targ_alias} | sed -e 's/x86_64/i386/'` ;; +-i[34567]86-*-redox*) targ_emul=elf_i386 ++i[3-7]86-*-redox*) targ_emul=elf_i386 + targ_extra_emuls=elf_x86_64 ;; + x86_64-*-redox*) targ_emul=elf_x86_64 + targ_extra_emuls=elf_i386 ;; +-i[34567]86-*-sysv[45]*) targ_emul=elf_i386 ++i[3-7]86-*-sysv[45]*) targ_emul=elf_i386 + targ_extra_emuls=elf_iamcu ;; +-i[34567]86-*-solaris2*) targ_emul=elf_i386_sol2 ++i[3-7]86-*-solaris2*) targ_emul=elf_i386_sol2 + targ_extra_emuls="elf_i386_ldso elf_i386 elf_iamcu elf_x86_64_sol2 elf_x86_64 elf_l1om elf_k1om" + targ_extra_libpath=$targ_extra_emuls + ;; +@@ -297,20 +297,20 @@ x86_64-*-solaris2*) + targ_extra_emuls="elf_x86_64 elf_i386_sol2 elf_i386_ldso elf_i386 elf_iamcu elf_l1om elf_k1om" + targ_extra_libpath=$targ_extra_emuls + tdir_elf_i386=`echo ${targ_alias} | sed -e 's/x86_64/i386/'` ;; +-i[34567]86-*-unixware) targ_emul=elf_i386 ++i[3-7]86-*-unixware) targ_emul=elf_i386 + targ_extra_emuls=elf_iamcu ;; +-i[34567]86-*-solaris*) targ_emul=elf_i386_ldso ++i[3-7]86-*-solaris*) targ_emul=elf_i386_ldso + targ_extra_emuls="elf_i386" + targ_extra_libpath=$targ_extra_emuls + ;; +-i[34567]86-*-netbsdelf* | \ +-i[34567]86-*-netbsd*-gnu* | \ +-i[34567]86-*-knetbsd*-gnu) ++i[3-7]86-*-netbsdelf* | \ ++i[3-7]86-*-netbsd*-gnu* | \ ++i[3-7]86-*-knetbsd*-gnu) + targ_emul=elf_i386 + targ_extra_emuls="elf_iamcu i386nbsd" ;; +-i[34567]86-*-netbsdpe*) targ_emul=i386pe ++i[3-7]86-*-netbsdpe*) targ_emul=i386pe + targ_extra_ofiles="deffilep.o pe-dll.o" ;; +-i[34567]86-*-netbsd*) targ_emul=i386nbsd ++i[3-7]86-*-netbsd*) targ_emul=i386nbsd + targ_extra_emuls=elf_i386 ;; + x86_64-*-netbsd*) targ_emul=elf_x86_64 + targ_extra_emuls="elf_i386 elf_iamcu i386nbsd elf_l1om elf_k1om" +@@ -328,10 +328,10 @@ x86_64-*-netbsd*) targ_emul=elf_x86_64 + *) tdir_elf_i386=`echo ${tdir_elf_i386} | \ + sed -e 's/netbsd/netbsdelf/'`;; + esac ;; +-i[34567]86-*-netware) targ_emul=i386nw ;; +-i[34567]86-*-elfiamcu) targ_emul=elf_iamcu ++i[3-7]86-*-netware) targ_emul=i386nw ;; ++i[3-7]86-*-elfiamcu) targ_emul=elf_iamcu + targ_extra_emuls=elf_i386 ;; +-i[34567]86-*-elf* | i[34567]86-*-rtems*) ++i[3-7]86-*-elf* | i[3-7]86-*-rtems*) + targ_emul=elf_i386 + targ_extra_emuls=elf_iamcu ;; + x86_64-*-elf* | x86_64-*-rtems* | x86_64-*-fuchsia*) +@@ -340,14 +340,14 @@ x86_64-*-elf* | x86_64-*-rtems* | x86_64-*-fuchsia*) + targ_extra_libpath="elf_i386 elf_iamcu elf32_x86_64 elf_l1om elf_k1om" + tdir_elf_i386=`echo ${targ_alias} | sed -e 's/x86_64/i386/'` + ;; +-i[34567]86-*-kaos*) targ_emul=elf_i386 ;; +-i[34567]86-*-freebsdaout* | i[34567]86-*-freebsd[12].* | i[34567]86-*-freebsd[12]) ++i[3-7]86-*-kaos*) targ_emul=elf_i386 ;; ++i[3-7]86-*-freebsdaout* | i[3-7]86-*-freebsd[12].* | i[3-7]86-*-freebsd[12]) + targ_emul=i386bsd ;; +-i[34567]86-*-dragonfly*) targ_emul=elf_i386 ++i[3-7]86-*-dragonfly*) targ_emul=elf_i386 + targ_extra_emuls="elf_iamcu i386bsd" ;; + x86_64-*-dragonfly*) targ_emul=elf_x86_64 + targ_extra_emuls="elf_i386 elf_iamcu elf_l1om elf_k1om" ;; +-i[34567]86-*-freebsd* | i[34567]86-*-kfreebsd*-gnu) ++i[3-7]86-*-freebsd* | i[3-7]86-*-kfreebsd*-gnu) + targ_emul=elf_i386_fbsd + targ_extra_emuls="elf_i386 elf_iamcu i386bsd" ;; + x86_64-*-freebsd* | x86_64-*-kfreebsd*-gnu) +@@ -360,21 +360,21 @@ x86_64-*-freebsd* | x86_64-*-kfreebsd*-gnu) + | sed -e 's/x86_64/i386/'` + tdir_elf_i386=`echo ${targ_alias} \ + | sed -e 's/x86_64/i386/'` ;; +-i[34567]86-*-sysv*) targ_emul=i386coff ;; +-i[34567]86-*-ptx*) targ_emul=i386coff ;; +-i[34567]86-*-mach*) targ_emul=i386mach ;; +-i[34567]86-*-gnu*) targ_emul=elf_i386 ++i[3-7]86-*-sysv*) targ_emul=i386coff ;; ++i[3-7]86-*-ptx*) targ_emul=i386coff ;; ++i[3-7]86-*-mach*) targ_emul=i386mach ;; ++i[3-7]86-*-gnu*) targ_emul=elf_i386 + targ_extra_emuls=elf_iamcu ;; +-i[34567]86-*-msdos*) targ_emul=i386msdos; targ_extra_emuls=i386aout ;; +-i[34567]86-*-moss*) targ_emul=i386moss; targ_extra_emuls=i386msdos ;; +-i[34567]86-*-winnt*) targ_emul=i386pe ; ++i[3-7]86-*-msdos*) targ_emul=i386msdos; targ_extra_emuls=i386aout ;; ++i[3-7]86-*-moss*) targ_emul=i386moss; targ_extra_emuls=i386msdos ;; ++i[3-7]86-*-winnt*) targ_emul=i386pe ; + targ_extra_ofiles="deffilep.o pe-dll.o" ;; +-i[34567]86-*-pe) targ_emul=i386pe ; ++i[3-7]86-*-pe) targ_emul=i386pe ; + targ_extra_ofiles="deffilep.o pe-dll.o" ;; +-i[34567]86-*-cygwin*) targ_emul=i386pe ; ++i[3-7]86-*-cygwin*) targ_emul=i386pe ; + targ_extra_ofiles="deffilep.o pe-dll.o" ; + test "$targ" != "$host" && LIB_PATH='${tooldir}/lib/w32api' ;; +-i[34567]86-*-mingw32*) targ_emul=i386pe ; ++i[3-7]86-*-mingw32*) targ_emul=i386pe ; + targ_extra_ofiles="deffilep.o pe-dll.o" ;; + x86_64-*-pe | x86_64-*-pep) targ_emul=i386pep ; + targ_extra_emuls=i386pe ; +@@ -386,14 +386,14 @@ x86_64-*-cygwin) targ_emul=i386pep ; + x86_64-*-mingw*) targ_emul=i386pep ; + targ_extra_emuls=i386pe + targ_extra_ofiles="deffilep.o pep-dll.o pe-dll.o" ;; +-i[34567]86-*-interix*) targ_emul=i386pe_posix; ++i[3-7]86-*-interix*) targ_emul=i386pe_posix; + targ_extra_ofiles="deffilep.o pe-dll.o" ;; +-i[34567]86-*-beospe*) targ_emul=i386beos ;; +-i[34567]86-*-beos*) targ_emul=elf_i386_be ;; +-i[34567]86-*-vxworks*) targ_emul=elf_i386_vxworks ;; +-i[34567]86-*-chaos) targ_emul=elf_i386_chaos ++i[3-7]86-*-beospe*) targ_emul=i386beos ;; ++i[3-7]86-*-beos*) targ_emul=elf_i386_be ;; ++i[3-7]86-*-vxworks*) targ_emul=elf_i386_vxworks ;; ++i[3-7]86-*-chaos) targ_emul=elf_i386_chaos + ;; +-i[34567]86-*-nacl*) targ_emul=elf_i386_nacl ++i[3-7]86-*-nacl*) targ_emul=elf_i386_nacl + targ_extra_emuls="armelf_nacl armelfb_nacl" + targ_extra_libpath=$targ_extra_emuls + targ64_extra_emuls="elf32_x86_64_nacl elf_x86_64_nacl" +@@ -903,15 +903,15 @@ hppa*64*-*-hpux11*) + NATIVE_LIB_DIRS=/usr/lib/pa20_64 + ;; + +-i[34567]86-*-sysv4*) ++i[3-7]86-*-sysv4*) + NATIVE_LIB_DIRS='/usr/local/lib /usr/ccs/lib /lib /usr/lib' + ;; + +-i[34567]86-*-solaris*) ++i[3-7]86-*-solaris*) + NATIVE_LIB_DIRS='/usr/local/lib /usr/ccs/lib /lib /usr/lib' + ;; + +-i[34567]86-pc-interix*) ++i[3-7]86-pc-interix*) + NATIVE_LIB_DIRS='/usr/local/lib $$INTERIX_ROOT/usr/lib /lib /usr/lib' + ;; + diff --git a/packages/binutils-oracle/git-43eccdca/0002-fix_to_patch_92.patch b/packages/binutils-oracle/git-43eccdca/0002-fix_to_patch_92.patch new file mode 100644 index 00000000..41b3b9f5 --- /dev/null +++ b/packages/binutils-oracle/git-43eccdca/0002-fix_to_patch_92.patch @@ -0,0 +1,44 @@ +diff --git a/gold/i386.cc b/gold/i386.cc +index a65f3a034df..3f1312c8640 100644 +--- a/gold/i386.cc ++++ b/gold/i386.cc +@@ -1081,7 +1081,7 @@ Target_i386::record_gnu_property( + { + uint32_t val = 0; + +- switch (pr_type) ++ switch ((unsigned int) pr_type) + { + case elfcpp::GNU_PROPERTY_X86_ISA_1_USED: + case elfcpp::GNU_PROPERTY_X86_ISA_1_NEEDED: +@@ -1102,7 +1102,7 @@ Target_i386::record_gnu_property( + break; + } + +- switch (pr_type) ++ switch ((unsigned int) pr_type) + { + case elfcpp::GNU_PROPERTY_X86_ISA_1_USED: + this->isa_1_used_ |= val; +diff --git a/gold/x86_64.cc b/gold/x86_64.cc +index 16bcffc9541..63b551957ef 100644 +--- a/gold/x86_64.cc ++++ b/gold/x86_64.cc +@@ -1468,7 +1468,7 @@ Target_x86_64<size>::record_gnu_property( + { + uint32_t val = 0; + +- switch (pr_type) ++ switch ((unsigned int) pr_type) + { + case elfcpp::GNU_PROPERTY_X86_ISA_1_USED: + case elfcpp::GNU_PROPERTY_X86_ISA_1_NEEDED: +@@ -1489,7 +1489,7 @@ Target_x86_64<size>::record_gnu_property( + break; + } + +- switch (pr_type) ++ switch ((unsigned int) pr_type) + { + case elfcpp::GNU_PROPERTY_X86_ISA_1_USED: + this->isa_1_used_ |= val; diff --git a/packages/expat/2.4.1/version.desc b/packages/expat/2.4.1/version.desc index e69de29b..fcfe3891 100644 --- a/packages/expat/2.4.1/version.desc +++ b/packages/expat/2.4.1/version.desc @@ -0,0 +1 @@ +obsolete='yes' diff --git a/packages/expat/2.5.0/chksum b/packages/expat/2.5.0/chksum new file mode 100644 index 00000000..e81826d7 --- /dev/null +++ b/packages/expat/2.5.0/chksum @@ -0,0 +1,17 @@ +md5 expat-2.5.0.tar.xz ac6677b6d1b95d209ab697ce8b688704 +sha1 expat-2.5.0.tar.xz 5178e13c1e34f4643d5118d5758babfe0e836fe2 +sha256 expat-2.5.0.tar.xz ef2420f0232c087801abf705e89ae65f6257df6b7931d37846a193ef2e8cdcbe +sha512 expat-2.5.0.tar.xz 2da73b991b7c0c54440485c787e5edeb3567230204e31b3cac1c3a6713ec6f9f1554d3afffc0f8336168dfd5df02db4a69bcf21b4d959723d14162d13ab87516 +md5 expat-2.5.0.tar.lz 4add8675872d4b923d9b7871dc0f24d3 +sha1 expat-2.5.0.tar.lz 9f767155627006b383f54078f2fa0d7df5b9d6e6 +sha256 expat-2.5.0.tar.lz 9a51edebc8c2910d8cc2b5e6b8d98350dea559922208f3e1a6bb5de33b6c2dc6 +sha512 expat-2.5.0.tar.lz 59ec89d471cda38fab853c85ff5ffc0631d6fa2c376e7246a933f8d317f037672e8142cf1408477f5724192a05ace1baa51a533c605a78532863d5f178e37c08 +md5 expat-2.5.0.tar.bz2 5e9974d422dc4b157f300568ad28ebf6 +sha1 expat-2.5.0.tar.bz2 36e29d7192ab8c5ce44d09375318a0a81395aab0 +sha256 expat-2.5.0.tar.bz2 6f0e6e01f7b30025fa05c85fdad1e5d0ec7fd35d9f61b22f34998de11969ff67 +sha512 expat-2.5.0.tar.bz2 22fd904d75aab7506a85c03519b9cf79e44898c8e1ba6abf6cb7f95de71b8e63a7e2d5cf4395e3627d46035ea29342b3e631a8809fef8aad3f59976dc075ad17 +md5 expat-2.5.0.tar.gz 686e9d986f85966c7924dfc041cdc15e +sha1 expat-2.5.0.tar.gz 061c1232188dff35e44aa7137aec7757d3d90d27 +sha256 expat-2.5.0.tar.gz 6b902ab103843592be5e99504f846ec109c1abb692e85347587f237a4ffa1033 +sha512 expat-2.5.0.tar.gz f1ff7da5fafb47dcd6e0f0d892826aba6de76509c8497bc00382f1109ab8e2a93d396943dbb52216457044993a39d73728048adf650d8e83e28189edc7b78402 + diff --git a/packages/linux/4.14.290/version.desc b/packages/expat/2.5.0/version.desc index e69de29b..e69de29b 100644 --- a/packages/linux/4.14.290/version.desc +++ b/packages/expat/2.5.0/version.desc diff --git a/packages/gcc/10.4.0/0010-fixinc-don-t-fix-machine-names-in-__has_include-.PR.patch b/packages/gcc/10.4.0/0010-fixinc-don-t-fix-machine-names-in-__has_include-.PR.patch new file mode 100644 index 00000000..2f8ad877 --- /dev/null +++ b/packages/gcc/10.4.0/0010-fixinc-don-t-fix-machine-names-in-__has_include-.PR.patch @@ -0,0 +1,123 @@ +From a6eedb593ca068d0ad8655dbb97fcd6371cba682 Mon Sep 17 00:00:00 2001 +From: Xi Ruoyao <xry111@mengyan1223.wang> +Date: Mon, 28 Jun 2021 13:54:58 +0800 +Subject: [PATCH] fixinc: don't "fix" machine names in __has_include(...) + [PR91085] + +fixincludes/ + + PR other/91085 + * fixfixes.c (check_has_inc): New static function. + (machine_name_fix): Don't replace header names in + __has_include(...). + * inclhack.def (machine_name): Adjust test. + * tests/base/testing.h: Update. + +Upstream: 6bf383c37e6131a8e247e8a0997d55d65c830b6d +Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> +--- + fixincludes/fixfixes.c | 45 ++++++++++++++++++++++++++++++-- + fixincludes/inclhack.def | 3 ++- + fixincludes/tests/base/testing.h | 2 +- + 3 files changed, 46 insertions(+), 4 deletions(-) + +diff --git a/fixincludes/fixfixes.c b/fixincludes/fixfixes.c +index 034e15d9985..3ff87812036 100644 +--- a/fixincludes/fixfixes.c ++++ b/fixincludes/fixfixes.c +@@ -477,6 +477,39 @@ FIX_PROC_HEAD( char_macro_def_fix ) + fputs (text, stdout); + } + ++/* Check if the pattern at pos is actually in a "__has_include(...)" ++ directive. Return the pointer to the ')' of this ++ "__has_include(...)" if it is, NULL otherwise. */ ++static const char * ++check_has_inc (const char *begin, const char *pos, const char *end) ++{ ++ static const char has_inc[] = "__has_include"; ++ const size_t has_inc_len = sizeof (has_inc) - 1; ++ const char *p; ++ ++ for (p = memmem (begin, pos - begin, has_inc, has_inc_len); ++ p != NULL; ++ p = memmem (p, pos - p, has_inc, has_inc_len)) ++ { ++ p += has_inc_len; ++ while (p < end && ISSPACE (*p)) ++ p++; ++ ++ /* "__has_include" may appear as "defined(__has_include)", ++ search for the next appearance then. */ ++ if (*p != '(') ++ continue; ++ ++ /* To avoid too much complexity, just hope there is never a ++ ')' in a header name. */ ++ p = memchr (p, ')', end - p); ++ if (p == NULL || p > pos) ++ return p; ++ } ++ ++ return NULL; ++} ++ + /* Fix for machine name #ifdefs that are not in the namespace reserved + by the C standard. They won't be defined if compiling with -ansi, + and the headers will break. We go to some trouble to only change +@@ -524,7 +557,7 @@ FIX_PROC_HEAD( machine_name_fix ) + /* If the 'name_pat' matches in between base and limit, we have + a bogon. It is not worth the hassle of excluding comments + because comments on #if/#ifdef lines are rare, and strings on +- such lines are illegal. ++ such lines are only legal in a "__has_include" directive. + + REG_NOTBOL means 'base' is not at the beginning of a line, which + shouldn't matter since the name_re has no ^ anchor, but let's +@@ -544,8 +577,16 @@ FIX_PROC_HEAD( machine_name_fix ) + break; + + p = base + match[0].rm_so; +- base += match[0].rm_eo; + ++ /* Check if the match is in __has_include(...) (PR 91085). */ ++ q = check_has_inc (base, p, limit); ++ if (q) ++ { ++ base = q + 1; ++ goto again; ++ } ++ ++ base += match[0].rm_eo; + /* One more test: if on the same line we have the same string + with the appropriate underscores, then leave it alone. + We want exactly two leading and trailing underscores. */ +diff --git a/fixincludes/inclhack.def b/fixincludes/inclhack.def +index f58e7771e1c..71bd717c233 100644 +--- a/fixincludes/inclhack.def ++++ b/fixincludes/inclhack.def +@@ -3114,7 +3114,8 @@ fix = { + c_fix = machine_name; + + test_text = "/* MACH_DIFF: */\n" +- "#if defined( i386 ) || defined( sparc ) || defined( vax )" ++ "#if defined( i386 ) || defined( sparc ) || defined( vax ) || " ++ "defined( linux ) || __has_include ( <linux.h> )" + "\n/* no uniform test, so be careful :-) */"; + }; + +diff --git a/fixincludes/tests/base/testing.h b/fixincludes/tests/base/testing.h +index cf95321fb86..8b3accaf04e 100644 +--- a/fixincludes/tests/base/testing.h ++++ b/fixincludes/tests/base/testing.h +@@ -64,7 +64,7 @@ BSD43__IOWR('T', 1) /* Some are multi-line */ + + #if defined( MACHINE_NAME_CHECK ) + /* MACH_DIFF: */ +-#if defined( i386 ) || defined( sparc ) || defined( vax ) ++#if defined( i386 ) || defined( sparc ) || defined( vax ) || defined( linux ) || __has_include ( <linux.h> ) + /* no uniform test, so be careful :-) */ + #endif /* MACHINE_NAME_CHECK */ + +-- +2.37.3 diff --git a/packages/gcc/11.3.0/0010-fixinc-don-t-fix-machine-names-in-__has_include-.PR.patch b/packages/gcc/11.3.0/0010-fixinc-don-t-fix-machine-names-in-__has_include-.PR.patch new file mode 100644 index 00000000..5e657bd2 --- /dev/null +++ b/packages/gcc/11.3.0/0010-fixinc-don-t-fix-machine-names-in-__has_include-.PR.patch @@ -0,0 +1,123 @@ +From de3f4ee9a5bd2adcb5ff2e1690db2567fda1473c Mon Sep 17 00:00:00 2001 +From: Xi Ruoyao <xry111@mengyan1223.wang> +Date: Mon, 28 Jun 2021 13:54:58 +0800 +Subject: [PATCH] fixinc: don't "fix" machine names in __has_include(...) + [PR91085] + +fixincludes/ + + PR other/91085 + * fixfixes.c (check_has_inc): New static function. + (machine_name_fix): Don't replace header names in + __has_include(...). + * inclhack.def (machine_name): Adjust test. + * tests/base/testing.h: Update. + +Upstream: 6bf383c37e6131a8e247e8a0997d55d65c830b6d +Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> +--- + fixincludes/fixfixes.c | 45 ++++++++++++++++++++++++++++++-- + fixincludes/inclhack.def | 3 ++- + fixincludes/tests/base/testing.h | 2 +- + 3 files changed, 46 insertions(+), 4 deletions(-) + +diff --git a/fixincludes/fixfixes.c b/fixincludes/fixfixes.c +index 5b23a8b640d..404b420f302 100644 +--- a/fixincludes/fixfixes.c ++++ b/fixincludes/fixfixes.c +@@ -477,6 +477,39 @@ FIX_PROC_HEAD( char_macro_def_fix ) + fputs (text, stdout); + } + ++/* Check if the pattern at pos is actually in a "__has_include(...)" ++ directive. Return the pointer to the ')' of this ++ "__has_include(...)" if it is, NULL otherwise. */ ++static const char * ++check_has_inc (const char *begin, const char *pos, const char *end) ++{ ++ static const char has_inc[] = "__has_include"; ++ const size_t has_inc_len = sizeof (has_inc) - 1; ++ const char *p; ++ ++ for (p = memmem (begin, pos - begin, has_inc, has_inc_len); ++ p != NULL; ++ p = memmem (p, pos - p, has_inc, has_inc_len)) ++ { ++ p += has_inc_len; ++ while (p < end && ISSPACE (*p)) ++ p++; ++ ++ /* "__has_include" may appear as "defined(__has_include)", ++ search for the next appearance then. */ ++ if (*p != '(') ++ continue; ++ ++ /* To avoid too much complexity, just hope there is never a ++ ')' in a header name. */ ++ p = memchr (p, ')', end - p); ++ if (p == NULL || p > pos) ++ return p; ++ } ++ ++ return NULL; ++} ++ + /* Fix for machine name #ifdefs that are not in the namespace reserved + by the C standard. They won't be defined if compiling with -ansi, + and the headers will break. We go to some trouble to only change +@@ -524,7 +557,7 @@ FIX_PROC_HEAD( machine_name_fix ) + /* If the 'name_pat' matches in between base and limit, we have + a bogon. It is not worth the hassle of excluding comments + because comments on #if/#ifdef lines are rare, and strings on +- such lines are illegal. ++ such lines are only legal in a "__has_include" directive. + + REG_NOTBOL means 'base' is not at the beginning of a line, which + shouldn't matter since the name_re has no ^ anchor, but let's +@@ -544,8 +577,16 @@ FIX_PROC_HEAD( machine_name_fix ) + break; + + p = base + match[0].rm_so; +- base += match[0].rm_eo; + ++ /* Check if the match is in __has_include(...) (PR 91085). */ ++ q = check_has_inc (base, p, limit); ++ if (q) ++ { ++ base = q + 1; ++ goto again; ++ } ++ ++ base += match[0].rm_eo; + /* One more test: if on the same line we have the same string + with the appropriate underscores, then leave it alone. + We want exactly two leading and trailing underscores. */ +diff --git a/fixincludes/inclhack.def b/fixincludes/inclhack.def +index 066bef99162..b7ad6982e96 100644 +--- a/fixincludes/inclhack.def ++++ b/fixincludes/inclhack.def +@@ -3154,7 +3154,8 @@ fix = { + c_fix = machine_name; + + test_text = "/* MACH_DIFF: */\n" +- "#if defined( i386 ) || defined( sparc ) || defined( vax )" ++ "#if defined( i386 ) || defined( sparc ) || defined( vax ) || " ++ "defined( linux ) || __has_include ( <linux.h> )" + "\n/* no uniform test, so be careful :-) */"; + }; + +diff --git a/fixincludes/tests/base/testing.h b/fixincludes/tests/base/testing.h +index cf95321fb86..8b3accaf04e 100644 +--- a/fixincludes/tests/base/testing.h ++++ b/fixincludes/tests/base/testing.h +@@ -64,7 +64,7 @@ BSD43__IOWR('T', 1) /* Some are multi-line */ + + #if defined( MACHINE_NAME_CHECK ) + /* MACH_DIFF: */ +-#if defined( i386 ) || defined( sparc ) || defined( vax ) ++#if defined( i386 ) || defined( sparc ) || defined( vax ) || defined( linux ) || __has_include ( <linux.h> ) + /* no uniform test, so be careful :-) */ + #endif /* MACHINE_NAME_CHECK */ + +-- +2.37.3 diff --git a/packages/glibc-oracle/2.28/version.desc b/packages/glibc-oracle/2.28/version.desc index 05402ba2..fd7da0a1 100644 --- a/packages/glibc-oracle/2.28/version.desc +++ b/packages/glibc-oracle/2.28/version.desc @@ -1,2 +1,2 @@ -repository_branch='oracle/glibc/ol8-u6' -version_number='2.28-189.1.0.1' +repository_branch='oracle/glibc/ol8-u7' +version_number='2.28-211.0.1' diff --git a/packages/glibc/2.26/0006-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch b/packages/glibc/2.26/0006-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch new file mode 100644 index 00000000..b8c927d6 --- /dev/null +++ b/packages/glibc/2.26/0006-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch @@ -0,0 +1,105 @@ +From 2d7ed98add14f75041499ac189696c9bd3d757fe Mon Sep 17 00:00:00 2001 +From: Sergei Trofimovich <slyich@gmail.com> +Date: Tue, 13 Sep 2022 13:39:13 -0400 +Subject: [PATCH] Makerules: fix MAKEFLAGS assignment for upcoming make-4.4 + [BZ# 29564] + +make-4.4 will add long flags to MAKEFLAGS variable: + + * WARNING: Backward-incompatibility! + Previously only simple (one-letter) options were added to the MAKEFLAGS + variable that was visible while parsing makefiles. Now, all options + are available in MAKEFLAGS. + +This causes locale builds to fail when long options are used: + + $ make --shuffle + ... + make -C localedata install-locales + make: invalid shuffle mode: '1662724426r' + +The change fixes it by passing eash option via whitespace and dashes. +That way option is appended to both single-word form and whitespace +separated form. + +While at it fixed --silent mode detection in $(MAKEFLAGS) by filtering +out --long-options. Otherwise options like --shuffle flag enable silent +mode unintentionally. $(silent-make) variable consolidates the checks. + +Resolves: BZ# 29564 + +CC: Paul Smith <psmith@gnu.org> +CC: Siddhesh Poyarekar <siddhesh@gotplt.org> +Signed-off-by: Sergei Trofimovich <slyich@gmail.com> +Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org> +--- + Makeconfig | 18 +++++++++++++++++- + Makerules | 4 ++-- + elf/rtld-Rules | 2 +- + 3 files changed, 20 insertions(+), 4 deletions(-) + +--- a/Makeconfig ++++ b/Makeconfig +@@ -42,6 +42,22 @@ + objdir must be defined by the build-directory Makefile. + endif + ++# Did we request 'make -s' run? "yes" or "no". ++# Starting from make-4.4 MAKEFLAGS now contains long ++# options like '--shuffle'. To detect presence of 's' ++# we pick first word with short options. Long options ++# are guaranteed to come after whitespace. We use '-' ++# prefix to always have a word before long options ++# even if no short options were passed. ++# Typical MAKEFLAGS values to watch for: ++# "rs --shuffle=42" (silent) ++# " --shuffle" (not silent) ++ifeq ($(findstring s, $(firstword -$(MAKEFLAGS))),) ++silent-make := no ++else ++silent-make := yes ++endif ++ + # Root of the sysdeps tree. + sysdep_dir := $(..)sysdeps + export sysdep_dir := $(sysdep_dir) +@@ -858,7 +874,7 @@ + # 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 ++ifeq ($(silent-make),yes) # if -s + +cmdecho := echo >/dev/null + else # not -s + +cmdecho := echo +--- a/Makerules ++++ b/Makerules +@@ -868,7 +868,7 @@ + # 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 ++MAKEFLAGS := $(MAKEFLAGS) -r + + # Generic rule for making directories. + %/: +@@ -885,7 +885,7 @@ + .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 ++ifeq ($(silent-make),no) # if not -s + verbose := v + else # -s + verbose := +--- a/elf/rtld-Rules ++++ b/elf/rtld-Rules +@@ -52,7 +52,7 @@ + mv -f $@T $@ + + # Use the verbose option of ar and tar when not running silently. +-ifeq "$(findstring s,$(MAKEFLAGS))" "" # if not -s ++ifeq ($(silent-make),no) # if not -s + verbose := v + else # -s + verbose := diff --git a/packages/glibc/2.27/0002-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch b/packages/glibc/2.27/0002-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch new file mode 100644 index 00000000..3ff2df01 --- /dev/null +++ b/packages/glibc/2.27/0002-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch @@ -0,0 +1,105 @@ +From 2d7ed98add14f75041499ac189696c9bd3d757fe Mon Sep 17 00:00:00 2001 +From: Sergei Trofimovich <slyich@gmail.com> +Date: Tue, 13 Sep 2022 13:39:13 -0400 +Subject: [PATCH] Makerules: fix MAKEFLAGS assignment for upcoming make-4.4 + [BZ# 29564] + +make-4.4 will add long flags to MAKEFLAGS variable: + + * WARNING: Backward-incompatibility! + Previously only simple (one-letter) options were added to the MAKEFLAGS + variable that was visible while parsing makefiles. Now, all options + are available in MAKEFLAGS. + +This causes locale builds to fail when long options are used: + + $ make --shuffle + ... + make -C localedata install-locales + make: invalid shuffle mode: '1662724426r' + +The change fixes it by passing eash option via whitespace and dashes. +That way option is appended to both single-word form and whitespace +separated form. + +While at it fixed --silent mode detection in $(MAKEFLAGS) by filtering +out --long-options. Otherwise options like --shuffle flag enable silent +mode unintentionally. $(silent-make) variable consolidates the checks. + +Resolves: BZ# 29564 + +CC: Paul Smith <psmith@gnu.org> +CC: Siddhesh Poyarekar <siddhesh@gotplt.org> +Signed-off-by: Sergei Trofimovich <slyich@gmail.com> +Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org> +--- + Makeconfig | 18 +++++++++++++++++- + Makerules | 4 ++-- + elf/rtld-Rules | 2 +- + 3 files changed, 20 insertions(+), 4 deletions(-) + +--- a/Makeconfig ++++ b/Makeconfig +@@ -42,6 +42,22 @@ + objdir must be defined by the build-directory Makefile. + endif + ++# Did we request 'make -s' run? "yes" or "no". ++# Starting from make-4.4 MAKEFLAGS now contains long ++# options like '--shuffle'. To detect presence of 's' ++# we pick first word with short options. Long options ++# are guaranteed to come after whitespace. We use '-' ++# prefix to always have a word before long options ++# even if no short options were passed. ++# Typical MAKEFLAGS values to watch for: ++# "rs --shuffle=42" (silent) ++# " --shuffle" (not silent) ++ifeq ($(findstring s, $(firstword -$(MAKEFLAGS))),) ++silent-make := no ++else ++silent-make := yes ++endif ++ + # Root of the sysdeps tree. + sysdep_dir := $(..)sysdeps + export sysdep_dir := $(sysdep_dir) +@@ -875,7 +891,7 @@ + # 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 ++ifeq ($(silent-make),yes) # if -s + +cmdecho := echo >/dev/null + else # not -s + +cmdecho := echo +--- a/Makerules ++++ b/Makerules +@@ -871,7 +871,7 @@ + # 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 ++MAKEFLAGS := $(MAKEFLAGS) -r + + # Generic rule for making directories. + %/: +@@ -888,7 +888,7 @@ + .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 ++ifeq ($(silent-make),no) # if not -s + verbose := v + else # -s + verbose := +--- a/elf/rtld-Rules ++++ b/elf/rtld-Rules +@@ -52,7 +52,7 @@ + mv -f $@T $@ + + # Use the verbose option of ar and tar when not running silently. +-ifeq "$(findstring s,$(MAKEFLAGS))" "" # if not -s ++ifeq ($(silent-make),no) # if not -s + verbose := v + else # -s + verbose := diff --git a/packages/glibc/2.28/0003-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch b/packages/glibc/2.28/0003-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch new file mode 100644 index 00000000..9a4cdec5 --- /dev/null +++ b/packages/glibc/2.28/0003-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch @@ -0,0 +1,105 @@ +From 2d7ed98add14f75041499ac189696c9bd3d757fe Mon Sep 17 00:00:00 2001 +From: Sergei Trofimovich <slyich@gmail.com> +Date: Tue, 13 Sep 2022 13:39:13 -0400 +Subject: [PATCH] Makerules: fix MAKEFLAGS assignment for upcoming make-4.4 + [BZ# 29564] + +make-4.4 will add long flags to MAKEFLAGS variable: + + * WARNING: Backward-incompatibility! + Previously only simple (one-letter) options were added to the MAKEFLAGS + variable that was visible while parsing makefiles. Now, all options + are available in MAKEFLAGS. + +This causes locale builds to fail when long options are used: + + $ make --shuffle + ... + make -C localedata install-locales + make: invalid shuffle mode: '1662724426r' + +The change fixes it by passing eash option via whitespace and dashes. +That way option is appended to both single-word form and whitespace +separated form. + +While at it fixed --silent mode detection in $(MAKEFLAGS) by filtering +out --long-options. Otherwise options like --shuffle flag enable silent +mode unintentionally. $(silent-make) variable consolidates the checks. + +Resolves: BZ# 29564 + +CC: Paul Smith <psmith@gnu.org> +CC: Siddhesh Poyarekar <siddhesh@gotplt.org> +Signed-off-by: Sergei Trofimovich <slyich@gmail.com> +Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org> +--- + Makeconfig | 18 +++++++++++++++++- + Makerules | 4 ++-- + elf/rtld-Rules | 2 +- + 3 files changed, 20 insertions(+), 4 deletions(-) + +--- a/Makeconfig ++++ b/Makeconfig +@@ -42,6 +42,22 @@ + objdir must be defined by the build-directory Makefile. + endif + ++# Did we request 'make -s' run? "yes" or "no". ++# Starting from make-4.4 MAKEFLAGS now contains long ++# options like '--shuffle'. To detect presence of 's' ++# we pick first word with short options. Long options ++# are guaranteed to come after whitespace. We use '-' ++# prefix to always have a word before long options ++# even if no short options were passed. ++# Typical MAKEFLAGS values to watch for: ++# "rs --shuffle=42" (silent) ++# " --shuffle" (not silent) ++ifeq ($(findstring s, $(firstword -$(MAKEFLAGS))),) ++silent-make := no ++else ++silent-make := yes ++endif ++ + # Root of the sysdeps tree. + sysdep_dir := $(..)sysdeps + export sysdep_dir := $(sysdep_dir) +@@ -878,7 +894,7 @@ + # 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 ++ifeq ($(silent-make),yes) # if -s + +cmdecho := echo >/dev/null + else # not -s + +cmdecho := echo +--- a/Makerules ++++ b/Makerules +@@ -875,7 +875,7 @@ + # 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 ++MAKEFLAGS := $(MAKEFLAGS) -r + + # Generic rule for making directories. + %/: +@@ -892,7 +892,7 @@ + .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 ++ifeq ($(silent-make),no) # if not -s + verbose := v + else # -s + verbose := +--- a/elf/rtld-Rules ++++ b/elf/rtld-Rules +@@ -52,7 +52,7 @@ + mv -f $@T $@ + + # Use the verbose option of ar and tar when not running silently. +-ifeq "$(findstring s,$(MAKEFLAGS))" "" # if not -s ++ifeq ($(silent-make),no) # if not -s + verbose := v + else # -s + verbose := diff --git a/packages/glibc/2.29/0004-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch b/packages/glibc/2.29/0004-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch new file mode 100644 index 00000000..33dab461 --- /dev/null +++ b/packages/glibc/2.29/0004-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch @@ -0,0 +1,105 @@ +From 2d7ed98add14f75041499ac189696c9bd3d757fe Mon Sep 17 00:00:00 2001 +From: Sergei Trofimovich <slyich@gmail.com> +Date: Tue, 13 Sep 2022 13:39:13 -0400 +Subject: [PATCH] Makerules: fix MAKEFLAGS assignment for upcoming make-4.4 + [BZ# 29564] + +make-4.4 will add long flags to MAKEFLAGS variable: + + * WARNING: Backward-incompatibility! + Previously only simple (one-letter) options were added to the MAKEFLAGS + variable that was visible while parsing makefiles. Now, all options + are available in MAKEFLAGS. + +This causes locale builds to fail when long options are used: + + $ make --shuffle + ... + make -C localedata install-locales + make: invalid shuffle mode: '1662724426r' + +The change fixes it by passing eash option via whitespace and dashes. +That way option is appended to both single-word form and whitespace +separated form. + +While at it fixed --silent mode detection in $(MAKEFLAGS) by filtering +out --long-options. Otherwise options like --shuffle flag enable silent +mode unintentionally. $(silent-make) variable consolidates the checks. + +Resolves: BZ# 29564 + +CC: Paul Smith <psmith@gnu.org> +CC: Siddhesh Poyarekar <siddhesh@gotplt.org> +Signed-off-by: Sergei Trofimovich <slyich@gmail.com> +Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org> +--- + Makeconfig | 18 +++++++++++++++++- + Makerules | 4 ++-- + elf/rtld-Rules | 2 +- + 3 files changed, 20 insertions(+), 4 deletions(-) + +--- a/Makeconfig ++++ b/Makeconfig +@@ -42,6 +42,22 @@ + objdir must be defined by the build-directory Makefile. + endif + ++# Did we request 'make -s' run? "yes" or "no". ++# Starting from make-4.4 MAKEFLAGS now contains long ++# options like '--shuffle'. To detect presence of 's' ++# we pick first word with short options. Long options ++# are guaranteed to come after whitespace. We use '-' ++# prefix to always have a word before long options ++# even if no short options were passed. ++# Typical MAKEFLAGS values to watch for: ++# "rs --shuffle=42" (silent) ++# " --shuffle" (not silent) ++ifeq ($(findstring s, $(firstword -$(MAKEFLAGS))),) ++silent-make := no ++else ++silent-make := yes ++endif ++ + # Root of the sysdeps tree. + sysdep_dir := $(..)sysdeps + export sysdep_dir := $(sysdep_dir) +@@ -880,7 +896,7 @@ + # 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 ++ifeq ($(silent-make),yes) # if -s + +cmdecho := echo >/dev/null + else # not -s + +cmdecho := echo +--- a/Makerules ++++ b/Makerules +@@ -805,7 +805,7 @@ + # 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 ++MAKEFLAGS := $(MAKEFLAGS) -r + + # Generic rule for making directories. + %/: +@@ -822,7 +822,7 @@ + .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 ++ifeq ($(silent-make),no) # if not -s + verbose := v + else # -s + verbose := +--- a/elf/rtld-Rules ++++ b/elf/rtld-Rules +@@ -52,7 +52,7 @@ + mv -f $@T $@ + + # Use the verbose option of ar and tar when not running silently. +-ifeq "$(findstring s,$(MAKEFLAGS))" "" # if not -s ++ifeq ($(silent-make),no) # if not -s + verbose := v + else # -s + verbose := diff --git a/packages/glibc/2.30/0004-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch b/packages/glibc/2.30/0004-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch new file mode 100644 index 00000000..e34693eb --- /dev/null +++ b/packages/glibc/2.30/0004-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch @@ -0,0 +1,105 @@ +From 2d7ed98add14f75041499ac189696c9bd3d757fe Mon Sep 17 00:00:00 2001 +From: Sergei Trofimovich <slyich@gmail.com> +Date: Tue, 13 Sep 2022 13:39:13 -0400 +Subject: [PATCH] Makerules: fix MAKEFLAGS assignment for upcoming make-4.4 + [BZ# 29564] + +make-4.4 will add long flags to MAKEFLAGS variable: + + * WARNING: Backward-incompatibility! + Previously only simple (one-letter) options were added to the MAKEFLAGS + variable that was visible while parsing makefiles. Now, all options + are available in MAKEFLAGS. + +This causes locale builds to fail when long options are used: + + $ make --shuffle + ... + make -C localedata install-locales + make: invalid shuffle mode: '1662724426r' + +The change fixes it by passing eash option via whitespace and dashes. +That way option is appended to both single-word form and whitespace +separated form. + +While at it fixed --silent mode detection in $(MAKEFLAGS) by filtering +out --long-options. Otherwise options like --shuffle flag enable silent +mode unintentionally. $(silent-make) variable consolidates the checks. + +Resolves: BZ# 29564 + +CC: Paul Smith <psmith@gnu.org> +CC: Siddhesh Poyarekar <siddhesh@gotplt.org> +Signed-off-by: Sergei Trofimovich <slyich@gmail.com> +Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org> +--- + Makeconfig | 18 +++++++++++++++++- + Makerules | 4 ++-- + elf/rtld-Rules | 2 +- + 3 files changed, 20 insertions(+), 4 deletions(-) + +--- a/Makeconfig ++++ b/Makeconfig +@@ -42,6 +42,22 @@ + objdir must be defined by the build-directory Makefile. + endif + ++# Did we request 'make -s' run? "yes" or "no". ++# Starting from make-4.4 MAKEFLAGS now contains long ++# options like '--shuffle'. To detect presence of 's' ++# we pick first word with short options. Long options ++# are guaranteed to come after whitespace. We use '-' ++# prefix to always have a word before long options ++# even if no short options were passed. ++# Typical MAKEFLAGS values to watch for: ++# "rs --shuffle=42" (silent) ++# " --shuffle" (not silent) ++ifeq ($(findstring s, $(firstword -$(MAKEFLAGS))),) ++silent-make := no ++else ++silent-make := yes ++endif ++ + # Root of the sysdeps tree. + sysdep_dir := $(..)sysdeps + export sysdep_dir := $(sysdep_dir) +@@ -895,7 +911,7 @@ + # 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 ++ifeq ($(silent-make),yes) # if -s + +cmdecho := echo >/dev/null + else # not -s + +cmdecho := echo +--- a/Makerules ++++ b/Makerules +@@ -805,7 +805,7 @@ + # 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 ++MAKEFLAGS := $(MAKEFLAGS) -r + + # Generic rule for making directories. + %/: +@@ -822,7 +822,7 @@ + .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 ++ifeq ($(silent-make),no) # if not -s + verbose := v + else # -s + verbose := +--- a/elf/rtld-Rules ++++ b/elf/rtld-Rules +@@ -52,7 +52,7 @@ + mv -f $@T $@ + + # Use the verbose option of ar and tar when not running silently. +-ifeq "$(findstring s,$(MAKEFLAGS))" "" # if not -s ++ifeq ($(silent-make),no) # if not -s + verbose := v + else # -s + verbose := diff --git a/packages/glibc/2.31/0003-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch b/packages/glibc/2.31/0003-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch new file mode 100644 index 00000000..d08583c5 --- /dev/null +++ b/packages/glibc/2.31/0003-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch @@ -0,0 +1,105 @@ +From 2d7ed98add14f75041499ac189696c9bd3d757fe Mon Sep 17 00:00:00 2001 +From: Sergei Trofimovich <slyich@gmail.com> +Date: Tue, 13 Sep 2022 13:39:13 -0400 +Subject: [PATCH] Makerules: fix MAKEFLAGS assignment for upcoming make-4.4 + [BZ# 29564] + +make-4.4 will add long flags to MAKEFLAGS variable: + + * WARNING: Backward-incompatibility! + Previously only simple (one-letter) options were added to the MAKEFLAGS + variable that was visible while parsing makefiles. Now, all options + are available in MAKEFLAGS. + +This causes locale builds to fail when long options are used: + + $ make --shuffle + ... + make -C localedata install-locales + make: invalid shuffle mode: '1662724426r' + +The change fixes it by passing eash option via whitespace and dashes. +That way option is appended to both single-word form and whitespace +separated form. + +While at it fixed --silent mode detection in $(MAKEFLAGS) by filtering +out --long-options. Otherwise options like --shuffle flag enable silent +mode unintentionally. $(silent-make) variable consolidates the checks. + +Resolves: BZ# 29564 + +CC: Paul Smith <psmith@gnu.org> +CC: Siddhesh Poyarekar <siddhesh@gotplt.org> +Signed-off-by: Sergei Trofimovich <slyich@gmail.com> +Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org> +--- + Makeconfig | 18 +++++++++++++++++- + Makerules | 4 ++-- + elf/rtld-Rules | 2 +- + 3 files changed, 20 insertions(+), 4 deletions(-) + +--- a/Makeconfig ++++ b/Makeconfig +@@ -42,6 +42,22 @@ + objdir must be defined by the build-directory Makefile. + endif + ++# Did we request 'make -s' run? "yes" or "no". ++# Starting from make-4.4 MAKEFLAGS now contains long ++# options like '--shuffle'. To detect presence of 's' ++# we pick first word with short options. Long options ++# are guaranteed to come after whitespace. We use '-' ++# prefix to always have a word before long options ++# even if no short options were passed. ++# Typical MAKEFLAGS values to watch for: ++# "rs --shuffle=42" (silent) ++# " --shuffle" (not silent) ++ifeq ($(findstring s, $(firstword -$(MAKEFLAGS))),) ++silent-make := no ++else ++silent-make := yes ++endif ++ + # Root of the sysdeps tree. + sysdep_dir := $(..)sysdeps + export sysdep_dir := $(sysdep_dir) +@@ -892,7 +908,7 @@ + # 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 ++ifeq ($(silent-make),yes) # if -s + +cmdecho := echo >/dev/null + else # not -s + +cmdecho := echo +--- a/Makerules ++++ b/Makerules +@@ -805,7 +805,7 @@ + # 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 ++MAKEFLAGS := $(MAKEFLAGS) -r + + # Generic rule for making directories. + %/: +@@ -822,7 +822,7 @@ + .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 ++ifeq ($(silent-make),no) # if not -s + verbose := v + else # -s + verbose := +--- a/elf/rtld-Rules ++++ b/elf/rtld-Rules +@@ -52,7 +52,7 @@ + mv -f $@T $@ + + # Use the verbose option of ar and tar when not running silently. +-ifeq "$(findstring s,$(MAKEFLAGS))" "" # if not -s ++ifeq ($(silent-make),no) # if not -s + verbose := v + else # -s + verbose := diff --git a/packages/glibc/2.32/0003-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch b/packages/glibc/2.32/0003-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch new file mode 100644 index 00000000..49dac68c --- /dev/null +++ b/packages/glibc/2.32/0003-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch @@ -0,0 +1,105 @@ +From 2d7ed98add14f75041499ac189696c9bd3d757fe Mon Sep 17 00:00:00 2001 +From: Sergei Trofimovich <slyich@gmail.com> +Date: Tue, 13 Sep 2022 13:39:13 -0400 +Subject: [PATCH] Makerules: fix MAKEFLAGS assignment for upcoming make-4.4 + [BZ# 29564] + +make-4.4 will add long flags to MAKEFLAGS variable: + + * WARNING: Backward-incompatibility! + Previously only simple (one-letter) options were added to the MAKEFLAGS + variable that was visible while parsing makefiles. Now, all options + are available in MAKEFLAGS. + +This causes locale builds to fail when long options are used: + + $ make --shuffle + ... + make -C localedata install-locales + make: invalid shuffle mode: '1662724426r' + +The change fixes it by passing eash option via whitespace and dashes. +That way option is appended to both single-word form and whitespace +separated form. + +While at it fixed --silent mode detection in $(MAKEFLAGS) by filtering +out --long-options. Otherwise options like --shuffle flag enable silent +mode unintentionally. $(silent-make) variable consolidates the checks. + +Resolves: BZ# 29564 + +CC: Paul Smith <psmith@gnu.org> +CC: Siddhesh Poyarekar <siddhesh@gotplt.org> +Signed-off-by: Sergei Trofimovich <slyich@gmail.com> +Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org> +--- + Makeconfig | 18 +++++++++++++++++- + Makerules | 4 ++-- + elf/rtld-Rules | 2 +- + 3 files changed, 20 insertions(+), 4 deletions(-) + +--- a/Makeconfig ++++ b/Makeconfig +@@ -42,6 +42,22 @@ + $(error objdir must be defined by the build-directory Makefile) + endif + ++# Did we request 'make -s' run? "yes" or "no". ++# Starting from make-4.4 MAKEFLAGS now contains long ++# options like '--shuffle'. To detect presence of 's' ++# we pick first word with short options. Long options ++# are guaranteed to come after whitespace. We use '-' ++# prefix to always have a word before long options ++# even if no short options were passed. ++# Typical MAKEFLAGS values to watch for: ++# "rs --shuffle=42" (silent) ++# " --shuffle" (not silent) ++ifeq ($(findstring s, $(firstword -$(MAKEFLAGS))),) ++silent-make := no ++else ++silent-make := yes ++endif ++ + # Root of the sysdeps tree. + sysdep_dir := $(..)sysdeps + export sysdep_dir := $(sysdep_dir) +@@ -892,7 +908,7 @@ + # 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 ++ifeq ($(silent-make),yes) # if -s + +cmdecho := echo >/dev/null + else # not -s + +cmdecho := echo +--- a/Makerules ++++ b/Makerules +@@ -803,7 +803,7 @@ + # 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 ++MAKEFLAGS := $(MAKEFLAGS) -r + + # Generic rule for making directories. + %/: +@@ -820,7 +820,7 @@ + .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 ++ifeq ($(silent-make),no) # if not -s + verbose := v + else # -s + verbose := +--- a/elf/rtld-Rules ++++ b/elf/rtld-Rules +@@ -52,7 +52,7 @@ + mv -f $@T $@ + + # Use the verbose option of ar and tar when not running silently. +-ifeq "$(findstring s,$(MAKEFLAGS))" "" # if not -s ++ifeq ($(silent-make),no) # if not -s + verbose := v + else # -s + verbose := diff --git a/packages/glibc/2.33/0003-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch b/packages/glibc/2.33/0003-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch new file mode 100644 index 00000000..90b23f5f --- /dev/null +++ b/packages/glibc/2.33/0003-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch @@ -0,0 +1,105 @@ +From 2d7ed98add14f75041499ac189696c9bd3d757fe Mon Sep 17 00:00:00 2001 +From: Sergei Trofimovich <slyich@gmail.com> +Date: Tue, 13 Sep 2022 13:39:13 -0400 +Subject: [PATCH] Makerules: fix MAKEFLAGS assignment for upcoming make-4.4 + [BZ# 29564] + +make-4.4 will add long flags to MAKEFLAGS variable: + + * WARNING: Backward-incompatibility! + Previously only simple (one-letter) options were added to the MAKEFLAGS + variable that was visible while parsing makefiles. Now, all options + are available in MAKEFLAGS. + +This causes locale builds to fail when long options are used: + + $ make --shuffle + ... + make -C localedata install-locales + make: invalid shuffle mode: '1662724426r' + +The change fixes it by passing eash option via whitespace and dashes. +That way option is appended to both single-word form and whitespace +separated form. + +While at it fixed --silent mode detection in $(MAKEFLAGS) by filtering +out --long-options. Otherwise options like --shuffle flag enable silent +mode unintentionally. $(silent-make) variable consolidates the checks. + +Resolves: BZ# 29564 + +CC: Paul Smith <psmith@gnu.org> +CC: Siddhesh Poyarekar <siddhesh@gotplt.org> +Signed-off-by: Sergei Trofimovich <slyich@gmail.com> +Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org> +--- + Makeconfig | 18 +++++++++++++++++- + Makerules | 4 ++-- + elf/rtld-Rules | 2 +- + 3 files changed, 20 insertions(+), 4 deletions(-) + +--- a/Makeconfig ++++ b/Makeconfig +@@ -42,6 +42,22 @@ + $(error objdir must be defined by the build-directory Makefile) + endif + ++# Did we request 'make -s' run? "yes" or "no". ++# Starting from make-4.4 MAKEFLAGS now contains long ++# options like '--shuffle'. To detect presence of 's' ++# we pick first word with short options. Long options ++# are guaranteed to come after whitespace. We use '-' ++# prefix to always have a word before long options ++# even if no short options were passed. ++# Typical MAKEFLAGS values to watch for: ++# "rs --shuffle=42" (silent) ++# " --shuffle" (not silent) ++ifeq ($(findstring s, $(firstword -$(MAKEFLAGS))),) ++silent-make := no ++else ++silent-make := yes ++endif ++ + # Root of the sysdeps tree. + sysdep_dir := $(..)sysdeps + export sysdep_dir := $(sysdep_dir) +@@ -895,7 +911,7 @@ + # 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 ++ifeq ($(silent-make),yes) # if -s + +cmdecho := echo >/dev/null + else # not -s + +cmdecho := echo +--- a/Makerules ++++ b/Makerules +@@ -803,7 +803,7 @@ + # 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 ++MAKEFLAGS := $(MAKEFLAGS) -r + + # Generic rule for making directories. + %/: +@@ -820,7 +820,7 @@ + .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 ++ifeq ($(silent-make),no) # if not -s + verbose := v + else # -s + verbose := +--- a/elf/rtld-Rules ++++ b/elf/rtld-Rules +@@ -52,7 +52,7 @@ + mv -f $@T $@ + + # Use the verbose option of ar and tar when not running silently. +-ifeq "$(findstring s,$(MAKEFLAGS))" "" # if not -s ++ifeq ($(silent-make),no) # if not -s + verbose := v + else # -s + verbose := diff --git a/packages/glibc/2.34/0002-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch b/packages/glibc/2.34/0002-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch new file mode 100644 index 00000000..f1e7edf4 --- /dev/null +++ b/packages/glibc/2.34/0002-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch @@ -0,0 +1,105 @@ +From 2d7ed98add14f75041499ac189696c9bd3d757fe Mon Sep 17 00:00:00 2001 +From: Sergei Trofimovich <slyich@gmail.com> +Date: Tue, 13 Sep 2022 13:39:13 -0400 +Subject: [PATCH] Makerules: fix MAKEFLAGS assignment for upcoming make-4.4 + [BZ# 29564] + +make-4.4 will add long flags to MAKEFLAGS variable: + + * WARNING: Backward-incompatibility! + Previously only simple (one-letter) options were added to the MAKEFLAGS + variable that was visible while parsing makefiles. Now, all options + are available in MAKEFLAGS. + +This causes locale builds to fail when long options are used: + + $ make --shuffle + ... + make -C localedata install-locales + make: invalid shuffle mode: '1662724426r' + +The change fixes it by passing eash option via whitespace and dashes. +That way option is appended to both single-word form and whitespace +separated form. + +While at it fixed --silent mode detection in $(MAKEFLAGS) by filtering +out --long-options. Otherwise options like --shuffle flag enable silent +mode unintentionally. $(silent-make) variable consolidates the checks. + +Resolves: BZ# 29564 + +CC: Paul Smith <psmith@gnu.org> +CC: Siddhesh Poyarekar <siddhesh@gotplt.org> +Signed-off-by: Sergei Trofimovich <slyich@gmail.com> +Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org> +--- + Makeconfig | 18 +++++++++++++++++- + Makerules | 4 ++-- + elf/rtld-Rules | 2 +- + 3 files changed, 20 insertions(+), 4 deletions(-) + +--- a/Makeconfig ++++ b/Makeconfig +@@ -42,6 +42,22 @@ + $(error objdir must be defined by the build-directory Makefile) + endif + ++# Did we request 'make -s' run? "yes" or "no". ++# Starting from make-4.4 MAKEFLAGS now contains long ++# options like '--shuffle'. To detect presence of 's' ++# we pick first word with short options. Long options ++# are guaranteed to come after whitespace. We use '-' ++# prefix to always have a word before long options ++# even if no short options were passed. ++# Typical MAKEFLAGS values to watch for: ++# "rs --shuffle=42" (silent) ++# " --shuffle" (not silent) ++ifeq ($(findstring s, $(firstword -$(MAKEFLAGS))),) ++silent-make := no ++else ++silent-make := yes ++endif ++ + # Root of the sysdeps tree. + sysdep_dir := $(..)sysdeps + export sysdep_dir := $(sysdep_dir) +@@ -903,7 +919,7 @@ + # 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 ++ifeq ($(silent-make),yes) # if -s + +cmdecho := echo >/dev/null + else # not -s + +cmdecho := echo +--- a/Makerules ++++ b/Makerules +@@ -804,7 +804,7 @@ + # 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 ++MAKEFLAGS := $(MAKEFLAGS) -r + + # Generic rule for making directories. + %/: +@@ -821,7 +821,7 @@ + .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 ++ifeq ($(silent-make),no) # if not -s + verbose := v + else # -s + verbose := +--- a/elf/rtld-Rules ++++ b/elf/rtld-Rules +@@ -52,7 +52,7 @@ + mv -f $@T $@ + + # Use the verbose option of ar and tar when not running silently. +-ifeq "$(findstring s,$(MAKEFLAGS))" "" # if not -s ++ifeq ($(silent-make),no) # if not -s + verbose := v + else # -s + verbose := diff --git a/packages/glibc/2.35/0003-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch b/packages/glibc/2.35/0003-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch new file mode 100644 index 00000000..ad482403 --- /dev/null +++ b/packages/glibc/2.35/0003-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch @@ -0,0 +1,105 @@ +From 2d7ed98add14f75041499ac189696c9bd3d757fe Mon Sep 17 00:00:00 2001 +From: Sergei Trofimovich <slyich@gmail.com> +Date: Tue, 13 Sep 2022 13:39:13 -0400 +Subject: [PATCH] Makerules: fix MAKEFLAGS assignment for upcoming make-4.4 + [BZ# 29564] + +make-4.4 will add long flags to MAKEFLAGS variable: + + * WARNING: Backward-incompatibility! + Previously only simple (one-letter) options were added to the MAKEFLAGS + variable that was visible while parsing makefiles. Now, all options + are available in MAKEFLAGS. + +This causes locale builds to fail when long options are used: + + $ make --shuffle + ... + make -C localedata install-locales + make: invalid shuffle mode: '1662724426r' + +The change fixes it by passing eash option via whitespace and dashes. +That way option is appended to both single-word form and whitespace +separated form. + +While at it fixed --silent mode detection in $(MAKEFLAGS) by filtering +out --long-options. Otherwise options like --shuffle flag enable silent +mode unintentionally. $(silent-make) variable consolidates the checks. + +Resolves: BZ# 29564 + +CC: Paul Smith <psmith@gnu.org> +CC: Siddhesh Poyarekar <siddhesh@gotplt.org> +Signed-off-by: Sergei Trofimovich <slyich@gmail.com> +Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org> +--- + Makeconfig | 18 +++++++++++++++++- + Makerules | 4 ++-- + elf/rtld-Rules | 2 +- + 3 files changed, 20 insertions(+), 4 deletions(-) + +--- a/Makeconfig ++++ b/Makeconfig +@@ -43,6 +43,22 @@ + $(error objdir must be defined by the build-directory Makefile) + endif + ++# Did we request 'make -s' run? "yes" or "no". ++# Starting from make-4.4 MAKEFLAGS now contains long ++# options like '--shuffle'. To detect presence of 's' ++# we pick first word with short options. Long options ++# are guaranteed to come after whitespace. We use '-' ++# prefix to always have a word before long options ++# even if no short options were passed. ++# Typical MAKEFLAGS values to watch for: ++# "rs --shuffle=42" (silent) ++# " --shuffle" (not silent) ++ifeq ($(findstring s, $(firstword -$(MAKEFLAGS))),) ++silent-make := no ++else ++silent-make := yes ++endif ++ + # Root of the sysdeps tree. + sysdep_dir := $(..)sysdeps + export sysdep_dir := $(sysdep_dir) +@@ -920,7 +936,7 @@ + # 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 ++ifeq ($(silent-make),yes) # if -s + +cmdecho := echo >/dev/null + else # not -s + +cmdecho := echo +--- a/Makerules ++++ b/Makerules +@@ -802,7 +802,7 @@ + # 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 ++MAKEFLAGS := $(MAKEFLAGS) -r + + # Generic rule for making directories. + %/: +@@ -819,7 +819,7 @@ + .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 ++ifeq ($(silent-make),no) # if not -s + verbose := v + else # -s + verbose := +--- a/elf/rtld-Rules ++++ b/elf/rtld-Rules +@@ -52,7 +52,7 @@ + mv -f $@T $@ + + # Use the verbose option of ar and tar when not running silently. +-ifeq "$(findstring s,$(MAKEFLAGS))" "" # if not -s ++ifeq ($(silent-make),no) # if not -s + verbose := v + else # -s + verbose := diff --git a/packages/glibc/2.36/0002-Mimic-kernel-defition-for-BLOCK_SIZE.patch b/packages/glibc/2.36/0002-Mimic-kernel-defition-for-BLOCK_SIZE.patch new file mode 100644 index 00000000..bcebfe21 --- /dev/null +++ b/packages/glibc/2.36/0002-Mimic-kernel-defition-for-BLOCK_SIZE.patch @@ -0,0 +1,30 @@ +From 4dad97e2a2e510c6b53a0add29a2188714fcf4ab Mon Sep 17 00:00:00 2001 +From: Adhemerval Zanella <adhemerval.zanella@linaro.org> +Date: Wed, 10 Aug 2022 14:24:45 -0300 +Subject: [PATCH] linux: Mimic kernel defition for BLOCK_SIZE + +To avoid possible warnings if the kernel header is included before +sys/mount.h. + +Reviewed-by: Florian Weimer <fweimer@redhat.com> +(cherry picked from commit c68b6044bc7945716431f1adc091b17c39b80a06) +--- + sysdeps/unix/sysv/linux/sys/mount.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/sysdeps/unix/sysv/linux/sys/mount.h b/sysdeps/unix/sysv/linux/sys/mount.h +index f965986ba8..df6b0dbb42 100644 +--- a/sysdeps/unix/sysv/linux/sys/mount.h ++++ b/sysdeps/unix/sysv/linux/sys/mount.h +@@ -27,8 +27,8 @@ + #include <stddef.h> + #include <sys/ioctl.h> + +-#define BLOCK_SIZE 1024 + #define BLOCK_SIZE_BITS 10 ++#define BLOCK_SIZE (1<<BLOCK_SIZE_BITS) + + + /* These are the fs-independent mount-flags: up to 16 flags are +-- +2.31.1 diff --git a/packages/glibc/2.36/0003-Use-compile_c_snippet-to-check-linux_mount.h.patch b/packages/glibc/2.36/0003-Use-compile_c_snippet-to-check-linux_mount.h.patch new file mode 100644 index 00000000..498d176e --- /dev/null +++ b/packages/glibc/2.36/0003-Use-compile_c_snippet-to-check-linux_mount.h.patch @@ -0,0 +1,32 @@ +From d48813227b63a0d92ea357ea0733229ed74e31ab Mon Sep 17 00:00:00 2001 +From: Adhemerval Zanella <adhemerval.zanella@linaro.org> +Date: Wed, 10 Aug 2022 14:24:46 -0300 +Subject: [PATCH] linux: Use compile_c_snippet to check linux/mount.h + availability + +Checked on x86_64-linux-gnu. + +Reviewed-by: Florian Weimer <fweimer@redhat.com> +(cherry picked from commit e1226cdc6b209539a92d32d5b620ba53fd35abf3) +--- + sysdeps/unix/sysv/linux/tst-mount-consts.py | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/sysdeps/unix/sysv/linux/tst-mount-consts.py b/sysdeps/unix/sysv/linux/tst-mount-consts.py +index a62f803123..be2ef2daf1 100755 +--- a/sysdeps/unix/sysv/linux/tst-mount-consts.py ++++ b/sysdeps/unix/sysv/linux/tst-mount-consts.py +@@ -33,6 +33,11 @@ def main(): + 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 +-- +2.31.1 diff --git a/packages/glibc/2.36/0004-Fix_sys_mount.h_usage_with_kernel_headers.patch b/packages/glibc/2.36/0004-Fix_sys_mount.h_usage_with_kernel_headers.patch new file mode 100644 index 00000000..a9cdc5b1 --- /dev/null +++ b/packages/glibc/2.36/0004-Fix_sys_mount.h_usage_with_kernel_headers.patch @@ -0,0 +1,336 @@ +From bb1e8b0ca99b5cbedfae3e6245528a87d95ff3e2 Mon Sep 17 00:00:00 2001 +From: Adhemerval Zanella <adhemerval.zanella@linaro.org> +Date: Wed, 10 Aug 2022 14:24:47 -0300 +Subject: [PATCH] linux: Fix sys/mount.h usage with kernel headers + +Now that kernel exports linux/mount.h and includes it on linux/fs.h, +its definitions might clash with glibc exports sys/mount.h. To avoid +the need to rearrange the Linux header to be always after glibc one, +the glibc sys/mount.h is changed to: + + 1. Undefine the macros also used as enum constants. This covers prior + inclusion of <linux/mount.h> (for instance MS_RDONLY). + + 2. Include <linux/mount.h> based on the usual __has_include check + (needs to use __has_include ("linux/mount.h") to paper over GCC + bugs. + + 3. Define enum fsconfig_command only if FSOPEN_CLOEXEC is not defined. + (FSOPEN_CLOEXEC should be a very close proxy.) + + 4. Define struct mount_attr if MOUNT_ATTR_SIZE_VER0 is not defined. + (Added in the same commit on the Linux side.) + +This patch also adds some tests to check if including linux/fs.h and +linux/mount.h after and before sys/mount.h does work. + +Checked on x86_64-linux-gnu. + +Reviewed-by: Florian Weimer <fweimer@redhat.com> +(cherry picked from commit 774058d72942249f71d74e7f2b639f77184160a6) +--- + sysdeps/unix/sysv/linux/Makefile | 8 +++ + sysdeps/unix/sysv/linux/sys/mount.h | 71 +++++++++++++++++--- + sysdeps/unix/sysv/linux/tst-mount-compile.py | 66 ++++++++++++++++++ + 3 files changed, 137 insertions(+), 8 deletions(-) + create mode 100755 sysdeps/unix/sysv/linux/tst-mount-compile.py + +diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile +index a139a16532..3ceda9fdbf 100644 +--- a/sysdeps/unix/sysv/linux/Makefile ++++ b/sysdeps/unix/sysv/linux/Makefile +@@ -265,6 +265,14 @@ $(objpfx)tst-mount-consts.out: ../sysdeps/unix/sysv/linux/tst-mount-consts.py + < /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 +diff --git a/sysdeps/unix/sysv/linux/sys/mount.h b/sysdeps/unix/sysv/linux/sys/mount.h +index df6b0dbb42..2e3fd6a7fe 100644 +--- a/sysdeps/unix/sysv/linux/sys/mount.h ++++ b/sysdeps/unix/sysv/linux/sys/mount.h +@@ -27,6 +27,13 @@ + #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) + +@@ -35,69 +42,98 @@ + 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 */ + +@@ -106,20 +142,35 @@ enum + 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. */ + + +@@ -157,6 +208,7 @@ enum + #define MOUNT_ATTR_NOSYMFOLLOW 0x00200000 /* Do not follow symlinks. */ + + ++#ifndef MOUNT_ATTR_SIZE_VER0 + /* For mount_setattr. */ + struct mount_attr + { +@@ -165,6 +217,7 @@ struct mount_attr + uint64_t propagation; + uint64_t userns_fd; + }; ++#endif + + #define MOUNT_ATTR_SIZE_VER0 32 /* sizeof first published struct */ + +@@ -185,26 +238,28 @@ struct mount_attr + #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 ++# define FSCONFIG_SET_FLAG FSCONFIG_SET_FLAG + FSCONFIG_SET_STRING = 1, /* Set parameter, supplying a string value */ +-#define FSCONFIG_SET_STRING FSCONFIG_SET_STRING ++# 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 ++# 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 ++# 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 ++# 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 ++# define FSCONFIG_SET_FD FSCONFIG_SET_FD + FSCONFIG_CMD_CREATE = 6, /* Invoke superblock creation */ +-#define FSCONFIG_CMD_CREATE FSCONFIG_CMD_CREATE ++# define FSCONFIG_CMD_CREATE FSCONFIG_CMD_CREATE + FSCONFIG_CMD_RECONFIGURE = 7, /* Invoke superblock reconfiguration */ +-#define FSCONFIG_CMD_RECONFIGURE FSCONFIG_CMD_RECONFIGURE ++# define FSCONFIG_CMD_RECONFIGURE FSCONFIG_CMD_RECONFIGURE + }; ++#endif + + /* open_tree flags. */ + #define OPEN_TREE_CLONE 1 /* Clone the target tree and attach the clone */ +diff --git a/sysdeps/unix/sysv/linux/tst-mount-compile.py b/sysdeps/unix/sysv/linux/tst-mount-compile.py +new file mode 100755 +index 0000000000..0ec74d4e0b +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/tst-mount-compile.py +@@ -0,0 +1,66 @@ ++#!/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() +-- +2.31.1 diff --git a/packages/glibc/2.36/0005-Fix-enum-fsconfig_command-detection-in-sys_mount.h.patch b/packages/glibc/2.36/0005-Fix-enum-fsconfig_command-detection-in-sys_mount.h.patch new file mode 100644 index 00000000..da249f36 --- /dev/null +++ b/packages/glibc/2.36/0005-Fix-enum-fsconfig_command-detection-in-sys_mount.h.patch @@ -0,0 +1,43 @@ +From 3bd3c612e98a53ce60ed972f5cd2b90628b3cba5 Mon Sep 17 00:00:00 2001 +From: Florian Weimer <fweimer@redhat.com> +Date: Tue, 16 Aug 2022 09:25:23 +0200 +Subject: [PATCH] Linux: Fix enum fsconfig_command detection in <sys/mount.h> + +The #ifdef FSOPEN_CLOEXEC check did not work because the macro +was always defined in this header prior to the check, so that +the <linux/mount.h> contents did not matter. + +Fixes commit 774058d72942249f71d74e7f2b639f77184160a6 +("linux: Fix sys/mount.h usage with kernel headers"). + +(cherry picked from commit 2955ef4b7c9b56fcd7abfeddef7ee83c60abff98) +--- + sysdeps/unix/sysv/linux/sys/mount.h | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/sysdeps/unix/sysv/linux/sys/mount.h b/sysdeps/unix/sysv/linux/sys/mount.h +index 2e3fd6a7fe..19841d0738 100644 +--- a/sysdeps/unix/sysv/linux/sys/mount.h ++++ b/sysdeps/unix/sysv/linux/sys/mount.h +@@ -188,9 +188,6 @@ enum + }; + + +-/* fsopen flags. */ +-#define FSOPEN_CLOEXEC 0x00000001 +- + /* fsmount flags. */ + #define FSMOUNT_CLOEXEC 0x00000001 + +@@ -261,6 +258,9 @@ enum fsconfig_command + }; + #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() */ +-- +2.31.1 diff --git a/packages/glibc/2.36/0006-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch b/packages/glibc/2.36/0006-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch new file mode 100644 index 00000000..c4475990 --- /dev/null +++ b/packages/glibc/2.36/0006-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch @@ -0,0 +1,114 @@ +From 2d7ed98add14f75041499ac189696c9bd3d757fe Mon Sep 17 00:00:00 2001 +From: Sergei Trofimovich <slyich@gmail.com> +Date: Tue, 13 Sep 2022 13:39:13 -0400 +Subject: [PATCH] Makerules: fix MAKEFLAGS assignment for upcoming make-4.4 + [BZ# 29564] + +make-4.4 will add long flags to MAKEFLAGS variable: + + * WARNING: Backward-incompatibility! + Previously only simple (one-letter) options were added to the MAKEFLAGS + variable that was visible while parsing makefiles. Now, all options + are available in MAKEFLAGS. + +This causes locale builds to fail when long options are used: + + $ make --shuffle + ... + make -C localedata install-locales + make: invalid shuffle mode: '1662724426r' + +The change fixes it by passing eash option via whitespace and dashes. +That way option is appended to both single-word form and whitespace +separated form. + +While at it fixed --silent mode detection in $(MAKEFLAGS) by filtering +out --long-options. Otherwise options like --shuffle flag enable silent +mode unintentionally. $(silent-make) variable consolidates the checks. + +Resolves: BZ# 29564 + +CC: Paul Smith <psmith@gnu.org> +CC: Siddhesh Poyarekar <siddhesh@gotplt.org> +Signed-off-by: Sergei Trofimovich <slyich@gmail.com> +Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org> +--- + Makeconfig | 18 +++++++++++++++++- + Makerules | 4 ++-- + elf/rtld-Rules | 2 +- + 3 files changed, 20 insertions(+), 4 deletions(-) + +diff --git a/Makeconfig b/Makeconfig +index f8164a0025..842f49eb58 100644 +--- a/Makeconfig ++++ b/Makeconfig +@@ -43,6 +43,22 @@ else + $(error objdir must be defined by the build-directory Makefile) + endif + ++# Did we request 'make -s' run? "yes" or "no". ++# Starting from make-4.4 MAKEFLAGS now contains long ++# options like '--shuffle'. To detect presence of 's' ++# we pick first word with short options. Long options ++# are guaranteed to come after whitespace. We use '-' ++# prefix to always have a word before long options ++# even if no short options were passed. ++# Typical MAKEFLAGS values to watch for: ++# "rs --shuffle=42" (silent) ++# " --shuffle" (not silent) ++ifeq ($(findstring s, $(firstword -$(MAKEFLAGS))),) ++silent-make := no ++else ++silent-make := yes ++endif ++ + # Root of the sysdeps tree. + sysdep_dir := $(..)sysdeps + export sysdep_dir := $(sysdep_dir) +@@ -917,7 +933,7 @@ endif + # 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 ++ifeq ($(silent-make),yes) # if -s + +cmdecho := echo >/dev/null + else # not -s + +cmdecho := echo +diff --git a/Makerules b/Makerules +index d1e139d03c..09c0cf8357 100644 +--- a/Makerules ++++ b/Makerules +@@ -794,7 +794,7 @@ 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 ++MAKEFLAGS := $(MAKEFLAGS) -r + + # Generic rule for making directories. + %/: +@@ -811,7 +811,7 @@ MAKEFLAGS := $(MAKEFLAGS)r + .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 ++ifeq ($(silent-make),no) # if not -s + verbose := v + else # -s + verbose := +diff --git a/elf/rtld-Rules b/elf/rtld-Rules +index ca00dd1fe2..3c5e273f2b 100644 +--- a/elf/rtld-Rules ++++ b/elf/rtld-Rules +@@ -52,7 +52,7 @@ $(objpfx)rtld-libc.a: $(foreach dir,$(rtld-subdirs),\ + mv -f $@T $@ + + # Use the verbose option of ar and tar when not running silently. +-ifeq "$(findstring s,$(MAKEFLAGS))" "" # if not -s ++ifeq ($(silent-make),no) # if not -s + verbose := v + else # -s + verbose := +-- +2.38.1 + diff --git a/packages/linux/4.14.290/chksum b/packages/linux/4.14.290/chksum deleted file mode 100644 index d0715a4e..00000000 --- a/packages/linux/4.14.290/chksum +++ /dev/null @@ -1,8 +0,0 @@ -md5 linux-4.14.290.tar.xz 605a1df0b0a71514e51887f7ad104633 -sha1 linux-4.14.290.tar.xz 0192d31395ea1fd229cf61cae4ac8010818afe10 -sha256 linux-4.14.290.tar.xz 448aa93a8e41a48ae34543920684a42c259fad78bb7ebb0ba242b9a3525add7f -sha512 linux-4.14.290.tar.xz 2c90337507b45d29235a7b9f971c01248118c968f1ec66cfddab45766d01ac715b29c8ca8410c1b44d16df2c0e7d8e046a58abc969b6b3180fad6a8e36565554 -md5 linux-4.14.290.tar.gz 281c4f169b6082026f6960b4dceb6a53 -sha1 linux-4.14.290.tar.gz b5fcc34ce796a8825e2d09d533bb985418bdf286 -sha256 linux-4.14.290.tar.gz 106d97d67d3d08eccfbf4425f43593a3ab33861a3c7b6e20730e3e5ff3f2fc9a -sha512 linux-4.14.290.tar.gz 9632fb07bf1b8b44e4f2c11d3a70f6aef6d7814a1dfcfbcc632c81b9cde63b26d50eb7630f74b274a6e2a0f69af00804d0075dea16bd826a115d9b1da9fc93cc diff --git a/packages/linux/4.14.301/chksum b/packages/linux/4.14.301/chksum new file mode 100644 index 00000000..27679c31 --- /dev/null +++ b/packages/linux/4.14.301/chksum @@ -0,0 +1,8 @@ +md5 linux-4.14.301.tar.xz 2faa259fdd1af8460e2533a156832ecf +sha1 linux-4.14.301.tar.xz 38a4ae8b90cc720c561bcb5406db9ea6c0ab8928 +sha256 linux-4.14.301.tar.xz acd2ee8e03da098fe9f7e52871dd0790850fc32b78657606bdf65bdd94bbf99b +sha512 linux-4.14.301.tar.xz 70b4ecd95e840bda1d1159802da9e9313b501be4d5472bd3865b141c260aa9d192b5732df8e838d213ff2b0f01f58351c82aa88a9d58a1120d22176c03ed7712 +md5 linux-4.14.301.tar.gz da5adab36d5644bea80c6718a033b533 +sha1 linux-4.14.301.tar.gz 66bad05536c00be04795721cb470fe0f0c0a2120 +sha256 linux-4.14.301.tar.gz 310f2caa138714a3bb40068bbed79e0b328f674d562b01289813844c63bb008c +sha512 linux-4.14.301.tar.gz db85885413cba1003a66bed152ab3f63ffb9e1faf49cf418c0c368d80d33cad048505f8997a89601bd789872b1fdc8433e778c0eb3e11bfc70b7842cde32abd3 diff --git a/packages/linux/4.19.254/version.desc b/packages/linux/4.14.301/version.desc index e69de29b..e69de29b 100644 --- a/packages/linux/4.19.254/version.desc +++ b/packages/linux/4.14.301/version.desc diff --git a/packages/linux/4.19.254/chksum b/packages/linux/4.19.254/chksum deleted file mode 100644 index e992fdb8..00000000 --- a/packages/linux/4.19.254/chksum +++ /dev/null @@ -1,8 +0,0 @@ -md5 linux-4.19.247.tar.xz 99d70822b67424d20ec43ae35e43f9e3 -sha1 linux-4.19.247.tar.xz 2f31313a3f7207349a7cd78076bfe2a622d1ed2e -sha256 linux-4.19.247.tar.xz 626b69dd3d4fc5ef38e85225fbe0c99a1ac007008d0abf488b56acb7abaecf8c -sha512 linux-4.19.247.tar.xz 3bb04c32b4f6a2c1154852fd66c597ca36d85420b4155dfeff53f9ece27717df498f7bb1b13f4f981e320383d2dd6ee2d107e27c52bd94e1bed444866c8d61c1 -md5 linux-4.19.247.tar.gz 4734dbfbd78374fd97c4dfd79f514d3d -sha1 linux-4.19.247.tar.gz aca284ee4ce97dd168024994d214b943dc23dbcf -sha256 linux-4.19.247.tar.gz ccefe2554ea44421eb3f32886fedee877498842cd4d807b7e9eeb663daccf41b -sha512 linux-4.19.247.tar.gz 6c4357e852f3767bf6fb5c43f6c8ce445bf76e692106ddcd532c2f18cc805ab8536d26d28fcd282bd6e33152064384f67bd88dfa77488a2ad9470e0ff6fe330c diff --git a/packages/linux/4.19.268/chksum b/packages/linux/4.19.268/chksum new file mode 100644 index 00000000..7a2b074f --- /dev/null +++ b/packages/linux/4.19.268/chksum @@ -0,0 +1,8 @@ +md5 linux-4.19.268.tar.xz 366755a45798defed2e53ad0cbcc4729 +sha1 linux-4.19.268.tar.xz 76e3763f5dd4026e0fc93538a0b1e2faf8caa502 +sha256 linux-4.19.268.tar.xz 219bce1ac3f542d06fc606ae6bcb10f8ab1940a46c7903113be59afc486c204f +sha512 linux-4.19.268.tar.xz ffaea6200b7b9f82742a0473fc17b8bbd12c13384ffb8470d288579480f89e0ab264b333dbbcaf2fe97d6c2b7d1e87692820e5ba554d14e314c9749b544aebd2 +md5 linux-4.19.268.tar.gz 816b76f2f3d7cdd70e2d575529b8097a +sha1 linux-4.19.268.tar.gz 1bc075e4ade7e8893875ed333971e72e6525536e +sha256 linux-4.19.268.tar.gz 2a0d4053a1fa44e959500ac11265935c54690417e9e004ef8212f5dbaaf17787 +sha512 linux-4.19.268.tar.gz ae6e79137b118bf42ebccd169ec7a779ff4f2ee08399d0dedbd6e8e48f35d7c6a9e32512df585764121d148eac80a320a7fd133eb973b97f71ce861b64210db5 diff --git a/packages/linux/4.9.325/version.desc b/packages/linux/4.19.268/version.desc index e69de29b..e69de29b 100644 --- a/packages/linux/4.9.325/version.desc +++ b/packages/linux/4.19.268/version.desc diff --git a/packages/linux/4.9.325/chksum b/packages/linux/4.9.325/chksum deleted file mode 100644 index 9d2c2368..00000000 --- a/packages/linux/4.9.325/chksum +++ /dev/null @@ -1,8 +0,0 @@ -md5 linux-4.9.325.tar.xz ac2e7f72fd8b644396be7af4ae885016 -sha1 linux-4.9.325.tar.xz 2e778bea0dcd841a7061ef94cf57b3cd815886b8 -sha256 linux-4.9.325.tar.xz b48d55e57a55ab9fff2e131a99cf82a49ef726c640ca91e51f69a3063ae8ba12 -sha512 linux-4.9.325.tar.xz 59b8445a8434981af84ab166662e1cdafb3e8a147a86a6e9506fbf5ea88e35f9da060c859a9880b130f604f00f3a57a7259d855f385c9bf0ecbacb15536792d8 -md5 linux-4.9.325.tar.gz cbfbe50b9e11d5fc852db95ed665901d -sha1 linux-4.9.325.tar.gz 5216d8540819594e9a553fa3457d714c08d18f87 -sha256 linux-4.9.325.tar.gz a80ec6f2c6eef5f444c56233144ccb1cac7049aa77623e312fed635098bf46d7 -sha512 linux-4.9.325.tar.gz 7f530021c700b629d2c42faa08a85cd2bb55ccd1d6213c63780d3fe1b492a5dc60d90a6ffa4adc106928043c5d8b910b69d3bdb3b665f148f2a7753751fc892c diff --git a/packages/linux/4.9.335/chksum b/packages/linux/4.9.335/chksum new file mode 100644 index 00000000..aaf2bef0 --- /dev/null +++ b/packages/linux/4.9.335/chksum @@ -0,0 +1,8 @@ +md5 linux-4.9.335.tar.xz d906ad9d26db2f22d71acdd76b28edf1 +sha1 linux-4.9.335.tar.xz adfef66bfff1a0056424ce64e3886ef88b624ace +sha256 linux-4.9.335.tar.xz ed4fd861fe9f6cd09f409f00dcccfa691e6d1a61c585723e587575dcb60aeb29 +sha512 linux-4.9.335.tar.xz eca7d63b584f67855182805929c031d1e79ff5c7c79103d827a11c410c37e017792ed9a910de688a996af0209f55db37c71bf7ffb3571d9a4d9c68557bc8a184 +md5 linux-4.9.335.tar.gz 54fcbeaa3cd84a4605e17b41ae5d0df8 +sha1 linux-4.9.335.tar.gz 456dadd9bb2e26914efc276b8b6c563be7cac68e +sha256 linux-4.9.335.tar.gz 0847729e7eac61f5a74a6333268e2140b60b6ed0139e340e5ef3b47553644feb +sha512 linux-4.9.335.tar.gz 4744aa286d1ae15dfe17a463bb10d9a747b9db0335fd8e516f11af17795c4fe78bbf55a963e7f1c30db6c7fb6cbf33b7c88d536671151e011fe400505e9514bc diff --git a/packages/linux/5.10.134/version.desc b/packages/linux/4.9.335/version.desc index e69de29b..e69de29b 100644 --- a/packages/linux/5.10.134/version.desc +++ b/packages/linux/4.9.335/version.desc diff --git a/packages/linux/5.10.134/chksum b/packages/linux/5.10.134/chksum deleted file mode 100644 index d7feea41..00000000 --- a/packages/linux/5.10.134/chksum +++ /dev/null @@ -1,8 +0,0 @@ -md5 linux-5.10.134.tar.xz d2575b907b5b5dcc8b7eecc5537de7f2 -sha1 linux-5.10.134.tar.xz 599884796de29ac483bde52726985db14123f5be -sha256 linux-5.10.134.tar.xz ec3513acdf033dd8f8ac2545cd1bb826b0669e151185e5f70408a5c9fe273269 -sha512 linux-5.10.134.tar.xz 888c5f1000329deeba66e7452d64344b589313e6494d96bb62c89250ace93d7ea5f9201b0b203b6730f5de34e04bd4b093ab4592ec7837ebaf09b2348be20ef8 -md5 linux-5.10.134.tar.gz 26c5c1c376448b5cbb637536da36e385 -sha1 linux-5.10.134.tar.gz 173da6c6c1b9d6fab97c5e0144ca0f170f1f2782 -sha256 linux-5.10.134.tar.gz 4c4b1b11c00cacbdb317871d845b14a7e4ad598a1920c3e0e2c2b104fbfe9ab8 -sha512 linux-5.10.134.tar.gz 872af1a22cfb72bbbb53fa53b9c001e906c0fda6411b4b838993884531b72ca55718f783a599f50435353410633f99e32529b0d0d27e437f1da23155eb0a5b41 diff --git a/packages/linux/5.10.158/chksum b/packages/linux/5.10.158/chksum new file mode 100644 index 00000000..79a99214 --- /dev/null +++ b/packages/linux/5.10.158/chksum @@ -0,0 +1,8 @@ +md5 linux-5.10.158.tar.xz fcb4928cafdefca55eb36fc88bf09a30 +sha1 linux-5.10.158.tar.xz 4979966cb568c4c4373de74e6ce957e3545c6041 +sha256 linux-5.10.158.tar.xz 1e0a24bb5510caa18b3601b25e12cc2a1ce123948de551f4f2cdbb40aea707e7 +sha512 linux-5.10.158.tar.xz 45bcb3c145500607d6328662776a5bd4e2fabe882677fefb5fcbf0377504ed1ca4ccddf1aff0a0f6b85ab79f6e9f91fb1377c33a7e14c7f352fa02ec40e67f4e +md5 linux-5.10.158.tar.gz 20356140f96bde79096df62c8518d743 +sha1 linux-5.10.158.tar.gz 4b2a4d31e19cc9bfa4b07df185ad6af2b35265b2 +sha256 linux-5.10.158.tar.gz 71d9dd3a9b0d3ee05bba34881209a7093e64b8793532c352757b63e654feba84 +sha512 linux-5.10.158.tar.gz fcb9e1c1557f3ee6b7e89a4a3a39a4b1f095339ed868df9fc1e74d8b64f36e193c5325d45c5dd019ee2fd928191b950801df98f7f9a794300caa60528ed644d2 diff --git a/packages/linux/5.15.58/version.desc b/packages/linux/5.10.158/version.desc index e69de29b..e69de29b 100644 --- a/packages/linux/5.15.58/version.desc +++ b/packages/linux/5.10.158/version.desc diff --git a/packages/linux/5.15.58/chksum b/packages/linux/5.15.58/chksum deleted file mode 100644 index 0c11152d..00000000 --- a/packages/linux/5.15.58/chksum +++ /dev/null @@ -1,8 +0,0 @@ -md5 linux-5.15.58.tar.xz f79d155cf7a03bc8d6a6b59baccbc10f -sha1 linux-5.15.58.tar.xz 17b6ae68a1c8e3bbb7167d14f6222c3cbcb2764c -sha256 linux-5.15.58.tar.xz d75bd9579c4b318e6162e21c591878fd37efda0f79c5cdd0dc4eb9ea9dfc4fa8 -sha512 linux-5.15.58.tar.xz b0474dc0c8e7e1bfc45e22f5df3c435066ad69144fc4b451335e43133c2113f3d3c1f7c2f3df6e54539fb6d87ebb16f069907c1f4e5922bb69a07e2a00463110 -md5 linux-5.15.58.tar.gz d14d555f342de138b1b2636efd4d1473 -sha1 linux-5.15.58.tar.gz a62fa427252fff5978ec6f5cbe5d4cb623f9836e -sha256 linux-5.15.58.tar.gz 212babe313406440de08340f9e02064e2e83c0e18763c0632cf30665ecef6d8d -sha512 linux-5.15.58.tar.gz 0bfe34e3b8fdcc00e832534955531e10fc2236c14428a7d52bd11aba65072480b5d52d674273425c0ed5f167d78edf490ee67b6e31593979cdf60cc60232ffa7 diff --git a/packages/linux/5.15.82/chksum b/packages/linux/5.15.82/chksum new file mode 100644 index 00000000..056614a0 --- /dev/null +++ b/packages/linux/5.15.82/chksum @@ -0,0 +1,8 @@ +md5 linux-5.15.82.tar.xz 39c6d368d79a321ad6b2db4e0f58e206 +sha1 linux-5.15.82.tar.xz 515f5e16dd6e66bfb54fc7be2bc6ae936da76c53 +sha256 linux-5.15.82.tar.xz fceef6bb79bac494663ccde34453521fc616cd94272fd30564752b3742381b65 +sha512 linux-5.15.82.tar.xz b0deb17077d9254e9a6eef853cdbcb7cbdde74cafef214d25961929d02a42fd61d306e3358b17a145999a0df3565c985de6149bd078330c63508ce8ce6fb4938 +md5 linux-5.15.82.tar.gz 76c2a1becb8b45996211476ef79ef419 +sha1 linux-5.15.82.tar.gz 79241dbc98a8f7f847cc4324e6a5beb2c7a837f7 +sha256 linux-5.15.82.tar.gz 2a138780b0d57648a454e09c0321464bd083f9cccd694bdc4e0c5b0f399b2ff1 +sha512 linux-5.15.82.tar.gz 73a42b3b86784a715188d14e41ef518a3efbb28bbc9a0a85b27bd975c77de7f6ca36430c2496b6f5d1714f122f2c563ba6c52537f2a521e0ba9c3896350e31ef diff --git a/packages/linux/5.19.2/version.desc b/packages/linux/5.15.82/version.desc index e69de29b..e69de29b 100644 --- a/packages/linux/5.19.2/version.desc +++ b/packages/linux/5.15.82/version.desc diff --git a/packages/linux/5.19.16/chksum b/packages/linux/5.19.16/chksum new file mode 100644 index 00000000..c16d312c --- /dev/null +++ b/packages/linux/5.19.16/chksum @@ -0,0 +1,8 @@ +md5 linux-5.19.16.tar.xz 82402128d59f243efb91a468d8e4513d +sha1 linux-5.19.16.tar.xz 017325ac51ae393eb644ba173f843dfaae5321ef +sha256 linux-5.19.16.tar.xz a1ebaf667e1059ae2d72aa6374a4d6e2febc0b8ccda6a124687acc2ea961e08d +sha512 linux-5.19.16.tar.xz 1ff662424830fbd48ac1d8c1aabd4d11a8eabc284c4fe3fdf803064d4f56d9c1b631a0fb60679bac40a4e05b77d5e6706a8fd52a5e025ef4f1231a6cc84bbbde +md5 linux-5.19.16.tar.gz 15c43c56b85175aacafaaa4ef1983298 +sha1 linux-5.19.16.tar.gz cd7fb09335a4814a88fedf7ed064e6f10fd1c8db +sha256 linux-5.19.16.tar.gz 9b835ea04b0210ad0748829367acd84e09357c3dd6d0f48e31737a7f21e990ff +sha512 linux-5.19.16.tar.gz 9b0330c7257aecba3f6f97566014c03d8012e1b2c5c1ee2c3b5ea1b7a2ca01addf346b5235d772b26e4312b0fc1bb529689390445668606ed96e66174cf93341 diff --git a/packages/linux/5.4.208/version.desc b/packages/linux/5.19.16/version.desc index e69de29b..e69de29b 100644 --- a/packages/linux/5.4.208/version.desc +++ b/packages/linux/5.19.16/version.desc diff --git a/packages/linux/5.19.2/chksum b/packages/linux/5.19.2/chksum deleted file mode 100644 index 6332bd66..00000000 --- a/packages/linux/5.19.2/chksum +++ /dev/null @@ -1,9 +0,0 @@ - -md5 linux-5.19.2.tar.gz bec93651b7f9c831edc9680ded53f68c -sha1 linux-5.19.2.tar.gz 56b9fbd3eee480f539de081b1c88245c2b225c3c -sha256 linux-5.19.2.tar.gz 7f493415f9a03ae3b796cbed92a44d9bcf429f5092bab96ff7bc2d645c45bd49 -sha512 linux-5.19.2.tar.gz 3c98c109d3f9c8b9982b7b5f2a4339fdc2e98c6bd61dabe8d506492c63f699768c62c3c4a0316905fe856d7b83ef0720c51786bf3eba24d51fd95651b95084ea -md5 linux-5.19.2.tar.xz 391274e2e49a881403b0ff2e0712bf82 -sha1 linux-5.19.2.tar.xz 1860a823651f40bbec09cc3b60c21a912904a91b -sha256 linux-5.19.2.tar.xz 48e40a1f5501ec6c40e3c86d3d5319200b688f2d9360f72833084d74801fe63d -sha512 linux-5.19.2.tar.xz 492dc5bf9ac729cc6156e67ba04011ac5528a9eafea817400a2fdc49028fdeab616df9c77833ce4e5e0b2da5f331c9e8bfca2d2721a6aa1be8ef984701c62a04 diff --git a/packages/linux/5.4.208/chksum b/packages/linux/5.4.208/chksum deleted file mode 100644 index af77271a..00000000 --- a/packages/linux/5.4.208/chksum +++ /dev/null @@ -1,8 +0,0 @@ -md5 linux-5.4.208.tar.xz 4f2e012d0b0735a7babc49401aee5b1e -sha1 linux-5.4.208.tar.xz d4f944d992a763ac05db446145c688013455e9b3 -sha256 linux-5.4.208.tar.xz f06ddf1abf0a87d9b2fbe876798fd92c15af312b3042469082e5994cc0ee0e44 -sha512 linux-5.4.208.tar.xz 2260262607fce42c0a69900c086be69e15c5fece0efe28cbfe4cf5b4e0829b981d0f0a1c75b64ff0953c527058653fc3e45da481b29167cff11664d1953223b5 -md5 linux-5.4.208.tar.gz 2ba6b4d4cec298db92f046c527813116 -sha1 linux-5.4.208.tar.gz 63384e9fba1938a02fde31dd758bbdf1249d95a0 -sha256 linux-5.4.208.tar.gz b5a8bf017da2a668022c9b8dc35b3383d45f9d144177995ce2a14987c22f9428 -sha512 linux-5.4.208.tar.gz 8b8e22ad279748d7e44f49b585cb0b72d24ebdc07b5008e62f7495f3f160101dd16ea4c6bb06eac3d1bd0ad29c646114abb45544c11efea9dd26d092f3683a0a diff --git a/packages/linux/5.4.226/chksum b/packages/linux/5.4.226/chksum new file mode 100644 index 00000000..6f998297 --- /dev/null +++ b/packages/linux/5.4.226/chksum @@ -0,0 +1,8 @@ +md5 linux-5.4.226.tar.xz 63993a9d57008a1b2c7aad261ab2bba9 +sha1 linux-5.4.226.tar.xz 719a7f8bb1a8a541590b14ae6bf4aa9a777a5d63 +sha256 linux-5.4.226.tar.xz 0c1f552a1d2f63b3ecd4d33189f0003bc91fb8ff79967a7e295d015c280c9a44 +sha512 linux-5.4.226.tar.xz 154c11c58465985e5c68821c4483130c7fe4213fb2dfb4874ffe9d179ccdc9673a04f11d9596116f6105b3dcaa56da9f4305454cdd863b3ded5e24ef6948370d +md5 linux-5.4.226.tar.gz 7dfc70ed50e729363f11effb837dadc0 +sha1 linux-5.4.226.tar.gz 50680f732ba868200a781a40f35ee42e40ca3275 +sha256 linux-5.4.226.tar.gz d17b08833b299ff821fd461ebd35c7aff90f4277d77a1a8536c810d56c5ca1c9 +sha512 linux-5.4.226.tar.gz 6f1f020ba36f610c843170e1f775828c50fc866bcad717abc75eae0e238761e9916a53e7539b7e1792da0dccd5be30ba5012d9a4064c2cad49af666bcbef3779 diff --git a/packages/picolibc/1.7.8/version.desc b/packages/linux/5.4.226/version.desc index e69de29b..e69de29b 100644 --- a/packages/picolibc/1.7.8/version.desc +++ b/packages/linux/5.4.226/version.desc diff --git a/packages/linux/6.0.12/chksum b/packages/linux/6.0.12/chksum new file mode 100644 index 00000000..c33840e5 --- /dev/null +++ b/packages/linux/6.0.12/chksum @@ -0,0 +1,8 @@ +md5 linux-6.0.12.tar.xz 44933812ad926f5000f01ac108d41ee8 +sha1 linux-6.0.12.tar.xz 97f5627bc5d845b09eadf92af513462fd9b3e9c7 +sha256 linux-6.0.12.tar.xz 89b730edf8942b49e02f9894244205886c9a214d629b35b88c4ff06ee9304f01 +sha512 linux-6.0.12.tar.xz 8a3060f85bf21ff6b963d82e1de13a553ab5b44d0602941168b007fc008a4a9fda4048974844c215bfc479359d8eb75bf94f5d21177e28a340b7c0db9e29dcfa +md5 linux-6.0.12.tar.gz c5329153967c45de2f06aea39f0aae2f +sha1 linux-6.0.12.tar.gz 3474a9cbf0b6aff988a150f2541c4e253a968c7c +sha256 linux-6.0.12.tar.gz 1ed4c4f14399ab216253f69de0e18568c8aa4ef9c36c73c9ea2eb936473fd0bf +sha512 linux-6.0.12.tar.gz 8cc2981d2beb77ec2ddb8962a082da2d2b1f07d1cd6242c1ba8e99bd61c97aca579492988776f0a54a5de6884bd75c95751014bb86ffa42d5e928e271edfa5e1 diff --git a/packages/strace/5.19/version.desc b/packages/linux/6.0.12/version.desc index e69de29b..e69de29b 100644 --- a/packages/strace/5.19/version.desc +++ b/packages/linux/6.0.12/version.desc diff --git a/packages/linux/6.1/chksum b/packages/linux/6.1/chksum new file mode 100644 index 00000000..a68f21fb --- /dev/null +++ b/packages/linux/6.1/chksum @@ -0,0 +1,8 @@ +md5 linux-6.1.tar.xz 475320de08f16c9fa486fc4edfe98b30 +sha1 linux-6.1.tar.xz 30996d7c1c59ddbd495bd9eb37c8dfdb1a67c1c3 +sha256 linux-6.1.tar.xz 2ca1f17051a430f6fed1196e4952717507171acfd97d96577212502703b25deb +sha512 linux-6.1.tar.xz 6ed2a73c2699d0810e54753715635736fc370288ad5ce95c594f2379959b0e418665cd71bc512a0273fe226fe90074d8b10d14c209080a6466498417a4fdda68 +md5 linux-6.1.tar.gz 32445cd604f81b6fd0d023bc009a6a1d +sha1 linux-6.1.tar.gz e7fdde90c7b6638226e353cbd17c9eae67a40a09 +sha256 linux-6.1.tar.gz de4ee64f1e86da97c0c2974c02a77c01ea81eed0c04b6319fbc719810104de92 +sha512 linux-6.1.tar.gz 9d8a57d9071ffe6bd7e43a52d565e455ac00e64d40137d964c66fe47838b178dddc5c278b18d3486f80966a57a8eac720c45291ea822d64996202dccbeccd4b7 diff --git a/packages/linux/6.1/version.desc b/packages/linux/6.1/version.desc new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/packages/linux/6.1/version.desc diff --git a/packages/make/4.2.1/version.desc b/packages/make/4.2.1/version.desc index 30f929c4..f26b5a26 100644 --- a/packages/make/4.2.1/version.desc +++ b/packages/make/4.2.1/version.desc @@ -1,2 +1,2 @@ - +obsolete='yes' archive_formats='.tar.bz2 .tar.gz' diff --git a/packages/make/4.3/version.desc b/packages/make/4.3/version.desc index e69de29b..fcfe3891 100644 --- a/packages/make/4.3/version.desc +++ b/packages/make/4.3/version.desc @@ -0,0 +1 @@ +obsolete='yes' diff --git a/packages/make/4.4/chksum b/packages/make/4.4/chksum new file mode 100644 index 00000000..7254bea0 --- /dev/null +++ b/packages/make/4.4/chksum @@ -0,0 +1,8 @@ +md5 make-4.4.tar.lz 5da8b0fcc500de9c254ca59e58558b27 +sha1 make-4.4.tar.lz bd8e12c82af57e4db7c35b43e09f802f3922696d +sha256 make-4.4.tar.lz 48d0fc0b2a04bb50f2911c16da65723285f7f4804c74fc5a2124a3df6c5f78c4 +sha512 make-4.4.tar.lz 937945e1de5e370e79f379c867ca37bf7b3559a8b002a9e67c4973071e706f7afc5e419ac5d3348e7a677d5673cdcaa2476120297ec3e5f1c8f28f282cff2579 +md5 make-4.4.tar.gz d7575a26a94ee8427130e9db23cdaa78 +sha1 make-4.4.tar.gz 02910501c2065479c6c7a4855b6ecdf3ac4464d8 +sha256 make-4.4.tar.gz 581f4d4e872da74b3941c874215898a7d35802f03732bdccee1d4a7979105d18 +sha512 make-4.4.tar.gz 4be73f494295dcfa10034531b0d920cfdb5438bc20625f863f5c878549c140e1e67195162580c53060c3c11c67a2c739c09051f02cdd283e5aa9ebcd68975a1f diff --git a/packages/make/4.4/version.desc b/packages/make/4.4/version.desc new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/packages/make/4.4/version.desc diff --git a/packages/newlib-nano/package.desc b/packages/newlib-nano/package.desc index ba18016a..8082c940 100644 --- a/packages/newlib-nano/package.desc +++ b/packages/newlib-nano/package.desc @@ -2,7 +2,7 @@ origin='RedHat' repository='git git://sourceware.org/git/newlib-cygwin.git' # Do not use "$(CT_Mirrors sourceware newlib)" here: the mirrors (kernel.org # and gnu.org) only store some older releases of newlib (2.0.0 and before). -mirrors='ftp://sourceware.org/pub/newlib' +mirrors='https://sourceware.org/pub/newlib' relevantpattern='*.*|.*. *.*|.' archive_filename='newlib-@{version}' archive_dirname='newlib-@{version}' diff --git a/packages/newlib/package.desc b/packages/newlib/package.desc index 27a5fa6e..f3801daf 100644 --- a/packages/newlib/package.desc +++ b/packages/newlib/package.desc @@ -2,6 +2,6 @@ origin='RedHat' repository='git git://sourceware.org/git/newlib-cygwin.git' # Do not use "$(CT_Mirrors sourceware newlib)" here: the mirrors (kernel.org # and gnu.org) only store some older releases of newlib (2.0.0 and before). -mirrors='ftp://sourceware.org/pub/newlib' +mirrors='https://sourceware.org/pub/newlib' relevantpattern='*.*|.*. *.*|.' archive_formats='.tar.gz' diff --git a/packages/picolibc/1.7.8/chksum b/packages/picolibc/1.7.8/chksum deleted file mode 100644 index 60d37808..00000000 --- a/packages/picolibc/1.7.8/chksum +++ /dev/null @@ -1,4 +0,0 @@ -md5 picolibc-1.7.8.tar.xz 2e05738d06d7dea791eb633c12aa4d62 -sha1 picolibc-1.7.8.tar.xz dae98084735523586da37ab9b7e3b3a831a38b7b -sha256 picolibc-1.7.8.tar.xz b0bddaf1cafbe0fa72e55bd27895b24d30f2a03ebc0e5b3dd2046d4cefe1c158 -sha512 picolibc-1.7.8.tar.xz 9ea2b0341ed8c76e799e03e1aa0b06e7c4b0b49b4f55f57126ae1c9e70c0584594575bef2d1d3f21db1e96a51118bd842a433e214d7bdce05d6ada5ff483da5e diff --git a/packages/picolibc/1.7.9/chksum b/packages/picolibc/1.7.9/chksum new file mode 100644 index 00000000..2b39d8b3 --- /dev/null +++ b/packages/picolibc/1.7.9/chksum @@ -0,0 +1,4 @@ +md5 picolibc-1.7.9.tar.xz 23c37660dda10c32f1fd1f280ed97913 +sha1 picolibc-1.7.9.tar.xz b082feda14c8fb95b2b1e4beff714eb99bdd9c52 +sha256 picolibc-1.7.9.tar.xz 4b0042344fe7be61adf44ae098f94e21a90ac5179152b3a5ea779451c8e914ab +sha512 picolibc-1.7.9.tar.xz 71f15f274ff406042ac9f8c074bc4cc003d4d47fca1bef12abe7409e5c439a73d9a34a711d5ca22a40a98a828c9db2553baf5e071176db3c835daf727a18ea78 diff --git a/packages/picolibc/1.7.9/version.desc b/packages/picolibc/1.7.9/version.desc new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/packages/picolibc/1.7.9/version.desc diff --git a/packages/strace/5.19/chksum b/packages/strace/5.19/chksum deleted file mode 100644 index d3f14014..00000000 --- a/packages/strace/5.19/chksum +++ /dev/null @@ -1,4 +0,0 @@ -md5 strace-5.19.tar.xz 13a37bd709b452a7c30e89f0db39b535 -sha1 strace-5.19.tar.xz dc34c0d7c3ab0d0adb227f751c016da2c415eb2e -sha256 strace-5.19.tar.xz aa3dc1c8e60e4f6ff3d396514aa247f3c7bf719d8a8dc4dd4fa793be786beca3 -sha512 strace-5.19.tar.xz 1ea1c6e12d05bf145bc3c74f8d06b08dfc3eae3a5a21bfe8ab080053dc4c2da8a95be5956652ea62bb083462015a55f9bc1d1023919dcf2929a05211b7dde963 diff --git a/packages/strace/6.1/chksum b/packages/strace/6.1/chksum new file mode 100644 index 00000000..e6b94916 --- /dev/null +++ b/packages/strace/6.1/chksum @@ -0,0 +1,4 @@ +md5 strace-6.1.tar.xz cbd758b0545b678cd7ac09c683ade002 +sha1 strace-6.1.tar.xz b451b02579bc473e5f0e559ce40be634026e3f2b +sha256 strace-6.1.tar.xz 2579e9cec37dbb786f6ea0bebd15f40dd561ef2bde2a2a2ecdce5963b01859fd +sha512 strace-6.1.tar.xz 3f0678d74c5c3e6b30c4dc4ed7ee4cb0829d3b7142dc014fcd887db3a68133bf7fedc623bae381dfe4305bd6cd15d4ca6776c6491009c2a053bb8c6ca1ae8e12 diff --git a/packages/strace/6.1/version.desc b/packages/strace/6.1/version.desc new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/packages/strace/6.1/version.desc diff --git a/packages/zlib/1.2.12/version.desc b/packages/zlib/1.2.12/version.desc index e69de29b..fcfe3891 100644 --- a/packages/zlib/1.2.12/version.desc +++ b/packages/zlib/1.2.12/version.desc @@ -0,0 +1 @@ +obsolete='yes' diff --git a/packages/zlib/1.2.13/0000-mingw-static-only.patch b/packages/zlib/1.2.13/0000-mingw-static-only.patch new file mode 100644 index 00000000..cab2389c --- /dev/null +++ b/packages/zlib/1.2.13/0000-mingw-static-only.patch @@ -0,0 +1,28 @@ +--- + win32/Makefile.gcc | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +--- a/win32/Makefile.gcc ++++ b/win32/Makefile.gcc +@@ -66,7 +66,11 @@ + gzwrite.o infback.o inffast.o inflate.o inftrees.o trees.o uncompr.o zutil.o + OBJA = + +-all: $(STATICLIB) $(SHAREDLIB) $(IMPLIB) example.exe minigzip.exe example_d.exe minigzip_d.exe ++all: $(STATICLIB) example.exe minigzip.exe ++ ++ifeq ($(SHARED_MODE),1) ++all: $(SHAREDLIB) $(IMPLIB) example_d.exe minigzip_d.exe ++endif + + test: example.exe minigzip.exe + ./example +@@ -120,7 +124,7 @@ + .PHONY: install uninstall clean + + install: zlib.h zconf.h $(STATICLIB) $(IMPLIB) +- @if test -z "$(DESTDIR)$(INCLUDE_PATH)" -o -z "$(DESTDIR)$(LIBRARY_PATH)" -o -z "$(DESTDIR)$(BINARY_PATH)"; then \ ++ @if test -z "$(INCLUDE_PATH)" -o -z "$(LIBRARY_PATH)" -o -z "$(BINARY_PATH)"; then \ + echo INCLUDE_PATH, LIBRARY_PATH, and BINARY_PATH must be specified; \ + exit 1; \ + fi diff --git a/packages/zlib/1.2.13/0001-crossbuild-macos-libtool.patch b/packages/zlib/1.2.13/0001-crossbuild-macos-libtool.patch new file mode 100644 index 00000000..daa62448 --- /dev/null +++ b/packages/zlib/1.2.13/0001-crossbuild-macos-libtool.patch @@ -0,0 +1,34 @@ +From: Heiko Lewin <heiko.lewin@worldiety.de> +Date: Fri, 22 May 2020 03:32:33 +0200 +Subject: configure: use LIBTOOL variable for Darwin builds + +--- + configure | 10 ++++++++-- + 1 file changed, 8 insertions(+), 2 deletions(-) + +--- a/configure ++++ b/configure +@@ -69,6 +69,12 @@ + else + NM=${NM-"nm"} + fi ++if "${CROSS_PREFIX}libtool" --version >/dev/null 2>/dev/null || test $? -lt 126; then ++ LIBTOOL=${LIBTOOL-"${CROSS_PREFIX}libtool"} ++ test -n "${CROSS_PREFIX}" && echo Using ${LIBTOOL} | tee -a configure.log ++else ++ LIBTOOL=${LIBTOOL-"libtool"} ++fi + + # set defaults before processing command line options + LDCONFIG=${LDCONFIG-"ldconfig"} +@@ -260,8 +266,8 @@ + SHAREDLIBV=libz.$VER$shared_ext + SHAREDLIBM=libz.$VER1$shared_ext + LDSHARED=${LDSHARED-"$cc -dynamiclib -install_name $libdir/$SHAREDLIBM -compatibility_version $VER1 -current_version $VER3"} +- if libtool -V 2>&1 | grep Apple > /dev/null; then +- AR="libtool" ++ if ${LIBTOOL} -V 2>&1 | grep Apple > /dev/null; then ++ AR="${LIBTOOL}" + else + AR="/usr/bin/libtool" + fi diff --git a/packages/zlib/1.2.13/chksum b/packages/zlib/1.2.13/chksum new file mode 100644 index 00000000..214209bd --- /dev/null +++ b/packages/zlib/1.2.13/chksum @@ -0,0 +1,8 @@ +md5 zlib-1.2.13.tar.xz 7d9fc1d78ae2fa3e84fe98b77d006c63 +sha1 zlib-1.2.13.tar.xz b459b42aa533968ae403c0002a255d62d3136954 +sha256 zlib-1.2.13.tar.xz d14c38e313afc35a9a8760dadf26042f51ea0f5d154b0630a31da0540107fb98 +sha512 zlib-1.2.13.tar.xz 9e7ac71a1824855ae526506883e439456b74ac0b811d54e94f6908249ba8719bec4c8d7672903c5280658b26cb6b5e93ecaaafe5cdc2980c760fa196773f0725 +md5 zlib-1.2.13.tar.gz 9b8aa094c4e5765dabf4da391f00d15c +sha1 zlib-1.2.13.tar.gz 55eaa84906f31ac20d725aa26cd20839196b6ba6 +sha256 zlib-1.2.13.tar.gz b3a24de97a8fdbc835b9833169501030b8977031bcb54b3b3ac13740f846ab30 +sha512 zlib-1.2.13.tar.gz 99f0e843f52290e6950cc328820c0f322a4d934a504f66c7caa76bd0cc17ece4bf0546424fc95135de85a2656fed5115abb835fd8d8a390d60ffaf946c8887ad diff --git a/packages/zlib/1.2.13/version.desc b/packages/zlib/1.2.13/version.desc new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/packages/zlib/1.2.13/version.desc diff --git a/packages/zlib/package.desc b/packages/zlib/package.desc index d85e5656..2a3984f3 100644 --- a/packages/zlib/package.desc +++ b/packages/zlib/package.desc @@ -1,4 +1,4 @@ repository='git https://github.com/madler/zlib.git' -mirrors='http://downloads.sourceforge.net/project/libpng/zlib/${CT_ZLIB_VERSION} https://www.zlib.net/' +mirrors='https://github.com/madler/zlib/releases/download/v${CT_ZLIB_VERSION} https://www.zlib.net/' archive_formats='.tar.xz .tar.gz' signature_format='packed/.asc' diff --git a/samples/aarch64-ol8u6-linux-gnu/crosstool.config b/samples/aarch64-ol8u6-linux-gnu/crosstool.config index 0599d6ba..20715537 100644 --- a/samples/aarch64-ol8u6-linux-gnu/crosstool.config +++ b/samples/aarch64-ol8u6-linux-gnu/crosstool.config @@ -6,6 +6,7 @@ CT_KERNEL_LINUX=y CT_LINUX_USE_ORACLE=y CT_BINUTILS_USE_ORACLE=y CT_BINUTILS_ORACLE_V_2_30=y +CT_BINUTILS_ORACLE_DEVEL_BRANCH="oracle/binutils/ol8-u6" CT_BINUTILS_LINKER_LD_GOLD=y CT_BINUTILS_GOLD_THREADS=y CT_BINUTILS_LD_WRAPPER=y @@ -15,6 +16,7 @@ CT_GLIBC_EXTRA_CFLAGS="-Wno-missing-attributes -Wno-array-bounds -Wno-array-para CT_GLIBC_ENABLE_COMMON_FLAG=y CT_GLIBC_ENABLE_DEBUG=n CT_CC_LANG_CXX=y +CT_GLIBC_ORACLE_DEVEL_BRANCH="oracle/glibc/ol8-u6" CT_GCC_USE_ORACLE=y CT_ISL_V_0_16=y CT_GCC_ORACLE_V_8=y diff --git a/samples/aarch64-ol8u7-linux-gnu/crosstool.config b/samples/aarch64-ol8u7-linux-gnu/crosstool.config new file mode 100644 index 00000000..122e982e --- /dev/null +++ b/samples/aarch64-ol8u7-linux-gnu/crosstool.config @@ -0,0 +1,24 @@ +CT_CONFIG_VERSION="4" +CT_ARCH_ARM=y +CT_ARCH_64=y +CT_TARGET_VENDOR="ol8u7" +CT_KERNEL_LINUX=y +CT_LINUX_USE_ORACLE=y +CT_BINUTILS_USE_ORACLE=y +CT_BINUTILS_ORACLE_V_2_30=y +CT_BINUTILS_ORACLE_DEVEL_BRANCH="oracle/binutils/ol8-u7" +CT_BINUTILS_LINKER_LD_GOLD=y +CT_BINUTILS_GOLD_THREADS=y +CT_BINUTILS_LD_WRAPPER=y +CT_BINUTILS_PLUGINS=y +CT_GLIBC_USE_ORACLE=y +CT_GLIBC_EXTRA_CFLAGS="-Wno-missing-attributes -Wno-array-bounds -Wno-array-parameter -Wno-stringop-overflow -Wno-maybe-uninitialized" +CT_GLIBC_ENABLE_COMMON_FLAG=y +CT_GLIBC_ENABLE_DEBUG=n +CT_CC_LANG_CXX=y +CT_GLIBC_ORACLE_DEVEL_BRANCH="oracle/glibc/ol8-u7" +CT_GCC_USE_ORACLE=y +CT_ISL_V_0_16=y +CT_GCC_ORACLE_V_8=y +CT_GCC_ORACLE_VERSION="8.7.0" +CT_GCC_ORACLE_DEVEL_BRANCH="oracle/gcc/ol8-u7-aarch64" diff --git a/samples/aarch64-ol8u7-linux-gnu/reported.by b/samples/aarch64-ol8u7-linux-gnu/reported.by new file mode 100644 index 00000000..cdb5e85c --- /dev/null +++ b/samples/aarch64-ol8u7-linux-gnu/reported.by @@ -0,0 +1,3 @@ +reporter_name="Cupertino Miranda" +reporter_url="" +reporter_comment="OL 8.7 toolchain configured for aarch64" diff --git a/samples/bpf-unknown-none/crosstool.config b/samples/bpf-unknown-none/crosstool.config new file mode 100644 index 00000000..383f75d6 --- /dev/null +++ b/samples/bpf-unknown-none/crosstool.config @@ -0,0 +1,11 @@ +CT_CONFIG_VERSION="4" +CT_ARCH_BPF=y +CT_MULTILIB=n +CT_TARGET_VENDOR="unknown" +CT_TARGET_SYS=none +CT_TARGET_ALIAS="bpf-unknown" +CT_GCC_SRC_DEVEL=y +CT_GCC_DEVEL_BRANCH="master" +CT_BINUTILS_SRC_DEVEL=y +CT_BINUTILS_DEVEL_BRANCH="master" +CT_LIBC_NONE=y diff --git a/samples/bpf-unknown-none/reported.by b/samples/bpf-unknown-none/reported.by new file mode 100644 index 00000000..1b18dcb4 --- /dev/null +++ b/samples/bpf-unknown-none/reported.by @@ -0,0 +1,3 @@ +reporter_name="Cupertino Miranda" +reporter_url="" +reporter_comment="BPF toolchain" diff --git a/samples/i686-ol8u6-linux-gnu/crosstool.config b/samples/i686-ol8u6-linux-gnu/crosstool.config index 7f937cd0..42339af2 100644 --- a/samples/i686-ol8u6-linux-gnu/crosstool.config +++ b/samples/i686-ol8u6-linux-gnu/crosstool.config @@ -6,6 +6,7 @@ CT_KERNEL_LINUX=y CT_LINUX_USE_ORACLE=y CT_BINUTILS_USE_ORACLE=y CT_BINUTILS_ORACLE_V_2_30=y +CT_BINUTILS_ORACLE_DEVEL_BRANCH="oracle/binutils/ol8-u6" CT_BINUTILS_LINKER_LD_GOLD=y CT_BINUTILS_GOLD_THREADS=y CT_BINUTILS_LD_WRAPPER=y @@ -15,6 +16,7 @@ CT_GLIBC_EXTRA_CFLAGS="-Wno-missing-attributes -Wno-array-bounds -Wno-array-para CT_GLIBC_ENABLE_COMMON_FLAG=y CT_GLIBC_ENABLE_DEBUG=n CT_CC_LANG_CXX=y +CT_GLIBC_ORACLE_DEVEL_BRANCH="oracle/glibc/ol8-u6" CT_GCC_USE_ORACLE=y CT_ISL_V_0_16=y CT_GCC_ORACLE_V_8=y diff --git a/samples/i686-ol8u7-linux-gnu/crosstool.config b/samples/i686-ol8u7-linux-gnu/crosstool.config new file mode 100644 index 00000000..ff453dd7 --- /dev/null +++ b/samples/i686-ol8u7-linux-gnu/crosstool.config @@ -0,0 +1,24 @@ +CT_CONFIG_VERSION="4" +CT_ARCH_X86=y +CT_ARCH_ARCH="i686" +CT_TARGET_VENDOR="ol8u7" +CT_KERNEL_LINUX=y +CT_LINUX_USE_ORACLE=y +CT_BINUTILS_USE_ORACLE=y +CT_BINUTILS_ORACLE_V_2_30=y +CT_BINUTILS_ORACLE_DEVEL_BRANCH="oracle/binutils/ol8-u7" +CT_BINUTILS_LINKER_LD_GOLD=y +CT_BINUTILS_GOLD_THREADS=y +CT_BINUTILS_LD_WRAPPER=y +CT_BINUTILS_PLUGINS=y +CT_GLIBC_USE_ORACLE=y +CT_GLIBC_EXTRA_CFLAGS="-Wno-missing-attributes -Wno-array-bounds -Wno-array-parameter -Wno-stringop-overflow -Wno-maybe-uninitialized" +CT_GLIBC_ENABLE_COMMON_FLAG=y +CT_GLIBC_ENABLE_DEBUG=n +CT_CC_LANG_CXX=y +CT_GLIBC_ORACLE_DEVEL_BRANCH="oracle/glibc/ol8-u7" +CT_GCC_USE_ORACLE=y +CT_ISL_V_0_16=y +CT_GCC_ORACLE_V_8=y +CT_GCC_ORACLE_VERSION="8.5.0" +CT_GCC_ORACLE_DEVEL_BRANCH="oracle/gcc/ol8-u7-x86" diff --git a/samples/i686-ol8u7-linux-gnu/reported.by b/samples/i686-ol8u7-linux-gnu/reported.by new file mode 100644 index 00000000..4e341b6d --- /dev/null +++ b/samples/i686-ol8u7-linux-gnu/reported.by @@ -0,0 +1,3 @@ +reporter_name="Cupertino Miranda" +reporter_url="" +reporter_comment="OL 8.7 toolchain configured for i686" diff --git a/samples/powerpc-e500v2-linux-gnuspe/crosstool.config b/samples/powerpc-e500v2-linux-gnuspe/crosstool.config index ef76f7dd..4a7a7a2b 100644 --- a/samples/powerpc-e500v2-linux-gnuspe/crosstool.config +++ b/samples/powerpc-e500v2-linux-gnuspe/crosstool.config @@ -3,12 +3,12 @@ CT_ARCH_POWERPC=y CT_ARCH_CPU="8548" CT_ARCH_powerpc_ABI_SPE=y CT_ARCH_FLOAT_SW=y -CT_TARGET_CFLAGS="-mfloat-gprs=double -Wa,-me500x2" +CT_TARGET_CFLAGS="-Wa,-me500" CT_TARGET_VENDOR="e500v2" CT_KERNEL_LINUX=y -CT_BINUTILS_EXTRA_CONFIG_ARRAY="--enable-spe=yes --enable-e500x2 --with-e500x2" -CT_CC_GCC_CORE_EXTRA_CONFIG_ARRAY="--enable-e500_double" -CT_CC_GCC_EXTRA_CONFIG_ARRAY="--enable-e500_double" +CT_BINUTILS_EXTRA_CONFIG_ARRAY="--enable-spe=yes" +CT_CC_GCC_CORE_EXTRA_CONFIG_ARRAY="--enable-e500-double" +CT_CC_GCC_EXTRA_CONFIG_ARRAY="--enable-e500-double" # CT_CC_GCC_ENABLE_TARGET_OPTSPACE is not set CT_CC_GCC_LDBL_128=y CT_CC_LANG_CXX=y diff --git a/samples/x86_64-ol8u6-linux-gnu/crosstool.config b/samples/x86_64-ol8u6-linux-gnu/crosstool.config index ddb41447..a314d189 100644 --- a/samples/x86_64-ol8u6-linux-gnu/crosstool.config +++ b/samples/x86_64-ol8u6-linux-gnu/crosstool.config @@ -6,6 +6,7 @@ CT_KERNEL_LINUX=y CT_LINUX_USE_ORACLE=y CT_BINUTILS_USE_ORACLE=y CT_BINUTILS_ORACLE_V_2_30=y +CT_BINUTILS_ORACLE_DEVEL_BRANCH="oracle/binutils/ol8-u6" CT_BINUTILS_LINKER_LD_GOLD=y CT_BINUTILS_GOLD_THREADS=y CT_BINUTILS_LD_WRAPPER=y @@ -15,6 +16,7 @@ CT_GLIBC_EXTRA_CFLAGS="-Wno-missing-attributes -Wno-array-bounds -Wno-array-para CT_GLIBC_ENABLE_COMMON_FLAG=y CT_GLIBC_ENABLE_DEBUG=n CT_CC_LANG_CXX=y +CT_GLIBC_ORACLE_DEVEL_BRANCH="oracle/glibc/ol8-u6" CT_GCC_USE_ORACLE=y CT_ISL_V_0_16=y CT_GCC_ORACLE_V_8=y diff --git a/samples/x86_64-ol8u7-linux-gnu/crosstool.config b/samples/x86_64-ol8u7-linux-gnu/crosstool.config new file mode 100644 index 00000000..b01c7088 --- /dev/null +++ b/samples/x86_64-ol8u7-linux-gnu/crosstool.config @@ -0,0 +1,24 @@ +CT_CONFIG_VERSION="4" +CT_ARCH_X86=y +CT_ARCH_64=y +CT_TARGET_VENDOR="ol8u7" +CT_KERNEL_LINUX=y +CT_LINUX_USE_ORACLE=y +CT_BINUTILS_USE_ORACLE=y +CT_BINUTILS_ORACLE_V_2_30=y +CT_BINUTILS_ORACLE_DEVEL_BRANCH="oracle/binutils/ol8-u7" +CT_BINUTILS_LINKER_LD_GOLD=y +CT_BINUTILS_GOLD_THREADS=y +CT_BINUTILS_LD_WRAPPER=y +CT_BINUTILS_PLUGINS=y +CT_GLIBC_USE_ORACLE=y +CT_GLIBC_EXTRA_CFLAGS="-Wno-missing-attributes -Wno-array-bounds -Wno-array-parameter -Wno-stringop-overflow -Wno-maybe-uninitialized" +CT_GLIBC_ENABLE_COMMON_FLAG=y +CT_GLIBC_ENABLE_DEBUG=n +CT_CC_LANG_CXX=y +CT_GLIBC_ORACLE_DEVEL_BRANCH="oracle/glibc/ol8-u7" +CT_GCC_USE_ORACLE=y +CT_ISL_V_0_16=y +CT_GCC_ORACLE_V_8=y +CT_GCC_ORACLE_VERSION="8.7.0" +CT_GCC_ORACLE_DEVEL_BRANCH="oracle/gcc/ol8-u7-x86" diff --git a/samples/x86_64-ol8u7-linux-gnu/reported.by b/samples/x86_64-ol8u7-linux-gnu/reported.by new file mode 100644 index 00000000..35d826be --- /dev/null +++ b/samples/x86_64-ol8u7-linux-gnu/reported.by @@ -0,0 +1,3 @@ +reporter_name="Cupertino Miranda" +reporter_url="" +reporter_comment="OL 8.7 toolchain configured for x86_64" diff --git a/samples/x86_64-pc-linux-gnu,arm-picolibc-eabi/crosstool.config b/samples/x86_64-pc-linux-gnu,arm-picolibc-eabi/crosstool.config new file mode 100644 index 00000000..18d6aadf --- /dev/null +++ b/samples/x86_64-pc-linux-gnu,arm-picolibc-eabi/crosstool.config @@ -0,0 +1,12 @@ +CT_CONFIG_VERSION="4" +CT_ARCH_ARM=y +CT_MULTILIB=y +CT_TARGET_CFLAGS="-ftls-model=local-exec" +CT_TARGET_VENDOR="picolibc" +CT_CANADIAN=y +CT_HOST="x86_64-pc-linux-gnu" +CT_LIBC_NONE=y +CT_CC_GCC_MULTILIB_LIST="rmprofile" +CT_CC_GCC_CONFIG_TLS=y +CT_CC_LANG_CXX=y +CT_COMP_LIBS_PICOLIBC=y diff --git a/samples/x86_64-pc-linux-gnu,arm-picolibc-eabi/reported.by b/samples/x86_64-pc-linux-gnu,arm-picolibc-eabi/reported.by new file mode 100644 index 00000000..027c1480 --- /dev/null +++ b/samples/x86_64-pc-linux-gnu,arm-picolibc-eabi/reported.by @@ -0,0 +1,3 @@ +reporter_name="Joakim Nohlgård" +reporter_url="https://github.com/jnohlgard/crosstool-ng" +reporter_comment="Based on arm-picolibc-eabi" diff --git a/scripts/build/arch/bpf.sh b/scripts/build/arch/bpf.sh new file mode 100644 index 00000000..de427283 --- /dev/null +++ b/scripts/build/arch/bpf.sh @@ -0,0 +1,7 @@ +# Compute BPF-specific values + +CT_DoArchTupleValues() { + CT_TARGET_ARCH=bpf + CT_TARGET_VENDOR=unknown + CT_TARGET_SYS=none +} diff --git a/scripts/build/cc/gcc.sh b/scripts/build/cc/gcc.sh index d75ad986..18558533 100644 --- a/scripts/build/cc/gcc.sh +++ b/scripts/build/cc/gcc.sh @@ -45,6 +45,7 @@ cc_gcc_lang_list() { [ "${CT_CC_LANG_ADA}" = "y" ] && lang_list+=",ada" [ "${CT_CC_LANG_D}" = "y" ] && lang_list+=",d" [ "${CT_CC_LANG_JAVA}" = "y" ] && lang_list+=",java" + [ "${CT_CC_LANG_JIT}" = "y" ] && lang_list+=",jit" [ "${CT_CC_LANG_OBJC}" = "y" ] && lang_list+=",objc" [ "${CT_CC_LANG_OBJCXX}" = "y" ] && lang_list+=",obj-c++" [ "${CT_CC_LANG_GOLANG}" = "y" ] && lang_list+=",go" @@ -288,14 +289,13 @@ do_gcc_core_backend() { ;; libstdcxx) CT_DoLog EXTRA "Configuring libstdc++ for ${libstdcxx_name}" - if [ "${header_dir}" = "" ]; then + if [ -z "${header_dir}" ]; then header_dir="${CT_PREFIX_DIR}/${libstdcxx_name}/include" fi - if [ "${exec_prefix}" = "" ]; then + if [ -z "${exec_prefix}" ]; then exec_prefix="${CT_PREFIX_DIR}/${libstdcxx_name}" fi extra_config+=( "${CT_CC_SYSROOT_ARG[@]}" ) - extra_config+=( "--with-headers=${header_dir}" ) extra_user_config=( "${CT_CC_GCC_EXTRA_CONFIG_ARRAY[@]}" ) log_txt="libstdc++ ${libstdcxx_name} library" # to inhibit the libiberty and libgcc tricks later on @@ -306,7 +306,7 @@ do_gcc_core_backend() { ;; esac - if [ "${exec_prefix}" = "" ]; then + if [ -z "${exec_prefix}" ]; then exec_prefix="${prefix}" fi @@ -344,6 +344,10 @@ do_gcc_core_backend() { extra_config+=("--enable-newlib-nano-formatted-io") fi + if [ "${CT_CC_LANG_JIT}" = "y" ]; then + extra_config+=("--enable-host-shared") + fi + if [ "${CT_CC_CXA_ATEXIT}" = "y" ]; then extra_config+=("--enable-__cxa_atexit") else @@ -554,6 +558,13 @@ do_gcc_core_backend() { fi fi + # Add an extra system include dir if we have one. This is especially useful + # when building libstdc++ with a libc other than the system libc (e.g. + # picolibc) + if [ -n "${header_dir}" ]; then + cflags_for_target="${cflags_for_target} -idirafter ${header_dir}" + fi + # For non-sysrooted toolchain, GCC doesn't search except at the installation # prefix; in core stage we use a temporary installation prefix - but # we may have installed something into the final prefix. This is less than ideal: @@ -911,7 +922,6 @@ do_gcc_backend() { local extra_cxxflags_for_target local ldflags local build_manuals - local exec_prefix local header_dir local libstdcxx_name local -a host_libstdcxx_flags @@ -926,7 +936,7 @@ do_gcc_backend() { eval "${arg// /\\ }" done - if [ "${exec_prefix}" = "" ]; then + if [ -z "${exec_prefix}" ]; then exec_prefix="${prefix}" fi @@ -1201,6 +1211,13 @@ do_gcc_backend() { fi fi + # Add an extra system include dir if we have one. This is especially useful + # when building libstdc++ with a libc other than the system libc (e.g. + # picolibc) + if [ -n "${header_dir}" ]; then + cflags_for_target="${cflags_for_target} -idirafter ${header_dir}" + fi + # Assume '-O2' by default for building target libraries. cflags_for_target="-g -O2 ${cflags_for_target}" diff --git a/scripts/build/companion_libs/050-zlib.sh b/scripts/build/companion_libs/050-zlib.sh index 8c6a0f6f..07c95496 100644 --- a/scripts/build/companion_libs/050-zlib.sh +++ b/scripts/build/companion_libs/050-zlib.sh @@ -80,6 +80,10 @@ do_zlib_backend() { eval "${arg// /\\ }" done + if [ "${CT_CC_LANG_JIT}" = "y" ]; then + cflags="${cflags} -fPIC" + fi + case "${host}" in *-mingw32) # zlib treats mingw host differently and requires using a different diff --git a/scripts/build/companion_libs/100-gmp.sh b/scripts/build/companion_libs/100-gmp.sh index 8afa5aec..28deff97 100644 --- a/scripts/build/companion_libs/100-gmp.sh +++ b/scripts/build/companion_libs/100-gmp.sh @@ -109,7 +109,7 @@ do_gmp_backend() { CT_DoLog EXTRA "Configuring GMP" - # To avoind “illegal text-relocation” linking error against + # To avoid “illegal text-relocation” linking error against # the static library, see: # https://github.com/Homebrew/homebrew-core/pull/25470 case "${host}" in @@ -118,6 +118,10 @@ do_gmp_backend() { ;; esac + if [ "${CT_CC_LANG_JIT}" = "y" ]; then + extra_config+=("--with-pic") + fi + # GMP's configure script doesn't respect the host parameter # when not cross-compiling, ie when build == host so set # CC_FOR_BUILD and CPP_FOR_BUILD. diff --git a/scripts/build/companion_libs/110-mpfr.sh b/scripts/build/companion_libs/110-mpfr.sh index d2cb9f68..3a1916c5 100644 --- a/scripts/build/companion_libs/110-mpfr.sh +++ b/scripts/build/companion_libs/110-mpfr.sh @@ -94,6 +94,7 @@ do_mpfr_backend() { local cflags local ldflags local arg + local -a extra_config for arg in "$@"; do eval "${arg// /\\ }" @@ -101,12 +102,16 @@ do_mpfr_backend() { # Under Cygwin, we can't build a thread-safe library case "${CT_HOST}" in - *cygwin*) mpfr_opts+=( --disable-thread-safe );; - *mingw*) mpfr_opts+=( --disable-thread-safe );; - *darwin*) mpfr_opts+=( --disable-thread-safe );; - *) mpfr_opts+=( --enable-thread-safe );; + *cygwin*) extra_config+=( --disable-thread-safe );; + *mingw*) extra_config+=( --disable-thread-safe );; + *darwin*) extra_config+=( --disable-thread-safe );; + *) extra_config+=( --enable-thread-safe );; esac + if [ "${CT_CC_LANG_JIT}" = "y" ]; then + extra_config+=("--with-pic") + fi + CT_DoLog EXTRA "Configuring MPFR" CT_DoExecLog CFG \ CC="${host}-gcc" \ @@ -117,6 +122,7 @@ do_mpfr_backend() { --build=${CT_BUILD} \ --host=${host} \ --prefix="${prefix}" \ + "${extra_config[@]}" \ --with-gmp="${prefix}" \ --disable-shared \ --enable-static diff --git a/scripts/build/companion_libs/121-isl.sh b/scripts/build/companion_libs/121-isl.sh index 3577b756..d7f69256 100644 --- a/scripts/build/companion_libs/121-isl.sh +++ b/scripts/build/companion_libs/121-isl.sh @@ -82,6 +82,10 @@ do_isl_backend() { eval "${arg// /\\ }" done + if [ "${CT_CC_LANG_JIT}" = "y" ]; then + extra_config+=("--with-pic") + fi + CT_DoLog EXTRA "Configuring ISL" CT_DoExecLog CFG \ diff --git a/scripts/build/companion_libs/130-cloog.sh b/scripts/build/companion_libs/130-cloog.sh index 9ee897ab..5170b53b 100644 --- a/scripts/build/companion_libs/130-cloog.sh +++ b/scripts/build/companion_libs/130-cloog.sh @@ -83,6 +83,10 @@ do_cloog_backend() { cloog_opts+=( --with-isl=system --with-isl-prefix="${prefix}" ) cloog_opts+=( --without-osl ) + if [ "${CT_CC_LANG_JIT}" = "y" ]; then + cloog_opts+=("--with-pic") + fi + CT_DoLog EXTRA "Configuring CLooG" CT_DoExecLog CFG \ diff --git a/scripts/build/companion_libs/140-mpc.sh b/scripts/build/companion_libs/140-mpc.sh index 2166ef1b..2bbba2d9 100644 --- a/scripts/build/companion_libs/140-mpc.sh +++ b/scripts/build/companion_libs/140-mpc.sh @@ -38,6 +38,11 @@ do_mpc_for_build() { mpc_opts+=( "prefix=${CT_BUILDTOOLS_PREFIX_DIR}" ) mpc_opts+=( "cflags=${CT_CFLAGS_FOR_BUILD}" ) mpc_opts+=( "ldflags=${CT_LDFLAGS_FOR_BUILD}" ) + + if [ "${CT_CC_LANG_JIT}" = "y" ]; then + mpc_opts+=("--with-pic") + fi + do_mpc_backend "${mpc_opts[@]}" CT_Popd @@ -73,11 +78,17 @@ do_mpc_backend() { local cflags local ldflags local arg + local -a extra_config for arg in "$@"; do eval "${arg// /\\ }" done + if [ "${CT_CC_LANG_JIT}" = "y" ]; then + extra_config+=("--with-pic") + fi + + CT_DoLog EXTRA "Configuring MPC" CT_DoExecLog CFG \ @@ -87,6 +98,7 @@ do_mpc_backend() { "${CT_SRC_DIR}/mpc/configure" \ --build=${CT_BUILD} \ --host=${host} \ + "${extra_config[@]}" \ --prefix="${prefix}" \ --with-gmp="${prefix}" \ --with-mpfr="${prefix}" \ diff --git a/scripts/config.guess b/scripts/config.guess index 1817bdce..980b0208 100755 --- a/scripts/config.guess +++ b/scripts/config.guess @@ -4,7 +4,7 @@ # shellcheck disable=SC2006,SC2268 # see below for rationale -timestamp='2022-05-25' +timestamp='2022-09-17' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -966,6 +966,12 @@ EOF GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` GUESS=$UNAME_MACHINE-unknown-$GNU_SYS$GNU_REL-$LIBC ;; + x86_64:[Mm]anagarm:*:*|i?86:[Mm]anagarm:*:*) + GUESS="$UNAME_MACHINE-pc-managarm-mlibc" + ;; + *:[Mm]anagarm:*:*) + GUESS="$UNAME_MACHINE-unknown-managarm-mlibc" + ;; *:Minix:*:*) GUESS=$UNAME_MACHINE-unknown-minix ;; @@ -1036,7 +1042,7 @@ EOF k1om:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; - loongarch32:Linux:*:* | loongarch64:Linux:*:* | loongarchx32:Linux:*:*) + loongarch32:Linux:*:* | loongarch64:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; m32r*:Linux:*:*) diff --git a/scripts/config.sub b/scripts/config.sub index dba16e84..baf1512b 100755 --- a/scripts/config.sub +++ b/scripts/config.sub @@ -4,7 +4,7 @@ # shellcheck disable=SC2006,SC2268 # see below for rationale -timestamp='2022-01-03' +timestamp='2022-09-17' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -145,7 +145,7 @@ case $1 in nto-qnx* | linux-* | uclinux-uclibc* \ | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ - | storm-chaos* | os2-emx* | rtmk-nova*) + | storm-chaos* | os2-emx* | rtmk-nova* | managarm-*) basic_machine=$field1 basic_os=$maybe_os ;; @@ -1207,7 +1207,7 @@ case $cpu-$vendor in | k1om \ | le32 | le64 \ | lm32 \ - | loongarch32 | loongarch64 | loongarchx32 \ + | loongarch32 | loongarch64 \ | m32c | m32r | m32rle \ | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \ | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \ @@ -1341,6 +1341,10 @@ EOF kernel=linux os=`echo "$basic_os" | sed -e 's|linux|gnu|'` ;; + managarm*) + kernel=managarm + os=`echo "$basic_os" | sed -e 's|managarm|mlibc|'` + ;; *) kernel= os=$basic_os @@ -1754,7 +1758,7 @@ case $os in | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \ | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \ - | fiwix* ) + | fiwix* | mlibc* ) ;; # This one is extra strict with allowed versions sco3.2v2 | sco3.2v[4-9]* | sco5v6*) @@ -1762,6 +1766,9 @@ case $os in ;; none) ;; + kernel* ) + # Restricted further below + ;; *) echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2 exit 1 @@ -1772,16 +1779,26 @@ esac # (given a valid OS), if there is a kernel. case $kernel-$os in linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \ - | linux-musl* | linux-relibc* | linux-uclibc* ) + | linux-musl* | linux-relibc* | linux-uclibc* | linux-mlibc* ) ;; uclinux-uclibc* ) ;; - -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* ) + managarm-mlibc* | managarm-kernel* ) + ;; + -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* | -mlibc* ) # These are just libc implementations, not actual OSes, and thus # require a kernel. echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2 exit 1 ;; + -kernel* ) + echo "Invalid configuration \`$1': \`$os' needs explicit kernel." 1>&2 + exit 1 + ;; + *-kernel* ) + echo "Invalid configuration \`$1': \`$kernel' does not support \`$os'." 1>&2 + exit 1 + ;; kfreebsd*-gnu* | kopensolaris*-gnu*) ;; vxworks-simlinux | vxworks-simwindows | vxworks-spe) diff --git a/scripts/crosstool-NG.sh b/scripts/crosstool-NG.sh index f695613c..383de66d 100644 --- a/scripts/crosstool-NG.sh +++ b/scripts/crosstool-NG.sh @@ -437,7 +437,7 @@ if [ -z "${CT_RESTART}" ]; then t="${!r}-" fi - for tool in ar as dlltool gcc g++ gcj gnatbind gnatmake ld libtool nm objcopy objdump ranlib strip windres; do + for tool in ar as dlltool gcc g++ gcj gnatbind gdc gnatmake ld libtool nm objcopy objdump ranlib strip windres; do # First try with prefix + suffix # Then try with prefix only # Then try with suffix only, but only for BUILD, and HOST iff REAL_BUILD == REAL_HOST diff --git a/scripts/functions b/scripts/functions index c2c1493c..09fa29af 100644 --- a/scripts/functions +++ b/scripts/functions @@ -1806,7 +1806,7 @@ CT_Mirrors() '') # Ignore, this happens before .config is fully evaluated ;; - [345].*) + [3456].*) echo "https://cdn.kernel.org/pub/linux/kernel/v${version%%.*}.x" ;; 2.6.*) @@ -2283,10 +2283,11 @@ CT_DoExtractPatch() CT_DoExecLog ALL rm -f "${src_dir}/.${basename}".* fi - if [ -f "${src_dir}/.${basename}.extracted" ]; then + if [ -f "${src_dir}/.${basename}.extracted" -a -d "${src_dir}/${basename}" ]; then CT_DoLog DEBUG "Already extracted ${basename}" else CT_DoLog EXTRA "Extracting ${basename}" + CT_DoExecLog ALL rm -f "${src_dir}/.${basename}".* CT_DoExecLog ALL touch "${src_dir}/.${basename}.extracting" if [ "${src_release}" = "y" ]; then archive="${archive_filename}" |