Merge pull request #1309 from stilor/upgrades

Upgrades
This commit is contained in:
Alexey Neyman 2020-02-26 11:07:59 -08:00 committed by GitHub
commit c969be1880
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
76 changed files with 9899 additions and 77 deletions

View File

@ -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

View File

@ -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

View File

@ -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/

View File

@ -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"

View File

@ -91,10 +91,11 @@ CT_LIB_DIR=`pwd`
CT_TOP_DIR=`pwd`
CT_TARBALLS_DIR=`pwd`/temp.tarballs
CT_COMMON_SRC_DIR=`pwd`/temp.src
CT_WORK_DIR=`pwd`/temp.work
CT_SRC_DIR=`pwd`/temp.src
CT_LOG_LEVEL_MAX=EXTRA
CT_TEMP_PATCH_DIR=`pwd`/temp.patches
mkdir -p ${CT_TARBALLS_DIR}
mkdir -p "${CT_TARBALLS_DIR}" "${CT_WORK_DIR}"
# Does not matter, just to make the scripts load
CT_ARCH=arm
@ -223,6 +224,8 @@ matched=0
run_pkgversion()
{
local descr
while [ -n "${1}" ]; do
eval "local ${1}"
shift
@ -237,8 +240,13 @@ run_pkgversion()
;;
esac
fi
if [ -n "${ver}" ]; then
descr="${pkg_name}-${ver}"
else
descr="${pkg_name} revision ${repository_cset}"
fi
CT_DoStep INFO "Handling ${pkg_name}-${ver}"
CT_DoStep INFO "Handling ${descr}"
matched=$[matched+1]
# Create a temporary configuration head file
@ -268,30 +276,53 @@ source "config/global/build-behave.in"
source "config/versions/${master}.in"
EOF
# Common part of the config file
cat >temp.defconfig <<EOF
CT_${masterpfx}_USE_${originpfx}=y
CT_${pfx}_SRC_RELEASE=y
CT_${pfx}_V_${kcfg}=y
CT_SAVE_TARBALLS=y
CT_WORK_DIR="${CT_WORK_DIR}"
# CT_OVERRIDE_CONFIG_GUESS_SUB is not set
# CT_VERIFY_DOWNLOAD_DIGEST is not set
${signature+CT_VERIFY_DOWNLOAD_SIGNATURE=y}
# CT_OVERRIDE_CONFIG_GUESS_SUB is not set
EOF
if [ -n "${kcfg}" ]; then
# Regular tarball
cat >>temp.defconfig <<EOF
CT_${pfx}_SRC_RELEASE=y
CT_${pfx}_V_${kcfg}=y
EOF
else
# VCS-based release
cat >>temp.defconfig <<EOF
CT_${pfx}_SRC_DEVEL=y
CT_${pfx}_DEVEL_VCS="${vcs}"
CT_${pfx}_DEVEL_URL="${repository_url}"
CT_${pfx}_DEVEL_BRANCH="${repository_branch}"
CT_${pfx}_DEVEL_REVISION="${repository_cset}"
CT_${pfx}_DEVEL_SUBDIR="${repository_subdir}"
EOF
fi
./kconfig/conf --defconfig=temp.defconfig temp.in >/dev/null
CT_LoadConfig
CT_DoExecLog ALL mkdir -p "${CT_BUILD_DIR}"
rm -f .config .config.old temp.defconfig temp.in
if [ -n "${verify_urls}" ]; then
CT_DoLog EXTRA "Verifying URLs for ${pkg_name}-${ver}"
CT_PackageRun "${masterpfx}" check_pkg_urls
fi
if [ -n "${create_digests}" ]; then
CT_DoLog EXTRA "Creating digests for ${pkg_name}-${ver}"
CT_PackageRun "${masterpfx}" create_digests
if [ -n "${ver}" ]; then
if [ -n "${verify_urls}" ]; then
CT_DoLog EXTRA "Verifying URLs for ${descr}"
CT_PackageRun "${masterpfx}" check_pkg_urls
fi
if [ -n "${create_digests}" ]; then
CT_DoLog EXTRA "Creating digests for ${descr}"
CT_PackageRun "${masterpfx}" create_digests
fi
else
CT_DoLog EXTRA "Not verifying URLs or creating digests for ${descr} (devel release)"
fi
if [ -n "${download_pkgs}" ]; then
CT_DoLog EXTRA "Downloading ${pkg_name}-${ver}"
CT_DoLog EXTRA "Downloading ${descr}"
CT_Fetch "${masterpfx}"
fi
if [ -n "${apply_patches}" ]; then
@ -315,4 +346,4 @@ CT_EndStep
CT_DoLog INFO "Handled ${matched} packages/versions"
[ -r .config-saved ] && mv .config-saved .config
CT_DoExecLog ALL rm -rf ${CT_TARBALLS_DIR} ${CT_COMMON_SRC_DIR} ${CT_TEMP_PATCH_DIR}
CT_DoExecLog ALL rm -rf "${CT_TARBALLS_DIR}" "${CT_COMMON_SRC_DIR}" "${CT_TEMP_PATCH_DIR}" "${CT_WORK_DIR}"

View File

@ -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

View File

@ -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)
;;

View File

@ -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

View File

@ -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)

View File

@ -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));

View File

@ -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)

View File

@ -0,0 +1,15 @@
---
gold/binary.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/gold/binary.cc
+++ b/gold/binary.cc
@@ -23,7 +23,7 @@
#include "gold.h"
#include <cerrno>
-#include <cstring>
+#include <string>
#include "elfcpp.h"
#include "stringpool.h"

View File

