mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-22 02:40:08 +00:00
Relocate hppa from ports to libc.
This commit is contained in:
parent
4e4a58f4ee
commit
5abebba403
@ -1,3 +1,10 @@
|
||||
2014-05-29 Carlos O'Donell <carlos@systemhalted.org>
|
||||
|
||||
* sysdeps/hppa: Move directory from ports/sysdeps/hppa.
|
||||
* sysdeps/unix/sysv/linux/hppa: Move directory from
|
||||
ports/systeps/unix/sysv/linux/hppa.
|
||||
* README: Update listing for hppa-*-linux-gnu.
|
||||
|
||||
2014-04-28 Ondřej Bílka <neleai@seznam.cz>
|
||||
|
||||
[BZ #16754]
|
||||
|
3
README
3
README
@ -27,6 +27,7 @@ The GNU C Library supports these configurations for using Linux kernels:
|
||||
aarch64*-*-linux-gnu
|
||||
alpha*-*-linux-gnu
|
||||
arm-*-linux-gnueabi
|
||||
hppa-*-linux-gnu Not currently functional without patches.
|
||||
i[4567]86-*-linux-gnu
|
||||
x86_64-*-linux-gnu Can build either x86_64 or x32
|
||||
ia64-*-linux-gnu
|
||||
@ -48,8 +49,6 @@ The code for other CPU configurations supported by volunteers outside of
|
||||
the core glibc maintenance effort is contained in the `ports' add-on,
|
||||
located in the `ports' subdirectory of the source tree.
|
||||
|
||||
hppa-*-linux-gnu Not currently functional without patches.
|
||||
|
||||
If you are interested in doing a port, please contact the glibc
|
||||
maintainers; see http://www.gnu.org/software/libc/ for more
|
||||
information.
|
||||
|
@ -41,5 +41,4 @@ endif
|
||||
|
||||
# We implement a 64-bit `long double'. The standard says we can do this.
|
||||
# This means our `long double' and `double' are identical.
|
||||
long-double-fcts = no
|
||||
|
||||
long-double-fcts = no
|
@ -77,4 +77,3 @@ _fini:
|
||||
stwm %r4,64(%sp)
|
||||
stw %r19,-32(%sp)
|
||||
copy %r19,%r4
|
||||
|
@ -85,4 +85,3 @@ _end_fini:
|
||||
.extern _fini
|
||||
.word _fini, _end_fini
|
||||
.byte 0x08, 0x01, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08
|
||||
|
@ -80,4 +80,3 @@ void _dl_unmap (struct link_map *map);
|
||||
#define DL_FIXUP_VALUE_CODE_ADDR(value) ((value).ip)
|
||||
#define DL_FIXUP_VALUE_ADDR(value) ((uintptr_t) &(value))
|
||||
#define DL_FIXUP_ADDR_VALUE(addr) (*(struct fdesc *) (addr))
|
||||
|
@ -467,7 +467,7 @@ asm ( \
|
||||
of the main executable's symbols, as for a COPY reloc. */
|
||||
#if defined USE_TLS && (!defined RTLD_BOOTSTRAP || USE___THREAD)
|
||||
# define elf_machine_type_class(type) \
|
||||
((((type) == R_PARISC_IPLT \
|
||||
((((type) == R_PARISC_IPLT \
|
||||
|| (type) == R_PARISC_EPLT \
|
||||
|| (type) == R_PARISC_TLS_DTPMOD32 \
|
||||
|| (type) == R_PARISC_TLS_DTPOFF32 \
|
||||
@ -475,7 +475,7 @@ asm ( \
|
||||
* ELF_RTYPE_CLASS_PLT) \
|
||||
| (((type) == R_PARISC_COPY) * ELF_RTYPE_CLASS_COPY))
|
||||
#else
|
||||
#define elf_machine_type_class(type) \
|
||||
#define elf_machine_type_class(type) \
|
||||
((((type) == R_PARISC_IPLT \
|
||||
|| (type) == R_PARISC_EPLT) \
|
||||
* ELF_RTYPE_CLASS_PLT) \
|
||||
@ -527,7 +527,7 @@ dl_platform_init (void)
|
||||
|
||||
auto void __attribute__((always_inline))
|
||||
elf_machine_rela (struct link_map *map,
|
||||
const Elf32_Rela *reloc,
|
||||
const Elf32_Rela *reloc,
|
||||
const Elf32_Sym *sym,
|
||||
const struct r_found_version *version,
|
||||
void *const reloc_addr_arg,
|
||||
@ -653,13 +653,13 @@ elf_machine_rela (struct link_map *map,
|
||||
if (__builtin_expect (sym_map != NULL, 1))
|
||||
{
|
||||
elf_machine_fixup_plt (NULL, sym_map, reloc, reloc_addr,
|
||||
DL_FIXUP_MAKE_VALUE(sym_map, value));
|
||||
DL_FIXUP_MAKE_VALUE(sym_map, value));
|
||||
}
|
||||
else
|
||||
{
|
||||
/* If we get here, it's a (weak) undefined sym. */
|
||||
elf_machine_fixup_plt (NULL, map, reloc, reloc_addr,
|
||||
DL_FIXUP_MAKE_VALUE(map, value));
|
||||
DL_FIXUP_MAKE_VALUE(map, value));
|
||||
}
|
||||
return;
|
||||
|
@ -51,7 +51,7 @@ _dl_runtime_resolve:
|
||||
|
||||
/* Save static link register */
|
||||
stw %r29,-16(%sp)
|
||||
/* Save argument registers */
|
||||
/* Save argument registers */
|
||||
stw %r26,-36(%sp)
|
||||
stw %r25,-40(%sp)
|
||||
stw %r24,-44(%sp)
|
||||
@ -74,11 +74,11 @@ _dl_runtime_resolve:
|
||||
fstd,ma %fr6,-8(%r1)
|
||||
fstd,ma %fr7,-8(%r1)
|
||||
|
||||
/* Set up args to fixup func, needs only two arguments */
|
||||
/* Set up args to fixup func, needs only two arguments */
|
||||
ldw 8+4(%r20),%r26 /* (1) got[1] == struct link_map */
|
||||
copy %r19,%r25 /* (2) reloc offset */
|
||||
|
||||
/* Call the real address resolver. */
|
||||
/* Call the real address resolver. */
|
||||
bl _dl_fixup,%rp
|
||||
copy %r21,%r19 /* set fixup func ltp */
|
||||
|
||||
@ -164,7 +164,7 @@ _dl_runtime_profile:
|
||||
stw %r2,-52(%sp)
|
||||
|
||||
|
||||
/* Set up args to fixup func, needs five arguments */
|
||||
/* Set up args to fixup func, needs five arguments */
|
||||
ldw 8+4(%r20),%r26 /* (1) got[1] == struct link_map */
|
||||
stw %r26,-116(%sp) /* Save struct link_map */
|
||||
copy %r19,%r25 /* (2) reloc offset */
|
||||
@ -174,7 +174,7 @@ _dl_runtime_profile:
|
||||
ldo -112(%sp), %r1
|
||||
stw %r1, -52(%sp) /* (5) long int *framesizep */
|
||||
|
||||
/* Call the real address resolver. */
|
||||
/* Call the real address resolver. */
|
||||
bl _dl_profile_fixup,%rp
|
||||
copy %r21,%r19 /* set fixup func ltp */
|
||||
|
||||
@ -255,7 +255,7 @@ L(cont):
|
||||
|
||||
/* Arguments to _dl_call_pltexit */
|
||||
ldw -116(%sp), %r26 /* (1) got[1] == struct link_map */
|
||||
ldw -120(%sp), %r25 /* (2) reloc offsets */
|
||||
ldw -120(%sp), %r25 /* (2) reloc offsets */
|
||||
ldo -56(%sp), %r24 /* (3) *La_hppa_regs */
|
||||
ldo -124(%sp), %r23 /* (4) *La_hppa_retval */
|
||||
|
||||
@ -285,4 +285,3 @@ L(cont):
|
||||
.PROCEND
|
||||
cfi_endproc
|
||||
.size _dl_runtime_profile, . - _dl_runtime_profile
|
||||
|
@ -36,4 +36,3 @@ typedef double double_t; /* `double' expressions are evaluated as
|
||||
|
||||
/* On hppa `long double' is 64-bits. */
|
||||
#undef __NO_LONG_DOUBLE_MATH
|
||||
|
@ -27,7 +27,7 @@ fegetexcept (void)
|
||||
/* Get the current status word. */
|
||||
__asm__ ("fstd %%fr0,0(%1) \n\t"
|
||||
"fldd 0(%1),%%fr0 \n\t"
|
||||
: "=m" (s.l) : "r" (&s.l) : "%r0");
|
||||
: "=m" (s.l) : "r" (&s.l) : "%r0");
|
||||
|
||||
return (s.sw[0] & FE_ALL_EXCEPT);
|
||||
}
|
@ -51,4 +51,3 @@ feholdexcept (fenv_t *envp)
|
||||
}
|
||||
|
||||
libm_hidden_def (feholdexcept)
|
||||
|
@ -27,11 +27,10 @@ fegetexceptflag (fexcept_t *flagp, int excepts)
|
||||
/* Get the current status word. */
|
||||
__asm__ ("fstd %%fr0,0(%1) \n\t"
|
||||
"fldd 0(%1),%%fr0 \n\t"
|
||||
: "=m" (s.l) : "r" (&s.l) : "%r0");
|
||||
: "=m" (s.l) : "r" (&s.l) : "%r0");
|
||||
|
||||
*flagp = (s.sw[0] >> 27) & excepts & FE_ALL_EXCEPT;
|
||||
|
||||
/* Success. */
|
||||
return 0;
|
||||
}
|
||||
|
@ -27,7 +27,7 @@ fetestexcept (int excepts)
|
||||
/* Get the current status word. */
|
||||
__asm__ ("fstd %%fr0,0(%1) \n\t"
|
||||
"fldd 0(%1),%%fr0 \n\t"
|
||||
: "=m" (s.l) : "r" (&s.l));
|
||||
: "=m" (s.l) : "r" (&s.l));
|
||||
|
||||
return (s.sw[0] >> 27) & excepts & FE_ALL_EXCEPT;
|
||||
}
|
@ -34,4 +34,3 @@ __tls_get_addr (tls_index *ti)
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -85,7 +85,7 @@ typedef struct
|
||||
/* Install new dtv for current thread. */
|
||||
# define INSTALL_NEW_DTV(dtv) \
|
||||
({ tcbhead_t *__tcbp = (tcbhead_t *)__get_cr27(); \
|
||||
__tcbp->dtv = dtv; \
|
||||
__tcbp->dtv = dtv; \
|
||||
})
|
||||
|
||||
/* Return dtv of given thread descriptor. */
|
||||
@ -101,14 +101,14 @@ typedef struct
|
||||
/* Return the address of the dtv for the current thread. */
|
||||
# define THREAD_DTV() \
|
||||
({ tcbhead_t *__tcbp = (tcbhead_t *)__get_cr27(); \
|
||||
__tcbp->dtv; \
|
||||
__tcbp->dtv; \
|
||||
})
|
||||
|
||||
/* Return the thread descriptor for the current thread. */
|
||||
# define THREAD_SELF \
|
||||
({ struct pthread *__self; \
|
||||
__self = __get_cr27(); \
|
||||
__self - 1; \
|
||||
__self - 1; \
|
||||
})
|
||||
|
||||
/* Magic for libthread_db to know how to do THREAD_SELF.
|
@ -112,4 +112,3 @@
|
||||
__result; \
|
||||
})
|
||||
#endif
|
||||
|
@ -2,4 +2,3 @@
|
||||
ifeq ($(subdir),stdlib)
|
||||
gen-as-const-headers += ucontext_i.sym
|
||||
endif
|
||||
|
@ -61,7 +61,7 @@ typedef uintmax_t uatomic_max_t;
|
||||
|
||||
#if __ASSUME_LWS_CAS
|
||||
/* The only basic operation needed is compare and exchange. */
|
||||
# define atomic_compare_and_exchange_val_acq(mem, newval, oldval) \
|
||||
# define atomic_compare_and_exchange_val_acq(mem, newval, oldval) \
|
||||
({ \
|
||||
volatile int lws_errno; \
|
||||
volatile int lws_ret; \
|
||||
@ -80,18 +80,18 @@ typedef uintmax_t uatomic_max_t;
|
||||
"nop \n\t" \
|
||||
"stw %%r28, %0 \n\t" \
|
||||
"stw %%r21, %1 \n\t" \
|
||||
: "=m" (lws_ret), "=m" (lws_errno) \
|
||||
: "=m" (lws_ret), "=m" (lws_errno) \
|
||||
: "r" (mem), "r" (oldval), "r" (newval) \
|
||||
: _LWS_CLOBBER \
|
||||
); \
|
||||
\
|
||||
\
|
||||
if(lws_errno == -EFAULT || lws_errno == -ENOSYS) \
|
||||
ABORT_INSTRUCTION; \
|
||||
\
|
||||
ABORT_INSTRUCTION; \
|
||||
\
|
||||
lws_ret; \
|
||||
})
|
||||
|
||||
# define atomic_compare_and_exchange_bool_acq(mem, newval, oldval) \
|
||||
# define atomic_compare_and_exchange_bool_acq(mem, newval, oldval) \
|
||||
({ \
|
||||
int ret; \
|
||||
ret = atomic_compare_and_exchange_val_acq(mem, newval, oldval); \
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user