diff options
195 files changed, 11487 insertions, 169 deletions
diff --git a/Makefile.am b/Makefile.am index 37c32399..2e7cd1d6 100644 --- a/Makefile.am +++ b/Makefile.am @@ -91,8 +91,8 @@ create-symlinks: gen-tarball-version: echo $(VERSION) > $(distdir)/.tarball-version -DIGESTS = md5 sha1 sha512 -USE_GPG = yes +DIGESTS ?= md5 sha1 sha512 +USE_GPG ?= yes dist-create-release: distcheck for a in $(DIST_ARCHIVES); do \ diff --git a/config/arch/powerpc.in b/config/arch/powerpc.in index 40d88b91..73cdf757 100644 --- a/config/arch/powerpc.in +++ b/config/arch/powerpc.in @@ -11,6 +11,7 @@ ## select ARCH_SUPPORTS_WITH_CPU ## select ARCH_SUPPORTS_WITH_TUNE ## select ARCH_SUPPORTS_WITH_FLOAT +## select ARCH_SUPPORTS_WITH_32_64 ## ## help The PowerPC architecture, as defined by: ## help http://www.ibm.com/developerworks/eserver/articles/archguide.html @@ -42,6 +43,8 @@ config ARCH_powerpc_ABI_EABI config ARCH_powerpc_ABI_SPE bool prompt "SPE" + select GCC_REQUIRE_8_or_older + select GLIBC_REQUIRE_2_29_or_older help Add support for the Signal Processing Engine. This will set up the toolchain so that it supports the SPE ABI extensions. This @@ -54,4 +57,6 @@ config ARCH_powerpc_ABI_SPE and "--enable-e500_double" to your CC_EXTRA_CONFIG_ARRAY, so you do not need to explicitly add them. + Support for SPE ABI has been removed in GCC 9. + endchoice diff --git a/config/arch/sparc.in b/config/arch/sparc.in index 1b4abcca..fe46eaae 100644 --- a/config/arch/sparc.in +++ b/config/arch/sparc.in @@ -10,6 +10,7 @@ ## select ARCH_SUPPORTS_WITH_CPU ## select ARCH_SUPPORTS_WITH_TUNE ## select ARCH_SUPPORTS_WITH_FLOAT +## select ARCH_SUPPORTS_WITH_32_64 if GCC_6_or_later ## ## help The SUN SPARC architecture, as defined by: ## help 32 bit: http://www.sparc.org/standards/V8.pdf diff --git a/config/arch/x86.in b/config/arch/x86.in index ab89ccda..ec166557 100644 --- a/config/arch/x86.in +++ b/config/arch/x86.in @@ -8,6 +8,7 @@ ## select ARCH_SUPPORTS_WITH_ARCH ## select ARCH_SUPPORTS_WITH_CPU ## select ARCH_SUPPORTS_WITH_TUNE +## select ARCH_SUPPORTS_WITH_32_64 ## ## help The x86 architecture, as defined by: ## help 32-bit (ia32) : http://www.intel.com/ diff --git a/config/binutils/binutils.in b/config/binutils/binutils.in index 928659af..a92dec98 100644 --- a/config/binutils/binutils.in +++ b/config/binutils/binutils.in @@ -156,6 +156,15 @@ config BINUTILS_RELRO Setting this option to 'M' configures binutils with their internal default for the selected architecture. +config BINUTILS_DETERMINISTIC_ARCHIVES + bool + prompt "Enable deterministic archives by default" if BINUTILS_2_23_or_later + default y if BINUTILS_2_23_or_later + help + Setting this option will enable deterministic mode by default (-D). + ar and ranlib will use zero for UIDs, GIDs, + timestamps, and use consistent file modes for all files. + config BINUTILS_EXTRA_CONFIG_ARRAY string prompt "binutils extra config" @@ -206,7 +215,7 @@ config ELF2FLT_EXTRA_CONFIG_ARRAY default "" help Extra flags passed onto ./configure when configuring - + You can enter multiple arguments here, and arguments can contain spaces if they are properly quoted (or escaped, but prefer quotes). Eg.: --with-foo="1st arg with 4 spaces" --with-bar=2nd-arg-without-space diff --git a/config/global/paths.in b/config/global/paths.in index 0bf43d95..82ee4b39 100644 --- a/config/global/paths.in +++ b/config/global/paths.in @@ -55,6 +55,10 @@ config BUILD_TOP_DIR string default "${CT_WORK_DIR:-${CT_TOP_DIR}/.build}/${CT_HOST:+HOST-${CT_HOST}/}${CT_TARGET}" +config BUILD_DIR + string + default "${CT_BUILD_TOP_DIR}/build" + config PREFIX_DIR string prompt "Prefix directory" diff --git a/config/libc/glibc.in b/config/libc/glibc.in index c7533593..f891392d 100644 --- a/config/libc/glibc.in +++ b/config/libc/glibc.in @@ -35,11 +35,13 @@ config GLIBC_DEP_BINUTILS select BINUTILS_REQUIRE_2_25_or_later if GLIBC_2_26_or_later select BINUTILS_REQUIRE_older_than_2_30 if GLIBC_older_than_2_26 && ARCH_ARM && ARCH_64 +# Glibc 2.26 requires GCC4.9 or newer # Glibc 2.29 requires GCC5+ or, for ppc64le, GCC6.2+. We only support the latest # release on GCC6 branch, so just assume it is newer than 6.2 # Glibc 2.30 uncondtionally requires GCC 6.2+ config GLIBC_DEP_GCC def_bool y + select GCC_REQUIRE_4_9_or_later if GLIBC_2_26_or_later select GCC_REQUIRE_5_or_later if GLIBC_2_29_or_later select GCC_REQUIRE_6_or_later if GLIBC_2_29_or_later && ARCH_POWERPC && ARCH_64 && ARCH_LE select GCC_REQUIRE_6_or_later if GLIBC_2_30_or_later @@ -64,9 +66,11 @@ config GLIBC_DEP_MAKE_4_0 select MAKE_REQUIRE_4_0_or_later select MAKE_GNUMAKE_SYMLINK # Override old host make in .build/tools/bin -config GLIBC_DEP_GCC +# Glibc 2.31 removed support for pre-v8 SPARC in 32-bit mode (64-bit mode always +# required UltraSPARC) +config GLIBC_SPARC_ALLOW_V7 def_bool y - select GCC_REQUIRE_4_9_or_later if GLIBC_2_26_or_later + depends on GLIBC_2_30_or_older config THREADS default "nptl" diff --git a/config/libc/newlib.in b/config/libc/newlib.in index 268f9564..199eff2a 100644 --- a/config/libc/newlib.in +++ b/config/libc/newlib.in @@ -152,6 +152,13 @@ config LIBC_NEWLIB_MULTITHREAD help Enable support for multiple threads. +config LIBC_NEWLIB_RETARGETABLE_LOCKING + bool + prompt "Enable retargetable locking" + help + Enable retargetable locking to allow the operating system to override + the dummy lock functions defined within the newlib. + config LIBC_NEWLIB_EXTRA_SECTIONS bool prompt "Place each function & data element in their own section" diff --git a/config/target.in b/config/target.in index 8549c5b8..995457a0 100644 --- a/config/target.in +++ b/config/target.in @@ -236,6 +236,11 @@ config ARCH_64 endchoice +# Whether this architecture supports passing --with-{cpu,arch,tune}-{32,64}= +# to GCC configure. +config ARCH_SUPPORTS_WITH_32_64 + bool + #-------------------------------------- comment "Target optimisations" diff --git a/configure.ac b/configure.ac index ae4a0274..096ebb7b 100644 --- a/configure.ac +++ b/configure.ac @@ -287,7 +287,7 @@ AC_FUNC_REALLOC AC_FUNC_ALLOCA AM_GNU_GETTEXT([external]) -AM_GNU_GETTEXT_VERSION([0.19.8]) +AM_GNU_GETTEXT_VERSION([0.19.7]) # For now, curses are needed to build kconfig. We may support a command-line # only configuration without curses later. For now, fail in configure but diff --git a/maintainer/git-version-gen b/maintainer/git-version-gen index 4a6d3312..0ca6bd34 100755 --- a/maintainer/git-version-gen +++ b/maintainer/git-version-gen @@ -215,6 +215,10 @@ if test "x$v_from_git" != x; then esac fi +# Replace any dashes with underscores in the resulting version, to keep +# rpmbuild happy. See https://github.com/semver/semver/issues/145. +v=`echo "$v" | sed 's/-/_/g'` + # Omit the trailing newline, so that m4_esyscmd can use the result directly. printf %s "$v" diff --git a/maintainer/manage-packages.sh b/maintainer/manage-packages.sh index 08412446..c370719b 100755 --- a/maintainer/manage-packages.sh +++ b/maintainer/manage-packages.sh @@ -91,10 +91,11 @@ CT_LIB_DIR=`pwd` CT_TOP_DIR=`pwd` CT_TARBALLS_DIR=`pwd`/temp.tarballs CT_COMMON_SRC_DIR=`pwd`/temp.src +CT_WORK_DIR=`pwd`/temp.work CT_SRC_DIR=`pwd`/temp.src CT_LOG_LEVEL_MAX=EXTRA CT_TEMP_PATCH_DIR=`pwd`/temp.patches -mkdir -p ${CT_TARBALLS_DIR} +mkdir -p "${CT_TARBALLS_DIR}" "${CT_WORK_DIR}" # Does not matter, just to make the scripts load CT_ARCH=arm @@ -223,6 +224,8 @@ matched=0 run_pkgversion() { + local descr + while [ -n "${1}" ]; do eval "local ${1}" shift @@ -237,8 +240,13 @@ run_pkgversion() ;; esac fi + if [ -n "${ver}" ]; then + descr="${pkg_name}-${ver}" + else + descr="${pkg_name} revision ${repository_cset}" + fi - CT_DoStep INFO "Handling ${pkg_name}-${ver}" + CT_DoStep INFO "Handling ${descr}" matched=$[matched+1] # Create a temporary configuration head file @@ -268,30 +276,53 @@ source "config/global/build-behave.in" source "config/versions/${master}.in" EOF + # Common part of the config file cat >temp.defconfig <<EOF CT_${masterpfx}_USE_${originpfx}=y -CT_${pfx}_SRC_RELEASE=y -CT_${pfx}_V_${kcfg}=y CT_SAVE_TARBALLS=y +CT_WORK_DIR="${CT_WORK_DIR}" +# CT_OVERRIDE_CONFIG_GUESS_SUB is not set # CT_VERIFY_DOWNLOAD_DIGEST is not set ${signature+CT_VERIFY_DOWNLOAD_SIGNATURE=y} -# CT_OVERRIDE_CONFIG_GUESS_SUB is not set EOF + if [ -n "${kcfg}" ]; then + # Regular tarball + cat >>temp.defconfig <<EOF +CT_${pfx}_SRC_RELEASE=y +CT_${pfx}_V_${kcfg}=y +EOF + else + # VCS-based release + cat >>temp.defconfig <<EOF +CT_${pfx}_SRC_DEVEL=y +CT_${pfx}_DEVEL_VCS="${vcs}" +CT_${pfx}_DEVEL_URL="${repository_url}" +CT_${pfx}_DEVEL_BRANCH="${repository_branch}" +CT_${pfx}_DEVEL_REVISION="${repository_cset}" +CT_${pfx}_DEVEL_SUBDIR="${repository_subdir}" +EOF + fi + ./kconfig/conf --defconfig=temp.defconfig temp.in >/dev/null CT_LoadConfig + CT_DoExecLog ALL mkdir -p "${CT_BUILD_DIR}" rm -f .config .config.old temp.defconfig temp.in - if [ -n "${verify_urls}" ]; then - CT_DoLog EXTRA "Verifying URLs for ${pkg_name}-${ver}" - CT_PackageRun "${masterpfx}" check_pkg_urls - fi - if [ -n "${create_digests}" ]; then - CT_DoLog EXTRA "Creating digests for ${pkg_name}-${ver}" - CT_PackageRun "${masterpfx}" create_digests + if [ -n "${ver}" ]; then + if [ -n "${verify_urls}" ]; then + CT_DoLog EXTRA "Verifying URLs for ${descr}" + CT_PackageRun "${masterpfx}" check_pkg_urls + fi + if [ -n "${create_digests}" ]; then + CT_DoLog EXTRA "Creating digests for ${descr}" + CT_PackageRun "${masterpfx}" create_digests + fi + else + CT_DoLog EXTRA "Not verifying URLs or creating digests for ${descr} (devel release)" fi if [ -n "${download_pkgs}" ]; then - CT_DoLog EXTRA "Downloading ${pkg_name}-${ver}" + CT_DoLog EXTRA "Downloading ${descr}" CT_Fetch "${masterpfx}" fi if [ -n "${apply_patches}" ]; then @@ -315,4 +346,4 @@ CT_EndStep CT_DoLog INFO "Handled ${matched} packages/versions" [ -r .config-saved ] && mv .config-saved .config -CT_DoExecLog ALL rm -rf ${CT_TARBALLS_DIR} ${CT_COMMON_SRC_DIR} ${CT_TEMP_PATCH_DIR} +CT_DoExecLog ALL rm -rf "${CT_TARBALLS_DIR}" "${CT_COMMON_SRC_DIR}" "${CT_TEMP_PATCH_DIR}" "${CT_WORK_DIR}" diff --git a/maintainer/package-versions.template b/maintainer/package-versions.template index 61f938f6..ea78417a 100644 --- a/maintainer/package-versions.template +++ b/maintainer/package-versions.template @@ -10,4 +10,17 @@ run_pkgversion \ ver=@@ver@@ \ kcfg=@@ver_sel|@@ #!end-foreach +#!if [ -n "@@repository_cset@@" ] +run_pkgversion \ + master=@@master@@ \ + masterpfx=@@master|@@ \ + originpfx=@@origin|@@ \ + pkg_name=@@pkg_name@@ \ + pfx=@@fork|@@ \ + vcs=@@vcs@@ \ + repository_url=@@repository_url@@ \ + repository_branch=@@repository_branch@@ \ + repository_cset=@@repository_cset@@ \ + repository_subdir=@@repository_subdir@@ +#!end-if #!end-foreach diff --git a/packages/binutils/2.33.1/0000-sh-conf.patch b/packages/binutils/2.33.1/0000-sh-conf.patch new file mode 100644 index 00000000..f6362898 --- /dev/null +++ b/packages/binutils/2.33.1/0000-sh-conf.patch @@ -0,0 +1,34 @@ +r10231 | lethal | 2005-05-02 09:58:00 -0400 (Mon, 02 May 2005) | 13 lines + +Likewise, binutils has no idea about any of these new targets either, so we +fix that up too.. now we're able to actually build a real toolchain for +sh2a_nofpu- and other more ineptly named toolchains (and yes, there are more +inept targets than that one, really. Go look, I promise). + +--- + configure | 2 +- + configure.ac | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +--- a/configure ++++ b/configure +@@ -3865,7 +3865,7 @@ case "${target}" in + nvptx*-*-*) + noconfigdirs="$noconfigdirs target-libssp target-libstdc++-v3 target-libobjc" + ;; +- sh-*-*) ++ sh*-*-*) + case "${target}" in + sh*-*-elf) + ;; +--- a/configure.ac ++++ b/configure.ac +@@ -1158,7 +1158,7 @@ case "${target}" in + nvptx*-*-*) + noconfigdirs="$noconfigdirs target-libssp target-libstdc++-v3 target-libobjc" + ;; +- sh-*-*) ++ sh*-*-*) + case "${target}" in + sh*-*-elf) + ;; diff --git a/packages/binutils/2.33.1/0001-ld_makefile_patch.patch b/packages/binutils/2.33.1/0001-ld_makefile_patch.patch new file mode 100644 index 00000000..e76207e6 --- /dev/null +++ b/packages/binutils/2.33.1/0001-ld_makefile_patch.patch @@ -0,0 +1,27 @@ +--- + ld/Makefile.am | 2 +- + ld/Makefile.in | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +--- a/ld/Makefile.am ++++ b/ld/Makefile.am +@@ -57,7 +57,7 @@ endif + # We put the scripts in the directory $(scriptdir)/ldscripts. + # We can't put the scripts in $(datadir) because the SEARCH_DIR + # directives need to be different for native and cross linkers. +-scriptdir = $(tooldir)/lib ++scriptdir = $(libdir) + + EMUL = @EMUL@ + EMULATION_OFILES = @EMULATION_OFILES@ +--- a/ld/Makefile.in ++++ b/ld/Makefile.in +@@ -563,7 +563,7 @@ AM_CFLAGS = $(WARN_CFLAGS) $(ELF_CLFAGS) + # We put the scripts in the directory $(scriptdir)/ldscripts. + # We can't put the scripts in $(datadir) because the SEARCH_DIR + # directives need to be different for native and cross linkers. +-scriptdir = $(tooldir)/lib ++scriptdir = $(libdir) + BASEDIR = $(srcdir)/.. + BFDDIR = $(BASEDIR)/bfd + INCDIR = $(BASEDIR)/include diff --git a/packages/binutils/2.33.1/0002-check_ldrunpath_length.patch b/packages/binutils/2.33.1/0002-check_ldrunpath_length.patch new file mode 100644 index 00000000..131c6bf3 --- /dev/null +++ b/packages/binutils/2.33.1/0002-check_ldrunpath_length.patch @@ -0,0 +1,24 @@ +--- + ld/emultempl/elf32.em | 4 ++++ + 1 file changed, 4 insertions(+) + +--- a/ld/emultempl/elf32.em ++++ b/ld/emultempl/elf32.em +@@ -1470,6 +1470,8 @@ fragment <<EOF + && command_line.rpath == NULL) + { + path = (const char *) getenv ("LD_RUN_PATH"); ++ if ((path) && (strlen (path) == 0)) ++ path = NULL; + if (path + && gld${EMULATION_NAME}_search_needed (path, &n, force)) + break; +@@ -1745,6 +1747,8 @@ gld${EMULATION_NAME}_before_allocation ( + rpath = command_line.rpath; + if (rpath == NULL) + rpath = (const char *) getenv ("LD_RUN_PATH"); ++ if ((rpath) && (*rpath == '\0')) ++ rpath = NULL; + + for (abfd = link_info.input_bfds; abfd; abfd = abfd->link.next) + if (bfd_get_flavour (abfd) == bfd_target_elf_flavour) diff --git a/packages/binutils/2.33.1/0003-MinGW-w64-winpthreads-doesnt-have-pthread_mutexattr_settype.patch b/packages/binutils/2.33.1/0003-MinGW-w64-winpthreads-doesnt-have-pthread_mutexattr_settype.patch new file mode 100644 index 00000000..c712df5d --- /dev/null +++ b/packages/binutils/2.33.1/0003-MinGW-w64-winpthreads-doesnt-have-pthread_mutexattr_settype.patch @@ -0,0 +1,15 @@ +--- + gold/gold-threads.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/gold/gold-threads.cc ++++ b/gold/gold-threads.cc +@@ -101,7 +101,7 @@ Lock_impl_threads::Lock_impl_threads() + int err = pthread_mutexattr_init(&attr); + if (err != 0) + gold_fatal(_("pthead_mutexattr_init failed: %s"), strerror(err)); +-#ifdef PTHREAD_MUTEX_ADAPTIVE_NP ++#if defined(PTHREAD_MUTEX_ADAPTIVE_NP) && !defined(_WIN32) + err = pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_ADAPTIVE_NP); + if (err != 0) + gold_fatal(_("pthread_mutexattr_settype failed: %s"), strerror(err)); diff --git a/packages/binutils/2.33.1/0004-Dont-link-to-libfl-as-its-unnecessary.patch b/packages/binutils/2.33.1/0004-Dont-link-to-libfl-as-its-unnecessary.patch new file mode 100644 index 00000000..582983fd --- /dev/null +++ b/packages/binutils/2.33.1/0004-Dont-link-to-libfl-as-its-unnecessary.patch @@ -0,0 +1,105 @@ +--- + binutils/configure | 3 +++ + binutils/configure.ac | 3 +++ + gas/configure | 3 +++ + gas/configure.ac | 3 +++ + ld/configure | 3 +++ + ld/configure.ac | 3 +++ + 6 files changed, 18 insertions(+) + +--- a/binutils/configure ++++ b/binutils/configure +@@ -12449,6 +12449,7 @@ fi + done + test -n "$YACC" || YACC="yacc" + ++save_LIBS=$LIBS + for ac_prog in flex lex + do + # Extract the first word of "$ac_prog", so it can be a program name with args. +@@ -12612,6 +12613,8 @@ esac + if test "$LEX" = :; then + LEX=${am_missing_run}flex + fi ++LIBS=$save_LIBS ++LEXLIB= + + ALL_LINGUAS="bg ca da es fi fr hr id it ja pt ro ru rw sk sr sv tr uk vi zh_CN zh_TW" + # If we haven't got the data from the intl directory, +--- a/binutils/configure.ac ++++ b/binutils/configure.ac +@@ -86,7 +86,10 @@ if test -z "$host" ; then + fi + + AC_PROG_YACC ++save_LIBS=$LIBS + AM_PROG_LEX ++LIBS=$save_LIBS ++LEXLIB= + + ALL_LINGUAS="bg ca da es fi fr hr id it ja pt ro ru rw sk sr sv tr uk vi zh_CN zh_TW" + ZW_GNU_GETTEXT_SISTER_DIR +--- a/gas/configure ++++ b/gas/configure +@@ -13469,6 +13469,7 @@ fi + done + test -n "$YACC" || YACC="yacc" + ++save_LIBS=$LIBS + for ac_prog in flex lex + do + # Extract the first word of "$ac_prog", so it can be a program name with args. +@@ -13632,6 +13633,8 @@ esac + if test "$LEX" = :; then + LEX=${am_missing_run}flex + fi ++LIBS=$save_LIBS ++LEXLIB= + + ALL_LINGUAS="es fi fr id ja ru rw sv tr uk zh_CN" + # If we haven't got the data from the intl directory, +--- a/gas/configure.ac ++++ b/gas/configure.ac +@@ -893,7 +893,10 @@ AC_DEFINE_UNQUOTED(TARGET_VENDOR, "${tar + AC_DEFINE_UNQUOTED(TARGET_OS, "${target_os}", [Target OS.]) + + AC_PROG_YACC ++save_LIBS=$LIBS + AM_PROG_LEX ++LIBS=$save_LIBS ++LEXLIB= + + ALL_LINGUAS="es fi fr id ja ru rw sv tr uk zh_CN" + ZW_GNU_GETTEXT_SISTER_DIR +--- a/ld/configure ++++ b/ld/configure +@@ -16537,6 +16537,7 @@ fi + done + test -n "$YACC" || YACC="yacc" + ++save_LIBS=$LIBS + for ac_prog in flex lex + do + # Extract the first word of "$ac_prog", so it can be a program name with args. +@@ -16700,6 +16701,8 @@ esac + if test "$LEX" = :; then + LEX=${am_missing_run}flex + fi ++LIBS=$save_LIBS ++LEXLIB= + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 +--- a/ld/configure.ac ++++ b/ld/configure.ac +@@ -243,7 +243,10 @@ AM_PO_SUBDIRS + AC_EXEEXT + + AC_PROG_YACC ++save_LIBS=$LIBS + AM_PROG_LEX ++LIBS=$save_LIBS ++LEXLIB= + + AM_MAINTAINER_MODE + AM_CONDITIONAL(GENINSRC_NEVER, false) diff --git a/packages/binutils/2.33.1/0005-Darwin-gold-binary-cc-include-string-not-cstring.patch b/packages/binutils/2.33.1/0005-Darwin-gold-binary-cc-include-string-not-cstring.patch new file mode 100644 index 00000000..fbc40418 --- /dev/null +++ b/packages/binutils/2.33.1/0005-Darwin-gold-binary-cc-include-string-not-cstring.patch @@ -0,0 +1,15 @@ +--- + gold/binary.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/gold/binary.cc ++++ b/gold/binary.cc +@@ -23,7 +23,7 @@ + #include "gold.h" + + #include <cerrno> +-#include <cstring> ++#include <string> + + #include "elfcpp.h" + #include "stringpool.h" diff --git a/packages/binutils/2.33.1/0006-Darwin-Two-fixes-from-Android-NDK-PTHREAD_ONCE_INIT-wcsncasecmp.patch b/packages/binutils/2.33.1/0006-Darwin-Two-fixes-from-Android-NDK-PTHREAD_ONCE_INIT-wcsncasecmp.patch new file mode 100644 index 00000000..0537aa42 --- /dev/null +++ b/packages/binutils/2.33.1/0006-Darwin-Two-fixes-from-Android-NDK-PTHREAD_ONCE_INIT-wcsncasecmp.patch @@ -0,0 +1,70 @@ +From c39479f4ab4d372b518957871e1f205a03e7c3d6 Mon Sep 17 00:00:00 2001 +From: Andrew Hsieh <andrewhsieh@google.com> +Date: Wed, 18 Mar 2015 10:57:24 +0800 +Subject: [PATCH] Fix darwin build + +1. In Drawin PTHREAD_ONCE_INIT is {0x30B1BCBA, {0}} and the GCC < 4.4 + doesn't support ended initializer list +2. wcsncasecmp doesn't exist in MacSDK10.6.x + +Change-Id: I69204a72f853f5263dffedc448379d75ed4eca2e +--- + bfd/peXXigen.c | 22 ++++++++++++++++++++++ + gold/gold-threads.cc | 15 ++++++++++++--- + 2 files changed, 34 insertions(+), 3 deletions(-) + +--- a/bfd/peXXigen.c ++++ b/bfd/peXXigen.c +@@ -3623,6 +3623,28 @@ u16_mbtouc (wchar_t * puc, const unsigne + } + #endif /* HAVE_WCHAR_H and not Cygwin/Mingw */ + ++#if defined __APPLE__ && __DARWIN_C_LEVEL < 200809L ++/* wcsncasecmp isn't always defined in Mac SDK */ ++static int ++wcsncasecmp(const wchar_t *s1, const wchar_t *s2, size_t n) ++{ ++ wchar_t c1, c2; ++ ++ if (n == 0) ++ return (0); ++ for (; *s1; s1++, s2++) ++ { ++ c1 = towlower(*s1); ++ c2 = towlower(*s2); ++ if (c1 != c2) ++ return ((int)c1 - c2); ++ if (--n == 0) ++ return (0); ++ } ++ return (-*s2); ++} ++#endif ++ + /* Perform a comparison of two entries. */ + static signed int + rsrc_cmp (bfd_boolean is_name, rsrc_entry * a, rsrc_entry * b) +--- a/gold/gold-threads.cc ++++ b/gold/gold-threads.cc +@@ -284,9 +284,18 @@ Condvar::~Condvar() + class Once_initialize + { + public: +- Once_initialize() +- : once_(PTHREAD_ONCE_INIT) +- { } ++ Once_initialize() ++#if !defined(__APPLE__) ++ : once_(PTHREAD_ONCE_INIT) ++ { } ++#else ++// In Drawin PTHREAD_ONCE_INIT is {0x30B1BCBA, {0}} and the GCC < 4.4 doesn't support ++// extended initializer list as above */ ++ { ++ pthread_once_t once_2 = PTHREAD_ONCE_INIT; ++ once_ = once_2; ++ } ++#endif + + // Return a pointer to the pthread_once_t variable. + pthread_once_t* diff --git a/packages/binutils/2.33.1/0007-sysroot.patch b/packages/binutils/2.33.1/0007-sysroot.patch new file mode 100644 index 00000000..bcf6f346 --- /dev/null +++ b/packages/binutils/2.33.1/0007-sysroot.patch @@ -0,0 +1,41 @@ +Signed-off-by: Sven Rebhan <odinshorse@googlemail.com> + +Always try to prepend the sysroot prefix to absolute filenames first. + +http://bugs.gentoo.org/275666 +http://sourceware.org/bugzilla/show_bug.cgi?id=10340 + +--- + ld/ldfile.c | 11 +++++++++-- + 1 file changed, 9 insertions(+), 2 deletions(-) + +--- a/ld/ldfile.c ++++ b/ld/ldfile.c +@@ -338,18 +338,25 @@ ldfile_open_file_search (const char *arc + directory first. */ + if (!entry->flags.maybe_archive) + { +- if (entry->flags.sysrooted && IS_ABSOLUTE_PATH (entry->filename)) ++ /* For absolute pathnames, try to always open the file in the ++ sysroot first. If this fails, try to open the file at the ++ given location. */ ++ entry->flags.sysrooted = is_sysrooted_pathname (entry->filename); ++ if (!entry->flags.sysrooted && IS_ABSOLUTE_PATH (entry->filename) ++ && ld_sysroot) + { + char *name = concat (ld_sysroot, entry->filename, + (const char *) NULL); + if (ldfile_try_open_bfd (name, entry)) + { + entry->filename = name; ++ entry->flags.sysrooted = TRUE; + return TRUE; + } + free (name); + } +- else if (ldfile_try_open_bfd (entry->filename, entry)) ++ ++ if (ldfile_try_open_bfd (entry->filename, entry)) + return TRUE; + + if (IS_ABSOLUTE_PATH (entry->filename)) diff --git a/packages/binutils/2.33.1/0008-poison-system-directories.patch b/packages/binutils/2.33.1/0008-poison-system-directories.patch new file mode 100644 index 00000000..907036c9 --- /dev/null +++ b/packages/binutils/2.33.1/0008-poison-system-directories.patch @@ -0,0 +1,279 @@ +Patch adapted to binutils 2.23.2 and extended to use +BR_COMPILER_PARANOID_UNSAFE_PATH by Thomas Petazzoni. + +[Gustavo: adapt to binutils 2.25] +Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> +Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> + +Upstream-Status: Inappropriate [distribution: codesourcery] + +Patch originally created by Mark Hatle, forward-ported to +binutils 2.21 by Scott Garman. + +purpose: warn for uses of system directories when cross linking + +Code Merged from Sourcery G++ binutils 2.19 - 4.4-277 + +2008-07-02 Joseph Myers <joseph@codesourcery.com> + + ld/ + * ld.h (args_type): Add error_poison_system_directories. + * ld.texinfo (--error-poison-system-directories): Document. + * ldfile.c (ldfile_add_library_path): Check + command_line.error_poison_system_directories. + * ldmain.c (main): Initialize + command_line.error_poison_system_directories. + * lexsup.c (enum option_values): Add + OPTION_ERROR_POISON_SYSTEM_DIRECTORIES. + (ld_options): Add --error-poison-system-directories. + (parse_args): Handle new option. + +2007-06-13 Joseph Myers <joseph@codesourcery.com> + + ld/ + * config.in: Regenerate. + * ld.h (args_type): Add poison_system_directories. + * ld.texinfo (--no-poison-system-directories): Document. + * ldfile.c (ldfile_add_library_path): Check + command_line.poison_system_directories. + * ldmain.c (main): Initialize + command_line.poison_system_directories. + * lexsup.c (enum option_values): Add + OPTION_NO_POISON_SYSTEM_DIRECTORIES. + (ld_options): Add --no-poison-system-directories. + (parse_args): Handle new option. + +2007-04-20 Joseph Myers <joseph@codesourcery.com> + + Merge from Sourcery G++ binutils 2.17: + + 2007-03-20 Joseph Myers <joseph@codesourcery.com> + Based on patch by Mark Hatle <mark.hatle@windriver.com>. + ld/ + * configure.ac (--enable-poison-system-directories): New option. + * configure, config.in: Regenerate. + * ldfile.c (ldfile_add_library_path): If + ENABLE_POISON_SYSTEM_DIRECTORIES defined, warn for use of /lib, + /usr/lib, /usr/local/lib or /usr/X11R6/lib. + +Signed-off-by: Mark Hatle <mark.hatle@windriver.com> +Signed-off-by: Scott Garman <scott.a.garman@intel.com> + +--- + ld/config.in | 3 +++ + ld/configure | 14 ++++++++++++++ + ld/configure.ac | 10 ++++++++++ + ld/ld.h | 8 ++++++++ + ld/ld.texi | 12 ++++++++++++ + ld/ldfile.c | 17 +++++++++++++++++ + ld/ldlex.h | 2 ++ + ld/ldmain.c | 2 ++ + ld/lexsup.c | 21 +++++++++++++++++++++ + 9 files changed, 89 insertions(+) + +--- a/ld/config.in ++++ b/ld/config.in +@@ -31,6 +31,9 @@ + language is requested. */ + #undef ENABLE_NLS + ++/* Define to warn for use of native system library directories */ ++#undef ENABLE_POISON_SYSTEM_DIRECTORIES ++ + /* Additional extension a shared object might have. */ + #undef EXTRA_SHLIB_EXTENSION + +--- a/ld/configure ++++ b/ld/configure +@@ -823,6 +823,7 @@ with_lib_path + enable_targets + enable_64_bit_bfd + with_sysroot ++enable_poison_system_directories + enable_gold + enable_got + enable_compressed_debug_sections +@@ -1487,6 +1488,8 @@ Optional Features: + --disable-largefile omit support for large files + --enable-targets alternative target configurations + --enable-64-bit-bfd 64-bit support (on hosts with narrower word sizes) ++ --enable-poison-system-directories ++ warn for use of native system library directories + --enable-gold[=ARG] build gold [ARG={default,yes,no}] + --enable-got=<type> GOT handling scheme (target, single, negative, + multigot) +@@ -15804,7 +15807,18 @@ else + fi + + ++# Check whether --enable-poison-system-directories was given. ++if test "${enable_poison_system_directories+set}" = set; then : ++ enableval=$enable_poison_system_directories; ++else ++ enable_poison_system_directories=no ++fi ++ ++if test "x${enable_poison_system_directories}" = "xyes"; then + ++$as_echo "#define ENABLE_POISON_SYSTEM_DIRECTORIES 1" >>confdefs.h ++ ++fi + + # Check whether --enable-got was given. + if test "${enable_got+set}" = set; then : +--- a/ld/configure.ac ++++ b/ld/configure.ac +@@ -94,6 +94,16 @@ AC_SUBST(use_sysroot) + AC_SUBST(TARGET_SYSTEM_ROOT) + AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE) + ++AC_ARG_ENABLE([poison-system-directories], ++ AS_HELP_STRING([--enable-poison-system-directories], ++ [warn for use of native system library directories]),, ++ [enable_poison_system_directories=no]) ++if test "x${enable_poison_system_directories}" = "xyes"; then ++ AC_DEFINE([ENABLE_POISON_SYSTEM_DIRECTORIES], ++ [1], ++ [Define to warn for use of native system library directories]) ++fi ++ + dnl Use --enable-gold to decide if this linker should be the default. + dnl "install_as_default" is set to false if gold is the default linker. + dnl "installed_linker" is the installed BFD linker name. +--- a/ld/ld.h ++++ b/ld/ld.h +@@ -175,6 +175,14 @@ typedef struct + /* If set, display the target memory usage (per memory region). */ + bfd_boolean print_memory_usage; + ++ /* If TRUE (the default) warn for uses of system directories when ++ cross linking. */ ++ bfd_boolean poison_system_directories; ++ ++ /* If TRUE (default FALSE) give an error for uses of system ++ directories when cross linking instead of a warning. */ ++ bfd_boolean error_poison_system_directories; ++ + /* Should we force section groups to be resolved? Controlled with + --force-group-allocation on the command line or FORCE_GROUP_ALLOCATION + in the linker script. */ +--- a/ld/ld.texi ++++ b/ld/ld.texi +@@ -2557,6 +2557,18 @@ string identifying the original linked f + + Passing @code{none} for @var{style} disables the setting from any + @code{--build-id} options earlier on the command line. ++ ++@kindex --no-poison-system-directories ++@item --no-poison-system-directories ++Do not warn for @option{-L} options using system directories such as ++@file{/usr/lib} when cross linking. This option is intended for use ++in chroot environments when such directories contain the correct ++libraries for the target system rather than the host. ++ ++@kindex --error-poison-system-directories ++@item --error-poison-system-directories ++Give an error instead of a warning for @option{-L} options using ++system directories when cross linking. + @end table + + @c man end +--- a/ld/ldfile.c ++++ b/ld/ldfile.c +@@ -116,6 +116,23 @@ ldfile_add_library_path (const char *nam + new_dirs->name = concat (ld_sysroot, name + strlen ("$SYSROOT"), (const char *) NULL); + else + new_dirs->name = xstrdup (name); ++ ++#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES ++ if (command_line.poison_system_directories ++ && ((!strncmp (name, "/lib", 4)) ++ || (!strncmp (name, "/usr/lib", 8)) ++ || (!strncmp (name, "/usr/local/lib", 14)) ++ || (!strncmp (name, "/usr/X11R6/lib", 14)))) ++ { ++ if (command_line.error_poison_system_directories) ++ einfo (_("%X%P: error: library search path \"%s\" is unsafe for " ++ "cross-compilation\n"), name); ++ else ++ einfo (_("%P: warning: library search path \"%s\" is unsafe for " ++ "cross-compilation\n"), name); ++ } ++#endif ++ + } + + /* Try to open a BFD for a lang_input_statement. */ +--- a/ld/ldlex.h ++++ b/ld/ldlex.h +@@ -150,6 +150,8 @@ enum option_values + OPTION_FORCE_GROUP_ALLOCATION, + OPTION_PRINT_MAP_DISCARDED, + OPTION_NO_PRINT_MAP_DISCARDED, ++ OPTION_NO_POISON_SYSTEM_DIRECTORIES, ++ OPTION_ERROR_POISON_SYSTEM_DIRECTORIES, + }; + + /* The initial parser states. */ +--- a/ld/ldmain.c ++++ b/ld/ldmain.c +@@ -270,6 +270,8 @@ main (int argc, char **argv) + command_line.warn_mismatch = TRUE; + command_line.warn_search_mismatch = TRUE; + command_line.check_section_addresses = -1; ++ command_line.poison_system_directories = TRUE; ++ command_line.error_poison_system_directories = FALSE; + + /* We initialize DEMANGLING based on the environment variable + COLLECT_NO_DEMANGLE. The gcc collect2 program will demangle the +--- a/ld/lexsup.c ++++ b/ld/lexsup.c +@@ -549,6 +549,14 @@ static const struct ld_option ld_options + { {"no-print-map-discarded", no_argument, NULL, OPTION_NO_PRINT_MAP_DISCARDED}, + '\0', NULL, N_("Do not show discarded sections in map file output"), + TWO_DASHES }, ++ { {"no-poison-system-directories", no_argument, NULL, ++ OPTION_NO_POISON_SYSTEM_DIRECTORIES}, ++ '\0', NULL, N_("Do not warn for -L options using system directories"), ++ TWO_DASHES }, ++ { {"error-poison-system-directories", no_argument, NULL, ++ OPTION_ERROR_POISON_SYSTEM_DIRECTORIES}, ++ '\0', NULL, N_("Give an error for -L options using system directories"), ++ TWO_DASHES }, + }; + + #define OPTION_COUNT ARRAY_SIZE (ld_options) +@@ -561,6 +569,7 @@ parse_args (unsigned argc, char **argv) + int ingroup = 0; + char *default_dirlist = NULL; + char *shortopts; ++ char *BR_paranoid_env; + struct option *longopts; + struct option *really_longopts; + int last_optind; +@@ -1549,6 +1558,14 @@ parse_args (unsigned argc, char **argv) + } + break; + ++ case OPTION_NO_POISON_SYSTEM_DIRECTORIES: ++ command_line.poison_system_directories = FALSE; ++ break; ++ ++ case OPTION_ERROR_POISON_SYSTEM_DIRECTORIES: ++ command_line.error_poison_system_directories = TRUE; ++ break; ++ + case OPTION_PUSH_STATE: + input_flags.pushed = xmemdup (&input_flags, + sizeof (input_flags), +@@ -1600,6 +1617,10 @@ parse_args (unsigned argc, char **argv) + command_line.soname = NULL; + } + ++ BR_paranoid_env = getenv("BR_COMPILER_PARANOID_UNSAFE_PATH"); ++ if (BR_paranoid_env && strlen(BR_paranoid_env) > 0) ++ command_line.error_poison_system_directories = TRUE; ++ + while (ingroup) + { + einfo (_("%P: missing --end-group; added as last command line option\n")); diff --git a/packages/binutils/2.33.1/chksum b/packages/binutils/2.33.1/chksum new file mode 100644 index 00000000..d1a25caf --- /dev/null +++ b/packages/binutils/2.33.1/chksum @@ -0,0 +1,12 @@ +md5 binutils-2.33.1.tar.xz 9406231b7d9dd93731c2d06cefe8aaf1 +sha1 binutils-2.33.1.tar.xz 06598868f5fa8efc98427dcb790d42c664f1a1a4 +sha256 binutils-2.33.1.tar.xz ab66fc2d1c3ec0359b8e08843c9f33b63e8707efdff5e4cc5c200eae24722cbf +sha512 binutils-2.33.1.tar.xz b7a6767c6c7ca6b5cafa7080e6820b7bb3a53b7148348c438d99905defbdf0d30c9744a484ee01c9441a8153901808513366b15ba9533e20c9673c262ade36ac +md5 binutils-2.33.1.tar.bz2 56a3be5f8f8ee874417a4f19ef3f10c8 +sha1 binutils-2.33.1.tar.bz2 332c7df7e1830c1e756cf4a5542a7952200210c1 +sha256 binutils-2.33.1.tar.bz2 0cb4843da15a65a953907c96bad658283f3c4419d6bcc56bf2789db16306adb2 +sha512 binutils-2.33.1.tar.bz2 bfdbb49a9002dd9bae8ab3c9347e05bd968ad97837c3e71b046eb8721c45a73db01f880dbdf0911bb37a97be37d6cc3b26d0855964a011f593ccbf1d08641c87 +md5 binutils-2.33.1.tar.gz 1a6b16bcc926e312633fcc3fae14ba0a +sha1 binutils-2.33.1.tar.gz 4a4d191dcb03f3f80db2050a702292425a810651 +sha256 binutils-2.33.1.tar.gz 98aba5f673280451a09df3a8d8eddb3aa0c505ac183f1e2f9d00c67aa04c6f7d +sha512 binutils-2.33.1.tar.gz 67f97a480f1e25313bbe826d4bcfaf0cd66a39e3bc724ba137bf81c146c119827b5d07b98789f5cba0bbe296a7c065b68f377e82f5eb2063350594c34079cbc8 diff --git a/packages/expat/2.2.8/version.desc b/packages/binutils/2.33.1/version.desc index e69de29b..e69de29b 100644 --- a/packages/expat/2.2.8/version.desc +++ b/packages/binutils/2.33.1/version.desc diff --git a/packages/binutils/2.34/0000-sh-conf.patch b/packages/binutils/2.34/0000-sh-conf.patch new file mode 100644 index 00000000..ad5e09f2 --- /dev/null +++ b/packages/binutils/2.34/0000-sh-conf.patch @@ -0,0 +1,34 @@ +r10231 | lethal | 2005-05-02 09:58:00 -0400 (Mon, 02 May 2005) | 13 lines + +Likewise, binutils has no idea about any of these new targets either, so we +fix that up too.. now we're able to actually build a real toolchain for +sh2a_nofpu- and other more ineptly named toolchains (and yes, there are more +inept targets than that one, really. Go look, I promise). + +--- + configure | 2 +- + configure.ac | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +--- a/configure ++++ b/configure +@@ -3915,7 +3915,7 @@ + nvptx*-*-*) + noconfigdirs="$noconfigdirs target-libssp target-libstdc++-v3 target-libobjc" + ;; +- sh-*-*) ++ sh*-*-*) + case "${target}" in + sh*-*-elf) + ;; +--- a/configure.ac ++++ b/configure.ac +@@ -1159,7 +1159,7 @@ + nvptx*-*-*) + noconfigdirs="$noconfigdirs target-libssp target-libstdc++-v3 target-libobjc" + ;; +- sh-*-*) ++ sh*-*-*) + case "${target}" in + sh*-*-elf) + ;; diff --git a/packages/binutils/2.34/0001-ld_makefile_patch.patch b/packages/binutils/2.34/0001-ld_makefile_patch.patch new file mode 100644 index 00000000..93aa1c4b --- /dev/null +++ b/packages/binutils/2.34/0001-ld_makefile_patch.patch @@ -0,0 +1,27 @@ +--- + ld/Makefile.am | 2 +- + ld/Makefile.in | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +--- a/ld/Makefile.am ++++ b/ld/Makefile.am +@@ -63,7 +63,7 @@ + # We put the scripts in the directory $(scriptdir)/ldscripts. + # We can't put the scripts in $(datadir) because the SEARCH_DIR + # directives need to be different for native and cross linkers. +-scriptdir = $(tooldir)/lib ++scriptdir = $(libdir) + + EMUL = @EMUL@ + EMULATION_OFILES = @EMULATION_OFILES@ +--- a/ld/Makefile.in ++++ b/ld/Makefile.in +@@ -572,7 +572,7 @@ + # We put the scripts in the directory $(scriptdir)/ldscripts. + # We can't put the scripts in $(datadir) because the SEARCH_DIR + # directives need to be different for native and cross linkers. +-scriptdir = $(tooldir)/lib ++scriptdir = $(libdir) + BASEDIR = $(srcdir)/.. + BFDDIR = $(BASEDIR)/bfd + INCDIR = $(BASEDIR)/include diff --git a/packages/binutils/2.34/0002-check_ldrunpath_length.patch b/packages/binutils/2.34/0002-check_ldrunpath_length.patch new file mode 100644 index 00000000..1a88eaf8 --- /dev/null +++ b/packages/binutils/2.34/0002-check_ldrunpath_length.patch @@ -0,0 +1,24 @@ +--- + ld/ldelf.c | 4 ++++ + 1 file changed, 4 insertions(+) + +--- a/ld/ldelf.c ++++ b/ld/ldelf.c +@@ -1229,6 +1229,8 @@ + && command_line.rpath == NULL) + { + path = (const char *) getenv ("LD_RUN_PATH"); ++ if (path && *path == '\0') ++ path = NULL; + if (path + && ldelf_search_needed (path, &n, force, + is_linux, elfsize)) +@@ -1573,6 +1575,8 @@ + rpath = command_line.rpath; + if (rpath == NULL) + rpath = (const char *) getenv ("LD_RUN_PATH"); ++ if (rpath && *rpath == '\0') ++ rpath = NULL; + + for (abfd = link_info.input_bfds; abfd; abfd = abfd->link.next) + if (bfd_get_flavour (abfd) == bfd_target_elf_flavour) diff --git a/packages/binutils/2.34/0003-MinGW-w64-winpthreads-doesnt-have-pthread_mutexattr_settype.patch b/packages/binutils/2.34/0003-MinGW-w64-winpthreads-doesnt-have-pthread_mutexattr_settype.patch new file mode 100644 index 00000000..99dee969 --- /dev/null +++ b/packages/binutils/2.34/0003-MinGW-w64-winpthreads-doesnt-have-pthread_mutexattr_settype.patch @@ -0,0 +1,15 @@ +--- + gold/gold-threads.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/gold/gold-threads.cc ++++ b/gold/gold-threads.cc +@@ -101,7 +101,7 @@ + int err = pthread_mutexattr_init(&attr); + if (err != 0) + gold_fatal(_("pthead_mutexattr_init failed: %s"), strerror(err)); +-#ifdef PTHREAD_MUTEX_ADAPTIVE_NP ++#if defined(PTHREAD_MUTEX_ADAPTIVE_NP) && !defined(_WIN32) + err = pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_ADAPTIVE_NP); + if (err != 0) + gold_fatal(_("pthread_mutexattr_settype failed: %s"), strerror(err)); diff --git a/packages/binutils/2.34/0004-Dont-link-to-libfl-as-its-unnecessary.patch b/packages/binutils/2.34/0004-Dont-link-to-libfl-as-its-unnecessary.patch new file mode 100644 index 00000000..25557deb --- /dev/null +++ b/packages/binutils/2.34/0004-Dont-link-to-libfl-as-its-unnecessary.patch @@ -0,0 +1,105 @@ +--- + binutils/configure | 3 +++ + binutils/configure.ac | 3 +++ + gas/configure | 3 +++ + gas/configure.ac | 3 +++ + ld/configure | 3 +++ + ld/configure.ac | 3 +++ + 6 files changed, 18 insertions(+) + +--- a/binutils/configure ++++ b/binutils/configure +@@ -12537,6 +12537,7 @@ + done + test -n "$YACC" || YACC="yacc" + ++save_LIBS=$LIBS + for ac_prog in flex lex + do + # Extract the first word of "$ac_prog", so it can be a program name with args. +@@ -12700,6 +12701,8 @@ + if test "$LEX" = :; then + LEX=${am_missing_run}flex + fi ++LIBS=$save_LIBS ++LEXLIB= + + ALL_LINGUAS="bg ca da es fi fr hr id it ja pt ro ru rw sk sr sv tr uk vi zh_CN zh_TW" + # If we haven't got the data from the intl directory, +--- a/binutils/configure.ac ++++ b/binutils/configure.ac +@@ -89,7 +89,10 @@ + fi + + AC_PROG_YACC ++save_LIBS=$LIBS + AM_PROG_LEX ++LIBS=$save_LIBS ++LEXLIB= + + ALL_LINGUAS="bg ca da es fi fr hr id it ja pt ro ru rw sk sr sv tr uk vi zh_CN zh_TW" + ZW_GNU_GETTEXT_SISTER_DIR +--- a/gas/configure ++++ b/gas/configure +@@ -13469,6 +13469,7 @@ + done + test -n "$YACC" || YACC="yacc" + ++save_LIBS=$LIBS + for ac_prog in flex lex + do + # Extract the first word of "$ac_prog", so it can be a program name with args. +@@ -13632,6 +13633,8 @@ + if test "$LEX" = :; then + LEX=${am_missing_run}flex + fi ++LIBS=$save_LIBS ++LEXLIB= + + ALL_LINGUAS="es fi fr id ja ru rw sv tr uk zh_CN" + # If we haven't got the data from the intl directory, +--- a/gas/configure.ac ++++ b/gas/configure.ac +@@ -893,7 +893,10 @@ + AC_DEFINE_UNQUOTED(TARGET_OS, "${target_os}", [Target OS.]) + + AC_PROG_YACC ++save_LIBS=$LIBS + AM_PROG_LEX ++LIBS=$save_LIBS ++LEXLIB= + + ALL_LINGUAS="es fi fr id ja ru rw sv tr uk zh_CN" + ZW_GNU_GETTEXT_SISTER_DIR +--- a/ld/configure ++++ b/ld/configure +@@ -16542,6 +16542,7 @@ + done + test -n "$YACC" || YACC="yacc" + ++save_LIBS=$LIBS + for ac_prog in flex lex + do + # Extract the first word of "$ac_prog", so it can be a program name with args. +@@ -16705,6 +16706,8 @@ + if test "$LEX" = :; then + LEX=${am_missing_run}flex + fi ++LIBS=$save_LIBS ++LEXLIB= + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 +--- a/ld/configure.ac ++++ b/ld/configure.ac +@@ -243,7 +243,10 @@ + AC_EXEEXT + + AC_PROG_YACC ++save_LIBS=$LIBS + AM_PROG_LEX ++LIBS=$save_LIBS ++LEXLIB= + + AM_MAINTAINER_MODE + AM_CONDITIONAL(GENINSRC_NEVER, false) diff --git a/packages/binutils/2.34/0005-Darwin-gold-binary-cc-include-string-not-cstring.patch b/packages/binutils/2.34/0005-Darwin-gold-binary-cc-include-string-not-cstring.patch new file mode 100644 index 00000000..fbc40418 --- /dev/null +++ b/packages/binutils/2.34/0005-Darwin-gold-binary-cc-include-string-not-cstring.patch @@ -0,0 +1,15 @@ +--- + gold/binary.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/gold/binary.cc ++++ b/gold/binary.cc +@@ -23,7 +23,7 @@ + #include "gold.h" + + #include <cerrno> +-#include <cstring> ++#include <string> + + #include "elfcpp.h" + #include "stringpool.h" diff --git a/packages/binutils/2.34/0006-Darwin-Two-fixes-from-Android-NDK-PTHREAD_ONCE_INIT-wcsncasecmp.patch b/packages/binutils/2.34/0006-Darwin-Two-fixes-from-Android-NDK-PTHREAD_ONCE_INIT-wcsncasecmp.patch new file mode 100644 index 00000000..10961a6d --- /dev/null +++ b/packages/binutils/2.34/0006-Darwin-Two-fixes-from-Android-NDK-PTHREAD_ONCE_INIT-wcsncasecmp.patch @@ -0,0 +1,70 @@ +From c39479f4ab4d372b518957871e1f205a03e7c3d6 Mon Sep 17 00:00:00 2001 +From: Andrew Hsieh <andrewhsieh@google.com> +Date: Wed, 18 Mar 2015 10:57:24 +0800 +Subject: [PATCH] Fix darwin build + +1. In Drawin PTHREAD_ONCE_INIT is {0x30B1BCBA, {0}} and the GCC < 4.4 + doesn't support ended initializer list +2. wcsncasecmp doesn't exist in MacSDK10.6.x + +Change-Id: I69204a72f853f5263dffedc448379d75ed4eca2e +--- + bfd/peXXigen.c | 22 ++++++++++++++++++++++ + gold/gold-threads.cc | 15 ++++++++++++--- + 2 files changed, 34 insertions(+), 3 deletions(-) + +--- a/bfd/peXXigen.c ++++ b/bfd/peXXigen.c +@@ -3618,6 +3618,28 @@ + } + #endif /* HAVE_WCHAR_H and not Cygwin/Mingw */ + ++#if defined __APPLE__ && __DARWIN_C_LEVEL < 200809L ++/* wcsncasecmp isn't always defined in Mac SDK */ ++static int ++wcsncasecmp(const wchar_t *s1, const wchar_t *s2, size_t n) ++{ ++ wchar_t c1, c2; ++ ++ if (n == 0) ++ return (0); ++ for (; *s1; s1++, s2++) ++ { ++ c1 = towlower(*s1); ++ c2 = towlower(*s2); ++ if (c1 != c2) ++ return ((int)c1 - c2); ++ if (--n == 0) ++ return (0); ++ } ++ return (-*s2); ++} ++#endif ++ + /* Perform a comparison of two entries. */ + static signed int + rsrc_cmp (bfd_boolean is_name, rsrc_entry * a, rsrc_entry * b) +--- a/gold/gold-threads.cc ++++ b/gold/gold-threads.cc +@@ -284,9 +284,18 @@ + class Once_initialize + { + public: +- Once_initialize() +- : once_(PTHREAD_ONCE_INIT) +- { } ++ Once_initialize() ++#if !defined(__APPLE__) ++ : once_(PTHREAD_ONCE_INIT) ++ { } ++#else ++// In Drawin PTHREAD_ONCE_INIT is {0x30B1BCBA, {0}} and the GCC < 4.4 doesn't support ++// extended initializer list as above */ ++ { ++ pthread_once_t once_2 = PTHREAD_ONCE_INIT; ++ once_ = once_2; ++ } ++#endif + + // Return a pointer to the pthread_once_t variable. + pthread_once_t* diff --git a/packages/binutils/2.34/0007-sysroot.patch b/packages/binutils/2.34/0007-sysroot.patch new file mode 100644 index 00000000..3ddf687a --- /dev/null +++ b/packages/binutils/2.34/0007-sysroot.patch @@ -0,0 +1,41 @@ +Signed-off-by: Sven Rebhan <odinshorse@googlemail.com> + +Always try to prepend the sysroot prefix to absolute filenames first. + +http://bugs.gentoo.org/275666 +http://sourceware.org/bugzilla/show_bug.cgi?id=10340 + +--- + ld/ldfile.c | 11 +++++++++-- + 1 file changed, 9 insertions(+), 2 deletions(-) + +--- a/ld/ldfile.c ++++ b/ld/ldfile.c +@@ -339,18 +339,25 @@ + directory first. */ + if (!entry->flags.maybe_archive) + { +- if (entry->flags.sysrooted && IS_ABSOLUTE_PATH (entry->filename)) ++ /* For absolute pathnames, try to always open the file in the ++ sysroot first. If this fails, try to open the file at the ++ given location. */ ++ entry->flags.sysrooted = is_sysrooted_pathname (entry->filename); ++ if (!entry->flags.sysrooted && IS_ABSOLUTE_PATH (entry->filename) ++ && ld_sysroot) + { + char *name = concat (ld_sysroot, entry->filename, + (const char *) NULL); + if (ldfile_try_open_bfd (name, entry)) + { + entry->filename = name; ++ entry->flags.sysrooted = TRUE; + return TRUE; + } + free (name); + } +- else if (ldfile_try_open_bfd (entry->filename, entry)) ++ ++ if (ldfile_try_open_bfd (entry->filename, entry)) + return TRUE; + + if (IS_ABSOLUTE_PATH (entry->filename)) diff --git a/packages/binutils/2.34/0008-poison-system-directories.patch b/packages/binutils/2.34/0008-poison-system-directories.patch new file mode 100644 index 00000000..aa585bff --- /dev/null +++ b/packages/binutils/2.34/0008-poison-system-directories.patch @@ -0,0 +1,279 @@ +Patch adapted to binutils 2.23.2 and extended to use +BR_COMPILER_PARANOID_UNSAFE_PATH by Thomas Petazzoni. + +[Gustavo: adapt to binutils 2.25] +Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> +Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> + +Upstream-Status: Inappropriate [distribution: codesourcery] + +Patch originally created by Mark Hatle, forward-ported to +binutils 2.21 by Scott Garman. + +purpose: warn for uses of system directories when cross linking + +Code Merged from Sourcery G++ binutils 2.19 - 4.4-277 + +2008-07-02 Joseph Myers <joseph@codesourcery.com> + + ld/ + * ld.h (args_type): Add error_poison_system_directories. + * ld.texinfo (--error-poison-system-directories): Document. + * ldfile.c (ldfile_add_library_path): Check + command_line.error_poison_system_directories. + * ldmain.c (main): Initialize + command_line.error_poison_system_directories. + * lexsup.c (enum option_values): Add + OPTION_ERROR_POISON_SYSTEM_DIRECTORIES. + (ld_options): Add --error-poison-system-directories. + (parse_args): Handle new option. + +2007-06-13 Joseph Myers <joseph@codesourcery.com> + + ld/ + * config.in: Regenerate. + * ld.h (args_type): Add poison_system_directories. + * ld.texinfo (--no-poison-system-directories): Document. + * ldfile.c (ldfile_add_library_path): Check + command_line.poison_system_directories. + * ldmain.c (main): Initialize + command_line.poison_system_directories. + * lexsup.c (enum option_values): Add + OPTION_NO_POISON_SYSTEM_DIRECTORIES. + (ld_options): Add --no-poison-system-directories. + (parse_args): Handle new option. + +2007-04-20 Joseph Myers <joseph@codesourcery.com> + + Merge from Sourcery G++ binutils 2.17: + + 2007-03-20 Joseph Myers <joseph@codesourcery.com> + Based on patch by Mark Hatle <mark.hatle@windriver.com>. + ld/ + * configure.ac (--enable-poison-system-directories): New option. + * configure, config.in: Regenerate. + * ldfile.c (ldfile_add_library_path): If + ENABLE_POISON_SYSTEM_DIRECTORIES defined, warn for use of /lib, + /usr/lib, /usr/local/lib or /usr/X11R6/lib. + +Signed-off-by: Mark Hatle <mark.hatle@windriver.com> +Signed-off-by: Scott Garman <scott.a.garman@intel.com> + +--- + ld/config.in | 3 +++ + ld/configure | 14 ++++++++++++++ + ld/configure.ac | 10 ++++++++++ + ld/ld.h | 8 ++++++++ + ld/ld.texi | 12 ++++++++++++ + ld/ldfile.c | 17 +++++++++++++++++ + ld/ldlex.h | 2 ++ + ld/ldmain.c | 2 ++ + ld/lexsup.c | 21 +++++++++++++++++++++ + 9 files changed, 89 insertions(+) + +--- a/ld/config.in ++++ b/ld/config.in +@@ -31,6 +31,9 @@ + language is requested. */ + #undef ENABLE_NLS + ++/* Define to warn for use of native system library directories */ ++#undef ENABLE_POISON_SYSTEM_DIRECTORIES ++ + /* Additional extension a shared object might have. */ + #undef EXTRA_SHLIB_EXTENSION + +--- a/ld/configure ++++ b/ld/configure +@@ -826,6 +826,7 @@ + enable_targets + enable_64_bit_bfd + with_sysroot ++enable_poison_system_directories + enable_gold + enable_got + enable_compressed_debug_sections +@@ -1491,6 +1492,8 @@ + --disable-largefile omit support for large files + --enable-targets alternative target configurations + --enable-64-bit-bfd 64-bit support (on hosts with narrower word sizes) ++ --enable-poison-system-directories ++ warn for use of native system library directories + --enable-gold[=ARG] build gold [ARG={default,yes,no}] + --enable-got=<type> GOT handling scheme (target, single, negative, + multigot) +@@ -15809,7 +15812,18 @@ + fi + + ++# Check whether --enable-poison-system-directories was given. ++if test "${enable_poison_system_directories+set}" = set; then : ++ enableval=$enable_poison_system_directories; ++else ++ enable_poison_system_directories=no ++fi ++ ++if test "x${enable_poison_system_directories}" = "xyes"; then + ++$as_echo "#define ENABLE_POISON_SYSTEM_DIRECTORIES 1" >>confdefs.h ++ ++fi + + # Check whether --enable-got was given. + if test "${enable_got+set}" = set; then : +--- a/ld/configure.ac ++++ b/ld/configure.ac +@@ -94,6 +94,16 @@ + AC_SUBST(TARGET_SYSTEM_ROOT) + AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE) + ++AC_ARG_ENABLE([poison-system-directories], ++ AS_HELP_STRING([--enable-poison-system-directories], ++ [warn for use of native system library directories]),, ++ [enable_poison_system_directories=no]) ++if test "x${enable_poison_system_directories}" = "xyes"; then ++ AC_DEFINE([ENABLE_POISON_SYSTEM_DIRECTORIES], ++ [1], ++ [Define to warn for use of native system library directories]) ++fi ++ + dnl Use --enable-gold to decide if this linker should be the default. + dnl "install_as_default" is set to false if gold is the default linker. + dnl "installed_linker" is the installed BFD linker name. +--- a/ld/ld.h ++++ b/ld/ld.h +@@ -161,6 +161,14 @@ + /* If set, display the target memory usage (per memory region). */ + bfd_boolean print_memory_usage; + ++ /* If TRUE (the default) warn for uses of system directories when ++ cross linking. */ ++ bfd_boolean poison_system_directories; ++ ++ /* If TRUE (default FALSE) give an error for uses of system ++ directories when cross linking instead of a warning. */ ++ bfd_boolean error_poison_system_directories; ++ + /* Should we force section groups to be resolved? Controlled with + --force-group-allocation on the command line or FORCE_GROUP_ALLOCATION + in the linker script. */ +--- a/ld/ld.texi ++++ b/ld/ld.texi +@@ -2551,6 +2551,18 @@ + + Passing @code{none} for @var{style} disables the setting from any + @code{--build-id} options earlier on the command line. ++ ++@kindex --no-poison-system-directories ++@item --no-poison-system-directories ++Do not warn for @option{-L} options using system directories such as ++@file{/usr/lib} when cross linking. This option is intended for use ++in chroot environments when such directories contain the correct ++libraries for the target system rather than the host. ++ ++@kindex --error-poison-system-directories ++@item --error-poison-system-directories ++Give an error instead of a warning for @option{-L} options using ++system directories when cross linking. + @end table + + @c man end +--- a/ld/ldfile.c ++++ b/ld/ldfile.c +@@ -117,6 +117,23 @@ + new_dirs->name = concat (ld_sysroot, name + strlen ("$SYSROOT"), (const char *) NULL); + else + new_dirs->name = xstrdup (name); ++ ++#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES ++ if (command_line.poison_system_directories ++ && ((!strncmp (name, "/lib", 4)) ++ || (!strncmp (name, "/usr/lib", 8)) ++ || (!strncmp (name, "/usr/local/lib", 14)) ++ || (!strncmp (name, "/usr/X11R6/lib", 14)))) ++ { ++ if (command_line.error_poison_system_directories) ++ einfo (_("%X%P: error: library search path \"%s\" is unsafe for " ++ "cross-compilation\n"), name); ++ else ++ einfo (_("%P: warning: library search path \"%s\" is unsafe for " ++ "cross-compilation\n"), name); ++ } ++#endif ++ + } + + /* Try to open a BFD for a lang_input_statement. */ +--- a/ld/ldlex.h ++++ b/ld/ldlex.h +@@ -150,6 +150,8 @@ + OPTION_FORCE_GROUP_ALLOCATION, + OPTION_PRINT_MAP_DISCARDED, + OPTION_NO_PRINT_MAP_DISCARDED, ++ OPTION_NO_POISON_SYSTEM_DIRECTORIES, ++ OPTION_ERROR_POISON_SYSTEM_DIRECTORIES, + }; + + /* The initial parser states. */ +--- a/ld/ldmain.c ++++ b/ld/ldmain.c +@@ -273,6 +273,8 @@ + command_line.warn_mismatch = TRUE; + command_line.warn_search_mismatch = TRUE; + command_line.check_section_addresses = -1; ++ command_line.poison_system_directories = TRUE; ++ command_line.error_poison_system_directories = FALSE; + + /* We initialize DEMANGLING based on the environment variable + COLLECT_NO_DEMANGLE. The gcc collect2 program will demangle the +--- a/ld/lexsup.c ++++ b/ld/lexsup.c +@@ -550,6 +550,14 @@ + { {"no-print-map-discarded", no_argument, NULL, OPTION_NO_PRINT_MAP_DISCARDED}, + '\0', NULL, N_("Do not show discarded sections in map file output"), + TWO_DASHES }, ++ { {"no-poison-system-directories", no_argument, NULL, ++ OPTION_NO_POISON_SYSTEM_DIRECTORIES}, ++ '\0', NULL, N_("Do not warn for -L options using system directories"), ++ TWO_DASHES }, ++ { {"error-poison-system-directories", no_argument, NULL, ++ OPTION_ERROR_POISON_SYSTEM_DIRECTORIES}, ++ '\0', NULL, N_("Give an error for -L options using system directories"), ++ TWO_DASHES }, + }; + + #define OPTION_COUNT ARRAY_SIZE (ld_options) +@@ -562,6 +570,7 @@ + int ingroup = 0; + char *default_dirlist = NULL; + char *shortopts; ++ char *BR_paranoid_env; + struct option *longopts; + struct option *really_longopts; + int last_optind; +@@ -1562,6 +1571,14 @@ + } + break; + ++ case OPTION_NO_POISON_SYSTEM_DIRECTORIES: ++ command_line.poison_system_directories = FALSE; ++ break; ++ ++ case OPTION_ERROR_POISON_SYSTEM_DIRECTORIES: ++ command_line.error_poison_system_directories = TRUE; ++ break; ++ + case OPTION_PUSH_STATE: + input_flags.pushed = xmemdup (&input_flags, + sizeof (input_flags), +@@ -1613,6 +1630,10 @@ + command_line.soname = NULL; + } + ++ BR_paranoid_env = getenv("BR_COMPILER_PARANOID_UNSAFE_PATH"); ++ if (BR_paranoid_env && strlen(BR_paranoid_env) > 0) ++ command_line.error_poison_system_directories = TRUE; ++ + while (ingroup) + { + einfo (_("%P: missing --end-group; added as last command line option\n")); diff --git a/packages/binutils/2.34/chksum b/packages/binutils/2.34/chksum new file mode 100644 index 00000000..6454a139 --- /dev/null +++ b/packages/binutils/2.34/chksum @@ -0,0 +1,12 @@ +md5 binutils-2.34.tar.xz 664ec3a2df7805ed3464639aaae332d6 +sha1 binutils-2.34.tar.xz 78f7ba4c0775ae75f5b906dc9af03d70b39b0785 +sha256 binutils-2.34.tar.xz f00b0e8803dc9bab1e2165bd568528135be734df3fabf8d0161828cd56028952 +sha512 binutils-2.34.tar.xz 2c7976939dcf5e8c5b7374cccd39bfe803b1bec73c6abfa0eb17c24e1942574c6bdb874c66a092a82adc443182eacd8a5a8001c19a76101f0c7ba40c27de0bbd +md5 binutils-2.34.tar.bz2 b0afc4d29db31ee6fdf3ebc34e85e482 +sha1 binutils-2.34.tar.bz2 361566c9ab5e90bd847d06f46fb9f18ec6c3ecf0 +sha256 binutils-2.34.tar.bz2 89f010078b6cf69c23c27897d686055ab89b198dddf819efb0a4f2c38a0b36e6 +sha512 binutils-2.34.tar.bz2 f47e7304e102c7bbc97958a08093e27796b9051d1567ce4fbb723d39ef3e29efa325ee14a1bdcc462a925a7f9bbbc9aee28294c6dc23850f371030f3835a8067 +md5 binutils-2.34.tar.gz 079f3414a4c2b8f58e05acfd03b57355 +sha1 binutils-2.34.tar.gz e3bb308fc718b1a6117e4fe6c43f05f5cf6f7f05 +sha256 binutils-2.34.tar.gz 53537d334820be13eeb8acb326d01c7c81418772d626715c7ae927a7d401cab3 +sha512 binutils-2.34.tar.gz bacd76767e62ca81fb1ce00a4d0563a379401f6fbe679489344c89baf62399fa36495242d9284595738437416426ce7a27689490fbcfdb7daef89f2d0ff4827b diff --git a/packages/gcc/7.4.0/version.desc b/packages/binutils/2.34/version.desc index e69de29b..e69de29b 100644 --- a/packages/gcc/7.4.0/version.desc +++ b/packages/binutils/2.34/version.desc diff --git a/packages/bison/3.5/chksum b/packages/bison/3.5/chksum new file mode 100644 index 00000000..7941061f --- /dev/null +++ b/packages/bison/3.5/chksum @@ -0,0 +1,8 @@ +md5 bison-3.5.tar.xz c0230be066069f33c8445766833f3205 +sha1 bison-3.5.tar.xz 39f962869f16ee2dafba7cec194b67342af3544f +sha256 bison-3.5.tar.xz 55e4a023b1b4ad19095a5f8279f0dc048fa29f970759cea83224a6d5e7a3a641 +sha512 bison-3.5.tar.xz 309ba77cfbf5d5ca697f522ac18ca9b55a1ec4e690b87220c97ffb1137b8bd8b22aa14c111166f0f4bf001e88f4bcbfd0583bc09810c246f0dc60fd6e8478950 +md5 bison-3.5.tar.gz 6c067f97266c817b339f0e989499c8e4 +sha1 bison-3.5.tar.gz 15d1ed914cdf72b3f63024bfacc10799d6044e30 +sha256 bison-3.5.tar.gz 0b36200b9868ee289b78cefd1199496b02b76899bbb7e84ff1c0733a991313d1 +sha512 bison-3.5.tar.gz 9da97b4f2cd2d0520def1264c15e26e02bd8dfae521ea1db86bf3ce92074e42c48aed09b57ad66ef9be4568335acc908071edfa34b8b5afe9acf17a50eb35567 diff --git a/packages/gcc/8.3.0/version.desc b/packages/bison/3.5/version.desc index e69de29b..e69de29b 100644 --- a/packages/gcc/8.3.0/version.desc +++ b/packages/bison/3.5/version.desc diff --git a/packages/elf2flt/git-453398f9/0000-support-binutils-2.34.patch b/packages/elf2flt/git-453398f9/0000-support-binutils-2.34.patch new file mode 100644 index 00000000..3a4726d8 --- /dev/null +++ b/packages/elf2flt/git-453398f9/0000-support-binutils-2.34.patch @@ -0,0 +1,447 @@ +From fa0e77afba7d8d4107af5f8ddc8d38d23c3dd19d Mon Sep 17 00:00:00 2001 +From: Romain Naour <romain.naour@smile.fr> +Date: Wed, 5 Feb 2020 10:31:32 +0100 +Subject: [PATCH] elf2flt: handle binutils >= 2.34 + +The latest Binutils release (2.34) is not compatible with elf2flt due +to a change in bfd_section_* macros. The issue has been reported to +the Binutils mailing list but Alan Modra recommend to bundle libbfd +library sources into each projects using it [1]. That's because the +API is not stable over the time without any backward compatibility +guaranties. + +On the other hand, the elf2flt tools needs to support modified +version of binutils for specific arch/target [2]. + +Add two tests in the configure script to detect this API change +in order to support binutils < 2.34 and binutils >= 2.34. + +[1] https://sourceware.org/ml/binutils/2020-02/msg00044.html +[2] https://github.com/uclinux-dev/elf2flt/issues/14 + +Signed-off-by: Romain Naour <romain.naour@smile.fr> +--- + configure.ac | 25 ++++++++++++++++ + elf2flt.c | 81 +++++++++++++++++++++++++++++----------------------- + 2 files changed, 71 insertions(+), 35 deletions(-) + +[Added: regenerated configure] +diff --git a/configure.ac b/configure.ac +index d6b4119..caae869 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -212,6 +212,31 @@ AC_CHECK_FUNCS([ \ + strsignal \ + ]) + ++dnl Various bfd section macros and functions like bfd_section_size() has been ++dnl modified starting binutils >= 2.34. ++dnl Check if the prototype is "bfd_section_size (sec)" or "bfd_section_size(bfd, ptr)" ++if test "$binutils_build_dir" != "NONE"; then ++ CFLAGS="-I$binutils_include_dir -I$bfd_include_dir $CFLAGS" ++fi ++ ++AC_TRY_COMPILE([#include <bfd.h>], ++ [const asection *sec; bfd_section_size(sec);], ++ bfd_section_size_macro_has_one_arg=yes, ++ bfd_section_size_macro_has_one_arg=no) ++if test "$bfd_section_size_macro_has_one_arg" = "yes" ; then ++ AC_DEFINE(HAVE_BFD_SECTION_SIZE_MACRO_HAS_ONE_ARG, 1, ++ [define to 1 for binutils >= 2.34]) ++fi ++ ++AC_TRY_COMPILE([#include <bfd.h>], ++ [const asection *sec; bfd_section_vma(sec);], ++ bfd_section_vma_macro_has_one_arg=yes, ++ bfd_section_vma_macro_has_one_arg=no) ++if test "$bfd_section_vma_macro_has_one_arg" = "yes" ; then ++ AC_DEFINE(HAVE_BFD_SECTION_VMA_MACRO_HAS_ONE_ARG, 1, ++ [define to 1 for binutils >= 2.34]) ++fi ++ + if test "$GCC" = yes ; then + CFLAGS="-Wall $CFLAGS" + if test "$werror" = 1 ; then +diff --git a/elf2flt.c b/elf2flt.c +index b7c4a49..8dbd9b2 100644 +--- a/elf2flt.c ++++ b/elf2flt.c +@@ -149,6 +149,17 @@ const char *elf2flt_progname; + #define O_BINARY 0 + #endif + ++#if defined(HAVE_BFD_SECTION_SIZE_MACRO_HAS_ONE_ARG) ++#define elf2flt_bfd_section_size(abs_bfd, s) bfd_section_size(s) ++#else ++#define elf2flt_bfd_section_size(abs_bfd, s) bfd_section_size(abs_bfd, s) ++#endif ++ ++#if defined(HAVE_BFD_SECTION_VMA_MACRO_HAS_ONE_ARG) ++#define elf2flt_bfd_section_vma(abs_bfd, s) bfd_section_vma(s) ++#else ++#define elf2flt_bfd_section_vma(abs_bfd, s) bfd_section_vma(abs_bfd, s) ++#endif + + /* Extra output when running. */ + static int verbose = 0; +@@ -323,9 +334,9 @@ compare_relocs (const void *pa, const void *pb) + else if (!rb->sym_ptr_ptr || !*rb->sym_ptr_ptr) + return 1; + +- a_vma = bfd_section_vma(compare_relocs_bfd, ++ a_vma = elf2flt_bfd_section_vma(compare_relocs_bfd, + (*(ra->sym_ptr_ptr))->section); +- b_vma = bfd_section_vma(compare_relocs_bfd, ++ b_vma = elf2flt_bfd_section_vma(compare_relocs_bfd, + (*(rb->sym_ptr_ptr))->section); + va = (*(ra->sym_ptr_ptr))->value + a_vma + ra->addend; + vb = (*(rb->sym_ptr_ptr))->value + b_vma + rb->addend; +@@ -403,7 +414,7 @@ output_relocs ( + } + + for (a = abs_bfd->sections; (a != (asection *) NULL); a = a->next) { +- section_vma = bfd_section_vma(abs_bfd, a); ++ section_vma = elf2flt_bfd_section_vma(abs_bfd, a); + + if (verbose) + printf("SECTION: %s [%p]: flags=0x%x vma=0x%"PRIx32"\n", +@@ -442,7 +453,7 @@ output_relocs ( + continue; + if (verbose) + printf(" RELOCS: %s [%p]: flags=0x%x vma=0x%"BFD_VMA_FMT"x\n", +- r->name, r, r->flags, bfd_section_vma(abs_bfd, r)); ++ r->name, r, r->flags, elf2flt_bfd_section_vma(abs_bfd, r)); + if ((r->flags & SEC_RELOC) == 0) + continue; + relsize = bfd_get_reloc_upper_bound(rel_bfd, r); +@@ -674,7 +685,7 @@ output_relocs ( + case R_BFIN_RIMM16: + case R_BFIN_LUIMM16: + case R_BFIN_HUIMM16: +- sym_vma = bfd_section_vma(abs_bfd, sym_section); ++ sym_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section); + sym_addr += sym_vma + q->addend; + + if (weak_und_symbol(sym_section->name, (*(q->sym_ptr_ptr)))) +@@ -707,7 +718,7 @@ output_relocs ( + break; + + case R_BFIN_BYTE4_DATA: +- sym_vma = bfd_section_vma(abs_bfd, sym_section); ++ sym_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section); + sym_addr += sym_vma + q->addend; + + if (weak_und_symbol (sym_section->name, (*(q->sym_ptr_ptr)))) +@@ -851,7 +862,7 @@ output_relocs ( + #if defined(TARGET_m68k) + case R_68K_32: + relocation_needed = 1; +- sym_vma = bfd_section_vma(abs_bfd, sym_section); ++ sym_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section); + sym_addr += sym_vma + q->addend; + break; + case R_68K_PC16: +@@ -876,7 +887,7 @@ output_relocs ( + q->address, sym_addr, + (*p)->howto->rightshift, + *(uint32_t *)r_mem); +- sym_vma = bfd_section_vma(abs_bfd, sym_section); ++ sym_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section); + sym_addr += sym_vma + q->addend; + break; + case R_ARM_GOT32: +@@ -904,7 +915,7 @@ output_relocs ( + #ifdef TARGET_v850 + case R_V850_ABS32: + relocation_needed = 1; +- sym_vma = bfd_section_vma(abs_bfd, sym_section); ++ sym_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section); + sym_addr += sym_vma + q->addend; + break; + case R_V850_ZDA_16_16_OFFSET: +@@ -926,7 +937,7 @@ output_relocs ( + sym_addr = (*(q->sym_ptr_ptr))->value; + q->address -= 1; + r_mem -= 1; /* tracks q->address */ +- sym_vma = bfd_section_vma(abs_bfd, sym_section); ++ sym_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section); + sym_addr += sym_vma + q->addend; + sym_addr |= (*(unsigned char *)r_mem<<24); + break; +@@ -939,7 +950,7 @@ output_relocs ( + /* Absolute symbol done not relocation */ + relocation_needed = !bfd_is_abs_section(sym_section); + sym_addr = (*(q->sym_ptr_ptr))->value; +- sym_vma = bfd_section_vma(abs_bfd, sym_section); ++ sym_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section); + sym_addr += sym_vma + q->addend; + break; + case R_H8_DIR32: +@@ -952,7 +963,7 @@ output_relocs ( + } + relocation_needed = 1; + sym_addr = (*(q->sym_ptr_ptr))->value; +- sym_vma = bfd_section_vma(abs_bfd, sym_section); ++ sym_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section); + sym_addr += sym_vma + q->addend; + break; + case R_H8_PCREL16: +@@ -985,7 +996,7 @@ output_relocs ( + pflags=0x80000000; + + /* work out the relocation */ +- sym_vma = bfd_section_vma(abs_bfd, sym_section); ++ sym_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section); + sym_addr += sym_vma + q->addend; + /* Write relocated pointer back */ + p[2] = (sym_addr >> 24) & 0xff; +@@ -1001,7 +1012,7 @@ output_relocs ( + relocation_needed = 0; + pflags = 0; + sprintf(&addstr[0], "+0x%ld", sym_addr - (*(q->sym_ptr_ptr))->value - +- bfd_section_vma(abs_bfd, sym_section)); ++ elf2flt_bfd_section_vma(abs_bfd, sym_section)); + if (verbose) + printf(" RELOC[%d]: offset=0x%"BFD_VMA_FMT"x symbol=%s%s " + "section=%s size=%d " +@@ -1017,7 +1028,7 @@ output_relocs ( + continue; + } + case R_MICROBLAZE_32: +- sym_vma = bfd_section_vma(abs_bfd, sym_section); ++ sym_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section); + sym_addr += sym_vma + q->addend; + relocation_needed = 1; + break; +@@ -1042,7 +1053,7 @@ output_relocs ( + case R_NIOS2_BFD_RELOC_32: + relocation_needed = 1; + pflags = (FLAT_NIOS2_R_32 << 28); +- sym_vma = bfd_section_vma(abs_bfd, sym_section); ++ sym_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section); + sym_addr += sym_vma + q->addend; + /* modify target, in target order */ + *(unsigned long *)r_mem = htoniosl(sym_addr); +@@ -1052,7 +1063,7 @@ output_relocs ( + unsigned long exist_val; + relocation_needed = 1; + pflags = (FLAT_NIOS2_R_CALL26 << 28); +- sym_vma = bfd_section_vma(abs_bfd, sym_section); ++ sym_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section); + sym_addr += sym_vma + q->addend; + + /* modify target, in target order */ +@@ -1083,7 +1094,7 @@ output_relocs ( + ? FLAT_NIOS2_R_HIADJ_LO : FLAT_NIOS2_R_HI_LO; + pflags <<= 28; + +- sym_vma = bfd_section_vma(abs_bfd, sym_section); ++ sym_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section); + sym_addr += sym_vma + q->addend; + + /* modify high 16 bits, in target order */ +@@ -1116,7 +1127,7 @@ output_relocs ( + goto NIOS2_RELOC_ERR; + } + /* _gp holds a absolute value, otherwise the ld cannot generate correct code */ +- sym_vma = bfd_section_vma(abs_bfd, sym_section); ++ sym_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section); + //printf("sym=%x, %d, _gp=%x, %d\n", sym_addr+sym_vma, sym_addr+sym_vma, gp, gp); + sym_addr += sym_vma + q->addend; + sym_addr -= gp; +@@ -1197,7 +1208,7 @@ output_relocs ( + case R_SPARC_32: + case R_SPARC_UA32: + relocation_needed = 1; +- sym_vma = bfd_section_vma(abs_bfd, sym_section); ++ sym_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section); + sym_addr += sym_vma + q->addend; + break; + case R_SPARC_PC22: +@@ -1216,7 +1227,7 @@ output_relocs ( + case R_SPARC_HI22: + relocation_needed = 1; + pflags = 0x80000000; +- sym_vma = bfd_section_vma(abs_bfd, sym_section); ++ sym_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section); + sym_addr += sym_vma + q->addend; + sym_addr |= ( + htonl(*(uint32_t *)r_mem) +@@ -1226,7 +1237,7 @@ output_relocs ( + case R_SPARC_LO10: + relocation_needed = 1; + pflags = 0x40000000; +- sym_vma = bfd_section_vma(abs_bfd, sym_section); ++ sym_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section); + sym_addr += sym_vma + q->addend; + sym_addr &= 0x000003ff; + sym_addr |= ( +@@ -1240,7 +1251,7 @@ output_relocs ( + #ifdef TARGET_sh + case R_SH_DIR32: + relocation_needed = 1; +- sym_vma = bfd_section_vma(abs_bfd, sym_section); ++ sym_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section); + sym_addr += sym_vma + q->addend; + break; + case R_SH_REL32: +@@ -1272,7 +1283,7 @@ output_relocs ( + case R_E1_CONST31: + relocation_needed = 1; + DBG_E1("Handling Reloc <CONST31>\n"); +- sec_vma = bfd_section_vma(abs_bfd, sym_section); ++ sec_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section); + DBG_E1("sec_vma : [0x%x], sym_addr : [0x%x], q->address : [0x%x]\n", + sec_vma, sym_addr, q->address); + sym_addr = sec_vma + sym_addr; +@@ -1287,7 +1298,7 @@ output_relocs ( + relocation_needed = 0; + DBG_E1("Handling Reloc <CONST31_PCREL>\n"); + DBG_E1("DONT RELOCATE AT LOADING\n"); +- sec_vma = bfd_section_vma(abs_bfd, sym_section); ++ sec_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section); + DBG_E1("sec_vma : [0x%x], sym_addr : [0x%x], q->address : [0x%x]\n", + sec_vma, sym_addr, q->address); + sym_addr = sec_vma + sym_addr; +@@ -1314,7 +1325,7 @@ output_relocs ( + relocation_needed = 0; + DBG_E1("Handling Reloc <DIS29W_PCREL>\n"); + DBG_E1("DONT RELOCATE AT LOADING\n"); +- sec_vma = bfd_section_vma(abs_bfd, sym_section); ++ sec_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section); + DBG_E1("sec_vma : [0x%x], sym_addr : [0x%x], q->address : [0x%x]\n", + sec_vma, sym_addr, q->address); + sym_addr = sec_vma + sym_addr; +@@ -1347,7 +1358,7 @@ output_relocs ( + DBG_E1("Handling Reloc <DIS29B>\n"); + DIS29_RELOCATION: + relocation_needed = 1; +- sec_vma = bfd_section_vma(abs_bfd, sym_section); ++ sec_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section); + DBG_E1("sec_vma : [0x%x], sym_addr : [0x%08x]\n", + sec_vma, sym_addr); + sym_addr = sec_vma + sym_addr; +@@ -1364,7 +1375,7 @@ output_relocs ( + relocation_needed = 0; + DBG_E1("Handling Reloc <IMM32_PCREL>\n"); + DBG_E1("DONT RELOCATE AT LOADING\n"); +- sec_vma = bfd_section_vma(abs_bfd, sym_section); ++ sec_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section); + DBG_E1("sec_vma : [0x%x], sym_addr : [0x%x]\n", + sec_vma, sym_addr); + sym_addr = sec_vma + sym_addr; +@@ -1390,7 +1401,7 @@ output_relocs ( + case R_E1_IMM32: + relocation_needed = 1; + DBG_E1("Handling Reloc <IMM32>\n"); +- sec_vma = bfd_section_vma(abs_bfd, sym_section); ++ sec_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section); + DBG_E1("sec_vma : [0x%x], sym_addr : [0x%x]\n", + sec_vma, sym_addr); + sym_addr = sec_vma + sym_addr; +@@ -1406,7 +1417,7 @@ output_relocs ( + case R_E1_WORD: + relocation_needed = 1; + DBG_E1("Handling Reloc <WORD>\n"); +- sec_vma = bfd_section_vma(abs_bfd, sym_section); ++ sec_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section); + DBG_E1("sec_vma : [0x%x], sym_addr : [0x%x]\n", + sec_vma, sym_addr); + sym_addr = sec_vma + sym_addr; +@@ -1433,7 +1444,7 @@ output_relocs ( + } + + sprintf(&addstr[0], "+0x%lx", sym_addr - (*(q->sym_ptr_ptr))->value - +- bfd_section_vma(abs_bfd, sym_section)); ++ elf2flt_bfd_section_vma(abs_bfd, sym_section)); + + + /* +@@ -1873,8 +1884,8 @@ int main(int argc, char *argv[]) + } else + continue; + +- sec_size = bfd_section_size(abs_bfd, s); +- sec_vma = bfd_section_vma(abs_bfd, s); ++ sec_size = elf2flt_bfd_section_size(abs_bfd, s); ++ sec_vma = elf2flt_bfd_section_vma(abs_bfd, s); + + if (sec_vma < *vma) { + if (*len > 0) +@@ -1899,7 +1910,7 @@ int main(int argc, char *argv[]) + if (s->flags & SEC_CODE) + if (!bfd_get_section_contents(abs_bfd, s, + text + (s->vma - text_vma), 0, +- bfd_section_size(abs_bfd, s))) ++ elf2flt_bfd_section_size(abs_bfd, s))) + { + fatal("read error section %s", s->name); + } +@@ -1925,7 +1936,7 @@ int main(int argc, char *argv[]) + if (s->flags & SEC_DATA) + if (!bfd_get_section_contents(abs_bfd, s, + data + (s->vma - data_vma), 0, +- bfd_section_size(abs_bfd, s))) ++ elf2flt_bfd_section_size(abs_bfd, s))) + { + fatal("read error section %s", s->name); + } +--- elf2flt-git-453398f9.orig/configure 2020-02-23 19:11:22.383955320 -0800 ++++ elf2flt-git-453398f9/configure 2020-02-23 19:13:08.667951575 -0800 +@@ -4310,6 +4310,56 @@ + done + + ++if test "$binutils_build_dir" != "NONE"; then ++ CFLAGS="-I$binutils_include_dir -I$bfd_include_dir $CFLAGS" ++fi ++ ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#include <bfd.h> ++int ++main () ++{ ++const asection *sec; bfd_section_size(sec); ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ bfd_section_size_macro_has_one_arg=yes ++else ++ bfd_section_size_macro_has_one_arg=no ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++if test "$bfd_section_size_macro_has_one_arg" = "yes" ; then ++ ++$as_echo "#define HAVE_BFD_SECTION_SIZE_MACRO_HAS_ONE_ARG 1" >>confdefs.h ++ ++fi ++ ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#include <bfd.h> ++int ++main () ++{ ++const asection *sec; bfd_section_vma(sec); ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ bfd_section_vma_macro_has_one_arg=yes ++else ++ bfd_section_vma_macro_has_one_arg=no ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++if test "$bfd_section_vma_macro_has_one_arg" = "yes" ; then ++ ++$as_echo "#define HAVE_BFD_SECTION_VMA_MACRO_HAS_ONE_ARG 1" >>confdefs.h ++ ++fi ++ + if test "$GCC" = yes ; then + CFLAGS="-Wall $CFLAGS" + if test "$werror" = 1 ; then diff --git a/packages/elf2flt/package.desc b/packages/elf2flt/package.desc index a6b8093d..d0b5327d 100644 --- a/packages/elf2flt/package.desc +++ b/packages/elf2flt/package.desc @@ -1,2 +1,2 @@ repository='git https://github.com/uclinux-dev/elf2flt.git' -repository_cset='7e33f28df198c46764021ed14408bd262751e148' +repository_cset='453398f917d167f8c308c8f997270c48ae8f8b12' diff --git a/packages/expat/2.1.1/version.desc b/packages/expat/2.1.1/version.desc index fcfe3891..a114052d 100644 --- a/packages/expat/2.1.1/version.desc +++ b/packages/expat/2.1.1/version.desc @@ -1 +1,2 @@ obsolete='yes' +archive_formats='.tar.bz2' diff --git a/packages/expat/2.2.8/chksum b/packages/expat/2.2.8/chksum deleted file mode 100644 index f0830b6d..00000000 --- a/packages/expat/2.2.8/chksum +++ /dev/null @@ -1,4 +0,0 @@ -md5 expat-2.2.8.tar.bz2 00858041acfea5757af55e6ee6b86231 -sha1 expat-2.2.8.tar.bz2 e1665bdab5ceaab47718b5a7f3ffceca7f648433 -sha256 expat-2.2.8.tar.bz2 9a130948b05a82da34e4171d5f5ae5d321d9630277af02c8fa51e431f6475102 -sha512 expat-2.2.8.tar.bz2 b1c995320d3eb406fe98e87fad204cc1336a74fb70c3ce3876d16ab955507863c3ee406ab10f0e8b63ed51cda0f7da4df0039626990fc2710f41c589c04b4022 diff --git a/packages/expat/2.2.9/chksum b/packages/expat/2.2.9/chksum new file mode 100644 index 00000000..23a0e8cf --- /dev/null +++ b/packages/expat/2.2.9/chksum @@ -0,0 +1,16 @@ +md5 expat-2.2.9.tar.xz d2384fa607223447e713e1b9bd272376 +sha1 expat-2.2.9.tar.xz 90a361e4c97f8c469479ffadc0de0b121a911fb5 +sha256 expat-2.2.9.tar.xz 1ea6965b15c2106b6bbe883397271c80dfa0331cdf821b2c319591b55eadc0a4 +sha512 expat-2.2.9.tar.xz e082874efcc4b00709e2c0192c88fb15dfc4f33fc3a2b09e619b010ea93baaf7e7572683f738463db0ce2350cab3de48a0c38af6b74d1c4f5a9e311f499edab0 +md5 expat-2.2.9.tar.lz c356e4f2092df4f0b0ffef904f001842 +sha1 expat-2.2.9.tar.lz bcf35c331f5d63f1abe7dd4f6f6f2d5969ea6da4 +sha256 expat-2.2.9.tar.lz a1e85abcd97c2aa71005190d24a7c46dcf7bd29c097c31e917cda1b400c38a49 +sha512 expat-2.2.9.tar.lz 514ff2ef3c93af0b1715b7a08732db33c13a113c4c72422716a22ee26c09235deed71ec55510cee24c33bcd6b2347602bd71ce70a432d5583fb63765ff9e0e09 +md5 expat-2.2.9.tar.bz2 875a2c2ff3e8eb9e5a5cd62db2033ab5 +sha1 expat-2.2.9.tar.bz2 ef5c1c55913a6ab18496ee99166f86269c7cdc31 +sha256 expat-2.2.9.tar.bz2 f1063084dc4302a427dabcca499c8312b3a32a29b7d2506653ecc8f950a9a237 +sha512 expat-2.2.9.tar.bz2 8ea4b89a171dfda8267c8b7a0295516d169bf7f46587ebe460fe0ae7a31478a119ae2a7eaa09b3ce46b107ec7cd2274ea66d91c08b8a4ad6b98ba984cdd4e15b +md5 expat-2.2.9.tar.gz 077b953cc38df8fed78e92841cc35443 +sha1 expat-2.2.9.tar.gz 3739fa85b056150fa2b2d57ad290d5cb39c97053 +sha256 expat-2.2.9.tar.gz 4456e0aa72ecc7e1d4b3368cd545a5eec7f9de5133a8dc37fdb1efa6174c4947 +sha512 expat-2.2.9.tar.gz 69dc2af49910b18708084bfd78ed422d973bc2d8f76c46320581436a8bb7f47e32322c4526d92ca763aec4b5596ba8c8fc663c486258e47fbaeaeeed6efebd91 diff --git a/packages/linux/3.16.74/version.desc b/packages/expat/2.2.9/version.desc index e69de29b..e69de29b 100644 --- a/packages/linux/3.16.74/version.desc +++ b/packages/expat/2.2.9/version.desc diff --git a/packages/expat/package.desc b/packages/expat/package.desc index 4e3e1a01..84dba8ff 100644 --- a/packages/expat/package.desc +++ b/packages/expat/package.desc @@ -1,6 +1,6 @@ repository='git https://github.com/libexpat/libexpat.git' repository_subdir='expat' bootstrap='./buildconf.sh && make -C doc all' -mirrors='http://downloads.sourceforge.net/project/expat/expat/${CT_EXPAT_VERSION}' -archive_formats='.tar.bz2' +mirrors='http://downloads.sourceforge.net/project/expat/expat/${CT_EXPAT_VERSION} https://github.com/libexpat/libexpat/releases/download/R_${CT_EXPAT_VERSION//./_}' +archive_formats='.tar.xz .tar.lz .tar.bz2 .tar.gz' relevantpattern='*.*|.' diff --git a/packages/gcc/7.4.0/chksum b/packages/gcc/7.4.0/chksum deleted file mode 100644 index e1c6a85f..00000000 --- a/packages/gcc/7.4.0/chksum +++ /dev/null @@ -1,8 +0,0 @@ -md5 gcc-7.4.0.tar.xz 6e9d754638ff03d2e9b2aff55aed82b4 -sha1 gcc-7.4.0.tar.xz bf09553cfa08ae6e29dfbbd541e5c69c3cbc6c66 -sha256 gcc-7.4.0.tar.xz eddde28d04f334aec1604456e536416549e9b1aa137fc69204e65eb0c009fe51 -sha512 gcc-7.4.0.tar.xz 8864d8e4b97c2e1a4f17422f6e68120172ebefeab97b1757734f7185ca68a6b9a89011c6833c03fa454c17b0ac35b15e1d284881e6971035948ac6100f3aa45e -md5 gcc-7.4.0.tar.gz 2f1f2df93e2777299b366070cd1b0ced -sha1 gcc-7.4.0.tar.gz ebbaf0be68a22d30cd74cab67d38a056a3b86e5a -sha256 gcc-7.4.0.tar.gz cb8df68237b0bea3307217697ad749a0a0565584da259e8a944ef6cfc4dc4d3d -sha512 gcc-7.4.0.tar.gz 6824b5c8fdb3151d8dd517911d3d975f7808525f52db32b5c25e9354b562792d6d2f1e8cc5aa019ff250df65b4f29b43f65ab6d769a070fd0015b13a3a9d6bf9 diff --git a/packages/gcc/7.4.0/0000-libtool-leave-framework-alone.patch b/packages/gcc/7.5.0/0000-libtool-leave-framework-alone.patch index 1a86e415..1a86e415 100644 --- a/packages/gcc/7.4.0/0000-libtool-leave-framework-alone.patch +++ b/packages/gcc/7.5.0/0000-libtool-leave-framework-alone.patch diff --git a/packages/gcc/7.4.0/0001-uclibc-conf.patch b/packages/gcc/7.5.0/0001-uclibc-conf.patch index aef750af..aef750af 100644 --- a/packages/gcc/7.4.0/0001-uclibc-conf.patch +++ b/packages/gcc/7.5.0/0001-uclibc-conf.patch diff --git a/packages/gcc/7.4.0/0002-gcc-plugin-Win-Dont-need-undefined-extern-var-refs-nor-fpic.patch b/packages/gcc/7.5.0/0002-gcc-plugin-Win-Dont-need-undefined-extern-var-refs-nor-fpic.patch index 8d40620d..8d40620d 100644 --- a/packages/gcc/7.4.0/0002-gcc-plugin-Win-Dont-need-undefined-extern-var-refs-nor-fpic.patch +++ b/packages/gcc/7.5.0/0002-gcc-plugin-Win-Dont-need-undefined-extern-var-refs-nor-fpic.patch diff --git a/packages/gcc/7.4.0/0003-gcc-plugin-POSIX-include-sys-select-h.patch b/packages/gcc/7.5.0/0003-gcc-plugin-POSIX-include-sys-select-h.patch index 5f9a07a2..5f9a07a2 100644 --- a/packages/gcc/7.4.0/0003-gcc-plugin-POSIX-include-sys-select-h.patch +++ b/packages/gcc/7.5.0/0003-gcc-plugin-POSIX-include-sys-select-h.patch diff --git a/packages/gcc/7.4.0/0004-arm-softfloat-libgcc.patch b/packages/gcc/7.5.0/0004-arm-softfloat-libgcc.patch index d9800365..d9800365 100644 --- a/packages/gcc/7.4.0/0004-arm-softfloat-libgcc.patch +++ b/packages/gcc/7.5.0/0004-arm-softfloat-libgcc.patch diff --git a/packages/gcc/7.4.0/0005-cilk-wchar.patch b/packages/gcc/7.5.0/0005-cilk-wchar.patch index d2230cd4..d2230cd4 100644 --- a/packages/gcc/7.4.0/0005-cilk-wchar.patch +++ b/packages/gcc/7.5.0/0005-cilk-wchar.patch diff --git a/packages/gcc/7.4.0/0006-fix-m68k-uclinux.patch b/packages/gcc/7.5.0/0006-fix-m68k-uclinux.patch index 28b0f3dc..28b0f3dc 100644 --- a/packages/gcc/7.4.0/0006-fix-m68k-uclinux.patch +++ b/packages/gcc/7.5.0/0006-fix-m68k-uclinux.patch diff --git a/packages/gcc/7.4.0/0007-libgfortran-missing-include.patch b/packages/gcc/7.5.0/0007-libgfortran-missing-include.patch index 16af6ac9..16af6ac9 100644 --- a/packages/gcc/7.4.0/0007-libgfortran-missing-include.patch +++ b/packages/gcc/7.5.0/0007-libgfortran-missing-include.patch diff --git a/packages/gcc/7.4.0/0008-nios2-bad-multilib-default.patch b/packages/gcc/7.5.0/0008-nios2-bad-multilib-default.patch index 4acc4918..4acc4918 100644 --- a/packages/gcc/7.4.0/0008-nios2-bad-multilib-default.patch +++ b/packages/gcc/7.5.0/0008-nios2-bad-multilib-default.patch diff --git a/packages/gcc/7.4.0/0009-libgcc-disable-split-stack-nothreads.patch b/packages/gcc/7.5.0/0009-libgcc-disable-split-stack-nothreads.patch index df91a9ff..df91a9ff 100644 --- a/packages/gcc/7.4.0/0009-libgcc-disable-split-stack-nothreads.patch +++ b/packages/gcc/7.5.0/0009-libgcc-disable-split-stack-nothreads.patch diff --git a/packages/gcc/7.4.0/0010-bionic-ndk.patch b/packages/gcc/7.5.0/0010-bionic-ndk.patch index 474dd8c0..474dd8c0 100644 --- a/packages/gcc/7.4.0/0010-bionic-ndk.patch +++ b/packages/gcc/7.5.0/0010-bionic-ndk.patch diff --git a/packages/gcc/7.4.0/0011-bionic-errno.patch b/packages/gcc/7.5.0/0011-bionic-errno.patch index 0a1a6327..0a1a6327 100644 --- a/packages/gcc/7.4.0/0011-bionic-errno.patch +++ b/packages/gcc/7.5.0/0011-bionic-errno.patch diff --git a/packages/gcc/7.4.0/0012-crystax.patch b/packages/gcc/7.5.0/0012-crystax.patch index d67118c7..5cc2ae55 100644 --- a/packages/gcc/7.4.0/0012-crystax.patch +++ b/packages/gcc/7.5.0/0012-crystax.patch @@ -52,7 +52,7 @@ Date: Wed Jul 29 11:28:29 2015 +0300 esac aarch64_multilibs="${with_multilib_list}" if test "$aarch64_multilibs" = "default"; then -@@ -2094,6 +2098,17 @@ +@@ -2103,6 +2107,17 @@ tm_file="dbxelf.h elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h ${tm_file} mips/gnu-user.h mips/linux.h mips/linux-common.h" extra_options="${extra_options} linux-android.opt" case ${target} in @@ -167,7 +167,7 @@ Date: Wed Jul 29 11:28:29 2015 +0300 : min >= -256 && max < 256 \ --- a/gcc/config/arm/arm.md +++ b/gcc/config/arm/arm.md -@@ -8665,7 +8665,7 @@ +@@ -8658,7 +8658,7 @@ (match_operand:SI 2 "const_int_operand" "") ; total range (match_operand:SI 3 "" "") ; table label (match_operand:SI 4 "" "")] ; Out of range label @@ -445,7 +445,7 @@ Date: Wed Jul 29 11:28:29 2015 +0300 #if ((defined(_LIBOBJC) || defined(_LIBOBJC_WEAK)) \ --- a/libstdc++-v3/configure +++ b/libstdc++-v3/configure -@@ -78577,6 +78577,12 @@ +@@ -78578,6 +78578,12 @@ /* end confdefs.h. */ #include <sys/syscall.h> int lk; @@ -458,7 +458,7 @@ Date: Wed Jul 29 11:28:29 2015 +0300 int main () { -@@ -78635,6 +78641,12 @@ +@@ -78636,6 +78642,12 @@ /* end confdefs.h. */ #include <sys/syscall.h> int lk; diff --git a/packages/gcc/7.4.0/0013-crystax.patch b/packages/gcc/7.5.0/0013-crystax.patch index f1f9eb12..f1f9eb12 100644 --- a/packages/gcc/7.4.0/0013-crystax.patch +++ b/packages/gcc/7.5.0/0013-crystax.patch diff --git a/packages/gcc/7.4.0/0014-crystax.patch b/packages/gcc/7.5.0/0014-crystax.patch index 910ccd4e..910ccd4e 100644 --- a/packages/gcc/7.4.0/0014-crystax.patch +++ b/packages/gcc/7.5.0/0014-crystax.patch diff --git a/packages/gcc/7.4.0/0015-crystax.patch b/packages/gcc/7.5.0/0015-crystax.patch index 813240f1..c468fc72 100644 --- a/packages/gcc/7.4.0/0015-crystax.patch +++ b/packages/gcc/7.5.0/0015-crystax.patch @@ -12,7 +12,7 @@ Date: Thu Aug 20 19:11:07 2015 +0300 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c -@@ -16116,6 +16116,7 @@ +@@ -16131,6 +16131,7 @@ else if (!SYMBOL_REF_FAR_ADDR_P (op0) && (SYMBOL_REF_LOCAL_P (op0) || (HAVE_LD_PIE_COPYRELOC diff --git a/packages/gcc/7.4.0/0016-crystax.patch b/packages/gcc/7.5.0/0016-crystax.patch index 8f2eb438..8f2eb438 100644 --- a/packages/gcc/7.4.0/0016-crystax.patch +++ b/packages/gcc/7.5.0/0016-crystax.patch diff --git a/packages/gcc/7.4.0/0017-crystax.patch b/packages/gcc/7.5.0/0017-crystax.patch index a466094a..ea9f69aa 100644 --- a/packages/gcc/7.4.0/0017-crystax.patch +++ b/packages/gcc/7.5.0/0017-crystax.patch @@ -15,7 +15,7 @@ Date: Mon Apr 14 21:05:51 2014 -0700 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c -@@ -22312,9 +22312,13 @@ +@@ -22355,9 +22355,13 @@ memsize = MEM_SIZE (x); /* Only certain alignment specifiers are supported by the hardware. */ diff --git a/packages/gcc/7.4.0/0018-crystax.patch b/packages/gcc/7.5.0/0018-crystax.patch index 8c21a1cc..8c21a1cc 100644 --- a/packages/gcc/7.4.0/0018-crystax.patch +++ b/packages/gcc/7.5.0/0018-crystax.patch diff --git a/packages/gcc/7.4.0/0019-crystax.patch b/packages/gcc/7.5.0/0019-crystax.patch index ccb81fd6..ccb81fd6 100644 --- a/packages/gcc/7.4.0/0019-crystax.patch +++ b/packages/gcc/7.5.0/0019-crystax.patch diff --git a/packages/gcc/7.4.0/0020-isl-0.20.patch b/packages/gcc/7.5.0/0020-isl-0.20.patch index 3e14966d..3e14966d 100644 --- a/packages/gcc/7.4.0/0020-isl-0.20.patch +++ b/packages/gcc/7.5.0/0020-isl-0.20.patch diff --git a/packages/gcc/7.5.0/chksum b/packages/gcc/7.5.0/chksum new file mode 100644 index 00000000..0796aa32 --- /dev/null +++ b/packages/gcc/7.5.0/chksum @@ -0,0 +1,8 @@ +md5 gcc-7.5.0.tar.xz 79cb8a65d44dfc8a2402b46395535c9a +sha1 gcc-7.5.0.tar.xz 9153345fa05adfa58b4759ccb9f37d09662dd101 +sha256 gcc-7.5.0.tar.xz b81946e7f01f90528a1f7352ab08cc602b9ccc05d4e44da4bd501c5a189ee661 +sha512 gcc-7.5.0.tar.xz fe716cc19f2e3255d3a8b1b8290777bf769c6d98e6e0b07b81a3d6ad43f8af74cb170dfa18b1555dbfcd3f55ae582b91a286ccef496b9b65c1579902f96a1f60 +md5 gcc-7.5.0.tar.gz 115814d16ea8d96e13949360d5d76a8c +sha1 gcc-7.5.0.tar.gz 0d7f578337cf0a17503899bc46dd2e11f9d3e293 +sha256 gcc-7.5.0.tar.gz 4f518f18cfb694ad7975064e99e200fe98af13603b47e67e801ba9580e50a07f +sha512 gcc-7.5.0.tar.gz 2883152afa4c5aa38139e9d3ffa01056256d7156f6a657ab988f9bb3a9caa1d05fbfd93a4509bab6b615eed8ac094521fc6155e1b3fd6c62a702d88d65ced88e diff --git a/packages/linux/4.14.146/version.desc b/packages/gcc/7.5.0/version.desc index e69de29b..e69de29b 100644 --- a/packages/linux/4.14.146/version.desc +++ b/packages/gcc/7.5.0/version.desc diff --git a/packages/gcc/8.3.0/chksum b/packages/gcc/8.3.0/chksum deleted file mode 100644 index bf662eef..00000000 --- a/packages/gcc/8.3.0/chksum +++ /dev/null @@ -1,8 +0,0 @@ -md5 gcc-8.3.0.tar.xz 65b210b4bfe7e060051f799e0f994896 -sha1 gcc-8.3.0.tar.xz c27f4499dd263fe4fb01bcc5565917f3698583b2 -sha256 gcc-8.3.0.tar.xz 64baadfe6cc0f4947a84cb12d7f0dfaf45bb58b7e92461639596c21e02d97d2c -sha512 gcc-8.3.0.tar.xz 1811337ae3add9680cec64968a2509d085b6dc5b6783fc1e8c295e3e47416196fd1a3ad8dfe7e10be2276b4f62c357659ce2902f239f60a8648548231b4b5802 -md5 gcc-8.3.0.tar.gz 9972f8c24c02ebcb5a342c1b30de69ff -sha1 gcc-8.3.0.tar.gz f9e58b8aedd77eacc39d45a97ef7692cd59372bf -sha256 gcc-8.3.0.tar.gz ea71adc1c3d86330874b8df19611424b143308f0d6612d542472600532c96d2d -sha512 gcc-8.3.0.tar.gz c0e6c3b6de8e40f1f078583bec0d9c0237fbcfd5c73cebe3c188aee1fd702cabc5f2bd2a3b05b4dfd8336cc214d6158c8ad885fe412fc193a7cca4e519ba7ab3 diff --git a/packages/gcc/8.3.0/0000-libtool-leave-framework-alone.patch b/packages/gcc/8.4.0/8.3.0/0000-libtool-leave-framework-alone.patch index 1a86e415..1a86e415 100644 --- a/packages/gcc/8.3.0/0000-libtool-leave-framework-alone.patch +++ b/packages/gcc/8.4.0/8.3.0/0000-libtool-leave-framework-alone.patch diff --git a/packages/gcc/8.3.0/0001-uclibc-conf.patch b/packages/gcc/8.4.0/8.3.0/0001-uclibc-conf.patch index aef750af..aef750af 100644 --- a/packages/gcc/8.3.0/0001-uclibc-conf.patch +++ b/packages/gcc/8.4.0/8.3.0/0001-uclibc-conf.patch diff --git a/packages/gcc/8.3.0/0002-gcc-plugin-Win-Dont-need-undefined-extern-var-refs-nor-fpic.patch b/packages/gcc/8.4.0/8.3.0/0002-gcc-plugin-Win-Dont-need-undefined-extern-var-refs-nor-fpic.patch index 20a88df3..20a88df3 100644 --- a/packages/gcc/8.3.0/0002-gcc-plugin-Win-Dont-need-undefined-extern-var-refs-nor-fpic.patch +++ b/packages/gcc/8.4.0/8.3.0/0002-gcc-plugin-Win-Dont-need-undefined-extern-var-refs-nor-fpic.patch diff --git a/packages/gcc/8.3.0/0003-gcc-plugin-POSIX-include-sys-select-h.patch b/packages/gcc/8.4.0/8.3.0/0003-gcc-plugin-POSIX-include-sys-select-h.patch index 5f9a07a2..5f9a07a2 100644 --- a/packages/gcc/8.3.0/0003-gcc-plugin-POSIX-include-sys-select-h.patch +++ b/packages/gcc/8.4.0/8.3.0/0003-gcc-plugin-POSIX-include-sys-select-h.patch diff --git a/packages/gcc/8.3.0/0004-arm-softfloat-libgcc.patch b/packages/gcc/8.4.0/8.3.0/0004-arm-softfloat-libgcc.patch index d9800365..d9800365 100644 --- a/packages/gcc/8.3.0/0004-arm-softfloat-libgcc.patch +++ b/packages/gcc/8.4.0/8.3.0/0004-arm-softfloat-libgcc.patch diff --git a/packages/gcc/8.3.0/0005-fix-m68k-uclinux.patch b/packages/gcc/8.4.0/8.3.0/0005-fix-m68k-uclinux.patch index 02b53bd8..02b53bd8 100644 --- a/packages/gcc/8.3.0/0005-fix-m68k-uclinux.patch +++ b/packages/gcc/8.4.0/8.3.0/0005-fix-m68k-uclinux.patch diff --git a/packages/gcc/8.3.0/0006-libgfortran-missing-include.patch b/packages/gcc/8.4.0/8.3.0/0006-libgfortran-missing-include.patch index 6e2e4e44..6e2e4e44 100644 --- a/packages/gcc/8.3.0/0006-libgfortran-missing-include.patch +++ b/packages/gcc/8.4.0/8.3.0/0006-libgfortran-missing-include.patch diff --git a/packages/gcc/8.3.0/0007-nios2-bad-multilib-default.patch b/packages/gcc/8.4.0/8.3.0/0007-nios2-bad-multilib-default.patch index 4acc4918..4acc4918 100644 --- a/packages/gcc/8.3.0/0007-nios2-bad-multilib-default.patch +++ b/packages/gcc/8.4.0/8.3.0/0007-nios2-bad-multilib-default.patch diff --git a/packages/gcc/8.3.0/0008-libgcc-disable-split-stack-nothreads.patch b/packages/gcc/8.4.0/8.3.0/0008-libgcc-disable-split-stack-nothreads.patch index df91a9ff..df91a9ff 100644 --- a/packages/gcc/8.3.0/0008-libgcc-disable-split-stack-nothreads.patch +++ b/packages/gcc/8.4.0/8.3.0/0008-libgcc-disable-split-stack-nothreads.patch diff --git a/packages/gcc/8.3.0/0009-bionic-ndk.patch b/packages/gcc/8.4.0/8.3.0/0009-bionic-ndk.patch index 474dd8c0..474dd8c0 100644 --- a/packages/gcc/8.3.0/0009-bionic-ndk.patch +++ b/packages/gcc/8.4.0/8.3.0/0009-bionic-ndk.patch diff --git a/packages/gcc/8.3.0/0010-crystax.patch b/packages/gcc/8.4.0/8.3.0/0010-crystax.patch index 0e3e95ca..0e3e95ca 100644 --- a/packages/gcc/8.3.0/0010-crystax.patch +++ b/packages/gcc/8.4.0/8.3.0/0010-crystax.patch diff --git a/packages/gcc/8.3.0/0011-crystax.patch b/packages/gcc/8.4.0/8.3.0/0011-crystax.patch index f1f9eb12..f1f9eb12 100644 --- a/packages/gcc/8.3.0/0011-crystax.patch +++ b/packages/gcc/8.4.0/8.3.0/0011-crystax.patch diff --git a/packages/gcc/8.3.0/0012-crystax.patch b/packages/gcc/8.4.0/8.3.0/0012-crystax.patch index 2bf6cc76..2bf6cc76 100644 --- a/packages/gcc/8.3.0/0012-crystax.patch +++ b/packages/gcc/8.4.0/8.3.0/0012-crystax.patch diff --git a/packages/gcc/8.3.0/0013-crystax.patch b/packages/gcc/8.4.0/8.3.0/0013-crystax.patch index 3454df01..3454df01 100644 --- a/packages/gcc/8.3.0/0013-crystax.patch +++ b/packages/gcc/8.4.0/8.3.0/0013-crystax.patch diff --git a/packages/gcc/8.3.0/0014-crystax.patch b/packages/gcc/8.4.0/8.3.0/0014-crystax.patch index 8f2eb438..8f2eb438 100644 --- a/packages/gcc/8.3.0/0014-crystax.patch +++ b/packages/gcc/8.4.0/8.3.0/0014-crystax.patch diff --git a/packages/gcc/8.3.0/0015-crystax.patch b/packages/gcc/8.4.0/8.3.0/0015-crystax.patch index 2424d2b5..2424d2b5 100644 --- a/packages/gcc/8.3.0/0015-crystax.patch +++ b/packages/gcc/8.4.0/8.3.0/0015-crystax.patch diff --git a/packages/gcc/8.3.0/0016-crystax.patch b/packages/gcc/8.4.0/8.3.0/0016-crystax.patch index 8c21a1cc..8c21a1cc 100644 --- a/packages/gcc/8.3.0/0016-crystax.patch +++ b/packages/gcc/8.4.0/8.3.0/0016-crystax.patch diff --git a/packages/gcc/8.3.0/0017-crystax.patch b/packages/gcc/8.4.0/8.3.0/0017-crystax.patch index ccb81fd6..ccb81fd6 100644 --- a/packages/gcc/8.3.0/0017-crystax.patch +++ b/packages/gcc/8.4.0/8.3.0/0017-crystax.patch diff --git a/packages/gcc/8.3.0/0018-ARC-Add-multilib-support-for-linux-targets.patch b/packages/gcc/8.4.0/8.3.0/0018-ARC-Add-multilib-support-for-linux-targets.patch index 6c0ff277..6c0ff277 100644 --- a/packages/gcc/8.3.0/0018-ARC-Add-multilib-support-for-linux-targets.patch +++ b/packages/gcc/8.4.0/8.3.0/0018-ARC-Add-multilib-support-for-linux-targets.patch diff --git a/packages/gcc/8.3.0/0019-isl-0.20.patch b/packages/gcc/8.4.0/8.3.0/0019-isl-0.20.patch index 3e14966d..3e14966d 100644 --- a/packages/gcc/8.3.0/0019-isl-0.20.patch +++ b/packages/gcc/8.4.0/8.3.0/0019-isl-0.20.patch diff --git a/packages/gcc/8.3.0/0020-ARM-fix-cmse.patch b/packages/gcc/8.4.0/8.3.0/0020-ARM-fix-cmse.patch index cf2d2431..cf2d2431 100644 --- a/packages/gcc/8.3.0/0020-ARM-fix-cmse.patch +++ b/packages/gcc/8.4.0/8.3.0/0020-ARM-fix-cmse.patch diff --git a/packages/gcc/8.3.0/0021-arm-Make-arm_cmse.h-C99-compatible.patch b/packages/gcc/8.4.0/8.3.0/0021-arm-Make-arm_cmse.h-C99-compatible.patch index afdc1a53..afdc1a53 100644 --- a/packages/gcc/8.3.0/0021-arm-Make-arm_cmse.h-C99-compatible.patch +++ b/packages/gcc/8.4.0/8.3.0/0021-arm-Make-arm_cmse.h-C99-compatible.patch diff --git a/packages/gcc/8.3.0/0022-ARC-Update-fma-expansions.patch b/packages/gcc/8.4.0/8.3.0/0022-ARC-Update-fma-expansions.patch index c2680d59..c2680d59 100644 --- a/packages/gcc/8.3.0/0022-ARC-Update-fma-expansions.patch +++ b/packages/gcc/8.4.0/8.3.0/0022-ARC-Update-fma-expansions.patch diff --git a/packages/gcc/8.4.0/chksum b/packages/gcc/8.4.0/chksum new file mode 100644 index 00000000..566ffd7b --- /dev/null +++ b/packages/gcc/8.4.0/chksum @@ -0,0 +1,8 @@ +md5 gcc-8.4.0.tar.xz bb815a8e3b7be43c4a26fa89dbbd9795 +sha1 gcc-8.4.0.tar.xz 00ddb177b04caffd40f7af0175d5b3c8e5442545 +sha256 gcc-8.4.0.tar.xz e30a6e52d10e1f27ed55104ad233c30bd1e99cfb5ff98ab022dc941edd1b2dd4 +sha512 gcc-8.4.0.tar.xz 6de904f552a02de33b11ef52312bb664396efd7e1ce3bbe37bfad5ef617f133095b3767b4804bc7fe78df335cb53bc83f1ac055baed40979ce4c2c3e46b70280 +md5 gcc-8.4.0.tar.gz 732a4fd69c36c0a12ee2b43368ccf3c9 +sha1 gcc-8.4.0.tar.gz 4151dfa99d390594c21a68ead04aabc259515517 +sha256 gcc-8.4.0.tar.gz 41e8b145832fc0b2b34c798ed25fb54a881b0cee4cd581b77c7dc92722c116a8 +sha512 gcc-8.4.0.tar.gz a0340bb83fb0ac0d3f7e0bcd06f6d5aa21e464ef319ab057cfacff036aa1f0d53e73a8b0ec2a00fd5eb1ea897401ffb510f7ac315bb5f5c88a6ae60497d921c0 diff --git a/packages/linux/4.19.75/version.desc b/packages/gcc/8.4.0/version.desc index e69de29b..e69de29b 100644 --- a/packages/linux/4.19.75/version.desc +++ b/packages/gcc/8.4.0/version.desc diff --git a/packages/gcc/package.desc b/packages/gcc/package.desc index e6d98f88..a37f0c58 100644 --- a/packages/gcc/package.desc +++ b/packages/gcc/package.desc @@ -2,5 +2,5 @@ repository='svn svn://gcc.gnu.org/svn/gcc' mirrors='$(CT_Mirrors GNU gcc/gcc-${CT_GCC_VERSION}) $(CT_Mirrors sourceware gcc/releases/gcc-${CT_GCC_VERSION})' relevantpattern='4.*|. *|.' origin='GNU' -milestones='4.8 4.9 5 6 7' +milestones='4.8 4.9 5 6 7 8' archive_formats='.tar.xz .tar.gz' diff --git a/packages/gdb/8.3.1/0005-no-fortify-mingw32.patch b/packages/gdb/8.3.1/0005-no-fortify-mingw32.patch new file mode 100644 index 00000000..54fe9e24 --- /dev/null +++ b/packages/gdb/8.3.1/0005-no-fortify-mingw32.patch @@ -0,0 +1,43 @@ +commit 5f23a08201ed01570b34f5cff99a95fc7b9e2fdb +Author: Christian Biesinger <cbiesinger@google.com> +Date: Wed Dec 18 12:06:43 2019 -0600 + + Don't define _FORTIFY_SOURCE on MinGW + + Recent MinGW versions require -lssp when using _FORTIFY_SOURCE, which + gdb does (in common-defs.h) + https://github.com/msys2/MINGW-packages/issues/5868#issuecomment-544107564 + + To avoid all the complications with checking for -lssp and making sure it's + linked statically, just don't define it. + + gdb/ChangeLog: + + 2020-01-09 Christian Biesinger <cbiesinger@google.com> + + * gdbsupport/common-defs.h: Don't define _FORTIFY_SOURCE on MinGW. + + Change-Id: Ide6870ab57198219a2ef78bc675768a789ca2b1d + +--- + gdb/common/common-defs.h | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +--- a/gdb/common/common-defs.h ++++ b/gdb/common/common-defs.h +@@ -66,9 +66,13 @@ + plus this seems like a reasonable safety measure. The check for + optimization is required because _FORTIFY_SOURCE only works when + optimization is enabled. If _FORTIFY_SOURCE is already defined, +- then we don't do anything. */ ++ then we don't do anything. Also, on MinGW, fortify requires ++ linking to -lssp, and to avoid the hassle of checking for ++ that and linking to it statically, we just don't define ++ _FORTIFY_SOURCE there. */ + +-#if !defined _FORTIFY_SOURCE && defined __OPTIMIZE__ && __OPTIMIZE__ > 0 ++#if (!defined _FORTIFY_SOURCE && defined __OPTIMIZE__ && __OPTIMIZE__ > 0 \ ++ && !defined(__MINGW32__)) + #define _FORTIFY_SOURCE 2 + #endif + diff --git a/packages/gdb/9.1/0000-musl_fix.patch b/packages/gdb/9.1/0000-musl_fix.patch new file mode 100644 index 00000000..85c09dee --- /dev/null +++ b/packages/gdb/9.1/0000-musl_fix.patch @@ -0,0 +1,33 @@ +--- + gdb/linux-nat.c | 5 +++++ + gdb/stopcode.h | 4 ++++ + 2 files changed, 9 insertions(+) + +--- a/gdb/linux-nat.c ++++ b/gdb/linux-nat.c +@@ -17,6 +17,7 @@ + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + ++#include "stopcode.h" + #include "defs.h" + #include "inferior.h" + #include "infrun.h" +@@ -69,6 +70,10 @@ + #include "gdbsupport/scope-exit.h" + #include "gdbsupport/gdb-sigmask.h" + ++#ifndef __SIGRTMIN ++#define __SIGRTMIN SIGRTMIN ++#endif ++ + /* This comment documents high-level logic of this file. + + Waiting for events in sync mode +--- /dev/null ++++ b/gdb/stopcode.h +@@ -0,0 +1,4 @@ ++#ifndef W_STOPCODE ++#define W_STOPCODE(sig) ((sig) << 8 | 0x7f) ++#endif ++ diff --git a/packages/gdb/9.1/0001-uclibc-no-gettimeofday-clobber.patch b/packages/gdb/9.1/0001-uclibc-no-gettimeofday-clobber.patch new file mode 100644 index 00000000..2a549ddb --- /dev/null +++ b/packages/gdb/9.1/0001-uclibc-no-gettimeofday-clobber.patch @@ -0,0 +1,33 @@ +Improve gnulib in gdb's guess work, gettimeofday() works in uClibcm promise. + +This patch helps building x86_64-unknown-linux-uclibc toolchains, the final +gdb-native step otherwise fails when linking the libinproctrace.so + +Signed-off-by: Joachim Nilsson <troglobit@gmail.com> +Signed-off-by: Alexey Neyman <stilor@att.net> + +--- + gnulib/configure | 1 + + gnulib/import/m4/gettimeofday.m4 | 1 + + 2 files changed, 2 insertions(+) + +--- a/gnulib/configure ++++ b/gnulib/configure +@@ -20267,6 +20267,7 @@ + case "$host_os" in + # Guess all is fine on glibc systems. + *-gnu*) gl_cv_func_gettimeofday_clobber="guessing no" ;; ++ *-uclibc*) gl_cv_func_gettimeofday_clobber="guessing no" ;; + # If we don't know, assume the worst. + *) gl_cv_func_gettimeofday_clobber="guessing yes" ;; + esac +--- a/gnulib/import/m4/gettimeofday.m4 ++++ b/gnulib/import/m4/gettimeofday.m4 +@@ -111,6 +111,7 @@ + case "$host_os" in + # Guess all is fine on glibc systems. + *-gnu*) gl_cv_func_gettimeofday_clobber="guessing no" ;; ++ *-uclibc*) gl_cv_func_gettimeofday_clobber="guessing no" ;; + # If we don't know, assume the worst. + *) gl_cv_func_gettimeofday_clobber="guessing yes" ;; + esac diff --git a/packages/gdb/9.1/0002-xtensa-make-sure-ar_base-is-initialized.patch b/packages/gdb/9.1/0002-xtensa-make-sure-ar_base-is-initialized.patch new file mode 100644 index 00000000..c0f364ce --- /dev/null +++ b/packages/gdb/9.1/0002-xtensa-make-sure-ar_base-is-initialized.patch @@ -0,0 +1,30 @@ +From 208ea73d38c9c16cf983b6419f58050dbadcb6a9 Mon Sep 17 00:00:00 2001 +From: Max Filippov <jcmvbkbc@gmail.com> +Date: Sun, 7 Jun 2015 22:43:49 +0300 +Subject: [PATCH 2/2] xtensa: make sure ar_base is initialized + +ar_base is uninitialized for cores w/o windowed registers as their +regmap doesn't have register 0x0100. +Check that ar_base is initialized and if not initialize it with a0_base. + +gdb/ + * xtensa-tdep.c (xtensa_derive_tdep): Make sure ar_base is + initialized. + +Signed-off-by: Max Filippov <jcmvbkbc@gmail.com> +--- + gdb/xtensa-tdep.c | 3 +++ + 1 file changed, 3 insertions(+) + +--- a/gdb/xtensa-tdep.c ++++ b/gdb/xtensa-tdep.c +@@ -3137,6 +3137,9 @@ + if (tdep->num_regs == 0) + tdep->num_regs = tdep->num_nopriv_regs; + ++ if (tdep->ar_base == -1) ++ tdep->ar_base = tdep->a0_base; ++ + /* Number of pseudo registers. */ + tdep->num_pseudo_regs = n - tdep->num_regs; + diff --git a/packages/gdb/9.1/0003-WIP-end-of-prologue-detection-hack.patch b/packages/gdb/9.1/0003-WIP-end-of-prologue-detection-hack.patch new file mode 100644 index 00000000..9622ae9e --- /dev/null +++ b/packages/gdb/9.1/0003-WIP-end-of-prologue-detection-hack.patch @@ -0,0 +1,26 @@ +From 7f8eacbb468575fb67db7fd1155a3aedaa91911b Mon Sep 17 00:00:00 2001 +From: Max Filippov <jcmvbkbc@gmail.com> +Date: Sun, 7 Jun 2015 23:15:39 +0300 +Subject: [PATCH] WIP: *end of prologue* detection hack + +see + http://www.esp8266.com/viewtopic.php?p=18461#p18461 + http://www.esp8266.com/viewtopic.php?p=19026#p19026 + http://www.esp8266.com/viewtopic.php?p=19683#p19683 + +Signed-off-by: Max Filippov <jcmvbkbc@gmail.com> +--- + gdb/xtensa-tdep.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/gdb/xtensa-tdep.c ++++ b/gdb/xtensa-tdep.c +@@ -2385,7 +2385,7 @@ + /* Find out, if we have an information about the prologue from DWARF. */ + prologue_sal = find_pc_line (start, 0); + if (prologue_sal.line != 0) /* Found debug info. */ +- body_pc = prologue_sal.end; ++ body_pc = prologue_sal.end + 40; + + /* If we are going to analyze the prologue in general without knowing about + the current PC, make the best assumption for the end of the prologue. */ diff --git a/packages/gdb/9.1/0004-allow-android.patch b/packages/gdb/9.1/0004-allow-android.patch new file mode 100644 index 00000000..97f7a9fd --- /dev/null +++ b/packages/gdb/9.1/0004-allow-android.patch @@ -0,0 +1,45 @@ +--- + gdb/gdbserver/configure | 11 ----------- + gdb/gdbserver/configure.ac | 11 ----------- + 2 files changed, 22 deletions(-) + +--- a/gdb/gdbserver/configure ++++ b/gdb/gdbserver/configure +@@ -8512,17 +8512,6 @@ + + + case "${target}" in +- *-android*) +- # Starting with NDK version 9, <elf.h> actually includes definitions +- # of Elf32_auxv_t and Elf64_auxv_t. But sadly, <elf.h> includes +- # <sys/exec_elf.h> which defines some of the ELF types incorrectly, +- # leading to conflicts with the defintions from <linux/elf.h>. +- # This makes it impossible for us to include both <elf.h> and +- # <linux/elf.h>, which means that, in practice, we do not have +- # access to Elf32_auxv_t and Elf64_auxv_t on this platform. +- # Therefore, do not try to auto-detect availability, as it would +- # get it wrong on this platform. +- ;; + *) + ac_fn_c_check_type "$LINENO" "Elf32_auxv_t" "ac_cv_type_Elf32_auxv_t" "#include <elf.h> + +--- a/gdb/gdbserver/configure.ac ++++ b/gdb/gdbserver/configure.ac +@@ -176,17 +176,6 @@ + ]) + + case "${target}" in +- *-android*) +- # Starting with NDK version 9, <elf.h> actually includes definitions +- # of Elf32_auxv_t and Elf64_auxv_t. But sadly, <elf.h> includes +- # <sys/exec_elf.h> which defines some of the ELF types incorrectly, +- # leading to conflicts with the defintions from <linux/elf.h>. +- # This makes it impossible for us to include both <elf.h> and +- # <linux/elf.h>, which means that, in practice, we do not have +- # access to Elf32_auxv_t and Elf64_auxv_t on this platform. +- # Therefore, do not try to auto-detect availability, as it would +- # get it wrong on this platform. +- ;; + *) + AC_CHECK_TYPES([Elf32_auxv_t, Elf64_auxv_t], [], [], + #include <elf.h> diff --git a/packages/gdb/9.1/chksum b/packages/gdb/9.1/chksum new file mode 100644 index 00000000..f0361e02 --- /dev/null +++ b/packages/gdb/9.1/chksum @@ -0,0 +1,8 @@ +md5 gdb-9.1.tar.xz f7e9f6236c425097d9e5f18a6ac40655 +sha1 gdb-9.1.tar.xz a50e13e1eecea468ea28c4a23d8c5a84f4db25be +sha256 gdb-9.1.tar.xz 699e0ec832fdd2f21c8266171ea5bf44024bd05164fdf064e4d10cc4cf0d1737 +sha512 gdb-9.1.tar.xz 84cdd408d80a3fc5779de459c5b26154d31b329ebde7e3aa78799fb1eb245d8b64b8c8ee7242382a1dbd95b4e6f9d84fef41d12a0646aa75d3dee4709ea1f6e7 +md5 gdb-9.1.tar.gz b6f0807334c273c78fd17df0f9b1c13a +sha1 gdb-9.1.tar.gz c50a84d303afc9bea77cd5f129e83b4a4147a701 +sha256 gdb-9.1.tar.gz fcda54d4f35bc53fb24b50009a71ca98410d71ff2620942e3c829a7f5d614252 +sha512 gdb-9.1.tar.gz a51b1023e595b86db3d75edcd845739304b441eff4754a400241c6b45f2c38913a489776e67c5fa20e8d90a9e72e94f2f6b8495363d93c2350ddbade4839bcc3 diff --git a/packages/linux/4.9.194/version.desc b/packages/gdb/9.1/version.desc index e69de29b..e69de29b 100644 --- a/packages/linux/4.9.194/version.desc +++ b/packages/gdb/9.1/version.desc diff --git a/packages/gettext/0.20.1/0001-pthread_sigmask.c-mingw.patch b/packages/gettext/0.20.1/0001-pthread_sigmask.c-mingw.patch new file mode 100644 index 00000000..c3879d5c --- /dev/null +++ b/packages/gettext/0.20.1/0001-pthread_sigmask.c-mingw.patch @@ -0,0 +1,356 @@ +commit 64e905db05c32792c3f0e77ce271f65e77980a92 +Author: Bruno Haible <bruno@clisp.org> +Date: Sat May 18 14:36:33 2019 +0200 + + pthread_sigmask: Fix compilation error with --enable-threads=windows. + + Reported by Tim Rühsen in + <https://lists.gnu.org/archive/html/bug-gnulib/2018-01/msg00018.html> + and Michele Locati in + <https://lists.gnu.org/archive/html/bug-gettext/2019-04/msg00057.html>. + + * m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): Revert change from + 2015-06-01. Test whether pthread_sigmask is a macro, regardless of + $LIBMULTITHREAD. Consider it regardless whether module 'threadlib' is + in use and regardless which threads API is chosen. + +[Dropped ChangeLog; adjusted the paths to apply to gettext; regenerate.] + +--- + gettext-tools/configure | 105 ++++++++++----------- + gettext-tools/gnulib-m4/pthread_sigmask.m4 | 140 ++++++++++++++--------------- + 2 files changed, 118 insertions(+), 127 deletions(-) + +--- a/gettext-tools/gnulib-m4/pthread_sigmask.m4 ++++ b/gettext-tools/gnulib-m4/pthread_sigmask.m4 +@@ -1,4 +1,4 @@ +-# pthread_sigmask.m4 serial 16 ++# pthread_sigmask.m4 serial 17 + dnl Copyright (C) 2011-2019 Free Software Foundation, Inc. + dnl This file is free software; the Free Software Foundation + dnl gives unlimited permission to copy and/or distribute it, +@@ -9,103 +9,101 @@ + AC_REQUIRE([gl_SIGNAL_H_DEFAULTS]) + + AC_CHECK_FUNCS_ONCE([pthread_sigmask]) ++ ++ dnl On MinGW pthread_sigmask is just a macro which always returns 0. ++ dnl It does not exist as a real function, which is required by POSIX. ++ AC_CACHE_CHECK([whether pthread_sigmask is a macro], ++ [gl_cv_func_pthread_sigmask_macro], ++ [AC_EGREP_CPP([headers_define_pthread_sigmask], [ ++#include <pthread.h> ++#include <signal.h> ++#ifdef pthread_sigmask ++ headers_define_pthread_sigmask ++#endif], ++ [gl_cv_func_pthread_sigmask_macro=yes], ++ [gl_cv_func_pthread_sigmask_macro=no]) ++ ]) ++ + LIB_PTHREAD_SIGMASK= + +- dnl Test whether the gnulib module 'threadlib' is in use. +- dnl Some packages like Emacs use --avoid=threadlib. +- dnl Write the symbol in such a way that it does not cause 'aclocal' to pick +- dnl the threadlib.m4 file that is installed in $PREFIX/share/aclocal/. +- m4_ifdef([gl_][THREADLIB], [ +- AC_REQUIRE([gl_][THREADLIB]) ++ if test $gl_cv_func_pthread_sigmask_macro = yes; then ++ dnl pthread_sigmask is a dummy macro. ++ HAVE_PTHREAD_SIGMASK=0 ++ dnl Make sure to '#undef pthread_sigmask' before defining it. ++ REPLACE_PTHREAD_SIGMASK=1 ++ else ++ dnl Test whether the gnulib module 'threadlib' is in use. ++ dnl Some packages like Emacs use --avoid=threadlib. ++ dnl Write the symbol in such a way that it does not cause 'aclocal' to pick ++ dnl the threadlib.m4 file that is installed in $PREFIX/share/aclocal/. ++ m4_ifdef([gl_][THREADLIB], [ ++ AC_REQUIRE([gl_][THREADLIB]) + +- if test "$gl_threads_api" = posix; then +- if test $ac_cv_func_pthread_sigmask = yes; then +- dnl pthread_sigmask is available without -lpthread. +- : +- else +- if test -n "$LIBMULTITHREAD"; then +- AC_CACHE_CHECK([for pthread_sigmask in $LIBMULTITHREAD], +- [gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD], +- [gl_save_LIBS="$LIBS" +- LIBS="$LIBS $LIBMULTITHREAD" +- AC_LINK_IFELSE( +- [AC_LANG_PROGRAM( +- [[#include <pthread.h> +- #include <signal.h> +- ]], +- [[return pthread_sigmask (0, (sigset_t *) 0, (sigset_t *) 0);]]) +- ], +- [gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD=yes], +- [gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD=no]) +- LIBS="$gl_save_LIBS" +- ]) +- if test $gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD = yes; then +- AC_CACHE_CHECK([whether pthread_sigmask is only a macro], +- [gl_cv_func_pthread_sigmask_is_macro], ++ if test "$gl_threads_api" = posix; then ++ if test $ac_cv_func_pthread_sigmask = yes; then ++ dnl pthread_sigmask is available without -lpthread. ++ : ++ else ++ if test -n "$LIBMULTITHREAD"; then ++ AC_CACHE_CHECK([for pthread_sigmask in $LIBMULTITHREAD], ++ [gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD], + [gl_save_LIBS="$LIBS" + LIBS="$LIBS $LIBMULTITHREAD" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[#include <pthread.h> + #include <signal.h> +- #undef pthread_sigmask + ]], + [[return pthread_sigmask (0, (sigset_t *) 0, (sigset_t *) 0);]]) + ], +- [gl_cv_func_pthread_sigmask_is_macro=no], +- [gl_cv_func_pthread_sigmask_is_macro=yes]) ++ [gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD=yes], ++ [gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD=no]) + LIBS="$gl_save_LIBS" + ]) +- if test $gl_cv_func_pthread_sigmask_is_macro = yes; then +- dnl On MinGW pthread_sigmask is just a macro which always returns 0. +- dnl It does not exist as a real function, which is required by POSIX. +- REPLACE_PTHREAD_SIGMASK=1 +- gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD=no ++ if test $gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD = yes; then ++ dnl pthread_sigmask is available with -pthread or -lpthread. ++ LIB_PTHREAD_SIGMASK="$LIBMULTITHREAD" ++ else ++ dnl pthread_sigmask is not available at all. ++ HAVE_PTHREAD_SIGMASK=0 + fi +- fi +- if test $gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD = yes; then +- dnl pthread_sigmask is available with -pthread or -lpthread. +- LIB_PTHREAD_SIGMASK="$LIBMULTITHREAD" + else + dnl pthread_sigmask is not available at all. + HAVE_PTHREAD_SIGMASK=0 + fi ++ fi ++ else ++ dnl pthread_sigmask may exist but does not interoperate with the chosen ++ dnl multithreading facility. ++ dnl If "$gl_threads_api" = pth, we could use the function pth_sigmask, ++ dnl but it is equivalent to sigprocmask, so we choose to emulate ++ dnl pthread_sigmask with sigprocmask also in this case. This yields ++ dnl fewer link dependencies. ++ if test $ac_cv_func_pthread_sigmask = yes; then ++ REPLACE_PTHREAD_SIGMASK=1 + else +- dnl pthread_sigmask is not available at all. + HAVE_PTHREAD_SIGMASK=0 + fi + fi +- else +- dnl pthread_sigmask may exist but does not interoperate with the chosen +- dnl multithreading facility. +- dnl If "$gl_threads_api" = pth, we could use the function pth_sigmask, +- dnl but it is equivalent to sigprocmask, so we choose to emulate +- dnl pthread_sigmask with sigprocmask also in this case. This yields fewer +- dnl link dependencies. ++ ], [ ++ dnl The module 'threadlib' is not in use, due to --avoid=threadlib being ++ dnl specified. ++ dnl The package either has prepared CPPFLAGS and LIBS for use of ++ dnl POSIX:2008 threads, or wants to build single-threaded programs. + if test $ac_cv_func_pthread_sigmask = yes; then +- REPLACE_PTHREAD_SIGMASK=1 ++ dnl pthread_sigmask exists and does not require extra libraries. ++ dnl Assume that it is declared. ++ : + else ++ dnl pthread_sigmask either does not exist or needs extra libraries. + HAVE_PTHREAD_SIGMASK=0 ++ dnl Define the symbol rpl_pthread_sigmask, not pthread_sigmask, ++ dnl so as to not accidentally override the system's pthread_sigmask ++ dnl symbol from libpthread. This is necessary on IRIX 6.5. ++ REPLACE_PTHREAD_SIGMASK=1 + fi +- fi +- ], [ +- dnl The module 'threadlib' is not in use, due to --avoid=threadlib being +- dnl specified. +- dnl The package either has prepared CPPFLAGS and LIBS for use of POSIX:2008 +- dnl threads, or wants to build single-threaded programs. +- if test $ac_cv_func_pthread_sigmask = yes; then +- dnl pthread_sigmask exists and does not require extra libraries. +- dnl Assume that it is declared. +- : +- else +- dnl pthread_sigmask either does not exist or needs extra libraries. +- HAVE_PTHREAD_SIGMASK=0 +- dnl Define the symbol rpl_pthread_sigmask, not pthread_sigmask, +- dnl so as to not accidentally override the system's pthread_sigmask +- dnl symbol from libpthread. This is necessary on IRIX 6.5. +- REPLACE_PTHREAD_SIGMASK=1 +- fi +- ]) ++ ]) ++ fi + + AC_SUBST([LIB_PTHREAD_SIGMASK]) + dnl We don't need a variable LTLIB_PTHREAD_SIGMASK, because when +--- a/gettext-tools/configure ++++ b/gettext-tools/configure +@@ -61291,53 +61291,51 @@ + + + +- LIB_PTHREAD_SIGMASK= +- +- + +- +- if test "$gl_threads_api" = posix; then +- if test $ac_cv_func_pthread_sigmask = yes; then +- : +- else +- if test -n "$LIBMULTITHREAD"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_sigmask in $LIBMULTITHREAD" >&5 +-$as_echo_n "checking for pthread_sigmask in $LIBMULTITHREAD... " >&6; } +-if ${gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD+:} false; then : ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthread_sigmask is a macro" >&5 ++$as_echo_n "checking whether pthread_sigmask is a macro... " >&6; } ++if ${gl_cv_func_pthread_sigmask_macro+:} false; then : + $as_echo_n "(cached) " >&6 + else +- gl_save_LIBS="$LIBS" +- LIBS="$LIBS $LIBMULTITHREAD" +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ +-#include <pthread.h> +- #include <signal.h> +- +-int +-main () +-{ +-return pthread_sigmask (0, (sigset_t *) 0, (sigset_t *) 0); +- ; +- return 0; +-} + ++#include <pthread.h> ++#include <signal.h> ++#ifdef pthread_sigmask ++ headers_define_pthread_sigmask ++#endif + _ACEOF +-if ac_fn_c_try_link "$LINENO"; then : +- gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD=yes ++if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ++ $EGREP "headers_define_pthread_sigmask" >/dev/null 2>&1; then : ++ gl_cv_func_pthread_sigmask_macro=yes + else +- gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD=no ++ gl_cv_func_pthread_sigmask_macro=no + fi +-rm -f core conftest.err conftest.$ac_objext \ +- conftest$ac_exeext conftest.$ac_ext +- LIBS="$gl_save_LIBS" ++rm -f conftest* ++ + + fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD" >&5 +-$as_echo "$gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD" >&6; } +- if test $gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD = yes; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthread_sigmask is only a macro" >&5 +-$as_echo_n "checking whether pthread_sigmask is only a macro... " >&6; } +-if ${gl_cv_func_pthread_sigmask_is_macro+:} false; then : ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_pthread_sigmask_macro" >&5 ++$as_echo "$gl_cv_func_pthread_sigmask_macro" >&6; } ++ ++ LIB_PTHREAD_SIGMASK= ++ ++ if test $gl_cv_func_pthread_sigmask_macro = yes; then ++ HAVE_PTHREAD_SIGMASK=0 ++ REPLACE_PTHREAD_SIGMASK=1 ++ else ++ ++ ++ ++ if test "$gl_threads_api" = posix; then ++ if test $ac_cv_func_pthread_sigmask = yes; then ++ : ++ else ++ if test -n "$LIBMULTITHREAD"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_sigmask in $LIBMULTITHREAD" >&5 ++$as_echo_n "checking for pthread_sigmask in $LIBMULTITHREAD... " >&6; } ++if ${gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD+:} false; then : + $as_echo_n "(cached) " >&6 + else + gl_save_LIBS="$LIBS" +@@ -61346,7 +61344,6 @@ + /* end confdefs.h. */ + #include <pthread.h> + #include <signal.h> +- #undef pthread_sigmask + + int + main () +@@ -61358,39 +61355,35 @@ + + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : +- gl_cv_func_pthread_sigmask_is_macro=no ++ gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD=yes + else +- gl_cv_func_pthread_sigmask_is_macro=yes ++ gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD=no + fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$gl_save_LIBS" + + fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_pthread_sigmask_is_macro" >&5 +-$as_echo "$gl_cv_func_pthread_sigmask_is_macro" >&6; } +- if test $gl_cv_func_pthread_sigmask_is_macro = yes; then +- REPLACE_PTHREAD_SIGMASK=1 +- gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD=no ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD" >&5 ++$as_echo "$gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD" >&6; } ++ if test $gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD = yes; then ++ LIB_PTHREAD_SIGMASK="$LIBMULTITHREAD" ++ else ++ HAVE_PTHREAD_SIGMASK=0 + fi +- fi +- if test $gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD = yes; then +- LIB_PTHREAD_SIGMASK="$LIBMULTITHREAD" + else + HAVE_PTHREAD_SIGMASK=0 + fi +- else +- HAVE_PTHREAD_SIGMASK=0 + fi +- fi +- else +- if test $ac_cv_func_pthread_sigmask = yes; then +- REPLACE_PTHREAD_SIGMASK=1 + else +- HAVE_PTHREAD_SIGMASK=0 ++ if test $ac_cv_func_pthread_sigmask = yes; then ++ REPLACE_PTHREAD_SIGMASK=1 ++ else ++ HAVE_PTHREAD_SIGMASK=0 ++ fi + fi +- fi + ++ fi + + + diff --git a/packages/glibc/2.28/0001-x86-Assume-enable-cet-if-GCC-defaults-to-CET-BZ-2522.patch b/packages/glibc/2.28/0001-x86-Assume-enable-cet-if-GCC-defaults-to-CET-BZ-2522.patch new file mode 100644 index 00000000..b3c82e16 --- /dev/null +++ b/packages/glibc/2.28/0001-x86-Assume-enable-cet-if-GCC-defaults-to-CET-BZ-2522.patch @@ -0,0 +1,82 @@ +From 9f917f7b411c307c34eb1bae85d72ffe26167523 Mon Sep 17 00:00:00 2001 +From: Florian Weimer <fweimer@redhat.com> +Date: Tue, 3 Dec 2019 21:11:32 +0100 +Subject: [PATCH] x86: Assume --enable-cet if GCC defaults to CET [BZ #25225] + +This links in CET support if GCC defaults to CET. Otherwise, __CET__ +is defined, yet CET functionality is not compiled and linked into the +dynamic loader, resulting in a linker failure due to undefined +references to _dl_cet_check and _dl_open_check. + +(cherry picked from commit 9fb8139079ef0bb1aa33a4ae418cbb113b9b9da7) +--- + NEWS | 1 + + configure | 23 ++++++++++++++++++++++- + configure.ac | 9 ++++++++- + 3 files changed, 31 insertions(+), 2 deletions(-) + +diff --git a/configure b/configure +index fde57d63fe..c02753c0fe 100755 +--- a/configure ++++ b/configure +@@ -3762,11 +3762,32 @@ else + fi + + ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++ ++#ifndef __CET__ ++#error no CET compiler support ++#endif ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ libc_cv_compiler_default_cet=yes ++else ++ libc_cv_compiler_default_cet=no ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ + # Check whether --enable-cet was given. + if test "${enable_cet+set}" = set; then : + enableval=$enable_cet; enable_cet=$enableval + else +- enable_cet=no ++ enable_cet=$libc_cv_compiler_default_cet + fi + + +diff --git a/configure.ac b/configure.ac +index 014e09a5d5..139554b94a 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -464,11 +464,18 @@ AC_ARG_ENABLE([mathvec], + [build_mathvec=$enableval], + [build_mathvec=notset]) + ++AC_TRY_COMPILE([], [ ++#ifndef __CET__ ++# error no CET compiler support ++#endif], ++ [libc_cv_compiler_default_cet=yes], ++ [libc_cv_compiler_default_cet=no]) ++ + AC_ARG_ENABLE([cet], + AC_HELP_STRING([--enable-cet], + [enable Intel Control-flow Enforcement Technology (CET), x86 only]), + [enable_cet=$enableval], +- [enable_cet=no]) ++ [enable_cet=$libc_cv_compiler_default_cet]) + + # We keep the original values in `$config_*' and never modify them, so we + # can write them unchanged into config.make. Everything else uses +-- +2.20.1 + diff --git a/packages/glibc/2.29/0002-x86-Assume-enable-cet-if-GCC-defaults-to-CET-BZ-2522.patch b/packages/glibc/2.29/0002-x86-Assume-enable-cet-if-GCC-defaults-to-CET-BZ-2522.patch new file mode 100644 index 00000000..e188dd07 --- /dev/null +++ b/packages/glibc/2.29/0002-x86-Assume-enable-cet-if-GCC-defaults-to-CET-BZ-2522.patch @@ -0,0 +1,82 @@ +From 0b4c3e1e0b8656149d4556d2f81a2958426ebc94 Mon Sep 17 00:00:00 2001 +From: Florian Weimer <fweimer@redhat.com> +Date: Tue, 3 Dec 2019 21:08:49 +0100 +Subject: [PATCH] x86: Assume --enable-cet if GCC defaults to CET [BZ #25225] + +This links in CET support if GCC defaults to CET. Otherwise, __CET__ +is defined, yet CET functionality is not compiled and linked into the +dynamic loader, resulting in a linker failure due to undefined +references to _dl_cet_check and _dl_open_check. + +(cherry picked from commit 9fb8139079ef0bb1aa33a4ae418cbb113b9b9da7) +--- + NEWS | 1 + + configure | 23 ++++++++++++++++++++++- + configure.ac | 9 ++++++++- + 3 files changed, 31 insertions(+), 2 deletions(-) + +diff --git a/configure b/configure +index 101dfddf37..6a2df7c2be 100755 +--- a/configure ++++ b/configure +@@ -3777,11 +3777,32 @@ else + fi + + ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++ ++#ifndef __CET__ ++#error no CET compiler support ++#endif ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ libc_cv_compiler_default_cet=yes ++else ++ libc_cv_compiler_default_cet=no ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ + # Check whether --enable-cet was given. + if test "${enable_cet+set}" = set; then : + enableval=$enable_cet; enable_cet=$enableval + else +- enable_cet=no ++ enable_cet=$libc_cv_compiler_default_cet + fi + + +diff --git a/configure.ac b/configure.ac +index 46a74687a6..f483afdc2e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -472,11 +472,18 @@ AC_ARG_ENABLE([mathvec], + [build_mathvec=$enableval], + [build_mathvec=notset]) + ++AC_TRY_COMPILE([], [ ++#ifndef __CET__ ++# error no CET compiler support ++#endif], ++ [libc_cv_compiler_default_cet=yes], ++ [libc_cv_compiler_default_cet=no]) ++ + AC_ARG_ENABLE([cet], + AC_HELP_STRING([--enable-cet], + [enable Intel Control-flow Enforcement Technology (CET), x86 only]), + [enable_cet=$enableval], +- [enable_cet=no]) ++ [enable_cet=$libc_cv_compiler_default_cet]) + + # We keep the original values in `$config_*' and never modify them, so we + # can write them unchanged into config.make. Everything else uses +-- +2.20.1 + diff --git a/packages/glibc/2.30/0002-x86-Assume-enable-cet-if-GCC-defaults-to-CET-BZ-2522.patch b/packages/glibc/2.30/0002-x86-Assume-enable-cet-if-GCC-defaults-to-CET-BZ-2522.patch new file mode 100644 index 00000000..6f5dbc3d --- /dev/null +++ b/packages/glibc/2.30/0002-x86-Assume-enable-cet-if-GCC-defaults-to-CET-BZ-2522.patch @@ -0,0 +1,80 @@ +From 761452f12781f2d15a50f2dcd9f40c53bc0ff040 Mon Sep 17 00:00:00 2001 +From: Florian Weimer <fweimer@redhat.com> +Date: Tue, 3 Dec 2019 20:26:28 +0100 +Subject: [PATCH] x86: Assume --enable-cet if GCC defaults to CET [BZ #25225] + +This links in CET support if GCC defaults to CET. Otherwise, __CET__ +is defined, yet CET functionality is not compiled and linked into the +dynamic loader, resulting in a linker failure due to undefined +references to _dl_cet_check and _dl_open_check. +--- + NEWS | 1 + + configure | 23 ++++++++++++++++++++++- + configure.ac | 9 ++++++++- + 3 files changed, 31 insertions(+), 2 deletions(-) + +diff --git a/configure b/configure +index c773c487b5..6d26b8246f 100755 +--- a/configure ++++ b/configure +@@ -3777,11 +3777,32 @@ else + fi + + ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++ ++#ifndef __CET__ ++#error no CET compiler support ++#endif ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ libc_cv_compiler_default_cet=yes ++else ++ libc_cv_compiler_default_cet=no ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ + # Check whether --enable-cet was given. + if test "${enable_cet+set}" = set; then : + enableval=$enable_cet; enable_cet=$enableval + else +- enable_cet=no ++ enable_cet=$libc_cv_compiler_default_cet + fi + + +diff --git a/configure.ac b/configure.ac +index 598ba6c4ae..7436485419 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -472,11 +472,18 @@ AC_ARG_ENABLE([mathvec], + [build_mathvec=$enableval], + [build_mathvec=notset]) + ++AC_TRY_COMPILE([], [ ++#ifndef __CET__ ++# error no CET compiler support ++#endif], ++ [libc_cv_compiler_default_cet=yes], ++ [libc_cv_compiler_default_cet=no]) ++ + AC_ARG_ENABLE([cet], + AC_HELP_STRING([--enable-cet], + [enable Intel Control-flow Enforcement Technology (CET), x86 only]), + [enable_cet=$enableval], +- [enable_cet=no]) ++ [enable_cet=$libc_cv_compiler_default_cet]) + + # We keep the original values in `$config_*' and never modify them, so we + # can write them unchanged into config.make. Everything else uses +-- +2.20.1 + diff --git a/packages/glibc/2.31/0000-typedef-caddr.patch b/packages/glibc/2.31/0000-typedef-caddr.patch new file mode 100644 index 00000000..a328da1c --- /dev/null +++ b/packages/glibc/2.31/0000-typedef-caddr.patch @@ -0,0 +1,17 @@ +--- + posix/sys/types.h | 3 +++ + 1 file changed, 3 insertions(+) + +--- a/posix/sys/types.h ++++ b/posix/sys/types.h +@@ -112,7 +112,10 @@ + #ifdef __USE_MISC + # ifndef __daddr_t_defined + typedef __daddr_t daddr_t; ++# if ! defined(caddr_t) && ! defined(__caddr_t_defined) + typedef __caddr_t caddr_t; ++# define __caddr_t_defined ++# endif + # define __daddr_t_defined + # endif + #endif diff --git a/packages/glibc/2.31/0001-Add-ARC-architecture.patch b/packages/glibc/2.31/0001-Add-ARC-architecture.patch new file mode 100644 index 00000000..6b5d514d --- /dev/null +++ b/packages/glibc/2.31/0001-Add-ARC-architecture.patch @@ -0,0 +1,8329 @@ +glibc: Add ARC architecture support to Glibc 2.30 + +This was generated from Synopsys GitHub Glibc WIP fork [1] this way: +----------------->8----------------- +git diff glibc-2.30..arc-2.30-2019.09.06 ':!NEWS' ':!ChangeLog' +----------------->8----------------- + +[1] https://github.com/foss-for-synopsys-dwc-arc-processors/glibc + +Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> + +[Updated to glibc 2.31: remove headers that became generic +(including pthread-offsets.h which had incorrect offsets copied +from 64-bit platforms), remove <asm/unistd.h> inclusion for +syscall numbers, GET_PC -> sigcontext_get_pc rename. Only +build-tested.] +--- + elf/elf.h | 70 +- + locale/Makefile | 5 +- + scripts/build-many-glibcs.py | 4 + + stdlib/longlong.h | 6 +- + support/Makefile | 5 - + sysdeps/arc/Implies | 4 + + sysdeps/arc/Makefile | 25 + + sysdeps/arc/Versions | 6 + + sysdeps/arc/__longjmp.S | 50 + + sysdeps/arc/abort-instr.h | 2 + + sysdeps/arc/atomic-machine.h | 73 + + sysdeps/arc/bits/endianness.h | 15 + + sysdeps/arc/bits/fenv.h | 72 + + sysdeps/arc/bits/link.h | 52 + + sysdeps/arc/bits/setjmp.h | 26 + + sysdeps/arc/bsd-_setjmp.S | 1 + + sysdeps/arc/bsd-setjmp.S | 1 + + sysdeps/arc/configure | 14 + + sysdeps/arc/configure.ac | 11 + + sysdeps/arc/dl-machine.h | 340 +++ + sysdeps/arc/dl-runtime.c | 39 + + sysdeps/arc/dl-sysdep.h | 25 + + sysdeps/arc/dl-tls.h | 30 + + sysdeps/arc/dl-trampoline.S | 80 + + sysdeps/arc/entry.h | 5 + + sysdeps/arc/gccframe.h | 21 + + sysdeps/arc/gmp-mparam.h | 23 + + sysdeps/arc/jmpbuf-offsets.h | 47 + + sysdeps/arc/jmpbuf-unwind.h | 47 + + sysdeps/arc/ldsodefs.h | 43 + + sysdeps/arc/libc-tls.c | 27 + + sysdeps/arc/machine-gmon.h | 35 + + sysdeps/arc/memusage.h | 23 + + sysdeps/arc/nofpu/Implies | 1 + + sysdeps/arc/nofpu/libm-test-ulps | 390 +++ + sysdeps/arc/nofpu/libm-test-ulps-name | 1 + + sysdeps/arc/nofpu/math-tests-exceptions.h | 27 + + sysdeps/arc/nofpu/math-tests-rounding.h | 27 + + sysdeps/arc/nptl/Makefile | 22 + + sysdeps/arc/nptl/bits/pthreadtypes-arch.h | 43 + + sysdeps/arc/nptl/bits/semaphore.h | 32 + + sysdeps/arc/nptl/pthreaddef.h | 32 + + sysdeps/arc/nptl/tcb-offsets.sym | 11 + + sysdeps/arc/nptl/tls.h | 150 ++ + sysdeps/arc/preconfigure | 15 + + sysdeps/arc/setjmp.S | 66 + + sysdeps/arc/sfp-machine.h | 73 + + sysdeps/arc/sotruss-lib.c | 51 + + sysdeps/arc/stackinfo.h | 33 + + sysdeps/arc/start.S | 89 + + sysdeps/arc/sysdep.h | 48 + + sysdeps/arc/tls-macros.h | 47 + + sysdeps/arc/tst-audit.h | 23 + + sysdeps/unix/sysv/linux/arc/Implies | 3 + + sysdeps/unix/sysv/linux/arc/Makefile | 20 + + sysdeps/unix/sysv/linux/arc/Versions | 16 + + sysdeps/unix/sysv/linux/arc/arch-syscall.h | 317 +++ + sysdeps/unix/sysv/linux/arc/bits/procfs.h | 35 + + .../sysv/linux/arc/bits/types/__sigset_t.h | 12 + + sysdeps/unix/sysv/linux/arc/c++-types.data | 67 + + sysdeps/unix/sysv/linux/arc/clone.S | 98 + + sysdeps/unix/sysv/linux/arc/configure | 4 + + sysdeps/unix/sysv/linux/arc/configure.ac | 4 + + sysdeps/unix/sysv/linux/arc/dl-static.c | 84 + + sysdeps/unix/sysv/linux/arc/getcontext.S | 63 + + sysdeps/unix/sysv/linux/arc/ipc_priv.h | 21 + + sysdeps/unix/sysv/linux/arc/jmp_buf-macros.h | 6 + + sysdeps/unix/sysv/linux/arc/kernel-features.h | 28 + + sysdeps/unix/sysv/linux/arc/ld.abilist | 9 + + sysdeps/unix/sysv/linux/arc/ldsodefs.h | 32 + + .../sysv/linux/arc/libBrokenLocale.abilist | 1 + + sysdeps/unix/sysv/linux/arc/libanl.abilist | 4 + + sysdeps/unix/sysv/linux/arc/libc.abilist | 2084 +++++++++++++++++ + sysdeps/unix/sysv/linux/arc/libcrypt.abilist | 2 + + sysdeps/unix/sysv/linux/arc/libdl.abilist | 9 + + sysdeps/unix/sysv/linux/arc/libm.abilist | 753 ++++++ + .../unix/sysv/linux/arc/libpthread.abilist | 240 ++ + sysdeps/unix/sysv/linux/arc/libresolv.abilist | 79 + + sysdeps/unix/sysv/linux/arc/librt.abilist | 35 + + .../unix/sysv/linux/arc/libthread_db.abilist | 40 + + sysdeps/unix/sysv/linux/arc/libutil.abilist | 6 + + sysdeps/unix/sysv/linux/arc/localplt.data | 16 + + sysdeps/unix/sysv/linux/arc/makecontext.c | 75 + + sysdeps/unix/sysv/linux/arc/mmap_internal.h | 27 + + sysdeps/unix/sysv/linux/arc/pt-vfork.S | 1 + + sysdeps/unix/sysv/linux/arc/setcontext.S | 92 + + sysdeps/unix/sysv/linux/arc/shlib-versions | 2 + + sysdeps/unix/sysv/linux/arc/sigaction.c | 31 + + sysdeps/unix/sysv/linux/arc/sigcontextinfo.h | 31 + + sysdeps/unix/sysv/linux/arc/sigrestorer.S | 29 + + sysdeps/unix/sysv/linux/arc/swapcontext.S | 92 + + sysdeps/unix/sysv/linux/arc/sys/cachectl.h | 36 + + sysdeps/unix/sysv/linux/arc/sys/ucontext.h | 63 + + sysdeps/unix/sysv/linux/arc/sys/user.h | 31 + + sysdeps/unix/sysv/linux/arc/syscall.S | 38 + + sysdeps/unix/sysv/linux/arc/syscalls.list | 3 + + sysdeps/unix/sysv/linux/arc/sysdep.c | 33 + + sysdeps/unix/sysv/linux/arc/sysdep.h | 250 ++ + sysdeps/unix/sysv/linux/arc/ucontext-macros.h | 29 + + sysdeps/unix/sysv/linux/arc/ucontext_i.sym | 20 + + sysdeps/unix/sysv/linux/arc/vfork.S | 42 + + sysdeps/unix/sysv/linux/syscall-names.list | 3 + + timezone/zic.c | 2 +- + 103 files changed, 7413 insertions(+), 13 deletions(-) + create mode 100644 sysdeps/arc/Implies + create mode 100644 sysdeps/arc/Makefile + create mode 100644 sysdeps/arc/Versions + create mode 100644 sysdeps/arc/__longjmp.S + create mode 100644 sysdeps/arc/abort-instr.h + create mode 100644 sysdeps/arc/atomic-machine.h + create mode 100644 sysdeps/arc/bits/endianness.h + create mode 100644 sysdeps/arc/bits/fenv.h + create mode 100644 sysdeps/arc/bits/link.h + create mode 100644 sysdeps/arc/bits/setjmp.h + create mode 100644 sysdeps/arc/bsd-_setjmp.S + create mode 100644 sysdeps/arc/bsd-setjmp.S + create mode 100644 sysdeps/arc/configure + create mode 100644 sysdeps/arc/configure.ac + create mode 100644 sysdeps/arc/dl-machine.h + create mode 100644 sysdeps/arc/dl-runtime.c + create mode 100644 sysdeps/arc/dl-sysdep.h + create mode 100644 sysdeps/arc/dl-tls.h + create mode 100644 sysdeps/arc/dl-trampoline.S + create mode 100644 sysdeps/arc/entry.h + create mode 100644 sysdeps/arc/gccframe.h + create mode 100644 sysdeps/arc/gmp-mparam.h + create mode 100644 sysdeps/arc/jmpbuf-offsets.h + create mode 100644 sysdeps/arc/jmpbuf-unwind.h + create mode 100644 sysdeps/arc/ldsodefs.h + create mode 100644 sysdeps/arc/libc-tls.c + create mode 100644 sysdeps/arc/machine-gmon.h + create mode 100644 sysdeps/arc/memusage.h + create mode 100644 sysdeps/arc/nofpu/Implies + create mode 100644 sysdeps/arc/nofpu/libm-test-ulps + create mode 100644 sysdeps/arc/nofpu/libm-test-ulps-name + create mode 100644 sysdeps/arc/nofpu/math-tests-exceptions.h + create mode 100644 sysdeps/arc/nofpu/math-tests-rounding.h + create mode 100644 sysdeps/arc/nptl/Makefile + create mode 100644 sysdeps/arc/nptl/bits/pthreadtypes-arch.h + create mode 100644 sysdeps/arc/nptl/bits/semaphore.h + create mode 100644 sysdeps/arc/nptl/pthreaddef.h + create mode 100644 sysdeps/arc/nptl/tcb-offsets.sym + create mode 100644 sysdeps/arc/nptl/tls.h + create mode 100644 sysdeps/arc/preconfigure + create mode 100644 sysdeps/arc/setjmp.S + create mode 100644 sysdeps/arc/sfp-machine.h + create mode 100644 sysdeps/arc/sotruss-lib.c + create mode 100644 sysdeps/arc/stackinfo.h + create mode 100644 sysdeps/arc/start.S + create mode 100644 sysdeps/arc/sysdep.h + create mode 100644 sysdeps/arc/tls-macros.h + create mode 100644 sysdeps/arc/tst-audit.h + create mode 100644 sysdeps/unix/sysv/linux/arc/Implies + create mode 100644 sysdeps/unix/sysv/linux/arc/Makefile + create mode 100644 sysdeps/unix/sysv/linux/arc/Versions + create mode 100644 sysdeps/unix/sysv/linux/arc/arch-syscall.h + create mode 100644 sysdeps/unix/sysv/linux/arc/bits/procfs.h + create mode 100644 sysdeps/unix/sysv/linux/arc/bits/types/__sigset_t.h + create mode 100644 sysdeps/unix/sysv/linux/arc/c++-types.data + create mode 100644 sysdeps/unix/sysv/linux/arc/clone.S + create mode 100644 sysdeps/unix/sysv/linux/arc/configure + create mode 100644 sysdeps/unix/sysv/linux/arc/configure.ac + create mode 100644 sysdeps/unix/sysv/linux/arc/dl-static.c + create mode 100644 sysdeps/unix/sysv/linux/arc/getcontext.S + create mode 100644 sysdeps/unix/sysv/linux/arc/ipc_priv.h + create mode 100644 sysdeps/unix/sysv/linux/arc/jmp_buf-macros.h + create mode 100644 sysdeps/unix/sysv/linux/arc/kernel-features.h + create mode 100644 sysdeps/unix/sysv/linux/arc/ld.abilist + create mode 100644 sysdeps/unix/sysv/linux/arc/ldsodefs.h + create mode 100644 sysdeps/unix/sysv/linux/arc/libBrokenLocale.abilist + create mode 100644 sysdeps/unix/sysv/linux/arc/libanl.abilist + create mode 100644 sysdeps/unix/sysv/linux/arc/libc.abilist + create mode 100644 sysdeps/unix/sysv/linux/arc/libcrypt.abilist + create mode 100644 sysdeps/unix/sysv/linux/arc/libdl.abilist + create mode 100644 sysdeps/unix/sysv/linux/arc/libm.abilist + create mode 100644 sysdeps/unix/sysv/linux/arc/libpthread.abilist + create mode 100644 sysdeps/unix/sysv/linux/arc/libresolv.abilist + create mode 100644 sysdeps/unix/sysv/linux/arc/librt.abilist + create mode 100644 sysdeps/unix/sysv/linux/arc/libthread_db.abilist + create mode 100644 sysdeps/unix/sysv/linux/arc/libutil.abilist + create mode 100644 sysdeps/unix/sysv/linux/arc/localplt.data + create mode 100644 sysdeps/unix/sysv/linux/arc/makecontext.c + create mode 100644 sysdeps/unix/sysv/linux/arc/mmap_internal.h + create mode 100644 sysdeps/unix/sysv/linux/arc/pt-vfork.S + create mode 100644 sysdeps/unix/sysv/linux/arc/setcontext.S + create mode 100644 sysdeps/unix/sysv/linux/arc/shlib-versions + create mode 100644 sysdeps/unix/sysv/linux/arc/sigaction.c + create mode 100644 sysdeps/unix/sysv/linux/arc/sigcontextinfo.h + create mode 100644 sysdeps/unix/sysv/linux/arc/sigrestorer.S + create mode 100644 sysdeps/unix/sysv/linux/arc/swapcontext.S + create mode 100644 sysdeps/unix/sysv/linux/arc/sys/cachectl.h + create mode 100644 sysdeps/unix/sysv/linux/arc/sys/ucontext.h + create mode 100644 sysdeps/unix/sysv/linux/arc/sys/user.h + create mode 100644 sysdeps/unix/sysv/linux/arc/syscall.S + create mode 100644 sysdeps/unix/sysv/linux/arc/syscalls.list + create mode 100644 sysdeps/unix/sysv/linux/arc/sysdep.c + create mode 100644 sysdeps/unix/sysv/linux/arc/sysdep.h + create mode 100644 sysdeps/unix/sysv/linux/arc/ucontext-macros.h + create mode 100644 sysdeps/unix/sysv/linux/arc/ucontext_i.sym + create mode 100644 sysdeps/unix/sysv/linux/arc/vfork.S + +diff --git a/elf/elf.h b/elf/elf.h +index 2549a177d6..1d235cf3ac 100644 +--- a/elf/elf.h ++++ b/elf/elf.h +@@ -330,7 +330,7 @@ typedef struct + #define EM_CLOUDSHIELD 192 /* CloudShield */ + #define EM_COREA_1ST 193 /* KIPO-KAIST Core-A 1st gen. */ + #define EM_COREA_2ND 194 /* KIPO-KAIST Core-A 2nd gen. */ +-#define EM_ARC_COMPACT2 195 /* Synopsys ARCompact V2 */ ++#define EM_ARCV2 195 /* Synopsys ARCv2 ISA. */ + #define EM_OPEN8 196 /* Open8 RISC */ + #define EM_RL78 197 /* Renesas RL78 */ + #define EM_VIDEOCORE5 198 /* Broadcom VideoCore V */ +@@ -4027,6 +4027,74 @@ enum + #define R_NDS32_TLS_TPOFF 102 + #define R_NDS32_TLS_DESC 119 + ++/* ARCompact/ARCv2 specific relocs. */ ++#define R_ARC_NONE 0x0 ++#define R_ARC_8 0x1 ++#define R_ARC_16 0x2 ++#define R_ARC_24 0x3 ++#define R_ARC_32 0x4 ++#define R_ARC_B26 0x5 ++#define R_ARC_B22_PCREL 0x6 ++#define R_ARC_H30 0x7 ++#define R_ARC_N8 0x8 ++#define R_ARC_N16 0x9 ++#define R_ARC_N24 0xA ++#define R_ARC_N32 0xB ++#define R_ARC_SDA 0xC ++#define R_ARC_SECTOFF 0xD ++#define R_ARC_S21H_PCREL 0xE ++#define R_ARC_S21W_PCREL 0xF ++#define R_ARC_S25H_PCREL 0x10 ++#define R_ARC_S25W_PCREL 0x11 ++#define R_ARC_SDA32 0x12 ++#define R_ARC_SDA_LDST 0x13 ++#define R_ARC_SDA_LDST1 0x14 ++#define R_ARC_SDA_LDST2 0x15 ++#define R_ARC_SDA16_LD 0x16 ++#define R_ARC_SDA16_LD1 0x17 ++#define R_ARC_SDA16_LD2 0x18 ++#define R_ARC_S13_PCREL 0x19 ++#define R_ARC_W 0x1A ++#define R_ARC_32_ME 0x1B ++#define R_ARC_N32_ME 0x1C ++#define R_ARC_SECTOFF_ME 0x1D ++#define R_ARC_SDA32_ME 0x1E ++#define R_ARC_W_ME 0x1F ++#define R_ARC_H30_ME 0x20 ++#define R_ARC_SECTOFF_U8 0x21 ++#define R_ARC_SECTOFF_S9 0x22 ++#define R_AC_SECTOFF_U8 0x23 ++#define R_AC_SECTOFF_U8_1 0x24 ++#define R_AC_SECTOFF_U8_2 0x25 ++#define R_AC_SECTOFF_S9 0x26 ++#define R_AC_SECTOFF_S9_1 0x27 ++#define R_AC_SECTOFF_S9_2 0x28 ++#define R_ARC_SECTOFF_ME_1 0x29 ++#define R_ARC_SECTOFF_ME_2 0x2A ++#define R_ARC_SECTOFF_1 0x2B ++#define R_ARC_SECTOFF_2 0x2C ++#define R_ARC_PC32 0x32 ++#define R_ARC_GOTPC32 0x33 ++#define R_ARC_PLT32 0x34 ++#define R_ARC_COPY 0x35 ++#define R_ARC_GLOB_DAT 0x36 ++#define R_ARC_JUMP_SLOT 0x37 ++#define R_ARC_RELATIVE 0x38 ++#define R_ARC_GOTOFF 0x39 ++#define R_ARC_GOTPC 0x3A ++#define R_ARC_GOT32 0x3B ++ ++#define R_ARC_TLS_DTPMOD 0x42 ++#define R_ARC_TLS_DTPOFF 0x43 ++#define R_ARC_TLS_TPOFF 0x44 ++#define R_ARC_TLS_GD_GOT 0x45 ++#define R_ARC_TLS_GD_LD 0x46 ++#define R_ARC_TLS_GD_CALL 0x47 ++#define R_ARC_TLS_IE_GOT 0x48 ++#define R_ARC_TLS_DTPOFF_S9 0x4a ++#define R_ARC_TLS_LE_S9 0x4a ++#define R_ARC_TLS_LE_32 0x4b ++ + __END_DECLS + + #endif /* elf.h */ +diff --git a/locale/Makefile b/locale/Makefile +index c9694e236e..95a4a432a9 100644 +--- a/locale/Makefile ++++ b/locale/Makefile +@@ -28,6 +28,7 @@ routines = setlocale findlocale loadlocale loadarchive \ + localeconv nl_langinfo nl_langinfo_l mb_cur_max \ + newlocale duplocale freelocale uselocale + tests = tst-C-locale tst-locname tst-duplocale ++tests-special = $(objpfx)tst-locale-locpath.out + categories = ctype messages monetary numeric time paper name \ + address telephone measurement identification collate + aux = $(categories:%=lc-%) $(categories:%=C-%) SYS_libc C_name \ +@@ -62,10 +63,6 @@ lib-modules := charmap-dir simple-hash xmalloc xstrdup \ + GPERF = gperf + GPERFFLAGS = -acCgopt -k1,2,5,9,$$ -L ANSI-C + +-ifeq ($(run-built-tests),yes) +-tests-special += $(objpfx)tst-locale-locpath.out +-endif +- + include ../Rules + + CFLAGS-md5.c += -I../crypt +diff --git a/scripts/build-many-glibcs.py b/scripts/build-many-glibcs.py +index 90b76caa93..1fdf4d44c7 100755 +--- a/scripts/build-many-glibcs.py ++++ b/scripts/build-many-glibcs.py +@@ -155,6 +155,9 @@ class Context(object): + 'cfg': ['--disable-multi-arch']}]) + self.add_config(arch='aarch64_be', + os_name='linux-gnu') ++ self.add_config(arch='arc', ++ os_name='linux-gnu', ++ gcc_cfg=['--disable-multilib', '--with-cpu=archs']) + self.add_config(arch='alpha', + os_name='linux-gnu') + self.add_config(arch='arm', +@@ -1201,6 +1204,7 @@ class LinuxHeadersPolicyForUpdateSyscalls(object): + def install_linux_headers(policy, cmdlist): + """Install Linux kernel headers.""" + arch_map = {'aarch64': 'arm64', ++ 'arc': 'arc', + 'alpha': 'alpha', + 'arm': 'arm', + 'csky': 'csky', +diff --git a/stdlib/longlong.h b/stdlib/longlong.h +index ee4aac1bb5..638b7894d4 100644 +--- a/stdlib/longlong.h ++++ b/stdlib/longlong.h +@@ -199,7 +199,8 @@ extern UDItype __udiv_qrnnd (UDItype *, UDItype, UDItype, UDItype); + : "%r" ((USItype) (ah)), \ + "rICal" ((USItype) (bh)), \ + "%r" ((USItype) (al)), \ +- "rICal" ((USItype) (bl))) ++ "rICal" ((USItype) (bl)) \ ++ : "cc") + #define sub_ddmmss(sh, sl, ah, al, bh, bl) \ + __asm__ ("sub.f %1, %4, %5\n\tsbc %0, %2, %3" \ + : "=r" ((USItype) (sh)), \ +@@ -207,7 +208,8 @@ extern UDItype __udiv_qrnnd (UDItype *, UDItype, UDItype, UDItype); + : "r" ((USItype) (ah)), \ + "rICal" ((USItype) (bh)), \ + "r" ((USItype) (al)), \ +- "rICal" ((USItype) (bl))) ++ "rICal" ((USItype) (bl)) \ ++ : "cc") + + #define __umulsidi3(u,v) ((UDItype)(USItype)u*(USItype)v) + #ifdef __ARC_NORM__ +diff --git a/support/Makefile b/support/Makefile +index 3325feb790..d9fdc46ffa 100644 +--- a/support/Makefile ++++ b/support/Makefile +@@ -188,12 +188,7 @@ CFLAGS-support_paths.c = \ + -DSBINDIR_PATH=\"$(sbindir)\" \ + -DROOTSBINDIR_PATH=\"$(rootsbindir)\" + +-ifeq (,$(CXX)) + LINKS_DSO_PROGRAM = links-dso-program-c +-else +-LINKS_DSO_PROGRAM = links-dso-program +-LDLIBS-links-dso-program = -lstdc++ -lgcc -lgcc_s $(libunwind) +-endif + + ifeq (yes,$(have-selinux)) + LDLIBS-$(LINKS_DSO_PROGRAM) += -lselinux +diff --git a/sysdeps/arc/Implies b/sysdeps/arc/Implies +new file mode 100644 +index 0000000000..a0f0b00cfa +--- /dev/null ++++ b/sysdeps/arc/Implies +@@ -0,0 +1,4 @@ ++init_array ++wordsize-32 ++ieee754/flt-32 ++ieee754/dbl-64 +diff --git a/sysdeps/arc/Makefile b/sysdeps/arc/Makefile +new file mode 100644 +index 0000000000..8d2fbe00c5 +--- /dev/null ++++ b/sysdeps/arc/Makefile +@@ -0,0 +1,25 @@ ++# ARC Makefile ++# Copyright (C) 1993-2019 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 ++# <http://www.gnu.org/licenses/>. ++ ++# We don't support long doubles as a distinct type. We don't need to set ++# this variable; it's here mostly for documentational purposes. ++long-double-fcts = no ++ ++ifeq ($(subdir),debug) ++CFLAGS-backtrace.c += -funwind-tables ++endif +diff --git a/sysdeps/arc/Versions b/sysdeps/arc/Versions +new file mode 100644 +index 0000000000..ca0856d2db +--- /dev/null ++++ b/sysdeps/arc/Versions +@@ -0,0 +1,6 @@ ++libc { ++ GLIBC_2.30 { ++ __syscall_error; ++ __mcount; ++ } ++} +diff --git a/sysdeps/arc/__longjmp.S b/sysdeps/arc/__longjmp.S +new file mode 100644 +index 0000000000..8296aa445f +--- /dev/null ++++ b/sysdeps/arc/__longjmp.S +@@ -0,0 +1,50 @@ ++/* longjmp for ARC. ++ Copyright (C) 2017-2019 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 ++ <http://www.gnu.org/licenses/>. */ ++ ++#include <sysdep.h> ++#include <jmpbuf-offsets.h> ++ ++;@ r0 = jump buffer from which regs will be restored ++;@ r1 = value that setjmp( ) will return due to this longjmp ++ ++ENTRY (__longjmp) ++ ++ ld_s r13, [r0] ++ ld_s r14, [r0,4] ++ ld r15, [r0,8] ++ ld r16, [r0,12] ++ ld r17, [r0,16] ++ ld r18, [r0,20] ++ ld r19, [r0,24] ++ ld r20, [r0,28] ++ ld r21, [r0,32] ++ ld r22, [r0,36] ++ ld r23, [r0,40] ++ ld r24, [r0,44] ++ ld r25, [r0,48] ++ ++ ld blink, [r0,60] ++ ld fp, [r0,52] ++ ld sp, [r0,56] ++ ++ mov.f r0, r1 ; get the setjmp return value(due to longjmp) in place ++ ++ j.d [blink] ; to caller of setjmp location, right after the call ++ mov.z r0, 1 ; can't let setjmp return 0 when it is due to longjmp ++ ++END (__longjmp) +diff --git a/sysdeps/arc/abort-instr.h b/sysdeps/arc/abort-instr.h +new file mode 100644 +index 0000000000..49f33613c4 +--- /dev/null ++++ b/sysdeps/arc/abort-instr.h +@@ -0,0 +1,2 @@ ++/* FLAG 1 is privilege mode only instruction, hence will crash any program. */ ++#define ABORT_INSTRUCTION asm ("flag 1") +diff --git a/sysdeps/arc/atomic-machine.h b/sysdeps/arc/atomic-machine.h +new file mode 100644 +index 0000000000..bdc91d0558 +--- /dev/null ++++ b/sysdeps/arc/atomic-machine.h +@@ -0,0 +1,73 @@ ++/* Low-level functions for atomic operations. ARC version. ++ Copyright (C) 2012-2019 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 ++ <http://www.gnu.org/licenses/>. */ ++ ++#ifndef _ARC_BITS_ATOMIC_H ++#define _ARC_BITS_ATOMIC_H 1 ++ ++#include <stdint.h> ++ ++typedef int32_t atomic32_t; ++typedef uint32_t uatomic32_t; ++typedef int_fast32_t atomic_fast32_t; ++typedef uint_fast32_t uatomic_fast32_t; ++ ++typedef intptr_t atomicptr_t; ++typedef uintptr_t uatomicptr_t; ++typedef intmax_t atomic_max_t; ++typedef uintmax_t uatomic_max_t; ++ ++#define __HAVE_64B_ATOMICS 0 ++#define USE_ATOMIC_COMPILER_BUILTINS 1 ++ ++/* ARC does have legacy atomic EX reg, [mem] instruction but the micro-arch ++ is not as optimal as LLOCK/SCOND specially for SMP. */ ++#define ATOMIC_EXCHANGE_USES_CAS 1 ++ ++#define __arch_compare_and_exchange_bool_8_acq(mem, newval, oldval) \ ++ (abort (), 0) ++#define __arch_compare_and_exchange_bool_16_acq(mem, newval, oldval) \ ++ (abort (), 0) ++#define __arch_compare_and_exchange_bool_64_acq(mem, newval, oldval) \ ++ (abort (), 0) ++ ++#define __arch_compare_and_exchange_val_8_int(mem, newval, oldval, model) \ ++ (abort (), (__typeof (*mem)) 0) ++#define __arch_compare_and_exchange_val_16_int(mem, newval, oldval, model) \ ++ (abort (), (__typeof (*mem)) 0) ++#define __arch_compare_and_exchange_val_64_int(mem, newval, oldval, model) \ ++ (abort (), (__typeof (*mem)) 0) ++ ++#define __arch_compare_and_exchange_val_32_int(mem, newval, oldval, model) \ ++ ({ \ ++ typeof (*mem) __oldval = (oldval); \ ++ __atomic_compare_exchange_n (mem, (void *) &__oldval, newval, 0, \ ++ model, __ATOMIC_RELAXED); \ ++ __oldval; \ ++ }) ++ ++#define atomic_compare_and_exchange_val_acq(mem, new, old) \ ++ __atomic_val_bysize (__arch_compare_and_exchange_val, int, \ ++ mem, new, old, __ATOMIC_ACQUIRE) ++ ++#ifdef __ARC700__ ++#define atomic_full_barrier() ({ asm volatile ("sync":::"memory"); }) ++#else ++#define atomic_full_barrier() ({ asm volatile ("dmb 3":::"memory"); }) ++#endif ++ ++#endif /* _ARC_BITS_ATOMIC_H */ +diff --git a/sysdeps/arc/bits/endianness.h b/sysdeps/arc/bits/endianness.h +new file mode 100644 +index 0000000000..21fae520cd +--- /dev/null ++++ b/sysdeps/arc/bits/endianness.h +@@ -0,0 +1,15 @@ ++#ifndef _BITS_ENDIANNESS_H ++#define _BITS_ENDIANNESS_H 1 ++/* Although ARC CPU can do BE, it is not supported. */ ++ ++#ifndef _BITS_ENDIAN_H ++# error "Never use <bits/endianness.h> directly; include <endian.h> instead." ++#endif ++ ++#ifdef __LITTLE_ENDIAN__ ++# define __BYTE_ORDER __LITTLE_ENDIAN ++#endif ++#ifdef __BIG_ENDIAN__ ++# error "Big Endian NOt supported on ARC" ++#endif ++#endif /* bits/endianness.h */ +diff --git a/sysdeps/arc/bits/fenv.h b/sysdeps/arc/bits/fenv.h +new file mode 100644 +index 0000000000..58388fb43a +--- /dev/null ++++ b/sysdeps/arc/bits/fenv.h +@@ -0,0 +1,72 @@ ++/* Copyright (C) 2012-2019 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 ++ <http://www.gnu.org/licenses/>. */ ++ ++#ifndef _FENV_H ++# error "Never use <bits/fenv.h> directly; include <fenv.h> instead." ++#endif ++ ++enum ++ { ++ FE_INVALID = ++# define FE_INVALID (0x01) ++ FE_INVALID, ++ FE_DIVBYZERO = ++# define FE_DIVBYZERO (0x02) ++ FE_DIVBYZERO, ++ FE_OVERFLOW = ++# define FE_OVERFLOW (0x04) ++ FE_OVERFLOW, ++ FE_UNDERFLOW = ++# define FE_UNDERFLOW (0x08) ++ FE_UNDERFLOW, ++ FE_INEXACT = ++# define FE_INEXACT (0x10) ++ FE_INEXACT ++ }; ++ ++# define FE_ALL_EXCEPT \ ++ (FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW | FE_INEXACT) ++ ++enum ++ { ++ FE_TOWARDZERO = ++# define FE_TOWARDZERO (0x0) ++ FE_TOWARDZERO, ++ FE_TONEAREST = ++# define FE_TONEAREST (0x1) ++ FE_TONEAREST, ++ FE_UPWARD = ++# define FE_UPWARD (0x2) ++ FE_UPWARD, ++ FE_DOWNWARD = ++# define FE_DOWNWARD (0x3) ++ FE_DOWNWARD ++ }; ++ ++typedef unsigned int fexcept_t; ++typedef unsigned int fenv_t; ++ ++/* If the default argument is used we use this value. */ ++#define FE_DFL_ENV ((const fenv_t *) -1) ++ ++#if __GLIBC_USE (IEC_60559_BFP_EXT) ++/* Type representing floating-point control modes. */ ++typedef unsigned int femode_t; ++ ++/* Default floating-point control modes. */ ++# define FE_DFL_MODE ((const femode_t *) -1L) ++#endif +diff --git a/sysdeps/arc/bits/link.h b/sysdeps/arc/bits/link.h +new file mode 100644 +index 0000000000..c4508ab666 +--- /dev/null ++++ b/sysdeps/arc/bits/link.h +@@ -0,0 +1,52 @@ ++/* Machine-specific declarations for dynamic linker interface, ARC version. ++ Copyright (C) 2009-2019 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 ++ <http://www.gnu.org/licenses/>. */ ++ ++#ifndef _LINK_H ++# error "Never include <bits/link.h> directly; use <link.h> instead." ++#endif ++ ++/* Registers for entry into PLT on ARC. */ ++typedef struct La_arc_regs ++{ ++ uint32_t lr_reg[8]; /* r0 through r7 (upto 8 args). */ ++} La_arc_regs; ++ ++/* Return values for calls from PLT on ARC. */ ++typedef struct La_arc_retval ++{ ++ /* For ARCv2, a 64-bit integer return value can use 2 regs. */ ++ uint32_t lrv_reg[2]; ++} La_arc_retval; ++ ++__BEGIN_DECLS ++ ++extern ElfW(Addr) la_arc_gnu_pltenter (ElfW(Sym) *__sym, unsigned int __ndx, ++ uintptr_t *__refcook, ++ uintptr_t *__defcook, ++ La_arc_regs *__regs, ++ unsigned int *__flags, ++ const char *__symname, ++ long int *__framesizep); ++extern unsigned int la_arc_gnu_pltexit (ElfW(Sym) *__sym, unsigned int __ndx, ++ uintptr_t *__refcook, ++ uintptr_t *__defcook, ++ const La_arc_regs *__inregs, ++ La_arc_retval *__outregs, ++ const char *symname); ++ ++__END_DECLS +diff --git a/sysdeps/arc/bits/setjmp.h b/sysdeps/arc/bits/setjmp.h +new file mode 100644 +index 0000000000..3cb457d097 +--- /dev/null ++++ b/sysdeps/arc/bits/setjmp.h +@@ -0,0 +1,26 @@ ++/* Define the machine-dependent type `jmp_buf'. ARC version. ++ Copyright (C) 1992-2019 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 ++ <http://www.gnu.org/licenses/>. */ ++ ++#ifndef _ARC_BITS_SETJMP_H ++#define _ARC_BITS_SETJMP_H 1 ++ ++/* Saves r13-r25 (callee-saved), fp (frame pointer), sp (stack pointer), ++ blink (branch-n-link). */ ++typedef long int __jmp_buf[32]; ++ ++#endif +diff --git a/sysdeps/arc/bsd-_setjmp.S b/sysdeps/arc/bsd-_setjmp.S +new file mode 100644 +index 0000000000..90b99cd8c3 +--- /dev/null ++++ b/sysdeps/arc/bsd-_setjmp.S +@@ -0,0 +1 @@ ++/* _setjmp is in setjmp.S. */ +diff --git a/sysdeps/arc/bsd-setjmp.S b/sysdeps/arc/bsd-setjmp.S +new file mode 100644 +index 0000000000..d3b823c118 +--- /dev/null ++++ b/sysdeps/arc/bsd-setjmp.S +@@ -0,0 +1 @@ ++/* setjmp is in setjmp.S. */ +diff --git a/sysdeps/arc/configure b/sysdeps/arc/configure +new file mode 100644 +index 0000000000..52e286da2e +--- /dev/null ++++ b/sysdeps/arc/configure +@@ -0,0 +1,14 @@ ++# This file is generated from configure.ac by Autoconf. DO NOT EDIT! ++ # Local configure fragment for sysdeps/arc. ++ ++$as_echo "#define PI_STATIC_AND_HIDDEN 1" >>confdefs.h ++ ++libc_cv_have_sdata_section=no ++ ++# For ARC, historically ; was used for comments and not newline ++# Later # also got added to comment list, but ; couldn't be switched to ++# canonical newline as there's lots of code out there which will break ++libc_cv_asm_line_sep='`' ++cat >>confdefs.h <<_ACEOF ++#define ASM_LINE_SEP $libc_cv_asm_line_sep ++_ACEOF +diff --git a/sysdeps/arc/configure.ac b/sysdeps/arc/configure.ac +new file mode 100644 +index 0000000000..1074d312f0 +--- /dev/null ++++ b/sysdeps/arc/configure.ac +@@ -0,0 +1,11 @@ ++GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. ++# Local configure fragment for sysdeps/arc. ++ ++AC_DEFINE(PI_STATIC_AND_HIDDEN) ++libc_cv_have_sdata_section=no ++ ++# For ARC, historically ; was used for comments and not newline ++# Later # also got added to comment list, but ; couldn't be switched to ++# canonical newline as there's lots of code out there which will break ++libc_cv_asm_line_sep='`' ++AC_DEFINE_UNQUOTED(ASM_LINE_SEP, $libc_cv_asm_line_sep) +diff --git a/sysdeps/arc/dl-machine.h b/sysdeps/arc/dl-machine.h +new file mode 100644 +index 0000000000..c81acb9d4f +--- /dev/null ++++ b/sysdeps/arc/dl-machine.h +@@ -0,0 +1,340 @@ ++/* Machine-dependent ELF dynamic relocation inline functions. ARC version. ++ Copyright (C) 1995-2019 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 ++ <http://www.gnu.org/licenses/>. */ ++ ++#ifndef dl_machine_h ++#define dl_machine_h ++ ++#define ELF_MACHINE_NAME "arc" ++ ++#include <entry.h> ++ ++#ifndef ENTRY_POINT ++# error ENTRY_POINT needs to be defined for ARC ++#endif ++ ++#include <string.h> ++#include <link.h> ++#include <dl-tls.h> ++ ++/* Dynamic Linking ABI for ARCv2 ISA. ++ ++ PLT ++ -------------------------------- <---- DT_PLTGOT ++ | ld r11, [pcl, off-to-GOT[1] | 0 ++ | | 4 ++ plt0 | ld r10, [pcl, off-to-GOT[2] | 8 ++ | | 12 ++ | j [r10] | 16 ++ -------------------------------- ++ | Base address of GOT | 20 ++ -------------------------------- ++ | ld r12, [pcl, off-to-GOT[3] | 24 ++ plt1 | | ++ | j.d [r12] | 32 ++ | mov r12, pcl | 36 ++ -------------------------------- ++ | | 40 ++ ~ ~ ++ ~ ~ ++ | | ++ -------------------------------- ++ ++ .got ++ -------------- ++ | [0] | ++ | ... | Runtime address for data symbols ++ | [n] | ++ -------------- ++ ++ .got.plt ++ -------------- ++ | [0] | Build address of .dynamic ++ -------------- ++ | [1] | Module info - setup by ld.so ++ -------------- ++ | [2] | resolver entry point ++ -------------- ++ | [3] | ++ | ... | Runtime address for function symbols ++ | [f] | ++ -------------- ++ ++ For ARCompact, the PLT is 12 bytes due to short instructions ++ ++ -------------------------------- ++ | ld r12, [pcl, off-to-GOT[3] | 24 (12 bytes each) ++ plt1 | | ++ | j_s.d [r12] | 32 ++ | mov_s r12, pcl | 34 ++ -------------------------------- ++ | | 36 */ ++ ++/* Return nonzero iff ELF header is compatible with the running host. */ ++static inline int ++elf_machine_matches_host (const Elf32_Ehdr *ehdr) ++{ ++ return (ehdr->e_machine == EM_ARCV2 /* ARC HS. */ ++ || ehdr->e_machine == EM_ARC_COMPACT); /* ARC 700. */ ++} ++ ++/* Get build time address of .dynamic as setup in GOT[0] ++ This is called very early in _dl_start() so it has not been relocated to ++ runtime value. */ ++static inline ElfW(Addr) ++elf_machine_dynamic (void) ++{ ++ extern const ElfW(Addr) _GLOBAL_OFFSET_TABLE_[] attribute_hidden; ++ return _GLOBAL_OFFSET_TABLE_[0]; ++} ++ ++ ++/* Return the run-time load address of the shared object. */ ++static inline ElfW(Addr) ++elf_machine_load_address (void) ++{ ++ ElfW(Addr) build_addr, run_addr; ++ ++ /* For build address, below generates ++ ld r0, [pcl, _GLOBAL_OFFSET_TABLE_@pcl]. */ ++ build_addr = elf_machine_dynamic (); ++ __asm__ ("add %0, pcl, _DYNAMIC@pcl \n" : "=r" (run_addr)); ++ ++ return run_addr - build_addr; ++} ++ ++/* Set up the loaded object described by L so its unrelocated PLT ++ entries will jump to the on-demand fixup code in dl-runtime.c. */ ++ ++static inline int ++__attribute__ ((always_inline)) ++elf_machine_runtime_setup (struct link_map *l, int lazy, int profile) ++{ ++ extern void _dl_runtime_resolve (Elf32_Word); ++ ++ if (l->l_info[DT_JMPREL] && lazy) ++ { ++ /* On ARC DT_PLTGOT point to .plt whose 5th word (after the PLT header) ++ contains the address of .got. */ ++ ElfW(Addr) *plt_base = (ElfW(Addr) *) D_PTR (l, l_info[DT_PLTGOT]); ++ ElfW(Addr) *got = (ElfW(Addr) *) (plt_base[5] + l->l_addr); ++ ++ got[1] = (ElfW(Addr)) l; /* Identify this shared object. */ ++ ++ /* This function will get called to fix up the GOT entry indicated by ++ the offset on the stack, and then jump to the resolved address. */ ++ got[2] = (ElfW(Addr)) &_dl_runtime_resolve; ++ } ++ ++ return lazy; ++} ++ ++/* What this code does: ++ -ldso starts execution here when kernel returns from execve() ++ -calls into generic ldso entry point _dl_start( ) ++ -optionally adjusts argc for executable if exec passed as cmd ++ -calls into app main with address of finaliser. */ ++ ++#define RTLD_START asm ("\ ++.text \n\ ++.globl __start \n\ ++.type __start, @function \n\ ++__start: \n\ ++ ; (1). bootstrap ld.so \n\ ++ bl.d _dl_start \n\ ++ mov_s r0, sp ; pass ptr to aux vector tbl \n\ ++ mov r13, r0 ; safekeep app elf entry point \n\ ++ \n\ ++ ; (2). If ldso ran with executable as arg \n\ ++ ; skip the extra args calc by dl_start() \n\ ++ ld_s r1, [sp] ; orig argc \n\ ++ ld r12, [pcl, _dl_skip_args@pcl] \n\ ++ breq r12, 0, 1f \n\ ++ \n\ ++ add2 sp, sp, r12 ; discard argv entries from stack\n\ ++ sub_s r1, r1, r12 ; adjusted argc, on stack \n\ ++ st_s r1, [sp] \n\ ++ add r2, sp, 4 \n\ ++ ld r3, [pcl, _dl_argv@gotpc] ; ST doesn't support this addressing mode \n\ ++ st r2, [r3] \n\ ++1: \n\ ++ ; (3). call preinit stuff \n\ ++ ld r0, [pcl, _rtld_local@pcl] \n\ ++ add r2, sp, 4 ; argv \n\ ++ add2 r3, r2, r1 \n\ ++ add r3, r3, 4 ; env \n\ ++ bl _dl_init@plt \n\ ++ \n\ ++ ; (4) call app elf entry point \n\ ++ add r0, pcl, _dl_fini@pcl \n\ ++ j [r13] \n\ ++ \n\ ++ .size __start,.-__start \n\ ++ .previous \n\ ++"); ++ ++/* ELF_RTYPE_CLASS_PLT iff TYPE describes relocation of a PLT entry, so ++ PLT entries should not be allowed to define the value. ++ ELF_RTYPE_CLASS_NOCOPY iff TYPE should not be allowed to resolve to one ++ of the main executable's symbols, as for a COPY reloc. */ ++#define elf_machine_type_class(type) \ ++ ((((type) == R_ARC_JUMP_SLOT \ ++ || (type) == R_ARC_TLS_DTPMOD \ ++ || (type) == R_ARC_TLS_DTPOFF \ ++ || (type) == R_ARC_TLS_TPOFF) * ELF_RTYPE_CLASS_PLT) \ ++ | (((type) == R_ARC_COPY) * ELF_RTYPE_CLASS_COPY)) ++ ++/* A reloc type used for ld.so cmdline arg lookups to reject PLT entries. */ ++#define ELF_MACHINE_JMP_SLOT R_ARC_JUMP_SLOT ++ ++/* ARC uses Elf32_Rela relocations. */ ++#define ELF_MACHINE_NO_REL 1 ++#define ELF_MACHINE_NO_RELA 0 ++ ++/* Fixup a PLT entry to bounce directly to the function at VALUE. */ ++ ++static inline ElfW(Addr) ++elf_machine_fixup_plt (struct link_map *map, lookup_t t, ++ const ElfW(Sym) *refsym, const ElfW(Sym) *sym, ++ const Elf32_Rela *reloc, ++ ElfW(Addr) *reloc_addr, ElfW(Addr) value) ++{ ++ return *reloc_addr = value; ++} ++ ++/* Return the final value of a plt relocation. */ ++static inline ElfW(Addr) ++elf_machine_plt_value (struct link_map *map, const Elf32_Rela *reloc, ++ ElfW(Addr) value) ++{ ++ return value; ++} ++ ++/* Names of the architecture-specific auditing callback functions. */ ++#define ARCH_LA_PLTENTER arc_gnu_pltenter ++#define ARCH_LA_PLTEXIT arc_gnu_pltexit ++ ++#endif /* dl_machine_h */ ++ ++#ifdef RESOLVE_MAP ++ ++auto inline void ++__attribute__ ((always_inline)) ++elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc, ++ const ElfW(Sym) *sym, const struct r_found_version *version, ++ void *const reloc_addr_arg, int skip_ifunc) ++{ ++ ElfW(Addr) *const reloc_addr = reloc_addr_arg; ++ const unsigned int r_type = ELF32_R_TYPE (reloc->r_info); ++ ++ if (__glibc_unlikely (r_type == R_ARC_RELATIVE)) ++ *reloc_addr += map->l_addr; ++ else if (__glibc_unlikely (r_type == R_ARC_NONE)) ++ return; ++ else ++ { ++ const ElfW(Sym) *const refsym = sym; ++ struct link_map *sym_map = RESOLVE_MAP (&sym, version, r_type); ++ ElfW(Addr) value = SYMBOL_ADDRESS (sym_map, sym, true); ++ ++ switch (r_type) ++ { ++ case R_ARC_COPY: ++ if (__glibc_unlikely (sym == NULL)) ++ /* This can happen in trace mode if an object could not be ++ found. */ ++ break; ++ ++ size_t size = sym->st_size; ++ if (__glibc_unlikely (size != refsym->st_size)) ++ { ++ const char *strtab = (const void *) D_PTR (map, l_info[DT_STRTAB]); ++ if (sym->st_size > refsym->st_size) ++ size = refsym->st_size; ++ if (sym->st_size > refsym->st_size || GLRO(dl_verbose)) ++ _dl_error_printf ("\ ++ %s: Symbol `%s' has different size in shared object, consider re-linking\n", ++ rtld_progname ?: "<program name unknown>", ++ strtab + refsym->st_name); ++ } ++ ++ memcpy (reloc_addr_arg, (void *) value, size); ++ break; ++ case R_ARC_GLOB_DAT: ++ case R_ARC_JUMP_SLOT: ++ *reloc_addr = value; ++ break; ++ case R_ARC_TLS_DTPMOD: ++ if (sym_map != NULL) ++ /* Get the information from the link map returned by the ++ resolv function. */ ++ *reloc_addr = sym_map->l_tls_modid; ++ break; ++ ++ case R_ARC_TLS_DTPOFF: ++ if (sym != NULL) ++ /* Offset set by the linker in the GOT entry would be overwritten ++ by dynamic loader instead of added to the symbol location. ++ Other target have the same approach on DTSOFF relocs. */ ++ *reloc_addr += sym->st_value; ++ break; ++ ++ case R_ARC_TLS_TPOFF: ++ if (sym != NULL) ++ { ++ CHECK_STATIC_TLS (map, sym_map); ++ *reloc_addr = sym_map->l_tls_offset + sym->st_value + reloc->r_addend; ++ } ++ break; ++ case R_ARC_32: ++ *reloc_addr += value + reloc->r_addend; ++ break; ++ ++ case R_ARC_PC32: ++ *reloc_addr += value + reloc->r_addend - (unsigned long int) reloc_addr; ++ break; ++ ++ default: ++ _dl_reloc_bad_type (map, r_type, 0); ++ break; ++ } ++ } ++} ++ ++auto inline void ++__attribute__ ((always_inline)) ++elf_machine_rela_relative (ElfW(Addr) l_addr, const ElfW(Rela) *reloc, ++ void *const reloc_addr_arg) ++{ ++ ElfW(Addr) *const reloc_addr = reloc_addr_arg; ++ *reloc_addr += l_addr; // + reloc->r_addend; ++} ++ ++auto inline void ++__attribute__ ((always_inline)) ++elf_machine_lazy_rel (struct link_map *map, ++ ElfW(Addr) l_addr, const ElfW(Rela) *reloc, ++ int skip_ifunc) ++{ ++ ElfW(Addr) *const reloc_addr = (void *) (l_addr + reloc->r_offset); ++ if (ELF32_R_TYPE (reloc->r_info) == R_ARC_JUMP_SLOT) ++ *reloc_addr += l_addr; ++ else ++ _dl_reloc_bad_type (map, ELF32_R_TYPE (reloc->r_info), 1); ++} ++ ++#endif /* RESOLVE_MAP */ +diff --git a/sysdeps/arc/dl-runtime.c b/sysdeps/arc/dl-runtime.c +new file mode 100644 +index 0000000000..48f4a5a7e1 +--- /dev/null ++++ b/sysdeps/arc/dl-runtime.c +@@ -0,0 +1,39 @@ ++/* dl-runtime helpers for ARC. ++ Copyright (C) 2017-2019 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 ++ <http://www.gnu.org/licenses/>. */ ++ ++/* PLT jump into resolver passes PC of PLTn, while _dl_fixup expects the ++ address of corresponding .rela.plt entry. */ ++ ++#ifdef __A7__ ++# define ARC_PLT_SIZE 12 ++#else ++# define ARC_PLT_SIZE 16 ++#endif ++ ++#define reloc_index \ ++({ \ ++ unsigned long int plt0 = D_PTR (l, l_info[DT_PLTGOT]); \ ++ unsigned long int pltn = reloc_arg; \ ++ /* Exclude PL0 and PLT1. */ \ ++ unsigned long int idx = (pltn - plt0)/ARC_PLT_SIZE - 2; \ ++ idx; \ ++}) ++ ++#define reloc_offset reloc_index * sizeof (PLTREL) ++ ++#include <elf/dl-runtime.c> +diff --git a/sysdeps/arc/dl-sysdep.h b/sysdeps/arc/dl-sysdep.h +new file mode 100644 +index 0000000000..ffc30b6937 +--- /dev/null ++++ b/sysdeps/arc/dl-sysdep.h +@@ -0,0 +1,25 @@ ++/* System-specific settings for dynamic linker code. ARC version. ++ Copyright (C) 2009-2019 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 ++ <http://www.gnu.org/licenses/>. */ ++ ++#include_next <dl-sysdep.h> ++ ++/* _dl_argv cannot be attribute_relro, because _dl_start_user ++ might write into it after _dl_start returns. */ ++#define DL_ARGV_NOT_RELRO 1 ++ ++#define DL_EXTERN_PROTECTED_DATA +diff --git a/sysdeps/arc/dl-tls.h b/sysdeps/arc/dl-tls.h +new file mode 100644 +index 0000000000..7f0cf91e40 +--- /dev/null ++++ b/sysdeps/arc/dl-tls.h +@@ -0,0 +1,30 @@ ++/* Thread-local storage handling in the ELF dynamic linker. ARC version. ++ Copyright (C) 2012-2019 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 ++ <http://www.gnu.org/licenses/>. */ ++ ++ ++/* Type used for the representation of TLS information in the GOT. */ ++typedef struct ++{ ++ unsigned long int ti_module; ++ unsigned long int ti_offset; ++} tls_index; ++ ++extern void *__tls_get_addr (tls_index *ti); ++ ++/* Value used for dtv entries for which the allocation is delayed. */ ++#define TLS_DTV_UNALLOCATED ((void *) -1l) +diff --git a/sysdeps/arc/dl-trampoline.S b/sysdeps/arc/dl-trampoline.S +new file mode 100644 +index 0000000000..9da75fb1fe +--- /dev/null ++++ b/sysdeps/arc/dl-trampoline.S +@@ -0,0 +1,80 @@ ++/* PLT trampolines. ARC version. ++ Copyright (C) 2005-2019 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 ++ <http://www.gnu.org/licenses/>. */ ++ ++#include <sysdep.h> ++#include <libc-symbols.h> ++ ++#include <sysdep.h> ++#include <sys/syscall.h> ++ ++/* Save the registers which resolver could possibly clobber ++ r0-r9: args to the function - symbol being resolved ++ r10-r12 are already clobbered by PLTn, PLT0 thus neednot be saved. */ ++ ++.macro SAVE_CALLER_SAVED ++ push_s r0 ++ push_s r1 ++ push_s r2 ++ push_s r3 ++ st.a r4, [sp, -4] ++ st.a r5, [sp, -4] ++ st.a r6, [sp, -4] ++ st.a r7, [sp, -4] ++ st.a r8, [sp, -4] ++ st.a r9, [sp, -4] ++ cfi_adjust_cfa_offset (40) ++ push_s blink ++ cfi_adjust_cfa_offset (4) ++ cfi_rel_offset (blink, 0) ++.endm ++ ++.macro RESTORE_CALLER_SAVED_BUT_R0 ++ ld.ab blink,[sp, 4] ++ cfi_adjust_cfa_offset (-4) ++ cfi_restore (blink) ++ ld.ab r9, [sp, 4] ++ ld.ab r8, [sp, 4] ++ ld.ab r7, [sp, 4] ++ ld.ab r6, [sp, 4] ++ ld.ab r5, [sp, 4] ++ ld.ab r4, [sp, 4] ++ pop_s r3 ++ pop_s r2 ++ pop_s r1 ++ cfi_adjust_cfa_offset (-36) ++.endm ++ ++/* Upon entry, PLTn, which led us here, sets up the following regs ++ r11 = Module info (tpnt pointer as expected by resolver) ++ r12 = PC of the PLTn itself - needed by resolver to find ++ corresponding .rela.plt entry. */ ++ ++ENTRY (_dl_runtime_resolve) ++ ; args to func being resolved, which resolver might clobber ++ SAVE_CALLER_SAVED ++ ++ mov_s r1, r12 ++ bl.d _dl_fixup ++ mov r0, r11 ++ ++ RESTORE_CALLER_SAVED_BUT_R0 ++ j_s.d [r0] /* r0 has resolved function addr. */ ++ pop_s r0 /* restore first arg to resolved call. */ ++ cfi_adjust_cfa_offset (-4) ++ cfi_restore (r0) ++END (_dl_runtime_resolve) +diff --git a/sysdeps/arc/entry.h b/sysdeps/arc/entry.h +new file mode 100644 +index 0000000000..adb01d981a +--- /dev/null ++++ b/sysdeps/arc/entry.h +@@ -0,0 +1,5 @@ ++#ifndef __ASSEMBLY__ ++extern void __start (void) attribute_hidden; ++#endif ++ ++#define ENTRY_POINT __start +diff --git a/sysdeps/arc/gccframe.h b/sysdeps/arc/gccframe.h +new file mode 100644 +index 0000000000..40487fa77b +--- /dev/null ++++ b/sysdeps/arc/gccframe.h +@@ -0,0 +1,21 @@ ++/* Definition of object in frame unwind info. ARC version. ++ Copyright (C) 2017-2019 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 ++ <http://www.gnu.org/licenses/>. */ ++ ++#define FIRST_PSEUDO_REGISTER 40 ++ ++#include <sysdeps/generic/gccframe.h> +diff --git a/sysdeps/arc/gmp-mparam.h b/sysdeps/arc/gmp-mparam.h +new file mode 100644 +index 0000000000..e30695fc6b +--- /dev/null ++++ b/sysdeps/arc/gmp-mparam.h +@@ -0,0 +1,23 @@ ++/* gmp-mparam.h -- Compiler/machine parameter header file. ++ ++Copyright (C) 2017-2019 Free Software Foundation, Inc. ++ ++This file is part of the GNU MP Library. ++ ++The GNU MP 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 MP 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 MP Library; see the file COPYING.LIB. If not, see ++<http://www.gnu.org/licenses/>. */ ++ ++#include <sysdeps/generic/gmp-mparam.h> ++ ++#define IEEE_DOUBLE_BIG_ENDIAN 0 +diff --git a/sysdeps/arc/jmpbuf-offsets.h b/sysdeps/arc/jmpbuf-offsets.h +new file mode 100644 +index 0000000000..9760f3a389 +--- /dev/null ++++ b/sysdeps/arc/jmpbuf-offsets.h +@@ -0,0 +1,47 @@ ++/* Private macros for accessing __jmp_buf contents. ARC version. ++ Copyright (C) 2006-2019 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 ++ <http://www.gnu.org/licenses/>. */ ++ ++/* Save offsets within __jmp_buf ++ We don't use most of these symbols; they are here for documentation. */ ++ ++/* Callee Regs. */ ++#define JB_R13 0 ++#define JB_R14 1 ++#define JB_R15 2 ++#define JB_R16 3 ++#define JB_R17 4 ++#define JB_R18 5 ++#define JB_R19 6 ++#define JB_R20 7 ++#define JB_R21 8 ++#define JB_R22 9 ++#define JB_R23 10 ++#define JB_R24 11 ++#define JB_R25 12 ++ ++/* Frame Pointer, Stack Pointer, Branch-n-link. */ ++#define JB_FP 13 ++#define JB_SP 14 ++#define JB_BLINK 15 ++ ++/* We save space for some extra state to accommodate future changes ++ This is number of words. */ ++#define JB_NUM 32 ++ ++/* Helper for generic ____longjmp_chk(). */ ++#define JB_FRAME_ADDRESS(buf) ((void *) (unsigned long int) (buf[JB_SP])) +diff --git a/sysdeps/arc/jmpbuf-unwind.h b/sysdeps/arc/jmpbuf-unwind.h +new file mode 100644 +index 0000000000..47be5758c7 +--- /dev/null ++++ b/sysdeps/arc/jmpbuf-unwind.h +@@ -0,0 +1,47 @@ ++/* Examine __jmp_buf for unwinding frames. ARC version. ++ Copyright (C) 2005-2019 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 ++ <http://www.gnu.org/licenses/>. */ ++ ++#include <setjmp.h> ++#include <jmpbuf-offsets.h> ++#include <stdint.h> ++#include <unwind.h> ++ ++/* Test if longjmp to JMPBUF would unwind the frame ++ containing a local variable at ADDRESS. */ ++ ++#define _JMPBUF_UNWINDS(jmpbuf, address, demangle) \ ++ ((void *) (address) < (void *) demangle (jmpbuf[JB_SP])) ++ ++#define _JMPBUF_CFA_UNWINDS_ADJ(_jmpbuf, _context, _adj) \ ++ _JMPBUF_UNWINDS_ADJ (_jmpbuf, (void *) _Unwind_GetCFA (_context), _adj) ++ ++static inline uintptr_t __attribute__ ((unused)) ++_jmpbuf_sp (__jmp_buf jmpbuf) ++{ ++ uintptr_t sp = jmpbuf[JB_SP]; ++#ifdef PTR_DEMANGLE ++ PTR_DEMANGLE (sp); ++#endif ++ return sp; ++} ++ ++#define _JMPBUF_UNWINDS_ADJ(_jmpbuf, _address, _adj) \ ++ ((uintptr_t) (_address) - (_adj) < (uintptr_t) (_jmpbuf_sp (_jmpbuf) - (_adj))) ++ ++/* We use the normal longjmp for unwinding. */ ++#define __libc_unwind_longjmp(buf, val) __libc_longjmp (buf, val) +diff --git a/sysdeps/arc/ldsodefs.h b/sysdeps/arc/ldsodefs.h +new file mode 100644 +index 0000000000..53ef4e1e83 +--- /dev/null ++++ b/sysdeps/arc/ldsodefs.h +@@ -0,0 +1,43 @@ ++/* Run-time dynamic linker data structures for loaded ELF shared objects. ++ Copyright (C) 2000-2019 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 ++ <http://www.gnu.org/licenses/>. */ ++ ++#ifndef _ARC_LDSODEFS_H ++#define _ARC_LDSODEFS_H 1 ++ ++#include <elf.h> ++ ++struct La_arc_regs; ++struct La_arc_retval; ++ ++#define ARCH_PLTENTER_MEMBERS \ ++ ElfW(Addr) (*arc_gnu_pltenter) (ElfW(Sym) *, unsigned int, \ ++ uintptr_t *, uintptr_t *, \ ++ const struct La_arc_regs *, \ ++ unsigned int *, const char *, \ ++ long int *); ++ ++#define ARCH_PLTEXIT_MEMBERS \ ++ unsigned int (*arc_gnu_pltexit) (ElfW(Sym) *, unsigned int, \ ++ uintptr_t *, uintptr_t *, \ ++ const struct La_arc_regs *, \ ++ struct La_arc_retval *, \ ++ const char *); ++ ++#include_next <ldsodefs.h> ++ ++#endif +diff --git a/sysdeps/arc/libc-tls.c b/sysdeps/arc/libc-tls.c +new file mode 100644 +index 0000000000..903a75a41b +--- /dev/null ++++ b/sysdeps/arc/libc-tls.c +@@ -0,0 +1,27 @@ ++/* Thread-local storage handling in the ELF dynamic linker. ARC version. ++ Copyright (C) 2005-2019 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 ++ <http://www.gnu.org/licenses/>. */ ++ ++#include <csu/libc-tls.c> ++#include <dl-tls.h> ++ ++void * ++__tls_get_addr (tls_index *ti) ++{ ++ dtv_t *dtv = THREAD_DTV (); ++ return (char *) dtv[1].pointer.val + ti->ti_offset; ++} +diff --git a/sysdeps/arc/machine-gmon.h b/sysdeps/arc/machine-gmon.h +new file mode 100644 +index 0000000000..1d9e8108d9 +--- /dev/null ++++ b/sysdeps/arc/machine-gmon.h +@@ -0,0 +1,35 @@ ++/* Machine-dependent definitions for profiling support. ARC version. ++ Copyright (C) 1996-2019 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 ++ <http://www.gnu.org/licenses/>. */ ++ ++#include <sysdep.h> ++ ++#define _MCOUNT_DECL(frompc, selfpc) \ ++static void \ ++__mcount_internal (unsigned long int frompc, unsigned long int selfpc) ++ ++/* This is very simple as gcc does all the heavy lifting at _mcount call site ++ - sets up caller's blink in r0, so frompc is setup correctly ++ - preserve argument registers for original call. */ ++ ++#define MCOUNT \ ++void \ ++_mcount (void *frompc) \ ++{ \ ++ __mcount_internal ((unsigned long int) frompc, \ ++ (unsigned long int) __builtin_return_address(0)); \ ++} +diff --git a/sysdeps/arc/memusage.h b/sysdeps/arc/memusage.h +new file mode 100644 +index 0000000000..29f234f5ba +--- /dev/null ++++ b/sysdeps/arc/memusage.h +@@ -0,0 +1,23 @@ ++/* Machine-specific definitions for memory usage profiling, ARC version. ++ Copyright (C) 2000-2019 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 ++ <http://www.gnu.org/licenses/>. */ ++ ++#define GETSP() ({ register uintptr_t stack_ptr asm ("sp"); stack_ptr; }) ++ ++#define uatomic32_t unsigned int ++ ++#include <sysdeps/generic/memusage.h> +diff --git a/sysdeps/arc/nofpu/Implies b/sysdeps/arc/nofpu/Implies +new file mode 100644 +index 0000000000..abcbadb25f +--- /dev/null ++++ b/sysdeps/arc/nofpu/Implies +@@ -0,0 +1 @@ ++ieee754/soft-fp +diff --git a/sysdeps/arc/nofpu/libm-test-ulps b/sysdeps/arc/nofpu/libm-test-ulps +new file mode 100644 +index 0000000000..0e8ef313fa +--- /dev/null ++++ b/sysdeps/arc/nofpu/libm-test-ulps +@@ -0,0 +1,390 @@ ++# Begin of automatic generation ++ ++# Maximal error of functions: ++Function: "acos": ++float: 1 ++ifloat: 1 ++ ++Function: "acosh": ++double: 2 ++float: 2 ++idouble: 2 ++ifloat: 2 ++ ++Function: "asin": ++float: 1 ++ifloat: 1 ++ ++Function: "asinh": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ ++Function: "atan": ++float: 1 ++ifloat: 1 ++ ++Function: "atan2": ++float: 1 ++ifloat: 1 ++ ++Function: "atanh": ++double: 2 ++float: 2 ++idouble: 2 ++ifloat: 2 ++ ++Function: "cabs": ++double: 1 ++idouble: 1 ++ ++Function: Real part of "cacos": ++double: 1 ++float: 2 ++idouble: 1 ++ifloat: 2 ++ ++Function: Imaginary part of "cacos": ++double: 2 ++float: 2 ++idouble: 2 ++ifloat: 2 ++ ++Function: Real part of "cacosh": ++double: 2 ++float: 2 ++idouble: 2 ++ifloat: 2 ++ ++Function: Imaginary part of "cacosh": ++double: 1 ++float: 2 ++idouble: 1 ++ifloat: 2 ++ ++Function: "carg": ++float: 1 ++ifloat: 1 ++ ++Function: Real part of "casin": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ ++Function: Imaginary part of "casin": ++double: 2 ++float: 2 ++idouble: 2 ++ifloat: 2 ++ ++Function: Real part of "casinh": ++double: 2 ++float: 2 ++idouble: 2 ++ifloat: 2 ++ ++Function: Imaginary part of "casinh": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ ++Function: Real part of "catan": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ ++Function: Imaginary part of "catan": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ ++Function: Real part of "catanh": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ ++Function: Imaginary part of "catanh": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ ++Function: "cbrt": ++double: 3 ++float: 1 ++idouble: 3 ++ifloat: 1 ++ ++Function: Real part of "ccos": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ ++Function: Imaginary part of "ccos": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ ++Function: Real part of "ccosh": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ ++Function: Imaginary part of "ccosh": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ ++Function: Real part of "cexp": ++double: 2 ++float: 1 ++idouble: 2 ++ifloat: 1 ++ ++Function: Imaginary part of "cexp": ++double: 1 ++float: 2 ++idouble: 1 ++ifloat: 2 ++ ++Function: Real part of "clog": ++double: 3 ++float: 3 ++idouble: 3 ++ifloat: 3 ++ ++Function: Imaginary part of "clog": ++float: 1 ++ifloat: 1 ++ ++Function: Real part of "clog10": ++double: 3 ++float: 4 ++idouble: 3 ++ifloat: 4 ++ ++Function: Imaginary part of "clog10": ++double: 2 ++float: 2 ++idouble: 2 ++ifloat: 2 ++ ++Function: "cos": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ ++Function: "cosh": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ ++Function: Real part of "cpow": ++double: 2 ++float: 5 ++idouble: 2 ++ifloat: 5 ++ ++Function: Imaginary part of "cpow": ++float: 2 ++ifloat: 2 ++ ++Function: Real part of "csin": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ ++Function: Real part of "csinh": ++float: 1 ++ifloat: 1 ++ ++Function: Imaginary part of "csinh": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ ++Function: Real part of "csqrt": ++double: 2 ++float: 2 ++idouble: 2 ++ifloat: 2 ++ ++Function: Imaginary part of "csqrt": ++double: 2 ++float: 2 ++idouble: 2 ++ifloat: 2 ++ ++Function: Real part of "ctan": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ ++Function: Imaginary part of "ctan": ++double: 2 ++float: 2 ++idouble: 2 ++ifloat: 2 ++ ++Function: Real part of "ctanh": ++double: 2 ++float: 2 ++idouble: 2 ++ifloat: 2 ++ ++Function: Imaginary part of "ctanh": ++double: 2 ++float: 2 ++idouble: 2 ++ifloat: 2 ++ ++Function: "erf": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ ++Function: "erfc": ++double: 3 ++float: 2 ++idouble: 3 ++ifloat: 2 ++ ++Function: "exp10": ++double: 2 ++idouble: 2 ++ ++Function: "exp2": ++double: 1 ++idouble: 1 ++ ++Function: "expm1": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ ++Function: "gamma": ++double: 4 ++float: 3 ++idouble: 4 ++ifloat: 3 ++ ++Function: "hypot": ++double: 1 ++idouble: 1 ++ ++Function: "j0": ++double: 2 ++float: 2 ++idouble: 2 ++ifloat: 2 ++ ++Function: "j1": ++double: 1 ++float: 2 ++idouble: 1 ++ifloat: 2 ++ ++Function: "jn": ++double: 4 ++float: 4 ++idouble: 4 ++ifloat: 4 ++ ++Function: "lgamma": ++double: 4 ++float: 3 ++idouble: 4 ++ifloat: 3 ++ ++Function: "log10": ++double: 2 ++float: 2 ++idouble: 2 ++ifloat: 2 ++ ++Function: "log1p": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ ++Function: "log2": ++double: 2 ++float: 1 ++idouble: 2 ++ifloat: 1 ++ ++Function: "pow": ++double: 1 ++idouble: 1 ++ ++Function: "sin": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ ++Function: "sincos": ++double: 1 ++float: 1 ++idouble: 1 ++ifloat: 1 ++ ++Function: "sinh": ++double: 2 ++float: 2 ++idouble: 2 ++ifloat: 2 ++ ++Function: "tan": ++float: 1 ++ifloat: 1 ++ ++Function: "tanh": ++double: 2 ++float: 2 ++idouble: 2 ++ifloat: 2 ++ ++Function: "tgamma": ++double: 5 ++float: 4 ++idouble: 5 ++ifloat: 4 ++ ++Function: "y0": ++double: 2 ++float: 1 ++idouble: 2 ++ifloat: 1 ++ ++Function: "y1": ++double: 3 ++float: 2 ++idouble: 3 ++ifloat: 2 ++ ++Function: "yn": ++double: 3 ++float: 3 ++idouble: 3 ++ifloat: 3 ++ ++# end of automatic generation +diff --git a/sysdeps/arc/nofpu/libm-test-ulps-name b/sysdeps/arc/nofpu/libm-test-ulps-name +new file mode 100644 +index 0000000000..8c4fba4f9a +--- /dev/null ++++ b/sysdeps/arc/nofpu/libm-test-ulps-name +@@ -0,0 +1 @@ ++ARC +diff --git a/sysdeps/arc/nofpu/math-tests-exceptions.h b/sysdeps/arc/nofpu/math-tests-exceptions.h +new file mode 100644 +index 0000000000..f5c0b73589 +--- /dev/null ++++ b/sysdeps/arc/nofpu/math-tests-exceptions.h +@@ -0,0 +1,27 @@ ++/* Configuration for math tests. exceptions support ARC version. ++ Copyright (C) 2017-2019 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 ++ <http://www.gnu.org/licenses/>. */ ++ ++#ifndef ARC_NOFPU_MATH_TESTS_EXCEPTIONS_H ++#define ARC_NOFPU_MATH_TESTS_EXCEPTIONS_H 1 ++ ++/* Soft-float doesnot support exceptions. */ ++#define EXCEPTION_TESTS_float 0 ++#define EXCEPTION_TESTS_double 0 ++#define EXCEPTION_TESTS_long_double 0 ++ ++#endif +diff --git a/sysdeps/arc/nofpu/math-tests-rounding.h b/sysdeps/arc/nofpu/math-tests-rounding.h +new file mode 100644 +index 0000000000..e8f76338b1 +--- /dev/null ++++ b/sysdeps/arc/nofpu/math-tests-rounding.h +@@ -0,0 +1,27 @@ ++/* Configuration for math tests: rounding mode support. ARC version. ++ Copyright (C) 2017-2019 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 ++ <http://www.gnu.org/licenses/>. */ ++ ++#ifndef ARC_NOFPU_MATH_TESTS_ROUNDING_H ++#define ARC_NOFPU_MATH_TESTS_ROUNDING_H 1 ++ ++/* Soft-float only supports to-nearest rounding mode. */ ++#define ROUNDING_TESTS_float(MODE) ((MODE) == FE_TONEAREST) ++#define ROUNDING_TESTS_double(MODE) ((MODE) == FE_TONEAREST) ++#define ROUNDING_TESTS_long_double(MODE) ((MODE) == FE_TONEAREST) ++ ++#endif +diff --git a/sysdeps/arc/nptl/Makefile b/sysdeps/arc/nptl/Makefile +new file mode 100644 +index 0000000000..3c33c9cc11 +--- /dev/null ++++ b/sysdeps/arc/nptl/Makefile +@@ -0,0 +1,22 @@ ++# NPTL makefile fragment for ARC. ++# Copyright (C) 2005-2019 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 ++# <http://www.gnu.org/licenses/>. ++ ++ifeq ($(subdir),csu) ++gen-as-const-headers += tcb-offsets.sym ++endif +diff --git a/sysdeps/arc/nptl/bits/pthreadtypes-arch.h b/sysdeps/arc/nptl/bits/pthreadtypes-arch.h +new file mode 100644 +index 0000000000..c104ad4444 +--- /dev/null ++++ b/sysdeps/arc/nptl/bits/pthreadtypes-arch.h +@@ -0,0 +1,43 @@ ++/* Machine-specific pthread type layouts. ARC version. ++ Copyright (C) 2012-2019 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 ++ <http://www.gnu.org/licenses/>. */ ++ ++#ifndef _BITS_PTHREADTYPES_ARCH_H ++#define _BITS_PTHREADTYPES_ARCH_H 1 ++ ++#include <endian.h> ++ ++#define __SIZEOF_PTHREAD_ATTR_T 32 ++#define __SIZEOF_PTHREAD_MUTEX_T 32 ++#define __SIZEOF_PTHREAD_MUTEXATTR_T 4 ++#define __SIZEOF_PTHREAD_COND_T 48 ++#define __SIZEOF_PTHREAD_CONDATTR_T 4 ++#define __SIZEOF_PTHREAD_RWLOCK_T 32 ++#define __SIZEOF_PTHREAD_RWLOCKATTR_T 8 ++#define __SIZEOF_PTHREAD_BARRIER_T 20 ++#define __SIZEOF_PTHREAD_BARRIERATTR_T 4 ++ ++#define __PTHREAD_COMPAT_PADDING_MID ++#define __PTHREAD_COMPAT_PADDING_END ++#define __PTHREAD_MUTEX_LOCK_ELISION 0 ++#define __PTHREAD_MUTEX_NUSERS_AFTER_KIND 0 ++#define __PTHREAD_MUTEX_USE_UNION 0 ++ ++#define __LOCK_ALIGNMENT ++#define __ONCE_ALIGNMENT ++ ++#endif /* bits/pthreadtypes-arch.h */ +diff --git a/sysdeps/arc/nptl/bits/semaphore.h b/sysdeps/arc/nptl/bits/semaphore.h +new file mode 100644 +index 0000000000..662d08401d +--- /dev/null ++++ b/sysdeps/arc/nptl/bits/semaphore.h +@@ -0,0 +1,32 @@ ++/* Machine-specific POSIX semaphore type layouts. ARC version. ++ Copyright (C) 2002-2019 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 ++ <http://www.gnu.org/licenses/>. */ ++ ++#ifndef _SEMAPHORE_H ++# error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead." ++#endif ++ ++#define __SIZEOF_SEM_T 16 ++ ++/* Value returned if `sem_open' failed. */ ++#define SEM_FAILED ((sem_t *) 0) ++ ++typedef union ++{ ++ char __size[__SIZEOF_SEM_T]; ++ long int __align; ++} sem_t; +diff --git a/sysdeps/arc/nptl/pthreaddef.h b/sysdeps/arc/nptl/pthreaddef.h +new file mode 100644 +index 0000000000..80a109bbd5 +--- /dev/null ++++ b/sysdeps/arc/nptl/pthreaddef.h +@@ -0,0 +1,32 @@ ++/* pthread machine parameter definitions, ARC version. ++ Copyright (C) 2002-2019 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 ++ <http://www.gnu.org/licenses/>. */ ++ ++/* Default stack size. */ ++#define ARCH_STACK_DEFAULT_SIZE (2 * 1024 * 1024) ++ ++/* Required stack pointer alignment at beginning. */ ++#define STACK_ALIGN 4 ++ ++/* Minimal stack size after allocating thread descriptor and guard size. */ ++#define MINIMAL_REST_STACK 2048 ++ ++/* Alignment requirement for TCB. */ ++#define TCB_ALIGNMENT 4 ++ ++/* Location of current stack frame. */ ++#define CURRENT_STACK_FRAME __builtin_frame_address (0) +diff --git a/sysdeps/arc/nptl/tcb-offsets.sym b/sysdeps/arc/nptl/tcb-offsets.sym +new file mode 100644 +index 0000000000..56950e0676 +--- /dev/null ++++ b/sysdeps/arc/nptl/tcb-offsets.sym +@@ -0,0 +1,11 @@ ++#include <sysdep.h> ++#include <tls.h> ++ ++-- Derive offsets relative to the thread register. ++#define thread_offsetof(mem) (long)(offsetof(struct pthread, mem) - sizeof(struct pthread)) ++ ++MULTIPLE_THREADS_OFFSET offsetof (struct pthread, header.multiple_threads) ++TLS_PRE_TCB_SIZE sizeof (struct pthread) ++TLS_TCB_SIZE sizeof(tcbhead_t) ++ ++PTHREAD_TID offsetof(struct pthread, tid) +diff --git a/sysdeps/arc/nptl/tls.h b/sysdeps/arc/nptl/tls.h +new file mode 100644 +index 0000000000..2c90109d57 +--- /dev/null ++++ b/sysdeps/arc/nptl/tls.h +@@ -0,0 +1,150 @@ ++/* Definition for thread-local data handling. NPTL/ARC version. ++ Copyright (C) 2012-2019 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 ++ <http://www.gnu.org/licenses/>. */ ++ ++#ifndef _ARC_NPTL_TLS_H ++#define _ARC_NPTL_TLS_H 1 ++ ++#include <dl-sysdep.h> ++ ++#ifndef __ASSEMBLER__ ++# include <stdbool.h> ++# include <stddef.h> ++# include <stdint.h> ++ ++#include <dl-dtv.h> ++ ++/* Get system call information. */ ++# include <sysdep.h> ++ ++/* The TLS blocks start right after the TCB. */ ++# define TLS_DTV_AT_TP 1 ++# define TLS_TCB_AT_TP 0 ++ ++/* Get the thread descriptor definition. */ ++# include <nptl/descr.h> ++ ++typedef struct ++{ ++ dtv_t *dtv; ++ uintptr_t pointer_guard; ++} tcbhead_t; ++ ++register struct pthread *__thread_self __asm__("r25"); ++ ++/* This is the size of the initial TCB. */ ++# define TLS_INIT_TCB_SIZE sizeof (tcbhead_t) ++ ++/* Alignment requirements for the initial TCB. */ ++# define TLS_INIT_TCB_ALIGN __alignof__ (struct pthread) ++ ++/* This is the size of the TCB. */ ++#ifndef TLS_TCB_SIZE ++# define TLS_TCB_SIZE sizeof (tcbhead_t) ++#endif ++ ++/* Alignment requirements for the TCB. */ ++# define TLS_TCB_ALIGN __alignof__ (struct pthread) ++ ++/* This is the size we need before TCB. */ ++# define TLS_PRE_TCB_SIZE sizeof (struct pthread) ++ ++/* Install the dtv pointer. The pointer passed is to the element with ++ index -1 which contain the length. */ ++# define INSTALL_DTV(tcbp, dtvp) \ ++ (((tcbhead_t *) (tcbp))->dtv = (dtvp) + 1) ++ ++/* Install new dtv for current thread. */ ++# define INSTALL_NEW_DTV(dtv) \ ++ (THREAD_DTV() = (dtv)) ++ ++/* Return dtv of given thread descriptor. */ ++# define GET_DTV(tcbp) \ ++ (((tcbhead_t *) (tcbp))->dtv) ++ ++/* Code to initially initialize the thread pointer. */ ++# define TLS_INIT_TP(tcbp) \ ++ ({ \ ++ long result_var; \ ++ __builtin_set_thread_pointer(tcbp); \ ++ result_var = INTERNAL_SYSCALL (arc_settls, err, 1, (tcbp)); \ ++ INTERNAL_SYSCALL_ERROR_P (result_var, err) \ ++ ? "unknown error" : NULL; \ ++ }) ++ ++/* Value passed to 'clone' for initialization of the thread register. */ ++# define TLS_DEFINE_INIT_TP(tp, pd) void *tp = (pd) + 1 ++ ++/* Return the address of the dtv for the current thread. */ ++# define THREAD_DTV() \ ++ (((tcbhead_t *) __builtin_thread_pointer ())->dtv) ++ ++/* Return the thread descriptor for the current thread. */ ++# define THREAD_SELF \ ++ ((struct pthread *)__builtin_thread_pointer () - 1) ++ ++/* Magic for libthread_db to know how to do THREAD_SELF. */ ++# define DB_THREAD_SELF \ ++ CONST_THREAD_AREA (32, sizeof (struct pthread)) ++ ++/* Access to data in the thread descriptor is easy. */ ++# define THREAD_GETMEM(descr, member) \ ++ descr->member ++# define THREAD_GETMEM_NC(descr, member, idx) \ ++ descr->member[idx] ++# define THREAD_SETMEM(descr, member, value) \ ++ descr->member = (value) ++# define THREAD_SETMEM_NC(descr, member, idx, value) \ ++ descr->member[idx] = (value) ++ ++/* Get and set the global scope generation counter in struct pthread. */ ++#define THREAD_GSCOPE_IN_TCB 1 ++#define THREAD_GSCOPE_FLAG_UNUSED 0 ++#define THREAD_GSCOPE_FLAG_USED 1 ++#define THREAD_GSCOPE_FLAG_WAIT 2 ++#define THREAD_GSCOPE_RESET_FLAG() \ ++ do \ ++ { int __res \ ++ = atomic_exchange_rel (&THREAD_SELF->header.gscope_flag, \ ++ THREAD_GSCOPE_FLAG_UNUSED); \ ++ if (__res == THREAD_GSCOPE_FLAG_WAIT) \ ++ lll_futex_wake (&THREAD_SELF->header.gscope_flag, 1, LLL_PRIVATE); \ ++ } \ ++ while (0) ++#define THREAD_GSCOPE_SET_FLAG() \ ++ do \ ++ { \ ++ THREAD_SELF->header.gscope_flag = THREAD_GSCOPE_FLAG_USED; \ ++ atomic_write_barrier (); \ ++ } \ ++ while (0) ++#define THREAD_GSCOPE_WAIT() \ ++ GL(dl_wait_lookup_done) () ++ ++#else ++ ++# include <tcb-offsets.h> ++ ++# r25 is dedicated TLS register for ARC ++.macro THREAD_SELF reg ++ # struct pthread is just ahead of TCB ++ sub \reg, r25, TLS_PRE_TCB_SIZE ++.endm ++ ++#endif /* __ASSEMBLER__ */ ++ ++#endif /* tls.h */ +diff --git a/sysdeps/arc/preconfigure b/sysdeps/arc/preconfigure +new file mode 100644 +index 0000000000..d9c5429f40 +--- /dev/null ++++ b/sysdeps/arc/preconfigure +@@ -0,0 +1,15 @@ ++case "$machine" in ++arc*) ++ base_machine=arc ++ machine=arc ++ ++ gccfloat=`$CC $CFLAGS $CPPFLAGS -E -dM -xc /dev/null | grep __ARC_FPU_| wc -l` ++ if test "$gccfloat" != "0"; then ++ echo "glibc being configured for double precision floating point" ++ with_fp_cond=1 ++ else ++ with_fp_cond=0 ++ fi ++ ;; ++ ++esac +diff --git a/sysdeps/arc/setjmp.S b/sysdeps/arc/setjmp.S +new file mode 100644 +index 0000000000..518545a99e +--- /dev/null ++++ b/sysdeps/arc/setjmp.S +@@ -0,0 +1,66 @@ ++/* setjmp for ARC. ++ Copyright (C) 1991-2019 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 ++ <http://www.gnu.org/licenses/>. */ ++ ++ ++#include <sysdep.h> ++ ++/* Upon entry r0 = jump buffer into which regs will be saved. */ ++ENTRY (setjmp) ++ b.d __sigsetjmp ++ mov r1, 1 ; save signals ++END (setjmp) ++ ++/* Upon entry r0 = jump buffer into which regs will be saved. */ ++ENTRY (_setjmp) ++ b.d __sigsetjmp ++ mov r1, 0 /* don't save signals. */ ++END (_setjmp) ++libc_hidden_def (_setjmp) ++ ++/* Upon entry ++ r0 = jump buffer into which regs will be saved ++ r1 = do we need to save signals. */ ++ENTRY (__sigsetjmp) ++ ++ st_s r13, [r0] ++ st_s r14, [r0,4] ++ st r15, [r0,8] ++ st r16, [r0,12] ++ st r17, [r0,16] ++ st r18, [r0,20] ++ st r19, [r0,24] ++ st r20, [r0,28] ++ st r21, [r0,32] ++ st r22, [r0,36] ++ st r23, [r0,40] ++ st r24, [r0,44] ++ st r25, [r0,48] ++ st fp, [r0,52] ++ st sp, [r0,56] ++ ++ /* Make a note of where longjmp will return to. ++ that will be right next to this setjmp call-site which will be ++ contained in blink, since "C" caller of this routine will do ++ a branch-n-link */ ++ ++ st blink, [r0,60] ++ b __sigjmp_save ++ ++END (__sigsetjmp) ++ ++libc_hidden_def (__sigsetjmp) +diff --git a/sysdeps/arc/sfp-machine.h b/sysdeps/arc/sfp-machine.h +new file mode 100644 +index 0000000000..5ceaf56a98 +--- /dev/null ++++ b/sysdeps/arc/sfp-machine.h +@@ -0,0 +1,73 @@ ++/* Machine-dependent software floating-point definitions. ARC version. ++ Copyright (C) 2004-2019 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Richard Henderson (rth@cygnus.com), ++ Jakub Jelinek (jj@ultra.linux.cz) and ++ David S. Miller (davem@redhat.com). ++ ++ 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 ++ <http://www.gnu.org/licenses/>. */ ++ ++ ++#define _FP_W_TYPE_SIZE 32 ++#define _FP_W_TYPE unsigned long ++#define _FP_WS_TYPE signed long ++#define _FP_I_TYPE long ++ ++#define _FP_MUL_MEAT_S(R,X,Y) \ ++ _FP_MUL_MEAT_1_wide(_FP_WFRACBITS_S,R,X,Y,umul_ppmm) ++#define _FP_MUL_MEAT_D(R,X,Y) \ ++ _FP_MUL_MEAT_2_wide(_FP_WFRACBITS_D,R,X,Y,umul_ppmm) ++#define _FP_MUL_MEAT_Q(R,X,Y) \ ++ _FP_MUL_MEAT_4_wide(_FP_WFRACBITS_Q,R,X,Y,umul_ppmm) ++ ++#define _FP_MUL_MEAT_DW_S(R,X,Y) \ ++ _FP_MUL_MEAT_DW_1_wide(_FP_WFRACBITS_S,R,X,Y,umul_ppmm) ++#define _FP_MUL_MEAT_DW_D(R,X,Y) \ ++ _FP_MUL_MEAT_DW_2_wide(_FP_WFRACBITS_D,R,X,Y,umul_ppmm) ++#define _FP_MUL_MEAT_DW_Q(R,X,Y) \ ++ _FP_MUL_MEAT_DW_4_wide(_FP_WFRACBITS_Q,R,X,Y,umul_ppmm) ++ ++#define _FP_DIV_MEAT_S(R,X,Y) _FP_DIV_MEAT_1_loop(S,R,X,Y) ++#define _FP_DIV_MEAT_D(R,X,Y) _FP_DIV_MEAT_2_udiv(D,R,X,Y) ++#define _FP_DIV_MEAT_Q(R,X,Y) _FP_DIV_MEAT_4_udiv(Q,R,X,Y) ++ ++#define _FP_NANFRAC_S ((_FP_QNANBIT_S << 1) - 1) ++#define _FP_NANFRAC_D ((_FP_QNANBIT_D << 1) - 1), -1 ++#define _FP_NANFRAC_Q ((_FP_QNANBIT_Q << 1) - 1), -1, -1, -1 ++#define _FP_NANSIGN_S 0 ++#define _FP_NANSIGN_D 0 ++#define _FP_NANSIGN_Q 0 ++ ++#define _FP_KEEPNANFRACP 1 ++#define _FP_QNANNEGATEDP 0 ++ ++/* This is arbitrarily taken from the PowerPC version. */ ++#define _FP_CHOOSENAN(fs, wc, R, X, Y, OP) \ ++ do { \ ++ if ((_FP_FRAC_HIGH_RAW_##fs(X) & _FP_QNANBIT_##fs) \ ++ && !(_FP_FRAC_HIGH_RAW_##fs(Y) & _FP_QNANBIT_##fs)) \ ++ { \ ++ R##_s = Y##_s; \ ++ _FP_FRAC_COPY_##wc(R,Y); \ ++ } \ ++ else \ ++ { \ ++ R##_s = X##_s; \ ++ _FP_FRAC_COPY_##wc(R,X); \ ++ } \ ++ R##_c = FP_CLS_NAN; \ ++ } while (0) ++ ++#define _FP_TININESS_AFTER_ROUNDING 0 +diff --git a/sysdeps/arc/sotruss-lib.c b/sysdeps/arc/sotruss-lib.c +new file mode 100644 +index 0000000000..ffbb5bbd6d +--- /dev/null ++++ b/sysdeps/arc/sotruss-lib.c +@@ -0,0 +1,51 @@ ++/* Override generic sotruss-lib.c to define actual functions for ARC. ++ Copyright (C) 2017-2019 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 ++ <http://www.gnu.org/licenses/>. */ ++ ++#define HAVE_ARCH_PLTENTER ++#define HAVE_ARCH_PLTEXIT ++ ++#include <elf/sotruss-lib.c> ++ ++ElfW(Addr) ++la_arc_gnu_pltenter (ElfW(Sym) *sym __attribute__ ((unused)), ++ unsigned int ndx __attribute__ ((unused)), ++ uintptr_t *refcook, uintptr_t *defcook, ++ La_arc_regs *regs, unsigned int *flags, ++ const char *symname, long int *framesizep) ++{ ++ print_enter (refcook, defcook, symname, ++ regs->lr_reg[0], regs->lr_reg[1], regs->lr_reg[2], ++ *flags); ++ ++ /* No need to copy anything, we will not need the parameters in any case. */ ++ *framesizep = 0; ++ ++ return sym->st_value; ++} ++ ++unsigned int ++la_arc_gnu_pltexit (ElfW(Sym) *sym, unsigned int ndx, uintptr_t *refcook, ++ uintptr_t *defcook, ++ const struct La_arc_regs *inregs, ++ struct La_arc_retval *outregs, const char *symname) ++{ ++ print_exit (refcook, defcook, symname, outregs->lrv_reg[0]); ++ ++ return 0; ++} +diff --git a/sysdeps/arc/stackinfo.h b/sysdeps/arc/stackinfo.h +new file mode 100644 +index 0000000000..fe69161382 +--- /dev/null ++++ b/sysdeps/arc/stackinfo.h +@@ -0,0 +1,33 @@ ++/* Stack environment definitions for ARC. ++ Copyright (C) 2012-2019 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 ++ <http://www.gnu.org/licenses/>. */ ++ ++/* This file contains a bit of information about the stack allocation ++ of the processor. */ ++ ++#ifndef _STACKINFO_H ++#define _STACKINFO_H 1 ++ ++#include <elf.h> ++ ++/* On ARC the stack grows down. */ ++#define _STACK_GROWS_DOWN 1 ++ ++/* Default to a non-executable stack. */ ++#define DEFAULT_STACK_PERMS (PF_R|PF_W) ++ ++#endif /* stackinfo.h */ +diff --git a/sysdeps/arc/start.S b/sysdeps/arc/start.S +new file mode 100644 +index 0000000000..4ade1e871f +--- /dev/null ++++ b/sysdeps/arc/start.S +@@ -0,0 +1,89 @@ ++/* Startup code for ARC. ++ Copyright (C) 1995-2019 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. ++ ++ In addition to the permissions in the GNU Lesser General Public ++ License, the Free Software Foundation gives you unlimited ++ permission to link the compiled version of this file with other ++ programs, and to distribute those programs without any restriction ++ coming from the use of this file. (The GNU Lesser General Public ++ License restrictions do apply in other respects; for example, they ++ cover modification of the file, and distribution when not linked ++ into another program.) ++ ++ Note that people who make modified versions of this file are not ++ obligated to grant this special exception for their modified ++ versions; it is their choice whether to do so. The GNU Lesser ++ General Public License gives permission to release a modified ++ version without this exception; this exception also makes it ++ possible to release a modified version which carries forward this ++ exception. ++ ++ 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 ++ <http://www.gnu.org/licenses/>. */ ++ ++ ++#define __ASSEMBLY__ 1 ++#include <entry.h> ++#ifndef ENTRY_POINT ++# error ENTRY_POINT needs to be defined for ARC ++#endif ++ ++/* When we enter this piece of code, the program stack looks like this: ++ argc argument counter (integer) ++ argv[0] program name (pointer) ++ argv[1...N] program args (pointers) ++ argv[argc-1] end of args (integer) ++ NULL ++ env[0...N] environment variables (pointers) ++ NULL. */ ++ ++ .text ++ .align 4 ++ .global __start ++ .type __start,@function ++__start: ++ mov fp, 0 ++ ld_s r1, [sp] ; argc ++ ++ mov_s r5, r0 ; rltd_fini ++ add_s r2, sp, 4 ; argv ++ and sp, sp, -8 ++ mov r6, sp ++ ++ /* __libc_start_main (main, argc, argv, init, fini, rtld_fini, stack_end). */ ++ ++#ifdef SHARED ++ ld r0, [pcl, @main@gotpc] ++ ld r3, [pcl, @__libc_csu_init@gotpc] ++ ld r4, [pcl, @__libc_csu_fini@gotpc] ++ bl __libc_start_main@plt ++#else ++ mov_s r0, main ++ mov_s r3, __libc_csu_init ++ mov r4, __libc_csu_fini ++ bl __libc_start_main ++#endif ++ ++ /* Should never get here. */ ++ flag 1 ++ .size __start,.-__start ++ ++/* Define a symbol for the first piece of initialized data. */ ++ .data ++ .globl __data_start ++__data_start: ++ .long 0 ++ .weak data_start ++ data_start = __data_start +diff --git a/sysdeps/arc/sysdep.h b/sysdeps/arc/sysdep.h +new file mode 100644 +index 0000000000..127e9b01e7 +--- /dev/null ++++ b/sysdeps/arc/sysdep.h +@@ -0,0 +1,48 @@ ++/* Assembler macros for ARC. ++ Copyright (C) 2017-2019 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 ++ <http://www.gnu.org/licenses/>. */ ++ ++#include <sysdeps/generic/sysdep.h> ++ ++#ifdef __ASSEMBLER__ ++ ++/* Syntactic details of assembler. ++ ; is not newline but comment, # is also for comment. */ ++# define ASM_SIZE_DIRECTIVE(name) .size name,.-name ++ ++# define ENTRY(name) \ ++ .align 4 ASM_LINE_SEP \ ++ .globl C_SYMBOL_NAME(name) ASM_LINE_SEP \ ++ .type C_SYMBOL_NAME(name),%function ASM_LINE_SEP \ ++ C_LABEL(name) ASM_LINE_SEP \ ++ cfi_startproc ASM_LINE_SEP \ ++ CALL_MCOUNT ++ ++# undef END ++# define END(name) \ ++ cfi_endproc ASM_LINE_SEP \ ++ ASM_SIZE_DIRECTIVE(name) ++ ++# ifdef SHARED ++# define PLTJMP(_x) _x##@plt ++# else ++# define PLTJMP(_x) _x ++# endif ++ ++# define CALL_MCOUNT /* Do nothing for now. */ ++ ++#endif /* __ASSEMBLER__ */ +diff --git a/sysdeps/arc/tls-macros.h b/sysdeps/arc/tls-macros.h +new file mode 100644 +index 0000000000..4d54683eda +--- /dev/null ++++ b/sysdeps/arc/tls-macros.h +@@ -0,0 +1,47 @@ ++/* Macros to support TLS testing in times of missing compiler support. ARC version. ++ Copyright (C) 2017-2019 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 ++ <http://www.gnu.org/licenses/>. */ ++ ++ ++/* For now. */ ++#define TLS_LD(x) TLS_IE(x) ++ ++#define TLS_GD(x) \ ++ ({ int *__result; \ ++ __asm__ ("add r0, pcl, @" #x "@tlsgd \n" \ ++ ".tls_gd_ld " #x "`bl __tls_get_addr@plt \n" \ ++ "mov %0, r0 \n" \ ++ : "=&r" (__result) \ ++ ::"r0","r1","r2","r3","r4","r5","r6","r7", \ ++ "r8","r9","r10","r11","r12"); \ ++ __result; }) ++ ++#define TLS_LE(x) \ ++ ({ int *__result; \ ++ void *tp = __builtin_thread_pointer(); \ ++ __asm__ ("add %0, %1, @" #x "@tpoff \n" \ ++ : "=r" (__result) : "r"(tp)); \ ++ __result; }) ++ ++#define TLS_IE(x) \ ++ ({ int *__result; \ ++ void *tp = __builtin_thread_pointer(); \ ++ __asm__ ("ld %0, [pcl, @" #x "@tlsie] \n" \ ++ "add %0, %1, %0 \n" \ ++ : "=&r" (__result) : "r" (tp)); \ ++ __result; }) +diff --git a/sysdeps/arc/tst-audit.h b/sysdeps/arc/tst-audit.h +new file mode 100644 +index 0000000000..9237ad2440 +--- /dev/null ++++ b/sysdeps/arc/tst-audit.h +@@ -0,0 +1,23 @@ ++/* Definitions for testing PLT entry/exit auditing. ARC version. ++ Copyright (C) 2009-2019 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 ++ <http://www.gnu.org/licenses/>. */ ++ ++#define pltenter la_arc_gnu_pltenter ++#define pltexit la_arc_gnu_pltexit ++#define La_regs La_arc_regs ++#define La_retval La_arc_retval ++#define int_retval lrv_reg[0] +diff --git a/sysdeps/unix/sysv/linux/arc/Implies b/sysdeps/unix/sysv/linux/arc/Implies +new file mode 100644 +index 0000000000..7f739a0340 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/arc/Implies +@@ -0,0 +1,3 @@ ++arc/nptl ++unix/sysv/linux/generic/wordsize-32 ++unix/sysv/linux/generic +diff --git a/sysdeps/unix/sysv/linux/arc/Makefile b/sysdeps/unix/sysv/linux/arc/Makefile +new file mode 100644 +index 0000000000..a6c6dfc6ec +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/arc/Makefile +@@ -0,0 +1,20 @@ ++ifeq ($(subdir),stdlib) ++gen-as-const-headers += ucontext_i.sym ++endif ++ ++ifeq ($(subdir),signal) ++sysdep_routines += sigrestorer ++endif ++ ++ifeq ($(subdir),misc) ++# MIPS/Tile-style cacheflush routine ++sysdep_headers += sys/cachectl.h ++sysdep_routines += cacheflush ++endif ++ ++ifeq ($(subdir),elf) ++ifeq ($(build-shared),yes) ++# This is needed for DSO loading from static binaries. ++sysdep-dl-routines += dl-static ++endif ++endif +diff --git a/sysdeps/unix/sysv/linux/arc/Versions b/sysdeps/unix/sysv/linux/arc/Versions +new file mode 100644 +index 0000000000..3eedf26ae2 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/arc/Versions +@@ -0,0 +1,16 @@ ++ld { ++ GLIBC_PRIVATE { ++ # used for loading by static libraries ++ _dl_var_init; ++ } ++} ++libc { ++ GLIBC_2.30 { ++ _flush_cache; ++ cacheflush; ++ } ++ GLIBC_PRIVATE { ++ # A copy of sigaction lives in libpthread, and needs these. ++ __default_rt_sa_restorer; ++ } ++} +diff --git a/sysdeps/unix/sysv/linux/arc/arch-syscall.h b/sysdeps/unix/sysv/linux/arc/arch-syscall.h +new file mode 100644 +index 0000000000..db25a17ad0 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/arc/arch-syscall.h +@@ -0,0 +1,317 @@ ++/* AUTOGENERATED by update-syscall-lists.py. */ ++#define __NR_accept 202 ++#define __NR_accept4 242 ++#define __NR_acct 89 ++#define __NR_add_key 217 ++#define __NR_adjtimex 171 ++#define __NR_arc_gettls 246 ++#define __NR_arc_settls 245 ++#define __NR_arc_usr_cmpxchg 248 ++#define __NR_bind 200 ++#define __NR_bpf 280 ++#define __NR_brk 214 ++#define __NR_cacheflush 244 ++#define __NR_capget 90 ++#define __NR_capset 91 ++#define __NR_chdir 49 ++#define __NR_chroot 51 ++#define __NR_clock_adjtime 266 ++#define __NR_clock_adjtime64 405 ++#define __NR_clock_getres 114 ++#define __NR_clock_getres_time64 406 ++#define __NR_clock_gettime 113 ++#define __NR_clock_gettime64 403 ++#define __NR_clock_nanosleep 115 ++#define __NR_clock_nanosleep_time64 407 ++#define __NR_clock_settime 112 ++#define __NR_clock_settime64 404 ++#define __NR_clone 220 ++#define __NR_clone3 435 ++#define __NR_close 57 ++#define __NR_connect 203 ++#define __NR_copy_file_range 285 ++#define __NR_delete_module 106 ++#define __NR_dup 23 ++#define __NR_dup3 24 ++#define __NR_epoll_create1 20 ++#define __NR_epoll_ctl 21 ++#define __NR_epoll_pwait 22 ++#define __NR_eventfd2 19 ++#define __NR_execve 221 ++#define __NR_execveat 281 ++#define __NR_exit 93 ++#define __NR_exit_group 94 ++#define __NR_faccessat 48 ++#define __NR_fadvise64_64 223 ++#define __NR_fallocate 47 ++#define __NR_fanotify_init 262 ++#define __NR_fanotify_mark 263 ++#define __NR_fchdir 50 ++#define __NR_fchmod 52 ++#define __NR_fchmodat 53 ++#define __NR_fchown 55 ++#define __NR_fchownat 54 ++#define __NR_fcntl64 25 ++#define __NR_fdatasync 83 ++#define __NR_fgetxattr 10 ++#define __NR_finit_module 273 ++#define __NR_flistxattr 13 ++#define __NR_flock 32 ++#define __NR_fremovexattr 16 ++#define __NR_fsconfig 431 ++#define __NR_fsetxattr 7 ++#define __NR_fsmount 432 ++#define __NR_fsopen 430 ++#define __NR_fspick 433 ++#define __NR_fstat64 80 ++#define __NR_fstatat64 79 ++#define __NR_fstatfs64 44 ++#define __NR_fsync 82 ++#define __NR_ftruncate64 46 ++#define __NR_futex 98 ++#define __NR_futex_time64 422 ++#define __NR_get_mempolicy 236 ++#define __NR_get_robust_list 100 ++#define __NR_getcpu 168 ++#define __NR_getcwd 17 ++#define __NR_getdents64 61 ++#define __NR_getegid 177 ++#define __NR_geteuid 175 ++#define __NR_getgid 176 ++#define __NR_getgroups 158 ++#define __NR_getitimer 102 ++#define __NR_getpeername 205 ++#define __NR_getpgid 155 ++#define __NR_getpid 172 ++#define __NR_getppid 173 ++#define __NR_getpriority 141 ++#define __NR_getrandom 278 ++#define __NR_getresgid 150 ++#define __NR_getresuid 148 ++#define __NR_getrlimit 163 ++#define __NR_getrusage 165 ++#define __NR_getsid 156 ++#define __NR_getsockname 204 ++#define __NR_getsockopt 209 ++#define __NR_gettid 178 ++#define __NR_gettimeofday 169 ++#define __NR_getuid 174 ++#define __NR_getxattr 8 ++#define __NR_init_module 105 ++#define __NR_inotify_add_watch 27 ++#define __NR_inotify_init1 26 ++#define __NR_inotify_rm_watch 28 ++#define __NR_io_cancel 3 ++#define __NR_io_destroy 1 ++#define __NR_io_getevents 4 ++#define __NR_io_pgetevents 292 ++#define __NR_io_pgetevents_time64 416 ++#define __NR_io_setup 0 ++#define __NR_io_submit 2 ++#define __NR_io_uring_enter 426 ++#define __NR_io_uring_register 427 ++#define __NR_io_uring_setup 425 ++#define __NR_ioctl 29 ++#define __NR_ioprio_get 31 ++#define __NR_ioprio_set 30 ++#define __NR_kcmp 272 ++#define __NR_kexec_file_load 294 ++#define __NR_kexec_load 104 ++#define __NR_keyctl 219 ++#define __NR_kill 129 ++#define __NR_lgetxattr 9 ++#define __NR_linkat 37 ++#define __NR_listen 201 ++#define __NR_listxattr 11 ++#define __NR_llistxattr 12 ++#define __NR_llseek 62 ++#define __NR_lookup_dcookie 18 ++#define __NR_lremovexattr 15 ++#define __NR_lsetxattr 6 ++#define __NR_madvise 233 ++#define __NR_mbind 235 ++#define __NR_membarrier 283 ++#define __NR_memfd_create 279 ++#define __NR_migrate_pages 238 ++#define __NR_mincore 232 ++#define __NR_mkdirat 34 ++#define __NR_mknodat 33 ++#define __NR_mlock 228 ++#define __NR_mlock2 284 ++#define __NR_mlockall 230 ++#define __NR_mmap2 222 ++#define __NR_mount 40 ++#define __NR_move_mount 429 ++#define __NR_move_pages 239 ++#define __NR_mprotect 226 ++#define __NR_mq_getsetattr 185 ++#define __NR_mq_notify 184 ++#define __NR_mq_open 180 ++#define __NR_mq_timedreceive 183 ++#define __NR_mq_timedreceive_time64 419 ++#define __NR_mq_timedsend 182 ++#define __NR_mq_timedsend_time64 418 ++#define __NR_mq_unlink 181 ++#define __NR_mremap 216 ++#define __NR_msgctl 187 ++#define __NR_msgget 186 ++#define __NR_msgrcv 188 ++#define __NR_msgsnd 189 ++#define __NR_msync 227 ++#define __NR_munlock 229 ++#define __NR_munlockall 231 ++#define __NR_munmap 215 ++#define __NR_name_to_handle_at 264 ++#define __NR_nanosleep 101 ++#define __NR_nfsservctl 42 ++#define __NR_open_by_handle_at 265 ++#define __NR_open_tree 428 ++#define __NR_openat 56 ++#define __NR_perf_event_open 241 ++#define __NR_personality 92 ++#define __NR_pidfd_open 434 ++#define __NR_pidfd_send_signal 424 ++#define __NR_pipe2 59 ++#define __NR_pivot_root 41 ++#define __NR_pkey_alloc 289 ++#define __NR_pkey_free 290 ++#define __NR_pkey_mprotect 288 ++#define __NR_ppoll 73 ++#define __NR_ppoll_time64 414 ++#define __NR_prctl 167 ++#define __NR_pread64 67 ++#define __NR_preadv 69 ++#define __NR_preadv2 286 ++#define __NR_prlimit64 261 ++#define __NR_process_vm_readv 270 ++#define __NR_process_vm_writev 271 ++#define __NR_pselect6 72 ++#define __NR_pselect6_time64 413 ++#define __NR_ptrace 117 ++#define __NR_pwrite64 68 ++#define __NR_pwritev 70 ++#define __NR_pwritev2 287 ++#define __NR_quotactl 60 ++#define __NR_read 63 ++#define __NR_readahead 213 ++#define __NR_readlinkat 78 ++#define __NR_readv 65 ++#define __NR_reboot 142 ++#define __NR_recvfrom 207 ++#define __NR_recvmmsg 243 ++#define __NR_recvmmsg_time64 417 ++#define __NR_recvmsg 212 ++#define __NR_remap_file_pages 234 ++#define __NR_removexattr 14 ++#define __NR_renameat 38 ++#define __NR_renameat2 276 ++#define __NR_request_key 218 ++#define __NR_restart_syscall 128 ++#define __NR_rseq 293 ++#define __NR_rt_sigaction 134 ++#define __NR_rt_sigpending 136 ++#define __NR_rt_sigprocmask 135 ++#define __NR_rt_sigqueueinfo 138 ++#define __NR_rt_sigreturn 139 ++#define __NR_rt_sigsuspend 133 ++#define __NR_rt_sigtimedwait 137 ++#define __NR_rt_sigtimedwait_time64 421 ++#define __NR_rt_tgsigqueueinfo 240 ++#define __NR_sched_get_priority_max 125 ++#define __NR_sched_get_priority_min 126 ++#define __NR_sched_getaffinity 123 ++#define __NR_sched_getattr 275 ++#define __NR_sched_getparam 121 ++#define __NR_sched_getscheduler 120 ++#define __NR_sched_rr_get_interval 127 ++#define __NR_sched_rr_get_interval_time64 423 ++#define __NR_sched_setaffinity 122 ++#define __NR_sched_setattr 274 ++#define __NR_sched_setparam 118 ++#define __NR_sched_setscheduler 119 ++#define __NR_sched_yield 124 ++#define __NR_seccomp 277 ++#define __NR_semctl 191 ++#define __NR_semget 190 ++#define __NR_semop 193 ++#define __NR_semtimedop 192 ++#define __NR_semtimedop_time64 420 ++#define __NR_sendfile64 71 ++#define __NR_sendmmsg 269 ++#define __NR_sendmsg 211 ++#define __NR_sendto 206 ++#define __NR_set_mempolicy 237 ++#define __NR_set_robust_list 99 ++#define __NR_set_tid_address 96 ++#define __NR_setdomainname 162 ++#define __NR_setfsgid 152 ++#define __NR_setfsuid 151 ++#define __NR_setgid 144 ++#define __NR_setgroups 159 ++#define __NR_sethostname 161 ++#define __NR_setitimer 103 ++#define __NR_setns 268 ++#define __NR_setpgid 154 ++#define __NR_setpriority 140 ++#define __NR_setregid 143 ++#define __NR_setresgid 149 ++#define __NR_setresuid 147 ++#define __NR_setreuid 145 ++#define __NR_setrlimit 164 ++#define __NR_setsid 157 ++#define __NR_setsockopt 208 ++#define __NR_settimeofday 170 ++#define __NR_setuid 146 ++#define __NR_setxattr 5 ++#define __NR_shmat 196 ++#define __NR_shmctl 195 ++#define __NR_shmdt 197 ++#define __NR_shmget 194 ++#define __NR_shutdown 210 ++#define __NR_sigaltstack 132 ++#define __NR_signalfd4 74 ++#define __NR_socket 198 ++#define __NR_socketpair 199 ++#define __NR_splice 76 ++#define __NR_statfs64 43 ++#define __NR_statx 291 ++#define __NR_swapoff 225 ++#define __NR_swapon 224 ++#define __NR_symlinkat 36 ++#define __NR_sync 81 ++#define __NR_sync_file_range 84 ++#define __NR_syncfs 267 ++#define __NR_sysfs 247 ++#define __NR_sysinfo 179 ++#define __NR_syslog 116 ++#define __NR_tee 77 ++#define __NR_tgkill 131 ++#define __NR_timer_create 107 ++#define __NR_timer_delete 111 ++#define __NR_timer_getoverrun 109 ++#define __NR_timer_gettime 108 ++#define __NR_timer_gettime64 408 ++#define __NR_timer_settime 110 ++#define __NR_timer_settime64 409 ++#define __NR_timerfd_create 85 ++#define __NR_timerfd_gettime 87 ++#define __NR_timerfd_gettime64 410 ++#define __NR_timerfd_settime 86 ++#define __NR_timerfd_settime64 411 ++#define __NR_times 153 ++#define __NR_tkill 130 ++#define __NR_truncate64 45 ++#define __NR_umask 166 ++#define __NR_umount2 39 ++#define __NR_uname 160 ++#define __NR_unlinkat 35 ++#define __NR_unshare 97 ++#define __NR_userfaultfd 282 ++#define __NR_utimensat 88 ++#define __NR_utimensat_time64 412 ++#define __NR_vhangup 58 ++#define __NR_vmsplice 75 ++#define __NR_wait4 260 ++#define __NR_waitid 95 ++#define __NR_write 64 ++#define __NR_writev 66 +diff --git a/sysdeps/unix/sysv/linux/arc/bits/procfs.h b/sysdeps/unix/sysv/linux/arc/bits/procfs.h +new file mode 100644 +index 0000000000..b37deaee58 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/arc/bits/procfs.h +@@ -0,0 +1,35 @@ ++/* Types for registers for sys/procfs.h. ARC version. ++ Copyright (C) 1996-2019 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 ++ <http://www.gnu.org/licenses/>. */ ++ ++#ifndef _SYS_PROCFS_H ++# error "Never include <bits/procfs.h> directly; use <sys/procfs.h> instead." ++#endif ++ ++#include <sys/ucontext.h> ++ ++/* And the whole bunch of them. We could have used `struct ++ user_regs' directly in the typedef, but tradition says that ++ the register set is an array, which does have some peculiar ++ semantics, so leave it that way. */ ++#define ELF_NGREG (sizeof (struct user_regs_struct) / sizeof(elf_greg_t)) ++ ++typedef unsigned long int elf_greg_t; ++typedef unsigned long int elf_gregset_t[ELF_NGREG]; ++ ++/* There's no seperate floating point reg file in ARCv2. */ ++typedef struct { } elf_fpregset_t; +diff --git a/sysdeps/unix/sysv/linux/arc/bits/types/__sigset_t.h b/sysdeps/unix/sysv/linux/arc/bits/types/__sigset_t.h +new file mode 100644 +index 0000000000..795638a30b +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/arc/bits/types/__sigset_t.h +@@ -0,0 +1,12 @@ ++/* Architecture-specific __sigset_t definition. ARC version. */ ++#ifndef ____sigset_t_defined ++#define ____sigset_t_defined ++ ++/* Linux asm-generic syscall ABI expects sigset_t to hold 64 signals. */ ++#define _SIGSET_NWORDS (64 / (8 * sizeof (unsigned long int))) ++typedef struct ++{ ++ unsigned long int __val[_SIGSET_NWORDS]; ++} __sigset_t; ++ ++#endif +diff --git a/sysdeps/unix/sysv/linux/arc/c++-types.data b/sysdeps/unix/sysv/linux/arc/c++-types.data +new file mode 100644 +index 0000000000..303f4570c8 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/arc/c++-types.data +@@ -0,0 +1,67 @@ ++blkcnt64_t:x ++blkcnt_t:l ++blksize_t:i ++caddr_t:Pc ++clockid_t:i ++clock_t:l ++daddr_t:i ++dev_t:y ++fd_mask:l ++fsblkcnt64_t:y ++fsblkcnt_t:m ++fsfilcnt64_t:y ++fsfilcnt_t:m ++fsid_t:8__fsid_t ++gid_t:j ++id_t:j ++ino64_t:y ++ino_t:m ++int16_t:s ++int32_t:i ++int64_t:x ++int8_t:a ++intptr_t:i ++key_t:i ++loff_t:x ++mode_t:j ++nlink_t:j ++off64_t:x ++off_t:l ++pid_t:i ++pthread_attr_t:14pthread_attr_t ++pthread_barrier_t:17pthread_barrier_t ++pthread_barrierattr_t:21pthread_barrierattr_t ++pthread_cond_t:14pthread_cond_t ++pthread_condattr_t:18pthread_condattr_t ++pthread_key_t:j ++pthread_mutex_t:15pthread_mutex_t ++pthread_mutexattr_t:19pthread_mutexattr_t ++pthread_once_t:i ++pthread_rwlock_t:16pthread_rwlock_t ++pthread_rwlockattr_t:20pthread_rwlockattr_t ++pthread_spinlock_t:i ++pthread_t:m ++quad_t:x ++register_t:i ++rlim64_t:y ++rlim_t:m ++sigset_t:10__sigset_t ++size_t:j ++socklen_t:j ++ssize_t:i ++suseconds_t:l ++time_t:l ++u_char:h ++uid_t:j ++uint:j ++u_int:j ++u_int16_t:t ++u_int32_t:j ++u_int64_t:y ++u_int8_t:h ++ulong:m ++u_long:m ++u_quad_t:y ++useconds_t:j ++ushort:t ++u_short:t +diff --git a/sysdeps/unix/sysv/linux/arc/clone.S b/sysdeps/unix/sysv/linux/arc/clone.S +new file mode 100644 +index 0000000000..55c2a2b60e +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/arc/clone.S +@@ -0,0 +1,98 @@ ++/* clone() implementation for ARC. ++ Copyright (C) 2008-2019 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Andrew Jenner <andrew@codesourcery.com>, 2008. ++ ++ 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 ++ <http://www.gnu.org/licenses/>. */ ++ ++ ++#include <sysdep.h> ++#define _ERRNO_H 1 ++#include <bits/errno.h> ++#include <tcb-offsets.h> ++ ++#define CLONE_SETTLS 0x00080000 ++ ++/* int clone(int (*fn)(void *), void *child_stack, ++ int flags, void *arg, ... ++ < pid_t *ptid, struct user_desc *tls, pid_t *ctid > ); ++ ++ NOTE: I'm assuming that the last 3 args are NOT var-args and in case all ++ 3 are not relevant, caller will nevertheless pass those as NULL. ++ ++ clone syscall in kernel (ABI: CONFIG_CLONE_BACKWARDS) ++ ++ int sys_clone(unsigned long int clone_flags, ++ unsigned long int newsp, ++ int __user *parent_tidptr, ++ void *tls, ++ int __user *child_tidptr). */ ++ ++ENTRY (__clone) ++ cmp r0, 0 ; @fn can't be NULL ++ cmp.ne r1, 0 ; @child_stack can't be NULL ++ bz .L__sys_err ++ ++ ; save some of the orig args ++ ; r0 containg @fn will be clobbered AFTER syscall (with ret val) ++ ; rest are clobbered BEFORE syscall due to different arg ordering ++ mov r10, r0 ; @fn ++ mov r11, r3 ; @args ++ mov r12, r2 ; @clone_flags ++ mov r9, r5 ; @tls ++ ++ ; adjust libc args for syscall ++ ++ mov r0, r2 ; libc @flags is 1st syscall arg ++ mov r2, r4 ; libc @ptid ++ mov r3, r5 ; libc @tls ++ mov r4, r6 ; libc @ctid ++ mov r8, __NR_clone ++ ARC_TRAP_INSN ++ ++ cmp r0, 0 ; return code : 0 new process, !0 parent ++ blt .L__sys_err2 ; < 0 (signed) error ++ jnz [blink] ; Parent returns ++ ++ ; ----- child starts here --------- ++ ++ ; Setup TP register (only recent kernels v4.19+ do that) ++ and.f 0, r12, CLONE_SETTLS ++ mov.nz r25, r9 ++ ++ ; child jumps off to @fn with @arg as argument, and returns here ++ jl.d [r10] ++ mov r0, r11 ++ ++ ; exit() with result from @fn (already in r0) ++ mov r8, __NR_exit ++ ARC_TRAP_INSN ++ ; In case it ever came back ++ flag 1 ++ ++.L__sys_err: ++ mov r0, -EINVAL ++.L__sys_err2: ++ ; (1) No need to make -ve kernel error code as positive errno ++ ; __syscall_error expects the -ve error code returned by kernel ++ ; (2) r0 still had orig -ve kernel error code ++ ; (3) Tail call to __syscall_error so we dont have to come back ++ ; here hence instead of jmp-n-link (reg push/pop) we do jmp ++ ; (4) No need to route __syscall_error via PLT, B is inherently ++ ; position independent ++ b __syscall_error ++PSEUDO_END (__clone) ++libc_hidden_def (__clone) ++weak_alias (__clone, clone) +diff --git a/sysdeps/unix/sysv/linux/arc/configure b/sysdeps/unix/sysv/linux/arc/configure +new file mode 100644 +index 0000000000..f74fa7cb02 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/arc/configure +@@ -0,0 +1,4 @@ ++# This file is generated from configure.in by Autoconf. DO NOT EDIT! ++ # Local configure fragment for sysdeps/unix/sysv/linux/arc. ++ ++arch_minimum_kernel=3.9.0 +diff --git a/sysdeps/unix/sysv/linux/arc/configure.ac b/sysdeps/unix/sysv/linux/arc/configure.ac +new file mode 100644 +index 0000000000..a9528032d3 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/arc/configure.ac +@@ -0,0 +1,4 @@ ++GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. ++# Local configure fragment for sysdeps/unix/sysv/linux/arc. ++ ++arch_minimum_kernel=3.9.0 +diff --git a/sysdeps/unix/sysv/linux/arc/dl-static.c b/sysdeps/unix/sysv/linux/arc/dl-static.c +new file mode 100644 +index 0000000000..1a8757c984 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/arc/dl-static.c +@@ -0,0 +1,84 @@ ++/* Variable initialization. ARC version. ++ Copyright (C) 2001-2019 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 ++ <http://www.gnu.org/licenses/>. */ ++ ++#include <ldsodefs.h> ++ ++#ifdef SHARED ++ ++void ++_dl_var_init (void *array[]) ++{ ++ /* It has to match "variables" below. */ ++ enum ++ { ++ DL_PAGESIZE = 0 ++ }; ++ ++ GLRO(dl_pagesize) = *((size_t *) array[DL_PAGESIZE]); ++} ++ ++#else ++ ++static void *variables[] = ++{ ++ &GLRO(dl_pagesize) ++}; ++ ++static void ++_dl_unprotect_relro (struct link_map *l) ++{ ++ ElfW(Addr) start = ((l->l_addr + l->l_relro_addr) ++ & ~(GLRO(dl_pagesize) - 1)); ++ ElfW(Addr) end = ((l->l_addr + l->l_relro_addr + l->l_relro_size) ++ & ~(GLRO(dl_pagesize) - 1)); ++ ++ if (start != end) ++ __mprotect ((void *) start, end - start, PROT_READ | PROT_WRITE); ++} ++ ++void ++_dl_static_init (struct link_map *l) ++{ ++ struct link_map *rtld_map = l; ++ struct r_scope_elem **scope; ++ const ElfW(Sym) *ref = NULL; ++ lookup_t loadbase; ++ void (*f) (void *[]); ++ size_t i; ++ ++ loadbase = _dl_lookup_symbol_x ("_dl_var_init", l, &ref, l->l_local_scope, ++ NULL, 0, 1, NULL); ++ ++ for (scope = l->l_local_scope; *scope != NULL; scope++) ++ for (i = 0; i < (*scope)->r_nlist; i++) ++ if ((*scope)->r_list[i] == loadbase) ++ { ++ rtld_map = (*scope)->r_list[i]; ++ break; ++ } ++ ++ if (ref != NULL) ++ { ++ f = (void (*) (void *[])) DL_SYMBOL_ADDRESS (loadbase, ref); ++ _dl_unprotect_relro (rtld_map); ++ f (variables); ++ _dl_protect_relro (rtld_map); ++ } ++} ++ ++#endif +diff --git a/sysdeps/unix/sysv/linux/arc/getcontext.S b/sysdeps/unix/sysv/linux/arc/getcontext.S +new file mode 100644 +index 0000000000..723cc237d8 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/arc/getcontext.S +@@ -0,0 +1,63 @@ ++/* Save current context for ARC. ++ Copyright (C) 2009-2019 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 ++ <http://www.gnu.org/licenses/>. */ ++ ++#include "ucontext-macros.h" ++ ++/* int getcontext (ucontext_t *ucp) ++ Save machine context in @ucp and return 0 on success, -1 on error ++ - saves callee saved registers only ++ - layout mandated by uncontext_t:m_context (hence different from setjmp). */ ++ ++ENTRY (__getcontext) ++ ++ /* Callee saved registers. */ ++ SAVE_REG (r13, r0, 37) ++ SAVE_REG (r14, r0, 36) ++ SAVE_REG (r15, r0, 35) ++ SAVE_REG (r16, r0, 34) ++ SAVE_REG (r17, r0, 33) ++ SAVE_REG (r18, r0, 32) ++ SAVE_REG (r19, r0, 31) ++ SAVE_REG (r20, r0, 30) ++ SAVE_REG (r21, r0, 29) ++ SAVE_REG (r22, r0, 28) ++ SAVE_REG (r23, r0, 27) ++ SAVE_REG (r24, r0, 26) ++ SAVE_REG (r25, r0, 25) ++ ++ SAVE_REG (blink, r0, 7) ++ SAVE_REG (fp, r0, 8) ++ SAVE_REG (sp, r0, 23) ++ ++ /* Save 0 in r0 placeholder to return 0 when this @ucp activated. */ ++ mov r9, 0 ++ SAVE_REG (r9, r0, 22) ++ ++ /* rt_sigprocmask (SIG_BLOCK, NULL, &ucp->uc_sigmask, _NSIG8). */ ++ mov r3, _NSIG8 ++ add r2, r0, UCONTEXT_SIGMASK ++ mov r1, 0 ++ mov r0, SIG_BLOCK ++ mov r8, __NR_rt_sigprocmask ++ ARC_TRAP_INSN ++ brhi r0, -1024, .Lcall_syscall_err ++ j.d [blink] ++ mov r0, 0 /* Success, error handled in .Lcall_syscall_err. */ ++ ++PSEUDO_END (__getcontext) ++weak_alias (__getcontext, getcontext) +diff --git a/sysdeps/unix/sysv/linux/arc/ipc_priv.h b/sysdeps/unix/sysv/linux/arc/ipc_priv.h +new file mode 100644 +index 0000000000..309eb3064e +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/arc/ipc_priv.h +@@ -0,0 +1,21 @@ ++/* Old SysV permission definition for Linux. ARC version. ++ Copyright (C) 2016-2019 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 ++ <http://www.gnu.org/licenses/>. */ ++ ++#include <sys/ipc.h> /* For __key_t */ ++ ++#define __IPC_64 0x0 +diff --git a/sysdeps/unix/sysv/linux/arc/jmp_buf-macros.h b/sysdeps/unix/sysv/linux/arc/jmp_buf-macros.h +new file mode 100644 +index 0000000000..6c12939848 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/arc/jmp_buf-macros.h +@@ -0,0 +1,6 @@ ++#define JMP_BUF_SIZE (32 + 1 + 64/(8 * sizeof (unsigned long int))) * sizeof (unsigned long int) ++#define SIGJMP_BUF_SIZE (32 + 1 + 64/(8 * sizeof (unsigned long int))) * sizeof (unsigned long int) ++#define JMP_BUF_ALIGN __alignof__ (unsigned long int) ++#define SIGJMP_BUF_ALIGN __alignof__ (unsigned long int) ++#define MASK_WAS_SAVED_OFFSET (32 * sizeof (unsigned long int)) ++#define SAVED_MASK_OFFSET (33 * sizeof (unsigned long int)) +diff --git a/sysdeps/unix/sysv/linux/arc/kernel-features.h b/sysdeps/unix/sysv/linux/arc/kernel-features.h +new file mode 100644 +index 0000000000..00255337bc +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/arc/kernel-features.h +@@ -0,0 +1,28 @@ ++/* Set flags signalling availability of kernel features based on given ++ kernel version number. ++ ++ Copyright (C) 2009-2019 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 ++ <http://www.gnu.org/licenses/>. */ ++ ++/* The minimum supported kernel version for ARC is 3.9, ++ guaranteeing many kernel features. */ ++ ++#include_next <kernel-features.h> ++ ++#undef __ASSUME_CLONE_DEFAULT ++#define __ASSUME_CLONE_BACKWARDS 1 +diff --git a/sysdeps/unix/sysv/linux/arc/ld.abilist b/sysdeps/unix/sysv/linux/arc/ld.abilist +new file mode 100644 +index 0000000000..41183d7bee +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/arc/ld.abilist +@@ -0,0 +1,9 @@ ++GLIBC_2.30 __libc_stack_end D 0x4 ++GLIBC_2.30 __stack_chk_guard D 0x4 ++GLIBC_2.30 __tls_get_addr F ++GLIBC_2.30 _dl_mcount F ++GLIBC_2.30 _r_debug D 0x14 ++GLIBC_2.30 calloc F ++GLIBC_2.30 free F ++GLIBC_2.30 malloc F ++GLIBC_2.30 realloc F +diff --git a/sysdeps/unix/sysv/linux/arc/ldsodefs.h b/sysdeps/unix/sysv/linux/arc/ldsodefs.h +new file mode 100644 +index 0000000000..8c5c6800af +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/arc/ldsodefs.h +@@ -0,0 +1,32 @@ ++/* Run-time dynamic linker data structures for loaded ELF shared objects. ARC ++ Copyright (C) 2001-2019 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 ++ <http://www.gnu.org/licenses/>. */ ++ ++#ifndef _LDSODEFS_H ++ ++/* Get the real definitions. */ ++#include_next <ldsodefs.h> ++ ++/* Now define our stuff. */ ++ ++/* We need special support to initialize DSO loaded for statically linked ++ binaries. */ ++extern void _dl_static_init (struct link_map *map); ++#undef DL_STATIC_INIT ++#define DL_STATIC_INIT(map) _dl_static_init (map) ++ ++#endif /* ldsodefs.h */ +diff --git a/sysdeps/unix/sysv/linux/arc/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/arc/libBrokenLocale.abilist +new file mode 100644 +index 0000000000..c6253c0ae8 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/arc/libBrokenLocale.abilist +@@ -0,0 +1 @@ ++GLIBC_2.30 __ctype_get_mb_cur_max F +diff --git a/sysdeps/unix/sysv/linux/arc/libanl.abilist b/sysdeps/unix/sysv/linux/arc/libanl.abilist +new file mode 100644 +index 0000000000..d3b753219e +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/arc/libanl.abilist +@@ -0,0 +1,4 @@ ++GLIBC_2.30 gai_cancel F ++GLIBC_2.30 gai_error F ++GLIBC_2.30 gai_suspend F ++GLIBC_2.30 getaddrinfo_a F +diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist +new file mode 100644 +index 0000000000..823ae25bcc +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/arc/libc.abilist +@@ -0,0 +1,2084 @@ ++GLIBC_2.30 _Exit F ++GLIBC_2.30 _IO_2_1_stderr_ D 0x98 ++GLIBC_2.30 _IO_2_1_stdin_ D 0x98 ++GLIBC_2.30 _IO_2_1_stdout_ D 0x98 ++GLIBC_2.30 _IO_adjust_column F ++GLIBC_2.30 _IO_adjust_wcolumn F ++GLIBC_2.30 _IO_default_doallocate F ++GLIBC_2.30 _IO_default_finish F ++GLIBC_2.30 _IO_default_pbackfail F ++GLIBC_2.30 _IO_default_uflow F ++GLIBC_2.30 _IO_default_xsgetn F ++GLIBC_2.30 _IO_default_xsputn F ++GLIBC_2.30 _IO_do_write F ++GLIBC_2.30 _IO_doallocbuf F ++GLIBC_2.30 _IO_fclose F ++GLIBC_2.30 _IO_fdopen F ++GLIBC_2.30 _IO_feof F ++GLIBC_2.30 _IO_ferror F ++GLIBC_2.30 _IO_fflush F ++GLIBC_2.30 _IO_fgetpos F ++GLIBC_2.30 _IO_fgetpos64 F ++GLIBC_2.30 _IO_fgets F ++GLIBC_2.30 _IO_file_attach F ++GLIBC_2.30 _IO_file_close F ++GLIBC_2.30 _IO_file_close_it F ++GLIBC_2.30 _IO_file_doallocate F ++GLIBC_2.30 _IO_file_finish F ++GLIBC_2.30 _IO_file_fopen F ++GLIBC_2.30 _IO_file_init F ++GLIBC_2.30 _IO_file_jumps D 0x54 ++GLIBC_2.30 _IO_file_open F ++GLIBC_2.30 _IO_file_overflow F ++GLIBC_2.30 _IO_file_read F ++GLIBC_2.30 _IO_file_seek F ++GLIBC_2.30 _IO_file_seekoff F ++GLIBC_2.30 _IO_file_setbuf F ++GLIBC_2.30 _IO_file_stat F ++GLIBC_2.30 _IO_file_sync F ++GLIBC_2.30 _IO_file_underflow F ++GLIBC_2.30 _IO_file_write F ++GLIBC_2.30 _IO_file_xsputn F ++GLIBC_2.30 _IO_flockfile F ++GLIBC_2.30 _IO_flush_all F ++GLIBC_2.30 _IO_flush_all_linebuffered F ++GLIBC_2.30 _IO_fopen F ++GLIBC_2.30 _IO_fprintf F ++GLIBC_2.30 _IO_fputs F ++GLIBC_2.30 _IO_fread F ++GLIBC_2.30 _IO_free_backup_area F ++GLIBC_2.30 _IO_free_wbackup_area F ++GLIBC_2.30 _IO_fsetpos F ++GLIBC_2.30 _IO_fsetpos64 F ++GLIBC_2.30 _IO_ftell F ++GLIBC_2.30 _IO_ftrylockfile F ++GLIBC_2.30 _IO_funlockfile F ++GLIBC_2.30 _IO_fwrite F ++GLIBC_2.30 _IO_getc F ++GLIBC_2.30 _IO_getline F ++GLIBC_2.30 _IO_getline_info F ++GLIBC_2.30 _IO_gets F ++GLIBC_2.30 _IO_init F ++GLIBC_2.30 _IO_init_marker F ++GLIBC_2.30 _IO_init_wmarker F ++GLIBC_2.30 _IO_iter_begin F ++GLIBC_2.30 _IO_iter_end F ++GLIBC_2.30 _IO_iter_file F ++GLIBC_2.30 _IO_iter_next F ++GLIBC_2.30 _IO_least_wmarker F ++GLIBC_2.30 _IO_link_in F ++GLIBC_2.30 _IO_list_all D 0x4 ++GLIBC_2.30 _IO_list_lock F ++GLIBC_2.30 _IO_list_resetlock F ++GLIBC_2.30 _IO_list_unlock F ++GLIBC_2.30 _IO_marker_delta F ++GLIBC_2.30 _IO_marker_difference F ++GLIBC_2.30 _IO_padn F ++GLIBC_2.30 _IO_peekc_locked F ++GLIBC_2.30 _IO_popen F ++GLIBC_2.30 _IO_printf F ++GLIBC_2.30 _IO_proc_close F ++GLIBC_2.30 _IO_proc_open F ++GLIBC_2.30 _IO_putc F ++GLIBC_2.30 _IO_puts F ++GLIBC_2.30 _IO_remove_marker F ++GLIBC_2.30 _IO_seekmark F ++GLIBC_2.30 _IO_seekoff F ++GLIBC_2.30 _IO_seekpos F ++GLIBC_2.30 _IO_seekwmark F ++GLIBC_2.30 _IO_setb F ++GLIBC_2.30 _IO_setbuffer F ++GLIBC_2.30 _IO_setvbuf F ++GLIBC_2.30 _IO_sgetn F ++GLIBC_2.30 _IO_sprintf F ++GLIBC_2.30 _IO_sputbackc F ++GLIBC_2.30 _IO_sputbackwc F ++GLIBC_2.30 _IO_sscanf F ++GLIBC_2.30 _IO_str_init_readonly F ++GLIBC_2.30 _IO_str_init_static F ++GLIBC_2.30 _IO_str_overflow F ++GLIBC_2.30 _IO_str_pbackfail F ++GLIBC_2.30 _IO_str_seekoff F ++GLIBC_2.30 _IO_str_underflow F ++GLIBC_2.30 _IO_sungetc F ++GLIBC_2.30 _IO_sungetwc F ++GLIBC_2.30 _IO_switch_to_get_mode F ++GLIBC_2.30 _IO_switch_to_main_wget_area F ++GLIBC_2.30 _IO_switch_to_wbackup_area F ++GLIBC_2.30 _IO_switch_to_wget_mode F ++GLIBC_2.30 _IO_un_link F ++GLIBC_2.30 _IO_ungetc F ++GLIBC_2.30 _IO_unsave_markers F ++GLIBC_2.30 _IO_unsave_wmarkers F ++GLIBC_2.30 _IO_vfprintf F ++GLIBC_2.30 _IO_vsprintf F ++GLIBC_2.30 _IO_wdefault_doallocate F ++GLIBC_2.30 _IO_wdefault_finish F ++GLIBC_2.30 _IO_wdefault_pbackfail F ++GLIBC_2.30 _IO_wdefault_uflow F ++GLIBC_2.30 _IO_wdefault_xsgetn F ++GLIBC_2.30 _IO_wdefault_xsputn F ++GLIBC_2.30 _IO_wdo_write F ++GLIBC_2.30 _IO_wdoallocbuf F ++GLIBC_2.30 _IO_wfile_jumps D 0x54 ++GLIBC_2.30 _IO_wfile_overflow F ++GLIBC_2.30 _IO_wfile_seekoff F ++GLIBC_2.30 _IO_wfile_sync F ++GLIBC_2.30 _IO_wfile_underflow F ++GLIBC_2.30 _IO_wfile_xsputn F ++GLIBC_2.30 _IO_wmarker_delta F ++GLIBC_2.30 _IO_wsetb F ++GLIBC_2.30 ___brk_addr D 0x4 ++GLIBC_2.30 __adjtimex F ++GLIBC_2.30 __after_morecore_hook D 0x4 ++GLIBC_2.30 __argz_count F ++GLIBC_2.30 __argz_next F ++GLIBC_2.30 __argz_stringify F ++GLIBC_2.30 __asprintf F ++GLIBC_2.30 __asprintf_chk F ++GLIBC_2.30 __assert F ++GLIBC_2.30 __assert_fail F ++GLIBC_2.30 __assert_perror_fail F ++GLIBC_2.30 __backtrace F ++GLIBC_2.30 __backtrace_symbols F ++GLIBC_2.30 __backtrace_symbols_fd F ++GLIBC_2.30 __bsd_getpgrp F ++GLIBC_2.30 __bzero F ++GLIBC_2.30 __check_rhosts_file D 0x4 ++GLIBC_2.30 __chk_fail F ++GLIBC_2.30 __clone F ++GLIBC_2.30 __close F ++GLIBC_2.30 __cmsg_nxthdr F ++GLIBC_2.30 __confstr_chk F ++GLIBC_2.30 __connect F ++GLIBC_2.30 __ctype_b_loc F ++GLIBC_2.30 __ctype_get_mb_cur_max F ++GLIBC_2.30 __ctype_tolower_loc F ++GLIBC_2.30 __ctype_toupper_loc F ++GLIBC_2.30 __curbrk D 0x4 ++GLIBC_2.30 __cxa_at_quick_exit F ++GLIBC_2.30 __cxa_atexit F ++GLIBC_2.30 __cxa_finalize F ++GLIBC_2.30 __cxa_thread_atexit_impl F ++GLIBC_2.30 __cyg_profile_func_enter F ++GLIBC_2.30 __cyg_profile_func_exit F ++GLIBC_2.30 __daylight D 0x4 ++GLIBC_2.30 __dcgettext F ++GLIBC_2.30 __default_morecore F ++GLIBC_2.30 __dgettext F ++GLIBC_2.30 __dprintf_chk F ++GLIBC_2.30 __dup2 F ++GLIBC_2.30 __duplocale F ++GLIBC_2.30 __endmntent F ++GLIBC_2.30 __environ D 0x4 ++GLIBC_2.30 __errno_location F ++GLIBC_2.30 __explicit_bzero_chk F ++GLIBC_2.30 __fbufsize F ++GLIBC_2.30 __fcntl F ++GLIBC_2.30 __fdelt_chk F ++GLIBC_2.30 __fdelt_warn F ++GLIBC_2.30 __ffs F ++GLIBC_2.30 __fgets_chk F ++GLIBC_2.30 __fgets_unlocked_chk F ++GLIBC_2.30 __fgetws_chk F ++GLIBC_2.30 __fgetws_unlocked_chk F ++GLIBC_2.30 __finite F ++GLIBC_2.30 __finitef F ++GLIBC_2.30 __flbf F ++GLIBC_2.30 __fork F ++GLIBC_2.30 __fpending F ++GLIBC_2.30 __fprintf_chk F ++GLIBC_2.30 __fpu_control D 0x4 ++GLIBC_2.30 __fpurge F ++GLIBC_2.30 __fread_chk F ++GLIBC_2.30 __fread_unlocked_chk F ++GLIBC_2.30 __freadable F ++GLIBC_2.30 __freading F ++GLIBC_2.30 __free_hook D 0x4 ++GLIBC_2.30 __freelocale F ++GLIBC_2.30 __fsetlocking F ++GLIBC_2.30 __fwprintf_chk F ++GLIBC_2.30 __fwritable F ++GLIBC_2.30 __fwriting F ++GLIBC_2.30 __fxstat F ++GLIBC_2.30 __fxstat64 F ++GLIBC_2.30 __fxstatat F ++GLIBC_2.30 __fxstatat64 F ++GLIBC_2.30 __getauxval F ++GLIBC_2.30 __getcwd_chk F ++GLIBC_2.30 __getdelim F ++GLIBC_2.30 __getdomainname_chk F ++GLIBC_2.30 __getgroups_chk F ++GLIBC_2.30 __gethostname_chk F ++GLIBC_2.30 __getlogin_r_chk F ++GLIBC_2.30 __getmntent_r F ++GLIBC_2.30 __getpagesize F ++GLIBC_2.30 __getpgid F ++GLIBC_2.30 __getpid F ++GLIBC_2.30 __gets_chk F ++GLIBC_2.30 __gettimeofday F ++GLIBC_2.30 __getwd_chk F ++GLIBC_2.30 __gmtime_r F ++GLIBC_2.30 __h_errno_location F ++GLIBC_2.30 __isalnum_l F ++GLIBC_2.30 __isalpha_l F ++GLIBC_2.30 __isascii_l F ++GLIBC_2.30 __isblank_l F ++GLIBC_2.30 __iscntrl_l F ++GLIBC_2.30 __isctype F ++GLIBC_2.30 __isdigit_l F ++GLIBC_2.30 __isgraph_l F ++GLIBC_2.30 __isinf F ++GLIBC_2.30 __isinff F ++GLIBC_2.30 __islower_l F ++GLIBC_2.30 __isnan F ++GLIBC_2.30 __isnanf F ++GLIBC_2.30 __isoc99_fscanf F ++GLIBC_2.30 __isoc99_fwscanf F ++GLIBC_2.30 __isoc99_scanf F ++GLIBC_2.30 __isoc99_sscanf F ++GLIBC_2.30 __isoc99_swscanf F ++GLIBC_2.30 __isoc99_vfscanf F ++GLIBC_2.30 __isoc99_vfwscanf F ++GLIBC_2.30 __isoc99_vscanf F ++GLIBC_2.30 __isoc99_vsscanf F ++GLIBC_2.30 __isoc99_vswscanf F ++GLIBC_2.30 __isoc99_vwscanf F ++GLIBC_2.30 __isoc99_wscanf F ++GLIBC_2.30 __isprint_l F ++GLIBC_2.30 __ispunct_l F ++GLIBC_2.30 __isspace_l F ++GLIBC_2.30 __isupper_l F ++GLIBC_2.30 __iswalnum_l F ++GLIBC_2.30 __iswalpha_l F ++GLIBC_2.30 __iswblank_l F ++GLIBC_2.30 __iswcntrl_l F ++GLIBC_2.30 __iswctype F ++GLIBC_2.30 __iswctype_l F ++GLIBC_2.30 __iswdigit_l F ++GLIBC_2.30 __iswgraph_l F ++GLIBC_2.30 __iswlower_l F ++GLIBC_2.30 __iswprint_l F ++GLIBC_2.30 __iswpunct_l F ++GLIBC_2.30 __iswspace_l F ++GLIBC_2.30 __iswupper_l F ++GLIBC_2.30 __iswxdigit_l F ++GLIBC_2.30 __isxdigit_l F ++GLIBC_2.30 __ivaliduser F ++GLIBC_2.30 __key_decryptsession_pk_LOCAL D 0x4 ++GLIBC_2.30 __key_encryptsession_pk_LOCAL D 0x4 ++GLIBC_2.30 __key_gendes_LOCAL D 0x4 ++GLIBC_2.30 __libc_allocate_rtsig F ++GLIBC_2.30 __libc_calloc F ++GLIBC_2.30 __libc_current_sigrtmax F ++GLIBC_2.30 __libc_current_sigrtmin F ++GLIBC_2.30 __libc_free F ++GLIBC_2.30 __libc_freeres F ++GLIBC_2.30 __libc_init_first F ++GLIBC_2.30 __libc_mallinfo F ++GLIBC_2.30 __libc_malloc F ++GLIBC_2.30 __libc_mallopt F ++GLIBC_2.30 __libc_memalign F ++GLIBC_2.30 __libc_pvalloc F ++GLIBC_2.30 __libc_realloc F ++GLIBC_2.30 __libc_sa_len F ++GLIBC_2.30 __libc_start_main F ++GLIBC_2.30 __libc_valloc F ++GLIBC_2.30 __longjmp_chk F ++GLIBC_2.30 __lseek F ++GLIBC_2.30 __lxstat F ++GLIBC_2.30 __lxstat64 F ++GLIBC_2.30 __malloc_hook D 0x4 ++GLIBC_2.30 __mbrlen F ++GLIBC_2.30 __mbrtowc F ++GLIBC_2.30 __mbsnrtowcs_chk F ++GLIBC_2.30 __mbsrtowcs_chk F ++GLIBC_2.30 __mbstowcs_chk F ++GLIBC_2.30 __memalign_hook D 0x4 ++GLIBC_2.30 __memcpy_chk F ++GLIBC_2.30 __memmove_chk F ++GLIBC_2.30 __mempcpy F ++GLIBC_2.30 __mempcpy_chk F ++GLIBC_2.30 __memset_chk F ++GLIBC_2.30 __monstartup F ++GLIBC_2.30 __morecore D 0x4 ++GLIBC_2.30 __nanosleep F ++GLIBC_2.30 __newlocale F ++GLIBC_2.30 __nl_langinfo_l F ++GLIBC_2.30 __nss_configure_lookup F ++GLIBC_2.30 __nss_hostname_digits_dots F ++GLIBC_2.30 __obstack_printf_chk F ++GLIBC_2.30 __obstack_vprintf_chk F ++GLIBC_2.30 __open F ++GLIBC_2.30 __open64 F ++GLIBC_2.30 __open64_2 F ++GLIBC_2.30 __open_2 F ++GLIBC_2.30 __openat64_2 F ++GLIBC_2.30 __openat_2 F ++GLIBC_2.30 __overflow F ++GLIBC_2.30 __pipe F ++GLIBC_2.30 __poll F ++GLIBC_2.30 __poll_chk F ++GLIBC_2.30 __posix_getopt F ++GLIBC_2.30 __ppoll_chk F ++GLIBC_2.30 __pread64 F ++GLIBC_2.30 __pread64_chk F ++GLIBC_2.30 __pread_chk F ++GLIBC_2.30 __printf_chk F ++GLIBC_2.30 __printf_fp F ++GLIBC_2.30 __profile_frequency F ++GLIBC_2.30 __progname D 0x4 ++GLIBC_2.30 __progname_full D 0x4 ++GLIBC_2.30 __ptsname_r_chk F ++GLIBC_2.30 __pwrite64 F ++GLIBC_2.30 __rawmemchr F ++GLIBC_2.30 __rcmd_errstr D 0x4 ++GLIBC_2.30 __read F ++GLIBC_2.30 __read_chk F ++GLIBC_2.30 __readlink_chk F ++GLIBC_2.30 __readlinkat_chk F ++GLIBC_2.30 __realloc_hook D 0x4 ++GLIBC_2.30 __realpath_chk F ++GLIBC_2.30 __recv_chk F ++GLIBC_2.30 __recvfrom_chk F ++GLIBC_2.30 __register_atfork F ++GLIBC_2.30 __res_init F ++GLIBC_2.30 __res_nclose F ++GLIBC_2.30 __res_ninit F ++GLIBC_2.30 __res_randomid F ++GLIBC_2.30 __res_state F ++GLIBC_2.30 __rpc_thread_createerr F ++GLIBC_2.30 __rpc_thread_svc_fdset F ++GLIBC_2.30 __rpc_thread_svc_max_pollfd F ++GLIBC_2.30 __rpc_thread_svc_pollfd F ++GLIBC_2.30 __sbrk F ++GLIBC_2.30 __sched_cpualloc F ++GLIBC_2.30 __sched_cpucount F ++GLIBC_2.30 __sched_cpufree F ++GLIBC_2.30 __sched_get_priority_max F ++GLIBC_2.30 __sched_get_priority_min F ++GLIBC_2.30 __sched_getparam F ++GLIBC_2.30 __sched_getscheduler F ++GLIBC_2.30 __sched_setscheduler F ++GLIBC_2.30 __sched_yield F ++GLIBC_2.30 __select F ++GLIBC_2.30 __send F ++GLIBC_2.30 __setmntent F ++GLIBC_2.30 __setpgid F ++GLIBC_2.30 __sigaction F ++GLIBC_2.30 __signbit F ++GLIBC_2.30 __signbitf F ++GLIBC_2.30 __sigpause F ++GLIBC_2.30 __sigsetjmp F ++GLIBC_2.30 __sigsuspend F ++GLIBC_2.30 __snprintf_chk F ++GLIBC_2.30 __sprintf_chk F ++GLIBC_2.30 __stack_chk_fail F ++GLIBC_2.30 __statfs F ++GLIBC_2.30 __stpcpy F ++GLIBC_2.30 __stpcpy_chk F ++GLIBC_2.30 __stpncpy F ++GLIBC_2.30 __stpncpy_chk F ++GLIBC_2.30 __strcasecmp F ++GLIBC_2.30 __strcasecmp_l F ++GLIBC_2.30 __strcasestr F ++GLIBC_2.30 __strcat_chk F ++GLIBC_2.30 __strcoll_l F ++GLIBC_2.30 __strcpy_chk F ++GLIBC_2.30 __strdup F ++GLIBC_2.30 __strerror_r F ++GLIBC_2.30 __strfmon_l F ++GLIBC_2.30 __strftime_l F ++GLIBC_2.30 __strncasecmp_l F ++GLIBC_2.30 __strncat_chk F ++GLIBC_2.30 __strncpy_chk F ++GLIBC_2.30 __strndup F ++GLIBC_2.30 __strsep_g F ++GLIBC_2.30 __strtod_internal F ++GLIBC_2.30 __strtod_l F ++GLIBC_2.30 __strtof_internal F ++GLIBC_2.30 __strtof_l F ++GLIBC_2.30 __strtok_r F ++GLIBC_2.30 __strtol_internal F ++GLIBC_2.30 __strtol_l F ++GLIBC_2.30 __strtold_internal F ++GLIBC_2.30 __strtold_l F ++GLIBC_2.30 __strtoll_internal F ++GLIBC_2.30 __strtoll_l F ++GLIBC_2.30 __strtoul_internal F ++GLIBC_2.30 __strtoul_l F ++GLIBC_2.30 __strtoull_internal F ++GLIBC_2.30 __strtoull_l F ++GLIBC_2.30 __strverscmp F ++GLIBC_2.30 __strxfrm_l F ++GLIBC_2.30 __swprintf_chk F ++GLIBC_2.30 __syscall_error F ++GLIBC_2.30 __sysconf F ++GLIBC_2.30 __syslog_chk F ++GLIBC_2.30 __sysv_signal F ++GLIBC_2.30 __timezone D 0x4 ++GLIBC_2.30 __toascii_l F ++GLIBC_2.30 __tolower_l F ++GLIBC_2.30 __toupper_l F ++GLIBC_2.30 __towctrans F ++GLIBC_2.30 __towctrans_l F ++GLIBC_2.30 __towlower_l F ++GLIBC_2.30 __towupper_l F ++GLIBC_2.30 __ttyname_r_chk F ++GLIBC_2.30 __tzname D 0x8 ++GLIBC_2.30 __uflow F ++GLIBC_2.30 __underflow F ++GLIBC_2.30 __uselocale F ++GLIBC_2.30 __vasprintf_chk F ++GLIBC_2.30 __vdprintf_chk F ++GLIBC_2.30 __vfork F ++GLIBC_2.30 __vfprintf_chk F ++GLIBC_2.30 __vfscanf F ++GLIBC_2.30 __vfwprintf_chk F ++GLIBC_2.30 __vprintf_chk F ++GLIBC_2.30 __vsnprintf F ++GLIBC_2.30 __vsnprintf_chk F ++GLIBC_2.30 __vsprintf_chk F ++GLIBC_2.30 __vsscanf F ++GLIBC_2.30 __vswprintf_chk F ++GLIBC_2.30 __vsyslog_chk F ++GLIBC_2.30 __vwprintf_chk F ++GLIBC_2.30 __wait F ++GLIBC_2.30 __waitpid F ++GLIBC_2.30 __wcpcpy_chk F ++GLIBC_2.30 __wcpncpy_chk F ++GLIBC_2.30 __wcrtomb_chk F ++GLIBC_2.30 __wcscasecmp_l F ++GLIBC_2.30 __wcscat_chk F ++GLIBC_2.30 __wcscoll_l F ++GLIBC_2.30 __wcscpy_chk F ++GLIBC_2.30 __wcsftime_l F ++GLIBC_2.30 __wcsncasecmp_l F ++GLIBC_2.30 __wcsncat_chk F ++GLIBC_2.30 __wcsncpy_chk F ++GLIBC_2.30 __wcsnrtombs_chk F ++GLIBC_2.30 __wcsrtombs_chk F ++GLIBC_2.30 __wcstod_internal F ++GLIBC_2.30 __wcstod_l F ++GLIBC_2.30 __wcstof_internal F ++GLIBC_2.30 __wcstof_l F ++GLIBC_2.30 __wcstol_internal F ++GLIBC_2.30 __wcstol_l F ++GLIBC_2.30 __wcstold_internal F ++GLIBC_2.30 __wcstold_l F ++GLIBC_2.30 __wcstoll_internal F ++GLIBC_2.30 __wcstoll_l F ++GLIBC_2.30 __wcstombs_chk F ++GLIBC_2.30 __wcstoul_internal F ++GLIBC_2.30 __wcstoul_l F ++GLIBC_2.30 __wcstoull_internal F ++GLIBC_2.30 __wcstoull_l F ++GLIBC_2.30 __wcsxfrm_l F ++GLIBC_2.30 __wctomb_chk F ++GLIBC_2.30 __wctrans_l F ++GLIBC_2.30 __wctype_l F ++GLIBC_2.30 __wmemcpy_chk F ++GLIBC_2.30 __wmemmove_chk F ++GLIBC_2.30 __wmempcpy_chk F ++GLIBC_2.30 __wmemset_chk F ++GLIBC_2.30 __woverflow F ++GLIBC_2.30 __wprintf_chk F ++GLIBC_2.30 __write F ++GLIBC_2.30 __wuflow F ++GLIBC_2.30 __wunderflow F ++GLIBC_2.30 __xmknod F ++GLIBC_2.30 __xmknodat F ++GLIBC_2.30 __xpg_basename F ++GLIBC_2.30 __xpg_sigpause F ++GLIBC_2.30 __xpg_strerror_r F ++GLIBC_2.30 __xstat F ++GLIBC_2.30 __xstat64 F ++GLIBC_2.30 _authenticate F ++GLIBC_2.30 _dl_mcount_wrapper F ++GLIBC_2.30 _dl_mcount_wrapper_check F ++GLIBC_2.30 _environ D 0x4 ++GLIBC_2.30 _exit F ++GLIBC_2.30 _flush_cache F ++GLIBC_2.30 _flushlbf F ++GLIBC_2.30 _libc_intl_domainname D 0x5 ++GLIBC_2.30 _longjmp F ++GLIBC_2.30 _mcleanup F ++GLIBC_2.30 _mcount F ++GLIBC_2.30 _nl_default_dirname D 0x12 ++GLIBC_2.30 _nl_domain_bindings D 0x4 ++GLIBC_2.30 _nl_msg_cat_cntr D 0x4 ++GLIBC_2.30 _null_auth D 0xc ++GLIBC_2.30 _obstack_allocated_p F ++GLIBC_2.30 _obstack_begin F ++GLIBC_2.30 _obstack_begin_1 F ++GLIBC_2.30 _obstack_free F ++GLIBC_2.30 _obstack_memory_used F ++GLIBC_2.30 _obstack_newchunk F ++GLIBC_2.30 _res D 0x200 ++GLIBC_2.30 _res_hconf D 0x30 ++GLIBC_2.30 _rpc_dtablesize F ++GLIBC_2.30 _seterr_reply F ++GLIBC_2.30 _setjmp F ++GLIBC_2.30 _sys_errlist D 0x21c ++GLIBC_2.30 _sys_nerr D 0x4 ++GLIBC_2.30 _sys_siglist D 0x104 ++GLIBC_2.30 _tolower F ++GLIBC_2.30 _toupper F ++GLIBC_2.30 a64l F ++GLIBC_2.30 abort F ++GLIBC_2.30 abs F ++GLIBC_2.30 accept F ++GLIBC_2.30 accept4 F ++GLIBC_2.30 access F ++GLIBC_2.30 acct F ++GLIBC_2.30 addmntent F ++GLIBC_2.30 addseverity F ++GLIBC_2.30 adjtime F ++GLIBC_2.30 adjtimex F ++GLIBC_2.30 alarm F ++GLIBC_2.30 aligned_alloc F ++GLIBC_2.30 alphasort F ++GLIBC_2.30 alphasort64 F ++GLIBC_2.30 argp_err_exit_status D 0x4 ++GLIBC_2.30 argp_error F ++GLIBC_2.30 argp_failure F ++GLIBC_2.30 argp_help F ++GLIBC_2.30 argp_parse F ++GLIBC_2.30 argp_program_bug_address D 0x4 ++GLIBC_2.30 argp_program_version D 0x4 ++GLIBC_2.30 argp_program_version_hook D 0x4 ++GLIBC_2.30 argp_state_help F ++GLIBC_2.30 argp_usage F ++GLIBC_2.30 argz_add F ++GLIBC_2.30 argz_add_sep F ++GLIBC_2.30 argz_append F ++GLIBC_2.30 argz_count F ++GLIBC_2.30 argz_create F ++GLIBC_2.30 argz_create_sep F ++GLIBC_2.30 argz_delete F ++GLIBC_2.30 argz_extract F ++GLIBC_2.30 argz_insert F ++GLIBC_2.30 argz_next F ++GLIBC_2.30 argz_replace F ++GLIBC_2.30 argz_stringify F ++GLIBC_2.30 asctime F ++GLIBC_2.30 asctime_r F ++GLIBC_2.30 asprintf F ++GLIBC_2.30 atof F ++GLIBC_2.30 atoi F ++GLIBC_2.30 atol F ++GLIBC_2.30 atoll F ++GLIBC_2.30 authdes_create F ++GLIBC_2.30 authdes_getucred F ++GLIBC_2.30 authdes_pk_create F ++GLIBC_2.30 authnone_create F ++GLIBC_2.30 authunix_create F ++GLIBC_2.30 authunix_create_default F ++GLIBC_2.30 backtrace F ++GLIBC_2.30 backtrace_symbols F ++GLIBC_2.30 backtrace_symbols_fd F ++GLIBC_2.30 basename F ++GLIBC_2.30 bcmp F ++GLIBC_2.30 bcopy F ++GLIBC_2.30 bind F ++GLIBC_2.30 bind_textdomain_codeset F ++GLIBC_2.30 bindresvport F ++GLIBC_2.30 bindtextdomain F ++GLIBC_2.30 brk F ++GLIBC_2.30 bsd_signal F ++GLIBC_2.30 bsearch F ++GLIBC_2.30 btowc F ++GLIBC_2.30 bzero F ++GLIBC_2.30 c16rtomb F ++GLIBC_2.30 c32rtomb F ++GLIBC_2.30 cacheflush F ++GLIBC_2.30 calloc F ++GLIBC_2.30 callrpc F ++GLIBC_2.30 canonicalize_file_name F ++GLIBC_2.30 capget F ++GLIBC_2.30 capset F ++GLIBC_2.30 catclose F ++GLIBC_2.30 catgets F ++GLIBC_2.30 catopen F ++GLIBC_2.30 cbc_crypt F ++GLIBC_2.30 cfgetispeed F ++GLIBC_2.30 cfgetospeed F ++GLIBC_2.30 cfmakeraw F ++GLIBC_2.30 cfsetispeed F ++GLIBC_2.30 cfsetospeed F ++GLIBC_2.30 cfsetspeed F ++GLIBC_2.30 chdir F ++GLIBC_2.30 chflags F ++GLIBC_2.30 chmod F ++GLIBC_2.30 chown F ++GLIBC_2.30 chroot F ++GLIBC_2.30 clearenv F ++GLIBC_2.30 clearerr F ++GLIBC_2.30 clearerr_unlocked F ++GLIBC_2.30 clnt_broadcast F ++GLIBC_2.30 clnt_create F ++GLIBC_2.30 clnt_pcreateerror F ++GLIBC_2.30 clnt_perrno F ++GLIBC_2.30 clnt_perror F ++GLIBC_2.30 clnt_spcreateerror F ++GLIBC_2.30 clnt_sperrno F ++GLIBC_2.30 clnt_sperror F ++GLIBC_2.30 clntraw_create F ++GLIBC_2.30 clnttcp_create F ++GLIBC_2.30 clntudp_bufcreate F ++GLIBC_2.30 clntudp_create F ++GLIBC_2.30 clntunix_create F ++GLIBC_2.30 clock F ++GLIBC_2.30 clock_adjtime F ++GLIBC_2.30 clock_getcpuclockid F ++GLIBC_2.30 clock_getres F ++GLIBC_2.30 clock_gettime F ++GLIBC_2.30 clock_nanosleep F ++GLIBC_2.30 clock_settime F ++GLIBC_2.30 clone F ++GLIBC_2.30 close F ++GLIBC_2.30 closedir F ++GLIBC_2.30 closelog F ++GLIBC_2.30 confstr F ++GLIBC_2.30 connect F ++GLIBC_2.30 copy_file_range F ++GLIBC_2.30 copysign F ++GLIBC_2.30 copysignf F ++GLIBC_2.30 copysignl F ++GLIBC_2.30 creat F ++GLIBC_2.30 creat64 F ++GLIBC_2.30 ctermid F ++GLIBC_2.30 ctime F ++GLIBC_2.30 ctime_r F ++GLIBC_2.30 cuserid F ++GLIBC_2.30 daemon F ++GLIBC_2.30 daylight D 0x4 ++GLIBC_2.30 dcgettext F ++GLIBC_2.30 dcngettext F ++GLIBC_2.30 delete_module F ++GLIBC_2.30 des_setparity F ++GLIBC_2.30 dgettext F ++GLIBC_2.30 difftime F ++GLIBC_2.30 dirfd F ++GLIBC_2.30 dirname F ++GLIBC_2.30 div F ++GLIBC_2.30 dl_iterate_phdr F ++GLIBC_2.30 dngettext F ++GLIBC_2.30 dprintf F ++GLIBC_2.30 drand48 F ++GLIBC_2.30 drand48_r F ++GLIBC_2.30 dup F ++GLIBC_2.30 dup2 F ++GLIBC_2.30 dup3 F ++GLIBC_2.30 duplocale F ++GLIBC_2.30 dysize F ++GLIBC_2.30 eaccess F ++GLIBC_2.30 ecb_crypt F ++GLIBC_2.30 ecvt F ++GLIBC_2.30 ecvt_r F ++GLIBC_2.30 endaliasent F ++GLIBC_2.30 endfsent F ++GLIBC_2.30 endgrent F ++GLIBC_2.30 endhostent F ++GLIBC_2.30 endmntent F ++GLIBC_2.30 endnetent F ++GLIBC_2.30 endnetgrent F ++GLIBC_2.30 endprotoent F ++GLIBC_2.30 endpwent F ++GLIBC_2.30 endrpcent F ++GLIBC_2.30 endservent F ++GLIBC_2.30 endsgent F ++GLIBC_2.30 endspent F ++GLIBC_2.30 endttyent F ++GLIBC_2.30 endusershell F ++GLIBC_2.30 endutent F ++GLIBC_2.30 endutxent F ++GLIBC_2.30 environ D 0x4 ++GLIBC_2.30 envz_add F ++GLIBC_2.30 envz_entry F ++GLIBC_2.30 envz_get F ++GLIBC_2.30 envz_merge F ++GLIBC_2.30 envz_remove F ++GLIBC_2.30 envz_strip F ++GLIBC_2.30 epoll_create F ++GLIBC_2.30 epoll_create1 F ++GLIBC_2.30 epoll_ctl F ++GLIBC_2.30 epoll_pwait F ++GLIBC_2.30 epoll_wait F ++GLIBC_2.30 erand48 F ++GLIBC_2.30 erand48_r F ++GLIBC_2.30 err F ++GLIBC_2.30 error F ++GLIBC_2.30 error_at_line F ++GLIBC_2.30 error_message_count D 0x4 ++GLIBC_2.30 error_one_per_line D 0x4 ++GLIBC_2.30 error_print_progname D 0x4 ++GLIBC_2.30 errx F ++GLIBC_2.30 ether_aton F ++GLIBC_2.30 ether_aton_r F ++GLIBC_2.30 ether_hostton F ++GLIBC_2.30 ether_line F ++GLIBC_2.30 ether_ntoa F ++GLIBC_2.30 ether_ntoa_r F ++GLIBC_2.30 ether_ntohost F ++GLIBC_2.30 euidaccess F ++GLIBC_2.30 eventfd F ++GLIBC_2.30 eventfd_read F ++GLIBC_2.30 eventfd_write F ++GLIBC_2.30 execl F ++GLIBC_2.30 execle F ++GLIBC_2.30 execlp F ++GLIBC_2.30 execv F ++GLIBC_2.30 execve F ++GLIBC_2.30 execvp F ++GLIBC_2.30 execvpe F ++GLIBC_2.30 exit F ++GLIBC_2.30 explicit_bzero F ++GLIBC_2.30 faccessat F ++GLIBC_2.30 fallocate F ++GLIBC_2.30 fallocate64 F ++GLIBC_2.30 fanotify_init F ++GLIBC_2.30 fanotify_mark F ++GLIBC_2.30 fchdir F ++GLIBC_2.30 fchflags F ++GLIBC_2.30 fchmod F ++GLIBC_2.30 fchmodat F ++GLIBC_2.30 fchown F ++GLIBC_2.30 fchownat F ++GLIBC_2.30 fclose F ++GLIBC_2.30 fcloseall F ++GLIBC_2.30 fcntl F ++GLIBC_2.30 fcntl64 F ++GLIBC_2.30 fcvt F ++GLIBC_2.30 fcvt_r F ++GLIBC_2.30 fdatasync F ++GLIBC_2.30 fdopen F ++GLIBC_2.30 fdopendir F ++GLIBC_2.30 feof F ++GLIBC_2.30 feof_unlocked F ++GLIBC_2.30 ferror F ++GLIBC_2.30 ferror_unlocked F ++GLIBC_2.30 fexecve F ++GLIBC_2.30 fflush F ++GLIBC_2.30 fflush_unlocked F ++GLIBC_2.30 ffs F ++GLIBC_2.30 ffsl F ++GLIBC_2.30 ffsll F ++GLIBC_2.30 fgetc F ++GLIBC_2.30 fgetc_unlocked F ++GLIBC_2.30 fgetgrent F ++GLIBC_2.30 fgetgrent_r F ++GLIBC_2.30 fgetpos F ++GLIBC_2.30 fgetpos64 F ++GLIBC_2.30 fgetpwent F ++GLIBC_2.30 fgetpwent_r F ++GLIBC_2.30 fgets F ++GLIBC_2.30 fgets_unlocked F ++GLIBC_2.30 fgetsgent F ++GLIBC_2.30 fgetsgent_r F ++GLIBC_2.30 fgetspent F ++GLIBC_2.30 fgetspent_r F ++GLIBC_2.30 fgetwc F ++GLIBC_2.30 fgetwc_unlocked F ++GLIBC_2.30 fgetws F ++GLIBC_2.30 fgetws_unlocked F ++GLIBC_2.30 fgetxattr F ++GLIBC_2.30 fileno F ++GLIBC_2.30 fileno_unlocked F ++GLIBC_2.30 finite F ++GLIBC_2.30 finitef F ++GLIBC_2.30 finitel F ++GLIBC_2.30 flistxattr F ++GLIBC_2.30 flock F ++GLIBC_2.30 flockfile F ++GLIBC_2.30 fmemopen F ++GLIBC_2.30 fmtmsg F ++GLIBC_2.30 fnmatch F ++GLIBC_2.30 fopen F ++GLIBC_2.30 fopen64 F ++GLIBC_2.30 fopencookie F ++GLIBC_2.30 fork F ++GLIBC_2.30 fpathconf F ++GLIBC_2.30 fprintf F ++GLIBC_2.30 fputc F ++GLIBC_2.30 fputc_unlocked F ++GLIBC_2.30 fputs F ++GLIBC_2.30 fputs_unlocked F ++GLIBC_2.30 fputwc F ++GLIBC_2.30 fputwc_unlocked F ++GLIBC_2.30 fputws F ++GLIBC_2.30 fputws_unlocked F ++GLIBC_2.30 fread F ++GLIBC_2.30 fread_unlocked F ++GLIBC_2.30 free F ++GLIBC_2.30 freeaddrinfo F ++GLIBC_2.30 freeifaddrs F ++GLIBC_2.30 freelocale F ++GLIBC_2.30 fremovexattr F ++GLIBC_2.30 freopen F ++GLIBC_2.30 freopen64 F ++GLIBC_2.30 frexp F ++GLIBC_2.30 frexpf F ++GLIBC_2.30 frexpl F ++GLIBC_2.30 fscanf F ++GLIBC_2.30 fseek F ++GLIBC_2.30 fseeko F ++GLIBC_2.30 fseeko64 F ++GLIBC_2.30 fsetpos F ++GLIBC_2.30 fsetpos64 F ++GLIBC_2.30 fsetxattr F ++GLIBC_2.30 fstatfs F ++GLIBC_2.30 fstatfs64 F ++GLIBC_2.30 fstatvfs F ++GLIBC_2.30 fstatvfs64 F ++GLIBC_2.30 fsync F ++GLIBC_2.30 ftell F ++GLIBC_2.30 ftello F ++GLIBC_2.30 ftello64 F ++GLIBC_2.30 ftime F ++GLIBC_2.30 ftok F ++GLIBC_2.30 ftruncate F ++GLIBC_2.30 ftruncate64 F ++GLIBC_2.30 ftrylockfile F ++GLIBC_2.30 fts64_children F ++GLIBC_2.30 fts64_close F ++GLIBC_2.30 fts64_open F ++GLIBC_2.30 fts64_read F ++GLIBC_2.30 fts64_set F ++GLIBC_2.30 fts_children F ++GLIBC_2.30 fts_close F ++GLIBC_2.30 fts_open F ++GLIBC_2.30 fts_read F ++GLIBC_2.30 fts_set F ++GLIBC_2.30 ftw F ++GLIBC_2.30 ftw64 F ++GLIBC_2.30 funlockfile F ++GLIBC_2.30 futimens F ++GLIBC_2.30 futimes F ++GLIBC_2.30 futimesat F ++GLIBC_2.30 fwide F ++GLIBC_2.30 fwprintf F ++GLIBC_2.30 fwrite F ++GLIBC_2.30 fwrite_unlocked F ++GLIBC_2.30 fwscanf F ++GLIBC_2.30 gai_strerror F ++GLIBC_2.30 gcvt F ++GLIBC_2.30 get_avphys_pages F ++GLIBC_2.30 get_current_dir_name F ++GLIBC_2.30 get_myaddress F ++GLIBC_2.30 get_nprocs F ++GLIBC_2.30 get_nprocs_conf F ++GLIBC_2.30 get_phys_pages F ++GLIBC_2.30 getaddrinfo F ++GLIBC_2.30 getaliasbyname F ++GLIBC_2.30 getaliasbyname_r F ++GLIBC_2.30 getaliasent F ++GLIBC_2.30 getaliasent_r F ++GLIBC_2.30 getauxval F ++GLIBC_2.30 getc F ++GLIBC_2.30 getc_unlocked F ++GLIBC_2.30 getchar F ++GLIBC_2.30 getchar_unlocked F ++GLIBC_2.30 getcontext F ++GLIBC_2.30 getcpu F ++GLIBC_2.30 getcwd F ++GLIBC_2.30 getdate F ++GLIBC_2.30 getdate_err D 0x4 ++GLIBC_2.30 getdate_r F ++GLIBC_2.30 getdelim F ++GLIBC_2.30 getdents64 F ++GLIBC_2.30 getdirentries F ++GLIBC_2.30 getdirentries64 F ++GLIBC_2.30 getdomainname F ++GLIBC_2.30 getdtablesize F ++GLIBC_2.30 getegid F ++GLIBC_2.30 getentropy F ++GLIBC_2.30 getenv F ++GLIBC_2.30 geteuid F ++GLIBC_2.30 getfsent F ++GLIBC_2.30 getfsfile F ++GLIBC_2.30 getfsspec F ++GLIBC_2.30 getgid F ++GLIBC_2.30 getgrent F ++GLIBC_2.30 getgrent_r F ++GLIBC_2.30 getgrgid F ++GLIBC_2.30 getgrgid_r F ++GLIBC_2.30 getgrnam F ++GLIBC_2.30 getgrnam_r F ++GLIBC_2.30 getgrouplist F ++GLIBC_2.30 getgroups F ++GLIBC_2.30 gethostbyaddr F ++GLIBC_2.30 gethostbyaddr_r F ++GLIBC_2.30 gethostbyname F ++GLIBC_2.30 gethostbyname2 F ++GLIBC_2.30 gethostbyname2_r F ++GLIBC_2.30 gethostbyname_r F ++GLIBC_2.30 gethostent F ++GLIBC_2.30 gethostent_r F ++GLIBC_2.30 gethostid F ++GLIBC_2.30 gethostname F ++GLIBC_2.30 getifaddrs F ++GLIBC_2.30 getipv4sourcefilter F ++GLIBC_2.30 getitimer F ++GLIBC_2.30 getline F ++GLIBC_2.30 getloadavg F ++GLIBC_2.30 getlogin F ++GLIBC_2.30 getlogin_r F ++GLIBC_2.30 getmntent F ++GLIBC_2.30 getmntent_r F ++GLIBC_2.30 getnameinfo F ++GLIBC_2.30 getnetbyaddr F ++GLIBC_2.30 getnetbyaddr_r F ++GLIBC_2.30 getnetbyname F ++GLIBC_2.30 getnetbyname_r F ++GLIBC_2.30 getnetent F ++GLIBC_2.30 getnetent_r F ++GLIBC_2.30 getnetgrent F ++GLIBC_2.30 getnetgrent_r F ++GLIBC_2.30 getnetname F ++GLIBC_2.30 getopt F ++GLIBC_2.30 getopt_long F ++GLIBC_2.30 getopt_long_only F ++GLIBC_2.30 getpagesize F ++GLIBC_2.30 getpass F ++GLIBC_2.30 getpeername F ++GLIBC_2.30 getpgid F ++GLIBC_2.30 getpgrp F ++GLIBC_2.30 getpid F ++GLIBC_2.30 getppid F ++GLIBC_2.30 getpriority F ++GLIBC_2.30 getprotobyname F ++GLIBC_2.30 getprotobyname_r F ++GLIBC_2.30 getprotobynumber F ++GLIBC_2.30 getprotobynumber_r F ++GLIBC_2.30 getprotoent F ++GLIBC_2.30 getprotoent_r F ++GLIBC_2.30 getpt F ++GLIBC_2.30 getpublickey F ++GLIBC_2.30 getpw F ++GLIBC_2.30 getpwent F ++GLIBC_2.30 getpwent_r F ++GLIBC_2.30 getpwnam F ++GLIBC_2.30 getpwnam_r F ++GLIBC_2.30 getpwuid F ++GLIBC_2.30 getpwuid_r F ++GLIBC_2.30 getrandom F ++GLIBC_2.30 getresgid F ++GLIBC_2.30 getresuid F ++GLIBC_2.30 getrlimit F ++GLIBC_2.30 getrlimit64 F ++GLIBC_2.30 getrpcbyname F ++GLIBC_2.30 getrpcbyname_r F ++GLIBC_2.30 getrpcbynumber F ++GLIBC_2.30 getrpcbynumber_r F ++GLIBC_2.30 getrpcent F ++GLIBC_2.30 getrpcent_r F ++GLIBC_2.30 getrpcport F ++GLIBC_2.30 getrusage F ++GLIBC_2.30 gets F ++GLIBC_2.30 getsecretkey F ++GLIBC_2.30 getservbyname F ++GLIBC_2.30 getservbyname_r F ++GLIBC_2.30 getservbyport F ++GLIBC_2.30 getservbyport_r F ++GLIBC_2.30 getservent F ++GLIBC_2.30 getservent_r F ++GLIBC_2.30 getsgent F ++GLIBC_2.30 getsgent_r F ++GLIBC_2.30 getsgnam F ++GLIBC_2.30 getsgnam_r F ++GLIBC_2.30 getsid F ++GLIBC_2.30 getsockname F ++GLIBC_2.30 getsockopt F ++GLIBC_2.30 getsourcefilter F ++GLIBC_2.30 getspent F ++GLIBC_2.30 getspent_r F ++GLIBC_2.30 getspnam F ++GLIBC_2.30 getspnam_r F ++GLIBC_2.30 getsubopt F ++GLIBC_2.30 gettext F ++GLIBC_2.30 gettid F ++GLIBC_2.30 gettimeofday F ++GLIBC_2.30 getttyent F ++GLIBC_2.30 getttynam F ++GLIBC_2.30 getuid F ++GLIBC_2.30 getusershell F ++GLIBC_2.30 getutent F ++GLIBC_2.30 getutent_r F ++GLIBC_2.30 getutid F ++GLIBC_2.30 getutid_r F ++GLIBC_2.30 getutline F ++GLIBC_2.30 getutline_r F ++GLIBC_2.30 getutmp F ++GLIBC_2.30 getutmpx F ++GLIBC_2.30 getutxent F ++GLIBC_2.30 getutxid F ++GLIBC_2.30 getutxline F ++GLIBC_2.30 getw F ++GLIBC_2.30 getwc F ++GLIBC_2.30 getwc_unlocked F ++GLIBC_2.30 getwchar F ++GLIBC_2.30 getwchar_unlocked F ++GLIBC_2.30 getwd F ++GLIBC_2.30 getxattr F ++GLIBC_2.30 glob F ++GLIBC_2.30 glob64 F ++GLIBC_2.30 glob_pattern_p F ++GLIBC_2.30 globfree F ++GLIBC_2.30 globfree64 F ++GLIBC_2.30 gmtime F ++GLIBC_2.30 gmtime_r F ++GLIBC_2.30 gnu_dev_major F ++GLIBC_2.30 gnu_dev_makedev F ++GLIBC_2.30 gnu_dev_minor F ++GLIBC_2.30 gnu_get_libc_release F ++GLIBC_2.30 gnu_get_libc_version F ++GLIBC_2.30 grantpt F ++GLIBC_2.30 group_member F ++GLIBC_2.30 gsignal F ++GLIBC_2.30 gtty F ++GLIBC_2.30 h_errlist D 0x14 ++GLIBC_2.30 h_nerr D 0x4 ++GLIBC_2.30 hasmntopt F ++GLIBC_2.30 hcreate F ++GLIBC_2.30 hcreate_r F ++GLIBC_2.30 hdestroy F ++GLIBC_2.30 hdestroy_r F ++GLIBC_2.30 herror F ++GLIBC_2.30 host2netname F ++GLIBC_2.30 hsearch F ++GLIBC_2.30 hsearch_r F ++GLIBC_2.30 hstrerror F ++GLIBC_2.30 htonl F ++GLIBC_2.30 htons F ++GLIBC_2.30 iconv F ++GLIBC_2.30 iconv_close F ++GLIBC_2.30 iconv_open F ++GLIBC_2.30 if_freenameindex F ++GLIBC_2.30 if_indextoname F ++GLIBC_2.30 if_nameindex F ++GLIBC_2.30 if_nametoindex F ++GLIBC_2.30 imaxabs F ++GLIBC_2.30 imaxdiv F ++GLIBC_2.30 in6addr_any D 0x10 ++GLIBC_2.30 in6addr_loopback D 0x10 ++GLIBC_2.30 index F ++GLIBC_2.30 inet6_opt_append F ++GLIBC_2.30 inet6_opt_find F ++GLIBC_2.30 inet6_opt_finish F ++GLIBC_2.30 inet6_opt_get_val F ++GLIBC_2.30 inet6_opt_init F ++GLIBC_2.30 inet6_opt_next F ++GLIBC_2.30 inet6_opt_set_val F ++GLIBC_2.30 inet6_option_alloc F ++GLIBC_2.30 inet6_option_append F ++GLIBC_2.30 inet6_option_find F ++GLIBC_2.30 inet6_option_init F ++GLIBC_2.30 inet6_option_next F ++GLIBC_2.30 inet6_option_space F ++GLIBC_2.30 inet6_rth_add F ++GLIBC_2.30 inet6_rth_getaddr F ++GLIBC_2.30 inet6_rth_init F ++GLIBC_2.30 inet6_rth_reverse F ++GLIBC_2.30 inet6_rth_segments F ++GLIBC_2.30 inet6_rth_space F ++GLIBC_2.30 inet_addr F ++GLIBC_2.30 inet_aton F ++GLIBC_2.30 inet_lnaof F ++GLIBC_2.30 inet_makeaddr F ++GLIBC_2.30 inet_netof F ++GLIBC_2.30 inet_network F ++GLIBC_2.30 inet_nsap_addr F ++GLIBC_2.30 inet_nsap_ntoa F ++GLIBC_2.30 inet_ntoa F ++GLIBC_2.30 inet_ntop F ++GLIBC_2.30 inet_pton F ++GLIBC_2.30 init_module F ++GLIBC_2.30 initgroups F ++GLIBC_2.30 initstate F ++GLIBC_2.30 initstate_r F ++GLIBC_2.30 innetgr F ++GLIBC_2.30 inotify_add_watch F ++GLIBC_2.30 inotify_init F ++GLIBC_2.30 inotify_init1 F ++GLIBC_2.30 inotify_rm_watch F ++GLIBC_2.30 insque F ++GLIBC_2.30 ioctl F ++GLIBC_2.30 iruserok F ++GLIBC_2.30 iruserok_af F ++GLIBC_2.30 isalnum F ++GLIBC_2.30 isalnum_l F ++GLIBC_2.30 isalpha F ++GLIBC_2.30 isalpha_l F ++GLIBC_2.30 isascii F ++GLIBC_2.30 isatty F ++GLIBC_2.30 isblank F ++GLIBC_2.30 isblank_l F ++GLIBC_2.30 iscntrl F ++GLIBC_2.30 iscntrl_l F ++GLIBC_2.30 isctype F ++GLIBC_2.30 isdigit F ++GLIBC_2.30 isdigit_l F ++GLIBC_2.30 isfdtype F ++GLIBC_2.30 isgraph F ++GLIBC_2.30 isgraph_l F ++GLIBC_2.30 isinf F ++GLIBC_2.30 isinff F ++GLIBC_2.30 isinfl F ++GLIBC_2.30 islower F ++GLIBC_2.30 islower_l F ++GLIBC_2.30 isnan F ++GLIBC_2.30 isnanf F ++GLIBC_2.30 isnanl F ++GLIBC_2.30 isprint F ++GLIBC_2.30 isprint_l F ++GLIBC_2.30 ispunct F ++GLIBC_2.30 ispunct_l F ++GLIBC_2.30 isspace F ++GLIBC_2.30 isspace_l F ++GLIBC_2.30 isupper F ++GLIBC_2.30 isupper_l F ++GLIBC_2.30 iswalnum F ++GLIBC_2.30 iswalnum_l F ++GLIBC_2.30 iswalpha F ++GLIBC_2.30 iswalpha_l F ++GLIBC_2.30 iswblank F ++GLIBC_2.30 iswblank_l F ++GLIBC_2.30 iswcntrl F ++GLIBC_2.30 iswcntrl_l F ++GLIBC_2.30 iswctype F ++GLIBC_2.30 iswctype_l F ++GLIBC_2.30 iswdigit F ++GLIBC_2.30 iswdigit_l F ++GLIBC_2.30 iswgraph F ++GLIBC_2.30 iswgraph_l F ++GLIBC_2.30 iswlower F ++GLIBC_2.30 iswlower_l F ++GLIBC_2.30 iswprint F ++GLIBC_2.30 iswprint_l F ++GLIBC_2.30 iswpunct F ++GLIBC_2.30 iswpunct_l F ++GLIBC_2.30 iswspace F ++GLIBC_2.30 iswspace_l F ++GLIBC_2.30 iswupper F ++GLIBC_2.30 iswupper_l F ++GLIBC_2.30 iswxdigit F ++GLIBC_2.30 iswxdigit_l F ++GLIBC_2.30 isxdigit F ++GLIBC_2.30 isxdigit_l F ++GLIBC_2.30 jrand48 F ++GLIBC_2.30 jrand48_r F ++GLIBC_2.30 key_decryptsession F ++GLIBC_2.30 key_decryptsession_pk F ++GLIBC_2.30 key_encryptsession F ++GLIBC_2.30 key_encryptsession_pk F ++GLIBC_2.30 key_gendes F ++GLIBC_2.30 key_get_conv F ++GLIBC_2.30 key_secretkey_is_set F ++GLIBC_2.30 key_setnet F ++GLIBC_2.30 key_setsecret F ++GLIBC_2.30 kill F ++GLIBC_2.30 killpg F ++GLIBC_2.30 klogctl F ++GLIBC_2.30 l64a F ++GLIBC_2.30 labs F ++GLIBC_2.30 lchmod F ++GLIBC_2.30 lchown F ++GLIBC_2.30 lckpwdf F ++GLIBC_2.30 lcong48 F ++GLIBC_2.30 lcong48_r F ++GLIBC_2.30 ldexp F ++GLIBC_2.30 ldexpf F ++GLIBC_2.30 ldexpl F ++GLIBC_2.30 ldiv F ++GLIBC_2.30 lfind F ++GLIBC_2.30 lgetxattr F ++GLIBC_2.30 link F ++GLIBC_2.30 linkat F ++GLIBC_2.30 listen F ++GLIBC_2.30 listxattr F ++GLIBC_2.30 llabs F ++GLIBC_2.30 lldiv F ++GLIBC_2.30 llistxattr F ++GLIBC_2.30 localeconv F ++GLIBC_2.30 localtime F ++GLIBC_2.30 localtime_r F ++GLIBC_2.30 lockf F ++GLIBC_2.30 lockf64 F ++GLIBC_2.30 longjmp F ++GLIBC_2.30 lrand48 F ++GLIBC_2.30 lrand48_r F ++GLIBC_2.30 lremovexattr F ++GLIBC_2.30 lsearch F ++GLIBC_2.30 lseek F ++GLIBC_2.30 lseek64 F ++GLIBC_2.30 lsetxattr F ++GLIBC_2.30 lutimes F ++GLIBC_2.30 madvise F ++GLIBC_2.30 makecontext F ++GLIBC_2.30 mallinfo F ++GLIBC_2.30 malloc F ++GLIBC_2.30 malloc_info F ++GLIBC_2.30 malloc_stats F ++GLIBC_2.30 malloc_trim F ++GLIBC_2.30 malloc_usable_size F ++GLIBC_2.30 mallopt F ++GLIBC_2.30 mallwatch D 0x4 ++GLIBC_2.30 mblen F ++GLIBC_2.30 mbrlen F ++GLIBC_2.30 mbrtoc16 F ++GLIBC_2.30 mbrtoc32 F ++GLIBC_2.30 mbrtowc F ++GLIBC_2.30 mbsinit F ++GLIBC_2.30 mbsnrtowcs F ++GLIBC_2.30 mbsrtowcs F ++GLIBC_2.30 mbstowcs F ++GLIBC_2.30 mbtowc F ++GLIBC_2.30 mcheck F ++GLIBC_2.30 mcheck_check_all F ++GLIBC_2.30 mcheck_pedantic F ++GLIBC_2.30 memalign F ++GLIBC_2.30 memccpy F ++GLIBC_2.30 memchr F ++GLIBC_2.30 memcmp F ++GLIBC_2.30 memcpy F ++GLIBC_2.30 memfd_create F ++GLIBC_2.30 memfrob F ++GLIBC_2.30 memmem F ++GLIBC_2.30 memmove F ++GLIBC_2.30 mempcpy F ++GLIBC_2.30 memrchr F ++GLIBC_2.30 memset F ++GLIBC_2.30 mincore F ++GLIBC_2.30 mkdir F ++GLIBC_2.30 mkdirat F ++GLIBC_2.30 mkdtemp F ++GLIBC_2.30 mkfifo F ++GLIBC_2.30 mkfifoat F ++GLIBC_2.30 mkostemp F ++GLIBC_2.30 mkostemp64 F ++GLIBC_2.30 mkostemps F ++GLIBC_2.30 mkostemps64 F ++GLIBC_2.30 mkstemp F ++GLIBC_2.30 mkstemp64 F ++GLIBC_2.30 mkstemps F ++GLIBC_2.30 mkstemps64 F ++GLIBC_2.30 mktemp F ++GLIBC_2.30 mktime F ++GLIBC_2.30 mlock F ++GLIBC_2.30 mlock2 F ++GLIBC_2.30 mlockall F ++GLIBC_2.30 mmap F ++GLIBC_2.30 mmap64 F ++GLIBC_2.30 modf F ++GLIBC_2.30 modff F ++GLIBC_2.30 modfl F ++GLIBC_2.30 moncontrol F ++GLIBC_2.30 monstartup F ++GLIBC_2.30 mount F ++GLIBC_2.30 mprobe F ++GLIBC_2.30 mprotect F ++GLIBC_2.30 mrand48 F ++GLIBC_2.30 mrand48_r F ++GLIBC_2.30 mremap F ++GLIBC_2.30 msgctl F ++GLIBC_2.30 msgget F ++GLIBC_2.30 msgrcv F ++GLIBC_2.30 msgsnd F ++GLIBC_2.30 msync F ++GLIBC_2.30 mtrace F ++GLIBC_2.30 munlock F ++GLIBC_2.30 munlockall F ++GLIBC_2.30 munmap F ++GLIBC_2.30 muntrace F ++GLIBC_2.30 name_to_handle_at F ++GLIBC_2.30 nanosleep F ++GLIBC_2.30 netname2host F ++GLIBC_2.30 netname2user F ++GLIBC_2.30 newlocale F ++GLIBC_2.30 nftw F ++GLIBC_2.30 nftw64 F ++GLIBC_2.30 ngettext F ++GLIBC_2.30 nice F ++GLIBC_2.30 nl_langinfo F ++GLIBC_2.30 nl_langinfo_l F ++GLIBC_2.30 nrand48 F ++GLIBC_2.30 nrand48_r F ++GLIBC_2.30 ntohl F ++GLIBC_2.30 ntohs F ++GLIBC_2.30 ntp_adjtime F ++GLIBC_2.30 ntp_gettime F ++GLIBC_2.30 ntp_gettimex F ++GLIBC_2.30 obstack_alloc_failed_handler D 0x4 ++GLIBC_2.30 obstack_exit_failure D 0x4 ++GLIBC_2.30 obstack_free F ++GLIBC_2.30 obstack_printf F ++GLIBC_2.30 obstack_vprintf F ++GLIBC_2.30 on_exit F ++GLIBC_2.30 open F ++GLIBC_2.30 open64 F ++GLIBC_2.30 open_by_handle_at F ++GLIBC_2.30 open_memstream F ++GLIBC_2.30 open_wmemstream F ++GLIBC_2.30 openat F ++GLIBC_2.30 openat64 F ++GLIBC_2.30 opendir F ++GLIBC_2.30 openlog F ++GLIBC_2.30 optarg D 0x4 ++GLIBC_2.30 opterr D 0x4 ++GLIBC_2.30 optind D 0x4 ++GLIBC_2.30 optopt D 0x4 ++GLIBC_2.30 parse_printf_format F ++GLIBC_2.30 passwd2des F ++GLIBC_2.30 pathconf F ++GLIBC_2.30 pause F ++GLIBC_2.30 pclose F ++GLIBC_2.30 perror F ++GLIBC_2.30 personality F ++GLIBC_2.30 pipe F ++GLIBC_2.30 pipe2 F ++GLIBC_2.30 pivot_root F ++GLIBC_2.30 pkey_alloc F ++GLIBC_2.30 pkey_free F ++GLIBC_2.30 pkey_get F ++GLIBC_2.30 pkey_mprotect F ++GLIBC_2.30 pkey_set F ++GLIBC_2.30 pmap_getmaps F ++GLIBC_2.30 pmap_getport F ++GLIBC_2.30 pmap_rmtcall F ++GLIBC_2.30 pmap_set F ++GLIBC_2.30 pmap_unset F ++GLIBC_2.30 poll F ++GLIBC_2.30 popen F ++GLIBC_2.30 posix_fadvise F ++GLIBC_2.30 posix_fadvise64 F ++GLIBC_2.30 posix_fallocate F ++GLIBC_2.30 posix_fallocate64 F ++GLIBC_2.30 posix_madvise F ++GLIBC_2.30 posix_memalign F ++GLIBC_2.30 posix_openpt F ++GLIBC_2.30 posix_spawn F ++GLIBC_2.30 posix_spawn_file_actions_addchdir_np F ++GLIBC_2.30 posix_spawn_file_actions_addclose F ++GLIBC_2.30 posix_spawn_file_actions_adddup2 F ++GLIBC_2.30 posix_spawn_file_actions_addfchdir_np F ++GLIBC_2.30 posix_spawn_file_actions_addopen F ++GLIBC_2.30 posix_spawn_file_actions_destroy F ++GLIBC_2.30 posix_spawn_file_actions_init F ++GLIBC_2.30 posix_spawnattr_destroy F ++GLIBC_2.30 posix_spawnattr_getflags F ++GLIBC_2.30 posix_spawnattr_getpgroup F ++GLIBC_2.30 posix_spawnattr_getschedparam F ++GLIBC_2.30 posix_spawnattr_getschedpolicy F ++GLIBC_2.30 posix_spawnattr_getsigdefault F ++GLIBC_2.30 posix_spawnattr_getsigmask F ++GLIBC_2.30 posix_spawnattr_init F ++GLIBC_2.30 posix_spawnattr_setflags F ++GLIBC_2.30 posix_spawnattr_setpgroup F ++GLIBC_2.30 posix_spawnattr_setschedparam F ++GLIBC_2.30 posix_spawnattr_setschedpolicy F ++GLIBC_2.30 posix_spawnattr_setsigdefault F ++GLIBC_2.30 posix_spawnattr_setsigmask F ++GLIBC_2.30 posix_spawnp F ++GLIBC_2.30 ppoll F ++GLIBC_2.30 prctl F ++GLIBC_2.30 pread F ++GLIBC_2.30 pread64 F ++GLIBC_2.30 preadv F ++GLIBC_2.30 preadv2 F ++GLIBC_2.30 preadv64 F ++GLIBC_2.30 preadv64v2 F ++GLIBC_2.30 printf F ++GLIBC_2.30 printf_size F ++GLIBC_2.30 printf_size_info F ++GLIBC_2.30 prlimit F ++GLIBC_2.30 prlimit64 F ++GLIBC_2.30 process_vm_readv F ++GLIBC_2.30 process_vm_writev F ++GLIBC_2.30 profil F ++GLIBC_2.30 program_invocation_name D 0x4 ++GLIBC_2.30 program_invocation_short_name D 0x4 ++GLIBC_2.30 pselect F ++GLIBC_2.30 psiginfo F ++GLIBC_2.30 psignal F ++GLIBC_2.30 pthread_attr_destroy F ++GLIBC_2.30 pthread_attr_getdetachstate F ++GLIBC_2.30 pthread_attr_getinheritsched F ++GLIBC_2.30 pthread_attr_getschedparam F ++GLIBC_2.30 pthread_attr_getschedpolicy F ++GLIBC_2.30 pthread_attr_getscope F ++GLIBC_2.30 pthread_attr_init F ++GLIBC_2.30 pthread_attr_setdetachstate F ++GLIBC_2.30 pthread_attr_setinheritsched F ++GLIBC_2.30 pthread_attr_setschedparam F ++GLIBC_2.30 pthread_attr_setschedpolicy F ++GLIBC_2.30 pthread_attr_setscope F ++GLIBC_2.30 pthread_cond_broadcast F ++GLIBC_2.30 pthread_cond_destroy F ++GLIBC_2.30 pthread_cond_init F ++GLIBC_2.30 pthread_cond_signal F ++GLIBC_2.30 pthread_cond_timedwait F ++GLIBC_2.30 pthread_cond_wait F ++GLIBC_2.30 pthread_condattr_destroy F ++GLIBC_2.30 pthread_condattr_init F ++GLIBC_2.30 pthread_equal F ++GLIBC_2.30 pthread_exit F ++GLIBC_2.30 pthread_getschedparam F ++GLIBC_2.30 pthread_mutex_destroy F ++GLIBC_2.30 pthread_mutex_init F ++GLIBC_2.30 pthread_mutex_lock F ++GLIBC_2.30 pthread_mutex_unlock F ++GLIBC_2.30 pthread_self F ++GLIBC_2.30 pthread_setcancelstate F ++GLIBC_2.30 pthread_setcanceltype F ++GLIBC_2.30 pthread_setschedparam F ++GLIBC_2.30 ptrace F ++GLIBC_2.30 ptsname F ++GLIBC_2.30 ptsname_r F ++GLIBC_2.30 putc F ++GLIBC_2.30 putc_unlocked F ++GLIBC_2.30 putchar F ++GLIBC_2.30 putchar_unlocked F ++GLIBC_2.30 putenv F ++GLIBC_2.30 putgrent F ++GLIBC_2.30 putpwent F ++GLIBC_2.30 puts F ++GLIBC_2.30 putsgent F ++GLIBC_2.30 putspent F ++GLIBC_2.30 pututline F ++GLIBC_2.30 pututxline F ++GLIBC_2.30 putw F ++GLIBC_2.30 putwc F ++GLIBC_2.30 putwc_unlocked F ++GLIBC_2.30 putwchar F ++GLIBC_2.30 putwchar_unlocked F ++GLIBC_2.30 pvalloc F ++GLIBC_2.30 pwrite F ++GLIBC_2.30 pwrite64 F ++GLIBC_2.30 pwritev F ++GLIBC_2.30 pwritev2 F ++GLIBC_2.30 pwritev64 F ++GLIBC_2.30 pwritev64v2 F ++GLIBC_2.30 qecvt F ++GLIBC_2.30 qecvt_r F ++GLIBC_2.30 qfcvt F ++GLIBC_2.30 qfcvt_r F ++GLIBC_2.30 qgcvt F ++GLIBC_2.30 qsort F ++GLIBC_2.30 qsort_r F ++GLIBC_2.30 quick_exit F ++GLIBC_2.30 quotactl F ++GLIBC_2.30 raise F ++GLIBC_2.30 rand F ++GLIBC_2.30 rand_r F ++GLIBC_2.30 random F ++GLIBC_2.30 random_r F ++GLIBC_2.30 rawmemchr F ++GLIBC_2.30 rcmd F ++GLIBC_2.30 rcmd_af F ++GLIBC_2.30 re_comp F ++GLIBC_2.30 re_compile_fastmap F ++GLIBC_2.30 re_compile_pattern F ++GLIBC_2.30 re_exec F ++GLIBC_2.30 re_match F ++GLIBC_2.30 re_match_2 F ++GLIBC_2.30 re_search F ++GLIBC_2.30 re_search_2 F ++GLIBC_2.30 re_set_registers F ++GLIBC_2.30 re_set_syntax F ++GLIBC_2.30 re_syntax_options D 0x4 ++GLIBC_2.30 read F ++GLIBC_2.30 readahead F ++GLIBC_2.30 readdir F ++GLIBC_2.30 readdir64 F ++GLIBC_2.30 readdir64_r F ++GLIBC_2.30 readdir_r F ++GLIBC_2.30 readlink F ++GLIBC_2.30 readlinkat F ++GLIBC_2.30 readv F ++GLIBC_2.30 realloc F ++GLIBC_2.30 reallocarray F ++GLIBC_2.30 realpath F ++GLIBC_2.30 reboot F ++GLIBC_2.30 recv F ++GLIBC_2.30 recvfrom F ++GLIBC_2.30 recvmmsg F ++GLIBC_2.30 recvmsg F ++GLIBC_2.30 regcomp F ++GLIBC_2.30 regerror F ++GLIBC_2.30 regexec F ++GLIBC_2.30 regfree F ++GLIBC_2.30 register_printf_function F ++GLIBC_2.30 register_printf_modifier F ++GLIBC_2.30 register_printf_specifier F ++GLIBC_2.30 register_printf_type F ++GLIBC_2.30 registerrpc F ++GLIBC_2.30 remap_file_pages F ++GLIBC_2.30 remove F ++GLIBC_2.30 removexattr F ++GLIBC_2.30 remque F ++GLIBC_2.30 rename F ++GLIBC_2.30 renameat F ++GLIBC_2.30 renameat2 F ++GLIBC_2.30 revoke F ++GLIBC_2.30 rewind F ++GLIBC_2.30 rewinddir F ++GLIBC_2.30 rexec F ++GLIBC_2.30 rexec_af F ++GLIBC_2.30 rexecoptions D 0x4 ++GLIBC_2.30 rindex F ++GLIBC_2.30 rmdir F ++GLIBC_2.30 rpc_createerr D 0x10 ++GLIBC_2.30 rpmatch F ++GLIBC_2.30 rresvport F ++GLIBC_2.30 rresvport_af F ++GLIBC_2.30 rtime F ++GLIBC_2.30 ruserok F ++GLIBC_2.30 ruserok_af F ++GLIBC_2.30 ruserpass F ++GLIBC_2.30 sbrk F ++GLIBC_2.30 scalbn F ++GLIBC_2.30 scalbnf F ++GLIBC_2.30 scalbnl F ++GLIBC_2.30 scandir F ++GLIBC_2.30 scandir64 F ++GLIBC_2.30 scandirat F ++GLIBC_2.30 scandirat64 F ++GLIBC_2.30 scanf F ++GLIBC_2.30 sched_get_priority_max F ++GLIBC_2.30 sched_get_priority_min F ++GLIBC_2.30 sched_getaffinity F ++GLIBC_2.30 sched_getcpu F ++GLIBC_2.30 sched_getparam F ++GLIBC_2.30 sched_getscheduler F ++GLIBC_2.30 sched_rr_get_interval F ++GLIBC_2.30 sched_setaffinity F ++GLIBC_2.30 sched_setparam F ++GLIBC_2.30 sched_setscheduler F ++GLIBC_2.30 sched_yield F ++GLIBC_2.30 secure_getenv F ++GLIBC_2.30 seed48 F ++GLIBC_2.30 seed48_r F ++GLIBC_2.30 seekdir F ++GLIBC_2.30 select F ++GLIBC_2.30 semctl F ++GLIBC_2.30 semget F ++GLIBC_2.30 semop F ++GLIBC_2.30 semtimedop F ++GLIBC_2.30 send F ++GLIBC_2.30 sendfile F ++GLIBC_2.30 sendfile64 F ++GLIBC_2.30 sendmmsg F ++GLIBC_2.30 sendmsg F ++GLIBC_2.30 sendto F ++GLIBC_2.30 setaliasent F ++GLIBC_2.30 setbuf F ++GLIBC_2.30 setbuffer F ++GLIBC_2.30 setcontext F ++GLIBC_2.30 setdomainname F ++GLIBC_2.30 setegid F ++GLIBC_2.30 setenv F ++GLIBC_2.30 seteuid F ++GLIBC_2.30 setfsent F ++GLIBC_2.30 setfsgid F ++GLIBC_2.30 setfsuid F ++GLIBC_2.30 setgid F ++GLIBC_2.30 setgrent F ++GLIBC_2.30 setgroups F ++GLIBC_2.30 sethostent F ++GLIBC_2.30 sethostid F ++GLIBC_2.30 sethostname F ++GLIBC_2.30 setipv4sourcefilter F ++GLIBC_2.30 setitimer F ++GLIBC_2.30 setjmp F ++GLIBC_2.30 setlinebuf F ++GLIBC_2.30 setlocale F ++GLIBC_2.30 setlogin F ++GLIBC_2.30 setlogmask F ++GLIBC_2.30 setmntent F ++GLIBC_2.30 setnetent F ++GLIBC_2.30 setnetgrent F ++GLIBC_2.30 setns F ++GLIBC_2.30 setpgid F ++GLIBC_2.30 setpgrp F ++GLIBC_2.30 setpriority F ++GLIBC_2.30 setprotoent F ++GLIBC_2.30 setpwent F ++GLIBC_2.30 setregid F ++GLIBC_2.30 setresgid F ++GLIBC_2.30 setresuid F ++GLIBC_2.30 setreuid F ++GLIBC_2.30 setrlimit F ++GLIBC_2.30 setrlimit64 F ++GLIBC_2.30 setrpcent F ++GLIBC_2.30 setservent F ++GLIBC_2.30 setsgent F ++GLIBC_2.30 setsid F ++GLIBC_2.30 setsockopt F ++GLIBC_2.30 setsourcefilter F ++GLIBC_2.30 setspent F ++GLIBC_2.30 setstate F ++GLIBC_2.30 setstate_r F ++GLIBC_2.30 settimeofday F ++GLIBC_2.30 setttyent F ++GLIBC_2.30 setuid F ++GLIBC_2.30 setusershell F ++GLIBC_2.30 setutent F ++GLIBC_2.30 setutxent F ++GLIBC_2.30 setvbuf F ++GLIBC_2.30 setxattr F ++GLIBC_2.30 sgetsgent F ++GLIBC_2.30 sgetsgent_r F ++GLIBC_2.30 sgetspent F ++GLIBC_2.30 sgetspent_r F ++GLIBC_2.30 shmat F ++GLIBC_2.30 shmctl F ++GLIBC_2.30 shmdt F ++GLIBC_2.30 shmget F ++GLIBC_2.30 shutdown F ++GLIBC_2.30 sigaction F ++GLIBC_2.30 sigaddset F ++GLIBC_2.30 sigaltstack F ++GLIBC_2.30 sigandset F ++GLIBC_2.30 sigblock F ++GLIBC_2.30 sigdelset F ++GLIBC_2.30 sigemptyset F ++GLIBC_2.30 sigfillset F ++GLIBC_2.30 siggetmask F ++GLIBC_2.30 sighold F ++GLIBC_2.30 sigignore F ++GLIBC_2.30 siginterrupt F ++GLIBC_2.30 sigisemptyset F ++GLIBC_2.30 sigismember F ++GLIBC_2.30 siglongjmp F ++GLIBC_2.30 signal F ++GLIBC_2.30 signalfd F ++GLIBC_2.30 sigorset F ++GLIBC_2.30 sigpause F ++GLIBC_2.30 sigpending F ++GLIBC_2.30 sigprocmask F ++GLIBC_2.30 sigqueue F ++GLIBC_2.30 sigrelse F ++GLIBC_2.30 sigreturn F ++GLIBC_2.30 sigset F ++GLIBC_2.30 sigsetmask F ++GLIBC_2.30 sigstack F ++GLIBC_2.30 sigsuspend F ++GLIBC_2.30 sigtimedwait F ++GLIBC_2.30 sigwait F ++GLIBC_2.30 sigwaitinfo F ++GLIBC_2.30 sleep F ++GLIBC_2.30 snprintf F ++GLIBC_2.30 sockatmark F ++GLIBC_2.30 socket F ++GLIBC_2.30 socketpair F ++GLIBC_2.30 splice F ++GLIBC_2.30 sprintf F ++GLIBC_2.30 sprofil F ++GLIBC_2.30 srand F ++GLIBC_2.30 srand48 F ++GLIBC_2.30 srand48_r F ++GLIBC_2.30 srandom F ++GLIBC_2.30 srandom_r F ++GLIBC_2.30 sscanf F ++GLIBC_2.30 ssignal F ++GLIBC_2.30 sstk F ++GLIBC_2.30 statfs F ++GLIBC_2.30 statfs64 F ++GLIBC_2.30 statvfs F ++GLIBC_2.30 statvfs64 F ++GLIBC_2.30 statx F ++GLIBC_2.30 stderr D 0x4 ++GLIBC_2.30 stdin D 0x4 ++GLIBC_2.30 stdout D 0x4 ++GLIBC_2.30 stime F ++GLIBC_2.30 stpcpy F ++GLIBC_2.30 stpncpy F ++GLIBC_2.30 strcasecmp F ++GLIBC_2.30 strcasecmp_l F ++GLIBC_2.30 strcasestr F ++GLIBC_2.30 strcat F ++GLIBC_2.30 strchr F ++GLIBC_2.30 strchrnul F ++GLIBC_2.30 strcmp F ++GLIBC_2.30 strcoll F ++GLIBC_2.30 strcoll_l F ++GLIBC_2.30 strcpy F ++GLIBC_2.30 strcspn F ++GLIBC_2.30 strdup F ++GLIBC_2.30 strerror F ++GLIBC_2.30 strerror_l F ++GLIBC_2.30 strerror_r F ++GLIBC_2.30 strfmon F ++GLIBC_2.30 strfmon_l F ++GLIBC_2.30 strfromd F ++GLIBC_2.30 strfromf F ++GLIBC_2.30 strfromf32 F ++GLIBC_2.30 strfromf32x F ++GLIBC_2.30 strfromf64 F ++GLIBC_2.30 strfroml F ++GLIBC_2.30 strfry F ++GLIBC_2.30 strftime F ++GLIBC_2.30 strftime_l F ++GLIBC_2.30 strlen F ++GLIBC_2.30 strncasecmp F ++GLIBC_2.30 strncasecmp_l F ++GLIBC_2.30 strncat F ++GLIBC_2.30 strncmp F ++GLIBC_2.30 strncpy F ++GLIBC_2.30 strndup F ++GLIBC_2.30 strnlen F ++GLIBC_2.30 strpbrk F ++GLIBC_2.30 strptime F ++GLIBC_2.30 strptime_l F ++GLIBC_2.30 strrchr F ++GLIBC_2.30 strsep F ++GLIBC_2.30 strsignal F ++GLIBC_2.30 strspn F ++GLIBC_2.30 strstr F ++GLIBC_2.30 strtod F ++GLIBC_2.30 strtod_l F ++GLIBC_2.30 strtof F ++GLIBC_2.30 strtof32 F ++GLIBC_2.30 strtof32_l F ++GLIBC_2.30 strtof32x F ++GLIBC_2.30 strtof32x_l F ++GLIBC_2.30 strtof64 F ++GLIBC_2.30 strtof64_l F ++GLIBC_2.30 strtof_l F ++GLIBC_2.30 strtoimax F ++GLIBC_2.30 strtok F ++GLIBC_2.30 strtok_r F ++GLIBC_2.30 strtol F ++GLIBC_2.30 strtol_l F ++GLIBC_2.30 strtold F ++GLIBC_2.30 strtold_l F ++GLIBC_2.30 strtoll F ++GLIBC_2.30 strtoll_l F ++GLIBC_2.30 strtoq F ++GLIBC_2.30 strtoul F ++GLIBC_2.30 strtoul_l F ++GLIBC_2.30 strtoull F ++GLIBC_2.30 strtoull_l F ++GLIBC_2.30 strtoumax F ++GLIBC_2.30 strtouq F ++GLIBC_2.30 strverscmp F ++GLIBC_2.30 strxfrm F ++GLIBC_2.30 strxfrm_l F ++GLIBC_2.30 stty F ++GLIBC_2.30 svc_exit F ++GLIBC_2.30 svc_fdset D 0x80 ++GLIBC_2.30 svc_getreq F ++GLIBC_2.30 svc_getreq_common F ++GLIBC_2.30 svc_getreq_poll F ++GLIBC_2.30 svc_getreqset F ++GLIBC_2.30 svc_max_pollfd D 0x4 ++GLIBC_2.30 svc_pollfd D 0x4 ++GLIBC_2.30 svc_register F ++GLIBC_2.30 svc_run F ++GLIBC_2.30 svc_sendreply F ++GLIBC_2.30 svc_unregister F ++GLIBC_2.30 svcauthdes_stats D 0xc ++GLIBC_2.30 svcerr_auth F ++GLIBC_2.30 svcerr_decode F ++GLIBC_2.30 svcerr_noproc F ++GLIBC_2.30 svcerr_noprog F ++GLIBC_2.30 svcerr_progvers F ++GLIBC_2.30 svcerr_systemerr F ++GLIBC_2.30 svcerr_weakauth F ++GLIBC_2.30 svcfd_create F ++GLIBC_2.30 svcraw_create F ++GLIBC_2.30 svctcp_create F ++GLIBC_2.30 svcudp_bufcreate F ++GLIBC_2.30 svcudp_create F ++GLIBC_2.30 svcudp_enablecache F ++GLIBC_2.30 svcunix_create F ++GLIBC_2.30 svcunixfd_create F ++GLIBC_2.30 swab F ++GLIBC_2.30 swapcontext F ++GLIBC_2.30 swapoff F ++GLIBC_2.30 swapon F ++GLIBC_2.30 swprintf F ++GLIBC_2.30 swscanf F ++GLIBC_2.30 symlink F ++GLIBC_2.30 symlinkat F ++GLIBC_2.30 sync F ++GLIBC_2.30 sync_file_range F ++GLIBC_2.30 syncfs F ++GLIBC_2.30 sys_errlist D 0x21c ++GLIBC_2.30 sys_nerr D 0x4 ++GLIBC_2.30 sys_sigabbrev D 0x104 ++GLIBC_2.30 sys_siglist D 0x104 ++GLIBC_2.30 syscall F ++GLIBC_2.30 sysconf F ++GLIBC_2.30 sysctl F ++GLIBC_2.30 sysinfo F ++GLIBC_2.30 syslog F ++GLIBC_2.30 system F ++GLIBC_2.30 sysv_signal F ++GLIBC_2.30 tcdrain F ++GLIBC_2.30 tcflow F ++GLIBC_2.30 tcflush F ++GLIBC_2.30 tcgetattr F ++GLIBC_2.30 tcgetpgrp F ++GLIBC_2.30 tcgetsid F ++GLIBC_2.30 tcsendbreak F ++GLIBC_2.30 tcsetattr F ++GLIBC_2.30 tcsetpgrp F ++GLIBC_2.30 tdelete F ++GLIBC_2.30 tdestroy F ++GLIBC_2.30 tee F ++GLIBC_2.30 telldir F ++GLIBC_2.30 tempnam F ++GLIBC_2.30 textdomain F ++GLIBC_2.30 tfind F ++GLIBC_2.30 tgkill F ++GLIBC_2.30 thrd_current F ++GLIBC_2.30 thrd_equal F ++GLIBC_2.30 thrd_sleep F ++GLIBC_2.30 thrd_yield F ++GLIBC_2.30 time F ++GLIBC_2.30 timegm F ++GLIBC_2.30 timelocal F ++GLIBC_2.30 timerfd_create F ++GLIBC_2.30 timerfd_gettime F ++GLIBC_2.30 timerfd_settime F ++GLIBC_2.30 times F ++GLIBC_2.30 timespec_get F ++GLIBC_2.30 timezone D 0x4 ++GLIBC_2.30 tmpfile F ++GLIBC_2.30 tmpfile64 F ++GLIBC_2.30 tmpnam F ++GLIBC_2.30 tmpnam_r F ++GLIBC_2.30 toascii F ++GLIBC_2.30 tolower F ++GLIBC_2.30 tolower_l F ++GLIBC_2.30 toupper F ++GLIBC_2.30 toupper_l F ++GLIBC_2.30 towctrans F ++GLIBC_2.30 towctrans_l F ++GLIBC_2.30 towlower F ++GLIBC_2.30 towlower_l F ++GLIBC_2.30 towupper F ++GLIBC_2.30 towupper_l F ++GLIBC_2.30 tr_break F ++GLIBC_2.30 truncate F ++GLIBC_2.30 truncate64 F ++GLIBC_2.30 tsearch F ++GLIBC_2.30 ttyname F ++GLIBC_2.30 ttyname_r F ++GLIBC_2.30 ttyslot F ++GLIBC_2.30 twalk F ++GLIBC_2.30 twalk_r F ++GLIBC_2.30 tzname D 0x8 ++GLIBC_2.30 tzset F ++GLIBC_2.30 ualarm F ++GLIBC_2.30 ulckpwdf F ++GLIBC_2.30 ulimit F ++GLIBC_2.30 umask F ++GLIBC_2.30 umount F ++GLIBC_2.30 umount2 F ++GLIBC_2.30 uname F ++GLIBC_2.30 ungetc F ++GLIBC_2.30 ungetwc F ++GLIBC_2.30 unlink F ++GLIBC_2.30 unlinkat F ++GLIBC_2.30 unlockpt F ++GLIBC_2.30 unsetenv F ++GLIBC_2.30 unshare F ++GLIBC_2.30 updwtmp F ++GLIBC_2.30 updwtmpx F ++GLIBC_2.30 uselocale F ++GLIBC_2.30 user2netname F ++GLIBC_2.30 usleep F ++GLIBC_2.30 utime F ++GLIBC_2.30 utimensat F ++GLIBC_2.30 utimes F ++GLIBC_2.30 utmpname F ++GLIBC_2.30 utmpxname F ++GLIBC_2.30 valloc F ++GLIBC_2.30 vasprintf F ++GLIBC_2.30 vdprintf F ++GLIBC_2.30 verr F ++GLIBC_2.30 verrx F ++GLIBC_2.30 versionsort F ++GLIBC_2.30 versionsort64 F ++GLIBC_2.30 vfork F ++GLIBC_2.30 vfprintf F ++GLIBC_2.30 vfscanf F ++GLIBC_2.30 vfwprintf F ++GLIBC_2.30 vfwscanf F ++GLIBC_2.30 vhangup F ++GLIBC_2.30 vlimit F ++GLIBC_2.30 vmsplice F ++GLIBC_2.30 vprintf F ++GLIBC_2.30 vscanf F ++GLIBC_2.30 vsnprintf F ++GLIBC_2.30 vsprintf F ++GLIBC_2.30 vsscanf F ++GLIBC_2.30 vswprintf F ++GLIBC_2.30 vswscanf F ++GLIBC_2.30 vsyslog F ++GLIBC_2.30 vtimes F ++GLIBC_2.30 vwarn F ++GLIBC_2.30 vwarnx F ++GLIBC_2.30 vwprintf F ++GLIBC_2.30 vwscanf F ++GLIBC_2.30 wait F ++GLIBC_2.30 wait3 F ++GLIBC_2.30 wait4 F ++GLIBC_2.30 waitid F ++GLIBC_2.30 waitpid F ++GLIBC_2.30 warn F ++GLIBC_2.30 warnx F ++GLIBC_2.30 wcpcpy F ++GLIBC_2.30 wcpncpy F ++GLIBC_2.30 wcrtomb F ++GLIBC_2.30 wcscasecmp F ++GLIBC_2.30 wcscasecmp_l F ++GLIBC_2.30 wcscat F ++GLIBC_2.30 wcschr F ++GLIBC_2.30 wcschrnul F ++GLIBC_2.30 wcscmp F ++GLIBC_2.30 wcscoll F ++GLIBC_2.30 wcscoll_l F ++GLIBC_2.30 wcscpy F ++GLIBC_2.30 wcscspn F ++GLIBC_2.30 wcsdup F ++GLIBC_2.30 wcsftime F ++GLIBC_2.30 wcsftime_l F ++GLIBC_2.30 wcslen F ++GLIBC_2.30 wcsncasecmp F ++GLIBC_2.30 wcsncasecmp_l F ++GLIBC_2.30 wcsncat F ++GLIBC_2.30 wcsncmp F ++GLIBC_2.30 wcsncpy F ++GLIBC_2.30 wcsnlen F ++GLIBC_2.30 wcsnrtombs F ++GLIBC_2.30 wcspbrk F ++GLIBC_2.30 wcsrchr F ++GLIBC_2.30 wcsrtombs F ++GLIBC_2.30 wcsspn F ++GLIBC_2.30 wcsstr F ++GLIBC_2.30 wcstod F ++GLIBC_2.30 wcstod_l F ++GLIBC_2.30 wcstof F ++GLIBC_2.30 wcstof32 F ++GLIBC_2.30 wcstof32_l F ++GLIBC_2.30 wcstof32x F ++GLIBC_2.30 wcstof32x_l F ++GLIBC_2.30 wcstof64 F ++GLIBC_2.30 wcstof64_l F ++GLIBC_2.30 wcstof_l F ++GLIBC_2.30 wcstoimax F ++GLIBC_2.30 wcstok F ++GLIBC_2.30 wcstol F ++GLIBC_2.30 wcstol_l F ++GLIBC_2.30 wcstold F ++GLIBC_2.30 wcstold_l F ++GLIBC_2.30 wcstoll F ++GLIBC_2.30 wcstoll_l F ++GLIBC_2.30 wcstombs F ++GLIBC_2.30 wcstoq F ++GLIBC_2.30 wcstoul F ++GLIBC_2.30 wcstoul_l F ++GLIBC_2.30 wcstoull F ++GLIBC_2.30 wcstoull_l F ++GLIBC_2.30 wcstoumax F ++GLIBC_2.30 wcstouq F ++GLIBC_2.30 wcswcs F ++GLIBC_2.30 wcswidth F ++GLIBC_2.30 wcsxfrm F ++GLIBC_2.30 wcsxfrm_l F ++GLIBC_2.30 wctob F ++GLIBC_2.30 wctomb F ++GLIBC_2.30 wctrans F ++GLIBC_2.30 wctrans_l F ++GLIBC_2.30 wctype F ++GLIBC_2.30 wctype_l F ++GLIBC_2.30 wcwidth F ++GLIBC_2.30 wmemchr F ++GLIBC_2.30 wmemcmp F ++GLIBC_2.30 wmemcpy F ++GLIBC_2.30 wmemmove F ++GLIBC_2.30 wmempcpy F ++GLIBC_2.30 wmemset F ++GLIBC_2.30 wordexp F ++GLIBC_2.30 wordfree F ++GLIBC_2.30 wprintf F ++GLIBC_2.30 write F ++GLIBC_2.30 writev F ++GLIBC_2.30 wscanf F ++GLIBC_2.30 xdecrypt F ++GLIBC_2.30 xdr_accepted_reply F ++GLIBC_2.30 xdr_array F ++GLIBC_2.30 xdr_authdes_cred F ++GLIBC_2.30 xdr_authdes_verf F ++GLIBC_2.30 xdr_authunix_parms F ++GLIBC_2.30 xdr_bool F ++GLIBC_2.30 xdr_bytes F ++GLIBC_2.30 xdr_callhdr F ++GLIBC_2.30 xdr_callmsg F ++GLIBC_2.30 xdr_char F ++GLIBC_2.30 xdr_cryptkeyarg F ++GLIBC_2.30 xdr_cryptkeyarg2 F ++GLIBC_2.30 xdr_cryptkeyres F ++GLIBC_2.30 xdr_des_block F ++GLIBC_2.30 xdr_double F ++GLIBC_2.30 xdr_enum F ++GLIBC_2.30 xdr_float F ++GLIBC_2.30 xdr_free F ++GLIBC_2.30 xdr_getcredres F ++GLIBC_2.30 xdr_hyper F ++GLIBC_2.30 xdr_int F ++GLIBC_2.30 xdr_int16_t F ++GLIBC_2.30 xdr_int32_t F ++GLIBC_2.30 xdr_int64_t F ++GLIBC_2.30 xdr_int8_t F ++GLIBC_2.30 xdr_key_netstarg F ++GLIBC_2.30 xdr_key_netstres F ++GLIBC_2.30 xdr_keybuf F ++GLIBC_2.30 xdr_keystatus F ++GLIBC_2.30 xdr_long F ++GLIBC_2.30 xdr_longlong_t F ++GLIBC_2.30 xdr_netnamestr F ++GLIBC_2.30 xdr_netobj F ++GLIBC_2.30 xdr_opaque F ++GLIBC_2.30 xdr_opaque_auth F ++GLIBC_2.30 xdr_pmap F ++GLIBC_2.30 xdr_pmaplist F ++GLIBC_2.30 xdr_pointer F ++GLIBC_2.30 xdr_quad_t F ++GLIBC_2.30 xdr_reference F ++GLIBC_2.30 xdr_rejected_reply F ++GLIBC_2.30 xdr_replymsg F ++GLIBC_2.30 xdr_rmtcall_args F ++GLIBC_2.30 xdr_rmtcallres F ++GLIBC_2.30 xdr_short F ++GLIBC_2.30 xdr_sizeof F ++GLIBC_2.30 xdr_string F ++GLIBC_2.30 xdr_u_char F ++GLIBC_2.30 xdr_u_hyper F ++GLIBC_2.30 xdr_u_int F ++GLIBC_2.30 xdr_u_long F ++GLIBC_2.30 xdr_u_longlong_t F ++GLIBC_2.30 xdr_u_quad_t F ++GLIBC_2.30 xdr_u_short F ++GLIBC_2.30 xdr_uint16_t F ++GLIBC_2.30 xdr_uint32_t F ++GLIBC_2.30 xdr_uint64_t F ++GLIBC_2.30 xdr_uint8_t F ++GLIBC_2.30 xdr_union F ++GLIBC_2.30 xdr_unixcred F ++GLIBC_2.30 xdr_vector F ++GLIBC_2.30 xdr_void F ++GLIBC_2.30 xdr_wrapstring F ++GLIBC_2.30 xdrmem_create F ++GLIBC_2.30 xdrrec_create F ++GLIBC_2.30 xdrrec_endofrecord F ++GLIBC_2.30 xdrrec_eof F ++GLIBC_2.30 xdrrec_skiprecord F ++GLIBC_2.30 xdrstdio_create F ++GLIBC_2.30 xencrypt F ++GLIBC_2.30 xprt_register F ++GLIBC_2.30 xprt_unregister F +diff --git a/sysdeps/unix/sysv/linux/arc/libcrypt.abilist b/sysdeps/unix/sysv/linux/arc/libcrypt.abilist +new file mode 100644 +index 0000000000..8d83578d8c +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/arc/libcrypt.abilist +@@ -0,0 +1,2 @@ ++GLIBC_2.30 crypt F ++GLIBC_2.30 crypt_r F +diff --git a/sysdeps/unix/sysv/linux/arc/libdl.abilist b/sysdeps/unix/sysv/linux/arc/libdl.abilist +new file mode 100644 +index 0000000000..3fc6d95b85 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/arc/libdl.abilist +@@ -0,0 +1,9 @@ ++GLIBC_2.30 dladdr F ++GLIBC_2.30 dladdr1 F ++GLIBC_2.30 dlclose F ++GLIBC_2.30 dlerror F ++GLIBC_2.30 dlinfo F ++GLIBC_2.30 dlmopen F ++GLIBC_2.30 dlopen F ++GLIBC_2.30 dlsym F ++GLIBC_2.30 dlvsym F +diff --git a/sysdeps/unix/sysv/linux/arc/libm.abilist b/sysdeps/unix/sysv/linux/arc/libm.abilist +new file mode 100644 +index 0000000000..43f3a97e6f +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/arc/libm.abilist +@@ -0,0 +1,753 @@ ++GLIBC_2.30 __acos_finite F ++GLIBC_2.30 __acosf_finite F ++GLIBC_2.30 __acosh_finite F ++GLIBC_2.30 __acoshf_finite F ++GLIBC_2.30 __asin_finite F ++GLIBC_2.30 __asinf_finite F ++GLIBC_2.30 __atan2_finite F ++GLIBC_2.30 __atan2f_finite F ++GLIBC_2.30 __atanh_finite F ++GLIBC_2.30 __atanhf_finite F ++GLIBC_2.30 __clog10 F ++GLIBC_2.30 __clog10f F ++GLIBC_2.30 __clog10l F ++GLIBC_2.30 __cosh_finite F ++GLIBC_2.30 __coshf_finite F ++GLIBC_2.30 __exp10_finite F ++GLIBC_2.30 __exp10f_finite F ++GLIBC_2.30 __exp2_finite F ++GLIBC_2.30 __exp2f_finite F ++GLIBC_2.30 __exp_finite F ++GLIBC_2.30 __expf_finite F ++GLIBC_2.30 __finite F ++GLIBC_2.30 __finitef F ++GLIBC_2.30 __fmod_finite F ++GLIBC_2.30 __fmodf_finite F ++GLIBC_2.30 __fpclassify F ++GLIBC_2.30 __fpclassifyf F ++GLIBC_2.30 __gamma_r_finite F ++GLIBC_2.30 __gammaf_r_finite F ++GLIBC_2.30 __hypot_finite F ++GLIBC_2.30 __hypotf_finite F ++GLIBC_2.30 __iseqsig F ++GLIBC_2.30 __iseqsigf F ++GLIBC_2.30 __issignaling F ++GLIBC_2.30 __issignalingf F ++GLIBC_2.30 __j0_finite F ++GLIBC_2.30 __j0f_finite F ++GLIBC_2.30 __j1_finite F ++GLIBC_2.30 __j1f_finite F ++GLIBC_2.30 __jn_finite F ++GLIBC_2.30 __jnf_finite F ++GLIBC_2.30 __lgamma_r_finite F ++GLIBC_2.30 __lgammaf_r_finite F ++GLIBC_2.30 __log10_finite F ++GLIBC_2.30 __log10f_finite F ++GLIBC_2.30 __log2_finite F ++GLIBC_2.30 __log2f_finite F ++GLIBC_2.30 __log_finite F ++GLIBC_2.30 __logf_finite F ++GLIBC_2.30 __pow_finite F ++GLIBC_2.30 __powf_finite F ++GLIBC_2.30 __remainder_finite F ++GLIBC_2.30 __remainderf_finite F ++GLIBC_2.30 __scalb_finite F ++GLIBC_2.30 __scalbf_finite F ++GLIBC_2.30 __signbit F ++GLIBC_2.30 __signbitf F ++GLIBC_2.30 __signgam D 0x4 ++GLIBC_2.30 __sinh_finite F ++GLIBC_2.30 __sinhf_finite F ++GLIBC_2.30 __sqrt_finite F ++GLIBC_2.30 __sqrtf_finite F ++GLIBC_2.30 __y0_finite F ++GLIBC_2.30 __y0f_finite F ++GLIBC_2.30 __y1_finite F ++GLIBC_2.30 __y1f_finite F ++GLIBC_2.30 __yn_finite F ++GLIBC_2.30 __ynf_finite F ++GLIBC_2.30 acos F ++GLIBC_2.30 acosf F ++GLIBC_2.30 acosf32 F ++GLIBC_2.30 acosf32x F ++GLIBC_2.30 acosf64 F ++GLIBC_2.30 acosh F ++GLIBC_2.30 acoshf F ++GLIBC_2.30 acoshf32 F ++GLIBC_2.30 acoshf32x F ++GLIBC_2.30 acoshf64 F ++GLIBC_2.30 acoshl F ++GLIBC_2.30 acosl F ++GLIBC_2.30 asin F ++GLIBC_2.30 asinf F ++GLIBC_2.30 asinf32 F ++GLIBC_2.30 asinf32x F ++GLIBC_2.30 asinf64 F ++GLIBC_2.30 asinh F ++GLIBC_2.30 asinhf F ++GLIBC_2.30 asinhf32 F ++GLIBC_2.30 asinhf32x F ++GLIBC_2.30 asinhf64 F ++GLIBC_2.30 asinhl F ++GLIBC_2.30 asinl F ++GLIBC_2.30 atan F ++GLIBC_2.30 atan2 F ++GLIBC_2.30 atan2f F ++GLIBC_2.30 atan2f32 F ++GLIBC_2.30 atan2f32x F ++GLIBC_2.30 atan2f64 F ++GLIBC_2.30 atan2l F ++GLIBC_2.30 atanf F ++GLIBC_2.30 atanf32 F ++GLIBC_2.30 atanf32x F ++GLIBC_2.30 atanf64 F ++GLIBC_2.30 atanh F ++GLIBC_2.30 atanhf F ++GLIBC_2.30 atanhf32 F ++GLIBC_2.30 atanhf32x F ++GLIBC_2.30 atanhf64 F ++GLIBC_2.30 atanhl F ++GLIBC_2.30 atanl F ++GLIBC_2.30 cabs F ++GLIBC_2.30 cabsf F ++GLIBC_2.30 cabsf32 F ++GLIBC_2.30 cabsf32x F ++GLIBC_2.30 cabsf64 F ++GLIBC_2.30 cabsl F ++GLIBC_2.30 cacos F ++GLIBC_2.30 cacosf F ++GLIBC_2.30 cacosf32 F ++GLIBC_2.30 cacosf32x F ++GLIBC_2.30 cacosf64 F ++GLIBC_2.30 cacosh F ++GLIBC_2.30 cacoshf F ++GLIBC_2.30 cacoshf32 F ++GLIBC_2.30 cacoshf32x F ++GLIBC_2.30 cacoshf64 F ++GLIBC_2.30 cacoshl F ++GLIBC_2.30 cacosl F ++GLIBC_2.30 canonicalize F ++GLIBC_2.30 canonicalizef F ++GLIBC_2.30 canonicalizef32 F ++GLIBC_2.30 canonicalizef32x F ++GLIBC_2.30 canonicalizef64 F ++GLIBC_2.30 canonicalizel F ++GLIBC_2.30 carg F ++GLIBC_2.30 cargf F ++GLIBC_2.30 cargf32 F ++GLIBC_2.30 cargf32x F ++GLIBC_2.30 cargf64 F ++GLIBC_2.30 cargl F ++GLIBC_2.30 casin F ++GLIBC_2.30 casinf F ++GLIBC_2.30 casinf32 F ++GLIBC_2.30 casinf32x F ++GLIBC_2.30 casinf64 F ++GLIBC_2.30 casinh F ++GLIBC_2.30 casinhf F ++GLIBC_2.30 casinhf32 F ++GLIBC_2.30 casinhf32x F ++GLIBC_2.30 casinhf64 F ++GLIBC_2.30 casinhl F ++GLIBC_2.30 casinl F ++GLIBC_2.30 catan F ++GLIBC_2.30 catanf F ++GLIBC_2.30 catanf32 F ++GLIBC_2.30 catanf32x F ++GLIBC_2.30 catanf64 F ++GLIBC_2.30 catanh F ++GLIBC_2.30 catanhf F ++GLIBC_2.30 catanhf32 F ++GLIBC_2.30 catanhf32x F ++GLIBC_2.30 catanhf64 F ++GLIBC_2.30 catanhl F ++GLIBC_2.30 catanl F ++GLIBC_2.30 cbrt F ++GLIBC_2.30 cbrtf F ++GLIBC_2.30 cbrtf32 F ++GLIBC_2.30 cbrtf32x F ++GLIBC_2.30 cbrtf64 F ++GLIBC_2.30 cbrtl F ++GLIBC_2.30 ccos F ++GLIBC_2.30 ccosf F ++GLIBC_2.30 ccosf32 F ++GLIBC_2.30 ccosf32x F ++GLIBC_2.30 ccosf64 F ++GLIBC_2.30 ccosh F ++GLIBC_2.30 ccoshf F ++GLIBC_2.30 ccoshf32 F ++GLIBC_2.30 ccoshf32x F ++GLIBC_2.30 ccoshf64 F ++GLIBC_2.30 ccoshl F ++GLIBC_2.30 ccosl F ++GLIBC_2.30 ceil F ++GLIBC_2.30 ceilf F ++GLIBC_2.30 ceilf32 F ++GLIBC_2.30 ceilf32x F ++GLIBC_2.30 ceilf64 F ++GLIBC_2.30 ceill F ++GLIBC_2.30 cexp F ++GLIBC_2.30 cexpf F ++GLIBC_2.30 cexpf32 F ++GLIBC_2.30 cexpf32x F ++GLIBC_2.30 cexpf64 F ++GLIBC_2.30 cexpl F ++GLIBC_2.30 cimag F ++GLIBC_2.30 cimagf F ++GLIBC_2.30 cimagf32 F ++GLIBC_2.30 cimagf32x F ++GLIBC_2.30 cimagf64 F ++GLIBC_2.30 cimagl F ++GLIBC_2.30 clog F ++GLIBC_2.30 clog10 F ++GLIBC_2.30 clog10f F ++GLIBC_2.30 clog10f32 F ++GLIBC_2.30 clog10f32x F ++GLIBC_2.30 clog10f64 F ++GLIBC_2.30 clog10l F ++GLIBC_2.30 clogf F ++GLIBC_2.30 clogf32 F ++GLIBC_2.30 clogf32x F ++GLIBC_2.30 clogf64 F ++GLIBC_2.30 clogl F ++GLIBC_2.30 conj F ++GLIBC_2.30 conjf F ++GLIBC_2.30 conjf32 F ++GLIBC_2.30 conjf32x F ++GLIBC_2.30 conjf64 F ++GLIBC_2.30 conjl F ++GLIBC_2.30 copysign F ++GLIBC_2.30 copysignf F ++GLIBC_2.30 copysignf32 F ++GLIBC_2.30 copysignf32x F ++GLIBC_2.30 copysignf64 F ++GLIBC_2.30 copysignl F ++GLIBC_2.30 cos F ++GLIBC_2.30 cosf F ++GLIBC_2.30 cosf32 F ++GLIBC_2.30 cosf32x F ++GLIBC_2.30 cosf64 F ++GLIBC_2.30 cosh F ++GLIBC_2.30 coshf F ++GLIBC_2.30 coshf32 F ++GLIBC_2.30 coshf32x F ++GLIBC_2.30 coshf64 F ++GLIBC_2.30 coshl F ++GLIBC_2.30 cosl F ++GLIBC_2.30 cpow F ++GLIBC_2.30 cpowf F ++GLIBC_2.30 cpowf32 F ++GLIBC_2.30 cpowf32x F ++GLIBC_2.30 cpowf64 F ++GLIBC_2.30 cpowl F ++GLIBC_2.30 cproj F ++GLIBC_2.30 cprojf F ++GLIBC_2.30 cprojf32 F ++GLIBC_2.30 cprojf32x F ++GLIBC_2.30 cprojf64 F ++GLIBC_2.30 cprojl F ++GLIBC_2.30 creal F ++GLIBC_2.30 crealf F ++GLIBC_2.30 crealf32 F ++GLIBC_2.30 crealf32x F ++GLIBC_2.30 crealf64 F ++GLIBC_2.30 creall F ++GLIBC_2.30 csin F ++GLIBC_2.30 csinf F ++GLIBC_2.30 csinf32 F ++GLIBC_2.30 csinf32x F ++GLIBC_2.30 csinf64 F ++GLIBC_2.30 csinh F ++GLIBC_2.30 csinhf F ++GLIBC_2.30 csinhf32 F ++GLIBC_2.30 csinhf32x F ++GLIBC_2.30 csinhf64 F ++GLIBC_2.30 csinhl F ++GLIBC_2.30 csinl F ++GLIBC_2.30 csqrt F ++GLIBC_2.30 csqrtf F ++GLIBC_2.30 csqrtf32 F ++GLIBC_2.30 csqrtf32x F ++GLIBC_2.30 csqrtf64 F ++GLIBC_2.30 csqrtl F ++GLIBC_2.30 ctan F ++GLIBC_2.30 ctanf F ++GLIBC_2.30 ctanf32 F ++GLIBC_2.30 ctanf32x F ++GLIBC_2.30 ctanf64 F ++GLIBC_2.30 ctanh F ++GLIBC_2.30 ctanhf F ++GLIBC_2.30 ctanhf32 F ++GLIBC_2.30 ctanhf32x F ++GLIBC_2.30 ctanhf64 F ++GLIBC_2.30 ctanhl F ++GLIBC_2.30 ctanl F ++GLIBC_2.30 daddl F ++GLIBC_2.30 ddivl F ++GLIBC_2.30 dmull F ++GLIBC_2.30 drem F ++GLIBC_2.30 dremf F ++GLIBC_2.30 dreml F ++GLIBC_2.30 dsubl F ++GLIBC_2.30 erf F ++GLIBC_2.30 erfc F ++GLIBC_2.30 erfcf F ++GLIBC_2.30 erfcf32 F ++GLIBC_2.30 erfcf32x F ++GLIBC_2.30 erfcf64 F ++GLIBC_2.30 erfcl F ++GLIBC_2.30 erff F ++GLIBC_2.30 erff32 F ++GLIBC_2.30 erff32x F ++GLIBC_2.30 erff64 F ++GLIBC_2.30 erfl F ++GLIBC_2.30 exp F ++GLIBC_2.30 exp10 F ++GLIBC_2.30 exp10f F ++GLIBC_2.30 exp10f32 F ++GLIBC_2.30 exp10f32x F ++GLIBC_2.30 exp10f64 F ++GLIBC_2.30 exp10l F ++GLIBC_2.30 exp2 F ++GLIBC_2.30 exp2f F ++GLIBC_2.30 exp2f32 F ++GLIBC_2.30 exp2f32x F ++GLIBC_2.30 exp2f64 F ++GLIBC_2.30 exp2l F ++GLIBC_2.30 expf F ++GLIBC_2.30 expf32 F ++GLIBC_2.30 expf32x F ++GLIBC_2.30 expf64 F ++GLIBC_2.30 expl F ++GLIBC_2.30 expm1 F ++GLIBC_2.30 expm1f F ++GLIBC_2.30 expm1f32 F ++GLIBC_2.30 expm1f32x F ++GLIBC_2.30 expm1f64 F ++GLIBC_2.30 expm1l F ++GLIBC_2.30 f32addf32x F ++GLIBC_2.30 f32addf64 F ++GLIBC_2.30 f32divf32x F ++GLIBC_2.30 f32divf64 F ++GLIBC_2.30 f32mulf32x F ++GLIBC_2.30 f32mulf64 F ++GLIBC_2.30 f32subf32x F ++GLIBC_2.30 f32subf64 F ++GLIBC_2.30 f32xaddf64 F ++GLIBC_2.30 f32xdivf64 F ++GLIBC_2.30 f32xmulf64 F ++GLIBC_2.30 f32xsubf64 F ++GLIBC_2.30 fabs F ++GLIBC_2.30 fabsf F ++GLIBC_2.30 fabsf32 F ++GLIBC_2.30 fabsf32x F ++GLIBC_2.30 fabsf64 F ++GLIBC_2.30 fabsl F ++GLIBC_2.30 fadd F ++GLIBC_2.30 faddl F ++GLIBC_2.30 fdim F ++GLIBC_2.30 fdimf F ++GLIBC_2.30 fdimf32 F ++GLIBC_2.30 fdimf32x F ++GLIBC_2.30 fdimf64 F ++GLIBC_2.30 fdiml F ++GLIBC_2.30 fdiv F ++GLIBC_2.30 fdivl F ++GLIBC_2.30 feclearexcept F ++GLIBC_2.30 fedisableexcept F ++GLIBC_2.30 feenableexcept F ++GLIBC_2.30 fegetenv F ++GLIBC_2.30 fegetexcept F ++GLIBC_2.30 fegetexceptflag F ++GLIBC_2.30 fegetmode F ++GLIBC_2.30 fegetround F ++GLIBC_2.30 feholdexcept F ++GLIBC_2.30 feraiseexcept F ++GLIBC_2.30 fesetenv F ++GLIBC_2.30 fesetexcept F ++GLIBC_2.30 fesetexceptflag F ++GLIBC_2.30 fesetmode F ++GLIBC_2.30 fesetround F ++GLIBC_2.30 fetestexcept F ++GLIBC_2.30 fetestexceptflag F ++GLIBC_2.30 feupdateenv F ++GLIBC_2.30 finite F ++GLIBC_2.30 finitef F ++GLIBC_2.30 finitel F ++GLIBC_2.30 floor F ++GLIBC_2.30 floorf F ++GLIBC_2.30 floorf32 F ++GLIBC_2.30 floorf32x F ++GLIBC_2.30 floorf64 F ++GLIBC_2.30 floorl F ++GLIBC_2.30 fma F ++GLIBC_2.30 fmaf F ++GLIBC_2.30 fmaf32 F ++GLIBC_2.30 fmaf32x F ++GLIBC_2.30 fmaf64 F ++GLIBC_2.30 fmal F ++GLIBC_2.30 fmax F ++GLIBC_2.30 fmaxf F ++GLIBC_2.30 fmaxf32 F ++GLIBC_2.30 fmaxf32x F ++GLIBC_2.30 fmaxf64 F ++GLIBC_2.30 fmaxl F ++GLIBC_2.30 fmaxmag F ++GLIBC_2.30 fmaxmagf F ++GLIBC_2.30 fmaxmagf32 F ++GLIBC_2.30 fmaxmagf32x F ++GLIBC_2.30 fmaxmagf64 F ++GLIBC_2.30 fmaxmagl F ++GLIBC_2.30 fmin F ++GLIBC_2.30 fminf F ++GLIBC_2.30 fminf32 F ++GLIBC_2.30 fminf32x F ++GLIBC_2.30 fminf64 F ++GLIBC_2.30 fminl F ++GLIBC_2.30 fminmag F ++GLIBC_2.30 fminmagf F ++GLIBC_2.30 fminmagf32 F ++GLIBC_2.30 fminmagf32x F ++GLIBC_2.30 fminmagf64 F ++GLIBC_2.30 fminmagl F ++GLIBC_2.30 fmod F ++GLIBC_2.30 fmodf F ++GLIBC_2.30 fmodf32 F ++GLIBC_2.30 fmodf32x F ++GLIBC_2.30 fmodf64 F ++GLIBC_2.30 fmodl F ++GLIBC_2.30 fmul F ++GLIBC_2.30 fmull F ++GLIBC_2.30 frexp F ++GLIBC_2.30 frexpf F ++GLIBC_2.30 frexpf32 F ++GLIBC_2.30 frexpf32x F ++GLIBC_2.30 frexpf64 F ++GLIBC_2.30 frexpl F ++GLIBC_2.30 fromfp F ++GLIBC_2.30 fromfpf F ++GLIBC_2.30 fromfpf32 F ++GLIBC_2.30 fromfpf32x F ++GLIBC_2.30 fromfpf64 F ++GLIBC_2.30 fromfpl F ++GLIBC_2.30 fromfpx F ++GLIBC_2.30 fromfpxf F ++GLIBC_2.30 fromfpxf32 F ++GLIBC_2.30 fromfpxf32x F ++GLIBC_2.30 fromfpxf64 F ++GLIBC_2.30 fromfpxl F ++GLIBC_2.30 fsub F ++GLIBC_2.30 fsubl F ++GLIBC_2.30 gamma F ++GLIBC_2.30 gammaf F ++GLIBC_2.30 gammal F ++GLIBC_2.30 getpayload F ++GLIBC_2.30 getpayloadf F ++GLIBC_2.30 getpayloadf32 F ++GLIBC_2.30 getpayloadf32x F ++GLIBC_2.30 getpayloadf64 F ++GLIBC_2.30 getpayloadl F ++GLIBC_2.30 hypot F ++GLIBC_2.30 hypotf F ++GLIBC_2.30 hypotf32 F ++GLIBC_2.30 hypotf32x F ++GLIBC_2.30 hypotf64 F ++GLIBC_2.30 hypotl F ++GLIBC_2.30 ilogb F ++GLIBC_2.30 ilogbf F ++GLIBC_2.30 ilogbf32 F ++GLIBC_2.30 ilogbf32x F ++GLIBC_2.30 ilogbf64 F ++GLIBC_2.30 ilogbl F ++GLIBC_2.30 j0 F ++GLIBC_2.30 j0f F ++GLIBC_2.30 j0f32 F ++GLIBC_2.30 j0f32x F ++GLIBC_2.30 j0f64 F ++GLIBC_2.30 j0l F ++GLIBC_2.30 j1 F ++GLIBC_2.30 j1f F ++GLIBC_2.30 j1f32 F ++GLIBC_2.30 j1f32x F ++GLIBC_2.30 j1f64 F ++GLIBC_2.30 j1l F ++GLIBC_2.30 jn F ++GLIBC_2.30 jnf F ++GLIBC_2.30 jnf32 F ++GLIBC_2.30 jnf32x F ++GLIBC_2.30 jnf64 F ++GLIBC_2.30 jnl F ++GLIBC_2.30 ldexp F ++GLIBC_2.30 ldexpf F ++GLIBC_2.30 ldexpf32 F ++GLIBC_2.30 ldexpf32x F ++GLIBC_2.30 ldexpf64 F ++GLIBC_2.30 ldexpl F ++GLIBC_2.30 lgamma F ++GLIBC_2.30 lgamma_r F ++GLIBC_2.30 lgammaf F ++GLIBC_2.30 lgammaf32 F ++GLIBC_2.30 lgammaf32_r F ++GLIBC_2.30 lgammaf32x F ++GLIBC_2.30 lgammaf32x_r F ++GLIBC_2.30 lgammaf64 F ++GLIBC_2.30 lgammaf64_r F ++GLIBC_2.30 lgammaf_r F ++GLIBC_2.30 lgammal F ++GLIBC_2.30 lgammal_r F ++GLIBC_2.30 llogb F ++GLIBC_2.30 llogbf F ++GLIBC_2.30 llogbf32 F ++GLIBC_2.30 llogbf32x F ++GLIBC_2.30 llogbf64 F ++GLIBC_2.30 llogbl F ++GLIBC_2.30 llrint F ++GLIBC_2.30 llrintf F ++GLIBC_2.30 llrintf32 F ++GLIBC_2.30 llrintf32x F ++GLIBC_2.30 llrintf64 F ++GLIBC_2.30 llrintl F ++GLIBC_2.30 llround F ++GLIBC_2.30 llroundf F ++GLIBC_2.30 llroundf32 F ++GLIBC_2.30 llroundf32x F ++GLIBC_2.30 llroundf64 F ++GLIBC_2.30 llroundl F ++GLIBC_2.30 log F ++GLIBC_2.30 log10 F ++GLIBC_2.30 log10f F ++GLIBC_2.30 log10f32 F ++GLIBC_2.30 log10f32x F ++GLIBC_2.30 log10f64 F ++GLIBC_2.30 log10l F ++GLIBC_2.30 log1p F ++GLIBC_2.30 log1pf F ++GLIBC_2.30 log1pf32 F ++GLIBC_2.30 log1pf32x F ++GLIBC_2.30 log1pf64 F ++GLIBC_2.30 log1pl F ++GLIBC_2.30 log2 F ++GLIBC_2.30 log2f F ++GLIBC_2.30 log2f32 F ++GLIBC_2.30 log2f32x F ++GLIBC_2.30 log2f64 F ++GLIBC_2.30 log2l F ++GLIBC_2.30 logb F ++GLIBC_2.30 logbf F ++GLIBC_2.30 logbf32 F ++GLIBC_2.30 logbf32x F ++GLIBC_2.30 logbf64 F ++GLIBC_2.30 logbl F ++GLIBC_2.30 logf F ++GLIBC_2.30 logf32 F ++GLIBC_2.30 logf32x F ++GLIBC_2.30 logf64 F ++GLIBC_2.30 logl F ++GLIBC_2.30 lrint F ++GLIBC_2.30 lrintf F ++GLIBC_2.30 lrintf32 F ++GLIBC_2.30 lrintf32x F ++GLIBC_2.30 lrintf64 F ++GLIBC_2.30 lrintl F ++GLIBC_2.30 lround F ++GLIBC_2.30 lroundf F ++GLIBC_2.30 lroundf32 F ++GLIBC_2.30 lroundf32x F ++GLIBC_2.30 lroundf64 F ++GLIBC_2.30 lroundl F ++GLIBC_2.30 modf F ++GLIBC_2.30 modff F ++GLIBC_2.30 modff32 F ++GLIBC_2.30 modff32x F ++GLIBC_2.30 modff64 F ++GLIBC_2.30 modfl F ++GLIBC_2.30 nan F ++GLIBC_2.30 nanf F ++GLIBC_2.30 nanf32 F ++GLIBC_2.30 nanf32x F ++GLIBC_2.30 nanf64 F ++GLIBC_2.30 nanl F ++GLIBC_2.30 nearbyint F ++GLIBC_2.30 nearbyintf F ++GLIBC_2.30 nearbyintf32 F ++GLIBC_2.30 nearbyintf32x F ++GLIBC_2.30 nearbyintf64 F ++GLIBC_2.30 nearbyintl F ++GLIBC_2.30 nextafter F ++GLIBC_2.30 nextafterf F ++GLIBC_2.30 nextafterf32 F ++GLIBC_2.30 nextafterf32x F ++GLIBC_2.30 nextafterf64 F ++GLIBC_2.30 nextafterl F ++GLIBC_2.30 nextdown F ++GLIBC_2.30 nextdownf F ++GLIBC_2.30 nextdownf32 F ++GLIBC_2.30 nextdownf32x F ++GLIBC_2.30 nextdownf64 F ++GLIBC_2.30 nextdownl F ++GLIBC_2.30 nexttoward F ++GLIBC_2.30 nexttowardf F ++GLIBC_2.30 nexttowardl F ++GLIBC_2.30 nextup F ++GLIBC_2.30 nextupf F ++GLIBC_2.30 nextupf32 F ++GLIBC_2.30 nextupf32x F ++GLIBC_2.30 nextupf64 F ++GLIBC_2.30 nextupl F ++GLIBC_2.30 pow F ++GLIBC_2.30 powf F ++GLIBC_2.30 powf32 F ++GLIBC_2.30 powf32x F ++GLIBC_2.30 powf64 F ++GLIBC_2.30 powl F ++GLIBC_2.30 remainder F ++GLIBC_2.30 remainderf F ++GLIBC_2.30 remainderf32 F ++GLIBC_2.30 remainderf32x F ++GLIBC_2.30 remainderf64 F ++GLIBC_2.30 remainderl F ++GLIBC_2.30 remquo F ++GLIBC_2.30 remquof F ++GLIBC_2.30 remquof32 F ++GLIBC_2.30 remquof32x F ++GLIBC_2.30 remquof64 F ++GLIBC_2.30 remquol F ++GLIBC_2.30 rint F ++GLIBC_2.30 rintf F ++GLIBC_2.30 rintf32 F ++GLIBC_2.30 rintf32x F ++GLIBC_2.30 rintf64 F ++GLIBC_2.30 rintl F ++GLIBC_2.30 round F ++GLIBC_2.30 roundeven F ++GLIBC_2.30 roundevenf F ++GLIBC_2.30 roundevenf32 F ++GLIBC_2.30 roundevenf32x F ++GLIBC_2.30 roundevenf64 F ++GLIBC_2.30 roundevenl F ++GLIBC_2.30 roundf F ++GLIBC_2.30 roundf32 F ++GLIBC_2.30 roundf32x F ++GLIBC_2.30 roundf64 F ++GLIBC_2.30 roundl F ++GLIBC_2.30 scalb F ++GLIBC_2.30 scalbf F ++GLIBC_2.30 scalbl F ++GLIBC_2.30 scalbln F ++GLIBC_2.30 scalblnf F ++GLIBC_2.30 scalblnf32 F ++GLIBC_2.30 scalblnf32x F ++GLIBC_2.30 scalblnf64 F ++GLIBC_2.30 scalblnl F ++GLIBC_2.30 scalbn F ++GLIBC_2.30 scalbnf F ++GLIBC_2.30 scalbnf32 F ++GLIBC_2.30 scalbnf32x F ++GLIBC_2.30 scalbnf64 F ++GLIBC_2.30 scalbnl F ++GLIBC_2.30 setpayload F ++GLIBC_2.30 setpayloadf F ++GLIBC_2.30 setpayloadf32 F ++GLIBC_2.30 setpayloadf32x F ++GLIBC_2.30 setpayloadf64 F ++GLIBC_2.30 setpayloadl F ++GLIBC_2.30 setpayloadsig F ++GLIBC_2.30 setpayloadsigf F ++GLIBC_2.30 setpayloadsigf32 F ++GLIBC_2.30 setpayloadsigf32x F ++GLIBC_2.30 setpayloadsigf64 F ++GLIBC_2.30 setpayloadsigl F ++GLIBC_2.30 signgam D 0x4 ++GLIBC_2.30 significand F ++GLIBC_2.30 significandf F ++GLIBC_2.30 significandl F ++GLIBC_2.30 sin F ++GLIBC_2.30 sincos F ++GLIBC_2.30 sincosf F ++GLIBC_2.30 sincosf32 F ++GLIBC_2.30 sincosf32x F ++GLIBC_2.30 sincosf64 F ++GLIBC_2.30 sincosl F ++GLIBC_2.30 sinf F ++GLIBC_2.30 sinf32 F ++GLIBC_2.30 sinf32x F ++GLIBC_2.30 sinf64 F ++GLIBC_2.30 sinh F ++GLIBC_2.30 sinhf F ++GLIBC_2.30 sinhf32 F ++GLIBC_2.30 sinhf32x F ++GLIBC_2.30 sinhf64 F ++GLIBC_2.30 sinhl F ++GLIBC_2.30 sinl F ++GLIBC_2.30 sqrt F ++GLIBC_2.30 sqrtf F ++GLIBC_2.30 sqrtf32 F ++GLIBC_2.30 sqrtf32x F ++GLIBC_2.30 sqrtf64 F ++GLIBC_2.30 sqrtl F ++GLIBC_2.30 tan F ++GLIBC_2.30 tanf F ++GLIBC_2.30 tanf32 F ++GLIBC_2.30 tanf32x F ++GLIBC_2.30 tanf64 F ++GLIBC_2.30 tanh F ++GLIBC_2.30 tanhf F ++GLIBC_2.30 tanhf32 F ++GLIBC_2.30 tanhf32x F ++GLIBC_2.30 tanhf64 F ++GLIBC_2.30 tanhl F ++GLIBC_2.30 tanl F ++GLIBC_2.30 tgamma F ++GLIBC_2.30 tgammaf F ++GLIBC_2.30 tgammaf32 F ++GLIBC_2.30 tgammaf32x F ++GLIBC_2.30 tgammaf64 F ++GLIBC_2.30 tgammal F ++GLIBC_2.30 totalorder F ++GLIBC_2.30 totalorderf F ++GLIBC_2.30 totalorderf32 F ++GLIBC_2.30 totalorderf32x F ++GLIBC_2.30 totalorderf64 F ++GLIBC_2.30 totalorderl F ++GLIBC_2.30 totalordermag F ++GLIBC_2.30 totalordermagf F ++GLIBC_2.30 totalordermagf32 F ++GLIBC_2.30 totalordermagf32x F ++GLIBC_2.30 totalordermagf64 F ++GLIBC_2.30 totalordermagl F ++GLIBC_2.30 trunc F ++GLIBC_2.30 truncf F ++GLIBC_2.30 truncf32 F ++GLIBC_2.30 truncf32x F ++GLIBC_2.30 truncf64 F ++GLIBC_2.30 truncl F ++GLIBC_2.30 ufromfp F ++GLIBC_2.30 ufromfpf F ++GLIBC_2.30 ufromfpf32 F ++GLIBC_2.30 ufromfpf32x F ++GLIBC_2.30 ufromfpf64 F ++GLIBC_2.30 ufromfpl F ++GLIBC_2.30 ufromfpx F ++GLIBC_2.30 ufromfpxf F ++GLIBC_2.30 ufromfpxf32 F ++GLIBC_2.30 ufromfpxf32x F ++GLIBC_2.30 ufromfpxf64 F ++GLIBC_2.30 ufromfpxl F ++GLIBC_2.30 y0 F ++GLIBC_2.30 y0f F ++GLIBC_2.30 y0f32 F ++GLIBC_2.30 y0f32x F ++GLIBC_2.30 y0f64 F ++GLIBC_2.30 y0l F ++GLIBC_2.30 y1 F ++GLIBC_2.30 y1f F ++GLIBC_2.30 y1f32 F ++GLIBC_2.30 y1f32x F ++GLIBC_2.30 y1f64 F ++GLIBC_2.30 y1l F ++GLIBC_2.30 yn F ++GLIBC_2.30 ynf F ++GLIBC_2.30 ynf32 F ++GLIBC_2.30 ynf32x F ++GLIBC_2.30 ynf64 F ++GLIBC_2.30 ynl F +diff --git a/sysdeps/unix/sysv/linux/arc/libpthread.abilist b/sysdeps/unix/sysv/linux/arc/libpthread.abilist +new file mode 100644 +index 0000000000..d89cf8d301 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/arc/libpthread.abilist +@@ -0,0 +1,240 @@ ++GLIBC_2.30 _IO_flockfile F ++GLIBC_2.30 _IO_ftrylockfile F ++GLIBC_2.30 _IO_funlockfile F ++GLIBC_2.30 __close F ++GLIBC_2.30 __connect F ++GLIBC_2.30 __errno_location F ++GLIBC_2.30 __h_errno_location F ++GLIBC_2.30 __libc_allocate_rtsig F ++GLIBC_2.30 __libc_current_sigrtmax F ++GLIBC_2.30 __libc_current_sigrtmin F ++GLIBC_2.30 __lseek F ++GLIBC_2.30 __nanosleep F ++GLIBC_2.30 __open F ++GLIBC_2.30 __open64 F ++GLIBC_2.30 __pread64 F ++GLIBC_2.30 __pthread_cleanup_routine F ++GLIBC_2.30 __pthread_getspecific F ++GLIBC_2.30 __pthread_key_create F ++GLIBC_2.30 __pthread_mutex_destroy F ++GLIBC_2.30 __pthread_mutex_init F ++GLIBC_2.30 __pthread_mutex_lock F ++GLIBC_2.30 __pthread_mutex_trylock F ++GLIBC_2.30 __pthread_mutex_unlock F ++GLIBC_2.30 __pthread_mutexattr_destroy F ++GLIBC_2.30 __pthread_mutexattr_init F ++GLIBC_2.30 __pthread_mutexattr_settype F ++GLIBC_2.30 __pthread_once F ++GLIBC_2.30 __pthread_register_cancel F ++GLIBC_2.30 __pthread_register_cancel_defer F ++GLIBC_2.30 __pthread_rwlock_destroy F ++GLIBC_2.30 __pthread_rwlock_init F ++GLIBC_2.30 __pthread_rwlock_rdlock F ++GLIBC_2.30 __pthread_rwlock_tryrdlock F ++GLIBC_2.30 __pthread_rwlock_trywrlock F ++GLIBC_2.30 __pthread_rwlock_unlock F ++GLIBC_2.30 __pthread_rwlock_wrlock F ++GLIBC_2.30 __pthread_setspecific F ++GLIBC_2.30 __pthread_unregister_cancel F ++GLIBC_2.30 __pthread_unregister_cancel_restore F ++GLIBC_2.30 __pthread_unwind_next F ++GLIBC_2.30 __pwrite64 F ++GLIBC_2.30 __read F ++GLIBC_2.30 __res_state F ++GLIBC_2.30 __send F ++GLIBC_2.30 __sigaction F ++GLIBC_2.30 __wait F ++GLIBC_2.30 __write F ++GLIBC_2.30 _pthread_cleanup_pop F ++GLIBC_2.30 _pthread_cleanup_pop_restore F ++GLIBC_2.30 _pthread_cleanup_push F ++GLIBC_2.30 _pthread_cleanup_push_defer F ++GLIBC_2.30 accept F ++GLIBC_2.30 call_once F ++GLIBC_2.30 close F ++GLIBC_2.30 cnd_broadcast F ++GLIBC_2.30 cnd_destroy F ++GLIBC_2.30 cnd_init F ++GLIBC_2.30 cnd_signal F ++GLIBC_2.30 cnd_timedwait F ++GLIBC_2.30 cnd_wait F ++GLIBC_2.30 connect F ++GLIBC_2.30 flockfile F ++GLIBC_2.30 fsync F ++GLIBC_2.30 ftrylockfile F ++GLIBC_2.30 funlockfile F ++GLIBC_2.30 lseek F ++GLIBC_2.30 lseek64 F ++GLIBC_2.30 msync F ++GLIBC_2.30 mtx_destroy F ++GLIBC_2.30 mtx_init F ++GLIBC_2.30 mtx_lock F ++GLIBC_2.30 mtx_timedlock F ++GLIBC_2.30 mtx_trylock F ++GLIBC_2.30 mtx_unlock F ++GLIBC_2.30 nanosleep F ++GLIBC_2.30 open F ++GLIBC_2.30 open64 F ++GLIBC_2.30 pause F ++GLIBC_2.30 pread F ++GLIBC_2.30 pread64 F ++GLIBC_2.30 pthread_attr_destroy F ++GLIBC_2.30 pthread_attr_getaffinity_np F ++GLIBC_2.30 pthread_attr_getdetachstate F ++GLIBC_2.30 pthread_attr_getguardsize F ++GLIBC_2.30 pthread_attr_getinheritsched F ++GLIBC_2.30 pthread_attr_getschedparam F ++GLIBC_2.30 pthread_attr_getschedpolicy F ++GLIBC_2.30 pthread_attr_getscope F ++GLIBC_2.30 pthread_attr_getstack F ++GLIBC_2.30 pthread_attr_getstackaddr F ++GLIBC_2.30 pthread_attr_getstacksize F ++GLIBC_2.30 pthread_attr_init F ++GLIBC_2.30 pthread_attr_setaffinity_np F ++GLIBC_2.30 pthread_attr_setdetachstate F ++GLIBC_2.30 pthread_attr_setguardsize F ++GLIBC_2.30 pthread_attr_setinheritsched F ++GLIBC_2.30 pthread_attr_setschedparam F ++GLIBC_2.30 pthread_attr_setschedpolicy F ++GLIBC_2.30 pthread_attr_setscope F ++GLIBC_2.30 pthread_attr_setstack F ++GLIBC_2.30 pthread_attr_setstackaddr F ++GLIBC_2.30 pthread_attr_setstacksize F ++GLIBC_2.30 pthread_barrier_destroy F ++GLIBC_2.30 pthread_barrier_init F ++GLIBC_2.30 pthread_barrier_wait F ++GLIBC_2.30 pthread_barrierattr_destroy F ++GLIBC_2.30 pthread_barrierattr_getpshared F ++GLIBC_2.30 pthread_barrierattr_init F ++GLIBC_2.30 pthread_barrierattr_setpshared F ++GLIBC_2.30 pthread_cancel F ++GLIBC_2.30 pthread_cond_broadcast F ++GLIBC_2.30 pthread_cond_clockwait F ++GLIBC_2.30 pthread_cond_destroy F ++GLIBC_2.30 pthread_cond_init F ++GLIBC_2.30 pthread_cond_signal F ++GLIBC_2.30 pthread_cond_timedwait F ++GLIBC_2.30 pthread_cond_wait F ++GLIBC_2.30 pthread_condattr_destroy F ++GLIBC_2.30 pthread_condattr_getclock F ++GLIBC_2.30 pthread_condattr_getpshared F ++GLIBC_2.30 pthread_condattr_init F ++GLIBC_2.30 pthread_condattr_setclock F ++GLIBC_2.30 pthread_condattr_setpshared F ++GLIBC_2.30 pthread_create F ++GLIBC_2.30 pthread_detach F ++GLIBC_2.30 pthread_equal F ++GLIBC_2.30 pthread_exit F ++GLIBC_2.30 pthread_getaffinity_np F ++GLIBC_2.30 pthread_getattr_default_np F ++GLIBC_2.30 pthread_getattr_np F ++GLIBC_2.30 pthread_getconcurrency F ++GLIBC_2.30 pthread_getcpuclockid F ++GLIBC_2.30 pthread_getname_np F ++GLIBC_2.30 pthread_getschedparam F ++GLIBC_2.30 pthread_getspecific F ++GLIBC_2.30 pthread_join F ++GLIBC_2.30 pthread_key_create F ++GLIBC_2.30 pthread_key_delete F ++GLIBC_2.30 pthread_kill F ++GLIBC_2.30 pthread_kill_other_threads_np F ++GLIBC_2.30 pthread_mutex_clocklock F ++GLIBC_2.30 pthread_mutex_consistent F ++GLIBC_2.30 pthread_mutex_consistent_np F ++GLIBC_2.30 pthread_mutex_destroy F ++GLIBC_2.30 pthread_mutex_getprioceiling F ++GLIBC_2.30 pthread_mutex_init F ++GLIBC_2.30 pthread_mutex_lock F ++GLIBC_2.30 pthread_mutex_setprioceiling F ++GLIBC_2.30 pthread_mutex_timedlock F ++GLIBC_2.30 pthread_mutex_trylock F ++GLIBC_2.30 pthread_mutex_unlock F ++GLIBC_2.30 pthread_mutexattr_destroy F ++GLIBC_2.30 pthread_mutexattr_getkind_np F ++GLIBC_2.30 pthread_mutexattr_getprioceiling F ++GLIBC_2.30 pthread_mutexattr_getprotocol F ++GLIBC_2.30 pthread_mutexattr_getpshared F ++GLIBC_2.30 pthread_mutexattr_getrobust F ++GLIBC_2.30 pthread_mutexattr_getrobust_np F ++GLIBC_2.30 pthread_mutexattr_gettype F ++GLIBC_2.30 pthread_mutexattr_init F ++GLIBC_2.30 pthread_mutexattr_setkind_np F ++GLIBC_2.30 pthread_mutexattr_setprioceiling F ++GLIBC_2.30 pthread_mutexattr_setprotocol F ++GLIBC_2.30 pthread_mutexattr_setpshared F ++GLIBC_2.30 pthread_mutexattr_setrobust F ++GLIBC_2.30 pthread_mutexattr_setrobust_np F ++GLIBC_2.30 pthread_mutexattr_settype F ++GLIBC_2.30 pthread_once F ++GLIBC_2.30 pthread_rwlock_clockrdlock F ++GLIBC_2.30 pthread_rwlock_clockwrlock F ++GLIBC_2.30 pthread_rwlock_destroy F ++GLIBC_2.30 pthread_rwlock_init F ++GLIBC_2.30 pthread_rwlock_rdlock F ++GLIBC_2.30 pthread_rwlock_timedrdlock F ++GLIBC_2.30 pthread_rwlock_timedwrlock F ++GLIBC_2.30 pthread_rwlock_tryrdlock F ++GLIBC_2.30 pthread_rwlock_trywrlock F ++GLIBC_2.30 pthread_rwlock_unlock F ++GLIBC_2.30 pthread_rwlock_wrlock F ++GLIBC_2.30 pthread_rwlockattr_destroy F ++GLIBC_2.30 pthread_rwlockattr_getkind_np F ++GLIBC_2.30 pthread_rwlockattr_getpshared F ++GLIBC_2.30 pthread_rwlockattr_init F ++GLIBC_2.30 pthread_rwlockattr_setkind_np F ++GLIBC_2.30 pthread_rwlockattr_setpshared F ++GLIBC_2.30 pthread_setaffinity_np F ++GLIBC_2.30 pthread_setattr_default_np F ++GLIBC_2.30 pthread_setcancelstate F ++GLIBC_2.30 pthread_setcanceltype F ++GLIBC_2.30 pthread_setconcurrency F ++GLIBC_2.30 pthread_setname_np F ++GLIBC_2.30 pthread_setschedparam F ++GLIBC_2.30 pthread_setschedprio F ++GLIBC_2.30 pthread_setspecific F ++GLIBC_2.30 pthread_sigmask F ++GLIBC_2.30 pthread_sigqueue F ++GLIBC_2.30 pthread_spin_destroy F ++GLIBC_2.30 pthread_spin_init F ++GLIBC_2.30 pthread_spin_lock F ++GLIBC_2.30 pthread_spin_trylock F ++GLIBC_2.30 pthread_spin_unlock F ++GLIBC_2.30 pthread_testcancel F ++GLIBC_2.30 pthread_timedjoin_np F ++GLIBC_2.30 pthread_tryjoin_np F ++GLIBC_2.30 pthread_yield F ++GLIBC_2.30 pwrite F ++GLIBC_2.30 pwrite64 F ++GLIBC_2.30 raise F ++GLIBC_2.30 read F ++GLIBC_2.30 recv F ++GLIBC_2.30 recvfrom F ++GLIBC_2.30 recvmsg F ++GLIBC_2.30 sem_clockwait F ++GLIBC_2.30 sem_close F ++GLIBC_2.30 sem_destroy F ++GLIBC_2.30 sem_getvalue F ++GLIBC_2.30 sem_init F ++GLIBC_2.30 sem_open F ++GLIBC_2.30 sem_post F ++GLIBC_2.30 sem_timedwait F ++GLIBC_2.30 sem_trywait F ++GLIBC_2.30 sem_unlink F ++GLIBC_2.30 sem_wait F ++GLIBC_2.30 send F ++GLIBC_2.30 sendmsg F ++GLIBC_2.30 sendto F ++GLIBC_2.30 sigaction F ++GLIBC_2.30 sigwait F ++GLIBC_2.30 tcdrain F ++GLIBC_2.30 thrd_create F ++GLIBC_2.30 thrd_detach F ++GLIBC_2.30 thrd_exit F ++GLIBC_2.30 thrd_join F ++GLIBC_2.30 tss_create F ++GLIBC_2.30 tss_delete F ++GLIBC_2.30 tss_get F ++GLIBC_2.30 tss_set F ++GLIBC_2.30 wait F ++GLIBC_2.30 waitpid F ++GLIBC_2.30 write F +diff --git a/sysdeps/unix/sysv/linux/arc/libresolv.abilist b/sysdeps/unix/sysv/linux/arc/libresolv.abilist +new file mode 100644 +index 0000000000..ca745f5b98 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/arc/libresolv.abilist +@@ -0,0 +1,79 @@ ++GLIBC_2.30 __b64_ntop F ++GLIBC_2.30 __b64_pton F ++GLIBC_2.30 __dn_comp F ++GLIBC_2.30 __dn_count_labels F ++GLIBC_2.30 __dn_expand F ++GLIBC_2.30 __dn_skipname F ++GLIBC_2.30 __fp_nquery F ++GLIBC_2.30 __fp_query F ++GLIBC_2.30 __fp_resstat F ++GLIBC_2.30 __hostalias F ++GLIBC_2.30 __loc_aton F ++GLIBC_2.30 __loc_ntoa F ++GLIBC_2.30 __p_cdname F ++GLIBC_2.30 __p_cdnname F ++GLIBC_2.30 __p_class F ++GLIBC_2.30 __p_class_syms D 0x54 ++GLIBC_2.30 __p_fqname F ++GLIBC_2.30 __p_fqnname F ++GLIBC_2.30 __p_option F ++GLIBC_2.30 __p_query F ++GLIBC_2.30 __p_rcode F ++GLIBC_2.30 __p_time F ++GLIBC_2.30 __p_type F ++GLIBC_2.30 __p_type_syms D 0x228 ++GLIBC_2.30 __putlong F ++GLIBC_2.30 __putshort F ++GLIBC_2.30 __res_close F ++GLIBC_2.30 __res_dnok F ++GLIBC_2.30 __res_hnok F ++GLIBC_2.30 __res_hostalias F ++GLIBC_2.30 __res_isourserver F ++GLIBC_2.30 __res_mailok F ++GLIBC_2.30 __res_mkquery F ++GLIBC_2.30 __res_nameinquery F ++GLIBC_2.30 __res_nmkquery F ++GLIBC_2.30 __res_nquery F ++GLIBC_2.30 __res_nquerydomain F ++GLIBC_2.30 __res_nsearch F ++GLIBC_2.30 __res_nsend F ++GLIBC_2.30 __res_ownok F ++GLIBC_2.30 __res_queriesmatch F ++GLIBC_2.30 __res_query F ++GLIBC_2.30 __res_querydomain F ++GLIBC_2.30 __res_search F ++GLIBC_2.30 __res_send F ++GLIBC_2.30 __sym_ntop F ++GLIBC_2.30 __sym_ntos F ++GLIBC_2.30 __sym_ston F ++GLIBC_2.30 _getlong F ++GLIBC_2.30 _getshort F ++GLIBC_2.30 inet_net_ntop F ++GLIBC_2.30 inet_net_pton F ++GLIBC_2.30 inet_neta F ++GLIBC_2.30 ns_datetosecs F ++GLIBC_2.30 ns_format_ttl F ++GLIBC_2.30 ns_get16 F ++GLIBC_2.30 ns_get32 F ++GLIBC_2.30 ns_initparse F ++GLIBC_2.30 ns_makecanon F ++GLIBC_2.30 ns_msg_getflag F ++GLIBC_2.30 ns_name_compress F ++GLIBC_2.30 ns_name_ntol F ++GLIBC_2.30 ns_name_ntop F ++GLIBC_2.30 ns_name_pack F ++GLIBC_2.30 ns_name_pton F ++GLIBC_2.30 ns_name_rollback F ++GLIBC_2.30 ns_name_skip F ++GLIBC_2.30 ns_name_uncompress F ++GLIBC_2.30 ns_name_unpack F ++GLIBC_2.30 ns_parse_ttl F ++GLIBC_2.30 ns_parserr F ++GLIBC_2.30 ns_put16 F ++GLIBC_2.30 ns_put32 F ++GLIBC_2.30 ns_samedomain F ++GLIBC_2.30 ns_samename F ++GLIBC_2.30 ns_skiprr F ++GLIBC_2.30 ns_sprintrr F ++GLIBC_2.30 ns_sprintrrf F ++GLIBC_2.30 ns_subdomain F +diff --git a/sysdeps/unix/sysv/linux/arc/librt.abilist b/sysdeps/unix/sysv/linux/arc/librt.abilist +new file mode 100644 +index 0000000000..8d39a08696 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/arc/librt.abilist +@@ -0,0 +1,35 @@ ++GLIBC_2.30 __mq_open_2 F ++GLIBC_2.30 aio_cancel F ++GLIBC_2.30 aio_cancel64 F ++GLIBC_2.30 aio_error F ++GLIBC_2.30 aio_error64 F ++GLIBC_2.30 aio_fsync F ++GLIBC_2.30 aio_fsync64 F ++GLIBC_2.30 aio_init F ++GLIBC_2.30 aio_read F ++GLIBC_2.30 aio_read64 F ++GLIBC_2.30 aio_return F ++GLIBC_2.30 aio_return64 F ++GLIBC_2.30 aio_suspend F ++GLIBC_2.30 aio_suspend64 F ++GLIBC_2.30 aio_write F ++GLIBC_2.30 aio_write64 F ++GLIBC_2.30 lio_listio F ++GLIBC_2.30 lio_listio64 F ++GLIBC_2.30 mq_close F ++GLIBC_2.30 mq_getattr F ++GLIBC_2.30 mq_notify F ++GLIBC_2.30 mq_open F ++GLIBC_2.30 mq_receive F ++GLIBC_2.30 mq_send F ++GLIBC_2.30 mq_setattr F ++GLIBC_2.30 mq_timedreceive F ++GLIBC_2.30 mq_timedsend F ++GLIBC_2.30 mq_unlink F ++GLIBC_2.30 shm_open F ++GLIBC_2.30 shm_unlink F ++GLIBC_2.30 timer_create F ++GLIBC_2.30 timer_delete F ++GLIBC_2.30 timer_getoverrun F ++GLIBC_2.30 timer_gettime F ++GLIBC_2.30 timer_settime F +diff --git a/sysdeps/unix/sysv/linux/arc/libthread_db.abilist b/sysdeps/unix/sysv/linux/arc/libthread_db.abilist +new file mode 100644 +index 0000000000..94220c9592 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/arc/libthread_db.abilist +@@ -0,0 +1,40 @@ ++GLIBC_2.30 td_init F ++GLIBC_2.30 td_log F ++GLIBC_2.30 td_symbol_list F ++GLIBC_2.30 td_ta_clear_event F ++GLIBC_2.30 td_ta_delete F ++GLIBC_2.30 td_ta_enable_stats F ++GLIBC_2.30 td_ta_event_addr F ++GLIBC_2.30 td_ta_event_getmsg F ++GLIBC_2.30 td_ta_get_nthreads F ++GLIBC_2.30 td_ta_get_ph F ++GLIBC_2.30 td_ta_get_stats F ++GLIBC_2.30 td_ta_map_id2thr F ++GLIBC_2.30 td_ta_map_lwp2thr F ++GLIBC_2.30 td_ta_new F ++GLIBC_2.30 td_ta_reset_stats F ++GLIBC_2.30 td_ta_set_event F ++GLIBC_2.30 td_ta_setconcurrency F ++GLIBC_2.30 td_ta_thr_iter F ++GLIBC_2.30 td_ta_tsd_iter F ++GLIBC_2.30 td_thr_clear_event F ++GLIBC_2.30 td_thr_dbresume F ++GLIBC_2.30 td_thr_dbsuspend F ++GLIBC_2.30 td_thr_event_enable F ++GLIBC_2.30 td_thr_event_getmsg F ++GLIBC_2.30 td_thr_get_info F ++GLIBC_2.30 td_thr_getfpregs F ++GLIBC_2.30 td_thr_getgregs F ++GLIBC_2.30 td_thr_getxregs F ++GLIBC_2.30 td_thr_getxregsize F ++GLIBC_2.30 td_thr_set_event F ++GLIBC_2.30 td_thr_setfpregs F ++GLIBC_2.30 td_thr_setgregs F ++GLIBC_2.30 td_thr_setprio F ++GLIBC_2.30 td_thr_setsigpending F ++GLIBC_2.30 td_thr_setxregs F ++GLIBC_2.30 td_thr_sigsetmask F ++GLIBC_2.30 td_thr_tls_get_addr F ++GLIBC_2.30 td_thr_tlsbase F ++GLIBC_2.30 td_thr_tsd F ++GLIBC_2.30 td_thr_validate F +diff --git a/sysdeps/unix/sysv/linux/arc/libutil.abilist b/sysdeps/unix/sysv/linux/arc/libutil.abilist +new file mode 100644 +index 0000000000..f745157afa +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/arc/libutil.abilist +@@ -0,0 +1,6 @@ ++GLIBC_2.30 forkpty F ++GLIBC_2.30 login F ++GLIBC_2.30 login_tty F ++GLIBC_2.30 logout F ++GLIBC_2.30 logwtmp F ++GLIBC_2.30 openpty F +diff --git a/sysdeps/unix/sysv/linux/arc/localplt.data b/sysdeps/unix/sysv/linux/arc/localplt.data +new file mode 100644 +index 0000000000..e902fd0607 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/arc/localplt.data +@@ -0,0 +1,16 @@ ++libc.so: realloc ++libc.so: malloc ++libc.so: memalign ++libc.so: calloc ++libc.so: free ++# At -Os, a struct assignment in libgcc-static pulls this in ++libc.so: memcpy ? ++ld.so: malloc ++ld.so: calloc ++ld.so: realloc ++ld.so: free ++# The TLS-enabled version of these functions is interposed from libc.so. ++ld.so: _dl_signal_error ++ld.so: _dl_catch_error ++ld.so: _dl_signal_exception ++ld.so: _dl_catch_exception +diff --git a/sysdeps/unix/sysv/linux/arc/makecontext.c b/sysdeps/unix/sysv/linux/arc/makecontext.c +new file mode 100644 +index 0000000000..3d46452e17 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/arc/makecontext.c +@@ -0,0 +1,75 @@ ++/* Create new context for ARC. ++ Copyright (C) 2015-2019 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 ++ <http://www.gnu.org/licenses/>. */ ++ ++#include <sysdep.h> ++#include <stdarg.h> ++#include <stdint.h> ++#include <sys/ucontext.h> ++ ++void ++__makecontext (ucontext_t *ucp, void (*func) (void), int argc, ...) ++{ ++ extern void __startcontext (void) attribute_hidden; ++ unsigned long int sp, *r; ++ va_list vl; ++ int i, reg_args, stack_args; ++ ++ sp = ((unsigned long int) ucp->uc_stack.ss_sp + ucp->uc_stack.ss_size) & ~7; ++ ++ ucp->uc_mcontext.__scratch.__sp = sp; ++ ucp->uc_mcontext.__scratch.__fp = 0; ++ ++ /* __startcontext is sort of trampoline to invoke @func ++ From setcontext() pov, the resume address is __startcontext, ++ set it up in BLINK place holder. */ ++ ++ ucp->uc_mcontext.__scratch.__blink = (unsigned long int) &__startcontext; ++ ++ /* __startcontext passed 2 types of args ++ - args to @func setup in canonical r0-r7 ++ - @func itself in r9, and next function in r10. */ ++ ++ ucp->uc_mcontext.__callee.__r13 = (unsigned long int) func; ++ ucp->uc_mcontext.__callee.__r14 = (unsigned long int) ucp->uc_link; ++ ++ r = &ucp->uc_mcontext.__scratch.__r0; ++ ++ va_start (vl, argc); ++ ++ reg_args = argc > 8 ? 8 : argc; ++ for (i = 0; i < reg_args; i++) { ++ *r-- = va_arg(vl, unsigned long int); ++ } ++ ++ stack_args = argc - reg_args; ++ ++ if (__glibc_unlikely (stack_args > 0)) { ++ ++ sp -= stack_args * sizeof (unsigned long int); ++ ucp->uc_mcontext.__scratch.__sp = sp; ++ r = (unsigned long int *)sp; ++ ++ for (i = 0; i < stack_args; i++) { ++ *r++ = va_arg(vl, unsigned long int); ++ } ++ } ++ ++ va_end (vl); ++} ++ ++weak_alias (__makecontext, makecontext) +diff --git a/sysdeps/unix/sysv/linux/arc/mmap_internal.h b/sysdeps/unix/sysv/linux/arc/mmap_internal.h +new file mode 100644 +index 0000000000..51d0a25f26 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/arc/mmap_internal.h +@@ -0,0 +1,27 @@ ++/* mmap - map files or devices into memory. Linux/ARC version. ++ Copyright (C) 2017-2019 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 ++ <http://www.gnu.org/licenses/>. */ ++ ++#ifndef MMAP_ARC_INTERNAL_H ++#define MMAP_ARC_INTERNAL_H ++ ++/* Determine the shift dynamically with getpagesize. */ ++#define MMAP2_PAGE_UNIT -1 ++ ++#include_next <mmap_internal.h> ++ ++#endif +diff --git a/sysdeps/unix/sysv/linux/arc/pt-vfork.S b/sysdeps/unix/sysv/linux/arc/pt-vfork.S +new file mode 100644 +index 0000000000..1cc8931700 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/arc/pt-vfork.S +@@ -0,0 +1 @@ ++/* Not needed. */ +diff --git a/sysdeps/unix/sysv/linux/arc/setcontext.S b/sysdeps/unix/sysv/linux/arc/setcontext.S +new file mode 100644 +index 0000000000..8cf4ffcaf5 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/arc/setcontext.S +@@ -0,0 +1,92 @@ ++/* Set current context for ARC. ++ Copyright (C) 2009-2019 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 ++ <http://www.gnu.org/licenses/>. */ ++ ++#include "ucontext-macros.h" ++ ++/* int setcontext (const ucontext_t *ucp) ++ - Restores the machine context in @ucp and resumes execution ++ (doesn't return to caller). */ ++ ++ENTRY (__setcontext) ++ ++ mov r9, r0 /* Stash @ucp across syscall. */ ++ ++ /* rt_sigprocmask (SIG_SETMASK, &ucp->uc_sigmask, NULL, _NSIG8) */ ++ mov r3, _NSIG8 ++ mov r2, 0 ++ add r1, r0, UCONTEXT_SIGMASK ++ mov r0, SIG_SETMASK ++ mov r8, __NR_rt_sigprocmask ++ ARC_TRAP_INSN ++ brhi r0, -1024, .Lcall_syscall_err ++ ++ /* Restore scratch/arg regs for makecontext() case. */ ++ LOAD_REG (r0, r9, 22) ++ LOAD_REG (r1, r9, 21) ++ LOAD_REG (r2, r9, 20) ++ LOAD_REG (r3, r9, 19) ++ LOAD_REG (r4, r9, 18) ++ LOAD_REG (r5, r9, 17) ++ LOAD_REG (r6, r9, 16) ++ LOAD_REG (r7, r9, 15) ++ ++ /* Restore callee saved registers. */ ++ LOAD_REG (r13, r9, 37) ++ LOAD_REG (r14, r9, 36) ++ LOAD_REG (r15, r9, 35) ++ LOAD_REG (r16, r9, 34) ++ LOAD_REG (r17, r9, 33) ++ LOAD_REG (r18, r9, 32) ++ LOAD_REG (r19, r9, 31) ++ LOAD_REG (r20, r9, 30) ++ LOAD_REG (r21, r9, 29) ++ LOAD_REG (r22, r9, 28) ++ LOAD_REG (r23, r9, 27) ++ LOAD_REG (r24, r9, 26) ++ LOAD_REG (r25, r9, 25) ++ ++ LOAD_REG (blink, r9, 7) ++ LOAD_REG (fp, r9, 8) ++ LOAD_REG (sp, r9, 23) ++ ++ j [blink] ++ ++PSEUDO_END (__setcontext) ++weak_alias (__setcontext, setcontext) ++ ++ ++/* Helper for activating makecontext() created context ++ - r13 has @func, r14 has uc_link. */ ++ ++ENTRY (__startcontext) ++ ++ .cfi_label .Ldummy ++ cfi_undefined (blink) ++ ++ /* Call user @func, loaded in r13 by setcontext(). */ ++ jl [r13] ++ ++ /* If uc_link (r14) call setcontext with that. */ ++ mov r0, r14 ++ breq r0, 0, 1f ++ ++ bl __setcontext ++1: ++ /* Exit with status 0. */ ++ b HIDDEN_JUMPTARGET(exit) ++END (__startcontext) +diff --git a/sysdeps/unix/sysv/linux/arc/shlib-versions b/sysdeps/unix/sysv/linux/arc/shlib-versions +new file mode 100644 +index 0000000000..cbe457b9db +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/arc/shlib-versions +@@ -0,0 +1,2 @@ ++DEFAULT GLIBC_2.30 ++ld=ld-linux-arc.so.2 +diff --git a/sysdeps/unix/sysv/linux/arc/sigaction.c b/sysdeps/unix/sysv/linux/arc/sigaction.c +new file mode 100644 +index 0000000000..db7293865f +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/arc/sigaction.c +@@ -0,0 +1,31 @@ ++/* ARC specific sigaction. ++ Copyright (C) 1997-2019 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 ++ <http://www.gnu.org/licenses/>. */ ++ ++#define SA_RESTORER 0x04000000 ++ ++extern void __default_rt_sa_restorer (void); ++ ++#define SET_SA_RESTORER(kact, act) \ ++ ({ \ ++ (kact)->sa_restorer = __default_rt_sa_restorer; \ ++ (kact)->sa_flags |= SA_RESTORER; \ ++ }) ++ ++#define RESET_SA_RESTORER(act, kact) ++ ++#include <sysdeps/unix/sysv/linux/sigaction.c> +diff --git a/sysdeps/unix/sysv/linux/arc/sigcontextinfo.h b/sysdeps/unix/sysv/linux/arc/sigcontextinfo.h +new file mode 100644 +index 0000000000..db5f4b6d21 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/arc/sigcontextinfo.h +@@ -0,0 +1,31 @@ ++/* ARC definitions for signal handling calling conventions. ++ Copyright (C) 2017-2019 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 ++ <http://www.gnu.org/licenses/>. */ ++ ++#ifndef _SIGCONTEXTINFO_H ++#define _SIGCONTEXTINFO_H ++ ++#include <stdint.h> ++#include <sys/ucontext.h> ++ ++static inline uintptr_t ++sigcontext_get_pc (const ucontext_t *ctx) ++{ ++ return ctx->uc_mcontext.__scratch.__ret; ++} ++ ++#endif +diff --git a/sysdeps/unix/sysv/linux/arc/sigrestorer.S b/sysdeps/unix/sysv/linux/arc/sigrestorer.S +new file mode 100644 +index 0000000000..573b54e36c +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/arc/sigrestorer.S +@@ -0,0 +1,29 @@ ++/* Default sigreturn stub for ARC Linux. ++ Copyright (C) 2005-2019 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 ++ <http://www.gnu.org/licenses/>. */ ++ ++#include <sys/syscall.h> ++#include <sysdep.h> ++#include <tcb-offsets.h> ++ ++/* Note the NOP has to be outside body. */ ++ nop ++ENTRY (__default_rt_sa_restorer) ++ mov r8, __NR_rt_sigreturn ++ ARC_TRAP_INSN ++ j_s [blink] ++PSEUDO_END_NOERRNO (__default_rt_sa_restorer) +diff --git a/sysdeps/unix/sysv/linux/arc/swapcontext.S b/sysdeps/unix/sysv/linux/arc/swapcontext.S +new file mode 100644 +index 0000000000..853d3805de +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/arc/swapcontext.S +@@ -0,0 +1,92 @@ ++/* Save and set current context for ARC. ++ Copyright (C) 2009-2019 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 ++ <http://www.gnu.org/licenses/>. */ ++ ++#include "ucontext-macros.h" ++ ++/* int swapcontext (ucontext_t *oucp, const ucontext_t *ucp). */ ++ ++ENTRY (__swapcontext) ++ ++ /* Save context into @oucp pointed to by r0. */ ++ ++ SAVE_REG (r13, r0, 37) ++ SAVE_REG (r14, r0, 36) ++ SAVE_REG (r15, r0, 35) ++ SAVE_REG (r16, r0, 34) ++ SAVE_REG (r17, r0, 33) ++ SAVE_REG (r18, r0, 32) ++ SAVE_REG (r19, r0, 31) ++ SAVE_REG (r20, r0, 30) ++ SAVE_REG (r21, r0, 29) ++ SAVE_REG (r22, r0, 28) ++ SAVE_REG (r23, r0, 27) ++ SAVE_REG (r24, r0, 26) ++ SAVE_REG (r25, r0, 25) ++ ++ SAVE_REG (blink, r0, 7) ++ SAVE_REG (fp, r0, 8) ++ SAVE_REG (sp, r0, 23) ++ ++ /* Save 0 in r0 placeholder to return 0 when @oucp activated. */ ++ mov r9, 0 ++ SAVE_REG (r9, r0, 22) ++ ++ /* Load context from @ucp. */ ++ ++ mov r9, r1 /* Safekeep @ucp across syscall. */ ++ ++ /* rt_sigprocmask (SIG_SETMASK, &ucp->uc_sigmask, &oucp->uc_sigmask, _NSIG8) */ ++ mov r3, _NSIG8 ++ add r2, r0, UCONTEXT_SIGMASK ++ add r1, r1, UCONTEXT_SIGMASK ++ mov r0, SIG_SETMASK ++ mov r8, __NR_rt_sigprocmask ++ ARC_TRAP_INSN ++ brhi r0, -1024, .Lcall_syscall_err ++ ++ LOAD_REG (r0, r9, 22) ++ LOAD_REG (r1, r9, 21) ++ LOAD_REG (r2, r9, 20) ++ LOAD_REG (r3, r9, 19) ++ LOAD_REG (r4, r9, 18) ++ LOAD_REG (r5, r9, 17) ++ LOAD_REG (r6, r9, 16) ++ LOAD_REG (r7, r9, 15) ++ ++ LOAD_REG (r13, r9, 37) ++ LOAD_REG (r14, r9, 36) ++ LOAD_REG (r15, r9, 35) ++ LOAD_REG (r16, r9, 34) ++ LOAD_REG (r17, r9, 33) ++ LOAD_REG (r18, r9, 32) ++ LOAD_REG (r19, r9, 31) ++ LOAD_REG (r20, r9, 30) ++ LOAD_REG (r21, r9, 29) ++ LOAD_REG (r22, r9, 28) ++ LOAD_REG (r23, r9, 27) ++ LOAD_REG (r24, r9, 26) ++ LOAD_REG (r25, r9, 25) ++ ++ LOAD_REG (blink, r9, 7) ++ LOAD_REG (fp, r9, 8) ++ LOAD_REG (sp, r9, 23) ++ ++ j [blink] ++ ++PSEUDO_END (__swapcontext) ++weak_alias (__swapcontext, swapcontext) +diff --git a/sysdeps/unix/sysv/linux/arc/sys/cachectl.h b/sysdeps/unix/sysv/linux/arc/sys/cachectl.h +new file mode 100644 +index 0000000000..2d93e49e6a +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/arc/sys/cachectl.h +@@ -0,0 +1,36 @@ ++/* cacheflush - flush contents of instruction and/or data cache. ++ Copyright (C) 2017-2019 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 ++ <http://www.gnu.org/licenses/>. */ ++ ++#ifndef _SYS_CACHECTL_H ++#define _SYS_CACHECTL_H 1 ++ ++#include <features.h> ++ ++/* Get the kernel definition for the op bits. */ ++#include <asm/cachectl.h> ++ ++__BEGIN_DECLS ++ ++#ifdef __USE_MISC ++extern int cacheflush (void *__addr, const int __nbytes, const int __op) __THROW; ++#endif ++extern int _flush_cache (char *__addr, const int __nbytes, const int __op) __THROW; ++ ++__END_DECLS ++ ++#endif /* sys/cachectl.h */ +diff --git a/sysdeps/unix/sysv/linux/arc/sys/ucontext.h b/sysdeps/unix/sysv/linux/arc/sys/ucontext.h +new file mode 100644 +index 0000000000..7e357bcd65 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/arc/sys/ucontext.h +@@ -0,0 +1,63 @@ ++/* struct ucontext definition, ARC version. ++ Copyright (C) 2017-2019 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 ++ <http://www.gnu.org/licenses/>. */ ++ ++/* System V/ARC ABI compliant context switching support. */ ++ ++#ifndef _SYS_UCONTEXT_H ++#define _SYS_UCONTEXT_H 1 ++ ++#include <features.h> ++ ++#include <bits/types/sigset_t.h> ++#include <bits/types/stack_t.h> ++ ++typedef struct ++ { ++ unsigned long int __pad; ++ struct { ++ unsigned long int __bta; ++ unsigned long int __lp_start, __lp_end, __lp_count; ++ unsigned long int __status32, __ret, __blink; ++ unsigned long int __fp, __gp; ++ unsigned long int __r12, __r11, __r10, __r9, __r8, __r7; ++ unsigned long int __r6, __r5, __r4, __r3, __r2, __r1, __r0; ++ unsigned long int __sp; ++ } __scratch; ++ unsigned long int __pad2; ++ struct { ++ unsigned long int __r25, __r24, __r23, __r22, __r21, __r20; ++ unsigned long int __r19, __r18, __r17, __r16, __r15, __r14, __r13; ++ } __callee; ++ unsigned long int __efa; ++ unsigned long int __stop_pc; ++ unsigned long int __r30, __r58, __r59; ++ } mcontext_t; ++ ++/* Userlevel context. */ ++typedef struct ucontext_t ++ { ++ unsigned long int __uc_flags; ++ struct ucontext_t *uc_link; ++ stack_t uc_stack; ++ mcontext_t uc_mcontext; ++ sigset_t uc_sigmask; ++ } ucontext_t; ++ ++#undef __ctx ++ ++#endif /* sys/ucontext.h */ +diff --git a/sysdeps/unix/sysv/linux/arc/sys/user.h b/sysdeps/unix/sysv/linux/arc/sys/user.h +new file mode 100644 +index 0000000000..50d0dc7827 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/arc/sys/user.h +@@ -0,0 +1,31 @@ ++/* ptrace register data format definitions. ++ Copyright (C) 1998-2019 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 ++ <http://www.gnu.org/licenses/>. */ ++ ++#ifndef _SYS_USER_H ++#define _SYS_USER_H 1 ++ ++/* Struct user_regs_struct is exported by kernel header ++ However apps like strace also expect a struct user, so it's better to ++ have a dummy implementation. */ ++#include <asm/ptrace.h> ++ ++struct user { ++ int dummy; ++}; ++ ++#endif /* sys/user.h */ +diff --git a/sysdeps/unix/sysv/linux/arc/syscall.S b/sysdeps/unix/sysv/linux/arc/syscall.S +new file mode 100644 +index 0000000000..3fe5fcdd04 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/arc/syscall.S +@@ -0,0 +1,38 @@ ++/* syscall - indirect system call. ++ Copyright (C) 2017-2019 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 ++ <http://www.gnu.org/licenses/>. */ ++ ++#include <sysdep.h> ++ ++ENTRY (syscall) ++ mov_s r8, r0 ++ mov_s r0, r1 ++ mov_s r1, r2 ++ mov_s r2, r3 ++ mov_s r3, r4 ++#ifdef __ARC700__ ++ mov r4, r5 ++ mov r5, r6 ++#else ++ mov_s r4, r5 ++ mov_s r5, r6 ++#endif ++ ++ ARC_TRAP_INSN ++ brhi r0, -1024, .Lcall_syscall_err ++ j [blink] ++PSEUDO_END (syscall) +diff --git a/sysdeps/unix/sysv/linux/arc/syscalls.list b/sysdeps/unix/sysv/linux/arc/syscalls.list +new file mode 100644 +index 0000000000..d0ef5977ee +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/arc/syscalls.list +@@ -0,0 +1,3 @@ ++# File name Caller Syscall name Args Strong name Weak names ++ ++cacheflush - cacheflush i:pii _flush_cache cacheflush +diff --git a/sysdeps/unix/sysv/linux/arc/sysdep.c b/sysdeps/unix/sysv/linux/arc/sysdep.c +new file mode 100644 +index 0000000000..5618f37851 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/arc/sysdep.c +@@ -0,0 +1,33 @@ ++/* ARC wrapper for setting errno. ++ Copyright (C) 1997-2019 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 ++ <http://www.gnu.org/licenses/>. */ ++ ++#include <sysdep.h> ++#include <errno.h> ++ ++/* All syscall handler come here to avoid generated code bloat due to ++ GOT reference to errno_location or it's equivalent. */ ++int ++__syscall_error(int err_no) ++{ ++ __set_errno(-err_no); ++ return -1; ++} ++ ++#if IS_IN (libc) ++hidden_def (__syscall_error) ++#endif +diff --git a/sysdeps/unix/sysv/linux/arc/sysdep.h b/sysdeps/unix/sysv/linux/arc/sysdep.h +new file mode 100644 +index 0000000000..28547ac448 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/arc/sysdep.h +@@ -0,0 +1,250 @@ ++/* Assembler macros for ARC. ++ Copyright (C) 2000-2019 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 ++ <http://www.gnu.org/licenses/>. */ ++ ++#ifndef _LINUX_ARC_SYSDEP_H ++#define _LINUX_ARC_SYSDEP_H 1 ++ ++#include <sysdeps/arc/sysdep.h> ++#include <sysdeps/unix/sysv/linux/generic/sysdep.h> ++ ++/* For RTLD_PRIVATE_ERRNO. */ ++#include <dl-sysdep.h> ++ ++#include <tls.h> ++ ++#undef SYS_ify ++#define SYS_ify(syscall_name) __NR_##syscall_name ++ ++#ifdef __ASSEMBLER__ ++ ++/* This is a "normal" system call stub: if there is an error, ++ it returns -1 and sets errno. */ ++ ++# undef PSEUDO ++# define PSEUDO(name, syscall_name, args) \ ++ PSEUDO_NOERRNO(name, syscall_name, args) ASM_LINE_SEP \ ++ brhi r0, -1024, .Lcall_syscall_err ASM_LINE_SEP ++ ++# define ret j [blink] ++ ++# undef PSEUDO_END ++# define PSEUDO_END(name) \ ++ SYSCALL_ERROR_HANDLER ASM_LINE_SEP \ ++ END (name) ++ ++/* --------- Helper for SYSCALL_NOERRNO ----------- ++ This kind of system call stub never returns an error. ++ We return the return value register to the caller unexamined. */ ++ ++# undef PSEUDO_NOERRNO ++# define PSEUDO_NOERRNO(name, syscall_name, args) \ ++ .text ASM_LINE_SEP \ ++ ENTRY (name) ASM_LINE_SEP \ ++ DO_CALL (syscall_name, args) ASM_LINE_SEP \ ++ ++/* Return the return value register unexamined. Since r0 is both ++ syscall return reg and function return reg, no work needed. */ ++# define ret_NOERRNO \ ++ j_s [blink] ASM_LINE_SEP ++ ++# undef PSEUDO_END_NOERRNO ++# define PSEUDO_END_NOERRNO(name) \ ++ END (name) ++ ++/* --------- Helper for SYSCALL_ERRVAL ----------- ++ This kind of system call stub returns the errno code as its return ++ value, or zero for success. We may massage the kernel's return value ++ to meet that ABI, but we never set errno here. */ ++ ++# undef PSEUDO_ERRVAL ++# define PSEUDO_ERRVAL(name, syscall_name, args) \ ++ PSEUDO_NOERRNO(name, syscall_name, args) ASM_LINE_SEP ++ ++/* Don't set errno, return kernel error (in errno form) or zero. */ ++# define ret_ERRVAL \ ++ rsub r0, r0, 0 ASM_LINE_SEP \ ++ ret_NOERRNO ++ ++# undef PSEUDO_END_ERRVAL ++# define PSEUDO_END_ERRVAL(name) \ ++ END (name) ++ ++ ++/* To reduce the code footprint, we confine the actual errno access ++ to single place in __syscall_error(). ++ This takes raw kernel error value, sets errno and returns -1. */ ++# if IS_IN (libc) ++# define CALL_ERRNO_SETTER_C bl PLTJMP(HIDDEN_JUMPTARGET(__syscall_error)) ++# else ++# define CALL_ERRNO_SETTER_C bl PLTJMP(__syscall_error) ++# endif ++ ++# define SYSCALL_ERROR_HANDLER \ ++.Lcall_syscall_err: ASM_LINE_SEP \ ++ st.a blink, [sp, -4] ASM_LINE_SEP \ ++ cfi_adjust_cfa_offset (4) ASM_LINE_SEP \ ++ cfi_rel_offset (blink, 0) ASM_LINE_SEP \ ++ CALL_ERRNO_SETTER_C ASM_LINE_SEP \ ++ ld.ab blink, [sp, 4] ASM_LINE_SEP \ ++ cfi_adjust_cfa_offset (-4) ASM_LINE_SEP \ ++ cfi_restore (blink) ASM_LINE_SEP \ ++ j [blink] ++ ++# define DO_CALL(syscall_name, args) \ ++ mov r8, SYS_ify (syscall_name) ASM_LINE_SEP \ ++ ARC_TRAP_INSN ASM_LINE_SEP ++ ++# define ARC_TRAP_INSN trap_s 0 ++ ++#else /* !__ASSEMBLER__ */ ++ ++# define SINGLE_THREAD_BY_GLOBAL 1 ++ ++/* In order to get __set_errno() definition in INLINE_SYSCALL. */ ++#include <errno.h> ++ ++extern int __syscall_error (int); ++ ++# if IS_IN (libc) ++hidden_proto (__syscall_error) ++# define CALL_ERRNO_SETTER "bl __syscall_error \n\t" ++# else ++# define CALL_ERRNO_SETTER "bl __syscall_error@plt \n\t" ++# endif ++ ++ ++/* Define a macro which expands into the inline wrapper code for a system ++ call. */ ++# undef INLINE_SYSCALL ++# define INLINE_SYSCALL(name, nr_args, args...) \ ++ ({ \ ++ register int __res __asm__("r0"); \ ++ __res = INTERNAL_SYSCALL_NCS (__NR_##name, , nr_args, args); \ ++ if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P ((__res), ), 0)) \ ++ { \ ++ asm volatile ("st.a blink, [sp, -4] \n\t" \ ++ CALL_ERRNO_SETTER \ ++ "ld.ab blink, [sp, 4] \n\t" \ ++ :"+r" (__res) \ ++ : \ ++ :"r1","r2","r3","r4","r5","r6", \ ++ "r7","r8","r9","r10","r11","r12"); \ ++ } \ ++ __res; \ ++ }) ++ ++# undef INTERNAL_SYSCALL_DECL ++# define INTERNAL_SYSCALL_DECL(err) do { } while (0) ++ ++# undef INTERNAL_SYSCALL_ERRNO ++# define INTERNAL_SYSCALL_ERRNO(val, err) (-(val)) ++ ++/* -1 to -1023 are valid errno values. */ ++# undef INTERNAL_SYSCALL_ERROR_P ++# define INTERNAL_SYSCALL_ERROR_P(val, err) \ ++ ((unsigned int) (val) > -1024U) ++ ++# define ARC_TRAP_INSN "trap_s 0 \n\t" ++ ++# undef INTERNAL_SYSCALL_RAW ++# define INTERNAL_SYSCALL_RAW(name, err, nr_args, args...) \ ++ ({ \ ++ /* Per ABI, r0 is 1st arg and return reg. */ \ ++ register int __ret __asm__("r0"); \ ++ register int _sys_num __asm__("r8"); \ ++ \ ++ LOAD_ARGS_##nr_args (name, args) \ ++ \ ++ __asm__ volatile ( \ ++ ARC_TRAP_INSN \ ++ : "+r" (__ret) \ ++ : "r"(_sys_num) ASM_ARGS_##nr_args \ ++ : "memory"); \ ++__ret; \ ++}) ++ ++/* Macros for setting up inline __asm__ input regs. */ ++# define ASM_ARGS_0 ++# define ASM_ARGS_1 ASM_ARGS_0, "r" (__ret) ++# define ASM_ARGS_2 ASM_ARGS_1, "r" (_arg2) ++# define ASM_ARGS_3 ASM_ARGS_2, "r" (_arg3) ++# define ASM_ARGS_4 ASM_ARGS_3, "r" (_arg4) ++# define ASM_ARGS_5 ASM_ARGS_4, "r" (_arg5) ++# define ASM_ARGS_6 ASM_ARGS_5, "r" (_arg6) ++# define ASM_ARGS_7 ASM_ARGS_6, "r" (_arg7) ++ ++/* Macros for converting sys-call wrapper args into sys call args. */ ++# define LOAD_ARGS_0(nm, arg) \ ++ _sys_num = (int) (nm); ++ ++# define LOAD_ARGS_1(nm, arg1) \ ++ __ret = (int) (arg1); \ ++ LOAD_ARGS_0 (nm, arg1) ++ ++/* Note that the use of _tmpX might look superflous, however it is needed ++ to ensure that register variables are not clobbered if arg happens to be ++ a function call itself. e.g. sched_setaffinity() calling getpid() for arg2 ++ Also this specific order of recursive calling is important to segregate ++ the tmp args evaluation (function call case described above) and assigment ++ of register variables. */ ++ ++# define LOAD_ARGS_2(nm, arg1, arg2) \ ++ int _tmp2 = (int) (arg2); \ ++ LOAD_ARGS_1 (nm, arg1) \ ++ register int _arg2 __asm__ ("r1") = _tmp2; ++ ++# define LOAD_ARGS_3(nm, arg1, arg2, arg3) \ ++ int _tmp3 = (int) (arg3); \ ++ LOAD_ARGS_2 (nm, arg1, arg2) \ ++ register int _arg3 __asm__ ("r2") = _tmp3; ++ ++#define LOAD_ARGS_4(nm, arg1, arg2, arg3, arg4) \ ++ int _tmp4 = (int) (arg4); \ ++ LOAD_ARGS_3 (nm, arg1, arg2, arg3) \ ++ register int _arg4 __asm__ ("r3") = _tmp4; ++ ++# define LOAD_ARGS_5(nm, arg1, arg2, arg3, arg4, arg5) \ ++ int _tmp5 = (int) (arg5); \ ++ LOAD_ARGS_4 (nm, arg1, arg2, arg3, arg4) \ ++ register int _arg5 __asm__ ("r4") = _tmp5; ++ ++# define LOAD_ARGS_6(nm, arg1, arg2, arg3, arg4, arg5, arg6)\ ++ int _tmp6 = (int) (arg6); \ ++ LOAD_ARGS_5 (nm, arg1, arg2, arg3, arg4, arg5) \ ++ register int _arg6 __asm__ ("r5") = _tmp6; ++ ++# define LOAD_ARGS_7(nm, arg1, arg2, arg3, arg4, arg5, arg6, arg7)\ ++ int _tmp7 = (int) (arg7); \ ++ LOAD_ARGS_6 (nm, arg1, arg2, arg3, arg4, arg5, arg6) \ ++ register int _arg7 __asm__ ("r6") = _tmp7; ++ ++# undef INTERNAL_SYSCALL ++# define INTERNAL_SYSCALL(name, err, nr, args...) \ ++ INTERNAL_SYSCALL_RAW(SYS_ify(name), err, nr, args) ++ ++# undef INTERNAL_SYSCALL_NCS ++# define INTERNAL_SYSCALL_NCS(number, err, nr, args...) \ ++ INTERNAL_SYSCALL_RAW(number, err, nr, args) ++ ++/* Pointer mangling not yet supported. */ ++# define PTR_MANGLE(var) (void) (var) ++# define PTR_DEMANGLE(var) (void) (var) ++ ++#endif /* !__ASSEMBLER__ */ ++ ++#endif /* linux/arc/sysdep.h */ +diff --git a/sysdeps/unix/sysv/linux/arc/ucontext-macros.h b/sysdeps/unix/sysv/linux/arc/ucontext-macros.h +new file mode 100644 +index 0000000000..ed261399c9 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/arc/ucontext-macros.h +@@ -0,0 +1,29 @@ ++/* Macros for ucontext routines, ARC version. ++ Copyright (C) 2017-2019 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 ++ <http://www.gnu.org/licenses/>. */ ++ ++#ifndef _LINUX_ARC_UCONTEXT_MACROS_H ++#define _LINUX_ARC_UCONTEXT_MACROS_H ++ ++#include <sysdep.h> ++ ++#include "ucontext_i.h" ++ ++#define SAVE_REG(reg, rbase, off) st reg, [rbase, UCONTEXT_MCONTEXT + off * 4] ++#define LOAD_REG(reg, rbase, off) ld reg, [rbase, UCONTEXT_MCONTEXT + off * 4] ++ ++#endif +diff --git a/sysdeps/unix/sysv/linux/arc/ucontext_i.sym b/sysdeps/unix/sysv/linux/arc/ucontext_i.sym +new file mode 100644 +index 0000000000..d84e92f9f5 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/arc/ucontext_i.sym +@@ -0,0 +1,20 @@ ++#include <inttypes.h> ++#include <signal.h> ++#include <stddef.h> ++#include <sys/ucontext.h> ++ ++SIG_BLOCK ++SIG_SETMASK ++ ++-- sizeof(sigset_t) expected by kernel: see comment in ARC sigaction.c for details ++_NSIG8 (_NSIG / 8) ++ ++-- Offsets of the fields in the ucontext_t structure. ++#define ucontext(member) offsetof (ucontext_t, member) ++ ++UCONTEXT_FLAGS ucontext (__uc_flags) ++UCONTEXT_LINK ucontext (uc_link) ++UCONTEXT_STACK ucontext (uc_stack) ++UCONTEXT_MCONTEXT ucontext (uc_mcontext) ++UCONTEXT_SIGMASK ucontext (uc_sigmask) ++UCONTEXT_SIZE sizeof (ucontext_t) +diff --git a/sysdeps/unix/sysv/linux/arc/vfork.S b/sysdeps/unix/sysv/linux/arc/vfork.S +new file mode 100644 +index 0000000000..7f981d0681 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/arc/vfork.S +@@ -0,0 +1,42 @@ ++/* vfork for ARC Linux. ++ Copyright (C) 2005-2019 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 ++ <http://www.gnu.org/licenses/>. */ ++ ++#include <sys/syscall.h> ++#include <sysdep.h> ++#include <tcb-offsets.h> ++#define _SIGNAL_H ++#include <bits/signum.h> /* For SIGCHLD */ ++ ++#define CLONE_VM 0x00000100 ++#define CLONE_VFORK 0x00004000 ++#define CLONE_FLAGS_FOR_VFORK (CLONE_VM|CLONE_VFORK|SIGCHLD) ++ ++ENTRY (__vfork) ++ mov r0, CLONE_FLAGS_FOR_VFORK ++ mov_s r1, sp ++ mov r8, __NR_clone ++ ARC_TRAP_INSN ++ ++ cmp r0, 0 ++ jge [blink] ; child continues ++ ++ b __syscall_error ++PSEUDO_END (__vfork) ++libc_hidden_def (__vfork) ++ ++weak_alias (__vfork, vfork) +diff --git a/sysdeps/unix/sysv/linux/syscall-names.list b/sysdeps/unix/sysv/linux/syscall-names.list +index 36e087d8f4..60ecb263db 100644 +--- a/sysdeps/unix/sysv/linux/syscall-names.list ++++ b/sysdeps/unix/sysv/linux/syscall-names.list +@@ -41,6 +41,9 @@ adjtimex + afs_syscall + alarm + alloc_hugepages ++arc_gettls ++arc_settls ++arc_usr_cmpxchg + arch_prctl + arm_fadvise64_64 + arm_sync_file_range +diff --git a/timezone/zic.c b/timezone/zic.c +index 2ebc66a9af..8e8d94fac3 100644 +--- a/timezone/zic.c ++++ b/timezone/zic.c +@@ -39,7 +39,7 @@ typedef int_fast64_t zic_t; + #include <sys/stat.h> + #endif + #ifdef S_IRUSR +-#define MKDIR_UMASK (S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH) ++#define MKDIR_UMASK (S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH|S_IWOTH|S_IXOTH) + #else + #define MKDIR_UMASK 0755 + #endif +-- +2.20.1 + diff --git a/packages/glibc/2.31/chksum b/packages/glibc/2.31/chksum new file mode 100644 index 00000000..f6fc36d8 --- /dev/null +++ b/packages/glibc/2.31/chksum @@ -0,0 +1,12 @@ +md5 glibc-2.31.tar.xz 78a720f17412f3c3282be5a6f3363ec6 +sha1 glibc-2.31.tar.xz 55619672e5e13996e264d408949eb4aaa26e7ec8 +sha256 glibc-2.31.tar.xz 9246fe44f68feeec8c666bb87973d590ce0137cca145df014c72ec95be9ffd17 +sha512 glibc-2.31.tar.xz 735e4c0ef10418b6ea945ad3906585e5bbd8b282d76f2131309dce4cec6b15066a5e4a3731773ce428a819b542579c9957867bb0abf05ed2030983fca4412306 +md5 glibc-2.31.tar.bz2 10240bf74cf5320096778999e8d79774 +sha1 glibc-2.31.tar.bz2 487bf14fa22ab2317427f938f5a070cdc233077f +sha256 glibc-2.31.tar.bz2 d55e6f90fca44c74ac992d85eef1ec3c8407d6d622f851fede6128b4b217ac71 +sha512 glibc-2.31.tar.bz2 7d5e1c04bb2eab39245ddc1f6635c441438ef6fd43d8b7cdb5557afc278c7fadacce57b983d312c5c1f2d98f00464039e1448358bb3d21073eb651eaa74d4990 +md5 glibc-2.31.tar.gz 05930b2e4381d0c4d7a79f25d266ef4f +sha1 glibc-2.31.tar.gz 137aa0902c16fd7820de7b9b2fc9417d768c030c +sha256 glibc-2.31.tar.gz cb2d64fb808affff30d8a99a85de9d2aa67dc2cbac4ae99af4500d6cfea2bda7 +sha512 glibc-2.31.tar.gz 17cdd447459e20760e080be37f8624b3ba69b3c3f3d1f178ca7e2e400b34cc210553747210dd54ae7b527c7a35de11a5bc1564bd4bb6f09b810a4f981e7750fe diff --git a/packages/glibc/2.31/version.desc b/packages/glibc/2.31/version.desc new file mode 100644 index 00000000..441e8e67 --- /dev/null +++ b/packages/glibc/2.31/version.desc @@ -0,0 +1 @@ +# Released 1 August 2019 diff --git a/packages/glibc/package.desc b/packages/glibc/package.desc index 03a01b3d..6b722a7b 100644 --- a/packages/glibc/package.desc +++ b/packages/glibc/package.desc @@ -3,6 +3,6 @@ repository='git git://sourceware.org/git/glibc.git' mirrors='$(CT_Mirrors GNU glibc)' # Cannot use MAJOR.MINOR as the releant part because of 2.12: 2.12.2 was the most recent # bugfix release, but it didn't have glibc-ports released alongside it. -milestones='2.14 2.17 2.20 2.23 2.24 2.25 2.26 2.27 2.29 2.30' +milestones='2.14 2.17 2.20 2.23 2.24 2.25 2.26 2.27 2.28 2.29 2.30' archive_formats='.tar.xz .tar.bz2 .tar.gz' signature_format='packed/.sig' diff --git a/packages/gmp/6.2.0/chksum b/packages/gmp/6.2.0/chksum new file mode 100644 index 00000000..5cc5bad2 --- /dev/null +++ b/packages/gmp/6.2.0/chksum @@ -0,0 +1,12 @@ +md5 gmp-6.2.0.tar.xz a325e3f09e6d91e62101e59f9bda3ec1 +sha1 gmp-6.2.0.tar.xz 052a5411dc74054240eec58132d2cf41211d0ff6 +sha256 gmp-6.2.0.tar.xz 258e6cd51b3fbdfc185c716d55f82c08aff57df0c6fbd143cf6ed561267a1526 +sha512 gmp-6.2.0.tar.xz a066f0456f0314a1359f553c49fc2587e484ff8ac390ff88537266a146ea373f97a1c0ba24608bf6756f4eab11c9056f103c8deb99e5b57741b4f7f0ec44b90c +md5 gmp-6.2.0.tar.lz e3e08ac185842a882204ba3c37985127 +sha1 gmp-6.2.0.tar.lz 93450c3197ab93173bf8f21c4e48c12814f4e8a3 +sha256 gmp-6.2.0.tar.lz 3f33f127bcb6b2c3601676cd3281df45824b148cbf688b73c0fc8248793667d9 +sha512 gmp-6.2.0.tar.lz 9975e8766e62a1d48c0b6d7bbdd2fccb5b22243819102ca6c8d91f0edd2d3a1cef21c526d647c2159bb29dd2a7dcbd0d621391b2e4b48662cf63a8e6749561cd +md5 gmp-6.2.0.tar.bz2 c24161e0dd44cae78cd5f67193492a21 +sha1 gmp-6.2.0.tar.bz2 5e9341d3807bc7505376f9ed9f5c1c6c57050aa6 +sha256 gmp-6.2.0.tar.bz2 f51c99cb114deb21a60075ffb494c1a210eb9d7cb729ed042ddb7de9534451ea +sha512 gmp-6.2.0.tar.bz2 ff22ed47fff176ed56301ecab0213316150a3abb370fed031635804f829c878296d7c65597b1f687f394479eef04fae6eba771162f7d363dc4c94c7334fc1fc0 diff --git a/packages/linux/5.3.1/version.desc b/packages/gmp/6.2.0/version.desc index e69de29b..e69de29b 100644 --- a/packages/linux/5.3.1/version.desc +++ b/packages/gmp/6.2.0/version.desc diff --git a/packages/isl/0.20/chksum b/packages/isl/0.20/chksum index ed56d48f..8a46e109 100644 --- a/packages/isl/0.20/chksum +++ b/packages/isl/0.20/chksum @@ -1,3 +1,7 @@ +md5 isl-0.20.tar.xz 2ee25141b7d1688afb63e5bf3ac12999 +sha1 isl-0.20.tar.xz 1cb65006e8b047a52534e9a237748e56cfbd2754 +sha256 isl-0.20.tar.xz a5596a9fb8a5b365cb612e4b9628735d6e67e9178fae134a816ae195017e77aa +sha512 isl-0.20.tar.xz 394bccd22d8e63cb052a60ad8b1a75f4ec43916a9482c66f5167b534b538161179c47919815983b7fbc20dfaa1a590e88b251850aa092bbffc2891635bf30dc4 md5 isl-0.20.tar.bz2 cb396f31b24aeeac49840b519741b0e1 sha1 isl-0.20.tar.bz2 b1d96b7b44c72f86c98d4fbd4caaa7796b27681e sha256 isl-0.20.tar.bz2 b587e083eb65a8b394e833dea1744f21af3f0e413a448c17536b5549ae42a4c2 @@ -6,7 +10,3 @@ md5 isl-0.20.tar.gz 895cbb81d8552aa2d77108988035bdc4 sha1 isl-0.20.tar.gz 6a58edecadf8b45d6909a6eda05ac6cbeea20220 sha256 isl-0.20.tar.gz cf4ec18538df940ad5d5760af1246825cc58dd295241ab41d3f3962b24f55199 sha512 isl-0.20.tar.gz 24d3cb349d07a7f2f75c78593416470293d8027eee91ef8547a667222ed9ad91fc3d16a127a1988eefff3878accdf070c1b3aaff4e185dcb79503d8146f15b05 -md5 isl-0.20.tar.xz 2ee25141b7d1688afb63e5bf3ac12999 -sha1 isl-0.20.tar.xz 1cb65006e8b047a52534e9a237748e56cfbd2754 -sha256 isl-0.20.tar.xz a5596a9fb8a5b365cb612e4b9628735d6e67e9178fae134a816ae195017e77aa -sha512 isl-0.20.tar.xz 394bccd22d8e63cb052a60ad8b1a75f4ec43916a9482c66f5167b534b538161179c47919815983b7fbc20dfaa1a590e88b251850aa092bbffc2891635bf30dc4 diff --git a/packages/isl/0.21/chksum b/packages/isl/0.21/chksum index 80d91109..f64e8132 100644 --- a/packages/isl/0.21/chksum +++ b/packages/isl/0.21/chksum @@ -1,3 +1,7 @@ +md5 isl-0.21.tar.xz 12caf7eea20946c581ace61302b1c876 +sha1 isl-0.21.tar.xz 175111adaa8f6bda81a99ba9e200255a3b8075e2 +sha256 isl-0.21.tar.xz 777058852a3db9500954361e294881214f6ecd4b594c00da5eee974cd6a54960 +sha512 isl-0.21.tar.xz 87ebc2fd6d4325cdfa82295a659ed6dbd70760a776b733e5503bbf8baa8fe80d905879728e9c7f23d2f3bcd7e78c00a66ab166c013ae97b603f7c460c69668ec md5 isl-0.21.tar.bz2 e2be862b79d74234e468981bcae2a964 sha1 isl-0.21.tar.bz2 33e366d59d32330432b5c7f2d0c2fb6664eff224 sha256 isl-0.21.tar.bz2 d18ca11f8ad1a39ab6d03d3dcb3365ab416720fcb65b42d69f34f51bf0a0e859 @@ -6,7 +10,3 @@ md5 isl-0.21.tar.gz 9dbf0acdb92daaa83cb3db7d78eda713 sha1 isl-0.21.tar.gz a546644fa46f1703fe44ced8446ed2963f6d261b sha256 isl-0.21.tar.gz 6d670e6b90ef220c80f79e538aa512e9eda77214058d668c77931143dc9374a2 sha512 isl-0.21.tar.gz 37bc82352b37d57bd9df0279c54c59e4e0b73c982f6df956927e4ada3b8256c50b590b8ce70e5f6b53c9489fee3ae1c11d641c56250c5835f9ad0ebf5a70093f -md5 isl-0.21.tar.xz 12caf7eea20946c581ace61302b1c876 -sha1 isl-0.21.tar.xz 175111adaa8f6bda81a99ba9e200255a3b8075e2 -sha256 isl-0.21.tar.xz 777058852a3db9500954361e294881214f6ecd4b594c00da5eee974cd6a54960 -sha512 isl-0.21.tar.xz 87ebc2fd6d4325cdfa82295a659ed6dbd70760a776b733e5503bbf8baa8fe80d905879728e9c7f23d2f3bcd7e78c00a66ab166c013ae97b603f7c460c69668ec diff --git a/packages/isl/0.22/chksum b/packages/isl/0.22/chksum new file mode 100644 index 00000000..c4e26fd4 --- /dev/null +++ b/packages/isl/0.22/chksum @@ -0,0 +1,12 @@ +md5 isl-0.22.tar.xz ce103a7924ef31f1ff47b7ac868f434b +sha1 isl-0.22.tar.xz 8805573d4b501919553ce3b90f3c88392ac09a02 +sha256 isl-0.22.tar.xz 6c8bc56c477affecba9c59e2c9f026967ac8bad01b51bdd07916db40a517b9fa +sha512 isl-0.22.tar.xz 7c3c9502ea07e4d47a823841837c3aa0b9d7ba0fe58deaf180734e44c18e53735ec783645da0bdc56b617c9e639b226cc03b40a947f852e1e787166a64f59424 +md5 isl-0.22.tar.bz2 4e6b2a1dd20b2ac011730a24580ff7a9 +sha1 isl-0.22.tar.bz2 059980e763ddc968e021dc4a216e8328839ea362 +sha256 isl-0.22.tar.bz2 b21d354acd613a91cb88328753ec3aaeb174d6af042d89c5fcf3bbcced370751 +sha512 isl-0.22.tar.bz2 fc2c9796979610dd51143dcefe4f5c989c4354571cc5a1fcc6b932fd41f42a54f6b43adfd289af61be7bd06f3a523fa6a7d7ee56680e32d8036beb4c188fa668 +md5 isl-0.22.tar.gz 671d0a5e10467a5c6db0893255278845 +sha1 isl-0.22.tar.gz 58abf76ef3e3b0892c93606021b2f9681477c4b9 +sha256 isl-0.22.tar.gz d0c6714e4427d3eb964388afe526a8e0f69687da7e944f1ad66ffa639923be46 +sha512 isl-0.22.tar.gz 5e5c65268301e1416789f2a7ee6e5f26a43135de69a3dafc4592ae69ebb572222f1155ffeb7cec6f46984553051cad5fcad83d4eae26b3a0f6cd5e794f7929b3 diff --git a/packages/isl/0.22/version.desc b/packages/isl/0.22/version.desc new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/packages/isl/0.22/version.desc diff --git a/packages/libelf/package.desc b/packages/libelf/package.desc index 52e514f3..f7648d96 100644 --- a/packages/libelf/package.desc +++ b/packages/libelf/package.desc @@ -1,5 +1,5 @@ # FIXME No public repository and no new releases. # Consider switching to/adding project elftoolchain? -mirrors='http://www.mr511.de/software https://fossies.org/linux/misc/old' +mirrors='https://fossies.org/linux/misc/old' relevantpattern='*.*|.' archive_formats='.tar.gz' diff --git a/packages/linux/3.16.74/chksum b/packages/linux/3.16.74/chksum deleted file mode 100644 index 7d0ff56d..00000000 --- a/packages/linux/3.16.74/chksum +++ /dev/null @@ -1,8 +0,0 @@ -md5 linux-3.16.74.tar.xz a6a844c694b12d376dac398e447ca709 -sha1 linux-3.16.74.tar.xz b537d583b4e9f65451bf3c23e13c911ddfd40320 -sha256 linux-3.16.74.tar.xz 474409b745fe77f8d87c283a37e4ce6556508ac513734ed88914386bb390ad56 -sha512 linux-3.16.74.tar.xz 7e8993b0456adff7860be9460bdae4380d9d30e7d790fc9b335ffa6229776f8401fb512b95b0b82c2ed7d7db65518b7ea1aab3de815357cbff75a2afdfbf12e4 -md5 linux-3.16.74.tar.gz fb1e354f42035ab055979124d5f7c4ab -sha1 linux-3.16.74.tar.gz 34667ba26f5302ffb3eda15b49b3ce65b37b6ba3 -sha256 linux-3.16.74.tar.gz 8c655087f35f9dee033e6763ca9766615a172e0f4ecb6c77f2ae6863ff072a0a -sha512 linux-3.16.74.tar.gz 2d64577f95ce9046ec0fd06daca08180d043f637b2c5772254c2ad125270ec51b438cdbb86db6f0b5c4cec77f36cf9042f200dbe52b57f9a3ad6f7511ebc01dd diff --git a/packages/linux/3.16.82/chksum b/packages/linux/3.16.82/chksum new file mode 100644 index 00000000..9b48cd8d --- /dev/null +++ b/packages/linux/3.16.82/chksum @@ -0,0 +1,8 @@ +md5 linux-3.16.82.tar.xz 57293a3d19b9c169955621696524ffb6 +sha1 linux-3.16.82.tar.xz 6506661cbeb99e585e07e3c0a24d228b197f8a80 +sha256 linux-3.16.82.tar.xz 7211900eb429e95ee9a49b58976dc091fc7329909f3bd556e5185d9856890a77 +sha512 linux-3.16.82.tar.xz 1027feb141d8785ccfd1110a742c9b57587d7d1e68ef0bc7a42a5aa90d94694cd6c282e87a1a5e302ea9fdcd41ebf58332d50890f30c55037079cf09137e27b7 +md5 linux-3.16.82.tar.gz 5a82450480241a4291c61b1399db2f37 +sha1 linux-3.16.82.tar.gz 75dc19c093ec5ecda37367f2b9070dc4d5934cf1 +sha256 linux-3.16.82.tar.gz ce5fe5e4769f6c1af1a5594786cf55b18d74b9a6125d45b3ef84ee6ce25504f7 +sha512 linux-3.16.82.tar.gz 48cfef6926901264f522305987059fa62985732ba9c91cb3972ebee625857540830b10b8a9a31fc2b70a21140e175121d19899fcb86a5182356884120827fc0f diff --git a/packages/linux/3.16.82/version.desc b/packages/linux/3.16.82/version.desc new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/packages/linux/3.16.82/version.desc diff --git a/packages/linux/4.14.146/chksum b/packages/linux/4.14.146/chksum deleted file mode 100644 index 3e83b230..00000000 --- a/packages/linux/4.14.146/chksum +++ /dev/null @@ -1,8 +0,0 @@ -md5 linux-4.14.146.tar.xz d55e9c282ff19a9ded75d4c3746c604e -sha1 linux-4.14.146.tar.xz c2dfd7d67ad0e005433fe1954f23f529d642528c -sha256 linux-4.14.146.tar.xz a3c54b887ea3e679382bd4c0536e6a281b071dab2258bd3ee8af75baef2023f5 -sha512 linux-4.14.146.tar.xz abdc0693f85e1ce109794bb0302ae69571226fb73799948f8359dd5c2bee0d79f54120b6a05d2b1b6b8cd74fc115861289c7ed8fe91a92f4da2cb5a3201a627a -md5 linux-4.14.146.tar.gz e0fdecd5d7ee3e88bb6bdff4dc668d19 -sha1 linux-4.14.146.tar.gz d40ebe36c768a468deb20f56e3bcd158c007b9ff -sha256 linux-4.14.146.tar.gz d88eaf9c4be24a30198415032c157c07e05e8b1a1b4f35589359d196461830c0 -sha512 linux-4.14.146.tar.gz 04ec160f49e97e8f0a5ceded1fd72e9cbf68b7ab4a82d58bc03ea8e8a8d165dca149489923b7934c438bba20d8133e73335a2e1fd818d663c2dd060482d086f8 diff --git a/packages/linux/4.14.171/chksum b/packages/linux/4.14.171/chksum new file mode 100644 index 00000000..9d49d9e9 --- /dev/null +++ b/packages/linux/4.14.171/chksum @@ -0,0 +1,8 @@ +md5 linux-4.14.171.tar.xz b9b2c64eb3ae7fa6023d2b8c981b5ac4 +sha1 linux-4.14.171.tar.xz 6ef4629c9ab5be9078f8206f3fd1539b7bbadfe2 +sha256 linux-4.14.171.tar.xz 4fe02489e4b4a187eccf0ef87df6100534c9d485e76d876b1fa247c7635332a0 +sha512 linux-4.14.171.tar.xz 681a39674609317c7571dbedeadffee6e1b7ac11be25cc887012b507925306eae04aa93b4fb5b6e3207cfffce0972c0b772068a2ab72393d771446dc981dccac +md5 linux-4.14.171.tar.gz b1508924bc661ccf3367e76e131ba8f5 +sha1 linux-4.14.171.tar.gz 3ec3922b43e23cdc31a39ed3a5602baaec4ecd6c +sha256 linux-4.14.171.tar.gz 8c46e833b4ff2bd2d4f35472e55f82c677d84d2373dbbfa6400825e7ced60663 +sha512 linux-4.14.171.tar.gz cb55c4e76543189ee0a9c98eeeca4b46cf3f6ec168dcb5f4d34298b77049fa60efa5517e30a2841c9b75f87461ecba69cac69ec2371a3d47b8e8fb89a9d79369 diff --git a/packages/linux/4.14.171/version.desc b/packages/linux/4.14.171/version.desc new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/packages/linux/4.14.171/version.desc diff --git a/packages/linux/4.19.105/chksum b/packages/linux/4.19.105/chksum new file mode 100644 index 00000000..b4ef666d --- /dev/null +++ b/packages/linux/4.19.105/chksum @@ -0,0 +1,8 @@ +md5 linux-4.19.105.tar.xz 960073de540e54312c81750f74231983 +sha1 linux-4.19.105.tar.xz 5b60fff574de613876165cbb10da41efe3381308 +sha256 linux-4.19.105.tar.xz f82c778ab404feb3dce6c08bff089fe2e1d86b62fc40cf2950112ea7aa22bf12 +sha512 linux-4.19.105.tar.xz 32dc4eb8b535af3a3998a8d4fca4d1b47d1a09fdb324d18e70b4098d7431d836d3c6449cbf07d4b5188ba07bfafa0c2f91ec875b369676f208a25f45d40f64c1 +md5 linux-4.19.105.tar.gz 17ed120e3d0c61fb7cc828b7d9203cd8 +sha1 linux-4.19.105.tar.gz aa445ccbe1c12626cb8a1160572c0dabd596048a +sha256 linux-4.19.105.tar.gz 2253ee8fd3c2b587b6af0410875160f48472be21aa0f76c9e4caa329cbe4e09d +sha512 linux-4.19.105.tar.gz 24f05ffbacac2d43f4cc5068e98cd8621218d327c81872dd7c3f3c91503b7534b2a6a33be0b35fd9fa054511d3d96f8962b8926199b993aa29fc28b776b92574 diff --git a/packages/linux/4.19.105/version.desc b/packages/linux/4.19.105/version.desc new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/packages/linux/4.19.105/version.desc diff --git a/packages/linux/4.19.75/chksum b/packages/linux/4.19.75/chksum deleted file mode 100644 index f514f46b..00000000 --- a/packages/linux/4.19.75/chksum +++ /dev/null @@ -1,8 +0,0 @@ -md5 linux-4.19.75.tar.xz 119378025b0a17e25269d44a21cc766c -sha1 linux-4.19.75.tar.xz 3433e69d3be9438867e0185fb27c1c417251918e -sha256 linux-4.19.75.tar.xz dd5e7147e1e4501560fba5beb86dae6bf6ba843518ab3d4cad283de77b651b78 -sha512 linux-4.19.75.tar.xz f8830ab02523df74325cd6b3dc0250970e68c9f686a6874bc4eef11b18162dd5dd7315db2cd11aeea7f1667546149e46842150a1d11121fa8cfbb04df9db4583 -md5 linux-4.19.75.tar.gz bc6f2e6d90752df4bb350a0fe62f8894 -sha1 linux-4.19.75.tar.gz 6e15b4240c22b10864bde6791286878fbeed2471 -sha256 linux-4.19.75.tar.gz 133009321f994ceb0b6c73176b3b4c3e9e3f6a7223e0c7b4f2a7ec301897a347 -sha512 linux-4.19.75.tar.gz b108099c6f7dbee921de3e48df19ef1feebfcb7f08427267d6cfd632664d746334775bba35ceabe1028bcbdd00d28808980c4685255f2b9705e03f7fcc2e8764 diff --git a/packages/linux/4.4.194/chksum b/packages/linux/4.4.194/chksum deleted file mode 100644 index c854610c..00000000 --- a/packages/linux/4.4.194/chksum +++ /dev/null @@ -1,8 +0,0 @@ -md5 linux-4.4.194.tar.xz 1511ed3daf0f638711be43c9d9c1b436 -sha1 linux-4.4.194.tar.xz c3b7ce03ea4ebe49c4ee151c82e1ddeec9779d77 -sha256 linux-4.4.194.tar.xz 7f63e893f1a178c25646a302ae7425423a3f1b72fc5d6895a2716e4bb6b8744f -sha512 linux-4.4.194.tar.xz 0ceb04034d1cd096685f6f9e76ad0a7c85c5ad2d716ea3974f300f03cfb477a1e0e1c35d78f28bd48d9a96af127a02c12e3b6734842086260579e9199f3fbcf3 -md5 linux-4.4.194.tar.gz 193efa3eedc5bc77aa8133a407918319 -sha1 linux-4.4.194.tar.gz 2d4de1f52f3fae0bac0abccf0b4c525a64219bcc -sha256 linux-4.4.194.tar.gz 940b4a0ec5393f4e57c2fc18cecd2ef87f24d867d1f3542e68ae134b73209761 -sha512 linux-4.4.194.tar.gz 0091cd8a2ba116a2a598be8b1ad67759d0458cf728157ee367cf85d03e444fa011028f1a56976e57231d9d0effcf0a61d895ba9cca3ce83106cd2fdf928cb5fa diff --git a/packages/linux/4.4.214/chksum b/packages/linux/4.4.214/chksum new file mode 100644 index 00000000..0422eecf --- /dev/null +++ b/packages/linux/4.4.214/chksum @@ -0,0 +1,8 @@ +md5 linux-4.4.214.tar.xz 2554c06f3c522bea41251b18884d62e8 +sha1 linux-4.4.214.tar.xz a859fe318e245aa2f723c26835f4e655fd16f847 +sha256 linux-4.4.214.tar.xz b6aa65ee2c0767864175e3a9cf7b0b3751263b04a7c8a6e760e9b982282fa76c +sha512 linux-4.4.214.tar.xz 959112fe5f8ab8e6fe8c0e84ca47e5134967dc3f2cd64fbc940cdfcf4ccbfed3acf7aef60a9dd8eac1407ac3e87020630ad71efceced1d0bac1c1b75a62c49f2 +md5 linux-4.4.214.tar.gz 32bd03b0527dcfbaac2794a7a2461206 +sha1 linux-4.4.214.tar.gz d82f3b9777e0322c0413b1fe2028539eca9501e0 +sha256 linux-4.4.214.tar.gz dde034590830f8ba0d78e837379be801c387200beebc646f5f5008c5315adc0e +sha512 linux-4.4.214.tar.gz de89a3b0fabf2e702625d8a786cd9cd086050f9057358b704078e9cb3876d5ce66cb86c94df55fc3344c3efa0a4b74498c9c5cff7c7be61729010ac693e5fd47 diff --git a/packages/linux/4.4.194/version.desc b/packages/linux/4.4.214/version.desc index 7d5188ff..7d5188ff 100644 --- a/packages/linux/4.4.194/version.desc +++ b/packages/linux/4.4.214/version.desc diff --git a/packages/linux/4.9.194/chksum b/packages/linux/4.9.194/chksum deleted file mode 100644 index b2aaba9d..00000000 --- a/packages/linux/4.9.194/chksum +++ /dev/null @@ -1,8 +0,0 @@ -md5 linux-4.9.194.tar.xz 9100d5dcad93bb66bd3a0e9a7fcaead3 -sha1 linux-4.9.194.tar.xz daa02c61ce7b47e6f92095bbbb40c423536bfb1d -sha256 linux-4.9.194.tar.xz d5f4bb7584e461f1faa9a3f94c2ad292246fe692b0e992e072dac255f806c2e3 -sha512 linux-4.9.194.tar.xz 6a2b525e94d89bd9ee9987a7551f24205cc98e1a8ddad8531eb1b3aeb034e1072aca357e57fd2a796c4038bf3525f6a49696d181d977a295840b09c745839ec8 -md5 linux-4.9.194.tar.gz 9458de3eb994a0ff7167237c7ff22b98 -sha1 linux-4.9.194.tar.gz 33197368b70076b24ed52d813e0f205dbca6b2b3 -sha256 linux-4.9.194.tar.gz 6028e577c3037273418aac2b86f992b1459b245687e9195f5df8b46d3b62b96d -sha512 linux-4.9.194.tar.gz 30dd70482e8fa10bb78fd3ad2da1a6f38646bde8599ec61ac1a3fc52f69964300d4463fe976590c74d8349019a5de12424e42a25353cc73d0152b7b30cfed229 diff --git a/packages/linux/4.9.214/chksum b/packages/linux/4.9.214/chksum new file mode 100644 index 00000000..ad815094 --- /dev/null +++ b/packages/linux/4.9.214/chksum @@ -0,0 +1,8 @@ +md5 linux-4.9.214.tar.xz d0918e3ea80d03457a536b9b382df7f1 +sha1 linux-4.9.214.tar.xz 40fbbe2606f486223fd5cad15b9e7fd6d9845bac +sha256 linux-4.9.214.tar.xz b47f093dac7034c7c4722e80042c05e4ef53c14a4f28aa992117a127d2b1e483 +sha512 linux-4.9.214.tar.xz bc11a45a0235e29647087c848ea660e0367f0ca6b6f360621a65f59d411aedfee14372116a7f3f105a9d12d057cea2bbda412d1df2afc17d28be0399057a2850 +md5 linux-4.9.214.tar.gz 5aa2edd29658d98b63a6d94797d24db2 +sha1 linux-4.9.214.tar.gz 21d7791562a919ba3a2b6d28b9d5fd267239b1b5 +sha256 linux-4.9.214.tar.gz b76e7d02ee1251cfc7b1577738f038f2d99813b02c8eca27f0671cdc6837f7be +sha512 linux-4.9.214.tar.gz c54da65d1b6ccad76e9d4d42a18687ac29eee0be1febd5f1885c42666300b924f6751c9d98f8415c9c6e656bb836a436aa36562efe3c9ec719594484228521b8 diff --git a/packages/linux/4.9.214/version.desc b/packages/linux/4.9.214/version.desc new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/packages/linux/4.9.214/version.desc diff --git a/packages/linux/5.3.1/chksum b/packages/linux/5.3.1/chksum deleted file mode 100644 index adc98c6b..00000000 --- a/packages/linux/5.3.1/chksum +++ /dev/null @@ -1,8 +0,0 @@ -md5 linux-5.3.1.tar.xz 4c68633ce304b8fbc7be2d3452060c11 -sha1 linux-5.3.1.tar.xz aab70d4145f188e7f9a04d8714cec9d87341b184 -sha256 linux-5.3.1.tar.xz 9890b5a909d316211d045a95f5f0680e39749f2319cb26d7cd067efaa692f858 -sha512 linux-5.3.1.tar.xz 7aa3dbcd17fe373f8bd0b463c78db668ebbf4830e3c4227726161accec4e11ece946c753d4c01ad2a5f76d8d14878d71bc37ad261a0879d27046f19e7b4d0536 -md5 linux-5.3.1.tar.gz c0b7c5633752418d462218bf8e10e88a -sha1 linux-5.3.1.tar.gz 4d9dcdae7cf3a7c2304b2d7b7440443be8d39562 -sha256 linux-5.3.1.tar.gz 8ebc7c9d27c087bad25e9c6a1cf806aaeca5fb419aca8356d06a165b2873076d -sha512 linux-5.3.1.tar.gz a715507dd3a171c19e4ab8ea498f15b4fec05ee5cddafac831bfd7b4a8f1bdc0926accde5fd26c01417ab4eff112a23b2ab093a3c3c044970904e2bfdf8afffe diff --git a/packages/linux/5.3.18/chksum b/packages/linux/5.3.18/chksum new file mode 100644 index 00000000..c30382f7 --- /dev/null +++ b/packages/linux/5.3.18/chksum @@ -0,0 +1,8 @@ +md5 linux-5.3.18.tar.xz 476a951b344356dc6f459bed4a6e9eb2 +sha1 linux-5.3.18.tar.xz 8d8c74a35bcecd8ec4352f83e2efefcb99f3f90a +sha256 linux-5.3.18.tar.xz 20f14917c4f33122cfa12963a7d3180fe6f4685cacfe984553b2b5b4ad20638c +sha512 linux-5.3.18.tar.xz 77337ef9830758febb47e5ff197d40b9ff8ae76f71935e0e6351345c08f8407909f01dd9f052684080f5fec4f2e38d846ac28845d92913f14223d10439d9779c +md5 linux-5.3.18.tar.gz fef76132f0732b8f251ae606d1990fcb +sha1 linux-5.3.18.tar.gz 12d18ea7b4726fb2fc1e432239be066567eaaeb8 +sha256 linux-5.3.18.tar.gz 938f598049750d8a15c252c85c7c6dd8943c1ee0b62c144e3938dd091b95b6db +sha512 linux-5.3.18.tar.gz f9daa7ab8b07f11747ec7b260a1ecbf4b6761014edfeb52b150935fe39e9aeb34d4583ecca9fbcaa913e3f6af00e85bcc4fa5344f6fc4f8d83e93fa77b5474cc diff --git a/packages/linux/5.3.18/version.desc b/packages/linux/5.3.18/version.desc new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/packages/linux/5.3.18/version.desc diff --git a/packages/linux/5.4.21/chksum b/packages/linux/5.4.21/chksum new file mode 100644 index 00000000..af8d65ed --- /dev/null +++ b/packages/linux/5.4.21/chksum @@ -0,0 +1,8 @@ +md5 linux-5.4.21.tar.xz 0c458def17ddd8e26795c343e15a3023 +sha1 linux-5.4.21.tar.xz 5bf514cbdb4a53279d65e4d5520be66800fe3323 +sha256 linux-5.4.21.tar.xz 6d23724e92c6a012a5cbb0deafdff81bdc03f6f9295e36259164cd431e465bfa +sha512 linux-5.4.21.tar.xz 816e0acc3be5ab5614f573fea6749fb3e2bd260753f97129882455875b60faf2cf1bee949e5920e11a05052e8ea845a94a922ea6ab4e9097594b2f468bd8d75a +md5 linux-5.4.21.tar.gz e404d1446058aa271f717f07d3fb9d90 +sha1 linux-5.4.21.tar.gz 340b5ab0f03673351c84d3f0813e815f8d50f6d9 +sha256 linux-5.4.21.tar.gz 04c762ba97963545cb459bb90bdc0fa42c65ef147d9182575c2c90bc671e31bf +sha512 linux-5.4.21.tar.gz 681d3b68543778326d836194963b7dea55b525175f2ee74825e6e050c9bb7fb345cdb894f2ac226d7330d8cdb375d7f8d2184b3bccd5e09591f3c30372383d51 diff --git a/packages/linux/5.4.21/version.desc b/packages/linux/5.4.21/version.desc new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/packages/linux/5.4.21/version.desc diff --git a/packages/linux/5.5.5/chksum b/packages/linux/5.5.5/chksum new file mode 100644 index 00000000..31285acb --- /dev/null +++ b/packages/linux/5.5.5/chksum @@ -0,0 +1,8 @@ +md5 linux-5.5.5.tar.xz 3901498f9d38e355bc2670eb3f05a160 +sha1 linux-5.5.5.tar.xz 3dd7fe170c84a342ad1db8ae6742276e2eb88303 +sha256 linux-5.5.5.tar.xz 7ac07bc03f2d159f924d25a79df07d1a115a13f44f67455511d3c84c15ac5087 +sha512 linux-5.5.5.tar.xz 2d0ed596509546169d0e0d46c23e10920e6b565178e044fe57b68b7ff0ec5c613bb090105affc74e5bcacda36f8c8a49c269017e90dd7145f58e9359707f35d1 +md5 linux-5.5.5.tar.gz f464a9459ab811ede1e4eded51e5b53d +sha1 linux-5.5.5.tar.gz 38903c3b13e79f5ef07330f1e87b0e67434fdfa7 +sha256 linux-5.5.5.tar.gz 2c5de9dc0ae49d6d5550e4007ffc6c3aec193666c1299fce2b05659f5a109eac +sha512 linux-5.5.5.tar.gz 023c5ddd1e23961eb430a31470b75c0cb64ab8f0c8e845d76f7e4cfee40d0925e8122c243d3f2a5d7696b74a07f6dba36d9ffea57c9471d066adb11fb5a046e4 diff --git a/packages/linux/5.5.5/version.desc b/packages/linux/5.5.5/version.desc new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/packages/linux/5.5.5/version.desc diff --git a/packages/make/3.81/version.desc b/packages/make/3.81/version.desc index fcfe3891..f26b5a26 100644 --- a/packages/make/3.81/version.desc +++ b/packages/make/3.81/version.desc @@ -1 +1,2 @@ obsolete='yes' +archive_formats='.tar.bz2 .tar.gz' diff --git a/packages/make/4.0/version.desc b/packages/make/4.0/version.desc index fcfe3891..f26b5a26 100644 --- a/packages/make/4.0/version.desc +++ b/packages/make/4.0/version.desc @@ -1 +1,2 @@ obsolete='yes' +archive_formats='.tar.bz2 .tar.gz' diff --git a/packages/make/4.1/version.desc b/packages/make/4.1/version.desc index fcfe3891..f26b5a26 100644 --- a/packages/make/4.1/version.desc +++ b/packages/make/4.1/version.desc @@ -1 +1,2 @@ obsolete='yes' +archive_formats='.tar.bz2 .tar.gz' diff --git a/packages/make/4.2.1/version.desc b/packages/make/4.2.1/version.desc index e69de29b..30f929c4 100644 --- a/packages/make/4.2.1/version.desc +++ b/packages/make/4.2.1/version.desc @@ -0,0 +1,2 @@ + +archive_formats='.tar.bz2 .tar.gz' diff --git a/packages/make/4.3/chksum b/packages/make/4.3/chksum new file mode 100644 index 00000000..8cc9b994 --- /dev/null +++ b/packages/make/4.3/chksum @@ -0,0 +1,8 @@ +md5 make-4.3.tar.lz d5c40e7bd1e97a7404f5d3be982f479a +sha1 make-4.3.tar.lz c72bc87715fcdf8c1e2efab84c254aac69615f7b +sha256 make-4.3.tar.lz de1a441c4edf952521db30bfca80baae86a0ff1acd0a00402999344f04c45e82 +sha512 make-4.3.tar.lz ddf0fdcb9ee1b182ef294c5da70c1275288c99bef60e63a25c0abed2ddd44aba1770be4aab1db8cac81e5f624576f2127c5d825a1824e1c7a49df4f16445526b +md5 make-4.3.tar.gz fc7a67ea86ace13195b0bce683fd4469 +sha1 make-4.3.tar.gz 3c40e5b49b893dbb14f1e2e1f8fe89b7298cc51d +sha256 make-4.3.tar.gz e05fdde47c5f7ca45cb697e973894ff4f5d79e13b750ed57d7b66d8defc78e19 +sha512 make-4.3.tar.gz 9a1185cc468368f4ec06478b1cfa343bf90b5cd7c92c0536567db0315b0ee909af53ecce3d44cfd93dd137dbca1ed13af5713e8663590c4fdd21ea635d78496b diff --git a/packages/make/4.3/version.desc b/packages/make/4.3/version.desc new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/packages/make/4.3/version.desc diff --git a/packages/make/package.desc b/packages/make/package.desc index 086a84a3..c82c5160 100644 --- a/packages/make/package.desc +++ b/packages/make/package.desc @@ -2,6 +2,6 @@ repository='git https://git.savannah.gnu.org/git/make.git' bootstrap='autoreconf -i' mirrors='$(CT_Mirrors GNU make)' relevantpattern='*.*|.' -archive_formats='.tar.bz2 .tar.gz' +archive_formats='.tar.lz .tar.gz' signature_format='packed/.sig' milestones='4.0' diff --git a/packages/mingw-w64/v7.0.0/0000-mingw64-malloc.patch b/packages/mingw-w64/v7.0.0/0000-mingw64-malloc.patch new file mode 100644 index 00000000..f19e8ce5 --- /dev/null +++ b/packages/mingw-w64/v7.0.0/0000-mingw64-malloc.patch @@ -0,0 +1,58 @@ +--- + mingw-w64-tools/genidl/src/genidl_cfg.h | 2 ++ + mingw-w64-tools/genidl/src/genidl_typinfo.c | 3 +++ + mingw-w64-tools/widl/include/pathtools.h | 3 +-- + mingw-w64-tools/widl/src/pathtools.c | 3 +-- + 4 files changed, 7 insertions(+), 4 deletions(-) + +--- a/mingw-w64-tools/genidl/src/genidl_cfg.h ++++ b/mingw-w64-tools/genidl/src/genidl_cfg.h +@@ -26,7 +26,9 @@ + #include <stdio.h> + #include <stdlib.h> + #include <string.h> ++#if defined(HAVE_MALLOC_H) + #include <malloc.h> ++#endif + #include <memory.h> + #include <stdarg.h> + #include <stdint.h> +--- a/mingw-w64-tools/genidl/src/genidl_typinfo.c ++++ b/mingw-w64-tools/genidl/src/genidl_typinfo.c +@@ -21,7 +21,10 @@ + #include "genidl_cfg.h" + #include "genidl_typeinfo.h" + #include "genidl_typinfo.h" ++#if defined(HAVE_MALLOC_H) + #include <malloc.h> ++#endif ++#include <stdlib.h> + #include <string.h> + #include <memory.h> + +--- a/mingw-w64-tools/widl/include/pathtools.h ++++ b/mingw-w64-tools/widl/include/pathtools.h +@@ -12,9 +12,8 @@ + #define PATHTOOLS_H + + #include <unistd.h> +-#if defined(__APPLE__) + #include <stdlib.h> +-#else ++#if defined(HAVE_MALLOC_H) + #include <malloc.h> + #endif + #include <stdio.h> +--- a/mingw-w64-tools/widl/src/pathtools.c ++++ b/mingw-w64-tools/widl/src/pathtools.c +@@ -8,9 +8,8 @@ + .email: <mingw.android@gmail.com>. + */ + +-#if defined(__APPLE__) + #include <stdlib.h> +-#else ++#if defined(HAVE_MALLOC_H) + #include <malloc.h> + #endif + #include <limits.h> diff --git a/packages/mingw-w64/v7.0.0/chksum b/packages/mingw-w64/v7.0.0/chksum new file mode 100644 index 00000000..2b6512d3 --- /dev/null +++ b/packages/mingw-w64/v7.0.0/chksum @@ -0,0 +1,8 @@ +md5 mingw-w64-v7.0.0.tar.bz2 7cd9b09be0b2c658ce200c4c43b59b27 +sha1 mingw-w64-v7.0.0.tar.bz2 25940043c4541e3e59608dead9b6f75b5596d606 +sha256 mingw-w64-v7.0.0.tar.bz2 aa20dfff3596f08a7f427aab74315a6cb80c2b086b4a107ed35af02f9496b628 +sha512 mingw-w64-v7.0.0.tar.bz2 30e5b2824a24eeb99ab519e3fc134cc9a7f04ee8b853bc8d66a13d1ab74144bf78b93e162bfe6de2a5e61f63c0e620a933b260b02d019cd68cc4b78bd36c67fd +md5 mingw-w64-v7.0.0.zip f4269db21454e8beb5e02bff6eb74166 +sha1 mingw-w64-v7.0.0.zip c7ae701f1f9f1cc66c363bff3ac2b5eb23d134ef +sha256 mingw-w64-v7.0.0.zip 2be66db487c59875381b5f5720228230a7b996485778e77d19d819473f048de6 +sha512 mingw-w64-v7.0.0.zip 1f5ea3c63dec53e0515d33bcae0ac0aa11eeb62ecbd3b6ca4efb1d1af425876bfc7909a39c11bdc0332f1f610d5592705c3c6b3bdbe510624bb7f9b4ecd925e0 diff --git a/packages/mingw-w64/v7.0.0/version.desc b/packages/mingw-w64/v7.0.0/version.desc new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/packages/mingw-w64/v7.0.0/version.desc diff --git a/packages/musl/1.1.24/chksum b/packages/musl/1.1.24/chksum new file mode 100644 index 00000000..707392cd --- /dev/null +++ b/packages/musl/1.1.24/chksum @@ -0,0 +1,4 @@ +md5 musl-1.1.24.tar.gz 2ac378736ea749b073a3795abb095329 +sha1 musl-1.1.24.tar.gz b0b5ddf6b65355ac02e2f11c3d262ac5dcf0bab5 +sha256 musl-1.1.24.tar.gz 1370c9a812b2cf2a7d92802510cca0058cc37e66a7bedd70051f0a34015022a3 +sha512 musl-1.1.24.tar.gz 8987f1e194ea616f34f4f21fe9def28fb7f81d7060e38619206c6349f79db3bbb76bae8b711f5f9b8ed038799c9aea1a4cbec69e0bc4131e246203e133149e77 diff --git a/packages/musl/1.1.24/version.desc b/packages/musl/1.1.24/version.desc new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/packages/musl/1.1.24/version.desc diff --git a/packages/ncurses/6.2/chksum b/packages/ncurses/6.2/chksum new file mode 100644 index 00000000..f95bbb94 --- /dev/null +++ b/packages/ncurses/6.2/chksum @@ -0,0 +1,4 @@ +md5 ncurses-6.2.tar.gz e812da327b1c2214ac1aed440ea3ae8d +sha1 ncurses-6.2.tar.gz 56e410fb77f2b5501a0b2f6a995376f3cefe1097 +sha256 ncurses-6.2.tar.gz 30306e0c76e0f9f1f0de987cf1c82a5c21e1ce6568b9227f7da5b71cbea86c9d +sha512 ncurses-6.2.tar.gz 4c1333dcc30e858e8a9525d4b9aefb60000cfc727bc4a1062bace06ffc4639ad9f6e54f6bdda0e3a0e5ea14de995f96b52b3327d9ec633608792c99a1e8d840d diff --git a/packages/ncurses/6.2/version.desc b/packages/ncurses/6.2/version.desc new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/packages/ncurses/6.2/version.desc diff --git a/packages/newlib/3.2.0/0000-fix-unaligned-access-memcpy-m68k.patch b/packages/newlib/3.2.0/0000-fix-unaligned-access-memcpy-m68k.patch new file mode 100644 index 00000000..b6709d5a --- /dev/null +++ b/packages/newlib/3.2.0/0000-fix-unaligned-access-memcpy-m68k.patch @@ -0,0 +1,25 @@ +The m68k mcpu processor does not like unaligned access + +Disable at least mcpu32, m68010 and m68020. These processors certainly +do not like unaligned accesses. + +Signed-off-by: Remy Bohmer <linux@bohmer.net> +[yann.morin.1998@anciens.enib.fr: update for 1.19.0 from 1.18.0] +Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> +[austinpmorton@gmail.com: update for 1.20.0 from 1.19.0] +Signed-off-by: Austin Morton <austinpmorton@gmail.com> +--- + newlib/libc/machine/m68k/memcpy.S | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/newlib/libc/machine/m68k/memcpy.S ++++ b/newlib/libc/machine/m68k/memcpy.S +@@ -15,7 +15,7 @@ + + #include "m68kasm.h" + +-#if defined (__mcoldfire__) || defined (__mc68010__) || defined (__mc68020__) || defined (__mc68030__) || defined (__mc68040__) || defined (__mc68060__) ++#if defined (__mcoldfire__) || defined (__mc68030__) || defined (__mc68040__) || defined (__mc68060__) + # define MISALIGNED_OK 1 + #else + # define MISALIGNED_OK 0 diff --git a/packages/newlib/3.2.0/0001-fix-mt-cflags.patch b/packages/newlib/3.2.0/0001-fix-mt-cflags.patch new file mode 100644 index 00000000..24a9215d --- /dev/null +++ b/packages/newlib/3.2.0/0001-fix-mt-cflags.patch @@ -0,0 +1,13 @@ +--- + config/mt-d30v | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/config/mt-d30v ++++ b/config/mt-d30v +@@ -1,4 +1,4 @@ + # Build libraries optimizing for space, not speed. + # Turn off warnings about symbols named the same as registers +- CFLAGS_FOR_TARGET = -g -Os -Wa,-C +- CXXFLAGS_FOR_TARGET = -g -Os -Wa,-C ++ CFLAGS_FOR_TARGET += -g -Os -Wa,-C ++ CXXFLAGS_FOR_TARGET += -g -Os -Wa,-C diff --git a/packages/newlib/3.2.0/chksum b/packages/newlib/3.2.0/chksum new file mode 100644 index 00000000..049aac0f --- /dev/null +++ b/packages/newlib/3.2.0/chksum @@ -0,0 +1,4 @@ +md5 newlib-3.2.0.tar.gz afb3a01c8c82b6717ea55659a4de30ec +sha1 newlib-3.2.0.tar.gz 659c491ddb1713a37ba31ba0273efb56a53b89a9 +sha256 newlib-3.2.0.tar.gz f7b2322964a1e3b37bec0768da20f50dfb62247d729110974dd95756a53bb6d4 +sha512 newlib-3.2.0.tar.gz 8265d8f08333301a26632b4468b6fd30a33d1e85e9e0b40ad60916089839ea722dcccd87142c7fbcaaf0aacbc9d2b97f5f13a06fe6a512f5951bfc52aa07498d diff --git a/packages/newlib/3.2.0/version.desc b/packages/newlib/3.2.0/version.desc new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/packages/newlib/3.2.0/version.desc diff --git a/packages/newlib/3.3.0/0000-fix-unaligned-access-memcpy-m68k.patch b/packages/newlib/3.3.0/0000-fix-unaligned-access-memcpy-m68k.patch new file mode 100644 index 00000000..b6709d5a --- /dev/null +++ b/packages/newlib/3.3.0/0000-fix-unaligned-access-memcpy-m68k.patch @@ -0,0 +1,25 @@ +The m68k mcpu processor does not like unaligned access + +Disable at least mcpu32, m68010 and m68020. These processors certainly +do not like unaligned accesses. + +Signed-off-by: Remy Bohmer <linux@bohmer.net> +[yann.morin.1998@anciens.enib.fr: update for 1.19.0 from 1.18.0] +Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> +[austinpmorton@gmail.com: update for 1.20.0 from 1.19.0] +Signed-off-by: Austin Morton <austinpmorton@gmail.com> +--- + newlib/libc/machine/m68k/memcpy.S | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/newlib/libc/machine/m68k/memcpy.S ++++ b/newlib/libc/machine/m68k/memcpy.S +@@ -15,7 +15,7 @@ + + #include "m68kasm.h" + +-#if defined (__mcoldfire__) || defined (__mc68010__) || defined (__mc68020__) || defined (__mc68030__) || defined (__mc68040__) || defined (__mc68060__) ++#if defined (__mcoldfire__) || defined (__mc68030__) || defined (__mc68040__) || defined (__mc68060__) + # define MISALIGNED_OK 1 + #else + # define MISALIGNED_OK 0 diff --git a/packages/newlib/3.3.0/0001-fix-mt-cflags.patch b/packages/newlib/3.3.0/0001-fix-mt-cflags.patch new file mode 100644 index 00000000..24a9215d --- /dev/null +++ b/packages/newlib/3.3.0/0001-fix-mt-cflags.patch @@ -0,0 +1,13 @@ +--- + config/mt-d30v | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/config/mt-d30v ++++ b/config/mt-d30v +@@ -1,4 +1,4 @@ + # Build libraries optimizing for space, not speed. + # Turn off warnings about symbols named the same as registers +- CFLAGS_FOR_TARGET = -g -Os -Wa,-C +- CXXFLAGS_FOR_TARGET = -g -Os -Wa,-C ++ CFLAGS_FOR_TARGET += -g -Os -Wa,-C ++ CXXFLAGS_FOR_TARGET += -g -Os -Wa,-C diff --git a/packages/newlib/3.3.0/chksum b/packages/newlib/3.3.0/chksum new file mode 100644 index 00000000..b69afc6d --- /dev/null +++ b/packages/newlib/3.3.0/chksum @@ -0,0 +1,4 @@ +md5 newlib-3.3.0.tar.gz af1c64d25eb3f71dec5ad7ec79877d7f +sha1 newlib-3.3.0.tar.gz ed1c5b65e8aa5b437f40875d8ae629a7d9b7e824 +sha256 newlib-3.3.0.tar.gz 58dd9e3eaedf519360d92d84205c3deef0b3fc286685d1c562e245914ef72c66 +sha512 newlib-3.3.0.tar.gz 2f0c6666487520e1a0af0b6935431f85d2359e27ded0d01d02567d0d1c6479f2f0e6bbc60405e88e46b92c2a18780a01a60fc9281f7e311cfd40b8d5881d629c diff --git a/packages/newlib/3.3.0/version.desc b/packages/newlib/3.3.0/version.desc new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/packages/newlib/3.3.0/version.desc diff --git a/packages/strace/5.4/chksum b/packages/strace/5.4/chksum new file mode 100644 index 00000000..61e95eb5 --- /dev/null +++ b/packages/strace/5.4/chksum @@ -0,0 +1,4 @@ +md5 strace-5.4.tar.xz b2b58f05eb3c5c0bf9d1e26003b4d698 +sha1 strace-5.4.tar.xz a73590b4489deb832d969a51850ce564677c7e46 +sha256 strace-5.4.tar.xz f7d00514d51290b6db78ad7a9de709baf93caa5981498924cbc9a744cfd2a741 +sha512 strace-5.4.tar.xz 4ddba2ec4457a2257c18b26dca851e49a275813c4eb3069379a93fcc60228f9b63a3dee9e3719ae606a7cc61d55ab21ce147327223903c302c061e381097a8d7 diff --git a/packages/strace/5.4/version.desc b/packages/strace/5.4/version.desc new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/packages/strace/5.4/version.desc diff --git a/packages/strace/5.5/chksum b/packages/strace/5.5/chksum new file mode 100644 index 00000000..2effaacb --- /dev/null +++ b/packages/strace/5.5/chksum @@ -0,0 +1,4 @@ +md5 strace-5.5.tar.xz dbce2e84632b39a4ed86b9fc60447af9 +sha1 strace-5.5.tar.xz ebacd8fb078aabc2e4a856657bac299589641d28 +sha256 strace-5.5.tar.xz 9f58958c8e59ea62293d907d10572e352b582bd7948ed21aa28ebb47e5bf30ff +sha512 strace-5.5.tar.xz 317fe6341000b452cf038433c2a9a7bcdc8ce736e97b242673ce066dd9dbd3b2c3435a014b529429fdf2ac8af5c3a72d62971b293d007b7d3efcbb684c216231 diff --git a/packages/strace/5.5/version.desc b/packages/strace/5.5/version.desc new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/packages/strace/5.5/version.desc diff --git a/packages/uClibc-ng/1.0.30/chksum b/packages/uClibc-ng/1.0.30/chksum index 2e095224..443ace03 100644 --- a/packages/uClibc-ng/1.0.30/chksum +++ b/packages/uClibc-ng/1.0.30/chksum @@ -1,3 +1,11 @@ +md5 uClibc-ng-1.0.30.tar.xz 81009d1364c7301d39d867beabd16fcb +sha1 uClibc-ng-1.0.30.tar.xz 47beed76875aaf424c7ed179a57a8dcbef8823dc +sha256 uClibc-ng-1.0.30.tar.xz 992bd9a2889ea385902b87e3d3d30603741eb16728288fbf537ff2027f770496 +sha512 uClibc-ng-1.0.30.tar.xz 603b14107dfa64146f17956c6a1a8f2f30ce5467a7731f0aa1039846350d9204c465cc985061a12f233bfadde6c6fa5cc6e15f7fc17ab231c2c85f8f687fc58d +md5 uClibc-ng-1.0.30.tar.lz 2dc64b0ede7d7ebba393797bc35f92b3 +sha1 uClibc-ng-1.0.30.tar.lz 867d25c9ba1b9abb918ee8c6d716a1a0edb10493 +sha256 uClibc-ng-1.0.30.tar.lz 1a6f3b3b80e1acbdbeb3041c0e89dca513b93defef7e729b2b48522f30cae37d +sha512 uClibc-ng-1.0.30.tar.lz 9c9e4b88c7a392254a155668bcac2b1f0726326843bca897975e83c64ee250dae9b68fa3eb63d8938b984336eebe336be6f75d61240552ed00d0eed808571b6d md5 uClibc-ng-1.0.30.tar.bz2 4d1fef5287f52daff83624dd117645ae sha1 uClibc-ng-1.0.30.tar.bz2 150fda99d9eb122a0962852bb4d2816c9911021b sha256 uClibc-ng-1.0.30.tar.bz2 3e0f057f24882823d697126015aa4d7d48fa2542be3939985cb3c26dcbcab5a8 @@ -6,11 +14,3 @@ md5 uClibc-ng-1.0.30.tar.gz 5f15d8d229ded008f6b7082795be390f sha1 uClibc-ng-1.0.30.tar.gz c9665a4625f3af88f9d0032b0a33026a4d1393a1 sha256 uClibc-ng-1.0.30.tar.gz f1c4d25a84a83673099a1811b4e57da3a11e0db3e7bb907fc45009dfe70c6c2c sha512 uClibc-ng-1.0.30.tar.gz d3dc48ee9ebe9dc806ae9b9479880f9cb03341ed075ee8e3678ef0abe6efff53d8beb22537646edb281e8bf0b15d34ab30967405314534d5a8a214ef1604d0b8 -md5 uClibc-ng-1.0.30.tar.lz 2dc64b0ede7d7ebba393797bc35f92b3 -sha1 uClibc-ng-1.0.30.tar.lz 867d25c9ba1b9abb918ee8c6d716a1a0edb10493 -sha256 uClibc-ng-1.0.30.tar.lz 1a6f3b3b80e1acbdbeb3041c0e89dca513b93defef7e729b2b48522f30cae37d -sha512 uClibc-ng-1.0.30.tar.lz 9c9e4b88c7a392254a155668bcac2b1f0726326843bca897975e83c64ee250dae9b68fa3eb63d8938b984336eebe336be6f75d61240552ed00d0eed808571b6d -md5 uClibc-ng-1.0.30.tar.xz 81009d1364c7301d39d867beabd16fcb -sha1 uClibc-ng-1.0.30.tar.xz 47beed76875aaf424c7ed179a57a8dcbef8823dc -sha256 uClibc-ng-1.0.30.tar.xz 992bd9a2889ea385902b87e3d3d30603741eb16728288fbf537ff2027f770496 -sha512 uClibc-ng-1.0.30.tar.xz 603b14107dfa64146f17956c6a1a8f2f30ce5467a7731f0aa1039846350d9204c465cc985061a12f233bfadde6c6fa5cc6e15f7fc17ab231c2c85f8f687fc58d diff --git a/packages/uClibc-ng/1.0.32/chksum b/packages/uClibc-ng/1.0.32/chksum new file mode 100644 index 00000000..4dbb6539 --- /dev/null +++ b/packages/uClibc-ng/1.0.32/chksum @@ -0,0 +1,16 @@ +md5 uClibc-ng-1.0.32.tar.xz 923afbca6798cb1fdc46e2f43ec6c692 +sha1 uClibc-ng-1.0.32.tar.xz 35bcbc30d7fe67874a9de20d16650691fb4e9d43 +sha256 uClibc-ng-1.0.32.tar.xz 891b5e4573855e4c11e51d3a518f89a82e490d9aa73280c05ce3e4d7e739a370 +sha512 uClibc-ng-1.0.32.tar.xz 65bd480a0ab7167b8b6464642acbb6a098cae7414aeebb28edab44b2d70d7a947cabeb02041313756de0a11e996195fc891b584a7149c0c636fca0ba65948688 +md5 uClibc-ng-1.0.32.tar.lz 9f56c3bed051246dea1117ed9b72c53c +sha1 uClibc-ng-1.0.32.tar.lz 5a1ba2e623caedfa1533142bfe364daa021ad18f +sha256 uClibc-ng-1.0.32.tar.lz 526bed6f5e4c973e826fc2650943a0708b84431523d2dd75b8f367b99e02ac41 +sha512 uClibc-ng-1.0.32.tar.lz 5834aed346bf9d1030fe1317ddab53e7be0b80e3976d4f8c759868ea153edfa171f62557b7c3c4c2cbbf0ab0ee524bd8747f7836f77b0a56edd21c25c5ca822e +md5 uClibc-ng-1.0.32.tar.bz2 6a985a3800a92b07febda283104e4e8b +sha1 uClibc-ng-1.0.32.tar.bz2 4d80ea623d3a316bc5b6eca880619c96bd069c53 +sha256 uClibc-ng-1.0.32.tar.bz2 7b49191a987caa19f0d668aa038c16491fbebc3fd158f3553767453087ebe432 +sha512 uClibc-ng-1.0.32.tar.bz2 1de5d4e99b94eeeada4233c53a95ea1b9e704ce1d4aa19ca9b17535c0328b2372ed93d24591c6ea5bfbc0b950aa575c18dcf6950fb04342924bb2b5f9ee235e8 +md5 uClibc-ng-1.0.32.tar.gz 8b6201a68bb2c7d6dc52a3d27c1aa0cb +sha1 uClibc-ng-1.0.32.tar.gz 6f8e2e2659c4d3973fad6249bb2bc59d653fe567 +sha256 uClibc-ng-1.0.32.tar.gz 304aa985b73544ff18d8b371befdeaae38d5ae449bf90b3a49ea239ce447c527 +sha512 uClibc-ng-1.0.32.tar.gz f83ff0bd28930dab3fa0f8ece065fbf44f97f1236b692fa160c3475bc4a48908d5c4f52cc50db98be3d439c1e8dcdef7f0764a073e5695beeb4fb1deae5bb577 diff --git a/packages/uClibc-ng/1.0.32/version.desc b/packages/uClibc-ng/1.0.32/version.desc new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/packages/uClibc-ng/1.0.32/version.desc diff --git a/packages/uClibc-ng/1.0.33/chksum b/packages/uClibc-ng/1.0.33/chksum new file mode 100644 index 00000000..eed77a42 --- /dev/null +++ b/packages/uClibc-ng/1.0.33/chksum @@ -0,0 +1,12 @@ +md5 uClibc-ng-1.0.33.tar.xz ec5f253bb0c61834fcd2d61b1be594b8 +sha1 uClibc-ng-1.0.33.tar.xz 79142cbea010d691e3007b13226cc23f705ef836 +sha256 uClibc-ng-1.0.33.tar.xz aa7c361fddddf90b40a90e04431e607e2da21a5e8e2840a6db9ffd0c89d03e0d +sha512 uClibc-ng-1.0.33.tar.xz badc4bed19787d74813e1f050d5652fa48c69e9823f4c2d04e02074108250bdc25022776a6420c4afdcebcc0e8df61367da92f3a68ae8ff74a8e956983363095 +md5 uClibc-ng-1.0.33.tar.bz2 c5b8cda53e14b361bb24c7a70a2c2b67 +sha1 uClibc-ng-1.0.33.tar.bz2 7b15e9748003fd6cf55e19121b79e32506497002 +sha256 uClibc-ng-1.0.33.tar.bz2 b10f3e4f4802d78ee2c0342f3e08337a8a85af11f52b135acf1066a6b0eec963 +sha512 uClibc-ng-1.0.33.tar.bz2 cab89fb6a6e314c6cc8ac964604bdfae01d2e45dc71678bbb6a8985871f625ac680fec3ddc1cb29f6d15585b7fcb782eaf40fa6c89207cde2a04286c3d610169 +md5 uClibc-ng-1.0.33.tar.gz 2e1a11b18e38707e7ae5a4de02abee04 +sha1 uClibc-ng-1.0.33.tar.gz 9fdf3783dbdd183a8c9c7b66627f0b1bbce3dee3 +sha256 uClibc-ng-1.0.33.tar.gz afa6dd9ac2297c26ec886ce7bc13806d729fcb858d7623af6222e4850e37de53 +sha512 uClibc-ng-1.0.33.tar.gz 480d0631b9dbac145532b7747f4f864d12ae3a040a7b88351ab38dc7b6c827e106d7f2f98bd99adc6886501e8948552bc6cc97ee85b24345c201d0a9b7631cc1 diff --git a/packages/uClibc-ng/1.0.33/version.desc b/packages/uClibc-ng/1.0.33/version.desc new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/packages/uClibc-ng/1.0.33/version.desc diff --git a/samples/arc-multilib-linux-gnu/crosstool.config b/samples/arc-multilib-linux-gnu/crosstool.config new file mode 100644 index 00000000..3dc78027 --- /dev/null +++ b/samples/arc-multilib-linux-gnu/crosstool.config @@ -0,0 +1,7 @@ +CT_CONFIG_VERSION="3" +CT_ARCH_ARC=y +CT_MULTILIB=y +CT_TARGET_CFLAGS="-matomic" +CT_TARGET_VENDOR="multilib" +CT_TARGET_ALIAS="arc-linux" +CT_KERNEL_LINUX=y diff --git a/samples/arc-multilib-linux-gnu/reported.by b/samples/arc-multilib-linux-gnu/reported.by new file mode 100644 index 00000000..e98760ae --- /dev/null +++ b/samples/arc-multilib-linux-gnu/reported.by @@ -0,0 +1,3 @@ +reporter_name="Alexey Brodkin" +reporter_url="http://embarc.org" +reporter_comment="ARC multilib GNU Linux toolchain" diff --git a/scripts/build/arch/arc.sh b/scripts/build/arch/arc.sh index b13ef0eb..d15f73f3 100644 --- a/scripts/build/arch/arc.sh +++ b/scripts/build/arch/arc.sh @@ -29,3 +29,39 @@ CT_DoArchUClibcCflags() esac done } + +# Multilib: Adjust configure arguments for GLIBC +# Usage: CT_DoArchGlibcAdjustConfigure <configure-args-array-name> <cflags> +# +# From GCC's standpoint ARC's multilib items are defined by "mcpu" values +# which we have quite a few and for all of them might be built optimized +# cross-toolchain. +# +# From Glibc's standpoint multilib is multi-ABI and so very limited +# versions are supposed to co-exist. +# +# Here we force Glibc to install libraries in per-multilib folder to create +# a universal cross-toolchain that has libs optimized for multiple CPU types. +CT_DoArchGlibcAdjustConfigure() { + local -a add_args + local array="${1}" + local cflags="${2}" + local opt + local mcpu + + # If building for multilib, set proper installation paths + if [ "${CT_MULTILIB}" = "y" ]; then + for opt in ${cflags}; do + case "${opt}" in + -mcpu=*) + mcpu="${opt#*=}" + add_args+=( "libc_cv_rtlddir=/lib/${mcpu}" ) + add_args+=( "libc_cv_slibdir=/lib/${mcpu}" ) + add_args+=( "--libdir=/usr/lib/${mcpu}" ) + ;; + esac + done + fi + + eval "${array}+=( \"\${add_args[@]}\" )" +} diff --git a/scripts/build/arch/sparc.sh b/scripts/build/arch/sparc.sh index 7433c4d4..97c9b9df 100644 --- a/scripts/build/arch/sparc.sh +++ b/scripts/build/arch/sparc.sh @@ -3,17 +3,32 @@ CT_DoArchTupleValues() { # That's the only thing to override CT_TARGET_ARCH="sparc${target_bits_64}${CT_ARCH_SUFFIX}" - # By default, sparc64-*-linux is configured with -mcpu=v9. However, - # according to https://sourceware.org/ml/libc-alpha/2005-12/msg00027.html, - # "There is no Linux sparc64 port that runs on non-UltraSPARC-I+ ISA CPUs." - # There is a patch that would change the default to -mcpu=ultrasparc for - # sparc64-*-linux configuration: https://patchwork.ozlabs.org/patch/409424/ - # but that patch has not been integrated (yet). One concern raised about - # this patch was that -mcpu=ultrasparc can suboptimally schedule instructions - # for newer SPARC CPUs. So, override to -mcpu=ultrasparc and warn the user. - if [ "${CT_KERNEL}" = "linux" -a "${CT_ARCH_64}" = "y" -a -z "${CT_ARCH_CPU}" ]; then - CT_DoLog WARN "Setting CPU to UltraSPARC-I for sparc64-linux. Set CT_ARCH_CPU if a different CPU is desired." - CT_ARCH_WITH_CPU="--with-cpu=ultrasparc" + if [ "${CT_KERNEL}" = "linux" -a -z "${CT_ARCH_CPU}" ]; then + if [ "${CT_ARCH_64}" = "y" ]; then + # By default, sparc64-*-linux is configured with -mcpu=v9. However, + # according to https://sourceware.org/ml/libc-alpha/2005-12/msg00027.html, + # "There is no Linux sparc64 port that runs on non-UltraSPARC-I+ ISA CPUs." + # There is a patch that would change the default to -mcpu=ultrasparc for + # sparc64-*-linux configuration: https://patchwork.ozlabs.org/patch/409424/ + # but that patch has not been integrated (yet). One concern raised about + # this patch was that -mcpu=ultrasparc can suboptimally schedule instructions + # for newer SPARC CPUs. So, override to -mcpu=ultrasparc and warn the user. + CT_DoLog WARN "Setting CPU to UltraSPARC-I for sparc64-linux. Set CT_ARCH_CPU if a different CPU is desired." + CT_ARCH_WITH_CPU="--with-cpu=ultrasparc" + if [ -n "${CT_ARCH_SUPPORTS_WITH_32_64}" -a -n "${CT_MULTILIB}" ]; then + CT_ARCH_WITH_CPU_32="--with-cpu-32=ultrasparc" + CT_ARCH_WITH_CPU_64="--with-cpu-64=ultrasparc" + fi + else + # Similarly, sparc-*-linux defaults to v7. GLIBC 2.31 started to reject + # pre-v8 configurations with 2.31, and default v8 fails a subsequent test for + # using atomics (which are presumably, only available on some v8 CPUs). + # Therefore, default to v9. + if [ -z "${CT_GLIBC_SPARC_ALLOW_V7}" ]; then + CT_DoLog WARN "Setting CPU to V9 for sparc-linux. Set CT_ARCH_CPU if a different CPU is desired." + CT_ARCH_WITH_CPU="--with-cpu=v9" + fi + fi fi } diff --git a/scripts/build/binutils/binutils.sh b/scripts/build/binutils/binutils.sh index 2a738deb..a79bb7e2 100644 --- a/scripts/build/binutils/binutils.sh +++ b/scripts/build/binutils/binutils.sh @@ -153,11 +153,14 @@ do_binutils_backend() { if [ "${CT_BINUTILS_PLUGINS}" = "y" ]; then extra_config+=( --enable-plugins ) fi - if [ "${CT_BINUTILES_RELRO}" = "y" ]; then + if [ "${CT_BINUTILS_RELRO}" = "y" ]; then extra_config+=( --enable-relro ) elif [ "${CT_BINUTILS_RELRO}" != "m" ]; then extra_config+=( --disable-relro ) fi + if [ "${CT_BINUTILS_DETERMINISTIC_ARCHIVES}" = "y" ]; then + extra_config+=( --enable-deterministic-archives ) + fi if [ "${CT_BINUTILS_HAS_PKGVERSION_BUGURL}" = "y" ]; then [ -n "${CT_PKGVERSION}" ] && extra_config+=("--with-pkgversion=${CT_PKGVERSION}") [ -n "${CT_TOOLCHAIN_BUGURL}" ] && extra_config+=("--with-bugurl=${CT_TOOLCHAIN_BUGURL}") diff --git a/scripts/build/cc/gcc.sh b/scripts/build/cc/gcc.sh index 60f259df..3d4db35b 100644 --- a/scripts/build/cc/gcc.sh +++ b/scripts/build/cc/gcc.sh @@ -351,7 +351,7 @@ do_gcc_core_backend() { ;; esac - for tmp in ARCH ABI CPU TUNE FPU FLOAT ENDIAN; do + for tmp in ARCH ABI CPU CPU_32 CPU_64 TUNE FPU FLOAT ENDIAN; do eval tmp="\${CT_ARCH_WITH_${tmp}}" if [ -n "${tmp}" ]; then extra_config+=("${tmp}") @@ -905,7 +905,7 @@ do_gcc_backend() { # Enable selected languages extra_config+=("--enable-languages=${lang_list}") - for tmp in ARCH ABI CPU TUNE FPU FLOAT; do + for tmp in ARCH ARCH_32 ARCH_64 ABI CPU CPU_32 CPU_64 TUNE TUNE_32 TUNE_64 FPU FLOAT; do eval tmp="\${CT_ARCH_WITH_${tmp}}" if [ -n "${tmp}" ]; then extra_config+=("${tmp}") diff --git a/scripts/build/companion_tools/500-dtc.sh b/scripts/build/companion_tools/500-dtc.sh index ce0b303a..a16ff625 100644 --- a/scripts/build/companion_tools/500-dtc.sh +++ b/scripts/build/companion_tools/500-dtc.sh @@ -48,11 +48,17 @@ do_dtc_backend() eval "${arg// /\\ }" done + # Override PKG_CONFIG: if pkg-config is not installed, DTC's makefile + # misinterprets the error code and tries to enable YAML support while + # not linking against libyaml. NO_YAML=1 is sufficient to make the build + # pass; PKG_CONFIG=/bin/true just suppresses some scary error messages. extra_opts=( \ CC="${host}-gcc" \ AR="${host}-ar" \ PREFIX="${prefix}" \ + PKG_CONFIG=/bin/true \ NO_PYTHON=1 \ + NO_YAML=1 \ BIN=dtc \ ) if [ -n "${CT_DTC_VERBOSE}" ]; then diff --git a/scripts/build/libc/glibc.sh b/scripts/build/libc/glibc.sh index 221752d0..31fa067f 100644 --- a/scripts/build/libc/glibc.sh +++ b/scripts/build/libc/glibc.sh @@ -199,7 +199,7 @@ glibc_backend_once() printf "%s\n" "${CT_GLIBC_CONFIGPARMS}" > configparms # glibc can't be built without -O2 (reference needed!) - glibc_cflags+=" -O2" + glibc_cflags+=" -g -O2" case "${CT_GLIBC_ENABLE_FORTIFIED_BUILD}" in y) ;; @@ -260,9 +260,12 @@ glibc_backend_once() # CFLAGS are only applied when compiling .c files. .S files are compiled with ASFLAGS, # but they are not passed by configure. Thus, pass everything in CC instead. + # The CFLAGS variable needs to be cleared, else the default "-g -O2" + # would override previous flags. CT_DoExecLog CFG \ BUILD_CC=${CT_BUILD}-gcc \ CC="${CT_TARGET}-${CT_CC} ${glibc_cflags}" \ + CFLAGS="" \ AR=${CT_TARGET}-ar \ RANLIB=${CT_TARGET}-ranlib \ "${CONFIG_SHELL}" \ diff --git a/scripts/build/libc/musl.sh b/scripts/build/libc/musl.sh index 807b3bd8..05da1d40 100644 --- a/scripts/build/libc/musl.sh +++ b/scripts/build/libc/musl.sh @@ -98,7 +98,8 @@ musl_backend_once() { # host : same as --target # target : the machine musl runs on CT_DoExecLog CFG \ - CFLAGS="${extra_cflags[*]}" \ + CFLAGS="${CT_TARGET_CFLAGS} ${extra_cflags[*]}" \ + LDFLAGS="${CT_TARGET_LDFLAGS}" \ CROSS_COMPILE="${CT_TARGET}-" \ ${CONFIG_SHELL} \ ${src_dir}/configure \ diff --git a/scripts/build/libc/newlib.sh b/scripts/build/libc/newlib.sh index 95ab7910..ddecdb19 100644 --- a/scripts/build/libc/newlib.sh +++ b/scripts/build/libc/newlib.sh @@ -55,7 +55,7 @@ newlib_main() yn_args="IO_POS_ARGS:newlib-io-pos-args IO_C99FMT:newlib-io-c99-formats IO_LL:newlib-io-long-long -NEWLIB_REGISTER_FINI:newlib-register-fini +REGISTER_FINI:newlib-register-fini NANO_MALLOC:newlib-nano-malloc NANO_FORMATTED_IO:newlib-nano-formatted-io ATEXIT_DYNAMIC_ALLOC:newlib-atexit-dynamic-alloc @@ -63,7 +63,10 @@ GLOBAL_ATEXIT:newlib-global-atexit LITE_EXIT:lite-exit REENT_SMALL:newlib-reent-small MULTITHREAD:newlib-multithread +RETARGETABLE_LOCKING:newlib-retargetable-locking WIDE_ORIENT:newlib-wide-orient +FSEEK_OPTIMIZATION:newlib-fseek-optimization +FVWRITE_IN_STREAMIO:newlib-fvwrite-in-streamio UNBUF_STREAM_OPT:newlib-unbuf-stream-opt ENABLE_TARGET_OPTSPACE:target-optspace " diff --git a/scripts/crosstool-NG.sh b/scripts/crosstool-NG.sh index 31942b14..14be5ed9 100644 --- a/scripts/crosstool-NG.sh +++ b/scripts/crosstool-NG.sh @@ -114,7 +114,6 @@ fi # Where will we work? CT_WORK_DIR="${CT_WORK_DIR:-${CT_TOP_DIR}/.build}" -CT_BUILD_DIR="${CT_BUILD_TOP_DIR}/build" CT_DoExecLog ALL mkdir -p "${CT_WORK_DIR}" CT_DoExecLog DEBUG rm -f "${CT_WORK_DIR}/backtrace" diff --git a/scripts/functions b/scripts/functions index 1b3b7dce..2227de78 100644 --- a/scripts/functions +++ b/scripts/functions @@ -1040,7 +1040,8 @@ CT_GetFile() # TBD these should not be needed if config.sub/guess is a package # Two wrappers to call config.(guess|sub) either from CT_TOP_DIR or CT_LIB_DIR. # Those from CT_TOP_DIR, if they exist, will be be more recent than those from CT_LIB_DIR. -CT_DoConfigGuess() { +CT_DoConfigGuess() +{ if [ -r "${CT_TOP_DIR}/scripts/config.guess" ]; then "${CT_CONFIG_SHELL}" "${CT_TOP_DIR}/scripts/config.guess" else @@ -1048,7 +1049,8 @@ CT_DoConfigGuess() { fi } -CT_DoConfigSub() { +CT_DoConfigSub() +{ if [ -r "${CT_TOP_DIR}/scripts/config.sub" ]; then "${CT_CONFIG_SHELL}" "${CT_TOP_DIR}/scripts/config.sub" "$@" else @@ -1060,7 +1062,8 @@ CT_DoConfigSub() { # environment for the next step(s). When this is needed, it can do so by # invoking this function. # Usage: CT_EnvModify [export] VAR VALUE -CT_EnvModify() { +CT_EnvModify() +{ local e if [ "$1" = "export" ]; then shift @@ -1075,7 +1078,10 @@ CT_EnvModify() { # In fact this function takes the environment variables to build the target # tuple. It is needed both by the normal build sequence, as well as the # sample saving sequence. -CT_DoBuildTargetTuple() { +CT_DoBuildTargetTuple() +{ + local tmp + # Set the endianness suffix, and the default endianness gcc option target_endian_eb= target_endian_be= @@ -1137,13 +1143,29 @@ CT_DoBuildTargetTuple() { esac # Set the default values for ARCH, ABI, CPU, TUNE, FPU and FLOAT - unset CT_ARCH_ARCH_CFLAG CT_ARCH_ABI_CFLAG CT_ARCH_CPU_CFLAG CT_ARCH_TUNE_CFLAG CT_ARCH_FPU_CFLAG CT_ARCH_FLOAT_CFLAG - unset CT_ARCH_WITH_ARCH CT_ARCH_WITH_ABI CT_ARCH_WITH_CPU CT_ARCH_WITH_TUNE CT_ARCH_WITH_FPU CT_ARCH_WITH_FLOAT CT_ARCH_WITH_ENDIAN - [ "${CT_ARCH_ARCH}" ] && { CT_ARCH_ARCH_CFLAG="-march=${CT_ARCH_ARCH}"; CT_ARCH_WITH_ARCH="--with-arch=${CT_ARCH_ARCH}"; } - [ "${CT_ARCH_ABI}" ] && { CT_ARCH_ABI_CFLAG="-mabi=${CT_ARCH_ABI}"; CT_ARCH_WITH_ABI="--with-abi=${CT_ARCH_ABI}"; } - [ "${CT_ARCH_CPU}" ] && { CT_ARCH_CPU_CFLAG="-mcpu=${CT_ARCH_CPU}"; CT_ARCH_WITH_CPU="--with-cpu=${CT_ARCH_CPU}"; } - [ "${CT_ARCH_TUNE}" ] && { CT_ARCH_TUNE_CFLAG="-mtune=${CT_ARCH_TUNE}"; CT_ARCH_WITH_TUNE="--with-tune=${CT_ARCH_TUNE}"; } - [ "${CT_ARCH_FPU}" ] && { CT_ARCH_FPU_CFLAG="-mfpu=${CT_ARCH_FPU}"; CT_ARCH_WITH_FPU="--with-fpu=${CT_ARCH_FPU}"; } + for tmp in ARCH ABI CPU TUNE FPU FLOAT ENDIAN; do + eval "unset CT_ARCH_${tmp}_CFLAG CT_ARCH_WITH_${tmp} CT_ARCH_WITH_${tmp}_32 CT_ARCH_WITH_${tmp}_64" + done + + [ -n "${CT_ARCH_ABI}" ] && { CT_ARCH_ABI_CFLAG="-mabi=${CT_ARCH_ABI}"; CT_ARCH_WITH_ABI="--with-abi=${CT_ARCH_ABI}"; } + [ -n "${CT_ARCH_FPU}" ] && { CT_ARCH_FPU_CFLAG="-mfpu=${CT_ARCH_FPU}"; CT_ARCH_WITH_FPU="--with-fpu=${CT_ARCH_FPU}"; } + + # The options below have distinct variants for multilib-enabled toolchain. + # At this time, we just always have them equal to the "main" setting; it + # seems that most example configurations are built for a specific CPU. + # If there's demand for it, we can turn them into separate knobs in + # Kconfig later. + for tmp in ARCH CPU TUNE; do + eval "val=\${CT_ARCH_${tmp}}" + if [ -n "${val}" ]; then + eval "CT_ARCH_${tmp}_CFLAG=-m${tmp,,}=${val}" + eval "CT_ARCH_WITH_${tmp}=--with-${tmp,,}=${val}" + if [ -n "${CT_ARCH_SUPPORTS_WITH_32_64}" -a -n "${CT_MULTILIB}" ]; then + eval "CT_ARCH_WITH_${tmp}_32=--with-${tmp,,}-32=${val}" + eval "CT_ARCH_WITH_${tmp}_64=--with-${tmp,,}-64=${val}" + fi + fi + done case "${CT_ARCH_FLOAT}" in hard) diff --git a/testing/docker/alpine3.8/Dockerfile b/testing/docker/alpine3.8/Dockerfile index bfef1bd4..43da7acd 100644 --- a/testing/docker/alpine3.8/Dockerfile +++ b/testing/docker/alpine3.8/Dockerfile @@ -1,6 +1,6 @@ FROM alpine:3.8 -ARG CTNG_UID -ARG CTNG_GID +ARG CTNG_UID=1000 +ARG CTNG_GID=1000 RUN addgroup -g $CTNG_GID ctng RUN adduser -D -h /home/ctng -G ctng -u $CTNG_UID -s /bin/bash ctng # Activate community and testing repositories diff --git a/testing/docker/archlinux/Dockerfile b/testing/docker/archlinux/Dockerfile index 2298abd8..1a6a1486 100644 --- a/testing/docker/archlinux/Dockerfile +++ b/testing/docker/archlinux/Dockerfile @@ -1,6 +1,6 @@ FROM archlinux/base:latest -ARG CTNG_UID -ARG CTNG_GID +ARG CTNG_UID=1000 +ARG CTNG_GID=1000 RUN pacman -Sy --noconfirm archlinux-keyring RUN pacman -Syu --noconfirm RUN pacman -S --noconfirm base-devel git help2man python unzip wget audit diff --git a/testing/docker/centos6/Dockerfile b/testing/docker/centos6/Dockerfile index 6c224cd4..7f11fe1a 100644 --- a/testing/docker/centos6/Dockerfile +++ b/testing/docker/centos6/Dockerfile @@ -1,6 +1,6 @@ FROM centos:6 -ARG CTNG_UID -ARG CTNG_GID +ARG CTNG_UID=1000 +ARG CTNG_GID=1000 RUN groupadd -g $CTNG_GID ctng RUN useradd -d /home/ctng -m -g $CTNG_GID -u $CTNG_UID -s /bin/bash ctng RUN yum install -y epel-release diff --git a/testing/docker/centos7/Dockerfile b/testing/docker/centos7/Dockerfile index 0631c19e..e7b812a2 100644 --- a/testing/docker/centos7/Dockerfile +++ b/testing/docker/centos7/Dockerfile @@ -1,6 +1,6 @@ FROM centos:7 -ARG CTNG_UID -ARG CTNG_GID +ARG CTNG_UID=1000 +ARG CTNG_GID=1000 RUN groupadd -g $CTNG_GID ctng RUN useradd -d /home/ctng -m -g $CTNG_GID -u $CTNG_UID -s /bin/bash ctng RUN yum install -y epel-release diff --git a/testing/docker/dmgr.sh b/testing/docker/dmgr.sh index 825362a9..e6a93e70 100755 --- a/testing/docker/dmgr.sh +++ b/testing/docker/dmgr.sh @@ -170,7 +170,7 @@ fi case "${action}" in build|install|sample|enter|root|clean|distclean) for c in ${selected_containers}; do - eval "action_${action} ${c} \"$@\"" + eval "action_${action} ${c%/} \"$@\"" done ;; "") diff --git a/testing/docker/fedora29/Dockerfile b/testing/docker/fedora29/Dockerfile index 65a0c60e..15dfb348 100644 --- a/testing/docker/fedora29/Dockerfile +++ b/testing/docker/fedora29/Dockerfile @@ -1,6 +1,6 @@ FROM fedora:29 -ARG CTNG_UID -ARG CTNG_GID +ARG CTNG_UID=1000 +ARG CTNG_GID=1000 RUN groupadd -g $CTNG_GID ctng RUN useradd -d /home/ctng -m -g $CTNG_GID -u $CTNG_UID -s /bin/bash ctng RUN yum install -y autoconf gperf bison file flex texinfo help2man gcc-c++ libtool make patch \ diff --git a/testing/docker/gentoo-amd64/Dockerfile b/testing/docker/gentoo-amd64/Dockerfile index ec5c1312..b261cc38 100644 --- a/testing/docker/gentoo-amd64/Dockerfile +++ b/testing/docker/gentoo-amd64/Dockerfile @@ -1,6 +1,6 @@ FROM gentoo/stage3-amd64-hardened -ARG CTNG_UID -ARG CTNG_GID +ARG CTNG_UID=1000 +ARG CTNG_GID=1000 RUN groupadd -g $CTNG_GID ctng RUN useradd -d /home/ctng -m -g $CTNG_GID -u $CTNG_UID -s /bin/bash ctng RUN wget -O /sbin/dumb-init https://github.com/Yelp/dumb-init/releases/download/v1.2.1/dumb-init_1.2.1_amd64 diff --git a/testing/docker/mint19-amd64/Dockerfile b/testing/docker/mint19-amd64/Dockerfile index 2b4f1aef..cfc05e37 100644 --- a/testing/docker/mint19-amd64/Dockerfile +++ b/testing/docker/mint19-amd64/Dockerfile @@ -1,6 +1,6 @@ FROM linuxmintd/mint19-amd64 -ARG CTNG_UID -ARG CTNG_GID +ARG CTNG_UID=1000 +ARG CTNG_GID=1000 RUN groupadd -g $CTNG_GID ctng RUN useradd -d /home/ctng -m -g $CTNG_GID -u $CTNG_UID -s /bin/bash ctng RUN apt-get update diff --git a/testing/docker/ubuntu16.04/Dockerfile b/testing/docker/ubuntu16.04/Dockerfile index e2ea06dc..a0b68ae1 100644 --- a/testing/docker/ubuntu16.04/Dockerfile +++ b/testing/docker/ubuntu16.04/Dockerfile @@ -1,6 +1,6 @@ FROM ubuntu:16.04 -ARG CTNG_UID -ARG CTNG_GID +ARG CTNG_UID=1000 +ARG CTNG_GID=1000 RUN groupadd -g $CTNG_GID ctng RUN useradd -d /home/ctng -m -g $CTNG_GID -u $CTNG_UID -s /bin/bash ctng RUN apt-get update diff --git a/testing/docker/ubuntu18.04/Dockerfile b/testing/docker/ubuntu18.04/Dockerfile index 5dab8422..918dd930 100644 --- a/testing/docker/ubuntu18.04/Dockerfile +++ b/testing/docker/ubuntu18.04/Dockerfile @@ -1,6 +1,6 @@ FROM ubuntu:18.04 -ARG CTNG_UID -ARG CTNG_GID +ARG CTNG_UID=1000 +ARG CTNG_GID=1000 RUN groupadd -g $CTNG_GID ctng RUN useradd -d /home/ctng -m -g $CTNG_GID -u $CTNG_UID -s /bin/bash ctng RUN apt-get update diff --git a/testing/docker/ubuntu19.04/Dockerfile b/testing/docker/ubuntu19.10/Dockerfile index 110bf42b..0c39ffcd 100644 --- a/testing/docker/ubuntu19.04/Dockerfile +++ b/testing/docker/ubuntu19.10/Dockerfile @@ -1,12 +1,12 @@ -FROM ubuntu:19.04 -ARG CTNG_UID -ARG CTNG_GID +FROM ubuntu:19.10 +ARG CTNG_UID=1000 +ARG CTNG_GID=1000 RUN groupadd -g $CTNG_GID ctng RUN useradd -d /home/ctng -m -g $CTNG_GID -u $CTNG_UID -s /bin/bash ctng RUN apt-get update RUN apt-get install -y gcc g++ gperf bison flex texinfo help2man make libncurses5-dev \ python3-dev autoconf automake libtool libtool-bin gawk wget bzip2 xz-utils unzip \ - patch libstdc++6 rsync + patch libstdc++6 rsync git RUN wget -O /sbin/dumb-init https://github.com/Yelp/dumb-init/releases/download/v1.2.1/dumb-init_1.2.1_amd64 RUN chmod a+x /sbin/dumb-init RUN echo 'export PATH=/opt/ctng/bin:$PATH' >> /etc/profile |