Commit Graph

7858 Commits

Author SHA1 Message Date
David S. Miller bae8e7f5ed Add a minor 'cas' atomic optimization on sparc.
* sysdeps/sparc/sparc32/sparcv9/bits/atomic.h
	(__arch_compare_and_exchange_val_32_acq): Use %g0 as second
	argument of CAS if possible.
	* sysdeps/sparc/sparc64/bits/atomic.h
	(__arch_compare_and_exchange_val_32_acq): Likewise.
	(__arch_compare_and_exchange_val_64_acq): Likewise.
2013-01-23 11:27:24 -08:00
Pino Toscano 67b3f58c83 ulimit: remove buggy bsd implementation
The bsd implementation of ulimit produces wrong return values, so remove it
in favour of the posix implementation.

The only regression for non-Linux implementations using bsd sysdeps and not
providing an own ulimit is that the __UL_GETMAXBRK case (which is non-standard)
is left unimplemented (giving EINVAL).
2013-01-23 17:29:35 +01:00
Pino Toscano 92a601b883 ulimit: include <limits.h> 2013-01-23 17:27:45 +01:00
Pino Toscano 9cbbc4aebe ulimit: move linux implementation as posix
The linux implementation of ulimit works correctly and has nothing specific
to Linux, so move it as general posix implementation.
2013-01-23 17:25:53 +01:00
Andreas Krebbel bc101e2652 S/390: Fix setjmp/longjmp FPR save/restore 2013-01-23 10:00:24 +01:00
Joseph Myers 052aff9578 Make bits/wchar.h correct for all architectures (bug 15036). 2013-01-23 00:42:51 +00:00
David S. Miller 7c1e01aabc Use libgcc unwinder for sparc backtraces, if available.
* sysdeps/sparc/backtrace.c: New file.
	* sysdeps/sparc/sparc32/backtrace.h: New file.
	* sysdeps/sparc/sparc32/sparcv9/backtrace.h: New file.
	* sysdeps/sparc/sparc64/backtrace.h: New file.
	* sysdeps/sparc/sparc64/backtrace.c: Delete.
	* sysdeps/sparc/Makefile (CFLAGS-backtrace.c): Add
	-funwind-tables.
2013-01-21 14:15:30 -08:00
Andreas Schwab ed689c2f74 Remove use of mpa2.h 2013-01-20 02:05:53 +01: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
Siddhesh Poyarekar 0b57daebab Fix application of the exception mask
Fixes BZ #14496.
2013-01-18 14:16:25 +05:30
Siddhesh Poyarekar caa99d06e7 Simplify calculation of 2^-m in __mpexp 2013-01-18 11:18:13 +05:30
Siddhesh Poyarekar d3b9ea6148 Remove unnecessary multiplication with RADIXI 2013-01-18 11:14:34 +05:30
David S. Miller 1dbaee3c12 Update sparc ULPs.
* sysdeps/sparc/fpu/libm-test-ulps: Update.
2013-01-17 20:45:04 -08:00
Joseph Myers 728d7b43fc Fix cacos real-part inaccuracy for result real part near 0 (bug 15023). 2013-01-17 20:25:51 +00:00
Pino Toscano 2a26ef3a01 Add HAVE_MREMAP for mremap usage
Introduce (only on Linux) and use a HAVE_MREMAP symbol to advertize mremap
availability.

