Author: aurel32 Date: 2015-10-19 08:05:06 +0000 (Mon, 19 Oct 2015) New Revision: 6655
Added: glibc-package/branches/glibc-2.21/debian/patches/hppa/cvs-allocatestack-stacktop.diff Modified: glibc-package/branches/glibc-2.21/debian/changelog glibc-package/branches/glibc-2.21/debian/patches/hppa/local-stack-grows-up.diff glibc-package/branches/glibc-2.21/debian/patches/series Log: * patches/hppa/cvs-allocatestack-stacktop.diff: new patch from upstream to fix a set-but-unused warning in nptl/allocatestack.c, causing a build failure. * patches/hppa/local-stack-grows-up.diff: rebase. Modified: glibc-package/branches/glibc-2.21/debian/changelog =================================================================== --- glibc-package/branches/glibc-2.21/debian/changelog 2015-10-19 05:05:33 UTC (rev 6654) +++ glibc-package/branches/glibc-2.21/debian/changelog 2015-10-19 08:05:06 UTC (rev 6655) @@ -1,6 +1,10 @@ glibc (2.21-0experimental3) UNRELEASED; urgency=medium - * + [ Aurelien Jarno ] + * patches/hppa/cvs-allocatestack-stacktop.diff: new patch from upstream + to fix a set-but-unused warning in nptl/allocatestack.c, causing a + build failure. + * patches/hppa/local-stack-grows-up.diff: rebase. -- Aurelien Jarno <[email protected]> Mon, 19 Oct 2015 07:05:23 +0200 Added: glibc-package/branches/glibc-2.21/debian/patches/hppa/cvs-allocatestack-stacktop.diff =================================================================== --- glibc-package/branches/glibc-2.21/debian/patches/hppa/cvs-allocatestack-stacktop.diff (rev 0) +++ glibc-package/branches/glibc-2.21/debian/patches/hppa/cvs-allocatestack-stacktop.diff 2015-10-19 08:05:06 UTC (rev 6655) @@ -0,0 +1,46 @@ +2015-08-05 Mike Frysinger <[email protected]> + + * nptl/allocatestack.c (allocate_stack): Move stacktop decl down to + bottom and under _STACK_GROWS_DOWN. Move the stacktop assignment + in there too. + +--- a/nptl/allocatestack.c ++++ b/nptl/allocatestack.c +@@ -353,7 +353,6 @@ allocate_stack (const struct pthread_attr *attr, struct pthread **pdp, + struct pthread *pd; + size_t size; + size_t pagesize_m1 = __getpagesize () - 1; +- void *stacktop; + + assert (powerof2 (pagesize_m1 + 1)); + assert (TCB_ALIGNMENT >= STACK_ALIGN); +@@ -717,19 +716,23 @@ allocate_stack (const struct pthread_attr *attr, struct pthread **pdp, + /* We place the thread descriptor at the end of the stack. */ + *pdp = pd; + +-#if TLS_TCB_AT_TP ++#if _STACK_GROWS_DOWN ++ void *stacktop; ++ ++# if TLS_TCB_AT_TP + /* The stack begins before the TCB and the static TLS block. */ + stacktop = ((char *) (pd + 1) - __static_tls_size); +-#elif TLS_DTV_AT_TP ++# elif TLS_DTV_AT_TP + stacktop = (char *) (pd - 1); +-#endif ++# endif + +-#ifdef NEED_SEPARATE_REGISTER_STACK ++# ifdef NEED_SEPARATE_REGISTER_STACK + *stack = pd->stackblock; + *stacksize = stacktop - *stack; +-#elif _STACK_GROWS_DOWN ++# else + *stack = stacktop; +-#elif _STACK_GROWS_UP ++# endif ++#else + *stack = pd->stackblock; + assert (*stack > 0); + #endif Modified: glibc-package/branches/glibc-2.21/debian/patches/hppa/local-stack-grows-up.diff =================================================================== --- glibc-package/branches/glibc-2.21/debian/patches/hppa/local-stack-grows-up.diff 2015-10-19 05:05:33 UTC (rev 6654) +++ glibc-package/branches/glibc-2.21/debian/patches/hppa/local-stack-grows-up.diff 2015-10-19 08:05:06 UTC (rev 6655) @@ -1,28 +1,22 @@ ---- - nptl/allocatestack.c | 35 +++++++++++++++++++++++++---------- - nptl/pthread_create.c | 19 ++++++++++++++++--- - nptl/pthread_getattr_np.c | 4 ++++ - 5 files changed, 57 insertions(+), 13 deletions(-) - --- a/nptl/allocatestack.c +++ b/nptl/allocatestack.c -@@ -361,6 +361,15 @@ +@@ -371,6 +371,15 @@ if (__glibc_unlikely (attr->flags & ATTR_FLAG_STACKADDR)) { uintptr_t adj; +#if _STACK_GROWS_DOWN + char * stackaddr = (char *) attr->stackaddr; +#else -+ /* Assume the same layout as the _STACK_GROWS_DOWN case, -+ with struct pthread at the top of the stack block. -+ Later we adjust the guard location and stack address ++ /* Assume the same layout as the _STACK_GROWS_DOWN case, ++ with struct pthread at the top of the stack block. ++ Later we adjust the guard location and stack address + to match the _STACK_GROWS_UP case. */ + char * stackaddr = (char *) attr->stackaddr + attr->stacksize; +#endif /* If the user also specified the size of the stack make sure it is large enough. */ -@@ -370,11 +379,11 @@ +@@ -380,11 +389,11 @@ /* Adjust stack size for alignment of the TLS block. */ #if TLS_TCB_AT_TP @@ -36,7 +30,7 @@ & __static_tls_align_m1; assert (size > adj); #endif -@@ -384,10 +393,10 @@ +@@ -394,10 +403,10 @@ the stack. It is the user's responsibility to do this if it is wanted. */ #if TLS_TCB_AT_TP @@ -49,7 +43,7 @@ - __static_tls_size - adj) - TLS_PRE_TCB_SIZE); #endif -@@ -399,7 +408,7 @@ +@@ -409,7 +418,7 @@ pd->specific[0] = pd->specific_1stblock; /* Remember the stack-related values. */ @@ -58,7 +52,7 @@ pd->stackblock_size = size; /* This is a user-provided stack. It will not be queued in the -@@ -625,7 +634,7 @@ +@@ -633,7 +642,7 @@ char *guard = mem + (((size - guardsize) / 2) & ~pagesize_m1); #elif _STACK_GROWS_DOWN char *guard = mem; @@ -67,7 +61,7 @@ char *guard = (char *) (((uintptr_t) pd - guardsize) & ~pagesize_m1); #endif if (mprotect (guard, guardsize, PROT_NONE) != 0) -@@ -675,9 +684,13 @@ +@@ -683,9 +692,13 @@ prot) != 0) goto mprot_error; #elif _STACK_GROWS_UP @@ -84,10 +78,10 @@ #endif pd->guardsize = guardsize; -@@ -720,8 +733,10 @@ - #elif _STACK_GROWS_DOWN +@@ -732,8 +745,10 @@ *stack = stacktop; - #elif _STACK_GROWS_UP + # endif + #else + /* We don't use stacktop. In _STACK_GROWS_UP the start + of the stack is simply stackblock (lowest address of + the stored block of memory for the stack). */ @@ -98,7 +92,7 @@ return 0; --- a/nptl/pthread_create.c +++ b/nptl/pthread_create.c -@@ -399,12 +399,25 @@ +@@ -426,12 +426,25 @@ #ifdef _STACK_GROWS_DOWN char *sp = CURRENT_STACK_FRAME; size_t freesize = (sp - (char *) pd->stackblock) & ~pagesize_m1; @@ -109,11 +103,11 @@ if (freesize > PTHREAD_STACK_MIN) __madvise (pd->stackblock, freesize - PTHREAD_STACK_MIN, MADV_DONTNEED); +#else -+ /* Page aligned start of memory to free (higher than or equal ++ /* Page aligned start of memory to free (higher than or equal + to current sp plus the minimum stack size). */ -+ void *freeblock = (void*)((size_t)(CURRENT_STACK_FRAME -+ + PTHREAD_STACK_MIN -+ + pagesize_m1) ++ void *freeblock = (void*)((size_t)(CURRENT_STACK_FRAME ++ + PTHREAD_STACK_MIN ++ + pagesize_m1) + & ~pagesize_m1); + char *free_end = (char *) (((uintptr_t) pd - pd->guardsize) & ~pagesize_m1); + /* Is there any space to free? */ Modified: glibc-package/branches/glibc-2.21/debian/patches/series =================================================================== --- glibc-package/branches/glibc-2.21/debian/patches/series 2015-10-19 05:05:33 UTC (rev 6654) +++ glibc-package/branches/glibc-2.21/debian/patches/series 2015-10-19 08:05:06 UTC (rev 6655) @@ -56,6 +56,7 @@ arm/cvs-memcpy-memmove-always-bx.diff arm/local-arm-futex.diff +hppa/cvs-allocatestack-stacktop.diff hppa/local-inlining.diff hppa/local-stack-grows-up.diff hppa/local-elf-make-cflags.diff

