toolchain/gcc: bump to 7.5.0 final

This commit is contained in:
LEAN-ESX 2019-12-02 21:13:18 -08:00
parent 70b242b1c6
commit aa0cf2e785
91 changed files with 1238 additions and 1261 deletions

View File

@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=qbittorrent PKG_NAME:=qbittorrent
PKG_VERSION:=4.1.9 PKG_VERSION:=4.1.9
PKG_RELEASE=3 PKG_RELEASE=5
PKG_SOURCE:=$(PKG_NAME)-release-$(PKG_VERSION).tar.gz PKG_SOURCE:=$(PKG_NAME)-release-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/qbittorrent/qBittorrent/tar.gz/release-$(PKG_VERSION)? PKG_SOURCE_URL:=https://codeload.github.com/qbittorrent/qBittorrent/tar.gz/release-$(PKG_VERSION)?
@ -36,10 +36,6 @@ there. qBittorrent is fast, stable and provides unicode support as
well as many features. well as many features.
endef endef
CONFIGURE_VARS += \
QT_QMAKE="$(TOOLCHAIN_DIR)/bin" \
PKG_CONFIG_PATH="$(TOOLCHAIN_DIR)/lib/pkgconfig"
CONFIGURE_ARGS += \ CONFIGURE_ARGS += \
--disable-gui \ --disable-gui \
--enable-stacktrace=no \ --enable-stacktrace=no \

View File

@ -42,7 +42,7 @@ menuconfig EXTERNAL_TOOLCHAIN
bool bool
prompt "Use external toolchain" if DEVEL prompt "Use external toolchain" if DEVEL
help help
If enabled, LEDE will compile using an existing toolchain instead of If enabled, the buildroot will compile using an existing toolchain instead of
compiling one. compiling one.
config NATIVE_TOOLCHAIN config NATIVE_TOOLCHAIN
@ -51,7 +51,7 @@ menuconfig EXTERNAL_TOOLCHAIN
depends on EXTERNAL_TOOLCHAIN depends on EXTERNAL_TOOLCHAIN
select NO_STRIP select NO_STRIP
help help
If enabled, LEDE will compile using the native toolchain for your If enabled, the buildroot will compile using the native toolchain for your
host instead of compiling one. host instead of compiling one.
config TARGET_NAME config TARGET_NAME
@ -262,6 +262,7 @@ choice
endchoice endchoice
source "toolchain/uClibc/Config.in" source "toolchain/uClibc/Config.in"
source "toolchain/musl/Config.in"
comment "Debuggers" comment "Debuggers"
depends on TOOLCHAINOPTS depends on TOOLCHAINOPTS

View File

@ -49,7 +49,7 @@ ifeq ($(CONFIG_EXTERNAL_TOOLCHAIN),)
$(curdir)/gcc/initial/compile+=$(curdir)/binutils/compile $(curdir)/gcc/initial/compile+=$(curdir)/binutils/compile
$(curdir)/$(LIBC)/compile:=$(curdir)/gcc/initial/compile $(curdir)/$(LIBC)/compile:=$(curdir)/gcc/initial/compile
$(curdir)/gcc/final/compile:=$(curdir)/$(LIBC)/compile $(curdir)/gcc/final/compile:=$(curdir)/$(LIBC)/compile $(curdir)/kernel-headers/compile
$(curdir)/$(LIBC)/utils/compile:=$(curdir)/gcc/final/compile $(curdir)/$(LIBC)/utils/compile:=$(curdir)/gcc/final/compile
endif endif

View File

@ -3,30 +3,24 @@
choice choice
prompt "Binutils Version" if TOOLCHAINOPTS prompt "Binutils Version" if TOOLCHAINOPTS
default BINUTILS_USE_VERSION_2_31_1 if !arc default BINUTILS_USE_VERSION_2_31_1 if !arc
default BINUTILS_USE_VERSION_2_29_ARC if arc default BINUTILS_USE_VERSION_2_32 if arc
help help
Select the version of binutils you wish to use. Select the version of binutils you wish to use.
config BINUTILS_USE_VERSION_2_29_ARC
depends on arc
bool "ARC binutils 2.29"
select BINUTILS_VERSION_2_29_ARC
config BINUTILS_USE_VERSION_2_29_1 config BINUTILS_USE_VERSION_2_29_1
depends on !arc depends on !arc
bool "Binutils 2.29.1" bool "Binutils 2.29.1"
select BINUTILS_VERSION_2_29_1 select BINUTILS_VERSION_2_29_1
config BINUTILS_USE_VERSION_2_30
depends on !arc
bool "Binutils 2.30"
select BINUTILS_VERSION_2_30
config BINUTILS_USE_VERSION_2_31_1 config BINUTILS_USE_VERSION_2_31_1
depends on !arc depends on !arc
bool "Binutils 2.31.1" bool "Binutils 2.31.1"
select BINUTILS_VERSION_2_31_1 select BINUTILS_VERSION_2_31_1
config BINUTILS_USE_VERSION_2_32
bool "Binutils 2.32"
select BINUTILS_VERSION_2_32
endchoice endchoice
config EXTRA_BINUTILS_CONFIG_OPTIONS config EXTRA_BINUTILS_CONFIG_OPTIONS

View File

@ -1,20 +1,16 @@
config BINUTILS_VERSION_2_29_ARC
default y if (!TOOLCHAINOPTS && arc)
bool
config BINUTILS_VERSION_2_29_1 config BINUTILS_VERSION_2_29_1
bool bool
config BINUTILS_VERSION_2_30
bool
config BINUTILS_VERSION_2_31_1 config BINUTILS_VERSION_2_31_1
default y if (!TOOLCHAINOPTS && !arc) default y if (!TOOLCHAINOPTS && !arc)
bool bool
config BINUTILS_VERSION_2_32
default y if (!TOOLCHAINOPTS && arc)
bool
config BINUTILS_VERSION config BINUTILS_VERSION
string string
default "2.29.1" if BINUTILS_VERSION_2_29_1 default "2.29.1" if BINUTILS_VERSION_2_29_1
default "2.30" if BINUTILS_VERSION_2_30
default "2.31.1" if BINUTILS_VERSION_2_31_1 default "2.31.1" if BINUTILS_VERSION_2_31_1
default "arc-2017.09" if BINUTILS_VERSION_2_29_ARC default "2.32" if BINUTILS_VERSION_2_32

View File

@ -19,21 +19,12 @@ ifeq ($(PKG_VERSION),2.29.1)
PKG_HASH:=e7010a46969f9d3e53b650a518663f98a5dde3c3ae21b7d71e5e6803bc36b577 PKG_HASH:=e7010a46969f9d3e53b650a518663f98a5dde3c3ae21b7d71e5e6803bc36b577
endif endif
ifeq ($(PKG_VERSION),2.30)
PKG_HASH:=6e46b8aeae2f727a36f0bd9505e405768a72218f1796f0d09757d45209871ae6
endif
ifeq ($(PKG_VERSION),2.31.1) ifeq ($(PKG_VERSION),2.31.1)
PKG_HASH:=5d20086ecf5752cc7d9134246e9588fa201740d540f7eb84d795b1f7a93bca86 PKG_HASH:=5d20086ecf5752cc7d9134246e9588fa201740d540f7eb84d795b1f7a93bca86
endif endif
ifneq ($(CONFIG_BINUTILS_VERSION_2_29_ARC),) ifeq ($(PKG_VERSION),2.32)
PKG_REV:=arc-2017.09-release PKG_HASH:=0ab6c55dd86a92ed561972ba15b9b70a8b9f75557f896446c82e8b36e473ee04
PKG_SOURCE_URL:=https://github.com/foss-for-synopsys-dwc-arc-processors/binutils-gdb/archive/$(PKG_REV)/
PKG_SOURCE:=$(PKG_NAME)-$(PKG_REV).tar.gz
PKG_HASH:=2ea086fd5521e942926dd6ff6922ce31c29ee7ffc754fca3d06385e0f27600f8
BINUTILS_DIR:=$(PKG_NAME)-gdb-$(PKG_REV)
HOST_BUILD_DIR:=$(BUILD_DIR_TOOLCHAIN)/$(BINUTILS_DIR)
endif endif
HOST_BUILD_PARALLEL:=1 HOST_BUILD_PARALLEL:=1
@ -42,34 +33,33 @@ PATCH_DIR:=./patches/$(PKG_VERSION)
include $(INCLUDE_DIR)/toolchain-build.mk include $(INCLUDE_DIR)/toolchain-build.mk
BINUTILS_CONFIGURE:= \ HOST_CONFIGURE_ARGS = \
./configure \ --prefix=$(TOOLCHAIN_DIR) \
--prefix=$(TOOLCHAIN_DIR) \ --build=$(GNU_HOST_NAME) \
--build=$(GNU_HOST_NAME) \ --host=$(GNU_HOST_NAME) \
--host=$(GNU_HOST_NAME) \ --target=$(REAL_GNU_TARGET_NAME) \
--target=$(REAL_GNU_TARGET_NAME) \ --with-sysroot=$(TOOLCHAIN_DIR) \
--with-sysroot=$(TOOLCHAIN_DIR) \ --enable-deterministic-archives \
--enable-deterministic-archives \ --enable-plugins \
--enable-plugins \ --disable-multilib \
--disable-multilib \ --disable-werror \
--disable-werror \ --disable-nls \
--disable-nls \ --disable-sim \
--disable-sim \ --disable-gdb \
--disable-gdb \ $(GRAPHITE_CONFIGURE) \
$(GRAPHITE_CONFIGURE) \ $(SOFT_FLOAT_CONFIG_OPTION) \
$(SOFT_FLOAT_CONFIG_OPTION) \ $(call qstrip,$(CONFIG_EXTRA_BINUTILS_CONFIG_OPTIONS))
$(call qstrip,$(CONFIG_EXTRA_BINUTILS_CONFIG_OPTIONS))
ifneq ($(CONFIG_SSP_SUPPORT),) ifneq ($(CONFIG_SSP_SUPPORT),)
BINUTILS_CONFIGURE+= \ HOST_CONFIGURE_ARGS+= \
--enable-libssp --enable-libssp
else else
BINUTILS_CONFIGURE+= \ HOST_CONFIGURE_ARGS+= \
--disable-libssp --disable-libssp
endif endif
ifneq ($(CONFIG_EXTRA_TARGET_ARCH),) ifneq ($(CONFIG_EXTRA_TARGET_ARCH),)
BINUTILS_CONFIGURE+= \ HOST_CONFIGURE_ARGS+= \
--enable-targets=$(call qstrip,$(CONFIG_EXTRA_TARGET_ARCH_NAME))-linux-$(TARGET_SUFFIX) --enable-targets=$(call qstrip,$(CONFIG_EXTRA_TARGET_ARCH_NAME))-linux-$(TARGET_SUFFIX)
endif endif
@ -80,12 +70,6 @@ define Host/Prepare
$(SED) 's, " Linaro.*,,' $(HOST_BUILD_DIR)/bfd/version.h $(SED) 's, " Linaro.*,,' $(HOST_BUILD_DIR)/bfd/version.h
endef endef
define Host/Configure
(cd $(HOST_BUILD_DIR); \
$(BINUTILS_CONFIGURE) \
);
endef
define Host/Compile define Host/Compile
+$(MAKE) $(HOST_JOBS) -C $(HOST_BUILD_DIR) all +$(MAKE) $(HOST_JOBS) -C $(HOST_BUILD_DIR) all
endef endef

