Commit Graph

137 Commits

Author SHA1 Message Date
Ulrich Weigand
696caf1d00 PowerPC64 ELFv2 ABI 2/6: Remove function descriptors
This patch adds support for the ELFv2 ABI feature to remove function
descriptors.  See this GCC patch for in-depth discussion:
http://gcc.gnu.org/ml/gcc-patches/2013-11/msg01141.html

This mostly involves two types of changes: updating assembler source
files to the new logic, and updating the dynamic loader.

After the refactoring in the previous patch, most of the assembler source
changes can be handled simply by providing ELFv2 versions of the
macros in sysdep.h.   One somewhat non-obvious change is in __GI__setjmp:
this used to "fall through" to the immediately following __setjmp ENTRY
point.  This is no longer safe in the ELFv2 since ENTRY defines both
a global and a local entry point, and you cannot simply fall through
to a global entry point as it requires r12 to be set up.

Also, makecontext needs to be updated to set up registers according to
the new ABI for calling into the context's start routine.

The dynamic linker changes mostly consist of removing special code
to handle function descriptors.  We also need to support the new PLT
and glink format used by the the ELFv2 linker, see:
https://sourceware.org/ml/binutils/2013-10/msg00376.html

In addition, the dynamic linker now verifies that the dynamic libraries
it loads match its own ABI.

The hack in VDSO_IFUNC_RET to "synthesize" a function descriptor
for vDSO routines is also no longer necessary for ELFv2.
2013-12-04 07:41:38 -06:00
Ulrich Weigand
d31beafa8e PowerPC64 ELFv2 ABI 1/6: Code refactoring
This is the first patch to support the new ELFv2 ABI in glibc.

As preparation, this patch simply refactors some of the powerpc64 assembler
code to move all code related to creating function descriptors (.opd section)
or using function descriptors (function pointer call) into a central place
in sysdep.h.

Note that most locations creating .opd entries were already using macros
in sysdep.h, this patch simply extends this to the remaining places.

No relevant change in generated code expected.
2013-12-04 07:41:38 -06:00
Ulrich Weigand
5162e7dd96 PowerPC64: Fix incorrect CFI in *context routines
The context established by "makecontext" has a link register pointing
back to an error path within the makecontext routine.  This is currently
covered by the CFI FDE for makecontext itself, which is simply wrong
for the stack frame *inside* the context.  When trying to unwind (e.g.
doing a backtrace) in a routine inside a context created by makecontext,
this can lead to uninitialized stack slots being accessed, causing the
unwinder to crash in the worst case.

Similarly, during parts of the "setcontext" routine, when the stack
pointer has already been switched to point to the new context, the
address range is still covered by the CFI FDE for setcontext.  When
trying to unwind in that situation (e.g. backtrace from an async
signal handler for profiling), it is again possible that the unwinder
crashes.

Theses are all problems in existing code, but the changes in stack
frame layout appear to make the "worst case" much more likely in
the ELFv2 ABI context.  This causes regressions e.g. in the libgo
testsuite on ELFv2.

This patch fixes this by ending the makecontext/setcontext FDEs
before those problematic parts of the assembler, similar to what
is already done on other platforms.   This fixes the libgo
regression on ELFv2.
2013-12-04 07:41:37 -06:00
Adhemerval Zanella
bd12ab55c0 PowerPC: Fix __fe_nomask_env missing symbol
This patch fix the missing symbol __fe_nomask_env from commit
41e8926aa4 for GLIBC_2.1.
2013-11-26 07:25:08 -06:00
Adhemerval Zanella
7ab44563a9 PowerPC: Fix __fe_mask_env export
Change SHLIB_COMPAT calls to GLIBC_2_19 for __fe_nomask_env symbol.
2013-11-13 12:58:56 -06:00
Adhemerval Zanella
7a2ad8cf39 PowerPC: Fix __fe_mask_env export
This patch does not export __fe_mask_env anymore, only providing a
compatibility symbol. It fixes BZ#14143.
2013-11-13 06:45:19 -06:00
Alan Modra
0b2c2ace36 PowerPC makecontext
http://sourceware.org/ml/libc-alpha/2013-08/msg00092.html

