diff options
author | joseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d> | 2012-07-03 19:42:25 +0000 |
---|---|---|
committer | joseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d> | 2012-07-03 19:42:25 +0000 |
commit | 20f73aac36c2b2c240dcc379d5117488fe44960c (patch) | |
tree | c92a56fb1b39fc4a7c9a012c36b668b2d200b0d0 | |
parent | f6c15fd48a4bf9a3675dc4570f9a06eef0e04096 (diff) |
Merge changes between r19447 and r19464 from /fsf/trunk.
git-svn-id: svn://svn.eglibc.org/trunk@19465 7b3dc134-2b1b-0410-93df-9e9f96275f8d
-rw-r--r-- | libc/ChangeLog | 64 | ||||
-rw-r--r-- | libc/Makeconfig | 68 | ||||
-rw-r--r-- | libc/NEWS | 7 | ||||
-rw-r--r-- | libc/Rules | 45 | ||||
-rw-r--r-- | libc/elf/Makefile | 6 | ||||
-rw-r--r-- | libc/elf/static-stubs.c | 46 | ||||
-rw-r--r-- | libc/math/libm-test.inc | 9 | ||||
-rw-r--r-- | libc/ports/.gitignore | 1 | ||||
-rw-r--r-- | libc/ports/Banner | 1 | ||||
-rw-r--r-- | libc/ports/ChangeLog | 6 | ||||
-rw-r--r-- | libc/ports/ChangeLog.arm | 7 | ||||
-rw-r--r-- | libc/ports/ChangeLog.powerpc | 13 | ||||
-rw-r--r-- | libc/ports/Makefile | 43 | ||||
-rw-r--r-- | libc/ports/sysdeps/arm/Makefile | 8 | ||||
-rw-r--r-- | libc/ports/sysdeps/powerpc/dl-procinfo.c | 5 | ||||
-rw-r--r-- | libc/ports/sysdeps/powerpc/dl-procinfo.h | 17 | ||||
-rw-r--r-- | libc/sysdeps/i386/fpu/libm-test-ulps | 16 | ||||
-rw-r--r-- | libc/sysdeps/ieee754/flt-32/k_rem_pio2f.c | 37 | ||||
-rw-r--r-- | libc/version.h | 4 | ||||
-rw-r--r-- | ports/ChangeLog | 4 | ||||
-rw-r--r-- | ports/README.ports-moved-to-libc | 4 |
21 files changed, 313 insertions, 98 deletions
diff --git a/libc/ChangeLog b/libc/ChangeLog index 75dea027a..dc750a570 100644 --- a/libc/ChangeLog +++ b/libc/ChangeLog @@ -1,3 +1,67 @@ +2012-07-03 Joseph Myers <joseph@codesourcery.com> + + * Makeconfig [!+link] (+link-before-libc): New variable. + [!+link] (+link-after-libc): Likewise. + [!+link] (+link-tests): Likewise. + [!+link] (+link): Define in terms of $(+link-before-libc) and + $(+link-after-libc). + [!+link-static] (+link-static-before-libc): New variable. + [!+link-static] (+link-static-after-libc): Likewise. + [!+link-static] (+link-static-tests): Likewise. + [!+link-static] (+link-static): Define in terms of + $(+link-static-before-libc) and $(+link-static-after-libc). + [build-shared] (link-libc-before-gnulib): New variable. + [build-shared] (link-libc-tests): Likewise. + [build-shared] (link-libc): Define in terms of + $(link-libc-before-gnulib). + [!build-shared] (link-libc-tests): New variable. + (link-libc-static-tests): New variable. + [!gnulib] (gnulib-arch): New variable. + [!gnulib] (gnulib-tests): Likewise. + [!gnulib] (static-gnulib-arch): Likewise. + [!gnulib] (static-gnulib-tests): Likewise. + [!gnulib] (gnulib): Use $(gnulib-arch). Do not use $(libgcc_eh). + Define with "=" instead of ":=". + [!gnulib] (static-gnulib): Use $(static-gnulib-arch). Do not use + -lgcc_eh $(libunwind). Define with "=" instead of ":=". + * Rules (binaries-all-notests): New variable. + (binaries-all-tests): Likewise. + (binaries-static-notests): Likewise. + (binaries-static-tests): Likewise. + (binaries-all): Define using $(binaries-all-notests) and + $(binaries-all-tests). + (binaries-static): Define using $(binaries-static-notests) and + $(binaries-static-tests). + (binaries-shared-tests): New variable. + (binaries-shared-notests): Likewise. + (binaries-shared): Remove variable. + ($(addprefix $(objpfx),$(binaries-shared-notests))): New rule. + ($(addprefix $(objpfx),$(binaries-shared-tests))): Likewise. + ($(addprefix $(objpfx),$(binaries-shared))): Remove rule. + ($(addprefix $(objpfx),$(binaries-static-notests))): New rule. + ($(addprefix $(objpfx),$(binaries-static-tests))): Likewise. + ($(addprefix $(objpfx),$(binaries-static))): Remove rule. + * elf/Makefile (sln-modules): New variable. + (extra-objs): Add $(sln-modules:=.o). + (ldconfig-modules): Add static-stubs. + ($(objpfx)sln): Depend on $(sln-modules:%=$(objpfx)%.o). + * elf/static-stubs.c: New file. + + [BZ #14283] + * sysdeps/ieee754/flt-32/k_rem_pio2f.c (__kernel_rem_pio2f): Shift + by 7 not 8 to examine high bit of fractional part. Use volatile + variables when splitting into final array of floats if + __FLT_EVAL_METHOD__ != 0. + * math/libm-test.inc (cos_test): Add another test. + (sin_test): Likewise. + * sysdeps/i386/fpu/libm-test-ulps: Update. + + [BZ #14273] + * math/libm-test.inc (cosh_test): Add more tests. + + * version.h (RELEASE): Set to "development". + (VERSION): Set to "2.16.90". + 2012-06-30 Carlos O'Donell <carlos_odonell@mentor.com> * NEWS: Update copyright. Remove last-updated date. diff --git a/libc/Makeconfig b/libc/Makeconfig index cdb94a5d6..c89fab0bc 100644 --- a/libc/Makeconfig +++ b/libc/Makeconfig @@ -415,9 +415,9 @@ LDFLAGS.so += $(hashstyle-LDFLAGS) 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 @@ ifndef +link $(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 @@ ifndef +link-pie 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 @@ ifndef +link-static $(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 @@ ifeq (yes,$(build-shared)) # 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 @@ else 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 @@ endif # 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 @@ else 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) @@ -5,6 +5,13 @@ See the end for copying conditions. Please send GNU C library bug reports via <http://sources.redhat.com/bugzilla/> using `glibc' in the "product" field. +Version 2.17 + +* The following bugs are resolved with this release: + + 14283 + + Version 2.16 * The following bugs are resolved with this release: diff --git a/libc/Rules b/libc/Rules index de9dd2423..c7bdddb78 100644 --- a/libc/Rules +++ b/libc/Rules @@ -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 @@ xtests: tests $(xtests:%=$(objpfx)%.out) $(xtests-bp.out) # 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 @@ $(addprefix $(objpfx),$(binaries-pie)): %: %.o \ $(+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 \ diff --git a/libc/elf/Makefile b/libc/elf/Makefile index fd78f523d..2880e8089 100644 --- a/libc/elf/Makefile +++ b/libc/elf/Makefile @@ -71,6 +71,8 @@ others = sprof sln pldd 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-static += ldconfig 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)ldd: ldd.bash.in $(common-objpfx)soversions.mk \ $(objpfx)sprof: $(libdl) +$(objpfx)sln: $(sln-modules:%=$(objpfx)%.o) + $(objpfx)ldconfig: $(ldconfig-modules:%=$(objpfx)%.o) $(objpfx)pldd: $(pldd-modules:%=$(objpfx)%.o) diff --git a/libc/elf/static-stubs.c b/libc/elf/static-stubs.c new file mode 100644 index 000000000..6c5eebc3f --- /dev/null +++ b/libc/elf/static-stubs.c @@ -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 (); +} diff --git a/libc/math/libm-test.inc b/libc/math/libm-test.inc index 578cba245..92b2835ad 100644 --- a/libc/math/libm-test.inc +++ b/libc/math/libm-test.inc @@ -2597,6 +2597,8 @@ cos_test (void) TEST_f_f (cos, 0.80190127184058835, 0.69534156199418473); #endif + TEST_f_f (cos, 0x1.442f74p+15, 2.4407839902314016628485779006274989801517e-06L); + #ifndef TEST_FLOAT TEST_f_f (cos, 1e22, 0.5232147853951389454975944733847094921409L); TEST_f_f (cos, 0x1p1023, -0.826369834614147994500785680811743734805L); @@ -2767,6 +2769,11 @@ cosh_test (void) TEST_f_f (cosh, 0.75L, 1.29468328467684468784170818539018176L); +#ifndef TEST_FLOAT + TEST_f_f (cosh, 709.8893558127259666434838436543941497802734375L, 9.9999998999995070652573675944761818416035e+307L); + TEST_f_f (cosh, -709.8893558127259666434838436543941497802734375L, 9.9999998999995070652573675944761818416035e+307L); +#endif + END (cosh); } @@ -7700,6 +7707,8 @@ sin_test (void) TEST_f_f (sin, 0x1p65, -0.047183876212354673805106149805700013943218L); TEST_f_f (sin, -0x1p65, 0.047183876212354673805106149805700013943218L); + TEST_f_f (sin, 0x1.7f4134p+103, -6.6703229329788657073304190650534846045235e-08L); + #ifdef TEST_DOUBLE TEST_f_f (sin, 0.80190127184058835, 0.71867942238767868); TEST_f_f (sin, 2.522464e-1, 2.4957989804940911e-1); diff --git a/libc/ports/.gitignore b/libc/ports/.gitignore deleted file mode 100644 index 1c3f26029..000000000 --- a/libc/ports/.gitignore +++ /dev/null @@ -1 +0,0 @@ -autom4te*.cache diff --git a/libc/ports/Banner b/libc/ports/Banner deleted file mode 100644 index 6b9c1f0b4..000000000 --- a/libc/ports/Banner +++ /dev/null @@ -1 +0,0 @@ -Support for some architectures added on, not maintained in glibc core. diff --git a/libc/ports/ChangeLog b/libc/ports/ChangeLog index 4eb1e7f61..5adf0ec58 100644 --- a/libc/ports/ChangeLog +++ b/libc/ports/ChangeLog @@ -1,3 +1,9 @@ +2012-07-03 Joseph Myers <joseph@codesourcery.com> + + * .gitignore: Remove file. + * Banner: Likewise. + * Makefile: Likewise. + 2012-06-21 Carlos O'Donell <carlos_odonell@mentor.com> * .gitignore: New file. diff --git a/libc/ports/ChangeLog.arm b/libc/ports/ChangeLog.arm index c411e1c1f..71e8b1b3d 100644 --- a/libc/ports/ChangeLog.arm +++ b/libc/ports/ChangeLog.arm @@ -1,3 +1,10 @@ +2012-07-03 Joseph Myers <joseph@codesourcery.com> + + * sysdeps/arm/Makefile (gnulib-arch): New variable. + (static-gnulib-arch): Likewise. + [subdir = elf] ($(objpfx)libgcc-stubs.a): New rule. + [subdir = elf] (lib-noranlib): Depend on $(objpfx)libgcc-stubs.a. + 2012-06-12 Joseph Myers <joseph@codesourcery.com> * sysdeps/unix/sysv/linux/arm/setcontext.S (__startcontext): Use diff --git a/libc/ports/ChangeLog.powerpc b/libc/ports/ChangeLog.powerpc index 0c7d3af0e..7141bb279 100644 --- a/libc/ports/ChangeLog.powerpc +++ b/libc/ports/ChangeLog.powerpc @@ -1,3 +1,16 @@ +2012-07-03 Joseph Myers <joseph@codesourcery.com> + + * sysdeps/powerpc/dl-procinfo.c (_dl_powerpc_platforms): Add + "ppca2". + * sysdeps/powerpc/dl-procinfo.h (_DL_PLATFORMS_COUNT): Increase to + 13. + (PPC_PLATFORM_PPCA2): Define. + (PPC_PLATFORM_PPC405): Increase value. + (PPC_PLATFORM_PPC440): Likewise. + (PPC_PLATFORM_PPC464): Likewise. + (PPC_PLATFORM_PPC476): Likewise. + (_dl_string_platform): Handle ppca2. + 2012-06-13 Joseph Myers <joseph@codesourcery.com> * data/localplt-powerpcsoft-linux-gnu.data: Allow abort and diff --git a/libc/ports/Makefile b/libc/ports/Makefile deleted file mode 100644 index 657fdeef7..000000000 --- a/libc/ports/Makefile +++ /dev/null @@ -1,43 +0,0 @@ -# This makefile is not used by the glibc build process. -# It's purely for making ports tarballs. - -.PHONY: dist dist-ports -dist: dist-ports - -# Do `make dist dist-version=X.Y.Z' to make tar files of an older version. -dist-version = $(version) -# Also try 'dist-tag=some="-r TAG"' (or -D DATE) to get some tag rather -# than the release tag for X.Y.Z. -dist-tag = -r glibc-$(subst .,_,$(dist-version)) - -distname = glibc-ports-$(dist-version) - -do-export = cvs $(CVSOPTS) -Q export -d $(basename $@) $(dist-tag) - -dist-ports: $(foreach Z,.bz2 .gz,$(distname).tar$Z) - md5sum $^ -$(distname).tar: - @rm -fr $(basename $@) - $(MAKE) -q `find sysdeps -name configure` - $(do-export) ports - find $(basename $@) -name configure -print | xargs touch - tar cf $@ $(basename $@) - rm -fr $(basename $@) - -sysdeps-of-stem = sysdeps/$* sysdeps/unix/sysv/linux/$* - -.PRECIOUS: %.gz %.bz2 # Don't delete output as intermediate files. -dist-port-%: $(foreach Z,.bz2 .gz,glibc-port-%-$(dist-version).tar$Z) - md5sum $^ -glibc-port-%-$(dist-version).tar: ChangeLog.% - @rm -fr $(basename $@) - $(MAKE) -q `find $(sysdeps-of-stem) -name configure` - $(do-export) ports/ChangeLog.$* $(addprefix ports/,$(sysdeps-of-stem)) - mv $(basename $@)/ports/* $(basename $@)/ - rmdir $(basename $@)/ports - find $(basename $@) -name configure -print | xargs touch - tar cf $@ $(basename $@) - rm -fr $(basename $@) - -%.bz2: %; bzip2 -9vk $< -%.gz: %; gzip -9vnc $< > $@.new && mv -f $@.new $@ diff --git a/libc/ports/sysdeps/arm/Makefile b/libc/ports/sysdeps/arm/Makefile index 69a5a6a11..355f5b309 100644 --- a/libc/ports/sysdeps/arm/Makefile +++ b/libc/ports/sysdeps/arm/Makefile @@ -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) diff --git a/libc/ports/sysdeps/powerpc/dl-procinfo.c b/libc/ports/sysdeps/powerpc/dl-procinfo.c index b1979ab1f..00cd497a2 100644 --- a/libc/ports/sysdeps/powerpc/dl-procinfo.c +++ b/libc/ports/sysdeps/powerpc/dl-procinfo.c @@ -1,5 +1,5 @@ /* Data for processor capability information. PowerPC version. - Copyright (C) 2005, 2006, 2008 Free Software Foundation, Inc. + Copyright (C) 2005-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 @@ -67,7 +67,7 @@ PROCINFO_CLASS const char _dl_powerpc_cap_flags[25][10] #if !defined PROCINFO_DECL && defined SHARED ._dl_powerpc_platforms #else -PROCINFO_CLASS const char _dl_powerpc_platforms[12][12] +PROCINFO_CLASS const char _dl_powerpc_platforms[13][12] #endif #ifndef PROCINFO_DECL = { @@ -79,6 +79,7 @@ PROCINFO_CLASS const char _dl_powerpc_platforms[12][12] [PPC_PLATFORM_CELL_BE] = "ppc-cell-be", [PPC_PLATFORM_POWER6X] = "power6x", [PPC_PLATFORM_POWER7] = "power7", + [PPC_PLATFORM_PPCA2] = "ppca2", [PPC_PLATFORM_PPC405] = "ppc405", [PPC_PLATFORM_PPC440] = "ppc440", [PPC_PLATFORM_PPC464] = "ppc464", diff --git a/libc/ports/sysdeps/powerpc/dl-procinfo.h b/libc/ports/sysdeps/powerpc/dl-procinfo.h index 785bd1ba0..98c37757a 100644 --- a/libc/ports/sysdeps/powerpc/dl-procinfo.h +++ b/libc/ports/sysdeps/powerpc/dl-procinfo.h @@ -1,5 +1,5 @@ /* Processor capability information handling macros. PowerPC version. - Copyright (C) 2005, 2006, 2008 Free Software Foundation, Inc. + Copyright (C) 2005-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 @@ -30,7 +30,7 @@ #define HWCAP_IMPORTANT (PPC_FEATURE_HAS_ALTIVEC \ + PPC_FEATURE_HAS_DFP) -#define _DL_PLATFORMS_COUNT 12 +#define _DL_PLATFORMS_COUNT 13 #define _DL_FIRST_PLATFORM 32 /* Mask to filter out platforms. */ @@ -46,10 +46,11 @@ #define PPC_PLATFORM_CELL_BE 5 #define PPC_PLATFORM_POWER6X 6 #define PPC_PLATFORM_POWER7 7 -#define PPC_PLATFORM_PPC405 8 -#define PPC_PLATFORM_PPC440 9 -#define PPC_PLATFORM_PPC464 10 -#define PPC_PLATFORM_PPC476 11 +#define PPC_PLATFORM_PPCA2 8 +#define PPC_PLATFORM_PPC405 9 +#define PPC_PLATFORM_PPC440 10 +#define PPC_PLATFORM_PPC464 11 +#define PPC_PLATFORM_PPC476 12 static inline const char * __attribute__ ((unused)) @@ -127,6 +128,10 @@ _dl_string_platform (const char *str) == 0) return _DL_FIRST_PLATFORM + PPC_PLATFORM_CELL_BE; else if (strcmp (str + 3, + GLRO(dl_powerpc_platforms)[PPC_PLATFORM_PPCA2] + 3) + == 0) + return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPCA2; + else if (strcmp (str + 3, GLRO(dl_powerpc_platforms)[PPC_PLATFORM_PPC405] + 3) == 0) return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPC405; diff --git a/libc/sysdeps/i386/fpu/libm-test-ulps b/libc/sysdeps/i386/fpu/libm-test-ulps index 38a69e670..4661aea4a 100644 --- a/libc/sysdeps/i386/fpu/libm-test-ulps +++ b/libc/sysdeps/i386/fpu/libm-test-ulps @@ -1656,8 +1656,8 @@ Test "j1 (0.75) == 0.349243602174862192523281016426251335": double: 1 idouble: 1 Test "j1 (0x1.3ffp+74) == 1.818984347516051243459364437186082741567e-12": -float: 1 -ifloat: 1 +float: 2 +ifloat: 2 ildouble: 1 ldouble: 1 Test "j1 (0x1.ff00000000002p+840) == 1.846591691699331493194965158699937660696e-127": @@ -2359,8 +2359,8 @@ float: 1 idouble: 1 ifloat: 1 Test "y0 (0x1.3ffp+74) == 1.818984347516051243459467456433028748678e-12": -float: 1 -ifloat: 1 +float: 2 +ifloat: 2 ildouble: 1 ldouble: 1 Test "y0 (0x1.ff00000000002p+840) == 1.846591691699331493194965158699937660696e-127": @@ -2956,9 +2956,9 @@ ldouble: 2 Function: "j1": double: 2 -float: 1 +float: 2 idouble: 2 -ifloat: 1 +ifloat: 2 ildouble: 1 ldouble: 1 @@ -3128,9 +3128,9 @@ ldouble: 1 Function: "y0": double: 2 -float: 1 +float: 2 idouble: 2 -ifloat: 1 +ifloat: 2 ildouble: 1 ldouble: 1 diff --git a/libc/sysdeps/ieee754/flt-32/k_rem_pio2f.c b/libc/sysdeps/ieee754/flt-32/k_rem_pio2f.c index 06c2f378d..e54a0677e 100644 --- a/libc/sysdeps/ieee754/flt-32/k_rem_pio2f.c +++ b/libc/sysdeps/ieee754/flt-32/k_rem_pio2f.c @@ -88,7 +88,7 @@ recompute: iq[jz-1] -= i<<(8-q0); ih = iq[jz-1]>>(7-q0); } - else if(q0==0) ih = iq[jz-1]>>8; + else if(q0==0) ih = iq[jz-1]>>7; else if(z>=(float)0.5) ih=2; if(ih>0) { /* q > 0.5 */ @@ -166,24 +166,33 @@ recompute: y[0] = (ih==0)? fw: -fw; break; case 1: - case 2: - fw = 0.0; - for (i=jz;i>=0;i--) fw += fq[i]; - y[0] = (ih==0)? fw: -fw; - fw = fq[0]-fw; - for (i=1;i<=jz;i++) fw += fq[i]; - y[1] = (ih==0)? fw: -fw; + case 2:; +#if __FLT_EVAL_METHOD__ != 0 + volatile +#endif + float fv = 0.0; + for (i=jz;i>=0;i--) fv += fq[i]; + y[0] = (ih==0)? fv: -fv; + fv = fq[0]-fv; + for (i=1;i<=jz;i++) fv += fq[i]; + y[1] = (ih==0)? fv: -fv; break; case 3: /* painful */ for (i=jz;i>0;i--) { - fw = fq[i-1]+fq[i]; - fq[i] += fq[i-1]-fw; - fq[i-1] = fw; +#if __FLT_EVAL_METHOD__ != 0 + volatile +#endif + float fv = fq[i-1]+fq[i]; + fq[i] += fq[i-1]-fv; + fq[i-1] = fv; } for (i=jz;i>1;i--) { - fw = fq[i-1]+fq[i]; - fq[i] += fq[i-1]-fw; - fq[i-1] = fw; +#if __FLT_EVAL_METHOD__ != 0 + volatile +#endif + float fv = fq[i-1]+fq[i]; + fq[i] += fq[i-1]-fv; + fq[i-1] = fv; } for (fw=0.0,i=jz;i>=2;i--) fw += fq[i]; if(ih==0) { diff --git a/libc/version.h b/libc/version.h index 25ae4f7c1..57b9ec22c 100644 --- a/libc/version.h +++ b/libc/version.h @@ -1,4 +1,4 @@ /* This file just defines the current version number of libc. */ -#define RELEASE "stable" -#define VERSION "2.16" +#define RELEASE "development" +#define VERSION "2.16.90" diff --git a/ports/ChangeLog b/ports/ChangeLog index 4eb1e7f61..8a37d8408 100644 --- a/ports/ChangeLog +++ b/ports/ChangeLog @@ -1,3 +1,7 @@ +2012-07-03 Joseph Myers <joseph@codesourcery.com> + + * README.ports-moved-to-libc: New file. + 2012-06-21 Carlos O'Donell <carlos_odonell@mentor.com> * .gitignore: New file. diff --git a/ports/README.ports-moved-to-libc b/ports/README.ports-moved-to-libc new file mode 100644 index 000000000..579a4de50 --- /dev/null +++ b/ports/README.ports-moved-to-libc @@ -0,0 +1,4 @@ +The "ports" files are now maintained in the "ports" subdirectory of +the main glibc repository. The separate glibc-ports repository is now +used only for 2.16 and older release branches and no further changes +should be made to the files on the "master" branch in this repository. |