View File

@ -1,112 +0,0 @@
From: Alan Modra <amodra@gmail.com>
Date: Tue, 5 Jun 2018 21:04:00 +0930
Subject: [PATCH] PR23254, ld.bfd mishandles file pointers while scanning
archive
Best practice is to not mix lseek/read with fseek/fread on the same
underlying file descriptor, as not all stdio implementations will cope.
Since the plugin uses lseek/read while bfd uses fseek/fread this patch
reopens the file for exclusive use by the plugin rather than trying to
restore the file descriptor. That allows the plugin to read the file
after plugin_call_claim_file too.
bfd/
PR 23254
* plugin.c (bfd_plugin_open_input): Allow for possibility of
nested archives. Open file again for plugin.
(try_claim): Don't save and restore file position. Close file
if not claimed.
* sysdep.h (O_BINARY): Define.
ld/
PR 23254
* plugin.c (plugin_call_claim_file): Revert 2016-07-19 patch.
(plugin_object_p): Don't dup file descriptor.
---
--- a/bfd/plugin.c
+++ b/bfd/plugin.c
@@ -165,14 +165,22 @@ bfd_plugin_open_input (bfd *ibfd, struct
bfd *iobfd;
iobfd = ibfd;
- if (ibfd->my_archive && !bfd_is_thin_archive (ibfd->my_archive))
- iobfd = ibfd->my_archive;
+ while (iobfd->my_archive
+ && !bfd_is_thin_archive (iobfd->my_archive))
+ iobfd = iobfd->my_archive;
file->name = iobfd->filename;
if (!iobfd->iostream && !bfd_open_file (iobfd))
return 0;
- file->fd = fileno ((FILE *) iobfd->iostream);
+ /* The plugin API expects that the file descriptor won't be closed
+ and reused as done by the bfd file cache. So open it again.
+ dup isn't good enough. plugin IO uses lseek/read while BFD uses
+ fseek/fread. It isn't wise to mix the unistd and stdio calls on
+ the same underlying file descriptor. */
+ file->fd = open (file->name, O_RDONLY | O_BINARY);
+ if (file->fd < 0)
+ return 0;
if (iobfd == ibfd)
{
@@ -196,12 +204,12 @@ try_claim (bfd *abfd)
int claimed = 0;
struct ld_plugin_input_file file;
+ file.handle = abfd;
if (!bfd_plugin_open_input (abfd, &file))
return 0;
- file.handle = abfd;
- off_t cur_offset = lseek (file.fd, 0, SEEK_CUR);
claim_file (&file, &claimed);
- lseek (file.fd, cur_offset, SEEK_SET);
+ if (!claimed)
+ close (file.fd);
return claimed;
}
--- a/bfd/sysdep.h
+++ b/bfd/sysdep.h
@@ -108,6 +108,10 @@ extern char *strrchr ();
#ifndef O_ACCMODE
#define O_ACCMODE (O_RDONLY | O_WRONLY | O_RDWR)
#endif
+/* Systems that don't already define this, don't need it. */
+#ifndef O_BINARY
+#define O_BINARY 0
+#endif
#ifndef SEEK_SET
#define SEEK_SET 0
--- a/ld/plugin.c
+++ b/ld/plugin.c
@@ -1053,14 +1053,10 @@ plugin_call_claim_file (const struct ld_
{
if (curplug->claim_file_handler)
{
- off_t cur_offset;
enum ld_plugin_status rv;
called_plugin = curplug;
- cur_offset = lseek (file->fd, 0, SEEK_CUR);
rv = (*curplug->claim_file_handler) (file, claimed);
- if (!*claimed)
- lseek (file->fd, cur_offset, SEEK_SET);
called_plugin = NULL;
if (rv != LDPS_OK)
set_plugin_error (curplug->name);
@@ -1126,12 +1122,6 @@ plugin_object_p (bfd *ibfd)
}
file.handle = input;
- /* The plugin API expects that the file descriptor won't be closed
- and reused as done by the bfd file cache. So dup one. */
- file.fd = dup (file.fd);
- if (file.fd < 0)
- return NULL;
-
input->abfd = abfd;
input->view_buffer.addr = NULL;
input->view_buffer.filesize = 0;

View File

@ -11,7 +11,7 @@
EMULATION_OFILES = @EMULATION_OFILES@ EMULATION_OFILES = @EMULATION_OFILES@
--- a/ld/Makefile.in --- a/ld/Makefile.in
+++ b/ld/Makefile.in +++ b/ld/Makefile.in
@@ -446,7 +446,7 @@ AM_CFLAGS = $(WARN_CFLAGS) $(ELF_CLFAGS) @@ -563,7 +563,7 @@ AM_CFLAGS = $(WARN_CFLAGS) $(ELF_CLFAGS)
# We put the scripts in the directory $(scriptdir)/ldscripts. # We put the scripts in the directory $(scriptdir)/ldscripts.
# We can't put the scripts in $(datadir) because the SEARCH_DIR # We can't put the scripts in $(datadir) because the SEARCH_DIR
# directives need to be different for native and cross linkers. # directives need to be different for native and cross linkers.

View File

@ -1,6 +1,6 @@
--- a/ld/emultempl/elf32.em --- a/ld/emultempl/elf32.em
+++ b/ld/emultempl/elf32.em +++ b/ld/emultempl/elf32.em
@@ -1470,6 +1470,8 @@ fragment <<EOF @@ -1471,6 +1471,8 @@ fragment <<EOF
&& command_line.rpath == NULL) && command_line.rpath == NULL)
{ {
path = (const char *) getenv ("LD_RUN_PATH"); path = (const char *) getenv ("LD_RUN_PATH");
@ -9,7 +9,7 @@
if (path if (path
&& gld${EMULATION_NAME}_search_needed (path, &n, force)) && gld${EMULATION_NAME}_search_needed (path, &n, force))
break; break;
@@ -1750,6 +1752,8 @@ gld${EMULATION_NAME}_before_allocation ( @@ -1746,6 +1748,8 @@ gld${EMULATION_NAME}_before_allocation (
rpath = command_line.rpath; rpath = command_line.rpath;
if (rpath == NULL) if (rpath == NULL)
rpath = (const char *) getenv ("LD_RUN_PATH"); rpath = (const char *) getenv ("LD_RUN_PATH");

View File

@ -1,6 +1,6 @@
--- a/bfd/elfxx-mips.c --- a/bfd/elfxx-mips.c
+++ b/bfd/elfxx-mips.c +++ b/bfd/elfxx-mips.c
@@ -7877,6 +7877,7 @@ _bfd_mips_elf_create_dynamic_sections (b @@ -8001,6 +8001,7 @@ _bfd_mips_elf_create_dynamic_sections (b
name = SGI_COMPAT (abfd) ? "_DYNAMIC_LINK" : "_DYNAMIC_LINKING"; name = SGI_COMPAT (abfd) ? "_DYNAMIC_LINK" : "_DYNAMIC_LINKING";
bh = NULL; bh = NULL;
@ -8,7 +8,7 @@
if (!(_bfd_generic_link_add_one_symbol if (!(_bfd_generic_link_add_one_symbol
(info, abfd, name, BSF_GLOBAL, bfd_abs_section_ptr, 0, (info, abfd, name, BSF_GLOBAL, bfd_abs_section_ptr, 0,
NULL, FALSE, get_elf_backend_data (abfd)->collect, &bh))) NULL, FALSE, get_elf_backend_data (abfd)->collect, &bh)))
@@ -7889,6 +7890,7 @@ _bfd_mips_elf_create_dynamic_sections (b @@ -8013,6 +8014,7 @@ _bfd_mips_elf_create_dynamic_sections (b
if (! bfd_elf_link_record_dynamic_symbol (info, h)) if (! bfd_elf_link_record_dynamic_symbol (info, h))
return FALSE; return FALSE;

View File

@ -1,6 +1,6 @@
--- a/bfd/config.bfd --- a/bfd/config.bfd
+++ b/bfd/config.bfd +++ b/bfd/config.bfd
@@ -1189,12 +1189,12 @@ case "${targ}" in @@ -919,12 +919,12 @@ case "${targ}" in
targ_selvecs="mips_elf32_le_vec mips_elf64_be_vec mips_elf64_le_vec mips_ecoff_be_vec mips_ecoff_le_vec" targ_selvecs="mips_elf32_le_vec mips_elf64_be_vec mips_elf64_le_vec mips_ecoff_be_vec mips_ecoff_le_vec"
;; ;;
mips64*el-*-linux*) mips64*el-*-linux*)
@ -19,7 +19,7 @@
targ_defvec=mips_elf32_trad_le_vec targ_defvec=mips_elf32_trad_le_vec
--- a/ld/configure.tgt --- a/ld/configure.tgt
+++ b/ld/configure.tgt +++ b/ld/configure.tgt
@@ -535,11 +535,11 @@ mips*el-*-vxworks*) targ_emul=elf32elmip @@ -468,11 +468,11 @@ mips*el-*-vxworks*) targ_emul=elf32elmip
mips*-*-vxworks*) targ_emul=elf32ebmipvxworks mips*-*-vxworks*) targ_emul=elf32ebmipvxworks
targ_extra_emuls="elf32elmipvxworks" ;; targ_extra_emuls="elf32elmipvxworks" ;;
mips*-*-windiss) targ_emul=elf32mipswindiss ;; mips*-*-windiss) targ_emul=elf32mipswindiss ;;

View File

@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/target.mk include $(INCLUDE_DIR)/target.mk
PKG_NAME:=fortify-headers PKG_NAME:=fortify-headers
PKG_VERSION:=1.0 PKG_VERSION:=1.1
PKG_RELEASE=1 PKG_RELEASE=1
PKG_SOURCE_URL:=http://dl.2f30.org/releases PKG_SOURCE_URL:=http://dl.2f30.org/releases
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_HASH:=026e4cc0f2aa69b7922b1bc8838491048b497faf1c8b20450741114f9ea3775b PKG_HASH:=6ba5d860a2d2ba4c3346924b93930c34856eafe148bdbdf271ecab8065201fb6
include $(INCLUDE_DIR)/toolchain-build.mk include $(INCLUDE_DIR)/toolchain-build.mk

View File

@ -2,16 +2,11 @@
choice choice
prompt "GCC compiler Version" if TOOLCHAINOPTS prompt "GCC compiler Version" if TOOLCHAINOPTS
default GCC_USE_VERSION_7_1_ARC if arc default GCC_USE_VERSION_8 if arc
default GCC_USE_VERSION_7 default GCC_USE_VERSION_7
help help
Select the version of gcc you wish to use. Select the version of gcc you wish to use.
config GCC_USE_VERSION_7_1_ARC
select GCC_VERSION_7_1_ARC
bool "gcc 7.1.x with support of ARC cores"
depends on arc
config GCC_USE_VERSION_5 config GCC_USE_VERSION_5
bool "gcc 5.x" bool "gcc 5.x"
depends on !arc depends on !arc
@ -22,7 +17,6 @@ choice
config GCC_USE_VERSION_8 config GCC_USE_VERSION_8
bool "gcc 8.x" bool "gcc 8.x"
depends on !arc
endchoice endchoice
config GCC_USE_GRAPHITE config GCC_USE_GRAPHITE

View File

@ -1,13 +1,10 @@
config GCC_VERSION_7_1_ARC
default y if (!TOOLCHAINOPTS && arc)
bool
config GCC_VERSION_5 config GCC_VERSION_5
default y if GCC_USE_VERSION_5 default y if GCC_USE_VERSION_5
bool bool
config GCC_VERSION_8 config GCC_VERSION_8
default y if GCC_USE_VERSION_8 default y if GCC_USE_VERSION_8
default y if arc
bool bool
config GCC_USE_EMBEDDED_PATH_REMAP config GCC_USE_EMBEDDED_PATH_REMAP
@ -18,6 +15,5 @@ config GCC_USE_EMBEDDED_PATH_REMAP
config GCC_VERSION config GCC_VERSION
string string
default "5.5.0" if GCC_VERSION_5 default "5.5.0" if GCC_VERSION_5
default "arc-2017.09-release" if GCC_VERSION_7_1_ARC default "8.3.0" if GCC_VERSION_8
default "8.2.0" if GCC_VERSION_8 default "7.5.0"
default "7.4.0"

View File

@ -32,27 +32,17 @@ ifeq ($(PKG_VERSION),5.5.0)
PKG_HASH:=530cea139d82fe542b358961130c69cfde8b3d14556370b65823d2f91f0ced87 PKG_HASH:=530cea139d82fe542b358961130c69cfde8b3d14556370b65823d2f91f0ced87
endif endif
ifeq ($(PKG_VERSION),7.4.0) ifeq ($(PKG_VERSION),7.5.0)
PKG_HASH:=eddde28d04f334aec1604456e536416549e9b1aa137fc69204e65eb0c009fe51 PKG_HASH:=b81946e7f01f90528a1f7352ab08cc602b9ccc05d4e44da4bd501c5a189ee661
endif endif
ifeq ($(PKG_VERSION),8.2.0) ifeq ($(PKG_VERSION),8.3.0)
PKG_HASH:=196c3c04ba2613f893283977e6011b2345d1cd1af9abeac58e916b1aab3e0080 PKG_HASH:=64baadfe6cc0f4947a84cb12d7f0dfaf45bb58b7e92461639596c21e02d97d2c
endif
ifneq ($(CONFIG_GCC_VERSION_7_1_ARC),)
PKG_VERSION:=7.1.1
PKG_SOURCE_URL:=https://github.com/foss-for-synopsys-dwc-arc-processors/gcc/archive/$(GCC_VERSION)
PKG_SOURCE:=$(PKG_NAME)-$(GCC_VERSION).tar.gz
PKG_HASH:=90596af8b9c26a434cec0a3b3d37d0c7c755ab6a65496af6ca32529fab5a6cfe
PKG_REV:=2017.09-release
GCC_DIR:=gcc-arc-$(PKG_REV)
HOST_BUILD_DIR = $(BUILD_DIR_HOST)/$(PKG_NAME)-$(GCC_VERSION)
endif endif
PATCH_DIR=../patches/$(GCC_VERSION) PATCH_DIR=../patches/$(GCC_VERSION)
BUGURL=http://www.lede-project.org/bugs/ BUGURL=http://bugs.openwrt.org/
PKGVERSION=OpenWrt GCC $(PKG_VERSION) $(REVISION) PKGVERSION=OpenWrt GCC $(PKG_VERSION) $(REVISION)
HOST_BUILD_PARALLEL:=1 HOST_BUILD_PARALLEL:=1
@ -123,15 +113,12 @@ GCC_CONFIGURE:= \
--with-gmp=$(TOPDIR)/staging_dir/host \ --with-gmp=$(TOPDIR)/staging_dir/host \
--with-mpfr=$(TOPDIR)/staging_dir/host \ --with-mpfr=$(TOPDIR)/staging_dir/host \
--with-mpc=$(TOPDIR)/staging_dir/host \ --with-mpc=$(TOPDIR)/staging_dir/host \
--disable-decimal-float --disable-decimal-float \
--with-diagnostics-color=auto-if-env
ifneq ($(CONFIG_mips)$(CONFIG_mipsel),) ifneq ($(CONFIG_mips)$(CONFIG_mipsel),)
GCC_CONFIGURE += --with-mips-plt GCC_CONFIGURE += --with-mips-plt
endif endif
ifndef GCC_VERSION_4_8
GCC_CONFIGURE += --with-diagnostics-color=auto-if-env
endif
ifneq ($(CONFIG_GCC_DEFAULT_PIE),) ifneq ($(CONFIG_GCC_DEFAULT_PIE),)
GCC_CONFIGURE+= \ GCC_CONFIGURE+= \
--enable-default-pie --enable-default-pie
@ -183,6 +170,11 @@ ifeq ($(CONFIG_arm),y)
--with-fpu=$(word 2, $(subst +, ",$(CONFIG_CPU_TYPE))) \ --with-fpu=$(word 2, $(subst +, ",$(CONFIG_CPU_TYPE))) \
--with-float=hard --with-float=hard
endif endif
# Do not let TARGET_CFLAGS get poisoned by extra CPU optimization flags
# that do not belong here. The cpu,fpu type should be specified via
# --with-cpu and --with-fpu for ARM and not CFLAGS.
TARGET_CFLAGS:=$(filter-out -m%,$(call qstrip,$(TARGET_CFLAGS)))
endif endif
ifeq ($(CONFIG_TARGET_x86)$(CONFIG_USE_GLIBC)$(CONFIG_INSTALL_GCCGO),yyy) ifeq ($(CONFIG_TARGET_x86)$(CONFIG_USE_GLIBC)$(CONFIG_INSTALL_GCCGO),yyy)

View File

@ -1,6 +1,6 @@
--- a/gcc/config/rs6000/rs6000.c --- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c
@@ -24501,7 +24501,7 @@ rs6000_savres_strategy (rs6000_stack_t * @@ -24632,7 +24632,7 @@ rs6000_savres_strategy (rs6000_stack_t *
/* Define cutoff for using out-of-line functions to save registers. */ /* Define cutoff for using out-of-line functions to save registers. */
if (DEFAULT_ABI == ABI_V4 || TARGET_ELF) if (DEFAULT_ABI == ABI_V4 || TARGET_ELF)
{ {

View File

@ -114,7 +114,7 @@ Date: Tue Jul 31 00:52:27 2007 +0000
; On SVR4 targets, it also controls whether or not to emit a ; On SVR4 targets, it also controls whether or not to emit a
--- a/gcc/opts.c --- a/gcc/opts.c
+++ b/gcc/opts.c +++ b/gcc/opts.c
@@ -2056,6 +2056,9 @@ common_handle_option (struct gcc_options @@ -2065,6 +2065,9 @@ common_handle_option (struct gcc_options
opts, opts_set, loc, dc); opts, opts_set, loc, dc);
break; break;
@ -126,7 +126,7 @@ Date: Tue Jul 31 00:52:27 2007 +0000
opts->x_warn_larger_than = value != -1; opts->x_warn_larger_than = value != -1;
--- a/gcc/doc/invoke.texi --- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi
@@ -7012,6 +7012,17 @@ This option is only supported for C and @@ -7014,6 +7014,17 @@ This option is only supported for C and
@option{-Wall} and by @option{-Wpedantic}, which can be disabled with @option{-Wall} and by @option{-Wpedantic}, which can be disabled with
@option{-Wno-pointer-sign}. @option{-Wno-pointer-sign}.

View File

@ -1,77 +0,0 @@
commit 31285a20390a5e53a74a2a71d1b5c82f366ddd5a
Author: Felix Fietkau <nbd@openwrt.org>
Date: Tue May 6 11:49:05 2014 +0000
gcc: revert an upstream patch that is causing a regression on powerpc
https://forum.openwrt.org/viewtopic.php?pid=232494#p232494
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
SVN-Revision: 40709
Revert of:
commit 275035b56823b26d5fb7e90fad945b998648edf2
Author: bergner <bergner@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Thu Sep 5 14:09:07 2013 +0000
PR target/58139
* reginfo.c (choose_hard_reg_mode): Scan through all mode classes
looking for widest mode.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@202286 138bc75d-0d04-0410-961f-82ee72b054a4
--- a/gcc/reginfo.c
+++ b/gcc/reginfo.c
@@ -637,35 +637,40 @@ choose_hard_reg_mode (unsigned int regno
mode = GET_MODE_WIDER_MODE (mode))
if ((unsigned) hard_regno_nregs[regno][mode] == nregs
&& HARD_REGNO_MODE_OK (regno, mode)
- && (! call_saved || ! HARD_REGNO_CALL_PART_CLOBBERED (regno, mode))
- && GET_MODE_SIZE (mode) > GET_MODE_SIZE (found_mode))
+ && (! call_saved || ! HARD_REGNO_CALL_PART_CLOBBERED (regno, mode)))
found_mode = mode;
+ if (found_mode != VOIDmode)
+ return found_mode;
+
for (mode = GET_CLASS_NARROWEST_MODE (MODE_FLOAT);
mode != VOIDmode;
mode = GET_MODE_WIDER_MODE (mode))
if ((unsigned) hard_regno_nregs[regno][mode] == nregs
&& HARD_REGNO_MODE_OK (regno, mode)
- && (! call_saved || ! HARD_REGNO_CALL_PART_CLOBBERED (regno, mode))
- && GET_MODE_SIZE (mode) > GET_MODE_SIZE (found_mode))
+ && (! call_saved || ! HARD_REGNO_CALL_PART_CLOBBERED (regno, mode)))
found_mode = mode;
+ if (found_mode != VOIDmode)
+ return found_mode;
+
for (mode = GET_CLASS_NARROWEST_MODE (MODE_VECTOR_FLOAT);
mode != VOIDmode;
mode = GET_MODE_WIDER_MODE (mode))
if ((unsigned) hard_regno_nregs[regno][mode] == nregs
&& HARD_REGNO_MODE_OK (regno, mode)
- && (! call_saved || ! HARD_REGNO_CALL_PART_CLOBBERED (regno, mode))
- && GET_MODE_SIZE (mode) > GET_MODE_SIZE (found_mode))
+ && (! call_saved || ! HARD_REGNO_CALL_PART_CLOBBERED (regno, mode)))
found_mode = mode;
+ if (found_mode != VOIDmode)
+ return found_mode;
+
for (mode = GET_CLASS_NARROWEST_MODE (MODE_VECTOR_INT);
mode != VOIDmode;
mode = GET_MODE_WIDER_MODE (mode))
if ((unsigned) hard_regno_nregs[regno][mode] == nregs
&& HARD_REGNO_MODE_OK (regno, mode)
- && (! call_saved || ! HARD_REGNO_CALL_PART_CLOBBERED (regno, mode))
- && GET_MODE_SIZE (mode) > GET_MODE_SIZE (found_mode))
+ && (! call_saved || ! HARD_REGNO_CALL_PART_CLOBBERED (regno, mode)))
found_mode = mode;
if (found_mode != VOIDmode)

View File

@ -1,24 +0,0 @@
commit 81cc26c706b2bc8c8c1eb1a322e5c5157900836e
Author: Felix Fietkau <nbd@openwrt.org>
Date: Sun Oct 19 21:45:51 2014 +0000
gcc: do not assume that the Mac OS X filesystem is case insensitive
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
SVN-Revision: 42973
--- a/include/filenames.h
+++ b/include/filenames.h
@@ -43,11 +43,6 @@ extern "C" {
# define IS_DIR_SEPARATOR(c) IS_DOS_DIR_SEPARATOR (c)
# define IS_ABSOLUTE_PATH(f) IS_DOS_ABSOLUTE_PATH (f)
#else /* not DOSish */
-# if defined(__APPLE__)
-# ifndef HAVE_CASE_INSENSITIVE_FILE_SYSTEM
-# define HAVE_CASE_INSENSITIVE_FILE_SYSTEM 1
-# endif
-# endif /* __APPLE__ */
# define HAS_DRIVE_SPEC(f) (0)
# define IS_DIR_SEPARATOR(c) IS_UNIX_DIR_SEPARATOR (c)
# define IS_ABSOLUTE_PATH(f) IS_UNIX_ABSOLUTE_PATH (f)

View File

@ -1,35 +0,0 @@
commit 098bd91f5eae625c7d2ee621e10930fc4434e5e2
Author: Luka Perkov <luka@openwrt.org>
Date: Tue Feb 26 16:16:33 2013 +0000
gcc: don't build documentation
This closes #13039.
Signed-off-by: Luka Perkov <luka@openwrt.org>
SVN-Revision: 35807
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -3121,18 +3121,10 @@ doc/gcc.info: $(TEXI_GCC_FILES)
doc/gccint.info: $(TEXI_GCCINT_FILES)
doc/cppinternals.info: $(TEXI_CPPINT_FILES)
-doc/%.info: %.texi
- if [ x$(BUILD_INFO) = xinfo ]; then \
- $(MAKEINFO) $(MAKEINFOFLAGS) -I . -I $(gcc_docdir) \
- -I $(gcc_docdir)/include -o $@ $<; \
- fi
+doc/%.info:
# Duplicate entry to handle renaming of gccinstall.info
-doc/gccinstall.info: $(TEXI_GCCINSTALL_FILES)
- if [ x$(BUILD_INFO) = xinfo ]; then \
- $(MAKEINFO) $(MAKEINFOFLAGS) -I $(gcc_docdir) \
- -I $(gcc_docdir)/include -o $@ $<; \
- fi
+doc/gccinstall.info:
doc/cpp.dvi: $(TEXI_CPP_FILES)
doc/gcc.dvi: $(TEXI_GCC_FILES)

View File

@ -1,28 +0,0 @@
commit 1877bc9d8f2be143fbe530347a945850d0ecd234
Author: Steven Barth <cyrus@openwrt.org>
Date: Mon Jun 22 10:31:07 2015 +0000
gcc/musl: rework SSP-support
Make musl provide libssp_nonshared.a and make GCC link it unconditionally
if musl is used. This should be a no-op if SSP is disabled and seems to be
the only reliable way of dealing with SSP over all packages due to the mess
that is linkerflags handling in packages.
Signed-off-by: Steven Barth <steven@midlink.org>
SVN-Revision: 46108
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -861,7 +861,9 @@ proper position among the other output f
#endif
#ifndef LINK_SSP_SPEC
-#ifdef TARGET_LIBC_PROVIDES_SSP
+#if DEFAULT_LIBC == LIBC_MUSL
+#define LINK_SSP_SPEC "-lssp_nonshared"
+#elif defined(TARGET_LIBC_PROVIDES_SSP)
#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
"|fstack-protector-strong|fstack-protector-explicit:}"
#else

View File

@ -1,21 +0,0 @@
commit ecf7671b769fe96f7b5134be442089f8bdba55d2
Author: Felix Fietkau <nbd@nbd.name>
Date: Thu Aug 4 20:29:45 2016 +0200
gcc: add a patch to generate better code with Os on mips
Also happens to reduce compressed code size a bit
Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/gcc/config/mips/mips.c
+++ b/gcc/config/mips/mips.c
@@ -19784,7 +19784,7 @@ mips_option_override (void)
flag_pcc_struct_return = 0;
/* Decide which rtx_costs structure to use. */
- if (optimize_size)
+ if (0 && optimize_size)
mips_cost = &mips_rtx_cost_optimize_size;
else
mips_cost = &mips_rtx_cost_data[mips_tune];

View File

@ -1,32 +0,0 @@
commit b050f87d13b5dc7ed82feb9a90f4529de58bdf25
Author: Felix Fietkau <nbd@openwrt.org>
Date: Wed Feb 19 19:20:10 2014 +0000
gcc: prevent the use of LDRD/STRD on ARMv5TE
These instructions are for 64-bit load/store. On ARMv5TE, the CPU
requires addresses to be aligned to 64-bit. When misaligned, behavior is
undefined (effectively either loads the same word twice on LDRD, or
corrupts surrounding memory on STRD).
On ARMv6 and newer, unaligned access is safe.
Removing these instructions for ARMv5TE is necessary, because GCC
ignores alignment information in pointers and does unsafe optimizations
that have shown up as bugs in various places.
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
SVN-Revision: 39638
--- a/gcc/config/arm/arm.h
+++ b/gcc/config/arm/arm.h
@@ -150,7 +150,7 @@ extern tree arm_fp16_type_node;
/* Thumb-1 only. */
#define TARGET_THUMB1_ONLY (TARGET_THUMB1 && !arm_arch_notm)
-#define TARGET_LDRD (arm_arch5e && ARM_DOUBLEWORD_ALIGN \
+#define TARGET_LDRD (arm_arch6 && ARM_DOUBLEWORD_ALIGN \
&& !TARGET_THUMB1)
#define TARGET_CRC32 (arm_arch_crc)

View File

@ -1,33 +0,0 @@
commit 8570c4be394cff7282f332f97da2ff569a927ddb
Author: Imre Kaloz <kaloz@openwrt.org>
Date: Wed Feb 2 20:06:12 2011 +0000
fixup arm soft-float symbols
SVN-Revision: 25325
--- a/libgcc/config/arm/t-linux
+++ b/libgcc/config/arm/t-linux
@@ -1,6 +1,10 @@
LIB1ASMSRC = arm/lib1funcs.S
LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx _clzsi2 _clzdi2 \
- _ctzsi2 _arm_addsubdf3 _arm_addsubsf3
+ _ctzsi2 _arm_addsubdf3 _arm_addsubsf3 \
+ _arm_negdf2 _arm_muldivdf3 _arm_cmpdf2 _arm_unorddf2 \
+ _arm_fixdfsi _arm_fixunsdfsi _arm_truncdfsf2 \
+ _arm_negsf2 _arm_muldivsf3 _arm_cmpsf2 _arm_unordsf2 \
+ _arm_fixsfsi _arm_fixunssfsi
# Just for these, we omit the frame pointer since it makes such a big
# difference.
--- a/gcc/config/arm/linux-elf.h
+++ b/gcc/config/arm/linux-elf.h
@@ -58,8 +58,6 @@
%{shared:-lc} \
%{!shared:%{profile:-lc_p}%{!profile:-lc}}"
-#define LIBGCC_SPEC "%{mfloat-abi=soft*:-lfloat} -lgcc"
-
#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
#define LINUX_TARGET_LINK_SPEC "%{h*} \

View File

@ -1,44 +0,0 @@
commit c96312958c0621e72c9b32da5bc224ffe2161384
Author: Felix Fietkau <nbd@openwrt.org>
Date: Mon Oct 19 23:26:09 2009 +0000
gcc: create a proper libgcc_pic.a static library for relinking (4.3.3+ for now, backport will follow)
SVN-Revision: 18086
--- a/libgcc/Makefile.in
+++ b/libgcc/Makefile.in
@@ -920,11 +920,12 @@ $(libgcov-driver-objects): %$(objext): $
# Static libraries.
libgcc.a: $(libgcc-objects)
+libgcc_pic.a: $(libgcc-s-objects)
libgcov.a: $(libgcov-objects)
libunwind.a: $(libunwind-objects)
libgcc_eh.a: $(libgcc-eh-objects)
-libgcc.a libgcov.a libunwind.a libgcc_eh.a:
+libgcc.a libgcov.a libunwind.a libgcc_eh.a libgcc_pic.a:
-rm -f $@
objects="$(objects)"; \
@@ -945,7 +946,7 @@ all: libunwind.a
endif
ifeq ($(enable_shared),yes)
-all: libgcc_eh.a libgcc_s$(SHLIB_EXT)
+all: libgcc_eh.a libgcc_pic.a libgcc_s$(SHLIB_EXT)
ifneq ($(LIBUNWIND),)
all: libunwind$(SHLIB_EXT)
libgcc_s$(SHLIB_EXT): libunwind$(SHLIB_EXT)
@@ -1151,6 +1152,10 @@ install-shared:
chmod 644 $(DESTDIR)$(inst_libdir)/libgcc_eh.a
$(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc_eh.a
+ $(INSTALL_DATA) libgcc_pic.a $(mapfile) $(DESTDIR)$(inst_libdir)/
+ chmod 644 $(DESTDIR)$(inst_libdir)/libgcc_pic.a
+ $(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc_pic.a
+
$(subst @multilib_dir@,$(MULTIDIR),$(subst \
@shlib_base_name@,libgcc_s,$(subst \
@shlib_slibdir_qual@,$(MULTIOSSUBDIR),$(SHLIB_INSTALL))))

View File

@ -1,28 +0,0 @@
commit 7edc8ca5456d9743dd0075eb3cc5b04f4f24c8cc
Author: Imre Kaloz <kaloz@openwrt.org>
Date: Wed Feb 2 19:34:36 2011 +0000
add armv4 fixup patches
SVN-Revision: 25322
--- a/gcc/config/arm/linux-eabi.h
+++ b/gcc/config/arm/linux-eabi.h
@@ -88,10 +88,15 @@
#define MUSL_DYNAMIC_LINKER \
"/lib/ld-musl-arm" MUSL_DYNAMIC_LINKER_E "%{mfloat-abi=hard:hf}.so.1"
+/* For armv4 we pass --fix-v4bx to linker to support EABI */
+#undef TARGET_FIX_V4BX_SPEC
+#define TARGET_FIX_V4BX_SPEC " %{mcpu=arm8|mcpu=arm810|mcpu=strongarm*"\
+ "|march=armv4|mcpu=fa526|mcpu=fa626:--fix-v4bx}"
+
/* At this point, bpabi.h will have clobbered LINK_SPEC. We want to
use the GNU/Linux version, not the generic BPABI version. */
#undef LINK_SPEC
-#define LINK_SPEC EABI_LINK_SPEC \
+#define LINK_SPEC EABI_LINK_SPEC TARGET_FIX_V4BX_SPEC \
LINUX_OR_ANDROID_LD (LINUX_TARGET_LINK_SPEC, \
LINUX_TARGET_LINK_SPEC " " ANDROID_LINK_SPEC)

View File

@ -1,54 +0,0 @@
commit dcfc40358b5a3cae7320c17f8d1cebd5ad5540cd
Author: Felix Fietkau <nbd@openwrt.org>
Date: Sun Feb 12 20:25:47 2012 +0000
gcc 4.6: port over the missing patch 850-use_shared_libgcc.patch to prevent libgcc crap from leaking into every single binary
SVN-Revision: 30486
--- a/gcc/config/arm/linux-eabi.h
+++ b/gcc/config/arm/linux-eabi.h
@@ -126,10 +126,6 @@
"%{Ofast|ffast-math|funsafe-math-optimizations:crtfastmath.o%s} " \
LINUX_OR_ANDROID_LD (GNU_USER_TARGET_ENDFILE_SPEC, ANDROID_ENDFILE_SPEC)
-/* Use the default LIBGCC_SPEC, not the version in linux-elf.h, as we
- do not use -lfloat. */
-#undef LIBGCC_SPEC
-
/* Clear the instruction cache from `beg' to `end'. This is
implemented in lib1funcs.S, so ensure an error if this definition
is used. */
--- a/gcc/config/linux.h
+++ b/gcc/config/linux.h
@@ -53,6 +53,10 @@ see the files COPYING3 and COPYING.RUNTI
builtin_assert ("system=posix"); \
} while (0)
+#ifndef LIBGCC_SPEC
+#define LIBGCC_SPEC "%{static|static-libgcc:-lgcc}%{!static:%{!static-libgcc:-lgcc_s}}"
+#endif
+
/* Determine which dynamic linker to use depending on whether GLIBC or
uClibc or Bionic or musl is the default C library and whether
-muclibc or -mglibc or -mbionic or -mmusl has been passed to change
--- a/libgcc/mkmap-symver.awk
+++ b/libgcc/mkmap-symver.awk
@@ -136,5 +136,5 @@ function output(lib) {
else if (inherit[lib])
printf("} %s;\n", inherit[lib]);
else
- printf ("\n local:\n\t*;\n};\n");
+ printf ("\n\t*;\n};\n");
}
--- a/gcc/config/rs6000/linux.h
+++ b/gcc/config/rs6000/linux.h
@@ -60,6 +60,9 @@
#undef CPP_OS_DEFAULT_SPEC
#define CPP_OS_DEFAULT_SPEC "%(cpp_os_linux)"
+#undef LIBGCC_SPEC
+#define LIBGCC_SPEC "%{!static:%{!static-libgcc:-lgcc_s}} -lgcc"
+
#undef LINK_SHLIB_SPEC
#define LINK_SHLIB_SPEC "%{shared:-shared} %{!shared: %{static:-static}}"

View File

@ -1,22 +0,0 @@
commit 64661de100da1ec1061ef3e5e400285dce115e6b
Author: Felix Fietkau <nbd@openwrt.org>
Date: Sun May 10 13:16:35 2015 +0000
gcc: add some size optimization patches
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
SVN-Revision: 45664
--- a/libgcc/config/t-libunwind
+++ b/libgcc/config/t-libunwind
@@ -2,8 +2,7 @@
HOST_LIBGCC2_CFLAGS += -DUSE_GAS_SYMVER
-LIB2ADDEH = $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c \
- $(srcdir)/unwind-compat.c $(srcdir)/unwind-dw2-fde-compat.c
+LIB2ADDEH = $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c
LIB2ADDEHSTATIC = $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c
# Override the default value from t-slibgcc-elf-ver and mention -lunwind

View File

@ -1,18 +0,0 @@
commit d8c570a1531035c3e26bcd94741e5f5b9c36b5d9
Author: Felix Fietkau <nbd@openwrt.org>
Date: Mon Mar 5 00:51:01 2012 +0000
gcc: do not emit references to _savegpr_* and _restgpr_* on powerpc, as they are tricky to deal with wrt. libgcc. they cannot be linked dynamically
SVN-Revision: 30814
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -26936,7 +26936,7 @@ rs6000_savres_strategy (rs6000_stack_t *
/* Define cutoff for using out-of-line functions to save registers. */
if (DEFAULT_ABI == ABI_V4 || TARGET_ELF)
{
- if (!optimize_size)
+ if (1)
{
strategy |= SAVE_INLINE_FPRS | REST_INLINE_FPRS;
strategy |= SAVE_INLINE_GPRS | REST_INLINE_GPRS;

View File

@ -1,22 +0,0 @@
commit 565988ab47bd9b96b50608564aee2104aeb4b7ae
Author: Felix Fietkau <nbd@nbd.name>
Date: Tue Dec 13 14:20:49 2016 +0100
gcc: rip out transactional memory related bloat from crtbegin
Slightly improves compression for each executable, saving about 4k from
the default ar71xx rootfs
Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/libgcc/crtstuff.c
+++ b/libgcc/crtstuff.c
@@ -152,7 +152,7 @@ call_ ## FUNC (void) \
#endif
#if !defined(USE_TM_CLONE_REGISTRY) && defined(OBJECT_FORMAT_ELF)
-# define USE_TM_CLONE_REGISTRY 1
+# define USE_TM_CLONE_REGISTRY 0
#endif
/* We do not want to add the weak attribute to the declarations of these

View File

@ -1,30 +0,0 @@
commit 9dc38e48f7a6f88b7ac7bfaced91f53660204e46
Author: Florian Fainelli <florian@openwrt.org>
Date: Fri Apr 5 12:36:06 2013 +0000
toolchain/gcc: .init and .fini need to pick one ISA
The .init and .fini sections are built by concatenating code
fragments. Putting mips16 code in the middle of a mips32 code block
doesn't work. Make gcc built the magic crt stuff in no-mips16 mode.
This is specific to 4.6-linaro but is probably portable to other gcc
flavors. Adding this to the t-libgcc-mips16 makefile fragment is a
hack not suitable for pushing upstream, but there is no mips/t-linux
or mips/t-uclibc and I am not going to touch gcc/configure for two
lines.
Signed-off-by: Jay Carlson <nop@nop.com>
Signed-off-by: Florian Fainelli <florian@openwrt.org>
SVN-Revision: 36200
--- a/libgcc/config/mips/t-mips16
+++ b/libgcc/config/mips/t-mips16
@@ -43,3 +43,6 @@ SYNC_CFLAGS = -mno-mips16
# Version these symbols if building libgcc.so.
SHLIB_MAPFILES += $(srcdir)/config/mips/libgcc-mips16.ver
+
+CRTSTUFF_T_CFLAGS += -mno-mips16
+CRTSTUFF_T_CFLAGS_S += -mno-mips16

View File

@ -1,146 +0,0 @@
commit 99368862e44740ff4fd33760893f04e14f9dbdf1
Author: Felix Fietkau <nbd@openwrt.org>
Date: Tue Jul 31 00:52:27 2007 +0000
Port the mbsd_multi patch from freewrt, which adds -fhonour-copts. This will emit warnings in packages that don't use our target cflags properly
SVN-Revision: 8256
This patch brings over a feature from MirBSD:
* -fhonour-copts
If this option is not given, it's warned (depending
on environment variables). This is to catch errors
of misbuilt packages which override CFLAGS themselves.
This patch was authored by Thorsten Glaser <tg at mirbsd.de>
with copyright assignment to the FSF in effect.
--- a/gcc/c-family/c-opts.c
+++ b/gcc/c-family/c-opts.c
@@ -108,6 +108,9 @@ static int class_dump_flags;
/* Whether any standard preincluded header has been preincluded. */
static bool done_preinclude;
+/* Check if a port honours COPTS. */
+static int honour_copts = 0;
+
static void handle_OPT_d (const char *);
static void set_std_cxx98 (int);
static void set_std_cxx11 (int);
@@ -456,6 +459,12 @@ c_common_handle_option (size_t scode, co
flag_no_builtin = !value;
break;
+ case OPT_fhonour_copts:
+ if (c_language == clk_c) {
+ honour_copts++;
+ }
+ break;
+
case OPT_fconstant_string_class_:
constant_string_class_name = arg;
break;
@@ -1084,6 +1093,47 @@ c_common_init (void)
return false;
}
+ if (c_language == clk_c) {
+ char *ev = getenv ("GCC_HONOUR_COPTS");
+ int evv;
+ if (ev == NULL)
+ evv = -1;
+ else if ((*ev == '0') || (*ev == '\0'))
+ evv = 0;
+ else if (*ev == '1')
+ evv = 1;
+ else if (*ev == '2')
+ evv = 2;
+ else if (*ev == 's')
+ evv = -1;
+ else {
+ warning (0, "unknown GCC_HONOUR_COPTS value, assuming 1");
+ evv = 1; /* maybe depend this on something like MIRBSD_NATIVE? */
+ }
+ if (evv == 1) {
+ if (honour_copts == 0) {
+ error ("someone does not honour COPTS at all in lenient mode");
+ return false;
+ } else if (honour_copts != 1) {
+ warning (0, "someone does not honour COPTS correctly, passed %d times",
+ honour_copts);
+ }
+ } else if (evv == 2) {
+ if (honour_copts == 0) {
+ error ("someone does not honour COPTS at all in strict mode");
+ return false;
+ } else if (honour_copts != 1) {
+ error ("someone does not honour COPTS correctly, passed %d times",
+ honour_copts);
+ return false;
+ }
+ } else if (evv == 0) {
+ if (honour_copts != 1)
+ inform (0, "someone does not honour COPTS correctly, passed %d times",
+ honour_copts);
+ }
+ }
+
return true;
}
--- a/gcc/c-family/c.opt
+++ b/gcc/c-family/c.opt
@@ -1412,6 +1412,9 @@ C++ ObjC++ Optimization Alias(fexception
fhonor-std
C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
+fhonour-copts
+C ObjC C++ ObjC++ RejectNegative
+
fhosted
C ObjC
Assume normal C execution environment.
--- a/gcc/common.opt
+++ b/gcc/common.opt
@@ -1510,6 +1510,9 @@ fguess-branch-probability
Common Report Var(flag_guess_branch_prob) Optimization
Enable guessing of branch probabilities.
+fhonour-copts
+Common RejectNegative
+
; Nonzero means ignore `#ident' directives. 0 means handle them.
; Generate position-independent code for executables if possible
; On SVR4 targets, it also controls whether or not to emit a
--- a/gcc/opts.c
+++ b/gcc/opts.c
@@ -1928,6 +1928,9 @@ common_handle_option (struct gcc_options
opts, opts_set, loc, dc);
break;
+ case OPT_fhonour_copts:
+ break;
+
case OPT_Wlarger_than_:
opts->x_larger_than_size = value;
opts->x_warn_larger_than = value != -1;
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -6567,6 +6567,17 @@ This option is only supported for C and
@option{-Wall} and by @option{-Wpedantic}, which can be disabled with
@option{-Wno-pointer-sign}.
+@item -fhonour-copts
+@opindex fhonour-copts
+If @env{GCC_HONOUR_COPTS} is set to 1, abort if this option is not
+given at least once, and warn if it is given more than once.
+If @env{GCC_HONOUR_COPTS} is set to 2, abort if this option is not
+given exactly once.
+If @env{GCC_HONOUR_COPTS} is set to 0 or unset, warn if this option
+is not given exactly once.
+The warning is quelled if @env{GCC_HONOUR_COPTS} is set to @samp{s}.
+This flag and environment variable only affect the C language.
+
@item -Wstack-protector
@opindex Wstack-protector
@opindex Wno-stack-protector

View File

@ -1,22 +0,0 @@
Author: Jo-Philipp Wich <jow@openwrt.org>
Date: Sat Apr 21 03:02:39 2012 +0000
gcc: add patch to make the getenv() spec function nonfatal if requested environment variable is unset
SVN-Revision: 31390
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -9280,8 +9280,10 @@ getenv_spec_function (int argc, const ch
value = varname;
if (!value)
- fatal_error (input_location,
- "environment variable %qs not defined", varname);
+ {
+ warning (input_location, "environment variable %qs not defined", varname);
+ value = "";
+ }
/* We have to escape every character of the environment variable so
they are not interpreted as active spec characters. A

View File

@ -1,111 +0,0 @@
From da45b3fde60095756f5f6030f6012c23a3d34429 Mon Sep 17 00:00:00 2001
From: Andrew McDonnell <bugs@andrewmcdonnell.net>
Date: Fri, 3 Oct 2014 19:09:00 +0930
Subject: Add .note.GNU-stack section
See http://lists.busybox.net/pipermail/uclibc/2014-October/048671.html
Below copied from https://gcc.gnu.org/ml/gcc-patches/2014-09/msg02430.html
Re: [Patch, MIPS] Add .note.GNU-stack section
From: Steve Ellcey <sellcey at mips dot com>
On Wed, 2014-09-10 at 10:15 -0700, Eric Christopher wrote:
>
>
> On Wed, Sep 10, 2014 at 9:27 AM, <pinskia@gmail.com> wrote:
> This works except you did not update the assembly files in
> libgcc or glibc. We (Cavium) have the same patch in our tree
> for a few released versions.
> Mind just checking yours in then Andrew?
> Thanks!
> -eric
I talked to Andrew about what files he changed in GCC and created and
tested this new patch. Andrew also mentioned changing some assembly
files in glibc but I don't see any use of '.section .note.GNU-stack' in
any assembly files in glibc (for any platform) so I wasn't planning on
creating a glibc to add them to mips glibc assembly language files.
OK to check in this patch?
Steve Ellcey
sellcey@mips.com
2014-09-26 Steve Ellcey <sellcey@mips.com>
---
gcc/config/mips/mips.c | 3 +++
libgcc/config/mips/crti.S | 4 ++++
libgcc/config/mips/crtn.S | 3 +++
libgcc/config/mips/mips16.S | 4 ++++
libgcc/config/mips/vr4120-div.S | 4 ++++
5 files changed, 18 insertions(+)
--- a/gcc/config/mips/mips.c
+++ b/gcc/config/mips/mips.c
@@ -22561,6 +22561,9 @@ mips_promote_function_mode (const_tree t
#undef TARGET_CUSTOM_FUNCTION_DESCRIPTORS
#define TARGET_CUSTOM_FUNCTION_DESCRIPTORS 2
+#undef TARGET_ASM_FILE_END
+#define TARGET_ASM_FILE_END file_end_indicate_exec_stack
+
struct gcc_target targetm = TARGET_INITIALIZER;
#include "gt-mips.h"
--- a/libgcc/config/mips/crti.S
+++ b/libgcc/config/mips/crti.S
@@ -21,6 +21,10 @@ a copy of the GCC Runtime Library Except
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
<http://www.gnu.org/licenses/>. */
+
+/* An executable stack is *not* required for these functions. */
+ .section .note.GNU-stack,"",%progbits
+
/* 4 slots for argument spill area. 1 for cpreturn, 1 for stack.
Return spill offset of 40 and 20. Aligned to 16 bytes for n32. */
--- a/libgcc/config/mips/crtn.S
+++ b/libgcc/config/mips/crtn.S
@@ -21,6 +21,9 @@ a copy of the GCC Runtime Library Except
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
<http://www.gnu.org/licenses/>. */
+/* An executable stack is *not* required for these functions. */
+ .section .note.GNU-stack,"",%progbits
+
/* 4 slots for argument spill area. 1 for cpreturn, 1 for stack.
Return spill offset of 40 and 20. Aligned to 16 bytes for n32. */
--- a/libgcc/config/mips/mips16.S
+++ b/libgcc/config/mips/mips16.S
@@ -48,6 +48,10 @@ see the files COPYING3 and COPYING.RUNTI
values using the soft-float calling convention, but do the actual
operation using the hard floating point instructions. */
+/* An executable stack is *not* required for these functions. */
+ .section .note.GNU-stack,"",%progbits
+ .previous
+
#if defined _MIPS_SIM && (_MIPS_SIM == _ABIO32 || _MIPS_SIM == _ABIO64)
/* This file contains 32-bit assembly code. */
--- a/libgcc/config/mips/vr4120-div.S
+++ b/libgcc/config/mips/vr4120-div.S
@@ -26,6 +26,10 @@ see the files COPYING3 and COPYING.RUNTI
-mfix-vr4120. div and ddiv do not give the correct result when one
of the operands is negative. */
+/* An executable stack is *not* required for these functions. */
+ .section .note.GNU-stack,"",%progbits
+ .previous
+
.set nomips16
#define DIV \

View File

@ -1,33 +0,0 @@
commit 548d9a008ff265e9eaa3c7e0e6e301c6bd5645e6
Author: Felix Fietkau <nbd@openwrt.org>
Date: Fri Dec 12 17:01:57 2014 +0000
gcc: don't clobber stamp-bits with a symlink to itself
Several versions of gcc have an issue in libstdc++v3 where the build may
clobber stamp-bits with a link to itself. This doesn't manifest itself
on all systems. On several Ubuntu systems, this doesn't appear to be a
problem, but it is an issue on Fedora 16 systems.
To fix the issue, we'll simply filter out stamp-bits from the symlinks
to be generated.
Note: gcc 4.4.7 is unaffected by this issue, so no fix is necessary
there.
Signed-off-by: John Szakmeister <john@szakmeister.net>
SVN-Revision: 43669
--- a/libstdc++-v3/include/Makefile.in
+++ b/libstdc++-v3/include/Makefile.in
@@ -1476,7 +1476,7 @@ stamp-bits: ${bits_headers}
@$(STAMP) stamp-bits
stamp-bits-sup: stamp-bits ${bits_sup_headers}
- @-cd ${bits_builddir} && $(LN_S) $? . 2>/dev/null
+ @-cd ${bits_builddir} && $(LN_S) $(filter-out stamp-bits,$?) . 2>/dev/null
@$(STAMP) stamp-bits-sup
stamp-c_base: ${c_base_headers}

View File

@ -1,181 +0,0 @@
commit 331735a357a73c7b8adc205241ac3cc6543d985e
Author: Felix Fietkau <nbd@openwrt.org>
Date: Tue Nov 17 12:38:22 2015 +0000
gcc: add a patch to 5.x that supports translation of __FILE__ paths
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
SVN-Revision: 47490
Forward ported from attachment to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47047
--- a/gcc/c-family/c-opts.c
+++ b/gcc/c-family/c-opts.c
@@ -588,6 +588,10 @@ c_common_handle_option (size_t scode, co
add_path (xstrdup (arg), SYSTEM, 0, true);
break;
+ case OPT_iremap:
+ add_cpp_remap_path (arg);
+ break;
+
case OPT_iwithprefix:
add_prefixed_path (arg, SYSTEM);
break;
--- a/gcc/c-family/c.opt
+++ b/gcc/c-family/c.opt
@@ -1825,6 +1825,10 @@ iquote
C ObjC C++ ObjC++ Joined Separate MissingArgError(missing path after %qs)
-iquote <dir> Add <dir> to the end of the quote include path.
+iremap
+C ObjC C++ ObjC++ Joined Separate
+-iremap <src:dst> Convert <src> to <dst> if it occurs as prefix in __FILE__.
+
iwithprefix
C ObjC C++ ObjC++ Joined Separate
-iwithprefix <dir> Add <dir> to the end of the system include path.
--- a/gcc/doc/cpp.texi
+++ b/gcc/doc/cpp.texi
@@ -4272,6 +4272,7 @@ Refer to the GCC manual for full documen
@c man begin SYNOPSIS
cpp [@option{-D}@var{macro}[=@var{defn}]@dots{}] [@option{-U}@var{macro}]
[@option{-I}@var{dir}@dots{}] [@option{-iquote}@var{dir}@dots{}]
+ [@option{-iremap}@var{src}:@var{dst}]
[@option{-M}|@option{-MM}] [@option{-MG}] [@option{-MF} @var{filename}]
[@option{-MP}] [@option{-MQ} @var{target}@dots{}]
[@option{-MT} @var{target}@dots{}]
--- a/gcc/doc/cppopts.texi
+++ b/gcc/doc/cppopts.texi
@@ -220,6 +220,12 @@ extensions @samp{.i}, @samp{.ii} or @sam
extensions that GCC uses for preprocessed files created by
@option{-save-temps}.
+@item -iremap @var{src}:@var{dst}
+@opindex iremap
+Replace the prefix @var{src} in __FILE__ with @var{dst} at expansion time.
+This option can be specified more than once. Processing stops at the first
+match.
+
@item -fdirectives-only
@opindex fdirectives-only
When preprocessing, handle directives, but do not expand macros.
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -11863,6 +11863,12 @@ by @option{-fplugin=@var{name}} instead
@option{-fplugin=@var{path}/@var{name}.so}. This option is not meant
to be used by the user, but only passed by the driver.
+@item -iremap @var{src}:@var{dst}
+@opindex iremap
+Replace the prefix @var{src} in __FILE__ with @var{dst} at expansion time.
+This option can be specified more than once. Processing stops at the first
+match.
+
@item -L@var{dir}
@opindex L
Add directory @var{dir} to the list of directories to be searched
--- a/libcpp/include/cpplib.h
+++ b/libcpp/include/cpplib.h
@@ -820,6 +820,9 @@ extern void cpp_set_lang (cpp_reader *,
/* Set the include paths. */
extern void cpp_set_include_chains (cpp_reader *, cpp_dir *, cpp_dir *, int);
+/* Provide src:dst pair for __FILE__ remapping. */
+extern void add_cpp_remap_path (const char *);
+
/* Call these to get pointers to the options, callback, and deps
structures for a given reader. These pointers are good until you
call cpp_finish on that reader. You can either edit the callbacks
--- a/libcpp/macro.c
+++ b/libcpp/macro.c
@@ -227,6 +227,64 @@ static const char * const monthnames[] =
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
};
+static size_t remap_pairs;
+static char **remap_src;
+static char **remap_dst;
+
+void
+add_cpp_remap_path (const char *arg)
+{
+ const char *arg_dst;
+ size_t len;
+
+ arg_dst = strchr(arg, ':');
+ if (arg_dst == NULL)
+ {
+ fprintf(stderr, "Invalid argument for -iremap\n");
+ exit(1);
+ }
+
+ len = arg_dst - arg;
+ ++arg_dst;
+
+ remap_src = (char **) xrealloc(remap_src, sizeof(char *) * (remap_pairs + 1));
+ remap_dst = (char **) xrealloc(remap_dst, sizeof(char *) * (remap_pairs + 1));
+
+ remap_src[remap_pairs] = (char *) xmalloc(len + 1);
+ memcpy(remap_src[remap_pairs], arg, len);
+ remap_src[remap_pairs][len] = '\0';
+ remap_dst[remap_pairs] = xstrdup(arg_dst);
+ ++remap_pairs;
+}
+
+static const char *
+cpp_remap_file (const char *arg, char **tmp_name)
+{
+ char *result;
+ size_t i, len;
+
+ for (i = 0; i < remap_pairs; ++i)
+ {
+ len = strlen (remap_src[i]);
+ if (strncmp (remap_src[i], arg, len))
+ continue;
+ if (arg[len] == '\0')
+ return xstrdup (remap_dst[i]);
+ if (arg[len] != '/')
+ continue;
+ arg += len;
+ len = strlen (remap_dst[i]);
+ result = (char *) xmalloc (len + strlen (arg) + 1);
+ memcpy(result, remap_dst[i], len);
+ strcpy(result + len, arg);
+ *tmp_name = result;
+
+ return result;
+ }
+
+ return arg;
+}
+
/* Helper function for builtin_macro. Returns the text generated by
a builtin macro. */
const uchar *
@@ -290,6 +348,7 @@ _cpp_builtin_macro_text (cpp_reader *pfi
{
unsigned int len;
const char *name;
+ char *tmp_name = NULL;
uchar *buf;
if (node->value.builtin == BT_FILE)
@@ -301,6 +360,7 @@ _cpp_builtin_macro_text (cpp_reader *pfi
if (!name)
abort ();
}
+ name = cpp_remap_file (name, &tmp_name);
len = strlen (name);
buf = _cpp_unaligned_alloc (pfile, len * 2 + 3);
result = buf;
@@ -308,6 +368,7 @@ _cpp_builtin_macro_text (cpp_reader *pfi
buf = cpp_quote_string (buf + 1, (const unsigned char *) name, len);
*buf++ = '"';
*buf = '\0';
+ free (tmp_name);
}
break;

View File

@ -17,11 +17,11 @@ PKG_HASH:=7e3c2a763bf500a40c5c4591a7e22c591dafc1f214b1d514895c1096e85c883a
GDB_DIR:=binutils-$(PKG_NAME)-$(PKG_VERSION) GDB_DIR:=binutils-$(PKG_NAME)-$(PKG_VERSION)
PATCH_DIR:=./patches-arc PATCH_DIR:=./patches-arc
else else
PKG_VERSION:=8.2 PKG_VERSION:=8.3.1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=@GNU/gdb PKG_SOURCE_URL:=@GNU/gdb
PKG_HASH:=c3a441a29c7c89720b734e5a9c6289c0a06be7e0c76ef538f7bbcef389347c39 PKG_HASH:=1e55b4d7cdca7b34be12f4ceae651623aa73b2fd640152313f9f66a7149757c4
GDB_DIR:=$(PKG_NAME)-$(PKG_VERSION) GDB_DIR:=$(PKG_NAME)-$(PKG_VERSION)
endif endif

View File

@ -1,24 +1,16 @@
--- a/sim/common/sim-arange.c --- a/sim/common/sim-arange.c
+++ b/sim/common/sim-arange.c +++ b/sim/common/sim-arange.c
@@ -280,11 +280,7 @@ sim_addr_range_delete (ADDR_RANGE *ar, a @@ -277,9 +277,7 @@ sim_addr_range_delete (ADDR_RANGE *ar, a
build_search_tree (ar); build_search_tree (ar);
} }
-#endif /* DEFINE_NON_INLINE_P */ -#else /* SIM_ARANGE_C_INCLUDED */
-
-#if DEFINE_INLINE_P
- -
-SIM_ARANGE_INLINE int -SIM_ARANGE_INLINE int
+int +int
sim_addr_range_hit_p (ADDR_RANGE *ar, address_word addr) sim_addr_range_hit_p (ADDR_RANGE *ar, address_word addr)
{ {
ADDR_RANGE_TREE *t = ar->range_tree; ADDR_RANGE_TREE *t = ar->range_tree;
@@ -301,4 +297,4 @@ sim_addr_range_hit_p (ADDR_RANGE *ar, ad
return 0;
}
-#endif /* DEFINE_INLINE_P */
+#endif /* DEFINE_NON_INLINE_P */
--- a/sim/common/sim-arange.h --- a/sim/common/sim-arange.h
+++ b/sim/common/sim-arange.h +++ b/sim/common/sim-arange.h
@@ -73,7 +73,7 @@ extern void sim_addr_range_delete (ADDR_ @@ -73,7 +73,7 @@ extern void sim_addr_range_delete (ADDR_

View File

@ -1,16 +1,16 @@
--- a/gdb/configure --- a/gdb/configure
+++ b/gdb/configure +++ b/gdb/configure
@@ -915,8 +915,7 @@ MAKEINFOFLAGS @@ -918,8 +918,7 @@ MAKEINFOFLAGS
YACC YACC
YFLAGS YFLAGS
XMKMF' XMKMF'
-ac_subdirs_all='testsuite -ac_subdirs_all='testsuite
-gdbtk -gdbtk
+ac_subdirs_all='gdbtk +ac_subdirs_all='gdbtk
multi-ice
gdbserver' gdbserver'
@@ -6577,7 +6576,7 @@ $as_echo "$with_auto_load_safe_path" >&6 # Initialize some variables set by options.
@@ -6628,7 +6627,7 @@ $as_echo "$with_auto_load_safe_path" >&6

View File

@ -1,6 +1,6 @@
--- a/gdb/gdbserver/configure --- a/gdb/gdbserver/configure
+++ b/gdb/gdbserver/configure +++ b/gdb/gdbserver/configure
@@ -2508,7 +2508,7 @@ $as_echo "$as_me: error: \`$ac_var' was @@ -2511,7 +2511,7 @@ $as_echo "$as_me: error: \`$ac_var' was
ac_cache_corrupted=: ;; ac_cache_corrupted=: ;;
,);; ,);;
*) *)

View File

@ -11,8 +11,8 @@ PKG_VERSION:=2.27
PKG_SOURCE_PROTO:=git PKG_SOURCE_PROTO:=git
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE_VERSION:=3981fc3453641368d2edbe480e7089dc9abf6555 PKG_SOURCE_VERSION:=54ba8bcd42355ad0c0ca763b6bba40a2b2829f38
PKG_MIRROR_HASH:=9782c54e990d6b4626a7b03879fc5dfcd2d8625d49f3f3bff91f470322f1aebf PKG_MIRROR_HASH:=88d2672e0ac4192b6c28378b85bf3bcaec404f448bef418c790cd9f830012a3f
PKG_SOURCE_URL:=https://sourceware.org/git/glibc.git PKG_SOURCE_URL:=https://sourceware.org/git/glibc.git
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.xz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.xz

12
toolchain/musl/Config.in Normal file
View File

@ -0,0 +1,12 @@
# Password crypt stubbing
config MUSL_DISABLE_CRYPT_SIZE_HACK
bool "Include crypt() support for SHA256, SHA512 and Blowfish ciphers"
depends on TOOLCHAINOPTS && USE_MUSL && !EXTERNAL_TOOLCHAIN
default n
help
Enable this option to re-include crypt() support for the SHA256, SHA512 and
Blowfish ciphers. Without this option, attempting to hash a string with a salt
requesting one of these ciphers will cause the crypt() function to call stub
implementations which will always fail with errno ENOSYS. Including the ciphers
will increase the library size by about 14KB after LZMA compression.

View File

@ -8,13 +8,13 @@ include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/target.mk include $(INCLUDE_DIR)/target.mk
PKG_NAME:=musl PKG_NAME:=musl
PKG_VERSION:=1.1.20 PKG_VERSION:=1.1.24
PKG_RELEASE:=2 PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git PKG_SOURCE_PROTO:=git
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE_VERSION:=0fa1e638e87cf257e9f96b4019b2076afd674a19 PKG_SOURCE_VERSION:=ea9525c8bcf6170df59364c4bcd616de1acf8703
PKG_MIRROR_HASH:=0a49559e845f51aaf006539176a36d6527957affd2838e71fd43275b737e90fe PKG_MIRROR_HASH:=6975c45b9bfe586ac00dbfcd1b1a13ab110af0528028ab3dee03e23e2c0763e5
PKG_SOURCE_URL:=git://git.musl-libc.org/musl PKG_SOURCE_URL:=git://git.musl-libc.org/musl
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.xz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.xz
@ -29,6 +29,7 @@ include $(INCLUDE_DIR)/host-build.mk
include $(INCLUDE_DIR)/hardening.mk include $(INCLUDE_DIR)/hardening.mk
TARGET_CFLAGS:= $(filter-out -O%,$(TARGET_CFLAGS)) TARGET_CFLAGS:= $(filter-out -O%,$(TARGET_CFLAGS))
TARGET_CFLAGS+= $(if $(CONFIG_MUSL_DISABLE_CRYPT_SIZE_HACK),,-DCRYPT_SIZE_HACK)
MUSL_CONFIGURE:= \ MUSL_CONFIGURE:= \
$(TARGET_CONFIGURE_OPTS) \ $(TARGET_CONFIGURE_OPTS) \

View File

@ -1,8 +1,8 @@
--- a/include/glob.h --- a/include/glob.h
+++ b/include/glob.h +++ b/include/glob.h
@@ -31,6 +31,8 @@ void globfree(glob_t *); @@ -34,6 +34,8 @@ void globfree(glob_t *);
#define GLOB_NOESCAPE 0x40 #define GLOB_TILDE 0x1000
#define GLOB_PERIOD 0x80 #define GLOB_TILDE_CHECK 0x4000
+#define GLOB_ONLYDIR 0x100 +#define GLOB_ONLYDIR 0x100
+ +

View File

@ -1,6 +1,6 @@
--- a/src/time/__tz.c --- a/src/time/__tz.c
+++ b/src/time/__tz.c +++ b/src/time/__tz.c
@@ -23,6 +23,9 @@ static int r0[5], r1[5]; @@ -25,6 +25,9 @@ static int r0[5], r1[5];
static const unsigned char *zi, *trans, *index, *types, *abbrevs, *abbrevs_end; static const unsigned char *zi, *trans, *index, *types, *abbrevs, *abbrevs_end;
static size_t map_size; static size_t map_size;

View File

@ -24,7 +24,7 @@ Signed-off-by: Steven Barth <steven@midlink.org>
+OBJ_DIRS = $(sort $(patsubst %/,%,$(dir $(ALL_LIBS) $(ALL_TOOLS) $(ALL_OBJS) $(GENH) $(GENH_INT))) obj/include obj/libssp_nonshared) +OBJ_DIRS = $(sort $(patsubst %/,%,$(dir $(ALL_LIBS) $(ALL_TOOLS) $(ALL_OBJS) $(GENH) $(GENH_INT))) obj/include obj/libssp_nonshared)
$(ALL_LIBS) $(ALL_TOOLS) $(ALL_OBJS) $(ALL_OBJS:%.o=%.lo) $(GENH) $(GENH_INT): | $(OBJ_DIRS) $(ALL_LIBS) $(ALL_TOOLS) $(ALL_OBJS) $(ALL_OBJS:%.o=%.lo) $(GENH) $(GENH_INT): | $(OBJ_DIRS)
@@ -113,6 +113,8 @@ obj/crt/rcrt1.o: $(srcdir)/ldso/dlstart. @@ -113,6 +113,8 @@ obj/crt/rcrt1.o: $(srcdir)/ldso/dlstart.
obj/crt/Scrt1.o obj/crt/rcrt1.o: CFLAGS_ALL += -fPIC obj/crt/Scrt1.o obj/crt/rcrt1.o: CFLAGS_ALL += -fPIC
@ -34,7 +34,7 @@ Signed-off-by: Steven Barth <steven@midlink.org>
OPTIMIZE_SRCS = $(wildcard $(OPTIMIZE_GLOBS:%=$(srcdir)/src/%)) OPTIMIZE_SRCS = $(wildcard $(OPTIMIZE_GLOBS:%=$(srcdir)/src/%))
$(OPTIMIZE_SRCS:$(srcdir)/%.c=obj/%.o) $(OPTIMIZE_SRCS:$(srcdir)/%.c=obj/%.lo): CFLAGS += -O3 $(OPTIMIZE_SRCS:$(srcdir)/%.c=obj/%.o) $(OPTIMIZE_SRCS:$(srcdir)/%.c=obj/%.lo): CFLAGS += -O3
@@ -165,6 +166,11 @@ lib/libc.a: $(AOBJS) @@ -165,6 +167,11 @@ lib/libc.a: $(AOBJS)
$(AR) rc $@ $(AOBJS) $(AR) rc $@ $(AOBJS)
$(RANLIB) $@ $(RANLIB) $@

View File

@ -87,7 +87,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
} }
--- a/include/stdio.h --- a/include/stdio.h
+++ b/include/stdio.h +++ b/include/stdio.h
@@ -21,6 +21,14 @@ extern "C" { @@ -25,6 +25,14 @@ extern "C" {
#include <bits/alltypes.h> #include <bits/alltypes.h>
@ -102,7 +102,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
#ifdef __cplusplus #ifdef __cplusplus
#define NULL 0L #define NULL 0L
#else #else
@@ -103,19 +111,19 @@ int puts(const char *); @@ -107,19 +115,19 @@ int puts(const char *);
int printf(const char *__restrict, ...); int printf(const char *__restrict, ...);
int fprintf(FILE *__restrict, const char *__restrict, ...); int fprintf(FILE *__restrict, const char *__restrict, ...);
int sprintf(char *__restrict, const char *__restrict, ...); int sprintf(char *__restrict, const char *__restrict, ...);
@ -127,7 +127,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
void perror(const char *); void perror(const char *);
@@ -136,8 +144,8 @@ int pclose(FILE *); @@ -140,8 +148,8 @@ int pclose(FILE *);
int fileno(FILE *); int fileno(FILE *);
int fseeko(FILE *, off_t, int); int fseeko(FILE *, off_t, int);
off_t ftello(FILE *); off_t ftello(FILE *);
@ -138,7 +138,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
void flockfile(FILE *); void flockfile(FILE *);
int ftrylockfile(FILE *); int ftrylockfile(FILE *);
void funlockfile(FILE *); void funlockfile(FILE *);
@@ -176,8 +184,8 @@ int fileno_unlocked(FILE *); @@ -180,8 +188,8 @@ int fileno_unlocked(FILE *);
int getw(FILE *); int getw(FILE *);
int putw(int, FILE *); int putw(int, FILE *);
char *fgetln(FILE *, size_t *); char *fgetln(FILE *, size_t *);
@ -149,7 +149,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
#endif #endif
#ifdef _GNU_SOURCE #ifdef _GNU_SOURCE
@@ -199,6 +207,9 @@ typedef struct _IO_cookie_io_functions_t @@ -203,6 +211,9 @@ typedef struct _IO_cookie_io_functions_t
FILE *fopencookie(void *, const char *, cookie_io_functions_t); FILE *fopencookie(void *, const char *, cookie_io_functions_t);
#endif #endif

View File

@ -1,59 +1,74 @@
--- a/src/crypt/crypt_r.c
+++ b/src/crypt/crypt_r.c
@@ -19,12 +19,6 @@ char *__crypt_r(const char *key, const c
if (salt[0] == '$' && salt[1] && salt[2]) {
if (salt[1] == '1' && salt[2] == '$')
return __crypt_md5(key, salt, output);
- if (salt[1] == '2' && salt[3] == '$')
- return __crypt_blowfish(key, salt, output);
- if (salt[1] == '5' && salt[2] == '$')
- return __crypt_sha256(key, salt, output);
- if (salt[1] == '6' && salt[2] == '$')
- return __crypt_sha512(key, salt, output);
}
return __crypt_des(key, salt, output);
}
--- a/src/crypt/crypt_sha512.c --- a/src/crypt/crypt_sha512.c
+++ b/src/crypt/crypt_sha512.c +++ b/src/crypt/crypt_sha512.c
@@ -12,6 +12,7 @@ @@ -13,6 +13,17 @@
#include <stdio.h>
#include <string.h> #include <string.h>
#include <stdint.h> #include <stdint.h>
+#if 0
+#ifdef CRYPT_SIZE_HACK
+#include <errno.h>
+
+char *__crypt_sha512(const char *key, const char *setting, char *output)
+{
+ errno = ENOSYS;
+ return NULL;
+}
+
+#else
+
/* public domain sha512 implementation based on fips180-3 */ /* public domain sha512 implementation based on fips180-3 */
/* >=2^64 bits messages are not supported (about 2000 peta bytes) */ /* >=2^64 bits messages are not supported (about 2000 peta bytes) */
@@ -369,3 +370,4 @@ char *__crypt_sha512(const char *key, co
@@ -369,3 +380,4 @@ char *__crypt_sha512(const char *key, co
return "*"; return "*";
return p; return p;
} }
+#endif +#endif
--- a/src/crypt/crypt_blowfish.c --- a/src/crypt/crypt_blowfish.c
+++ b/src/crypt/crypt_blowfish.c +++ b/src/crypt/crypt_blowfish.c
@@ -50,6 +50,7 @@ @@ -50,6 +50,17 @@
#include <string.h> #include <string.h>
#include <stdint.h> #include <stdint.h>
+#if 0 +#ifdef CRYPT_SIZE_HACK
+#include <errno.h>
+
+char *__crypt_blowfish(const char *key, const char *setting, char *output)
+{
+ errno = ENOSYS;
+ return NULL;
+}
+
+#else
+
typedef uint32_t BF_word; typedef uint32_t BF_word;
typedef int32_t BF_word_signed; typedef int32_t BF_word_signed;
@@ -796,3 +797,4 @@ char *__crypt_blowfish(const char *key, @@ -796,3 +807,4 @@ char *__crypt_blowfish(const char *key,
return "*"; return "*";
} }
+#endif +#endif
--- a/src/crypt/crypt_sha256.c --- a/src/crypt/crypt_sha256.c
+++ b/src/crypt/crypt_sha256.c +++ b/src/crypt/crypt_sha256.c
@@ -13,6 +13,7 @@ @@ -13,6 +13,17 @@
#include <string.h> #include <string.h>
#include <stdint.h> #include <stdint.h>
+#if 0 +#ifdef CRYPT_SIZE_HACK
+#include <errno.h>
+
+char *__crypt_sha256(const char *key, const char *setting, char *output)
+{
+ errno = ENOSYS;
+ return NULL;
+}
+
+#else
+
/* public domain sha256 implementation based on fips180-3 */ /* public domain sha256 implementation based on fips180-3 */
struct sha256 { struct sha256 {
@@ -320,3 +321,4 @@ char *__crypt_sha256(const char *key, co @@ -320,3 +331,4 @@ char *__crypt_sha256(const char *key, co
return "*"; return "*";
return p; return p;
} }

View File

@ -5,12 +5,12 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=nasm PKG_NAME:=nasm
PKG_VERSION:=2.13.03 PKG_VERSION:=2.14
PKG_SOURCE_URL:=https://www.nasm.us/pub/nasm/releasebuilds/$(PKG_VERSION)/ PKG_SOURCE_URL:=https://www.nasm.us/pub/nasm/releasebuilds/$(PKG_VERSION)/
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_HASH:=812ecfb0dcbc5bd409aaa8f61c7de94c5b8752a7b00c632883d15b2ed6452573 PKG_HASH:=97c615dbf02ef80e4e2b6c385f7e28368d51efc214daa98e600ca4572500eec0
HOST_BUILD_PARALLEL:=1 HOST_BUILD_PARALLEL:=1

View File

@ -1,15 +0,0 @@
--- a/include/nasmlib.h
+++ b/include/nasmlib.h
@@ -188,11 +188,9 @@ int64_t readnum(char *str, bool *error);
int64_t readstrnum(char *str, int length, bool *warn);
/*
- * seg_init: Initialise the segment-number allocator.
* seg_alloc: allocate a hitherto unused segment number.
*/
-void pure_func seg_init(void);
-int32_t pure_func seg_alloc(void);
+int32_t seg_alloc(void);
/*
* many output formats will be able to make use of this: a standard

View File

@ -7,7 +7,7 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/target.mk include $(INCLUDE_DIR)/target.mk
PKG_VERSION:=1.0.30 PKG_VERSION:=1.0.31
PKG_NAME:=uClibc-ng PKG_NAME:=uClibc-ng
PKG_SOURCE_URL = http://downloads.uclibc-ng.org/releases/$(PKG_VERSION)/ PKG_SOURCE_URL = http://downloads.uclibc-ng.org/releases/$(PKG_VERSION)/
@ -16,7 +16,7 @@ CONFIG_DIR:=$(PATH_PREFIX)/config
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
LIBC_SO_VERSION:=$(PKG_VERSION) LIBC_SO_VERSION:=$(PKG_VERSION)
PKG_HASH:=992bd9a2889ea385902b87e3d3d30603741eb16728288fbf537ff2027f770496 PKG_HASH:=2215d7377118434d1697fd575f10d7a6be3f29e460d6b0e1ee9f6f5306288060
HOST_BUILD_DIR:=$(BUILD_DIR_TOOLCHAIN)/$(PKG_NAME)-$(PKG_VERSION) HOST_BUILD_DIR:=$(BUILD_DIR_TOOLCHAIN)/$(PKG_NAME)-$(PKG_VERSION)