Move the malloc-sysdep.h include from arena.c to malloc.c, since what is
provided by malloc-sysdep.h is needed earlier in malloc.c, before the inclusion
of arena.c.
2013-01-17 21:08:12 +01:00
Siddhesh Poyarekar a897655d7b Fix header comment 2013-01-17 15:05:22 +05:30
H.J. Lu 22676eafed Implement x86 SIZE32/SIZE64 relocations 2013-01-16 20:31:03 -08:00
Joseph Myers 59981e9b0d Adapt installed powerpc headers better for soft-float / no-FPRs. 2013-01-17 02:08:51 +00:00
Siddhesh Poyarekar f93a8d1569 Consolidate constant defines into mpa.h 2013-01-16 16:06:48 +05:30
Siddhesh Poyarekar dd930cc571 Fix the value of TWO 2013-01-16 14:53:53 +05:30
David S. Miller 1aa6176780 Optimize trunc{,f} on sparc.
* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/Makefile: Add vis3
	trunc{,f} to libm-sysdep_routes.
	* sysdeps/sparc/sparc64/fpu/multiarch/Makefile: Likewise.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_trunc-vis3.S: New
	file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_trunc.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_truncf-vis3.S: New
	file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_truncf.S: New
	file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/s_trunc.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/s_truncf.S: New file.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_trunc-vis3.S: New file.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_trunc.S: New file.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_truncf-vis3.S: New file.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_truncf.S: New file.
	* sysdeps/sparc/sparc64/fpu/s_trunc.S: New file.
	* sysdeps/sparc/sparc64/fpu/s_truncf.S: New file.
2013-01-16 00:00:54 -08:00
David S. Miller c42d5e9862 Optimize nearbyint{,f} on sparc.
* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/Makefile: Add vis3
	nearbyint{,f} to libm-sysdep_routes.
	* sysdeps/sparc/sparc64/fpu/multiarch/Makefile: Likewise.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyint-vis3.S:
	New file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyint.S: New
	file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyintf-vis3.S:
	New file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyintf.S: New
	file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/s_nearbyint.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/s_nearbyintf.S: New file.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyint-vis3.S: New
	file.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyint.S: New file.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyintf-vis3.S: New
	file.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_nearbyintf.S: New file.
	* sysdeps/sparc/sparc64/fpu/s_nearbyint.S: New file.
	* sysdeps/sparc/sparc64/fpu/s_nearbyintf.S: New file.
2013-01-15 20:59:54 -08:00
David S. Miller 438ebba294 Use libc_fe*() in 32-bit nearbyint()
* sysdeps/ieee754/dbl-64/s_nearbyint.c (__nearbyint): Use
	libc_feholdexcept and libc_fesetenv.
2013-01-15 20:32:13 -08:00
Mike Frysinger 357679d2fc scsi/sg.h: include stddef.h for size_t
This header uses size_t but doesn't include stddef.h for it.  So when
packages happen to include this before any header that defines size_t,
they get a build failure.

Reviewed-by: Carlos O'Donell <codonell@redhat.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2013-01-15 12:56:21 -05:00
David S. Miller 8b954ab9b8 Optimize sparc {ceil,floor}{,f} using vis2 'siam' instruction.
* sysdeps/sparc/sparc-ifunc.h (SPARC_ASM_IFUNC2): New macro.
	(SPARC_ASM_VIS2_IFUNC): Likewise.
	(SPARC_ASM_VIS3_VIS2_IFUNC): Likewise.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_ceil-vis3.S: Make
	use of 'siam' instruction.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_ceilf-vis3.S:
	Likewise.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_floor-vis3.S:
	Likewise.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_floorf-vis3.S:
	Likewise.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_ceil-vis3.S: Likewise.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_ceilf-vis3.S: Likewise.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_floor-vis3.S: Likewise.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_floorf-vis3.S: Likewise.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_ceil-vis2.S: New
	file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_ceilf-vis2.S: New
	file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_floor-vis2.S: New
	file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_floorf-vis2.S: New
	file.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_ceil-vis2.S: New file.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_ceilf-vis2.S: New file.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_floor-vis2.S: New file.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_floorf-vis2.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_ceil.S: Hook in
	new VIS2 routines.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_ceilf.S: Likewise.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_floor.S: Likewise.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_floorf.S:
	Likewise.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_ceil.S: Likewise.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_ceilf.S: Likewise.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_floor.S: Likewise.
	* sysdeps/sparc/sparc64/fpu/multiarch/s_floorf.S: Likewise.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/Makefile: Add new VIS2
	routines to libm-sysdep_routines.
	* sysdeps/sparc/sparc64/fpu/multiarch/Makefile: Likewise.
