From 460860f457e2a889785c506e8c77d4a7dff24d3e Mon Sep 17 00:00:00 2001 From: Adhemerval Zanella Date: Mon, 8 Jan 2024 10:21:17 -0300 Subject: Remove ia64-linux-gnu Linux 6.7 removed ia64 from the official tree [1], following the general principle that a glibc port needs upstream support for the architecture in all the components it depends on (binutils, GCC, and the Linux kernel). Apart from the removal of sysdeps/ia64 and sysdeps/unix/sysv/linux/ia64, there are updates to various comments referencing ia64 for which removal of those references seemed appropriate. The configuration is removed from README and build-many-glibcs.py. The CONTRIBUTED-BY, elf/elf.h, manual/contrib.texi (the porting mention), *.po files, config.guess, and longlong.h are not changed. For Linux it allows cleanup some clone2 support on multiple files. The following bug can be closed as WONTFIX: BZ 22634 [2], BZ 14250 [3], BZ 21634 [4], BZ 10163 [5], BZ 16401 [6], and BZ 11585 [7]. [1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=43ff221426d33db909f7159fdf620c3b052e2d1c [2] https://sourceware.org/bugzilla/show_bug.cgi?id=22634 [3] https://sourceware.org/bugzilla/show_bug.cgi?id=14250 [4] https://sourceware.org/bugzilla/show_bug.cgi?id=21634 [5] https://sourceware.org/bugzilla/show_bug.cgi?id=10163 [6] https://sourceware.org/bugzilla/show_bug.cgi?id=16401 [7] https://sourceware.org/bugzilla/show_bug.cgi?id=11585 Reviewed-by: Carlos O'Donell --- nptl/allocatestack.c | 24 +++++------------------- nptl/perf.c | 2 -- 2 files changed, 5 insertions(+), 21 deletions(-) (limited to 'nptl') diff --git a/nptl/allocatestack.c b/nptl/allocatestack.c index 606f246094..f35a8369bd 100644 --- a/nptl/allocatestack.c +++ b/nptl/allocatestack.c @@ -150,9 +150,7 @@ __attribute ((always_inline)) guard_position (void *mem, size_t size, size_t guardsize, struct pthread *pd, size_t pagesize_m1) { -#ifdef NEED_SEPARATE_REGISTER_STACK - return mem + (((size - guardsize) / 2) & ~pagesize_m1); -#elif _STACK_GROWS_DOWN +#if _STACK_GROWS_DOWN return mem; #elif _STACK_GROWS_UP return (char *) (((uintptr_t) pd - guardsize) & ~pagesize_m1); @@ -166,7 +164,7 @@ setup_stack_prot (char *mem, size_t size, char *guard, size_t guardsize, const int prot) { char *guardend = guard + guardsize; -#if _STACK_GROWS_DOWN && !defined(NEED_SEPARATE_REGISTER_STACK) +#if _STACK_GROWS_DOWN /* As defined at guard_position, for architectures with downward stack the guard page is always at start of the allocated area. */ if (__mprotect (guardend, size - guardsize, prot) != 0) @@ -189,7 +187,7 @@ advise_stack_range (void *mem, size_t size, uintptr_t pd, size_t guardsize) { uintptr_t sp = (uintptr_t) CURRENT_STACK_FRAME; size_t pagesize_m1 = __getpagesize () - 1; -#if _STACK_GROWS_DOWN && !defined(NEED_SEPARATE_REGISTER_STACK) +#if _STACK_GROWS_DOWN size_t freesize = (sp - (uintptr_t) mem) & ~pagesize_m1; assert (freesize < size); if (freesize > PTHREAD_STACK_MIN) @@ -510,19 +508,7 @@ allocate_stack (const struct pthread_attr *attr, struct pthread **pdp, { /* The old guard area is too large. */ -#ifdef NEED_SEPARATE_REGISTER_STACK - char *guard = mem + (((size - guardsize) / 2) & ~pagesize_m1); - char *oldguard = mem + (((size - pd->guardsize) / 2) & ~pagesize_m1); - - if (oldguard < guard - && __mprotect (oldguard, guard - oldguard, prot) != 0) - goto mprot_error; - - if (__mprotect (guard + guardsize, - oldguard + pd->guardsize - guard - guardsize, - prot) != 0) - goto mprot_error; -#elif _STACK_GROWS_DOWN +#if _STACK_GROWS_DOWN if (__mprotect ((char *) mem + guardsize, pd->guardsize - guardsize, prot) != 0) goto mprot_error; @@ -599,7 +585,7 @@ allocate_stack (const struct pthread_attr *attr, struct pthread **pdp, static void name_stack_maps (struct pthread *pd, bool set) { -#if _STACK_GROWS_DOWN && !defined(NEED_SEPARATE_REGISTER_STACK) +#if _STACK_GROWS_DOWN void *stack = pd->stackblock + pd->guardsize; #else void *stack = pd->stackblock; diff --git a/nptl/perf.c b/nptl/perf.c index 47d75fea69..b587211f04 100644 --- a/nptl/perf.c +++ b/nptl/perf.c @@ -708,8 +708,6 @@ clock_getcpuclockid (pid_t pid, clockid_t *clock_id) ({ unsigned int _hi, _lo; \ asm volatile ("rdtsc" : "=a" (_lo), "=d" (_hi)); \ (Var) = ((unsigned long long int) _hi << 32) | _lo; }) -#elif defined __ia64__ -#define HP_TIMING_NOW(Var) __asm__ __volatile__ ("mov %0=ar.itc" : "=r" (Var) : : "memory") #else #error "HP_TIMING_NOW missing" #endif -- cgit 1.4.1