From db980376cdf74ada7b085e422c52c36a2ce85cd3 Mon Sep 17 00:00:00 2001 From: Alexey Neyman Date: Mon, 17 Feb 2020 12:59:16 -0800 Subject: [PATCH 01/14] Add binutils 2.34 Signed-off-by: Alexey Neyman --- packages/binutils/2.34/0000-sh-conf.patch | 34 +++ .../2.34/0001-ld_makefile_patch.patch | 27 ++ .../2.34/0002-check_ldrunpath_length.patch | 24 ++ ...oesnt-have-pthread_mutexattr_settype.patch | 15 + ...ont-link-to-libfl-as-its-unnecessary.patch | 105 +++++++ ...binary-cc-include-string-not-cstring.patch | 15 + ...id-NDK-PTHREAD_ONCE_INIT-wcsncasecmp.patch | 70 +++++ packages/binutils/2.34/0007-sysroot.patch | 41 +++ .../2.34/0008-poison-system-directories.patch | 279 ++++++++++++++++++ packages/binutils/2.34/chksum | 12 + packages/binutils/2.34/version.desc | 0 11 files changed, 622 insertions(+) create mode 100644 packages/binutils/2.34/0000-sh-conf.patch create mode 100644 packages/binutils/2.34/0001-ld_makefile_patch.patch create mode 100644 packages/binutils/2.34/0002-check_ldrunpath_length.patch create mode 100644 packages/binutils/2.34/0003-MinGW-w64-winpthreads-doesnt-have-pthread_mutexattr_settype.patch create mode 100644 packages/binutils/2.34/0004-Dont-link-to-libfl-as-its-unnecessary.patch create mode 100644 packages/binutils/2.34/0005-Darwin-gold-binary-cc-include-string-not-cstring.patch create mode 100644 packages/binutils/2.34/0006-Darwin-Two-fixes-from-Android-NDK-PTHREAD_ONCE_INIT-wcsncasecmp.patch create mode 100644 packages/binutils/2.34/0007-sysroot.patch create mode 100644 packages/binutils/2.34/0008-poison-system-directories.patch create mode 100644 packages/binutils/2.34/chksum create mode 100644 packages/binutils/2.34/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 +-#include ++#include + + #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 +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 + +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 +Signed-off-by: Gustavo Zacarias + +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 + + 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 + + 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 + + Merge from Sourcery G++ binutils 2.17: + + 2007-03-20 Joseph Myers + Based on patch by Mark Hatle . + 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 +Signed-off-by: Scott Garman + +--- + 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= 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/binutils/2.34/version.desc b/packages/binutils/2.34/version.desc new file mode 100644 index 00000000..e69de29b From cd2e3276b60494bb97954355fe30d88c70bd0e69 Mon Sep 17 00:00:00 2001 From: Alexey Neyman Date: Mon, 17 Feb 2020 13:00:49 -0800 Subject: [PATCH 02/14] Slide the checked out tag of elf2flt Also, add an ability to download rolling releases to manage-packages.sh. Signed-off-by: Alexey Neyman --- maintainer/manage-packages.sh | 59 +++++++++++++++++++++------- maintainer/package-versions.template | 13 ++++++ packages/elf2flt/package.desc | 2 +- 3 files changed, 59 insertions(+), 15 deletions(-) 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 <>temp.defconfig <>temp.defconfig </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/elf2flt/package.desc b/packages/elf2flt/package.desc index 754497ff..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='73325b7f209e0f68887333385184af275531427d' +repository_cset='453398f917d167f8c308c8f997270c48ae8f8b12' From 701974efa4d8be23bf6faf0e1eefd7f862642ec7 Mon Sep 17 00:00:00 2001 From: Alexey Neyman Date: Mon, 17 Feb 2020 16:40:38 -0800 Subject: [PATCH 03/14] Add gdb-9.1 Signed-off-by: Alexey Neyman --- packages/gdb/9.1/0000-musl_fix.patch | 33 ++++++++++++++ .../0001-uclibc-no-gettimeofday-clobber.patch | 33 ++++++++++++++ ...nsa-make-sure-ar_base-is-initialized.patch | 30 +++++++++++++ ...3-WIP-end-of-prologue-detection-hack.patch | 26 +++++++++++ packages/gdb/9.1/0004-allow-android.patch | 45 +++++++++++++++++++ packages/gdb/9.1/chksum | 8 ++++ packages/gdb/9.1/version.desc | 0 7 files changed, 175 insertions(+) create mode 100644 packages/gdb/9.1/0000-musl_fix.patch create mode 100644 packages/gdb/9.1/0001-uclibc-no-gettimeofday-clobber.patch create mode 100644 packages/gdb/9.1/0002-xtensa-make-sure-ar_base-is-initialized.patch create mode 100644 packages/gdb/9.1/0003-WIP-end-of-prologue-detection-hack.patch create mode 100644 packages/gdb/9.1/0004-allow-android.patch create mode 100644 packages/gdb/9.1/chksum create mode 100644 packages/gdb/9.1/version.desc 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 . */ + ++#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 +Signed-off-by: Alexey Neyman + +--- + 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 +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 +--- + 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 +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 +--- + 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, actually includes definitions +- # of Elf32_auxv_t and Elf64_auxv_t. But sadly, includes +- # which defines some of the ELF types incorrectly, +- # leading to conflicts with the defintions from . +- # This makes it impossible for us to include both and +- # , 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 + +--- a/gdb/gdbserver/configure.ac ++++ b/gdb/gdbserver/configure.ac +@@ -176,17 +176,6 @@ + ]) + + case "${target}" in +- *-android*) +- # Starting with NDK version 9, actually includes definitions +- # of Elf32_auxv_t and Elf64_auxv_t. But sadly, includes +- # which defines some of the ELF types incorrectly, +- # leading to conflicts with the defintions from . +- # This makes it impossible for us to include both and +- # , 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 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/gdb/9.1/version.desc b/packages/gdb/9.1/version.desc new file mode 100644 index 00000000..e69de29b From a74f8d9ccb8f42ad293ee6a0ac6f94d3a53e96ce Mon Sep 17 00:00:00 2001 From: Alexey Neyman Date: Sat, 22 Feb 2020 23:50:29 -0800 Subject: [PATCH 04/14] Add glibc 2.31 Signed-off-by: Alexey Neyman --- packages/glibc/2.31/0000-typedef-caddr.patch | 17 + .../2.31/0001-Add-ARC-architecture.patch | 7634 +++++++++++++++++ packages/glibc/2.31/chksum | 12 + packages/glibc/2.31/version.desc | 1 + 4 files changed, 7664 insertions(+) create mode 100644 packages/glibc/2.31/0000-typedef-caddr.patch create mode 100644 packages/glibc/2.31/0001-Add-ARC-architecture.patch create mode 100644 packages/glibc/2.31/chksum create mode 100644 packages/glibc/2.31/version.desc 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..35b5c132 --- /dev/null +++ b/packages/glibc/2.31/0001-Add-ARC-architecture.patch @@ -0,0 +1,7634 @@ +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 +--- +--- + 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/endian.h | 12 + 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 | 71 + sysdeps/arc/nptl/bits/semaphore.h | 32 + sysdeps/arc/nptl/pthread-offsets.h | 4 + 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/bits/procfs.h | 35 + sysdeps/unix/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 + sysdeps/unix/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 +++++++ + sysdeps/unix/sysv/linux/arc/libpthread.abilist | 240 ++ + sysdeps/unix/sysv/linux/arc/libresolv.abilist | 79 + sysdeps/unix/sysv/linux/arc/librt.abilist | 35 + sysdeps/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/profil-counter.h | 2 + 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 | 23 + 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 | 251 ++ + 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 + 104 files changed, 7120 insertions(+), 13 deletions(-) + +--- a/elf/elf.h ++++ b/elf/elf.h +@@ -330,7 +330,7 @@ + #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 @@ + #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 */ +--- a/locale/Makefile ++++ b/locale/Makefile +@@ -28,6 +28,7 @@ + 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 @@ + 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 +--- a/scripts/build-many-glibcs.py ++++ b/scripts/build-many-glibcs.py +@@ -155,6 +155,9 @@ + '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 @@ + def install_linux_headers(policy, cmdlist): + """Install Linux kernel headers.""" + arch_map = {'aarch64': 'arm64', ++ 'arc': 'arc', + 'alpha': 'alpha', + 'arm': 'arm', + 'csky': 'csky', +--- a/stdlib/longlong.h ++++ b/stdlib/longlong.h +@@ -199,7 +199,8 @@ + : "%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 @@ + : "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__ +--- a/support/Makefile ++++ b/support/Makefile +@@ -188,12 +188,7 @@ + -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 +--- /dev/null ++++ b/sysdeps/arc/Implies +@@ -0,0 +1,4 @@ ++init_array ++wordsize-32 ++ieee754/flt-32 ++ieee754/dbl-64 +--- /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 ++# . ++ ++# 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 +--- /dev/null ++++ b/sysdeps/arc/Versions +@@ -0,0 +1,6 @@ ++libc { ++ GLIBC_2.30 { ++ __syscall_error; ++ __mcount; ++ } ++} +--- /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 ++ . */ ++ ++#include ++#include ++ ++;@ 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) +--- /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") +--- /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 ++ . */ ++ ++#ifndef _ARC_BITS_ATOMIC_H ++#define _ARC_BITS_ATOMIC_H 1 ++ ++#include ++ ++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 */ +--- /dev/null ++++ b/sysdeps/arc/bits/endian.h +@@ -0,0 +1,12 @@ ++/* Although ARC CPU can do BE, it is not supported. */ ++ ++#ifndef _ENDIAN_H ++# error "Never use directly; include instead." ++#endif ++ ++#ifdef __LITTLE_ENDIAN__ ++# define __BYTE_ORDER __LITTLE_ENDIAN ++#endif ++#ifdef __BIG_ENDIAN__ ++# error "Big Endian NOt supported on ARC" ++#endif +--- /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 ++ . */ ++ ++#ifndef _FENV_H ++# error "Never use directly; include 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 +--- /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 ++ . */ ++ ++#ifndef _LINK_H ++# error "Never include directly; use 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 +--- /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 ++ . */ ++ ++#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 +--- /dev/null ++++ b/sysdeps/arc/bsd-_setjmp.S +@@ -0,0 +1 @@ ++/* _setjmp is in setjmp.S. */ +--- /dev/null ++++ b/sysdeps/arc/bsd-setjmp.S +@@ -0,0 +1 @@ ++/* setjmp is in setjmp.S. */ +--- /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 +--- /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) +--- /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 ++ . */ ++ ++#ifndef dl_machine_h ++#define dl_machine_h ++ ++#define ELF_MACHINE_NAME "arc" ++ ++#include ++ ++#ifndef ENTRY_POINT ++# error ENTRY_POINT needs to be defined for ARC ++#endif ++ ++#include ++#include ++#include ++ ++/* 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 ?: "", ++ 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 */ +--- /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 ++ . */ ++ ++/* 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 +--- /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 ++ . */ ++ ++#include_next ++ ++/* _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 +--- /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 ++ . */ ++ ++ ++/* 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) +--- /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 ++ . */ ++ ++#include ++#include ++ ++#include ++#include ++ ++/* 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) +--- /dev/null ++++ b/sysdeps/arc/entry.h +@@ -0,0 +1,5 @@ ++#ifndef __ASSEMBLY__ ++extern void __start (void) attribute_hidden; ++#endif ++ ++#define ENTRY_POINT __start +--- /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 ++ . */ ++ ++#define FIRST_PSEUDO_REGISTER 40 ++ ++#include +--- /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 ++. */ ++ ++#include ++ ++#define IEEE_DOUBLE_BIG_ENDIAN 0 +--- /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 ++ . */ ++ ++/* 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])) +--- /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 ++ . */ ++ ++#include ++#include ++#include ++#include ++ ++/* 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) +--- /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 ++ . */ ++ ++#ifndef _ARC_LDSODEFS_H ++#define _ARC_LDSODEFS_H 1 ++ ++#include ++ ++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 ++ ++#endif +--- /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 ++ . */ ++ ++#include ++#include ++ ++void * ++__tls_get_addr (tls_index *ti) ++{ ++ dtv_t *dtv = THREAD_DTV (); ++ return (char *) dtv[1].pointer.val + ti->ti_offset; ++} +--- /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 ++ . */ ++ ++#include ++ ++#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)); \ ++} +--- /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 ++ . */ ++ ++#define GETSP() ({ register uintptr_t stack_ptr asm ("sp"); stack_ptr; }) ++ ++#define uatomic32_t unsigned int ++ ++#include +--- /dev/null ++++ b/sysdeps/arc/nofpu/Implies +@@ -0,0 +1 @@ ++ieee754/soft-fp +--- /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 +--- /dev/null ++++ b/sysdeps/arc/nofpu/libm-test-ulps-name +@@ -0,0 +1 @@ ++ARC +--- /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 ++ . */ ++ ++#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 +--- /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 ++ . */ ++ ++#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 +--- /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 ++# . ++ ++ifeq ($(subdir),csu) ++gen-as-const-headers += tcb-offsets.sym ++endif +--- /dev/null ++++ b/sysdeps/arc/nptl/bits/pthreadtypes-arch.h +@@ -0,0 +1,71 @@ ++/* 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 ++ . */ ++ ++#ifndef _BITS_PTHREADTYPES_ARCH_H ++#define _BITS_PTHREADTYPES_ARCH_H 1 ++ ++#include ++ ++#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 ++ ++struct __pthread_rwlock_arch_t ++{ ++ unsigned int __readers; ++ unsigned int __writers; ++ unsigned int __wrphase_futex; ++ unsigned int __writers_futex; ++ unsigned int __pad3; ++ unsigned int __pad4; ++#if __BYTE_ORDER == __BIG_ENDIAN ++ unsigned char __pad1; ++ unsigned char __pad2; ++ unsigned char __shared; ++ /* FLAGS must stay at this position in the structure to maintain ++ binary compatibility. */ ++ unsigned char __flags; ++#else ++ /* FLAGS must stay at this position in the structure to maintain ++ binary compatibility. */ ++ unsigned char __flags; ++ unsigned char __shared; ++ unsigned char __pad1; ++ unsigned char __pad2; ++#endif ++ int __cur_writer; ++}; ++ ++#define __PTHREAD_RWLOCK_ELISION_EXTRA 0 ++ ++#endif /* bits/pthreadtypes-arch.h */ +--- /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 ++ . */ ++ ++#ifndef _SEMAPHORE_H ++# error "Never use directly; include 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; +--- /dev/null ++++ b/sysdeps/arc/nptl/pthread-offsets.h +@@ -0,0 +1,4 @@ ++#define __PTHREAD_MUTEX_NUSERS_OFFSET 12 ++#define __PTHREAD_MUTEX_KIND_OFFSET 16 ++#define __PTHREAD_MUTEX_SPINS_OFFSET 20 ++#define __PTHREAD_MUTEX_LIST_OFFSET 24 +--- /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 ++ . */ ++ ++/* 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) +--- /dev/null ++++ b/sysdeps/arc/nptl/tcb-offsets.sym +@@ -0,0 +1,11 @@ ++#include ++#include ++ ++-- 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) +--- /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 ++ . */ ++ ++#ifndef _ARC_NPTL_TLS_H ++#define _ARC_NPTL_TLS_H 1 ++ ++#include ++ ++#ifndef __ASSEMBLER__ ++# include ++# include ++# include ++ ++#include ++ ++/* Get system call information. */ ++# include ++ ++/* 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 ++ ++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 ++ ++# 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 */ +--- /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 +--- /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 ++ . */ ++ ++ ++#include ++ ++/* 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) +--- /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 ++ . */ ++ ++ ++#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 +--- /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 ++ . */ ++ ++#define HAVE_ARCH_PLTENTER ++#define HAVE_ARCH_PLTEXIT ++ ++#include ++ ++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; ++} +--- /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 ++ . */ ++ ++/* This file contains a bit of information about the stack allocation ++ of the processor. */ ++ ++#ifndef _STACKINFO_H ++#define _STACKINFO_H 1 ++ ++#include ++ ++/* 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 */ +--- /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 ++ . */ ++ ++ ++#define __ASSEMBLY__ 1 ++#include ++#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 +--- /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 ++ . */ ++ ++#include ++ ++#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__ */ +--- /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 ++ . */ ++ ++ ++/* 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; }) +--- /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 ++ . */ ++ ++#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] +--- /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 +--- /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 +--- /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; ++ } ++} +--- /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 ++ . */ ++ ++#ifndef _SYS_PROCFS_H ++# error "Never include directly; use instead." ++#endif ++ ++#include ++ ++/* 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; +--- /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 +--- /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 +--- /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 , 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 ++ . */ ++ ++ ++#include ++#define _ERRNO_H 1 ++#include ++#include ++ ++#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) +--- /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 +--- /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 +--- /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 ++ . */ ++ ++#include ++ ++#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 +--- /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 ++ . */ ++ ++#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) +--- /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 ++ . */ ++ ++#include /* For __key_t */ ++ ++#define __IPC_64 0x0 +--- /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)) +--- /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 ++ . */ ++ ++/* The minimum supported kernel version for ARC is 3.9, ++ guaranteeing many kernel features. */ ++ ++#include_next ++ ++#undef __ASSUME_CLONE_DEFAULT ++#define __ASSUME_CLONE_BACKWARDS 1 +--- /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 +--- /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 ++ . */ ++ ++#ifndef _LDSODEFS_H ++ ++/* Get the real definitions. */ ++#include_next ++ ++/* 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 */ +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/arc/libBrokenLocale.abilist +@@ -0,0 +1 @@ ++GLIBC_2.30 __ctype_get_mb_cur_max F +--- /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 +--- /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 +--- /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 +--- /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 +--- /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 +--- /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 +--- /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 +--- /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 +--- /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 +--- /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 +--- /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 +--- /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 ++ . */ ++ ++#include ++#include ++#include ++#include ++ ++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) +--- /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 ++ . */ ++ ++#ifndef MMAP_ARC_INTERNAL_H ++#define MMAP_ARC_INTERNAL_H ++ ++/* Determine the shift dynamically with getpagesize. */ ++#define MMAP2_PAGE_UNIT -1 ++ ++#include_next ++ ++#endif +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/arc/profil-counter.h +@@ -0,0 +1,2 @@ ++/* We can use the ix86 version. */ ++#include +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/arc/pt-vfork.S +@@ -0,0 +1 @@ ++/* Not needed. */ +--- /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 ++ . */ ++ ++#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) +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/arc/shlib-versions +@@ -0,0 +1,2 @@ ++DEFAULT GLIBC_2.30 ++ld=ld-linux-arc.so.2 +--- /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 ++ . */ ++ ++#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 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/arc/sigcontextinfo.h +@@ -0,0 +1,23 @@ ++/* 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 ++ . */ ++ ++#include ++#include "kernel-features.h" ++ ++#define SIGCONTEXT int _code, struct ucontext_t * ++#define GET_PC(ctx) ((void *) (ctx)->uc_mcontext.__scratch.__ret) +--- /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 ++ . */ ++ ++#include ++#include ++#include ++ ++/* 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) +--- /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 ++ . */ ++ ++#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) +--- /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 ++ . */ ++ ++#ifndef _SYS_CACHECTL_H ++#define _SYS_CACHECTL_H 1 ++ ++#include ++ ++/* Get the kernel definition for the op bits. */ ++#include ++ ++__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 */ +--- /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 ++ . */ ++ ++/* System V/ARC ABI compliant context switching support. */ ++ ++#ifndef _SYS_UCONTEXT_H ++#define _SYS_UCONTEXT_H 1 ++ ++#include ++ ++#include ++#include ++ ++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 */ +--- /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 ++ . */ ++ ++#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 ++ ++struct user { ++ int dummy; ++}; ++ ++#endif /* sys/user.h */ +--- /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 ++ . */ ++ ++#include ++ ++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) +--- /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 +--- /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 ++ . */ ++ ++#include ++#include ++ ++/* 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 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/arc/sysdep.h +@@ -0,0 +1,251 @@ ++/* 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 ++ . */ ++ ++#ifndef _LINUX_ARC_SYSDEP_H ++#define _LINUX_ARC_SYSDEP_H 1 ++ ++#include ++#include ++#include ++ ++/* For RTLD_PRIVATE_ERRNO. */ ++#include ++ ++#include ++ ++#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 ++ ++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 */ +--- /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 ++ . */ ++ ++#ifndef _LINUX_ARC_UCONTEXT_MACROS_H ++#define _LINUX_ARC_UCONTEXT_MACROS_H ++ ++#include ++ ++#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 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/arc/ucontext_i.sym +@@ -0,0 +1,20 @@ ++#include ++#include ++#include ++#include ++ ++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) +--- /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 ++ . */ ++ ++#include ++#include ++#include ++#define _SIGNAL_H ++#include /* 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) +--- a/sysdeps/unix/sysv/linux/syscall-names.list ++++ b/sysdeps/unix/sysv/linux/syscall-names.list +@@ -41,6 +41,9 @@ + afs_syscall + alarm + alloc_hugepages ++arc_gettls ++arc_settls ++arc_usr_cmpxchg + arch_prctl + arm_fadvise64_64 + arm_sync_file_range +--- a/timezone/zic.c ++++ b/timezone/zic.c +@@ -39,7 +39,7 @@ + #include + #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 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 From 97b91df38e1221ff5b9af584ef0b51fbc7758b3c Mon Sep 17 00:00:00 2001 From: Alexey Neyman Date: Sat, 22 Feb 2020 23:53:16 -0800 Subject: [PATCH 05/14] Add GMP 6.2.0 Signed-off-by: Alexey Neyman --- packages/gmp/6.2.0/chksum | 12 ++++++++++++ packages/gmp/6.2.0/version.desc | 0 2 files changed, 12 insertions(+) create mode 100644 packages/gmp/6.2.0/chksum create mode 100644 packages/gmp/6.2.0/version.desc 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/gmp/6.2.0/version.desc b/packages/gmp/6.2.0/version.desc new file mode 100644 index 00000000..e69de29b From 39910606b3a716ae2361deb0ad5ccf8aed20e5ce Mon Sep 17 00:00:00 2001 From: Alexey Neyman Date: Sun, 23 Feb 2020 00:24:40 -0800 Subject: [PATCH 06/14] Add make 4.3 Signed-off-by: Alexey Neyman --- packages/make/3.81/version.desc | 1 + packages/make/4.0/version.desc | 1 + packages/make/4.1/version.desc | 1 + packages/make/4.2.1/version.desc | 2 ++ packages/make/4.3/chksum | 8 ++++++++ packages/make/4.3/version.desc | 0 packages/make/package.desc | 2 +- 7 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 packages/make/4.3/chksum create mode 100644 packages/make/4.3/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 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' From 0c5f61514b48893508b32710d44efa27def79acd Mon Sep 17 00:00:00 2001 From: Alexey Neyman Date: Sun, 23 Feb 2020 00:57:47 -0800 Subject: [PATCH 07/14] Add ncurses 6.2 Signed-off-by: Alexey Neyman --- packages/ncurses/6.2/chksum | 4 ++++ packages/ncurses/6.2/version.desc | 0 2 files changed, 4 insertions(+) create mode 100644 packages/ncurses/6.2/chksum create mode 100644 packages/ncurses/6.2/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 From b9600c9eba370e6dca829a6b13ff6e3d0745a2e3 Mon Sep 17 00:00:00 2001 From: Alexey Neyman Date: Sun, 23 Feb 2020 01:22:38 -0800 Subject: [PATCH 08/14] Add newlib 3.2.0, 3.3.0 Signed-off-by: Alexey Neyman --- ...000-fix-unaligned-access-memcpy-m68k.patch | 25 +++++++++++++++++++ .../newlib/3.2.0/0001-fix-mt-cflags.patch | 13 ++++++++++ packages/newlib/3.2.0/chksum | 4 +++ packages/newlib/3.2.0/version.desc | 0 ...000-fix-unaligned-access-memcpy-m68k.patch | 25 +++++++++++++++++++ .../newlib/3.3.0/0001-fix-mt-cflags.patch | 13 ++++++++++ packages/newlib/3.3.0/chksum | 4 +++ packages/newlib/3.3.0/version.desc | 0 8 files changed, 84 insertions(+) create mode 100644 packages/newlib/3.2.0/0000-fix-unaligned-access-memcpy-m68k.patch create mode 100644 packages/newlib/3.2.0/0001-fix-mt-cflags.patch create mode 100644 packages/newlib/3.2.0/chksum create mode 100644 packages/newlib/3.2.0/version.desc create mode 100644 packages/newlib/3.3.0/0000-fix-unaligned-access-memcpy-m68k.patch create mode 100644 packages/newlib/3.3.0/0001-fix-mt-cflags.patch create mode 100644 packages/newlib/3.3.0/chksum create mode 100644 packages/newlib/3.3.0/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 +[yann.morin.1998@anciens.enib.fr: update for 1.19.0 from 1.18.0] +Signed-off-by: "Yann E. MORIN" +[austinpmorton@gmail.com: update for 1.20.0 from 1.19.0] +Signed-off-by: Austin Morton +--- + 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 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 +[yann.morin.1998@anciens.enib.fr: update for 1.19.0 from 1.18.0] +Signed-off-by: "Yann E. MORIN" +[austinpmorton@gmail.com: update for 1.20.0 from 1.19.0] +Signed-off-by: Austin Morton +--- + 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 From 9089918053f87a9265d0427aed17078f9b8aebe5 Mon Sep 17 00:00:00 2001 From: Alexey Neyman Date: Sun, 23 Feb 2020 01:24:25 -0800 Subject: [PATCH 09/14] Add strace-5.5 Signed-off-by: Alexey Neyman --- packages/strace/5.5/chksum | 4 ++++ packages/strace/5.5/version.desc | 0 2 files changed, 4 insertions(+) create mode 100644 packages/strace/5.5/chksum create mode 100644 packages/strace/5.5/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 From 995e2e6fae3955f0181aaf96d94555616a872dbf Mon Sep 17 00:00:00 2001 From: Alexey Neyman Date: Sun, 23 Feb 2020 01:35:45 -0800 Subject: [PATCH 10/14] Add uClibc-ng 1.0.33 Signed-off-by: Alexey Neyman --- packages/uClibc-ng/1.0.33/chksum | 16 ++++++++++++++++ packages/uClibc-ng/1.0.33/version.desc | 0 2 files changed, 16 insertions(+) create mode 100644 packages/uClibc-ng/1.0.33/chksum create mode 100644 packages/uClibc-ng/1.0.33/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..5bf9608c --- /dev/null +++ b/packages/uClibc-ng/1.0.33/chksum @@ -0,0 +1,16 @@ +md5 uClibc-ng-1.0.33.tar.xz 4e4a5e5acec0c7541eddcc80ebcf6765 +sha1 uClibc-ng-1.0.33.tar.xz 1a3153bc482695672287c80a428fda994cd3c8d2 +sha256 uClibc-ng-1.0.33.tar.xz 4dfa9d438863f741a5a2f384d467fa9da397fd82acfcb9bb26f5d5634d70153a +sha512 uClibc-ng-1.0.33.tar.xz 61b5514ab430486f08f3e20202db54980c3c65255faa0fc0eff06a4b3449aaf0ebee12022af517fd9d554903a8d30c85c7856dd28c19201e4fca61dda0f3b96a +md5 uClibc-ng-1.0.33.tar.lz 3a22e02ced95c89829d2ba97c34564b4 +sha1 uClibc-ng-1.0.33.tar.lz 26656132b07e593c9aa20ba3308c1982c641f102 +sha256 uClibc-ng-1.0.33.tar.lz fab08e1401ebd55714f3b38bac634bbceea65ccf13d87a31f4d517c8690e0ffe +sha512 uClibc-ng-1.0.33.tar.lz 1c79660a1ecc232893b927af2882b48ce81787e0f9a9c1e3dd5f1401be2d92ca054b571b16d8e14f2d782b37b683f5e8113d95b49d19bd0943ad8ae70c30a2b6 +md5 uClibc-ng-1.0.33.tar.bz2 dbdd55667073b4348aa41886948b7f54 +sha1 uClibc-ng-1.0.33.tar.bz2 120790eec0bde406a4d528f0163543b82ccd0538 +sha256 uClibc-ng-1.0.33.tar.bz2 13ffacc47866deb00703ea480874340e98735152ab3499bae43b43badef12a33 +sha512 uClibc-ng-1.0.33.tar.bz2 379f2ebc0f5e2abb60bbfc17a4ce65da09555d6177b634688f6cd4d3f4bdd44fade8120429c81364eb94feda68baed9e7846f4162367bffa6eedf44744ebb33c +md5 uClibc-ng-1.0.33.tar.gz 77a451bee3a7d8becb980e18ea4e79e2 +sha1 uClibc-ng-1.0.33.tar.gz 37cddab2fbe1a28e4166553c2679d887aa78db52 +sha256 uClibc-ng-1.0.33.tar.gz a82ec016d105d808a9fad18016ba630bb62300fb126cddecf572dccfa33d74f8 +sha512 uClibc-ng-1.0.33.tar.gz 5b3db242094fbfeab79ae1f64aadfbb6849dcfd6b1eea93cb9c1d32be544e9bc39846383c46622669259f0750f9da73177c4c7bc16ddea02c5202ef9f1fb5a10 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 From ab42e62466f94cad69e32d62b627693d79044486 Mon Sep 17 00:00:00 2001 From: Alexey Neyman Date: Sun, 23 Feb 2020 19:27:44 -0800 Subject: [PATCH 11/14] New Linux versions Signed-off-by: Alexey Neyman --- packages/linux/3.16.80/chksum | 8 -------- packages/linux/3.16.82/chksum | 8 ++++++++ packages/linux/{3.16.80 => 3.16.82}/version.desc | 0 packages/linux/4.14.160/chksum | 8 -------- packages/linux/4.14.171/chksum | 8 ++++++++ packages/linux/{4.14.160 => 4.14.171}/version.desc | 0 packages/linux/4.19.105/chksum | 8 ++++++++ packages/linux/{4.19.91 => 4.19.105}/version.desc | 0 packages/linux/4.19.91/chksum | 8 -------- packages/linux/4.4.207/chksum | 8 -------- packages/linux/4.4.214/chksum | 8 ++++++++ packages/linux/{4.4.207 => 4.4.214}/version.desc | 0 packages/linux/4.9.207/chksum | 8 -------- packages/linux/4.9.214/chksum | 8 ++++++++ packages/linux/{4.9.207 => 4.9.214}/version.desc | 0 packages/linux/5.4.21/chksum | 8 ++++++++ packages/linux/{5.4.6 => 5.4.21}/version.desc | 0 packages/linux/5.4.6/chksum | 8 -------- packages/linux/5.5.5/chksum | 8 ++++++++ packages/linux/5.5.5/version.desc | 0 20 files changed, 56 insertions(+), 48 deletions(-) delete mode 100644 packages/linux/3.16.80/chksum create mode 100644 packages/linux/3.16.82/chksum rename packages/linux/{3.16.80 => 3.16.82}/version.desc (100%) delete mode 100644 packages/linux/4.14.160/chksum create mode 100644 packages/linux/4.14.171/chksum rename packages/linux/{4.14.160 => 4.14.171}/version.desc (100%) create mode 100644 packages/linux/4.19.105/chksum rename packages/linux/{4.19.91 => 4.19.105}/version.desc (100%) delete mode 100644 packages/linux/4.19.91/chksum delete mode 100644 packages/linux/4.4.207/chksum create mode 100644 packages/linux/4.4.214/chksum rename packages/linux/{4.4.207 => 4.4.214}/version.desc (100%) delete mode 100644 packages/linux/4.9.207/chksum create mode 100644 packages/linux/4.9.214/chksum rename packages/linux/{4.9.207 => 4.9.214}/version.desc (100%) create mode 100644 packages/linux/5.4.21/chksum rename packages/linux/{5.4.6 => 5.4.21}/version.desc (100%) delete mode 100644 packages/linux/5.4.6/chksum create mode 100644 packages/linux/5.5.5/chksum create mode 100644 packages/linux/5.5.5/version.desc diff --git a/packages/linux/3.16.80/chksum b/packages/linux/3.16.80/chksum deleted file mode 100644 index e8fa9509..00000000 --- a/packages/linux/3.16.80/chksum +++ /dev/null @@ -1,8 +0,0 @@ -md5 linux-3.16.80.tar.xz 0a19581323767642c3a3cea3c39f605d -sha1 linux-3.16.80.tar.xz f7f589a4baeaf2d8ee87ee170518856d0e3ec831 -sha256 linux-3.16.80.tar.xz 8dfd2a0f72855ef426057745de68e1c10f189785da4d679ccd1e63e2c67d8ebf -sha512 linux-3.16.80.tar.xz 53a632372993946009fed7bcab58c39d0e7d89b5377126114d4f810cd3093dbad3dcf03822787128cec6147ee492a8c1253372f6343f7a31dd581aa00ec37d1c -md5 linux-3.16.80.tar.gz b101dff0faa235fe3726124a8a843695 -sha1 linux-3.16.80.tar.gz c3d2932300ba149a83afc79d78f72183e19fda3d -sha256 linux-3.16.80.tar.gz 141e205f04b13d749f8e8de5bd6bfa7dc39e30f854408d6c003e0ccc1df166dc -sha512 linux-3.16.80.tar.gz 47e0c6992a73926a8730180736afede8bf46c5449545d1fb913215613ae80a97e5b44d80e92000318cbdc6855ba61a9f540c4e228da0d76abb59f767c8e8fc6b 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.80/version.desc b/packages/linux/3.16.82/version.desc similarity index 100% rename from packages/linux/3.16.80/version.desc rename to packages/linux/3.16.82/version.desc diff --git a/packages/linux/4.14.160/chksum b/packages/linux/4.14.160/chksum deleted file mode 100644 index a0a6aff4..00000000 --- a/packages/linux/4.14.160/chksum +++ /dev/null @@ -1,8 +0,0 @@ -md5 linux-4.14.160.tar.xz 286501d9badbb724fddbc6e20e46aa1e -sha1 linux-4.14.160.tar.xz 19746512b1d8a123f5590b034b27917147762a2c -sha256 linux-4.14.160.tar.xz c60326bad1bcdede514ca8a0bb96843fa7578ef00829cced6218b888b2efa92c -sha512 linux-4.14.160.tar.xz 41f459a20e2759d2d24e9010081b1c924a6dd27c8f838a4ada6192fa3aa1adc2898276f272a519e6ae639f7002b31e2d6811afc7d6f65e1dafd8bfe246f2770d -md5 linux-4.14.160.tar.gz a0270ae407ea2c67d6c50ca942cadb28 -sha1 linux-4.14.160.tar.gz 9be3fe439e90f7d6789c5418d8699e18e50f7124 -sha256 linux-4.14.160.tar.gz 6da464dd58594c17193ea0adc309171d1a7c64fadd52da672aaa048bc02fb240 -sha512 linux-4.14.160.tar.gz 85e9275695676935b7d63ba8404b6791808785b592af9328eab56f16c4e864c07378819e29ca04c93fa479aff20a963bddbcdf6834579cbead691490a8ff6f7e 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.160/version.desc b/packages/linux/4.14.171/version.desc similarity index 100% rename from packages/linux/4.14.160/version.desc rename to 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.91/version.desc b/packages/linux/4.19.105/version.desc similarity index 100% rename from packages/linux/4.19.91/version.desc rename to packages/linux/4.19.105/version.desc diff --git a/packages/linux/4.19.91/chksum b/packages/linux/4.19.91/chksum deleted file mode 100644 index e142ed29..00000000 --- a/packages/linux/4.19.91/chksum +++ /dev/null @@ -1,8 +0,0 @@ -md5 linux-4.19.91.tar.xz 72d77599f5b7165846792adc8ddef670 -sha1 linux-4.19.91.tar.xz 387b8c47361c3b74fb1170afd9405557fc7b5c3d -sha256 linux-4.19.91.tar.xz f403c3dee12ded0af1889c78871abf7a531a978ba423f1ca772de702a92c3447 -sha512 linux-4.19.91.tar.xz 887105d90c7fc475ee93670240ddeaff931d5d8417389ba9979f384da846bdea704a27a9afc195d7007b02b1bb8eff466285be947d51639b4ff1d0c2053f5f7a -md5 linux-4.19.91.tar.gz 50711e32accf7a31ea04e092f49e3acd -sha1 linux-4.19.91.tar.gz 55bf3912f044a134e42fa3c33f2e3d7d10a27523 -sha256 linux-4.19.91.tar.gz f5a9e6774a4ba2d59537d0dbedda0ebccf81d1c072b3e6f1707b3c97fb0edb96 -sha512 linux-4.19.91.tar.gz b583d2195a8f080f52e249df4ef39761ed0db92af3eedf11a891697ea69a0b044285e11eec9f116d3c1045a0818ec5598c6d205f59440e0cfda7f6c14266768b diff --git a/packages/linux/4.4.207/chksum b/packages/linux/4.4.207/chksum deleted file mode 100644 index e161ba42..00000000 --- a/packages/linux/4.4.207/chksum +++ /dev/null @@ -1,8 +0,0 @@ -md5 linux-4.4.207.tar.xz 6ad0451eeb065e08f49161506a4f29c7 -sha1 linux-4.4.207.tar.xz 20bf62de50f3b4442689e1abbb4c0f952a154a6f -sha256 linux-4.4.207.tar.xz 66c906077589124997ac3b92cda4de44cb206876b9e1a7d1f4840e6aa5a28e08 -sha512 linux-4.4.207.tar.xz 979c4ba89f2d528a25a033e93101fec37b9860062d57d1f3e2103b59acf02ae71a254af2acd4826080e80032e0a5e9c39ede829eb433768c8e4fa1238a8ade1e -md5 linux-4.4.207.tar.gz 3126845120f4266020632d8291282c96 -sha1 linux-4.4.207.tar.gz 50f2fbd82d6092f9839c45883ecbf071969cac5a -sha256 linux-4.4.207.tar.gz 7c903730e0bbce6c7780d9f2b546c4f95c64b8c98e84d6db1cc814c0f90e0283 -sha512 linux-4.4.207.tar.gz e00d90739c52cb44c4097e6424458d0aa6f1cfa44f9d287b1dbe8eb1bf4bdfdae4eff090d0c39dee7af0d6abf374bdf80a11e9f6631f65394bece8e6c8f3999b 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.207/version.desc b/packages/linux/4.4.214/version.desc similarity index 100% rename from packages/linux/4.4.207/version.desc rename to packages/linux/4.4.214/version.desc diff --git a/packages/linux/4.9.207/chksum b/packages/linux/4.9.207/chksum deleted file mode 100644 index 4ad813e7..00000000 --- a/packages/linux/4.9.207/chksum +++ /dev/null @@ -1,8 +0,0 @@ -md5 linux-4.9.207.tar.xz b6df01e075297a783b69159b9eceb62d -sha1 linux-4.9.207.tar.xz b1ff7e105a0bcc65a980831dfb5a0046934174fe -sha256 linux-4.9.207.tar.xz ca86637e7b5bec65eeb7da695824e0e8aca5ba52eb742885f0b7241977400124 -sha512 linux-4.9.207.tar.xz a3909467f7e2f98f671ed59bbecd5229c3255f41387be449bbb4e1a7cbf0b801ebede2b9b66fcf9e88e947513ecc92dc2e0944f1190c08fdcf6a0c53f971469b -md5 linux-4.9.207.tar.gz 6591052aacd2799345784e63f6c83c8e -sha1 linux-4.9.207.tar.gz 86cdc5ba4e4bebc4dac24fb9f4a9816218f2e926 -sha256 linux-4.9.207.tar.gz e59fac460e0efc26ae5faa40842bdd40bf963ceb65e121c1a91089d160cbf45a -sha512 linux-4.9.207.tar.gz 2a75e1e458a7622b41e7cc2500cc4cf16bb4fe8a19aa68e50263752c96c3d762acd097eaf42fe527f8f30f3186e6b0c3f8326b62580275d8a59518eb00c6e6fa 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.207/version.desc b/packages/linux/4.9.214/version.desc similarity index 100% rename from packages/linux/4.9.207/version.desc rename to packages/linux/4.9.214/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.6/version.desc b/packages/linux/5.4.21/version.desc similarity index 100% rename from packages/linux/5.4.6/version.desc rename to packages/linux/5.4.21/version.desc diff --git a/packages/linux/5.4.6/chksum b/packages/linux/5.4.6/chksum deleted file mode 100644 index b44b92ed..00000000 --- a/packages/linux/5.4.6/chksum +++ /dev/null @@ -1,8 +0,0 @@ -md5 linux-5.4.6.tar.xz d77c45902ea8cdbbffed46ae92ae5ec8 -sha1 linux-5.4.6.tar.xz 456bd2281815f427ee9259ab9824d9f71341920d -sha256 linux-5.4.6.tar.xz fda561bcdea397ddd59656319c53871002938b19b554f30efed90affa30989c8 -sha512 linux-5.4.6.tar.xz 9e1153e80303d6d5016856a25f3757259a3a428bad11208192315088d1f1a09957f5b8e966ab8cb5842ce1a740760f87474066294f8b410e9c44c810838bcdac -md5 linux-5.4.6.tar.gz a6a080e7aded6a173a5a6a815ddb635d -sha1 linux-5.4.6.tar.gz 95434f1f42b42cfb6d1201edbdb8670186ac27ff -sha256 linux-5.4.6.tar.gz 90fb0c75e956f3f5820cea3bd0d5cb3349bb217bc495a8267fe27d966a32b1ee -sha512 linux-5.4.6.tar.gz a2699fe1014463d40ef3c3e8eb19e4786eb7882873d5b6e3e0d93498f9d82224215cee143b7c96e09e39c50c9786c24654f270b0a52ec91984b15d243a414376 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 From 66fda907280a69943066fb2f4c9bb162e077ec8d Mon Sep 17 00:00:00 2001 From: Alexey Neyman Date: Sun, 23 Feb 2020 20:10:31 -0800 Subject: [PATCH 12/14] elf2flt: handle binutils 2.34 API temporary patch, PR pending upstream Signed-off-by: Alexey Neyman --- .../0000-support-binutils-2.34.patch | 447 ++++++++++++++++++ 1 file changed, 447 insertions(+) create mode 100644 packages/elf2flt/git-453398f9/0000-support-binutils-2.34.patch 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 +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 +--- + 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 ], ++ [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 ], ++ [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 \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 \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 \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 \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 \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 \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 \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 ++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 ++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 From f290ad24173549c46ff070df86335aebc50b1bde Mon Sep 17 00:00:00 2001 From: Alexey Neyman Date: Tue, 25 Feb 2020 23:30:11 -0800 Subject: [PATCH 13/14] Update ARC patch to glibc 2.31 Build-tested only. Signed-off-by: Alexey Neyman --- .../2.31/0001-Add-ARC-architecture.patch | 1035 ++++++++++++++--- 1 file changed, 865 insertions(+), 170 deletions(-) diff --git a/packages/glibc/2.31/0001-Add-ARC-architecture.patch b/packages/glibc/2.31/0001-Add-ARC-architecture.patch index 35b5c132..6b5d514d 100644 --- a/packages/glibc/2.31/0001-Add-ARC-architecture.patch +++ b/packages/glibc/2.31/0001-Add-ARC-architecture.patch @@ -8,117 +8,219 @@ git diff glibc-2.30..arc-2.30-2019.09.06 ':!NEWS' ':!ChangeLog' [1] https://github.com/foss-for-synopsys-dwc-arc-processors/glibc Signed-off-by: Alexey Brodkin ---- ---- - 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/endian.h | 12 - 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 | 71 - sysdeps/arc/nptl/bits/semaphore.h | 32 - sysdeps/arc/nptl/pthread-offsets.h | 4 - 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/bits/procfs.h | 35 - sysdeps/unix/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 - sysdeps/unix/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 +++++++ - sysdeps/unix/sysv/linux/arc/libpthread.abilist | 240 ++ - sysdeps/unix/sysv/linux/arc/libresolv.abilist | 79 - sysdeps/unix/sysv/linux/arc/librt.abilist | 35 - sysdeps/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/profil-counter.h | 2 - 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 | 23 - 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 | 251 ++ - 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 - 104 files changed, 7120 insertions(+), 13 deletions(-) +[Updated to glibc 2.31: remove headers that became generic +(including pthread-offsets.h which had incorrect offsets copied +from 64-bit platforms), remove 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 @@ +@@ -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. */ @@ -127,7 +229,7 @@ Signed-off-by: Alexey Brodkin #define EM_OPEN8 196 /* Open8 RISC */ #define EM_RL78 197 /* Renesas RL78 */ #define EM_VIDEOCORE5 198 /* Broadcom VideoCore V */ -@@ -4027,6 +4027,74 @@ +@@ -4027,6 +4027,74 @@ enum #define R_NDS32_TLS_TPOFF 102 #define R_NDS32_TLS_DESC 119 @@ -202,9 +304,11 @@ Signed-off-by: Alexey Brodkin __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 @@ +@@ -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 @@ -212,7 +316,7 @@ Signed-off-by: Alexey Brodkin 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 @@ +@@ -62,10 +63,6 @@ lib-modules := charmap-dir simple-hash xmalloc xstrdup \ GPERF = gperf GPERFFLAGS = -acCgopt -k1,2,5,9,$$ -L ANSI-C @@ -223,9 +327,11 @@ Signed-off-by: Alexey Brodkin 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 @@ +@@ -155,6 +155,9 @@ class Context(object): 'cfg': ['--disable-multi-arch']}]) self.add_config(arch='aarch64_be', os_name='linux-gnu') @@ -235,7 +341,7 @@ Signed-off-by: Alexey Brodkin self.add_config(arch='alpha', os_name='linux-gnu') self.add_config(arch='arm', -@@ -1201,6 +1204,7 @@ +@@ -1201,6 +1204,7 @@ class LinuxHeadersPolicyForUpdateSyscalls(object): def install_linux_headers(policy, cmdlist): """Install Linux kernel headers.""" arch_map = {'aarch64': 'arm64', @@ -243,9 +349,11 @@ Signed-off-by: Alexey Brodkin '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 @@ +@@ -199,7 +199,8 @@ extern UDItype __udiv_qrnnd (UDItype *, UDItype, UDItype, UDItype); : "%r" ((USItype) (ah)), \ "rICal" ((USItype) (bh)), \ "%r" ((USItype) (al)), \ @@ -255,7 +363,7 @@ Signed-off-by: Alexey Brodkin #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 @@ +@@ -207,7 +208,8 @@ extern UDItype __udiv_qrnnd (UDItype *, UDItype, UDItype, UDItype); : "r" ((USItype) (ah)), \ "rICal" ((USItype) (bh)), \ "r" ((USItype) (al)), \ @@ -265,9 +373,11 @@ Signed-off-by: Alexey Brodkin #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 @@ +@@ -188,12 +188,7 @@ CFLAGS-support_paths.c = \ -DSBINDIR_PATH=\"$(sbindir)\" \ -DROOTSBINDIR_PATH=\"$(rootsbindir)\" @@ -280,6 +390,9 @@ Signed-off-by: Alexey Brodkin 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 @@ @@ -287,6 +400,9 @@ Signed-off-by: Alexey Brodkin +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 @@ @@ -315,6 +431,9 @@ Signed-off-by: Alexey Brodkin +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 @@ @@ -324,6 +443,9 @@ Signed-off-by: Alexey Brodkin + __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 @@ @@ -377,11 +499,17 @@ Signed-off-by: Alexey Brodkin + 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 @@ @@ -458,13 +586,18 @@ Signed-off-by: Alexey Brodkin +#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/endian.h -@@ -0,0 +1,12 @@ ++++ 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 _ENDIAN_H -+# error "Never use directly; include instead." ++#ifndef _BITS_ENDIAN_H ++# error "Never use directly; include instead." +#endif + +#ifdef __LITTLE_ENDIAN__ @@ -473,6 +606,10 @@ Signed-off-by: Alexey Brodkin +#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 @@ @@ -548,6 +685,9 @@ Signed-off-by: Alexey Brodkin +/* 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 @@ @@ -603,6 +743,9 @@ Signed-off-by: Alexey Brodkin + 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 @@ @@ -632,14 +775,23 @@ Signed-off-by: Alexey Brodkin +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 @@ @@ -657,6 +809,9 @@ Signed-off-by: Alexey Brodkin +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 @@ @@ -671,6 +826,9 @@ Signed-off-by: Alexey Brodkin +# 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 @@ @@ -1014,6 +1172,9 @@ Signed-off-by: Alexey Brodkin +} + +#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 @@ @@ -1056,6 +1217,9 @@ Signed-off-by: Alexey Brodkin +#define reloc_offset reloc_index * sizeof (PLTREL) + +#include +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 @@ @@ -1084,6 +1248,9 @@ Signed-off-by: Alexey Brodkin +#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 @@ @@ -1117,6 +1284,9 @@ Signed-off-by: Alexey Brodkin + +/* 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 @@ @@ -1200,6 +1370,9 @@ Signed-off-by: Alexey Brodkin + 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 @@ @@ -1208,6 +1381,9 @@ Signed-off-by: Alexey Brodkin +#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 @@ @@ -1232,6 +1408,9 @@ Signed-off-by: Alexey Brodkin +#define FIRST_PSEUDO_REGISTER 40 + +#include +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 @@ @@ -1258,6 +1437,9 @@ Signed-off-by: Alexey Brodkin +#include + +#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 @@ @@ -1308,6 +1490,9 @@ Signed-off-by: Alexey Brodkin + +/* 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 @@ @@ -1358,6 +1543,9 @@ Signed-off-by: Alexey Brodkin + +/* 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 @@ @@ -1404,6 +1592,9 @@ Signed-off-by: Alexey Brodkin +#include_next + +#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 @@ @@ -1434,6 +1625,9 @@ Signed-off-by: Alexey Brodkin + 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 @@ @@ -1472,6 +1666,9 @@ Signed-off-by: Alexey Brodkin + __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 @@ @@ -1498,10 +1695,16 @@ Signed-off-by: Alexey Brodkin +#define uatomic32_t unsigned int + +#include +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 @@ @@ -1895,10 +2098,16 @@ Signed-off-by: Alexey Brodkin +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 @@ @@ -1929,6 +2138,9 @@ Signed-off-by: Alexey Brodkin +#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 @@ @@ -1959,6 +2171,9 @@ Signed-off-by: Alexey Brodkin +#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 @@ @@ -1984,9 +2199,12 @@ Signed-off-by: Alexey Brodkin +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,71 @@ +@@ -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. @@ -2029,35 +2247,10 @@ Signed-off-by: Alexey Brodkin +#define __LOCK_ALIGNMENT +#define __ONCE_ALIGNMENT + -+struct __pthread_rwlock_arch_t -+{ -+ unsigned int __readers; -+ unsigned int __writers; -+ unsigned int __wrphase_futex; -+ unsigned int __writers_futex; -+ unsigned int __pad3; -+ unsigned int __pad4; -+#if __BYTE_ORDER == __BIG_ENDIAN -+ unsigned char __pad1; -+ unsigned char __pad2; -+ unsigned char __shared; -+ /* FLAGS must stay at this position in the structure to maintain -+ binary compatibility. */ -+ unsigned char __flags; -+#else -+ /* FLAGS must stay at this position in the structure to maintain -+ binary compatibility. */ -+ unsigned char __flags; -+ unsigned char __shared; -+ unsigned char __pad1; -+ unsigned char __pad2; -+#endif -+ int __cur_writer; -+}; -+ -+#define __PTHREAD_RWLOCK_ELISION_EXTRA 0 -+ +#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 @@ @@ -2093,13 +2286,9 @@ Signed-off-by: Alexey Brodkin + char __size[__SIZEOF_SEM_T]; + long int __align; +} sem_t; ---- /dev/null -+++ b/sysdeps/arc/nptl/pthread-offsets.h -@@ -0,0 +1,4 @@ -+#define __PTHREAD_MUTEX_NUSERS_OFFSET 12 -+#define __PTHREAD_MUTEX_KIND_OFFSET 16 -+#define __PTHREAD_MUTEX_SPINS_OFFSET 20 -+#define __PTHREAD_MUTEX_LIST_OFFSET 24 +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 @@ @@ -2135,6 +2324,9 @@ Signed-off-by: Alexey Brodkin + +/* 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 @@ @@ -2149,6 +2341,9 @@ Signed-off-by: Alexey Brodkin +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 @@ @@ -2302,6 +2497,9 @@ Signed-off-by: Alexey Brodkin +#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 @@ @@ -2320,6 +2518,9 @@ Signed-off-by: Alexey Brodkin + ;; + +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 @@ @@ -2389,6 +2590,9 @@ Signed-off-by: Alexey Brodkin +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 @@ @@ -2465,6 +2669,9 @@ Signed-off-by: Alexey Brodkin + } 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 @@ @@ -2519,6 +2726,9 @@ Signed-off-by: Alexey Brodkin + + 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 @@ @@ -2555,6 +2765,9 @@ Signed-off-by: Alexey Brodkin +#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 @@ @@ -2647,6 +2860,9 @@ Signed-off-by: Alexey Brodkin + .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 @@ @@ -2698,6 +2914,9 @@ Signed-off-by: Alexey Brodkin +# 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 @@ @@ -2748,6 +2967,9 @@ Signed-off-by: Alexey Brodkin + "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 @@ @@ -2774,12 +2996,18 @@ Signed-off-by: Alexey Brodkin +#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 @@ @@ -2803,6 +3031,9 @@ Signed-off-by: Alexey Brodkin +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 @@ @@ -2822,6 +3053,332 @@ Signed-off-by: Alexey Brodkin + __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 @@ @@ -2860,6 +3417,9 @@ Signed-off-by: Alexey Brodkin + +/* 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 @@ @@ -2875,6 +3435,9 @@ Signed-off-by: Alexey Brodkin +} __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 @@ @@ -2945,6 +3508,9 @@ Signed-off-by: Alexey Brodkin +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 @@ @@ -3046,6 +3612,9 @@ Signed-off-by: Alexey Brodkin +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 @@ @@ -3053,6 +3622,9 @@ Signed-off-by: Alexey Brodkin + # 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 @@ @@ -3060,6 +3632,9 @@ Signed-off-by: Alexey Brodkin +# 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 @@ @@ -3147,6 +3722,9 @@ Signed-off-by: Alexey Brodkin +} + +#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 @@ @@ -3213,6 +3791,9 @@ Signed-off-by: Alexey Brodkin + +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 @@ @@ -3237,6 +3818,9 @@ Signed-off-by: Alexey Brodkin +#include /* 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 @@ @@ -3246,6 +3830,9 @@ Signed-off-by: Alexey Brodkin +#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 @@ @@ -3277,6 +3864,9 @@ Signed-off-by: Alexey Brodkin + +#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 @@ @@ -3289,6 +3879,9 @@ Signed-off-by: Alexey Brodkin +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 @@ @@ -3324,10 +3917,16 @@ Signed-off-by: Alexey Brodkin +#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 @@ @@ -3335,6 +3934,9 @@ Signed-off-by: Alexey Brodkin +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 @@ @@ -5422,11 +6024,17 @@ Signed-off-by: Alexey Brodkin +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 @@ @@ -5439,6 +6047,9 @@ Signed-off-by: Alexey Brodkin +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 @@ @@ -6195,6 +6806,9 @@ Signed-off-by: Alexey Brodkin +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 @@ @@ -6438,6 +7052,9 @@ Signed-off-by: Alexey Brodkin +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 @@ @@ -6520,6 +7137,9 @@ Signed-off-by: Alexey Brodkin +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 @@ @@ -6558,6 +7178,9 @@ Signed-off-by: Alexey Brodkin +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 @@ @@ -6601,6 +7224,9 @@ Signed-off-by: Alexey Brodkin +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 @@ @@ -6610,6 +7236,9 @@ Signed-off-by: Alexey Brodkin +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 @@ @@ -6629,6 +7258,9 @@ Signed-off-by: Alexey Brodkin +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 @@ @@ -6707,6 +7339,9 @@ Signed-off-by: Alexey Brodkin +} + +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 @@ @@ -6737,15 +7372,16 @@ Signed-off-by: Alexey Brodkin +#include_next + +#endif ---- /dev/null -+++ b/sysdeps/unix/sysv/linux/arc/profil-counter.h -@@ -0,0 +1,2 @@ -+/* We can use the ix86 version. */ -+#include +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 @@ @@ -6841,11 +7477,17 @@ Signed-off-by: Alexey Brodkin + /* 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 @@ @@ -6880,9 +7522,12 @@ Signed-off-by: Alexey Brodkin +#define RESET_SA_RESTORER(act, kact) + +#include +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,23 @@ +@@ -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. @@ -6901,11 +7546,22 @@ Signed-off-by: Alexey Brodkin + License along with the GNU C Library; if not, see + . */ + -+#include -+#include "kernel-features.h" ++#ifndef _SIGCONTEXTINFO_H ++#define _SIGCONTEXTINFO_H + -+#define SIGCONTEXT int _code, struct ucontext_t * -+#define GET_PC(ctx) ((void *) (ctx)->uc_mcontext.__scratch.__ret) ++#include ++#include ++ ++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 @@ @@ -6938,6 +7594,9 @@ Signed-off-by: Alexey Brodkin + 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 @@ @@ -7033,6 +7692,9 @@ Signed-off-by: Alexey Brodkin + +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 @@ @@ -7072,6 +7734,9 @@ Signed-off-by: Alexey Brodkin +__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 @@ @@ -7138,6 +7803,9 @@ Signed-off-by: Alexey Brodkin +#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 @@ @@ -7172,6 +7840,9 @@ Signed-off-by: Alexey Brodkin +}; + +#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 @@ @@ -7213,12 +7884,18 @@ Signed-off-by: Alexey Brodkin + 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 @@ @@ -7255,9 +7932,12 @@ Signed-off-by: Alexey Brodkin +#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,251 @@ +@@ -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. @@ -7279,7 +7959,6 @@ Signed-off-by: Alexey Brodkin +#ifndef _LINUX_ARC_SYSDEP_H +#define _LINUX_ARC_SYSDEP_H 1 + -+#include +#include +#include + @@ -7509,6 +8188,9 @@ Signed-off-by: Alexey Brodkin +#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 @@ @@ -7541,6 +8223,9 @@ Signed-off-by: Alexey Brodkin +#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 @@ @@ -7564,6 +8249,9 @@ Signed-off-by: Alexey Brodkin +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 @@ @@ -7609,9 +8297,11 @@ Signed-off-by: Alexey Brodkin +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 @@ +@@ -41,6 +41,9 @@ adjtimex afs_syscall alarm alloc_hugepages @@ -7621,9 +8311,11 @@ Signed-off-by: Alexey Brodkin 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 @@ +@@ -39,7 +39,7 @@ typedef int_fast64_t zic_t; #include #endif #ifdef S_IRUSR @@ -7632,3 +8324,6 @@ Signed-off-by: Alexey Brodkin #else #define MKDIR_UMASK 0755 #endif +-- +2.20.1 + From d978290f39196e7c2c72a154f32681386b4e27b8 Mon Sep 17 00:00:00 2001 From: Alexey Neyman Date: Wed, 26 Feb 2020 08:49:59 -0800 Subject: [PATCH 14/14] Set --with-cpu-{32,64} for multilib builds GLIBC 2.31 needs --with-cpu=ultrasparc for both 32/64-bits now, and --with-cpu only sets the CPU model for the "primary" bitness. Signed-off-by: Alexey Neyman --- config/arch/powerpc.in | 1 + config/arch/sparc.in | 1 + config/arch/x86.in | 1 + config/target.in | 5 +++++ scripts/build/arch/sparc.sh | 4 ++++ scripts/build/cc/gcc.sh | 4 ++-- scripts/functions | 44 +++++++++++++++++++++++++++---------- 7 files changed, 47 insertions(+), 13 deletions(-) diff --git a/config/arch/powerpc.in b/config/arch/powerpc.in index 40d88b91..83f0f77b 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 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/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/scripts/build/arch/sparc.sh b/scripts/build/arch/sparc.sh index 7433c4d4..484687d6 100644 --- a/scripts/build/arch/sparc.sh +++ b/scripts/build/arch/sparc.sh @@ -14,6 +14,10 @@ CT_DoArchTupleValues() { 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 [ -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 fi } 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/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)