2013-01-14 21:47:29 -08:00
David S. Miller 65a82e3dd5 Optimize fdim/fdimf on sparc.
* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/Makefile: Add vis3
	fdim/fdimf to libm-sysdep_routines.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim-vis3.S: New
	file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf-vis3.S: New
	file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/s_fdim.S: New file.
	* sysdeps/sparc/sparc32/sparcv9/fpu/s_fdimf.S: New file.
	* sysdeps/sparc/sparc32/fpu/s_fdim.S: New file.
	* sysdeps/sparc/sparc32/fpu/s_fdimf.S: New file.
	* sysdeps/sparc/sparc64/fpu/s_fdim.S: New file.
	* sysdeps/sparc/sparc64/fpu/s_fdimf.S: New file.
2013-01-14 18:21:59 -08:00
Roland McGrath 66438c3fe1 Fix up log format, wrap a long line. 2013-01-14 09:57:33 -08:00
Siddhesh Poyarekar 2a91b5735a Minor tweak to mp multiplication
Add a local variable to remove extra copies to/from memory in the Z
array.
2013-01-14 21:53:48 +05:30
Siddhesh Poyarekar 1066a53440 Fix code formatting in mpa.c
This includes the overridden mpa.c in power4.
2013-01-14 21:53:43 +05:30
Siddhesh Poyarekar e34ab70550 Remove unnecessary local variable mptwo 2013-01-14 21:23:47 +05:30
David S. Miller 32fcb36dbf Add 64-bit VIS3 optimized GMP routines for sparc.
* math/Makefile: Recognize gmp-sysdep_routines.
	* sysdeps/sparc/sparc64/multiarch/Makefile: Add VIS3 optimized GMP routines
	to sysdeps.
	* sysdeps/sparc/sparc64/multiarch/add_n-vis3.S: New file.
	* sysdeps/sparc/sparc64/multiarch/add_n.S: New file.
	* sysdeps/sparc/sparc64/multiarch/addmul_1-vis3.S: New file.
	* sysdeps/sparc/sparc64/multiarch/addmul_1.S: New file.
	* sysdeps/sparc/sparc64/multiarch/mul_1-vis3.S: New file.
	* sysdeps/sparc/sparc64/multiarch/mul_1.S: New file.
	* sysdeps/sparc/sparc64/multiarch/sub_n-vis3.S: New file.
	* sysdeps/sparc/sparc64/multiarch/sub_n.S: New file.
	* sysdeps/sparc/sparc64/multiarch/submul_1-vis3.S: New file.
	* sysdeps/sparc/sparc64/multiarch/submul_1.S: New file.
2013-01-11 23:39:02 -08:00
David S. Miller 4ae4244d4b Redo sparc 32-bit V9 GMP optimizations with fixed copyrights.
* sysdeps/sparc/sparc32/sparcv9/mul_1.S: Properly optimize for 32-bit
	sparc V9 rather than using V8 code.
	* sysdeps/sparc/sparc32/sparcv9/addmul_1.S: Likewise.
	* sysdeps/sparc/sparc32/sparcv9/submul_1.S: Likewise.
2013-01-11 20:53:10 -08:00
David S. Miller 8794a96418 Adjust sparc for Roland's multiarch sysdep directory changes.
* sysdeps/sparc/sparc32/sparcv9/fpu/unix/sysv/linux/multiarch/Implies:
	Move to...
	* sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/fpu/multiarch/Implies:
	Here.