@ -0,0 +1,70 @@
From c39479f4ab4d372b518957871e1f205a03e7c3d6 Mon Sep 17 00:00:00 2001
From: Andrew Hsieh <andrewhsieh@google.com>
Date: Wed, 18 Mar 2015 10:57:24 +0800
Subject: [PATCH] Fix darwin build
1. In Drawin PTHREAD_ONCE_INIT is {0x30B1BCBA, {0}} and the GCC < 4.4
doesn't support ended initializer list
2. wcsncasecmp doesn't exist in MacSDK10.6.x
Change-Id: I69204a72f853f5263dffedc448379d75ed4eca2e
---
bfd/peXXigen.c | 22 ++++++++++++++++++++++
gold/gold-threads.cc | 15 ++++++++++++---
2 files changed, 34 insertions(+), 3 deletions(-)
--- a/bfd/peXXigen.c
+++ b/bfd/peXXigen.c
@@ -3618,6 +3618,28 @@
}
#endif /* HAVE_WCHAR_H and not Cygwin/Mingw */
+#if defined __APPLE__ && __DARWIN_C_LEVEL < 200809L
+/* wcsncasecmp isn't always defined in Mac SDK */
+static int
+wcsncasecmp(const wchar_t *s1, const wchar_t *s2, size_t n)
+{
+ wchar_t c1, c2;
+
+ if (n == 0)
+ return (0);
+ for (; *s1; s1++, s2++)
+ {
+ c1 = towlower(*s1);
+ c2 = towlower(*s2);
+ if (c1 != c2)
+ return ((int)c1 - c2);
+ if (--n == 0)
+ return (0);
+ }
+ return (-*s2);
+}
+#endif
+
/* Perform a comparison of two entries. */
static signed int
rsrc_cmp (bfd_boolean is_name, rsrc_entry * a, rsrc_entry * b)
--- a/gold/gold-threads.cc
+++ b/gold/gold-threads.cc
@@ -284,9 +284,18 @@
class Once_initialize
{
public:
- Once_initialize()
- : once_(PTHREAD_ONCE_INIT)
- { }
+ Once_initialize()
+#if !defined(__APPLE__)
+ : once_(PTHREAD_ONCE_INIT)
+ { }
+#else
+// In Drawin PTHREAD_ONCE_INIT is {0x30B1BCBA, {0}} and the GCC < 4.4 doesn't support
+// extended initializer list as above */
+ {
+ pthread_once_t once_2 = PTHREAD_ONCE_INIT;
+ once_ = once_2;
+ }
+#endif
// Return a pointer to the pthread_once_t variable.
pthread_once_t*

View File

@ -0,0 +1,41 @@
Signed-off-by: Sven Rebhan <odinshorse@googlemail.com>
Always try to prepend the sysroot prefix to absolute filenames first.
http://bugs.gentoo.org/275666
http://sourceware.org/bugzilla/show_bug.cgi?id=10340
---
ld/ldfile.c | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
--- a/ld/ldfile.c
+++ b/ld/ldfile.c
@@ -339,18 +339,25 @@
directory first. */
if (!entry->flags.maybe_archive)
{
- if (entry->flags.sysrooted && IS_ABSOLUTE_PATH (entry->filename))
+ /* For absolute pathnames, try to always open the file in the
+ sysroot first. If this fails, try to open the file at the
+ given location. */
+ entry->flags.sysrooted = is_sysrooted_pathname (entry->filename);
+ if (!entry->flags.sysrooted && IS_ABSOLUTE_PATH (entry->filename)
+ && ld_sysroot)
{
char *name = concat (ld_sysroot, entry->filename,
(const char *) NULL);
if (ldfile_try_open_bfd (name, entry))
{
entry->filename = name;
+ entry->flags.sysrooted = TRUE;
return TRUE;
}
free (name);
}
- else if (ldfile_try_open_bfd (entry->filename, entry))
+
+ if (ldfile_try_open_bfd (entry->filename, entry))
return TRUE;
if (IS_ABSOLUTE_PATH (entry->filename))

View File

@ -0,0 +1,279 @@
Patch adapted to binutils 2.23.2 and extended to use
BR_COMPILER_PARANOID_UNSAFE_PATH by Thomas Petazzoni.
[Gustavo: adapt to binutils 2.25]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Upstream-Status: Inappropriate [distribution: codesourcery]
Patch originally created by Mark Hatle, forward-ported to
binutils 2.21 by Scott Garman.
purpose: warn for uses of system directories when cross linking
Code Merged from Sourcery G++ binutils 2.19 - 4.4-277
2008-07-02 Joseph Myers <joseph@codesourcery.com>
ld/
* ld.h (args_type): Add error_poison_system_directories.
* ld.texinfo (--error-poison-system-directories): Document.
* ldfile.c (ldfile_add_library_path): Check
command_line.error_poison_system_directories.
* ldmain.c (main): Initialize
command_line.error_poison_system_directories.
* lexsup.c (enum option_values): Add
OPTION_ERROR_POISON_SYSTEM_DIRECTORIES.
(ld_options): Add --error-poison-system-directories.
(parse_args): Handle new option.
2007-06-13 Joseph Myers <joseph@codesourcery.com>
ld/
* config.in: Regenerate.
* ld.h (args_type): Add poison_system_directories.
* ld.texinfo (--no-poison-system-directories): Document.
* ldfile.c (ldfile_add_library_path): Check
command_line.poison_system_directories.
* ldmain.c (main): Initialize
command_line.poison_system_directories.
* lexsup.c (enum option_values): Add
OPTION_NO_POISON_SYSTEM_DIRECTORIES.
(ld_options): Add --no-poison-system-directories.
(parse_args): Handle new option.
2007-04-20 Joseph Myers <joseph@codesourcery.com>
Merge from Sourcery G++ binutils 2.17:
2007-03-20 Joseph Myers <joseph@codesourcery.com>
Based on patch by Mark Hatle <mark.hatle@windriver.com>.
ld/
* configure.ac (--enable-poison-system-directories): New option.
* configure, config.in: Regenerate.
* ldfile.c (ldfile_add_library_path): If
ENABLE_POISON_SYSTEM_DIRECTORIES defined, warn for use of /lib,
/usr/lib, /usr/local/lib or /usr/X11R6/lib.
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Scott Garman <scott.a.garman@intel.com>
---
ld/config.in | 3 +++
ld/configure | 14 ++++++++++++++
ld/configure.ac | 10 ++++++++++
ld/ld.h | 8 ++++++++
ld/ld.texi | 12 ++++++++++++
ld/ldfile.c | 17 +++++++++++++++++
ld/ldlex.h | 2 ++
ld/ldmain.c | 2 ++
ld/lexsup.c | 21 +++++++++++++++++++++
9 files changed, 89 insertions(+)
--- a/ld/config.in
+++ b/ld/config.in
@@ -31,6 +31,9 @@
language is requested. */
#undef ENABLE_NLS
+/* Define to warn for use of native system library directories */
+#undef ENABLE_POISON_SYSTEM_DIRECTORIES
+
/* Additional extension a shared object might have. */
#undef EXTRA_SHLIB_EXTENSION
--- a/ld/configure
+++ b/ld/configure
@@ -826,6 +826,7 @@
enable_targets
enable_64_bit_bfd
with_sysroot
+enable_poison_system_directories
enable_gold
enable_got
enable_compressed_debug_sections
@@ -1491,6 +1492,8 @@
--disable-largefile omit support for large files
--enable-targets alternative target configurations
--enable-64-bit-bfd 64-bit support (on hosts with narrower word sizes)
+ --enable-poison-system-directories
+ warn for use of native system library directories
--enable-gold[=ARG] build gold [ARG={default,yes,no}]
--enable-got=<type> GOT handling scheme (target, single, negative,
multigot)
@@ -15809,7 +15812,18 @@
fi
+# Check whether --enable-poison-system-directories was given.
+if test "${enable_poison_system_directories+set}" = set; then :
+ enableval=$enable_poison_system_directories;
+else
+ enable_poison_system_directories=no
+fi
+
+if test "x${enable_poison_system_directories}" = "xyes"; then
+$as_echo "#define ENABLE_POISON_SYSTEM_DIRECTORIES 1" >>confdefs.h
+
+fi
# Check whether --enable-got was given.
if test "${enable_got+set}" = set; then :
--- a/ld/configure.ac
+++ b/ld/configure.ac
@@ -94,6 +94,16 @@
AC_SUBST(TARGET_SYSTEM_ROOT)
AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE)
+AC_ARG_ENABLE([poison-system-directories],
+ AS_HELP_STRING([--enable-poison-system-directories],
+ [warn for use of native system library directories]),,
+ [enable_poison_system_directories=no])
+if test "x${enable_poison_system_directories}" = "xyes"; then
+ AC_DEFINE([ENABLE_POISON_SYSTEM_DIRECTORIES],
+ [1],
+ [Define to warn for use of native system library directories])
+fi
+
dnl Use --enable-gold to decide if this linker should be the default.
dnl "install_as_default" is set to false if gold is the default linker.
dnl "installed_linker" is the installed BFD linker name.
--- a/ld/ld.h
+++ b/ld/ld.h
@@ -161,6 +161,14 @@
/* If set, display the target memory usage (per memory region). */
bfd_boolean print_memory_usage;
+ /* If TRUE (the default) warn for uses of system directories when
+ cross linking. */
+ bfd_boolean poison_system_directories;
+
+ /* If TRUE (default FALSE) give an error for uses of system
+ directories when cross linking instead of a warning. */
+ bfd_boolean error_poison_system_directories;
+
/* Should we force section groups to be resolved? Controlled with
--force-group-allocation on the command line or FORCE_GROUP_ALLOCATION
in the linker script. */
--- a/ld/ld.texi
+++ b/ld/ld.texi
@@ -2551,6 +2551,18 @@
Passing @code{none} for @var{style} disables the setting from any
@code{--build-id} options earlier on the command line.
+
+@kindex --no-poison-system-directories
+@item --no-poison-system-directories
+Do not warn for @option{-L} options using system directories such as
+@file{/usr/lib} when cross linking. This option is intended for use
+in chroot environments when such directories contain the correct
+libraries for the target system rather than the host.
+
+@kindex --error-poison-system-directories
+@item --error-poison-system-directories
+Give an error instead of a warning for @option{-L} options using
+system directories when cross linking.
@end table
@c man end
--- a/ld/ldfile.c
+++ b/ld/ldfile.c
@@ -117,6 +117,23 @@
new_dirs->name = concat (ld_sysroot, name + strlen ("$SYSROOT"), (const char *) NULL);
else
new_dirs->name = xstrdup (name);
+
+#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES
+ if (command_line.poison_system_directories
+ && ((!strncmp (name, "/lib", 4))
+ || (!strncmp (name, "/usr/lib", 8))
+ || (!strncmp (name, "/usr/local/lib", 14))
+ || (!strncmp (name, "/usr/X11R6/lib", 14))))
+ {
+ if (command_line.error_poison_system_directories)
+ einfo (_("%X%P: error: library search path \"%s\" is unsafe for "
+ "cross-compilation\n"), name);
+ else
+ einfo (_("%P: warning: library search path \"%s\" is unsafe for "
+ "cross-compilation\n"), name);
+ }
+#endif
+
}
/* Try to open a BFD for a lang_input_statement. */
--- a/ld/ldlex.h
+++ b/ld/ldlex.h
@@ -150,6 +150,8 @@
OPTION_FORCE_GROUP_ALLOCATION,
OPTION_PRINT_MAP_DISCARDED,
OPTION_NO_PRINT_MAP_DISCARDED,
+ OPTION_NO_POISON_SYSTEM_DIRECTORIES,
+ OPTION_ERROR_POISON_SYSTEM_DIRECTORIES,
};
/* The initial parser states. */
--- a/ld/ldmain.c
+++ b/ld/ldmain.c
@@ -273,6 +273,8 @@
command_line.warn_mismatch = TRUE;
command_line.warn_search_mismatch = TRUE;
command_line.check_section_addresses = -1;
+ command_line.poison_system_directories = TRUE;
+ command_line.error_poison_system_directories = FALSE;
/* We initialize DEMANGLING based on the environment variable
COLLECT_NO_DEMANGLE. The gcc collect2 program will demangle the
--- a/ld/lexsup.c
+++ b/ld/lexsup.c
@@ -550,6 +550,14 @@
{ {"no-print-map-discarded", no_argument, NULL, OPTION_NO_PRINT_MAP_DISCARDED},
'\0', NULL, N_("Do not show discarded sections in map file output"),
TWO_DASHES },
+ { {"no-poison-system-directories", no_argument, NULL,
+ OPTION_NO_POISON_SYSTEM_DIRECTORIES},
+ '\0', NULL, N_("Do not warn for -L options using system directories"),
+ TWO_DASHES },
+ { {"error-poison-system-directories", no_argument, NULL,
+ OPTION_ERROR_POISON_SYSTEM_DIRECTORIES},
+ '\0', NULL, N_("Give an error for -L options using system directories"),
+ TWO_DASHES },
};
#define OPTION_COUNT ARRAY_SIZE (ld_options)
@@ -562,6 +570,7 @@
int ingroup = 0;
char *default_dirlist = NULL;
char *shortopts;
+ char *BR_paranoid_env;
struct option *longopts;
struct option *really_longopts;
int last_optind;
@@ -1562,6 +1571,14 @@
}
break;
+ case OPTION_NO_POISON_SYSTEM_DIRECTORIES:
+ command_line.poison_system_directories = FALSE;
+ break;
+
+ case OPTION_ERROR_POISON_SYSTEM_DIRECTORIES:
+ command_line.error_poison_system_directories = TRUE;
+ break;
+
case OPTION_PUSH_STATE:
input_flags.pushed = xmemdup (&input_flags,
sizeof (input_flags),
@@ -1613,6 +1630,10 @@
command_line.soname = NULL;
}
+ BR_paranoid_env = getenv("BR_COMPILER_PARANOID_UNSAFE_PATH");
+ if (BR_paranoid_env && strlen(BR_paranoid_env) > 0)
+ command_line.error_poison_system_directories = TRUE;
+
while (ingroup)
{
einfo (_("%P: missing --end-group; added as last command line option\n"));

12
packages/binutils/2.34/chksum vendored Normal file
View File

@ -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

View File

@ -0,0 +1,447 @@
From fa0e77afba7d8d4107af5f8ddc8d38d23c3dd19d Mon Sep 17 00:00:00 2001
From: Romain Naour <romain.naour@smile.fr>
Date: Wed, 5 Feb 2020 10:31:32 +0100
Subject: [PATCH] elf2flt: handle binutils >= 2.34
The latest Binutils release (2.34) is not compatible with elf2flt due
to a change in bfd_section_* macros. The issue has been reported to
the Binutils mailing list but Alan Modra recommend to bundle libbfd
library sources into each projects using it [1]. That's because the
API is not stable over the time without any backward compatibility
guaranties.
On the other hand, the elf2flt tools needs to support modified
version of binutils for specific arch/target [2].
Add two tests in the configure script to detect this API change
in order to support binutils < 2.34 and binutils >= 2.34.
[1] https://sourceware.org/ml/binutils/2020-02/msg00044.html
[2] https://github.com/uclinux-dev/elf2flt/issues/14
Signed-off-by: Romain Naour <romain.naour@smile.fr>
---
configure.ac | 25 ++++++++++++++++
elf2flt.c | 81 +++++++++++++++++++++++++++++-----------------------
2 files changed, 71 insertions(+), 35 deletions(-)
[Added: regenerated configure]
diff --git a/configure.ac b/configure.ac
index d6b4119..caae869 100644
--- a/configure.ac
+++ b/configure.ac
@@ -212,6 +212,31 @@ AC_CHECK_FUNCS([ \
strsignal \
])
+dnl Various bfd section macros and functions like bfd_section_size() has been
+dnl modified starting binutils >= 2.34.
+dnl Check if the prototype is "bfd_section_size (sec)" or "bfd_section_size(bfd, ptr)"
+if test "$binutils_build_dir" != "NONE"; then
+ CFLAGS="-I$binutils_include_dir -I$bfd_include_dir $CFLAGS"
+fi
+
+AC_TRY_COMPILE([#include <bfd.h>],
+ [const asection *sec; bfd_section_size(sec);],
+ bfd_section_size_macro_has_one_arg=yes,
+ bfd_section_size_macro_has_one_arg=no)
+if test "$bfd_section_size_macro_has_one_arg" = "yes" ; then
+ AC_DEFINE(HAVE_BFD_SECTION_SIZE_MACRO_HAS_ONE_ARG, 1,
+ [define to 1 for binutils >= 2.34])
+fi
+
+AC_TRY_COMPILE([#include <bfd.h>],
+ [const asection *sec; bfd_section_vma(sec);],
+ bfd_section_vma_macro_has_one_arg=yes,
+ bfd_section_vma_macro_has_one_arg=no)
+if test "$bfd_section_vma_macro_has_one_arg" = "yes" ; then
+ AC_DEFINE(HAVE_BFD_SECTION_VMA_MACRO_HAS_ONE_ARG, 1,
+ [define to 1 for binutils >= 2.34])
+fi
+
if test "$GCC" = yes ; then
CFLAGS="-Wall $CFLAGS"
if test "$werror" = 1 ; then
diff --git a/elf2flt.c b/elf2flt.c
index b7c4a49..8dbd9b2 100644
--- a/elf2flt.c
+++ b/elf2flt.c
@@ -149,6 +149,17 @@ const char *elf2flt_progname;
#define O_BINARY 0
#endif
+#if defined(HAVE_BFD_SECTION_SIZE_MACRO_HAS_ONE_ARG)
+#define elf2flt_bfd_section_size(abs_bfd, s) bfd_section_size(s)
+#else
+#define elf2flt_bfd_section_size(abs_bfd, s) bfd_section_size(abs_bfd, s)
+#endif
+
+#if defined(HAVE_BFD_SECTION_VMA_MACRO_HAS_ONE_ARG)
+#define elf2flt_bfd_section_vma(abs_bfd, s) bfd_section_vma(s)
+#else
+#define elf2flt_bfd_section_vma(abs_bfd, s) bfd_section_vma(abs_bfd, s)
+#endif
/* Extra output when running. */
static int verbose = 0;
@@ -323,9 +334,9 @@ compare_relocs (const void *pa, const void *pb)
else if (!rb->sym_ptr_ptr || !*rb->sym_ptr_ptr)
return 1;
- a_vma = bfd_section_vma(compare_relocs_bfd,
+ a_vma = elf2flt_bfd_section_vma(compare_relocs_bfd,
(*(ra->sym_ptr_ptr))->section);
- b_vma = bfd_section_vma(compare_relocs_bfd,
+ b_vma = elf2flt_bfd_section_vma(compare_relocs_bfd,
(*(rb->sym_ptr_ptr))->section);
va = (*(ra->sym_ptr_ptr))->value + a_vma + ra->addend;
vb = (*(rb->sym_ptr_ptr))->value + b_vma + rb->addend;
@@ -403,7 +414,7 @@ output_relocs (
}
for (a = abs_bfd->sections; (a != (asection *) NULL); a = a->next) {
- section_vma = bfd_section_vma(abs_bfd, a);
+ section_vma = elf2flt_bfd_section_vma(abs_bfd, a);
if (verbose)
printf("SECTION: %s [%p]: flags=0x%x vma=0x%"PRIx32"\n",
@@ -442,7 +453,7 @@ output_relocs (
continue;
if (verbose)
printf(" RELOCS: %s [%p]: flags=0x%x vma=0x%"BFD_VMA_FMT"x\n",
- r->name, r, r->flags, bfd_section_vma(abs_bfd, r));
+ r->name, r, r->flags, elf2flt_bfd_section_vma(abs_bfd, r));
if ((r->flags & SEC_RELOC) == 0)
continue;
relsize = bfd_get_reloc_upper_bound(rel_bfd, r);
@@ -674,7 +685,7 @@ output_relocs (
case R_BFIN_RIMM16:
case R_BFIN_LUIMM16:
case R_BFIN_HUIMM16:
- sym_vma = bfd_section_vma(abs_bfd, sym_section);
+ sym_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section);
sym_addr += sym_vma + q->addend;
if (weak_und_symbol(sym_section->name, (*(q->sym_ptr_ptr))))
@@ -707,7 +718,7 @@ output_relocs (
break;
case R_BFIN_BYTE4_DATA:
- sym_vma = bfd_section_vma(abs_bfd, sym_section);
+ sym_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section);
sym_addr += sym_vma + q->addend;
if (weak_und_symbol (sym_section->name, (*(q->sym_ptr_ptr))))
@@ -851,7 +862,7 @@ output_relocs (
#if defined(TARGET_m68k)
case R_68K_32:
relocation_needed = 1;
- sym_vma = bfd_section_vma(abs_bfd, sym_section);
+ sym_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section);
sym_addr += sym_vma + q->addend;
break;
case R_68K_PC16:
@@ -876,7 +887,7 @@ output_relocs (
q->address, sym_addr,
(*p)->howto->rightshift,
*(uint32_t *)r_mem);
- sym_vma = bfd_section_vma(abs_bfd, sym_section);
+ sym_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section);
sym_addr += sym_vma + q->addend;
break;
case R_ARM_GOT32:
@@ -904,7 +915,7 @@ output_relocs (
#ifdef TARGET_v850
case R_V850_ABS32:
relocation_needed = 1;
- sym_vma = bfd_section_vma(abs_bfd, sym_section);
+ sym_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section);
sym_addr += sym_vma + q->addend;
break;
case R_V850_ZDA_16_16_OFFSET:
@@ -926,7 +937,7 @@ output_relocs (
sym_addr = (*(q->sym_ptr_ptr))->value;
q->address -= 1;
r_mem -= 1; /* tracks q->address */
- sym_vma = bfd_section_vma(abs_bfd, sym_section);
+ sym_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section);
sym_addr += sym_vma + q->addend;
sym_addr |= (*(unsigned char *)r_mem<<24);
break;
@@ -939,7 +950,7 @@ output_relocs (
/* Absolute symbol done not relocation */
relocation_needed = !bfd_is_abs_section(sym_section);
sym_addr = (*(q->sym_ptr_ptr))->value;
- sym_vma = bfd_section_vma(abs_bfd, sym_section);
+ sym_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section);
sym_addr += sym_vma + q->addend;
break;
case R_H8_DIR32:
@@ -952,7 +963,7 @@ output_relocs (
}
relocation_needed = 1;
sym_addr = (*(q->sym_ptr_ptr))->value;
- sym_vma = bfd_section_vma(abs_bfd, sym_section);
+ sym_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section);
sym_addr += sym_vma + q->addend;
break;
case R_H8_PCREL16:
@@ -985,7 +996,7 @@ output_relocs (
pflags=0x80000000;
/* work out the relocation */
- sym_vma = bfd_section_vma(abs_bfd, sym_section);
+ sym_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section);
sym_addr += sym_vma + q->addend;
/* Write relocated pointer back */
p[2] = (sym_addr >> 24) & 0xff;
@@ -1001,7 +1012,7 @@ output_relocs (
relocation_needed = 0;
pflags = 0;
sprintf(&addstr[0], "+0x%ld", sym_addr - (*(q->sym_ptr_ptr))->value -
- bfd_section_vma(abs_bfd, sym_section));
+ elf2flt_bfd_section_vma(abs_bfd, sym_section));
if (verbose)
printf(" RELOC[%d]: offset=0x%"BFD_VMA_FMT"x symbol=%s%s "
"section=%s size=%d "
@@ -1017,7 +1028,7 @@ output_relocs (
continue;
}
case R_MICROBLAZE_32:
- sym_vma = bfd_section_vma(abs_bfd, sym_section);
+ sym_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section);
sym_addr += sym_vma + q->addend;
relocation_needed = 1;
break;
@@ -1042,7 +1053,7 @@ output_relocs (
case R_NIOS2_BFD_RELOC_32:
relocation_needed = 1;
pflags = (FLAT_NIOS2_R_32 << 28);
- sym_vma = bfd_section_vma(abs_bfd, sym_section);
+ sym_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section);
sym_addr += sym_vma + q->addend;
/* modify target, in target order */
*(unsigned long *)r_mem = htoniosl(sym_addr);
@@ -1052,7 +1063,7 @@ output_relocs (
unsigned long exist_val;
relocation_needed = 1;
pflags = (FLAT_NIOS2_R_CALL26 << 28);
- sym_vma = bfd_section_vma(abs_bfd, sym_section);
+ sym_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section);
sym_addr += sym_vma + q->addend;
/* modify target, in target order */
@@ -1083,7 +1094,7 @@ output_relocs (
? FLAT_NIOS2_R_HIADJ_LO : FLAT_NIOS2_R_HI_LO;
pflags <<= 28;
- sym_vma = bfd_section_vma(abs_bfd, sym_section);
+ sym_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section);
sym_addr += sym_vma + q->addend;
/* modify high 16 bits, in target order */
@@ -1116,7 +1127,7 @@ output_relocs (
goto NIOS2_RELOC_ERR;
}
/* _gp holds a absolute value, otherwise the ld cannot generate correct code */
- sym_vma = bfd_section_vma(abs_bfd, sym_section);
+ sym_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section);
//printf("sym=%x, %d, _gp=%x, %d\n", sym_addr+sym_vma, sym_addr+sym_vma, gp, gp);
sym_addr += sym_vma + q->addend;
sym_addr -= gp;
@@ -1197,7 +1208,7 @@ output_relocs (
case R_SPARC_32:
case R_SPARC_UA32:
relocation_needed = 1;
- sym_vma = bfd_section_vma(abs_bfd, sym_section);
+ sym_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section);
sym_addr += sym_vma + q->addend;
break;
case R_SPARC_PC22:
@@ -1216,7 +1227,7 @@ output_relocs (
case R_SPARC_HI22:
relocation_needed = 1;
pflags = 0x80000000;
- sym_vma = bfd_section_vma(abs_bfd, sym_section);
+ sym_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section);
sym_addr += sym_vma + q->addend;
sym_addr |= (
htonl(*(uint32_t *)r_mem)
@@ -1226,7 +1237,7 @@ output_relocs (
case R_SPARC_LO10:
relocation_needed = 1;
pflags = 0x40000000;
- sym_vma = bfd_section_vma(abs_bfd, sym_section);
+ sym_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section);
sym_addr += sym_vma + q->addend;
sym_addr &= 0x000003ff;
sym_addr |= (
@@ -1240,7 +1251,7 @@ output_relocs (
#ifdef TARGET_sh
case R_SH_DIR32:
relocation_needed = 1;
- sym_vma = bfd_section_vma(abs_bfd, sym_section);
+ sym_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section);
sym_addr += sym_vma + q->addend;
break;
case R_SH_REL32:
@@ -1272,7 +1283,7 @@ output_relocs (
case R_E1_CONST31:
relocation_needed = 1;
DBG_E1("Handling Reloc <CONST31>\n");
- sec_vma = bfd_section_vma(abs_bfd, sym_section);
+ sec_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section);
DBG_E1("sec_vma : [0x%x], sym_addr : [0x%x], q->address : [0x%x]\n",
sec_vma, sym_addr, q->address);
sym_addr = sec_vma + sym_addr;
@@ -1287,7 +1298,7 @@ output_relocs (
relocation_needed = 0;
DBG_E1("Handling Reloc <CONST31_PCREL>\n");
DBG_E1("DONT RELOCATE AT LOADING\n");
- sec_vma = bfd_section_vma(abs_bfd, sym_section);
+ sec_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section);
DBG_E1("sec_vma : [0x%x], sym_addr : [0x%x], q->address : [0x%x]\n",
sec_vma, sym_addr, q->address);
sym_addr = sec_vma + sym_addr;
@@ -1314,7 +1325,7 @@ output_relocs (
relocation_needed = 0;
DBG_E1("Handling Reloc <DIS29W_PCREL>\n");
DBG_E1("DONT RELOCATE AT LOADING\n");
- sec_vma = bfd_section_vma(abs_bfd, sym_section);
+ sec_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section);
DBG_E1("sec_vma : [0x%x], sym_addr : [0x%x], q->address : [0x%x]\n",
sec_vma, sym_addr, q->address);
sym_addr = sec_vma + sym_addr;
@@ -1347,7 +1358,7 @@ output_relocs (
DBG_E1("Handling Reloc <DIS29B>\n");
DIS29_RELOCATION:
relocation_needed = 1;
- sec_vma = bfd_section_vma(abs_bfd, sym_section);
+ sec_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section);
DBG_E1("sec_vma : [0x%x], sym_addr : [0x%08x]\n",
sec_vma, sym_addr);
sym_addr = sec_vma + sym_addr;
@@ -1364,7 +1375,7 @@ output_relocs (
relocation_needed = 0;
DBG_E1("Handling Reloc <IMM32_PCREL>\n");
DBG_E1("DONT RELOCATE AT LOADING\n");
- sec_vma = bfd_section_vma(abs_bfd, sym_section);
+ sec_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section);
DBG_E1("sec_vma : [0x%x], sym_addr : [0x%x]\n",
sec_vma, sym_addr);
sym_addr = sec_vma + sym_addr;
@@ -1390,7 +1401,7 @@ output_relocs (
case R_E1_IMM32:
relocation_needed = 1;
DBG_E1("Handling Reloc <IMM32>\n");
- sec_vma = bfd_section_vma(abs_bfd, sym_section);
+ sec_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section);
DBG_E1("sec_vma : [0x%x], sym_addr : [0x%x]\n",
sec_vma, sym_addr);
sym_addr = sec_vma + sym_addr;
@@ -1406,7 +1417,7 @@ output_relocs (
case R_E1_WORD:
relocation_needed = 1;
DBG_E1("Handling Reloc <WORD>\n");
- sec_vma = bfd_section_vma(abs_bfd, sym_section);
+ sec_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section);
DBG_E1("sec_vma : [0x%x], sym_addr : [0x%x]\n",
sec_vma, sym_addr);
sym_addr = sec_vma + sym_addr;
@@ -1433,7 +1444,7 @@ output_relocs (
}
sprintf(&addstr[0], "+0x%lx", sym_addr - (*(q->sym_ptr_ptr))->value -
- bfd_section_vma(abs_bfd, sym_section));
+ elf2flt_bfd_section_vma(abs_bfd, sym_section));
/*
@@ -1873,8 +1884,8 @@ int main(int argc, char *argv[])
} else
continue;
- sec_size = bfd_section_size(abs_bfd, s);
- sec_vma = bfd_section_vma(abs_bfd, s);
+ sec_size = elf2flt_bfd_section_size(abs_bfd, s);
+ sec_vma = elf2flt_bfd_section_vma(abs_bfd, s);
if (sec_vma < *vma) {
if (*len > 0)
@@ -1899,7 +1910,7 @@ int main(int argc, char *argv[])
if (s->flags & SEC_CODE)
if (!bfd_get_section_contents(abs_bfd, s,
text + (s->vma - text_vma), 0,
- bfd_section_size(abs_bfd, s)))
+ elf2flt_bfd_section_size(abs_bfd, s)))
{
fatal("read error section %s", s->name);
}
@@ -1925,7 +1936,7 @@ int main(int argc, char *argv[])
if (s->flags & SEC_DATA)
if (!bfd_get_section_contents(abs_bfd, s,
data + (s->vma - data_vma), 0,
- bfd_section_size(abs_bfd, s)))
+ elf2flt_bfd_section_size(abs_bfd, s)))
{
fatal("read error section %s", s->name);
}
--- elf2flt-git-453398f9.orig/configure 2020-02-23 19:11:22.383955320 -0800
+++ elf2flt-git-453398f9/configure 2020-02-23 19:13:08.667951575 -0800
@@ -4310,6 +4310,56 @@
done
+if test "$binutils_build_dir" != "NONE"; then
+ CFLAGS="-I$binutils_include_dir -I$bfd_include_dir $CFLAGS"
+fi
+
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <bfd.h>
+int
+main ()
+{
+const asection *sec; bfd_section_size(sec);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ bfd_section_size_macro_has_one_arg=yes
+else
+ bfd_section_size_macro_has_one_arg=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+if test "$bfd_section_size_macro_has_one_arg" = "yes" ; then
+
+$as_echo "#define HAVE_BFD_SECTION_SIZE_MACRO_HAS_ONE_ARG 1" >>confdefs.h
+
+fi
+
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <bfd.h>
+int
+main ()
+{
+const asection *sec; bfd_section_vma(sec);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ bfd_section_vma_macro_has_one_arg=yes
+else
+ bfd_section_vma_macro_has_one_arg=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+if test "$bfd_section_vma_macro_has_one_arg" = "yes" ; then
+
+$as_echo "#define HAVE_BFD_SECTION_VMA_MACRO_HAS_ONE_ARG 1" >>confdefs.h
+
+fi
+
if test "$GCC" = yes ; then
CFLAGS="-Wall $CFLAGS"
if test "$werror" = 1 ; then

View File

@ -1,2 +1,2 @@
repository='git https://github.com/uclinux-dev/elf2flt.git'
repository_cset='73325b7f209e0f68887333385184af275531427d'
repository_cset='453398f917d167f8c308c8f997270c48ae8f8b12'

33
packages/gdb/9.1/0000-musl_fix.patch vendored Normal file
View File

@ -0,0 +1,33 @@
---
gdb/linux-nat.c | 5 +++++
gdb/stopcode.h | 4 ++++
2 files changed, 9 insertions(+)
--- a/gdb/linux-nat.c
+++ b/gdb/linux-nat.c
@@ -17,6 +17,7 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
+#include "stopcode.h"
#include "defs.h"
#include "inferior.h"
#include "infrun.h"
@@ -69,6 +70,10 @@
#include "gdbsupport/scope-exit.h"
#include "gdbsupport/gdb-sigmask.h"
+#ifndef __SIGRTMIN
+#define __SIGRTMIN SIGRTMIN
+#endif
+
/* This comment documents high-level logic of this file.
Waiting for events in sync mode
--- /dev/null
+++ b/gdb/stopcode.h
@@ -0,0 +1,4 @@
+#ifndef W_STOPCODE
+#define W_STOPCODE(sig) ((sig) << 8 | 0x7f)
+#endif
+

View File

@ -0,0 +1,33 @@
Improve gnulib in gdb's guess work, gettimeofday() works in uClibcm promise.
This patch helps building x86_64-unknown-linux-uclibc toolchains, the final
gdb-native step otherwise fails when linking the libinproctrace.so
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
Signed-off-by: Alexey Neyman <stilor@att.net>
---
gnulib/configure | 1 +
gnulib/import/m4/gettimeofday.m4 | 1 +
2 files changed, 2 insertions(+)
--- a/gnulib/configure
+++ b/gnulib/configure
@@ -20267,6 +20267,7 @@
case "$host_os" in
# Guess all is fine on glibc systems.
*-gnu*) gl_cv_func_gettimeofday_clobber="guessing no" ;;
+ *-uclibc*) gl_cv_func_gettimeofday_clobber="guessing no" ;;
# If we don't know, assume the worst.
*) gl_cv_func_gettimeofday_clobber="guessing yes" ;;
esac
--- a/gnulib/import/m4/gettimeofday.m4
+++ b/gnulib/import/m4/gettimeofday.m4
@@ -111,6 +111,7 @@
case "$host_os" in
# Guess all is fine on glibc systems.
*-gnu*) gl_cv_func_gettimeofday_clobber="guessing no" ;;
+ *-uclibc*) gl_cv_func_gettimeofday_clobber="guessing no" ;;
# If we don't know, assume the worst.
*) gl_cv_func_gettimeofday_clobber="guessing yes" ;;
esac

View File

@ -0,0 +1,30 @@
From 208ea73d38c9c16cf983b6419f58050dbadcb6a9 Mon Sep 17 00:00:00 2001
From: Max Filippov <jcmvbkbc@gmail.com>
Date: Sun, 7 Jun 2015 22:43:49 +0300
Subject: [PATCH 2/2] xtensa: make sure ar_base is initialized
ar_base is uninitialized for cores w/o windowed registers as their
regmap doesn't have register 0x0100.
Check that ar_base is initialized and if not initialize it with a0_base.
gdb/
* xtensa-tdep.c (xtensa_derive_tdep): Make sure ar_base is
initialized.
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
---
gdb/xtensa-tdep.c | 3 +++
1 file changed, 3 insertions(+)
--- a/gdb/xtensa-tdep.c
+++ b/gdb/xtensa-tdep.c
@@ -3137,6 +3137,9 @@
if (tdep->num_regs == 0)
tdep->num_regs = tdep->num_nopriv_regs;
+ if (tdep->ar_base == -1)
+ tdep->ar_base = tdep->a0_base;
+
/* Number of pseudo registers. */
tdep->num_pseudo_regs = n - tdep->num_regs;

View File

@ -0,0 +1,26 @@
From 7f8eacbb468575fb67db7fd1155a3aedaa91911b Mon Sep 17 00:00:00 2001
From: Max Filippov <jcmvbkbc@gmail.com>
Date: Sun, 7 Jun 2015 23:15:39 +0300
Subject: [PATCH] WIP: *end of prologue* detection hack
see
http://www.esp8266.com/viewtopic.php?p=18461#p18461
http://www.esp8266.com/viewtopic.php?p=19026#p19026
http://www.esp8266.com/viewtopic.php?p=19683#p19683
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
---
gdb/xtensa-tdep.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/gdb/xtensa-tdep.c
+++ b/gdb/xtensa-tdep.c
@@ -2385,7 +2385,7 @@
/* Find out, if we have an information about the prologue from DWARF. */
prologue_sal = find_pc_line (start, 0);
if (prologue_sal.line != 0) /* Found debug info. */
- body_pc = prologue_sal.end;
+ body_pc = prologue_sal.end + 40;
/* If we are going to analyze the prologue in general without knowing about
the current PC, make the best assumption for the end of the prologue. */

View File

@ -0,0 +1,45 @@
---
gdb/gdbserver/configure | 11 -----------
gdb/gdbserver/configure.ac | 11 -----------
2 files changed, 22 deletions(-)
--- a/gdb/gdbserver/configure
+++ b/gdb/gdbserver/configure
@@ -8512,17 +8512,6 @@
case "${target}" in
- *-android*)
- # Starting with NDK version 9, <elf.h> actually includes definitions
- # of Elf32_auxv_t and Elf64_auxv_t. But sadly, <elf.h> includes
- # <sys/exec_elf.h> which defines some of the ELF types incorrectly,
- # leading to conflicts with the defintions from <linux/elf.h>.
- # This makes it impossible for us to include both <elf.h> and
- # <linux/elf.h>, which means that, in practice, we do not have
- # access to Elf32_auxv_t and Elf64_auxv_t on this platform.
- # Therefore, do not try to auto-detect availability, as it would
- # get it wrong on this platform.
- ;;
*)
ac_fn_c_check_type "$LINENO" "Elf32_auxv_t" "ac_cv_type_Elf32_auxv_t" "#include <elf.h>
--- a/gdb/gdbserver/configure.ac
+++ b/gdb/gdbserver/configure.ac
@@ -176,17 +176,6 @@
])
case "${target}" in
- *-android*)
- # Starting with NDK version 9, <elf.h> actually includes definitions
- # of Elf32_auxv_t and Elf64_auxv_t. But sadly, <elf.h> includes
- # <sys/exec_elf.h> which defines some of the ELF types incorrectly,
- # leading to conflicts with the defintions from <linux/elf.h>.
- # This makes it impossible for us to include both <elf.h> and
- # <linux/elf.h>, which means that, in practice, we do not have
- # access to Elf32_auxv_t and Elf64_auxv_t on this platform.
- # Therefore, do not try to auto-detect availability, as it would
- # get it wrong on this platform.
- ;;
*)
AC_CHECK_TYPES([Elf32_auxv_t, Elf64_auxv_t], [], [],
#include <elf.h>

8
packages/gdb/9.1/chksum vendored Normal file
View File

@ -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

View File

@ -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

File diff suppressed because it is too large Load Diff

12
packages/glibc/2.31/chksum vendored Normal file
View File

@ -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

1
packages/glibc/2.31/version.desc vendored Normal file
View File

@ -0,0 +1 @@
# Released 1 August 2019

12
packages/gmp/6.2.0/chksum vendored Normal file
View File

@ -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

View File

@ -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

8
packages/linux/3.16.82/chksum vendored Normal file
View File

@ -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

View File

@ -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

8
packages/linux/4.14.171/chksum vendored Normal file
View File

@ -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

8
packages/linux/4.19.105/chksum vendored Normal file
View File

@ -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

0
packages/linux/4.19.105/version.desc vendored Normal file
View File

View File

@ -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

View File

@ -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

8
packages/linux/4.4.214/chksum vendored Normal file
View File

@ -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

View File

@ -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

8
packages/linux/4.9.214/chksum vendored Normal file
View File

@ -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

0
packages/linux/4.9.214/version.desc vendored Normal file
View File

8
packages/linux/5.4.21/chksum vendored Normal file
View File

@ -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

0
packages/linux/5.4.21/version.desc vendored Normal file
View File

View File

@ -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

8
packages/linux/5.5.5/chksum vendored Normal file
View File

@ -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

0
packages/linux/5.5.5/version.desc vendored Normal file
View File

View File

@ -1 +1,2 @@
obsolete='yes'
archive_formats='.tar.bz2 .tar.gz'

View File

@ -1 +1,2 @@
obsolete='yes'
archive_formats='.tar.bz2 .tar.gz'

View File

@ -1 +1,2 @@
obsolete='yes'
archive_formats='.tar.bz2 .tar.gz'

View File

@ -0,0 +1,2 @@
archive_formats='.tar.bz2 .tar.gz'

8
packages/make/4.3/chksum vendored Normal file
View File

@ -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

0
packages/make/4.3/version.desc vendored Normal file
View File

View File

@ -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'

4
packages/ncurses/6.2/chksum vendored Normal file
View File

@ -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

0
packages/ncurses/6.2/version.desc vendored Normal file
View File

View File

@ -0,0 +1,25 @@
The m68k mcpu processor does not like unaligned access
Disable at least mcpu32, m68010 and m68020. These processors certainly
do not like unaligned accesses.
Signed-off-by: Remy Bohmer <linux@bohmer.net>
[yann.morin.1998@anciens.enib.fr: update for 1.19.0 from 1.18.0]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
[austinpmorton@gmail.com: update for 1.20.0 from 1.19.0]
Signed-off-by: Austin Morton <austinpmorton@gmail.com>
---
newlib/libc/machine/m68k/memcpy.S | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/newlib/libc/machine/m68k/memcpy.S
+++ b/newlib/libc/machine/m68k/memcpy.S
@@ -15,7 +15,7 @@
#include "m68kasm.h"
-#if defined (__mcoldfire__) || defined (__mc68010__) || defined (__mc68020__) || defined (__mc68030__) || defined (__mc68040__) || defined (__mc68060__)
+#if defined (__mcoldfire__) || defined (__mc68030__) || defined (__mc68040__) || defined (__mc68060__)
# define MISALIGNED_OK 1
#else
# define MISALIGNED_OK 0

View File

@ -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

4
packages/newlib/3.2.0/chksum vendored Normal file
View File

@ -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

0
packages/newlib/3.2.0/version.desc vendored Normal file
View File

View File

@ -0,0 +1,25 @@
The m68k mcpu processor does not like unaligned access
Disable at least mcpu32, m68010 and m68020. These processors certainly
do not like unaligned accesses.
Signed-off-by: Remy Bohmer <linux@bohmer.net>
[yann.morin.1998@anciens.enib.fr: update for 1.19.0 from 1.18.0]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
[austinpmorton@gmail.com: update for 1.20.0 from 1.19.0]
Signed-off-by: Austin Morton <austinpmorton@gmail.com>
---
newlib/libc/machine/m68k/memcpy.S | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/newlib/libc/machine/m68k/memcpy.S
+++ b/newlib/libc/machine/m68k/memcpy.S
@@ -15,7 +15,7 @@
#include "m68kasm.h"
-#if defined (__mcoldfire__) || defined (__mc68010__) || defined (__mc68020__) || defined (__mc68030__) || defined (__mc68040__) || defined (__mc68060__)
+#if defined (__mcoldfire__) || defined (__mc68030__) || defined (__mc68040__) || defined (__mc68060__)
# define MISALIGNED_OK 1
#else
# define MISALIGNED_OK 0

View File

@ -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

4
packages/newlib/3.3.0/chksum vendored Normal file
View File

@ -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

0
packages/newlib/3.3.0/version.desc vendored Normal file
View File

4
packages/strace/5.5/chksum vendored Normal file
View File

@ -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

0
packages/strace/5.5/version.desc vendored Normal file
View File

16
packages/uClibc-ng/1.0.33/chksum vendored Normal file
View File

@ -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

View File

View File

@ -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
}

View File

@ -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}")

View File

@ -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)