diff options
author | DJ Delorie <dj@delorie.com> | 2016-08-15 23:47:06 -0400 |
---|---|---|
committer | DJ Delorie <dj@delorie.com> | 2016-08-15 23:47:06 -0400 |
commit | 275d577540a54d9fe3a7ae4ac1c73810cd2ee7e5 (patch) | |
tree | 101b9415600ccd7241a83c965572fadee3e5e5d9 | |
parent | 528795b01909b0c41ec3049fa115a107c8898a20 (diff) | |
parent | 9e2ff6c9cc54c0b4402b8d49e4abe7000fde7617 (diff) | |
download | glibc-275d577540a54d9fe3a7ae4ac1c73810cd2ee7e5.zip glibc-275d577540a54d9fe3a7ae4ac1c73810cd2ee7e5.tar.gz glibc-275d577540a54d9fe3a7ae4ac1c73810cd2ee7e5.tar.bz2 |
Merge branch 'master' into dj/malloc
-rw-r--r-- | ChangeLog | 15 | ||||
-rw-r--r-- | localedata/ChangeLog | 7 | ||||
-rw-r--r-- | localedata/locales/et_EE | 4 | ||||
-rw-r--r-- | math/test-fexcept.c | 33 | ||||
-rw-r--r-- | sysdeps/powerpc/fpu/fsetexcptflg.c | 1 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/arm/setcontext.S | 7 |
6 files changed, 63 insertions, 4 deletions
@@ -1,3 +1,18 @@ +2016-08-15 Andreas Schwab <schwab@suse.de> + + [BZ #20435] + * sysdeps/unix/sysv/linux/arm/setcontext.S (__startcontext): Mark + as .cantunwind. + +2016-08-12 Joseph Myers <joseph@codesourcery.com> + + * sysdeps/powerpc/fpu/fsetexcptflg.c (__fesetexceptflag): Add + comment from fraiseexcpt.c. + + * math/test-fexcept.c (feraiseexcept_exact): New function. + (test_set): Call feraiseexcept_exact instead of feraiseexcept. + (test_except): Likewise. + 2016-08-10 Joseph Myers <joseph@codesourcery.com> [BZ #20455] diff --git a/localedata/ChangeLog b/localedata/ChangeLog index 9aedf51..1ce824d 100644 --- a/localedata/ChangeLog +++ b/localedata/ChangeLog @@ -1,3 +1,10 @@ +2016-08-15 Märt Põder <tramm@p6drad-teel.net> + + [BZ #20459] + * locales/et_EE (n_cs_precedes, p_cs_precedes): Adjust to + Requirements of information technology in Estonian language and + cultural environment. + 2016-08-10 Martin Pitt <martin.pitt@ubuntu.com> [BZ #9842] diff --git a/localedata/locales/et_EE b/localedata/locales/et_EE index 096cdd5..83115c6 100644 --- a/localedata/locales/et_EE +++ b/localedata/locales/et_EE @@ -2141,9 +2141,9 @@ positive_sign "" negative_sign "<U002D>" int_frac_digits 2 frac_digits 2 -p_cs_precedes 1 +p_cs_precedes 0 p_sep_by_space 1 -n_cs_precedes 1 +n_cs_precedes 0 n_sep_by_space 1 p_sign_posn 1 n_sign_posn 1 diff --git a/math/test-fexcept.c b/math/test-fexcept.c index 5e181a1..36d14c5 100644 --- a/math/test-fexcept.c +++ b/math/test-fexcept.c @@ -20,6 +20,35 @@ #include <stdio.h> #include <math-tests.h> +/* Like feraiseexcept, but raise exactly the specified exceptions EXC, + without possibly raising "inexact" together with "overflow" or + "underflow" as permitted by ISO C. (This is not used with traps + enabled, so side-effects from raising and then clearing "inexact" + are irrelevant.) */ + +static int +feraiseexcept_exact (int exc) +{ +#ifdef FE_INEXACT + int mask = 0; +#ifdef FE_OVERFLOW + mask |= FE_OVERFLOW; +#endif +#ifdef FE_UNDERFLOW + mask |= FE_UNDERFLOW; +#endif + if ((exc & FE_INEXACT) != 0 + || (exc & mask) == 0 + || fetestexcept (FE_INEXACT) != 0) + return feraiseexcept (exc); + int ret = feraiseexcept (exc); + feclearexcept (FE_INEXACT); + return ret; +#else + return feraiseexcept (exc); +#endif +} + static int test_set (int initial, const fexcept_t *saved, int mask, int expected) { @@ -28,7 +57,7 @@ test_set (int initial, const fexcept_t *saved, int mask, int expected) printf ("Testing set: initial exceptions %x, mask %x, expected %x\n", (unsigned int) initial, (unsigned int) mask, (unsigned int) expected); - int ret = feraiseexcept (initial); + int ret = feraiseexcept_exact (initial); if (ret != 0) { puts ("feraiseexcept failed"); @@ -81,7 +110,7 @@ test_except (int exc, const char *exc_name) return result; } - ret = feraiseexcept (exc); + ret = feraiseexcept_exact (exc); if (ret == 0) printf ("feraiseexcept (%s) succeeded\n", exc_name); else diff --git a/sysdeps/powerpc/fpu/fsetexcptflg.c b/sysdeps/powerpc/fpu/fsetexcptflg.c index cb440d5..70dd07c 100644 --- a/sysdeps/powerpc/fpu/fsetexcptflg.c +++ b/sysdeps/powerpc/fpu/fsetexcptflg.c @@ -36,6 +36,7 @@ __fesetexceptflag (const fexcept_t *flagp, int excepts) excepts_mask |= FE_ALL_INVALID; n.l = ((u.l & ~excepts_mask) | (flag & FPSCR_STICKY_BITS) + /* Turn FE_INVALID into FE_INVALID_SOFTWARE. */ | (flag >> ((31 - FPSCR_VX) - (31 - FPSCR_VXSOFT)) & FE_INVALID_SOFTWARE)); diff --git a/sysdeps/unix/sysv/linux/arm/setcontext.S b/sysdeps/unix/sysv/linux/arm/setcontext.S index 603e508..d1f168f 100644 --- a/sysdeps/unix/sysv/linux/arm/setcontext.S +++ b/sysdeps/unix/sysv/linux/arm/setcontext.S @@ -86,12 +86,19 @@ weak_alias(__setcontext, setcontext) /* Called when a makecontext() context returns. Start the context in R4 or fall through to exit(). */ + /* Unwind descriptors are looked up based on PC - 2, so we have to + make sure to mark the instruction preceding the __startcontext + label as .cantunwind. */ + .fnstart + .cantunwind + nop ENTRY(__startcontext) movs r0, r4 bne PLTJMP(__setcontext) @ New context was 0 - exit b PLTJMP(HIDDEN_JUMPTARGET(exit)) + .fnend END(__startcontext) #ifdef PIC |