2013-01-11 18:04:10 -08:00
Joseph Myers 6a57d93130 Remove __GLIBC_HAVE_LONG_LONG. 2013-01-11 21:13:25 +00:00
Andreas Jaeger c6fe55cf60 Add MSG_FASTOPEN
[BZ #15003]
	* sysdeps/unix/sysv/linux/bits/socket.h (MSG_FASTOPEN): New
	value. Sync with Linux 3.7.
2013-01-11 11:53:13 +01:00
David S. Miller 9e6919c8ae Undo receive sparc 32-bit V9 gmp routine commit.
* sysdeps/sparc/sparc32/sparcv9/mul_1.S: Revert previous changes.
	* sysdeps/sparc/sparc32/sparcv9/addmul_1.S: Likewise.
	* sysdeps/sparc/sparc32/sparcv9/submul_1.S: Likewise.
2013-01-10 21:28:07 -08:00
David S. Miller b9de2dde53 Optimize sparc 32-bit V9 GMP multiply routines.
* sysdeps/sparc/sparc32/sparcv9/mul_1.S: Properly optimize for 32-bit
	sparc V9 rather than using V8 code.
	* sysdeps/sparc/sparc32/sparcv9/addmul_1.S: Likewise.
	* sysdeps/sparc/sparc32/sparcv9/submul_1.S: Likewise.
2013-01-10 16:15:32 -08:00
David S. Miller 5a47cc9cef Update sparc ULPs for new casin{,h} tests.
* sysdeps/sparc/fpu/libm-test-ulps: Update.
2013-01-10 14:46:18 -08:00
Joseph Myers 828beb132d Use __extension__ with long long in installed headers. 2013-01-10 20:19:45 +00:00
H.J. Lu 1a20cb20ff Correct _XXX_ILP32_OFFBIG for x32 2013-01-10 08:38:48 -08: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 d1cdd05138 Revert "sysdeps/ieee754/ldbl-128ibm/e_expl.c"
This reverts commit 35eb879e3b.
2013-01-10 10:44:05 +01:00
Siddhesh Poyarekar 7490eb81ae Fix formatting in mpexp.c 2013-01-10 14:59:18 +05:30
Siddhesh Poyarekar 751b85f795 Make __mpexp_twomm1 an array of doubles
Cleanup to get rid of the `number` muck which is not necessary here.
2013-01-10 14:59:18 +05:30
Andreas Schwab 35eb879e3b sysdeps/ieee754/ldbl-128ibm/e_expl.c 2013-01-10 09:59:58 +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
Andreas Schwab 988197f0cc Define flags for fallocate 2013-01-10 09:59:57 +01:00
David S. Miller e83d72988d Sync netinet/tcp.h with upstream Linux kernel.
[BZ# 15003]
	* sysdeps/gnu/netinet/tcp.h (TCP_COOKIE_TRANSACTIONS,
	TCP_THIN_LINEAR_TIMEOUTS, TCP_THIN_DUPACK, TCP_USER_TIMEOUT,
	TCP_REPAIR, TCP_REPAIR_QUEUE, TCP_QUEUE_SEQ, TCP_REPAIR_OPTIONS,
	TCP_FASTOPEN): Define.
	(tcp_repair_opt): New structure.
	(TCP_NO_QUEUE, TCP_RECV_QUEUE, TCP_SEND_QUEUE, TCP_QUEUES_NR): New
	enum values.
	(TCP_COOKIE_MIN, TCP_COOKIE_MAX, TCP_COOKIE_PAIR_SIZE,
	TCP_COOKIE_IN_ALWAYS, TCP_COOKIE_OUT_NEVER, TCP_S_DATA_IN,
	TCP_S_DATA_OUT, TCP_MSS_DEFAULT, TCP_MSS_DESIRED): Define.
	(tcp_cookie_transactions): New structure.
2013-01-09 23:04:32 -08:00
Anton Blanchard d5e0b9bd6e PowerPC: Change sched_getcpu to use vDSO getcpu instead of syscall. 2013-01-09 20:30:11 -06:00
Siddhesh Poyarekar b5792741c8 Update s390 ULPs 2013-01-09 21:03:06 +05:30