Use conditional form of branch and link to avoid destroying the cpu
link stack used to predict blr return addresses.

	* sysdeps/unix/sysv/linux/powerpc/powerpc32/makecontext.S: Use
	conditional form of branch and link when obtaining pc.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/makecontext.S: Likewise.
2013-10-04 10:38:59 +09:30
Ryan S. Arnold
2f063a6e84 PowerPC: Enable POWER8 platform sans hwcap bits. 2013-06-24 15:33:32 -05:00
Siddhesh Poyarekar
61dd6208fb New API to set default thread attributes
This patch introduces two new convenience functions to set the default
thread attributes used for creating threads.  This allows a programmer
to set the default thread attributes just once in a process and then
run pthread_create without additional attributes.
2013-06-15 12:24:15 +05:30
Joseph Myers
9c84384cc1 Remove trailing whitespace. 2013-06-05 20:44:03 +00:00
Thomas Schwinge
572676160d New <math.h> macro named issignaling to check for a signaling NaN (sNaN).
It is based on draft TS 18661 and currently enabled as a GNU extension.
2013-04-02 13:51:02 +02:00
Joseph Myers
2d67d91ac0 Remove powerpc64 bounded-pointers code. 2013-03-06 00:10:21 +00:00
Siddhesh Poyarekar
ba384f6ed9 C++11 thread_local destructors support
This feature is specifically for the C++ compiler to offload calling
thread_local object destructors on thread program exit, to glibc.
This is to overcome the possible complication of destructors of
thread_local objects getting called after the DSO in which they're
defined is unloaded by the dynamic linker.  The DSO is marked as
'unloadable' if it has a constructed thread_local object and marked as
'unloadable' again when all the constructed thread_local objects
defined in it are destroyed.
2013-02-18 19:08:21 +05:30
Joseph Myers
a2da1673fe Remove CHECK_N and bp-checks.h. 2013-02-08 20:06:30 +00:00
Anton Blanchard
471a1672d4 PowerPC: Rename __kernel_vdso_get_tbfreq to __kernel_get_tbfreq.
In order for the __kernel_get_tbfreq vDSO call to work the
INTERNAL_VSYSCALL_NCS macro needed to be updated to prevent it from
assuming an integer return type (since the timebase frequency is a 64-bit
value) by specifying the type of the return type as a macro parameter.  The
macro then specifically declares the return value as a 'register' (or
implied pair) of the denoted type.  The compiler is then informed that this
register (or implied pair) is to be used for the return value.
2013-01-18 07:44:38 -06:00
Andreas Schwab
557eead076 Revert "Use ieee754/dbl-64/wordsize-64 on powerpc64"
This reverts commit 7a9d2c3971.
2013-01-10 10:44:05 +01:00
Andreas Schwab
7a9d2c3971 Use ieee754/dbl-64/wordsize-64 on powerpc64
* sysdeps/ieee754/ldbl-opt/wordsize-64/s_ceil.c: New file.
	* sysdeps/ieee754/ldbl-opt/wordsize-64/s_finite.c: New file.
	* sysdeps/ieee754/ldbl-opt/wordsize-64/s_floor.c: New file.
	* sysdeps/ieee754/ldbl-opt/wordsize-64/s_frexp.c: New file.
	* sysdeps/ieee754/ldbl-opt/wordsize-64/s_isinf.c: New file.
	* sysdeps/ieee754/ldbl-opt/wordsize-64/s_isnan.c: New file.
	* sysdeps/ieee754/ldbl-opt/wordsize-64/s_llround.c: New file.
	* sysdeps/ieee754/ldbl-opt/wordsize-64/s_logb.c: New file.
	* sysdeps/ieee754/ldbl-opt/wordsize-64/s_lround.c: New file.
	* sysdeps/ieee754/ldbl-opt/wordsize-64/s_modf.c: New file.
	* sysdeps/ieee754/ldbl-opt/wordsize-64/s_nearbyint.c: New file.
	* sysdeps/ieee754/ldbl-opt/wordsize-64/s_remquo.c: New file.
	* sysdeps/ieee754/ldbl-opt/wordsize-64/s_rint.c: New file.
	* sysdeps/ieee754/ldbl-opt/wordsize-64/s_round.c: New file.
	* sysdeps/ieee754/ldbl-opt/wordsize-64/s_scalbln.c: New file.
	* sysdeps/ieee754/ldbl-opt/wordsize-64/s_scalbn.c: New file.
	* sysdeps/ieee754/ldbl-opt/wordsize-64/s_trunc.c: New file.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/Implies: Add
	ieee754/ldbl-opt/wordsize-64.
	* sysdeps/powerpc/powerpc64/Implies: Add
	ieee754/dbl-64/wordsize-64.
