mirror of
git://git.openwrt.org/openwrt/openwrt.git
synced 2024-12-26 00:22:47 +00:00
eglibc: remove versions 2.16 and 2.17 - they are unmaintained
Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 39743
This commit is contained in:
parent
f354297fa9
commit
f3087c7e4e
@ -9,14 +9,6 @@ choice
|
|||||||
bool "eglibc 2.15"
|
bool "eglibc 2.15"
|
||||||
select EGLIBC_VERSION_2_15
|
select EGLIBC_VERSION_2_15
|
||||||
|
|
||||||
config EGLIBC_USE_VERSION_2_16
|
|
||||||
bool "eglibc 2.16"
|
|
||||||
select EGLIBC_VERSION_2_16
|
|
||||||
|
|
||||||
config EGLIBC_USE_VERSION_2_17
|
|
||||||
bool "eglibc 2.17"
|
|
||||||
select EGLIBC_VERSION_2_17
|
|
||||||
|
|
||||||
config EGLIBC_USE_VERSION_2_19
|
config EGLIBC_USE_VERSION_2_19
|
||||||
bool "eglibc 2.19"
|
bool "eglibc 2.19"
|
||||||
select EGLIBC_VERSION_2_19
|
select EGLIBC_VERSION_2_19
|
||||||
@ -27,8 +19,6 @@ config EGLIBC_REVISION
|
|||||||
string
|
string
|
||||||
depends on TOOLCHAINOPTS && USE_EGLIBC
|
depends on TOOLCHAINOPTS && USE_EGLIBC
|
||||||
default "18909" if EGLIBC_VERSION_2_15
|
default "18909" if EGLIBC_VERSION_2_15
|
||||||
default "21110" if EGLIBC_VERSION_2_16
|
|
||||||
default "22243" if EGLIBC_VERSION_2_17
|
|
||||||
default "25243" if EGLIBC_VERSION_2_19
|
default "25243" if EGLIBC_VERSION_2_19
|
||||||
default ""
|
default ""
|
||||||
|
|
||||||
|
@ -3,20 +3,12 @@ if USE_EGLIBC
|
|||||||
config EGLIBC_VERSION
|
config EGLIBC_VERSION
|
||||||
string
|
string
|
||||||
default "2.15" if EGLIBC_VERSION_2_15
|
default "2.15" if EGLIBC_VERSION_2_15
|
||||||
default "2.16" if EGLIBC_VERSION_2_16
|
|
||||||
default "2.17" if EGLIBC_VERSION_2_17
|
|
||||||
default "2.19" if EGLIBC_VERSION_2_19
|
default "2.19" if EGLIBC_VERSION_2_19
|
||||||
|
|
||||||
config EGLIBC_VERSION_2_15
|
config EGLIBC_VERSION_2_15
|
||||||
default y if !TOOLCHAINOPTS
|
default y if !TOOLCHAINOPTS
|
||||||
bool
|
bool
|
||||||
|
|
||||||
config EGLIBC_VERSION_2_16
|
|
||||||
bool
|
|
||||||
|
|
||||||
config EGLIBC_VERSION_2_17
|
|
||||||
bool
|
|
||||||
|
|
||||||
config EGLIBC_VERSION_2_19
|
config EGLIBC_VERSION_2_19
|
||||||
bool
|
bool
|
||||||
|
|
||||||
|
@ -18,12 +18,6 @@ PKG_SOURCE:=$(PKG_SOURCE_SUBDIR).tar.bz2
|
|||||||
ifneq ($(CONFIG_EGLIBC_VERSION_2_15),)
|
ifneq ($(CONFIG_EGLIBC_VERSION_2_15),)
|
||||||
PKG_SOURCE_URL:=svn://svn.eglibc.org/branches/eglibc-2_15
|
PKG_SOURCE_URL:=svn://svn.eglibc.org/branches/eglibc-2_15
|
||||||
endif
|
endif
|
||||||
ifneq ($(CONFIG_EGLIBC_VERSION_2_16),)
|
|
||||||
PKG_SOURCE_URL:=svn://svn.eglibc.org/branches/eglibc-2_16
|
|
||||||
endif
|
|
||||||
ifneq ($(CONFIG_EGLIBC_VERSION_2_17),)
|
|
||||||
PKG_SOURCE_URL:=svn://svn.eglibc.org/branches/eglibc-2_17
|
|
||||||
endif
|
|
||||||
ifneq ($(CONFIG_EGLIBC_VERSION_2_19),)
|
ifneq ($(CONFIG_EGLIBC_VERSION_2_19),)
|
||||||
PKG_SOURCE_URL:=svn://svn.eglibc.org/branches/eglibc-2_19
|
PKG_SOURCE_URL:=svn://svn.eglibc.org/branches/eglibc-2_19
|
||||||
endif
|
endif
|
||||||
@ -86,7 +80,7 @@ define Host/Prepare
|
|||||||
$(call Host/Prepare/Default)
|
$(call Host/Prepare/Default)
|
||||||
ln -snf $(PKG_SOURCE_SUBDIR) $(BUILD_DIR_TOOLCHAIN)/$(PKG_NAME)
|
ln -snf $(PKG_SOURCE_SUBDIR) $(BUILD_DIR_TOOLCHAIN)/$(PKG_NAME)
|
||||||
$(SED) 's,y,n,' $(HOST_BUILD_DIR)/libc/option-groups.defaults
|
$(SED) 's,y,n,' $(HOST_BUILD_DIR)/libc/option-groups.defaults
|
||||||
ifneq ($(CONFIG_EGLIBC_VERSION_2_15)$(CONFIG_EGLIBC_VERSION_2_16),)
|
ifneq ($(CONFIG_EGLIBC_VERSION_2_15),)
|
||||||
ln -sf ../ports $(HOST_BUILD_DIR)/libc/
|
ln -sf ../ports $(HOST_BUILD_DIR)/libc/
|
||||||
endif
|
endif
|
||||||
endef
|
endef
|
||||||
|
@ -1,343 +0,0 @@
|
|||||||
Upstream-Status: Backport
|
|
||||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
||||||
|
|
||||||
From 95f5a9a866695da4e038aa4e6ccbbfd5d9cf63b7 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Joseph Myers <joseph@codesourcery.com>
|
|
||||||
Date: Tue, 3 Jul 2012 19:14:59 +0000
|
|
||||||
Subject: [PATCH] Avoid use of libgcc_s and libgcc_eh when building glibc.
|
|
||||||
|
|
||||||
---
|
|
||||||
ChangeLog | 47 ++++++++++++++++++++++++++++++
|
|
||||||
Makeconfig | 68 ++++++++++++++++++++++++++++++++++++++------
|
|
||||||
Rules | 45 ++++++++++++++++++++++-------
|
|
||||||
elf/Makefile | 6 +++-
|
|
||||||
elf/static-stubs.c | 46 ++++++++++++++++++++++++++++++
|
|
||||||
ports/ChangeLog.arm | 7 +++++
|
|
||||||
ports/sysdeps/arm/Makefile | 8 ++++++
|
|
||||||
7 files changed, 206 insertions(+), 21 deletions(-)
|
|
||||||
create mode 100644 elf/static-stubs.c
|
|
||||||
|
|
||||||
Index: a/libc/Makeconfig
|
|
||||||
===================================================================
|
|
||||||
--- a/libc/Makeconfig 2012-07-04 18:26:22.000000000 -0700
|
|
||||||
+++ b/libc/Makeconfig 2012-08-14 20:16:10.197093639 -0700
|
|
||||||
@@ -415,9 +415,9 @@
|
|
||||||
LDFLAGS-rtld += $(hashstyle-LDFLAGS)
|
|
||||||
endif
|
|
||||||
|
|
||||||
-# Command for linking programs with the C library.
|
|
||||||
+# Commands for linking programs with the C library.
|
|
||||||
ifndef +link
|
|
||||||
-+link = $(CC) -nostdlib -nostartfiles -o $@ \
|
|
||||||
++link-before-libc = $(CC) -nostdlib -nostartfiles -o $@ \
|
|
||||||
$(sysdep-LDFLAGS) $(config-LDFLAGS) $(LDFLAGS) $(LDFLAGS-$(@F)) \
|
|
||||||
$(combreloc-LDFLAGS) $(relro-LDFLAGS) $(hashstyle-LDFLAGS) \
|
|
||||||
$(addprefix $(csu-objpfx),$(start-installed-name)) \
|
|
||||||
@@ -426,7 +426,10 @@
|
|
||||||
$(start-installed-name))\
|
|
||||||
$(+preinit) $(link-extra-libs) \
|
|
||||||
$(common-objpfx)libc% $(+postinit),$^) \
|
|
||||||
- $(link-extra-libs) $(link-libc) $(+postctor) $(+postinit)
|
|
||||||
+ $(link-extra-libs)
|
|
||||||
++link-after-libc = $(+postctor) $(+postinit)
|
|
||||||
++link = $(+link-before-libc) $(link-libc) $(+link-after-libc)
|
|
||||||
++link-tests = $(+link-before-libc) $(link-libc-tests) $(+link-after-libc)
|
|
||||||
endif
|
|
||||||
# Command for linking PIE programs with the C library.
|
|
||||||
ifndef +link-pie
|
|
||||||
@@ -443,7 +446,7 @@
|
|
||||||
endif
|
|
||||||
# Command for statically linking programs with the C library.
|
|
||||||
ifndef +link-static
|
|
||||||
-+link-static = $(CC) -nostdlib -nostartfiles -static -o $@ \
|
|
||||||
++link-static-before-libc = $(CC) -nostdlib -nostartfiles -static -o $@ \
|
|
||||||
$(sysdep-LDFLAGS) $(LDFLAGS) $(LDFLAGS-$(@F)) \
|
|
||||||
$(addprefix $(csu-objpfx),$(static-start-installed-name)) \
|
|
||||||
$(+preinit) $(+prector) \
|
|
||||||
@@ -451,7 +454,12 @@
|
|
||||||
$(start-installed-name))\
|
|
||||||
$(+preinit) $(link-extra-libs-static) \
|
|
||||||
$(common-objpfx)libc% $(+postinit),$^) \
|
|
||||||
- $(link-extra-libs-static) $(link-libc-static) $(+postctor) $(+postinit)
|
|
||||||
+ $(link-extra-libs-static) $(link-libc-static)
|
|
||||||
++link-static-after-libc = $(+postctor) $(+postinit)
|
|
||||||
++link-static = $(+link-static-before-libc) $(link-libc-static) \
|
|
||||||
+ $(+link-static-after-libc)
|
|
||||||
++link-static-tests = $(+link-static-before-libc) $(link-libc-static-tests) \
|
|
||||||
+ $(+link-static-after-libc)
|
|
||||||
endif
|
|
||||||
# Command for statically linking bounded-pointer programs with the C library.
|
|
||||||
ifndef +link-bounded
|
|
||||||
@@ -475,10 +483,12 @@
|
|
||||||
# We need the versioned name of libc.so in the deps of $(others) et al
|
|
||||||
# so that the symlink to libc.so is created before anything tries to
|
|
||||||
# run the linked programs.
|
|
||||||
-link-libc = -Wl,-rpath-link=$(rpath-link) \
|
|
||||||
+link-libc-before-gnulib = -Wl,-rpath-link=$(rpath-link) \
|
|
||||||
$(common-objpfx)libc.so$(libc.so-version) \
|
|
||||||
$(common-objpfx)$(patsubst %,$(libtype.oS),c) \
|
|
||||||
- $(as-needed) $(common-objpfx)elf/ld.so $(no-as-needed) $(gnulib)
|
|
||||||
+ $(as-needed) $(common-objpfx)elf/ld.so $(no-as-needed)
|
|
||||||
+link-libc = $(link-libc-before-gnulib) $(gnulib)
|
|
||||||
+link-libc-tests = $(link-libc-before-gnulib) $(gnulib-tests)
|
|
||||||
# This is how to find at build-time things that will be installed there.
|
|
||||||
rpath-dirs = math elf dlfcn nss nis rt resolv crypt
|
|
||||||
rpath-link = \
|
|
||||||
@@ -488,6 +498,7 @@
|
|
||||||
nssobjdir := $(patsubst ../$(subdir),.,$(common-objpfx)nss)
|
|
||||||
resolvobjdir := $(patsubst ../$(subdir),.,$(common-objpfx)resolv)
|
|
||||||
link-libc = $(common-objpfx)libc.a $(otherlibs) $(gnulib) $(common-objpfx)libc.a $(gnulib)
|
|
||||||
+link-libc-tests = $(common-objpfx)libc.a $(otherlibs) $(gnulib-tests) $(common-objpfx)libc.a $(gnulib-tests)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
@@ -513,8 +524,43 @@
|
|
||||||
|
|
||||||
# The static libraries.
|
|
||||||
link-libc-static = -Wl,--start-group $(common-objpfx)libc.a $(static-gnulib) -Wl,--end-group
|
|
||||||
+link-libc-static-tests = -Wl,--start-group $(common-objpfx)libc.a $(static-gnulib-tests) -Wl,--end-group
|
|
||||||
link-libc-bounded = $(common-objpfx)libc_b.a $(gnulib) $(common-objpfx)libc_b.a
|
|
||||||
|
|
||||||
+# How to link against libgcc. Some libgcc functions, such as those
|
|
||||||
+# for "long long" arithmetic or software floating point, can always be
|
|
||||||
+# built without use of C library headers and do not have any global
|
|
||||||
+# state so can safely be linked statically into any executable or
|
|
||||||
+# shared library requiring them; these functions are in libgcc.a.
|
|
||||||
+# Other functions, relating to exception handling, may require C
|
|
||||||
+# library headers to build and it may not be safe to have more than
|
|
||||||
+# one copy of them in a process; these functions are only in
|
|
||||||
+# libgcc_s.so and libgcc_eh.a.
|
|
||||||
+#
|
|
||||||
+# To avoid circular dependencies when bootstrapping, it is desirable
|
|
||||||
+# to avoid use of libgcc_s and libgcc_eh in building glibc. Where any
|
|
||||||
+# glibc functionality (in particular, thread cancellation) requires
|
|
||||||
+# exception handling, this is implemented through dlopen of libgcc_s
|
|
||||||
+# to avoid unnecessary dependencies on libgcc_s by programs not using
|
|
||||||
+# that functionality; executables built with glibc do not use
|
|
||||||
+# exception handling other than through thread cancellation.
|
|
||||||
+#
|
|
||||||
+# Undefined references to functions from libgcc_eh or libgcc_s may
|
|
||||||
+# arise for code built with -fexceptions. In the case of statically
|
|
||||||
+# linked programs installed by glibc, unwinding will never actually
|
|
||||||
+# occur at runtime and the use of elf/static-stubs.c to resolve these
|
|
||||||
+# references is safe. In the case of statically linked test programs
|
|
||||||
+# and test programs built with -fexceptions, unwinding may occur in
|
|
||||||
+# some cases and it is preferable to link with libgcc_eh or libgcc_s
|
|
||||||
+# so that the testing is as similar as possible to how programs will
|
|
||||||
+# be built with the installed glibc.
|
|
||||||
+#
|
|
||||||
+# Some architectures have architecture-specific systems for exception
|
|
||||||
+# handling that may involve undefined references to
|
|
||||||
+# architecture-specific functions. On those architectures,
|
|
||||||
+# gnulib-arch and static-gnulib-arch may be defined in sysdeps
|
|
||||||
+# makefiles to use additional libraries for linking executables and
|
|
||||||
+# shared libraries built by glibc.
|
|
||||||
ifndef gnulib
|
|
||||||
ifneq ($(have-cc-with-libunwind),yes)
|
|
||||||
libunwind =
|
|
||||||
@@ -522,8 +568,12 @@
|
|
||||||
libunwind = -lunwind
|
|
||||||
endif
|
|
||||||
libgcc_eh := -Wl,--as-needed -lgcc_s $(libunwind) -Wl,--no-as-needed
|
|
||||||
-gnulib := -lgcc $(libgcc_eh)
|
|
||||||
-static-gnulib := -lgcc -lgcc_eh $(libunwind)
|
|
||||||
+gnulib-arch =
|
|
||||||
+gnulib = -lgcc $(gnulib-arch)
|
|
||||||
+gnulib-tests := -lgcc $(libgcc_eh)
|
|
||||||
+static-gnulib-arch =
|
|
||||||
+static-gnulib = -lgcc $(static-gnulib-arch)
|
|
||||||
+static-gnulib-tests := -lgcc -lgcc_eh $(libunwind)
|
|
||||||
libc.so-gnulib := -lgcc
|
|
||||||
endif
|
|
||||||
+preinit = $(addprefix $(csu-objpfx),crti.o)
|
|
||||||
Index: a/libc/Rules
|
|
||||||
===================================================================
|
|
||||||
--- a/libc/Rules 2012-07-04 18:25:47.000000000 -0700
|
|
||||||
+++ b/libc/Rules 2012-08-14 20:16:10.197093639 -0700
|
|
||||||
@@ -1,5 +1,4 @@
|
|
||||||
-# Copyright (C) 1991-2000,2002,2003,2004,2005,2006,2011
|
|
||||||
-# Free Software Foundation, Inc.
|
|
||||||
+# Copyright (C) 1991-2012 Free Software Foundation, Inc.
|
|
||||||
# This file is part of the GNU C Library.
|
|
||||||
|
|
||||||
# The GNU C Library is free software; you can redistribute it and/or
|
|
||||||
@@ -103,29 +102,46 @@
|
|
||||||
# eglibc: endif
|
|
||||||
|
|
||||||
ifeq ($(build-programs),yes)
|
|
||||||
-binaries-all = $(others) $(sysdep-others) $(tests) $(xtests) $(test-srcs)
|
|
||||||
-binaries-static = $(others-static) $(tests-static) $(xtests-static)
|
|
||||||
+binaries-all-notests = $(others) $(sysdep-others)
|
|
||||||
+binaries-all-tests = $(tests) $(xtests) $(test-srcs)
|
|
||||||
+binaries-all = $(binaries-all-notests) $(binaries-all-tests)
|
|
||||||
+binaries-static-notests = $(others-static)
|
|
||||||
+binaries-static-tests = $(tests-static) $(xtests-static)
|
|
||||||
+binaries-static = $(binaries-static-notests) $(binaries-static-tests)
|
|
||||||
ifeq (yesyes,$(have-fpie)$(build-shared))
|
|
||||||
binaries-pie = $(others-pie) $(tests-pie) $(xtests-pie)
|
|
||||||
else
|
|
||||||
binaries-pie =
|
|
||||||
endif
|
|
||||||
else
|
|
||||||
-binaries-all = $(tests) $(xtests) $(test-srcs)
|
|
||||||
+binaries-all-notests =
|
|
||||||
+binaries-all-tests = $(tests) $(xtests) $(test-srcs)
|
|
||||||
+binaries-all = $(binaries-all-tests)
|
|
||||||
+binaries-static-notests =
|
|
||||||
+binaries-static-tests =
|
|
||||||
binaries-static =
|
|
||||||
binaries-pie =
|
|
||||||
endif
|
|
||||||
|
|
||||||
-binaries-shared = $(filter-out $(binaries-pie) $(binaries-static), \
|
|
||||||
- $(binaries-all))
|
|
||||||
+binaries-shared-tests = $(filter-out $(binaries-pie) $(binaries-static), \
|
|
||||||
+ $(binaries-all-tests))
|
|
||||||
+binaries-shared-notests = $(filter-out $(binaries-pie) $(binaries-static), \
|
|
||||||
+ $(binaries-all-notests))
|
|
||||||
|
|
||||||
-ifneq "$(strip $(binaries-shared))" ""
|
|
||||||
-$(addprefix $(objpfx),$(binaries-shared)): %: %.o \
|
|
||||||
+ifneq "$(strip $(binaries-shared-notests))" ""
|
|
||||||
+$(addprefix $(objpfx),$(binaries-shared-notests)): %: %.o \
|
|
||||||
$(sort $(filter $(common-objpfx)lib%,$(link-libc))) \
|
|
||||||
$(addprefix $(csu-objpfx),start.o) $(+preinit) $(+postinit)
|
|
||||||
$(+link)
|
|
||||||
endif
|
|
||||||
|
|
||||||
+ifneq "$(strip $(binaries-shared-tests))" ""
|
|
||||||
+$(addprefix $(objpfx),$(binaries-shared-tests)): %: %.o \
|
|
||||||
+ $(sort $(filter $(common-objpfx)lib%,$(link-libc))) \
|
|
||||||
+ $(addprefix $(csu-objpfx),start.o) $(+preinit) $(+postinit)
|
|
||||||
+ $(+link-tests)
|
|
||||||
+endif
|
|
||||||
+
|
|
||||||
ifneq "$(strip $(binaries-pie))" ""
|
|
||||||
$(addprefix $(objpfx),$(binaries-pie)): %: %.o \
|
|
||||||
$(sort $(filter $(common-objpfx)lib%,$(link-libc))) \
|
|
||||||
@@ -133,13 +149,20 @@
|
|
||||||
$(+link-pie)
|
|
||||||
endif
|
|
||||||
|
|
||||||
-ifneq "$(strip $(binaries-static))" ""
|
|
||||||
-$(addprefix $(objpfx),$(binaries-static)): %: %.o \
|
|
||||||
+ifneq "$(strip $(binaries-static-notests))" ""
|
|
||||||
+$(addprefix $(objpfx),$(binaries-static-notests)): %: %.o \
|
|
||||||
$(sort $(filter $(common-objpfx)lib%,$(link-libc-static))) \
|
|
||||||
$(addprefix $(csu-objpfx),start.o) $(+preinit) $(+postinit)
|
|
||||||
$(+link-static)
|
|
||||||
endif
|
|
||||||
|
|
||||||
+ifneq "$(strip $(binaries-static-tests))" ""
|
|
||||||
+$(addprefix $(objpfx),$(binaries-static-tests)): %: %.o \
|
|
||||||
+ $(sort $(filter $(common-objpfx)lib%,$(link-libc-static-tests))) \
|
|
||||||
+ $(addprefix $(csu-objpfx),start.o) $(+preinit) $(+postinit)
|
|
||||||
+ $(+link-static-tests)
|
|
||||||
+endif
|
|
||||||
+
|
|
||||||
ifeq ($(build-bounded),yes)
|
|
||||||
binaries-bounded = $(addsuffix -bp,$(tests) $(xtests) $(test-srcs))
|
|
||||||
$(addprefix $(objpfx),$(binaries-bounded)): %-bp: %.ob \
|
|
||||||
Index: a/libc/elf/Makefile
|
|
||||||
===================================================================
|
|
||||||
--- a/libc/elf/Makefile 2012-07-04 18:26:34.000000000 -0700
|
|
||||||
+++ b/libc/elf/Makefile 2012-08-14 20:16:10.197093639 -0700
|
|
||||||
@@ -71,6 +71,8 @@
|
|
||||||
install-bin = sprof pldd
|
|
||||||
others-static = sln
|
|
||||||
install-rootsbin = sln
|
|
||||||
+sln-modules := static-stubs
|
|
||||||
+extra-objs += $(sln-modules:=.o)
|
|
||||||
|
|
||||||
ifeq (yes,$(use-ldconfig))
|
|
||||||
ifeq (yes,$(build-shared))
|
|
||||||
@@ -78,7 +80,7 @@
|
|
||||||
others += ldconfig
|
|
||||||
install-rootsbin += ldconfig
|
|
||||||
|
|
||||||
-ldconfig-modules := cache readlib xmalloc xstrdup chroot_canon
|
|
||||||
+ldconfig-modules := cache readlib xmalloc xstrdup chroot_canon static-stubs
|
|
||||||
extra-objs += $(ldconfig-modules:=.o)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
@@ -417,6 +419,8 @@
|
|
||||||
|
|
||||||
$(objpfx)sprof: $(libdl)
|
|
||||||
|
|
||||||
+$(objpfx)sln: $(sln-modules:%=$(objpfx)%.o)
|
|
||||||
+
|
|
||||||
$(objpfx)ldconfig: $(ldconfig-modules:%=$(objpfx)%.o)
|
|
||||||
|
|
||||||
$(objpfx)pldd: $(pldd-modules:%=$(objpfx)%.o)
|
|
||||||
Index: a/libc/elf/static-stubs.c
|
|
||||||
===================================================================
|
|
||||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
|
||||||
+++ a/libc/elf/static-stubs.c 2012-08-14 20:16:10.197093639 -0700
|
|
||||||
@@ -0,0 +1,46 @@
|
|
||||||
+/* Stub implementations of functions to link into statically linked
|
|
||||||
+ programs without needing libgcc_eh.
|
|
||||||
+ Copyright (C) 2012 Free Software Foundation, Inc.
|
|
||||||
+ This file is part of the GNU C Library.
|
|
||||||
+
|
|
||||||
+ The GNU C Library is free software; you can redistribute it and/or
|
|
||||||
+ modify it under the terms of the GNU Lesser General Public
|
|
||||||
+ License as published by the Free Software Foundation; either
|
|
||||||
+ version 2.1 of the License, or (at your option) any later version.
|
|
||||||
+
|
|
||||||
+ The GNU C Library is distributed in the hope that it will be useful,
|
|
||||||
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
+ Lesser General Public License for more details.
|
|
||||||
+
|
|
||||||
+ You should have received a copy of the GNU Lesser General Public
|
|
||||||
+ License along with the GNU C Library; if not, see
|
|
||||||
+ <http://www.gnu.org/licenses/>. */
|
|
||||||
+
|
|
||||||
+/* Avoid backtrace (and so _Unwind_Backtrace) dependencies from
|
|
||||||
+ sysdeps/unix/sysv/linux/libc_fatal.c. */
|
|
||||||
+#include <sysdeps/posix/libc_fatal.c>
|
|
||||||
+
|
|
||||||
+#include <stdlib.h>
|
|
||||||
+#include <unwind.h>
|
|
||||||
+
|
|
||||||
+/* These programs do not use thread cancellation, so _Unwind_Resume
|
|
||||||
+ and the personality routine are never actually called. */
|
|
||||||
+
|
|
||||||
+void
|
|
||||||
+_Unwind_Resume (struct _Unwind_Exception *exc __attribute__ ((unused)))
|
|
||||||
+{
|
|
||||||
+ abort ();
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+_Unwind_Reason_Code
|
|
||||||
+__gcc_personality_v0 (int version __attribute__ ((unused)),
|
|
||||||
+ _Unwind_Action actions __attribute__ ((unused)),
|
|
||||||
+ _Unwind_Exception_Class exception_class
|
|
||||||
+ __attribute__ ((unused)),
|
|
||||||
+ struct _Unwind_Exception *ue_header
|
|
||||||
+ __attribute__ ((unused)),
|
|
||||||
+ struct _Unwind_Context *context __attribute__ ((unused)))
|
|
||||||
+{
|
|
||||||
+ abort ();
|
|
||||||
+}
|
|
||||||
Index: a/ports/sysdeps/arm/Makefile
|
|
||||||
===================================================================
|
|
||||||
--- a/ports/sysdeps/arm/Makefile 2012-07-04 18:25:41.000000000 -0700
|
|
||||||
+++ b/ports/sysdeps/arm/Makefile 2012-08-14 20:16:10.201093638 -0700
|
|
||||||
@@ -1,8 +1,16 @@
|
|
||||||
+gnulib-arch = $(elfobjdir)/libgcc-stubs.a
|
|
||||||
+static-gnulib-arch = $(elfobjdir)/libgcc-stubs.a
|
|
||||||
+
|
|
||||||
ifeq ($(subdir),elf)
|
|
||||||
sysdep-dl-routines += tlsdesc dl-tlsdesc
|
|
||||||
sysdep_routines += aeabi_unwind_cpp_pr1 find_exidx tlsdesc dl-tlsdesc
|
|
||||||
sysdep-rtld-routines += aeabi_unwind_cpp_pr1 tlsdesc dl-tlsdesc
|
|
||||||
shared-only-routines += aeabi_unwind_cpp_pr1
|
|
||||||
+
|
|
||||||
+$(objpfx)libgcc-stubs.a: $(objpfx)aeabi_unwind_cpp_pr1.os
|
|
||||||
+ $(build-extra-lib)
|
|
||||||
+
|
|
||||||
+lib-noranlib: $(objpfx)libgcc-stubs.a
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(subdir),csu)
|
|
@ -1,27 +0,0 @@
|
|||||||
Upstream-Status: Backport
|
|
||||||
|
|
||||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
||||||
|
|
||||||
From c57a67e03368687fc0d2ae8354cd1b347a61ea44 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Joseph Myers <joseph@codesourcery.com>
|
|
||||||
Date: Thu, 5 Jul 2012 22:16:03 +0000
|
|
||||||
Subject: [PATCH] Add ARM-specific static-stubs.c.
|
|
||||||
|
|
||||||
---
|
|
||||||
ports/ChangeLog.arm | 4 ++++
|
|
||||||
ports/sysdeps/arm/static-stubs.c | 7 +++++++
|
|
||||||
2 files changed, 11 insertions(+)
|
|
||||||
create mode 100644 ports/sysdeps/arm/static-stubs.c
|
|
||||||
|
|
||||||
Index: a/ports/sysdeps/arm/static-stubs.c
|
|
||||||
===================================================================
|
|
||||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
|
||||||
+++ b/ports/sysdeps/arm/static-stubs.c 2012-08-15 15:04:59.687669241 -0700
|
|
||||||
@@ -0,0 +1,7 @@
|
|
||||||
+/* When building with GCC with static-only libgcc, the dummy
|
|
||||||
+ _Unwind_Resume from static-stubs.c needs to be used together with
|
|
||||||
+ the dummy __aeabi_unwind_cpp_pr* from aeabi_unwind_cpp_pr1.c
|
|
||||||
+ instead of the copies from libgcc. */
|
|
||||||
+
|
|
||||||
+#include <elf/static-stubs.c>
|
|
||||||
+#include <aeabi_unwind_cpp_pr1.c>
|
|
@ -1,26 +0,0 @@
|
|||||||
|
|
||||||
On mips target, binutils currently sets DT_MIPS_RLD_MAP to 0 in dynamic
|
|
||||||
section if a --version-script sets _RLD_MAP to local. This is apparently
|
|
||||||
a binutils bug, but libc shouldn't segfault in this case.
|
|
||||||
|
|
||||||
see also: http://sourceware.org/bugilla/show_bug.cgi?id=11615
|
|
||||||
|
|
||||||
Upstream-Status: Pending
|
|
||||||
|
|
||||||
9/19/2010 - added by Qing He <qing.he@intel.com>
|
|
||||||
|
|
||||||
|
|
||||||
---
|
|
||||||
diff -ru glibc-2.10.1.orig/ports/sysdeps/mips/dl-machine.h glibc-2.10.1/ports/sysdeps/mips/dl-machine.h
|
|
||||||
--- glibc-2.10.1.orig/ports/sysdeps/mips/dl-machine.h 2009-05-16 16:36:20.000000000 +0800
|
|
||||||
+++ glibc-2.10.1/ports/sysdeps/mips/dl-machine.h 2010-09-19 09:11:53.000000000 +0800
|
|
||||||
@@ -70,7 +70,8 @@
|
|
||||||
/* If there is a DT_MIPS_RLD_MAP entry in the dynamic section, fill it in
|
|
||||||
with the run-time address of the r_debug structure */
|
|
||||||
#define ELF_MACHINE_DEBUG_SETUP(l,r) \
|
|
||||||
-do { if ((l)->l_info[DT_MIPS (RLD_MAP)]) \
|
|
||||||
+do { if ((l)->l_info[DT_MIPS (RLD_MAP)] && \
|
|
||||||
+ (l)->l_info[DT_MIPS (RLD_MAP)]->d_un.d_ptr) \
|
|
||||||
*(ElfW(Addr) *)((l)->l_info[DT_MIPS (RLD_MAP)]->d_un.d_ptr) = \
|
|
||||||
(ElfW(Addr)) (r); \
|
|
||||||
} while (0)
|
|
@ -1,11 +0,0 @@
|
|||||||
--- a/libc/configure.in
|
|
||||||
+++ b/libc/configure.in
|
|
||||||
@@ -968,7 +968,7 @@
|
|
||||||
critic_missing="$critic_missing gcc")
|
|
||||||
AC_CHECK_PROG_VER(MAKE, gnumake gmake make, --version,
|
|
||||||
[GNU Make[^0-9]*\([0-9][0-9.]*\)],
|
|
||||||
- [3.79* | 3.[89]*], critic_missing="$critic_missing make")
|
|
||||||
+ [3.79* | 3.[89]* | 4.* ], critic_missing="$critic_missing make")
|
|
||||||
|
|
||||||
AC_CHECK_PROG_VER(MSGFMT, gnumsgfmt gmsgfmt msgfmt, --version,
|
|
||||||
[GNU gettext.* \([0-9]*\.[0-9.]*\)],
|
|
@ -1,14 +0,0 @@
|
|||||||
add /usr/lib to default search path for the dynamic linker
|
|
||||||
|
|
||||||
--- a/libc/Makeconfig
|
|
||||||
+++ b/libc/Makeconfig
|
|
||||||
@@ -539,6 +539,9 @@
|
|
||||||
default-rpath = $(libdir)
|
|
||||||
endif
|
|
||||||
|
|
||||||
+# Add /usr/lib to default search path for the dynamic linker
|
|
||||||
+user-defined-trusted-dirs := /usr/lib
|
|
||||||
+
|
|
||||||
ifndef link-extra-libs
|
|
||||||
link-extra-libs = $(LDLIBS-$(@F))
|
|
||||||
link-extra-libs-static = $(link-extra-libs)
|
|
@ -1,11 +0,0 @@
|
|||||||
--- a/libc/configure.in
|
|
||||||
+++ b/libc/configure.in
|
|
||||||
@@ -958,7 +958,7 @@
|
|
||||||
critic_missing="$critic_missing gcc")
|
|
||||||
AC_CHECK_PROG_VER(MAKE, gnumake gmake make, --version,
|
|
||||||
[GNU Make[^0-9]*\([0-9][0-9.]*\)],
|
|
||||||
- [3.79* | 3.[89]*], critic_missing="$critic_missing make")
|
|
||||||
+ [3.79* | 3.[89]* | 4.* ], critic_missing="$critic_missing make")
|
|
||||||
|
|
||||||
AC_CHECK_PROG_VER(MSGFMT, gnumsgfmt gmsgfmt msgfmt, --version,
|
|
||||||
[GNU gettext.* \([0-9]*\.[0-9.]*\)],
|
|
@ -1,14 +0,0 @@
|
|||||||
add /usr/lib to default search path for the dynamic linker
|
|
||||||
|
|
||||||
--- a/libc/Makeconfig
|
|
||||||
+++ b/libc/Makeconfig
|
|
||||||
@@ -539,6 +539,9 @@
|
|
||||||
default-rpath = $(libdir)
|
|
||||||
endif
|
|
||||||
|
|
||||||
+# Add /usr/lib to default search path for the dynamic linker
|
|
||||||
+user-defined-trusted-dirs := /usr/lib
|
|
||||||
+
|
|
||||||
ifndef link-extra-libs
|
|
||||||
link-extra-libs = $(LDLIBS-$(@F))
|
|
||||||
link-extra-libs-static = $(link-extra-libs)
|
|
Loading…
Reference in New Issue
Block a user