2013-01-10 09:59:58 +01:00
Joseph Myers
568035b787 Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
Joseph Myers
f4cf5f2d8b Add script to update copyright notices and reformat some to facilitate its use. 2013-01-01 16:29:10 +00:00
Siddhesh Poyarekar
f16946dd9c Fix "set but not used" warnings for powerpc64 2012-12-06 20:20:45 +05:30
Thomas Schwinge
b830319d49 [BZ #157] Remove include/stub-tag.h for good. 2012-11-04 19:59:40 +01:00
Andreas Schwab
d6cffd3ec0 PowerPC: Fix uc_link == NULL handling for makecontex.
If the function registered with makecontext returns with a NULL context
link the process should exit with zero, not non-zero.
2012-11-01 20:10:39 -05:00
Andreas Schwab
5a03cb1e85 Fix powerpc abilist sort order 2012-10-31 23:28:48 +01:00
Tulio Magno Quites Machado Filho
90aff2ff13 Correct order of entries in powerpc libc.abilist files. 2012-10-31 17:03:55 -05:00
Roland McGrath
6e6249d0b4 BZ#14743: Move clock_* symbols from librt to libc. 2012-10-24 14:50:46 -07:00
Tulio Magno Quites Machado Filho
8ad11b9a9c Add __ppc_get_timebase_freq to ppc.h. 2012-09-25 16:53:14 -05:00
Marek Polacek
b67e9372b2 Get rid of ASM_TYPE_DIRECTIVE{,_PREFIX}. 2012-08-02 21:04:29 +02:00
Joseph Myers
a9f1039f0a Remove __ASSUME_VFORK_SYSCALL (and some __NR_vfork conditionals). 2012-08-01 20:49:45 +00:00
Joseph Myers
89b4b02f42 Remove pre-2.4.21 Linux kernel support. 2012-07-25 21:19:13 +00:00
Florian Weimer
84b3fd8407 Rename __secure_getenv to secure_getenv 2012-07-25 19:46:22 +02:00
Joseph Myers
0f48659e36 Move localplt baselines to sysdeps directories. 2012-07-20 19:20:34 +00:00
Joseph Myers
bd29910a8a Move c++-types baselines to sysdeps directories. 2012-07-17 14:44:06 +00:00
Joseph Myers
ea32bcdd3d Add default-abi definitions for powerpc, s390 and sparc. 2012-06-01 21:19:28 +00:00
Joseph Myers
c26705334c Add comments suggesting moving some functions to syscalls.list. 2012-05-23 12:52:56 +00:00
Richard Henderson
c7683a6d02 Add <sys/auxv.h> and getauxval. 2012-05-20 10:40:35 -07:00
Joseph Myers
ffb7875d03 Remove pre-2.2 Linux kernel support. 2012-05-14 14:11:02 +00:00
Andreas Schwab
0741d64c91 Update powerpc ABI data 2012-05-01 20:08:42 +02:00
David S. Miller
8dbd5d7b90 Move abilist files into sysdep dirs.
* Makerules (%.abilist): Add vpath on sysdep_dirs.
	(check-abi-%): Remove AWK script prerequisite and explicit
	abilist directory.
	(check-abi): Rewrite to just diff the symlist with the abilist.
	(config-tls, config-abi-config): Delete, no longer used.
	(update-abi-%): Remove AWK script and explicit abilist directory.
	(update-abi): Rewrite to simply compare and conditionally copy the
	symlist and the sysdep abilist file.  Remove update-abi-config
	checks.
	* abilist/ld.abilist: Remove.
	* abilist/libBrokenLocale.abilist: Remove.
	* abilist/libanl.abilist: Remove.
	* abilist/libcrypt.abilist: Remove.
	* abilist/libdl.abilist: Remove.
	* abilist/librt.abilist: Remove.
	* abilist/libthread_db.abilist: Remove.
	* abilist/libutil.abilist: Remove.
	* scripts/extract-abilist.awk: Remove.
	* scripts/merge-abilist.awk: Remove.
	* sysdeps/generic/libcidn.abilist: New file.
	* sysdeps/generic/libnss_compat.abilist: New file.
	* sysdeps/generic/libnss_db.abilist: New file.
	* sysdeps/generic/libnss_dns.abilist: New file.
	* sysdeps/generic/libnss_files.abilist: New file.
	* sysdeps/generic/libnss_hesiod.abilist: New file.
	* sysdeps/generic/libnss_nis.abilist: New file.
	* sysdeps/generic/libnss_nisplus.abilist: New file.
	* sysdeps/unix/sysv/linux/i386/nptl/ld.abilist: New file.
	* sysdeps/unix/sysv/linux/i386/nptl/libanl.abilist: New file.
	* sysdeps/unix/sysv/linux/i386/nptl/libBrokenLocale.abilist: New
	file.
	* sysdeps/unix/sysv/linux/i386/nptl/libc.abilist: New file.
	* sysdeps/unix/sysv/linux/i386/nptl/libcrypt.abilist: New file.
	* sysdeps/unix/sysv/linux/i386/nptl/libdl.abilist: New file.
	* sysdeps/unix/sysv/linux/i386/nptl/libm.abilist: New file.
	* sysdeps/unix/sysv/linux/i386/nptl/libnsl.abilist: New file.
	* sysdeps/unix/sysv/linux/i386/nptl/libpthread.abilist: New file.
	* sysdeps/unix/sysv/linux/i386/nptl/libresolv.abilist: New file.
	* sysdeps/unix/sysv/linux/i386/nptl/librt.abilist: New file.
	* sysdeps/unix/sysv/linux/i386/nptl/libthread_db.abilist: New
	file.
	* sysdeps/unix/sysv/linux/i386/nptl/libutil.abilist: New file.
	* sysdeps/unix/sysv/linux/x86_64/nptl/ld.abilist: New file.
	* sysdeps/unix/sysv/linux/x86_64/nptl/libanl.abilist: New file.
	* sysdeps/unix/sysv/linux/x86_64/nptl/libBrokenLocale.abilist: New
	file.
	* sysdeps/unix/sysv/linux/x86_64/nptl/libc.abilist: New file.
	* sysdeps/unix/sysv/linux/x86_64/nptl/libcrypt.abilist: New file.
	* sysdeps/unix/sysv/linux/x86_64/nptl/libdl.abilist: New file.
	* sysdeps/unix/sysv/linux/x86_64/nptl/libm.abilist: New file.
	* sysdeps/unix/sysv/linux/x86_64/nptl/libnsl.abilist: New file.
	* sysdeps/unix/sysv/linux/x86_64/nptl/libpthread.abilist: New
	file.
	* sysdeps/unix/sysv/linux/x86_64/nptl/libresolv.abilist: New file.
	* sysdeps/unix/sysv/linux/x86_64/nptl/librt.abilist: New file.
	* sysdeps/unix/sysv/linux/x86_64/nptl/libthread_db.abilist: New
	file.
	* sysdeps/unix/sysv/linux/x86_64/nptl/libutil.abilist: New file.
	* sysdeps/unix/sysv/linux/powerpc/powercp32/fpu/nptl/ld.abilist:
	New file.
	* sysdeps/unix/sysv/linux/powerpc/powercp32/fpu/nptl/libanl.abilist:
	New file.
	* sysdeps/unix/sysv/linux/powerpc/powercp32/fpu/nptl/libBrokenLocale.abilist:
	New file.
	* sysdeps/unix/sysv/linux/powerpc/powercp32/fpu/nptl/libc.abilist:
	New file.
	* sysdeps/unix/sysv/linux/powerpc/powercp32/fpu/nptl/libcrypt.abilist:
	New file.
	* sysdeps/unix/sysv/linux/powerpc/powercp32/fpu/nptl/libdl.abilist:
	New file.
	* sysdeps/unix/sysv/linux/powerpc/powercp32/fpu/nptl/libm.abilist:
	New file.
	* sysdeps/unix/sysv/linux/powerpc/powercp32/fpu/nptl/libnsl.abilist:
	New file.
	* sysdeps/unix/sysv/linux/powerpc/powercp32/fpu/nptl/libpthread.abilist:
	New file.
	* sysdeps/unix/sysv/linux/powerpc/powercp32/fpu/nptl/libresolv.abilist:
	New file.
	* sysdeps/unix/sysv/linux/powerpc/powercp32/fpu/nptl/librt.abilist:
	New file.
	* sysdeps/unix/sysv/linux/powerpc/powercp32/fpu/nptl/libthread_db.abilist:
	New file.
	* sysdeps/unix/sysv/linux/powerpc/powercp32/fpu/nptl/libutil.abilist:
	New file.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/ld.abilist: New
	file.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libanl.abilist:
	New file.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libBrokenLocale.abilist:
	New file.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libc.abilist: New
	file.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libcrypt.abilist:
	New file.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libdl.abilist:
	New file.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libm.abilist: New
	file.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libnsl.abilist:
	New file.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libpthread.abilist:
	New file.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libresolv.abilist:
	New file.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/librt.abilist:
	New file.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libthread_db.abilist:
	New file.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libutil.abilist:
	New file.
	* sysdeps/unix/sysv/linux/s390/s390-32/nptl/ld.abilist: New file.
	* sysdeps/unix/sysv/linux/s390/s390-32/nptl/libanl.abilist: New
	file.
	* sysdeps/unix/sysv/linux/s390/s390-32/nptl/libBrokenLocale.abilist:
	New file.
	* sysdeps/unix/sysv/linux/s390/s390-32/nptl/libc.abilist: New
	file.
	* sysdeps/unix/sysv/linux/s390/s390-32/nptl/libcrypt.abilist: New
	file.
	* sysdeps/unix/sysv/linux/s390/s390-32/nptl/libdl.abilist: New
	file.
	* sysdeps/unix/sysv/linux/s390/s390-32/nptl/libm.abilist: New
	file.
	* sysdeps/unix/sysv/linux/s390/s390-32/nptl/libnsl.abilist: New
	file.
	* sysdeps/unix/sysv/linux/s390/s390-32/nptl/libpthread.abilist:
	New file.
	* sysdeps/unix/sysv/linux/s390/s390-32/nptl/libresolv.abilist: New
	file.
	* sysdeps/unix/sysv/linux/s390/s390-32/nptl/librt.abilist: New
	file.
	* sysdeps/unix/sysv/linux/s390/s390-32/nptl/libthread_db.abilist:
	New file.
	* sysdeps/unix/sysv/linux/s390/s390-32/nptl/libutil.abilist: New
	file.
	* sysdeps/unix/sysv/linux/s390/s390-64/nptl/ld.abilist: New file.
	* sysdeps/unix/sysv/linux/s390/s390-64/nptl/libanl.abilist: New
	file.
	* sysdeps/unix/sysv/linux/s390/s390-64/nptl/libBrokenLocale.abilist:
	New file.
	* sysdeps/unix/sysv/linux/s390/s390-64/nptl/libc.abilist: New
	file.
	* sysdeps/unix/sysv/linux/s390/s390-64/nptl/libcrypt.abilist: New
	file.
	* sysdeps/unix/sysv/linux/s390/s390-64/nptl/libdl.abilist: New
	file.
	* sysdeps/unix/sysv/linux/s390/s390-64/nptl/libm.abilist: New
	file.
	* sysdeps/unix/sysv/linux/s390/s390-64/nptl/libnsl.abilist: New
	file.
	* sysdeps/unix/sysv/linux/s390/s390-64/nptl/libpthread.abilist:
	New file.
	* sysdeps/unix/sysv/linux/s390/s390-64/nptl/libresolv.abilist: New
	file.
	* sysdeps/unix/sysv/linux/s390/s390-64/nptl/librt.abilist: New
	file.
	* sysdeps/unix/sysv/linux/s390/s390-64/nptl/libthread_db.abilist:
	New file.
	* sysdeps/unix/sysv/linux/s390/s390-64/nptl/libutil.abilist: New
	file.
	* sysdeps/unix/sysv/linux/sh/nptl/ld.abilist: New file.
	* sysdeps/unix/sysv/linux/sh/nptl/libanl.abilist: New file.
	* sysdeps/unix/sysv/linux/sh/nptl/libBrokenLocale.abilist: New
	file.
	* sysdeps/unix/sysv/linux/sh/nptl/libc.abilist: New file.
	* sysdeps/unix/sysv/linux/sh/nptl/libcrypt.abilist: New file.
	* sysdeps/unix/sysv/linux/sh/nptl/libdl.abilist: New file.
	* sysdeps/unix/sysv/linux/sh/nptl/libm.abilist: New file.
	* sysdeps/unix/sysv/linux/sh/nptl/libnsl.abilist: New file.
	* sysdeps/unix/sysv/linux/sh/nptl/libpthread.abilist: New file.
	* sysdeps/unix/sysv/linux/sh/nptl/libresolv.abilist: New file.
	* sysdeps/unix/sysv/linux/sh/nptl/librt.abilist: New file.
	* sysdeps/unix/sysv/linux/sh/nptl/libthread_db.abilist: New file.
	* sysdeps/unix/sysv/linux/sh/nptl/libutil.abilist: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/nptl/ld.abilist: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libanl.abilist: New
	file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libBrokenLocale.abilist:
	New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libc.abilist: New
	file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libcrypt.abilist: New
	file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libdl.abilist: New
	file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libm.abilist: New
	file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libnsl.abilist: New
	file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libpthread.abilist:
	New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libresolv.abilist:
	New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/nptl/librt.abilist: New
	file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libthread_db.abilist:
	New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libutil.abilist: New
	file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/nptl/ld.abilist: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libanl.abilist: New
	file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libBrokenLocale.abilist:
	New file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libc.abilist: New
	file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libcrypt.abilist: New
	file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libdl.abilist: New
	file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libm.abilist: New
	file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libnsl.abilist: New
	file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libpthread.abilist:
	New file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libresolv.abilist:
	New file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/nptl/librt.abilist: New
	file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libthread_db.abilist:
	New file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libutil.abilist: New
	file.
2012-04-28 04:36:51 -04:00
Paul Eggert
59ba27a63a Replace FSF snail mail address with URLs. 2012-02-09 23:18:22 +00:00
Joseph Myers
965a54a4ee Remove __STDC__ conditionals from non-installed headers. 2012-01-26 23:31:37 +00:00
Andreas Schwab
f12a32e6f0 Make ppc sync_file_range cancelable. 2011-04-09 11:07:18 -04:00
Ryan S. Arnold
d55fd7a557 Fix INTERNAL_[V]SYSCALL_NCS macros to not cast return val to int. 2011-02-17 01:21:08 -05:00
Michael B. Brutman
d0b9e94faf powerpc: PPCA2/A2 optimized memcpy function 2010-10-24 21:47:33 -04:00
Ulrich Drepper
724da3d7f4 Revert "powerpc: PPCA2 optimized memcpy function"
This reverts commit 44f91d3884.

Conflicts:

	ChangeLog
2010-09-27 23:02:55 -04:00
Michael B. Brutman
44f91d3884 powerpc: PPCA2 optimized memcpy function 2010-09-21 14:06:46 -07:00
Alan Modra
bebff237c5 PowerPC64 ABI fixes 2010-08-12 09:19:19 -07:00
Luis Machado
f47c9a11ad powerpc: Re-work the Implies structure
This patch tries to organize the implies files for ppc, since there are
a number of processors and most of them are compatible with each other
(backwards compatible).

Having in mind that we start the search for processor-specific files in
the sysdeps/unix/sysv/linux tree
(sysdeps/unix/sysv/linux/powerpc/powerpc[32|64]/[processor]/fpu to be
exact), we would like to grab any linux-specific code from that tree
prior to going through the other tree (sysdeps/powerpc/...).

For that, i removed the Implies files that were originally inside the
fpu directories and placed then in the non-fpu directories (still inside
the unix/sysv/linux tree). If no processor-specific/linux-specific files
could be found, we "imply" the other tree's (sysdeps/powerpc/...) fpu
directory for that specific processor AND also the non-fpu directory for
that same tree.

If, again, no processor-specific code is found, we read another Implies
file that will point to the most compatible processor that we should
grab code from, and so on, until we reach the power4 processor.

So, in summary, the Implies files will live inside these directories
now:

* sysdeps/unix/sysv/linux/powerpc/powerpc[32|64]/[processor]
* sysdeps/powerpc/powerpc[32|64]/[processor]

Practical example of the order we will use to pick power6-specific code
with the new structure.

sysdeps/unix/sysv/linux/powerpc/powerpc[32|64]/power6/fpu ->
sysdeps/unix/sysv/linux/powerpc/powerpc[32|64]/power6 ->
sysdeps/powerpc/powerpc[32|64]/power6/fpu ->
sysdeps/powerpc/powerpc[32|64]/power6 ->
sysdeps/powerpc/powerpc[32|64]/power5+/fpu ->
sysdeps/powerpc/powerpc[32|64]/power5+ ->
sysdeps/powerpc/powerpc[32|64]/power5/fpu ->
sysdeps/powerpc/powerpc[32|64]/power5 ->
sysdeps/powerpc/powerpc[32|64]/power4/fpu ->
sysdeps/powerpc/powerpc[32|64]/power4 (from here, it'll go to the
generic path as usual)
2010-06-30 09:57:38 -07:00
Luis Machado
61c9346ddc Fix POWER7 Implies 2010-02-10 07:15:01 -08:00
Ulrich Drepper
057edf90e0 memcpy for ppc/cell. 2010-01-18 12:40:29 -08:00
Jakub Jelinek
8ad81b316b Fix sync_file_range on ppc/ppc64.
I've noticed that sync_file_range is a stub on ppc/ppc64.
The kernel on these arches provides sync_file_range2 syscall with swapped
parameters.
The following completely untested patch ought to fix this.
2009-11-17 18:04:51 -08:00