Joseph Myers [Tue, 20 Nov 2012 00:56:29 +0000 (00:56 +0000)]
Fix warnings from aborting MIPS atomic macros.
Joseph Myers [Tue, 20 Nov 2012 00:05:23 +0000 (00:05 +0000)]
Fix more set-but-not-used warnings in _itowa.c.
Joseph Myers [Tue, 20 Nov 2012 00:04:45 +0000 (00:04 +0000)]
Fix __bswap_64 return type in generic bits/byteswap.h.
Joseph Myers [Tue, 20 Nov 2012 00:00:35 +0000 (00:00 +0000)]
Fix unused-variable warnings from MIPS RESOLVE_GOTSYM macro.
Pino Toscano [Mon, 19 Nov 2012 23:49:11 +0000 (00:49 +0100)]
Hurd: fixes for ptsname and ptsname_r
ptsname_r on failure returns the value that is also set as errno; furthermore,
add more checks to it:
- set errno and return it on __term_get_peername failure
- set errno to ERANGE other than returning it
- change the type of PEERNAME to string_t, and check its length with __strnlen
In ptsname:
- change the type of PEERNAME to string_t
- do not set errno manually, since ptsname_r has set it already
David S. Miller [Mon, 19 Nov 2012 23:26:52 +0000 (15:26 -0800)]
Fix spurious underflows in ldbl-128 atan implementation.
With help from Joseph Myers.
* sysdeps/ieee754/ldbl-128/s_atanl.c (__atanl): Handle tiny and
very large arguments properly.
* math/libm-test.inc (atan_test): New tests.
(atan2_test): New tests.
* sysdeps/sparc/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Update.
Joseph Myers [Mon, 19 Nov 2012 23:36:20 +0000 (23:36 +0000)]
Fix _POSIX_TZNAME_MAX for older POSIX (bug 14856).
Joseph Myers [Mon, 19 Nov 2012 23:08:27 +0000 (23:08 +0000)]
Fix unused variable warnings from MIPS syscall macros.
Joseph Myers [Mon, 19 Nov 2012 22:21:47 +0000 (22:21 +0000)]
conformtest: Clean up expectations for POSIX for more headers.
Joseph Myers [Mon, 19 Nov 2012 22:20:44 +0000 (22:20 +0000)]
conformtest: Clean up expectations for POSIX for various headers.
Joseph Myers [Mon, 19 Nov 2012 22:19:11 +0000 (22:19 +0000)]
conformtest: Fix miscellaneous expectations for XPG4.
Joseph Myers [Mon, 19 Nov 2012 22:17:58 +0000 (22:17 +0000)]
Define siginfo_t in signal.h for XPG4 (bug 14835).
Eagle Burkut [Mon, 19 Nov 2012 19:12:54 +0000 (20:12 +0100)]
Fix ug_CN
[BZ #13759]
* locales/ug_CN (LC_COLLATE, LC_TIME, LC_MESSAGES): Fix entries.
Pino Toscano [Mon, 19 Nov 2012 19:01:00 +0000 (20:01 +0100)]
muntrace: reset file and hooks before finalizing the stream
fclose will call free, invoking its hook, then fprintf which would indirectly
try to allocate a buffer, and this can cause malloc to be used (thus its hook
to be invoked) if libio uses malloc instead of mmap; given any malloc/free hook
locks the internal lock, this leads to a deadlock.
To prevent this hook roundtrip at muntrace, first unset MALLSTREAM and the
hooks, and only after that close the trace file.
Pino Toscano [Mon, 19 Nov 2012 18:34:07 +0000 (19:34 +0100)]
Hurd: implement syncfs
Marcus Shawcroft [Mon, 19 Nov 2012 15:15:18 +0000 (15:15 +0000)]
AArch64: Adding optimized maths functions.
Siddhesh Poyarekar [Mon, 19 Nov 2012 07:31:43 +0000 (13:01 +0530)]
Return EAI_SYSTEM if we're out of file descriptors
Resolves BZ #14719.
Peng Haitao [Mon, 19 Nov 2012 06:53:07 +0000 (01:53 -0500)]
bindresvport() uses two static variables port and startport which are not
protected. It is not safe when in multithread circumstance.
bindresvport() select a port number from the range 512 to 1023, when in
multithread circumstance, the port may be 1024. So the static variables will be
protected.
Signed-off-by: Peng Haitao <penght@cn.fujitsu.com>
Reviewed-by: Carlos O'Donell <carlos@systemhalted.org>
Steve McIntyre [Mon, 19 Nov 2012 06:22:33 +0000 (01:22 -0500)]
Add ldconfig cache tag handling for AArch64
* sysdeps/generic/ldconfig.h (FLAG_AARCH64_LIB64): New macro.
* elf/cache.c (print_entry): Print ",AArch64" for
FLAG_AARCH64_LIB64.
Signed-off-by: Steve McIntyre <steve.mcintyre@linaro.org>
Reviewed-by: Carlos O'Donell <carlos@systemhalted.org>
Steve McIntyre [Mon, 19 Nov 2012 06:12:53 +0000 (01:12 -0500)]
Add ldconfig cache tag handling for ARM hard-float ABI
* sysdeps/generic/ldconfig.h (FLAG_ARM_LIBHF): New macro.
* elf/cache.c (print_entry): Print ",hard-float" for
FLAG_ARM_LIBHF.
Signed-off-by: Steve McIntyre <steve.mcintyre@linaro.org>
Reviewed-by: Carlos O'Donell <carlos@systemhalted.org>
Carlos O'Donell [Mon, 19 Nov 2012 05:55:04 +0000 (00:55 -0500)]
hppa: Mark __pthread_once as a hidden def.
Carlos O'Donell [Mon, 19 Nov 2012 05:44:00 +0000 (00:44 -0500)]
hppa: Fix fesetenv for FE_DFL_ENV.
Switching back to FE_DFL_ENV should reset the FPU to the state
as it was at the start of the program.
Carlos O'Donell [Mon, 19 Nov 2012 05:40:05 +0000 (00:40 -0500)]
hppa: Implement get-rounding-mode.h
Implement get_rounding_mode using the new fpu_control.h
support. Use get_rounding_mode from fegetround.
Carlos O'Donell [Mon, 19 Nov 2012 05:37:56 +0000 (00:37 -0500)]
hppa: Implement fpu_control.h.
The HP-PARISC processor has full IEEE-754 support
and we implement all of fpu_control.h.
Carlos O'Donell [Mon, 19 Nov 2012 05:36:08 +0000 (00:36 -0500)]
hppa: Add ____longjmp_check C implementation.
Carlos O'Donell [Mon, 19 Nov 2012 05:28:30 +0000 (00:28 -0500)]
hppa: Implement __longjmp_chk.
Implement longjmp and the chk variant in C.
David S. Miller [Sun, 18 Nov 2012 20:33:53 +0000 (12:33 -0800)]
Correct tinyness handling in long-double and float y0/y1.
With help from Joseph Myers.
* sysdeps/ieee754/flt-32/e_j0f.c (__ieee754_y0f): Adjust tinyness
cutoff to 2**-13.
* sysdeps/ieee754/flt-32/e_j1f.c (__ieee754_y1f): Adjust tinyness
cutoff to 2**-25.
* sysdeps/ieee754/ldbl-128/e_j0l.c (U0): New constant.
( __ieee754_y0l): Avoid arithmetic underflow when 'x' is very
small.
* sysdeps/ieee754/ldbl-128/e_j1l.c (__ieee754_y1l): Likewise.
* math/libm-test.inc (y0_test): New tests.
(y1_test): New tests.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Update.
* sysdeps/sparc/fpu/libm-test-ulps: Update.
Andreas Schwab [Tue, 30 Oct 2012 20:51:58 +0000 (21:51 +0100)]
Fix ifunc configure check for 64-bit targets
Andreas Schwab [Sun, 18 Nov 2012 00:07:22 +0000 (01:07 +0100)]
m68k: fix cancellable syscall with 5 or 6 arguments
Andreas Schwab [Thu, 15 Nov 2012 18:34:31 +0000 (19:34 +0100)]
m68k: define ELF_MACHINE_RUNTIME_FIXUP_PARAMS
Andreas Schwab [Tue, 6 Nov 2012 21:34:29 +0000 (22:34 +0100)]
m68k: update libm test ULPs
Andreas Schwab [Tue, 6 Nov 2012 20:21:53 +0000 (21:21 +0100)]
m68k: define lll_futex_timed_wait_bitset
David S. Miller [Sat, 17 Nov 2012 05:39:54 +0000 (21:39 -0800)]
Fix BZ #14811 for ldbl-128 too.
[BZ #14811]
* sysdeps/ieee754/ldbl-128/e_powl.c (__ieee754_powl): Saturate
nonzero exponents with absolute value below 0x1p-128 to +/-
0x1p-128.
Joseph Myers [Sat, 17 Nov 2012 03:43:53 +0000 (03:43 +0000)]
Include string.h in sysdeps/unix/sysv/linux/fxstatat.c.
Joseph Myers [Sat, 17 Nov 2012 03:35:27 +0000 (03:35 +0000)]
Fix "set but not used" warnings from MIPS bits/atomic.h.
Joseph Myers [Sat, 17 Nov 2012 01:51:20 +0000 (01:51 +0000)]
Remove ELF_MACHINE_NO_PLT conditionals.
Joseph Myers [Sat, 17 Nov 2012 01:49:19 +0000 (01:49 +0000)]
Generate /usr/libexec/getconf files when cross-compiling.
Pino Toscano [Fri, 16 Nov 2012 17:55:19 +0000 (18:55 +0100)]
check-local-headers: ignore Mach kernel headers
Andrej Lajovic [Fri, 16 Nov 2012 17:48:36 +0000 (18:48 +0100)]
iconv: Fix -c
2012-11-16 Andrej Lajovic <natrij@gmail.com>
[BZ #14672]
* iconv/iconv_prog.c (main): Fix -c handling of '/'.
David S. Miller [Fri, 16 Nov 2012 17:31:38 +0000 (09:31 -0800)]
Don't generate underflow for very small values in log1pl.
* sysdeps/ieee754/ldbl-128/s_log1pl.c (__log1pl): If xm1 is
smaller than LDBL_EPSILON/2.0L, just return xm1.
H.J. Lu [Fri, 16 Nov 2012 15:40:38 +0000 (07:40 -0800)]
Set constructor/destructor priority to 1000
Andreas Jaeger [Fri, 16 Nov 2012 14:22:11 +0000 (15:22 +0100)]
Add szl_PL
[BZ #14368]
* locales/szl_PL: New Silesian Language Locale for Poland.
Contributed by Przemyslaw Buczkowski <przemub@yahoo.pl>.
* localedata/SUPPORTED (SUPPORTED-LOCALES): Add szl_PL.
Siddhesh Poyarekar [Fri, 16 Nov 2012 13:43:11 +0000 (19:13 +0530)]
printf should return negative value on error
[BZ #11741]
Fixed bug where printf and family may return a spurious success when
printing padded formats.
Siddhesh Poyarekar [Fri, 16 Nov 2012 13:26:31 +0000 (18:56 +0530)]
Note in a comment that references to C++ bits are obsolete
libio is not used by libstdc++ anymore, but there are references to
streambuf are all over.
Andreas Jaeger [Fri, 16 Nov 2012 08:39:10 +0000 (09:39 +0100)]
Add ayc_PE locale
[BZ # 14828]
* locales/ayc_PE: Add Aymara locale for Peru
contributed by Chris Leonard <cjl@sugarlabs.org> and
Amos Batto <amosbatto@yahoo.com>.
* SUPPORTED (SUPPORTED-LOCALES): Add ayc_PE.
Andreas Jaeger [Fri, 16 Nov 2012 08:36:48 +0000 (09:36 +0100)]
Add nhn_MX locale
[BZ # 14501]
* locales/nhn_MX: Add Central Nahuatl locale for Mexico,
contributed by Jorge Becerril <jrbecster@gmail.com>.
* SUPPORTED (SUPPORTED-LOCALES): Add nhn_MX.
Chris Leonard [Thu, 15 Nov 2012 18:35:15 +0000 (19:35 +0100)]
Correct L10n of country-name and lang-name in km_KH
[BZ #13952]
* locales/km_KH: Correct country-name and lang-name.
Marcus Shawcroft [Thu, 15 Nov 2012 18:02:03 +0000 (18:02 +0000)]
Fix buffer overflow in libm-test.inc check_complex()
Andreas Jaeger [Thu, 15 Nov 2012 10:37:17 +0000 (11:37 +0100)]
[BZ #13603, 13604, 13698] Three new locales
[BZ #13603]
[BZ #13604]
[BZ #13698]
* locales/doi_IN: New file, contributed by Pravin Satpute
<psatpute@redhat.com> and Sushil Badyal <badyalsk@gmail.com>.
* locales/mni_IN: New file, contributed by Pravin Satpute
<psatpute@redhat.com> and Rebika Devi <rebika_srd@rediffmail.com>.
* locales/sat_IN: New file, contributed by Pravin Satpute
<psatpute@redhat.com> and Thakur Prasad Murmu <tp_murmu@yahoo.com>.
* SUPPORTED (SUPPORTED-LOCALES): Add doi_IN, mni_IN, sat_IN.
Chris Leonard [Thu, 15 Nov 2012 08:20:20 +0000 (09:20 +0100)]
2012-11-15 Chris Leonard <cjlhomeaddress@gmail.com>
[BZ #13950]
* locales/bo_CN (LC_NAME, LC_ADDRESS): Remove some FIXMEs with
proper content, disable others.
* locales/bo_IN (LC_NAME, LC_ADDRESS): Likewise.
Joseph Myers [Thu, 15 Nov 2012 01:01:33 +0000 (01:01 +0000)]
Update --version copyright dates for memusagestat and pcprofiledump.
H.J. Lu [Wed, 14 Nov 2012 23:44:40 +0000 (15:44 -0800)]
Skip audit if l_reloc_result is NULL
Marcus Shawcroft [Wed, 14 Nov 2012 23:06:40 +0000 (23:06 +0000)]
Fix thumb2 build breakage in libcrypt
Marcus Shawcroft [Wed, 14 Nov 2012 12:35:10 +0000 (12:35 +0000)]
Adding missing -fexception CFLAGS
David S. Miller [Mon, 12 Nov 2012 23:17:31 +0000 (15:17 -0800)]
Add support for sparc cryptographic hash opcodes.
* crypt/Makefile: Move test targets after toplevel Rules
inclusion. Grab any necessary sysdep routines when linking.
* crypt/md5.c (md5_process_block): Remove define, we will always
name it __md5_process_block.
(md5_finish_ctx): Update md5_process_block call.
(md5_stream): Likewise.
(md5_process_bytes): Likewise.
(md5_process_block): Rename to __md5_process_block and move to ...
* crypt/md5-block.c: ... here.
* crypt/sha256.c (sha256_process_block): Move to ...
* crypt/sha256-block.c: ... here.
* crypt/sha512.c (sha512_process_block): Move to ...
* crypt/sha512-block.c: ... here.
* locale/Makefile (CFLAGS-md5.c): Define to add crypt/ to include
path.
* sysdeps/sparc/sparc-ifunc.c (sparc_libc_ifunc): Define.
* sysdeps/sparc/sparc64/multiarch/Makefile
(libcrypt-sysdep_routines): Add crypto assembler sysdeps when in
crypt subdir.
(localedef-aux): Add md5 crypto assembler when in locale subdir.
* sysdeps/sparc/sparc32/sparcv9/multiarch/Makefile: Mirror sparc64
multiarch changes.
* sysdeps/sparc/sparc64/multiarch/md5-block.c: New file.
* sysdeps/sparc/sparc64/multiarch/md5-crop.S: New file.
* sysdeps/sparc/sparc64/multiarch/sha256-block.c: New file.
* sysdeps/sparc/sparc64/multiarch/sha256-crop.S: New file.
* sysdeps/sparc/sparc64/multiarch/sha512-block.c: New file.
* sysdeps/sparc/sparc64/multiarch/sha512-crop.S: New file.
* sysdeps/sparc/sparc32/sparcv9/multiarch/md5-block.c: New file.
* sysdeps/sparc/sparc32/sparcv9/multiarch/md5-crop.S: New file.
* sysdeps/sparc/sparc32/sparcv9/multiarch/sha256-block.c: New
file.
* sysdeps/sparc/sparc32/sparcv9/multiarch/sha256-crop.S: New file.
* sysdeps/sparc/sparc32/sparcv9/multiarch/sha512-block.c: New
file.
* sysdeps/sparc/sparc32/sparcv9/multiarch/sha512-crop.S: New file.
Joseph Myers [Tue, 13 Nov 2012 22:25:45 +0000 (22:25 +0000)]
Update tzcode from upstream git and support --with-bugurl for it.
Joseph Myers [Tue, 13 Nov 2012 18:11:49 +0000 (18:11 +0000)]
Define IPPORT_RESERVED in netdb.h for XPG4 and UNIX98 (bug 14838).
Marcus Shawcroft [Tue, 13 Nov 2012 17:01:05 +0000 (17:01 +0000)]
Fix missing truncation UNDERFLOW.
David S. Miller [Sun, 11 Nov 2012 23:46:01 +0000 (15:46 -0800)]
Fix check-localplt regressions on sparc.
* sysdeps/unix/sysv/linux/sparc/sparc64/get_clockfreq.c: Include
inttypes.h
(__get_clockfreq_via_proc_openprom): Use __open, __read, and
__close rather than their public counterparts.
Marcus Shawcroft [Fri, 9 Nov 2012 23:18:49 +0000 (23:18 +0000)]
NEWS entry for AArch64 port.
Joseph Myers [Sat, 10 Nov 2012 01:13:39 +0000 (01:13 +0000)]
conformtest: Fix miscellaneous UNIX98 expectations.
Joseph Myers [Sat, 10 Nov 2012 00:32:21 +0000 (00:32 +0000)]
Fix typo in ChangeLog.
Joseph Myers [Sat, 10 Nov 2012 00:31:20 +0000 (00:31 +0000)]
Use glibc version information in zic and zdump.
Joseph Myers [Fri, 9 Nov 2012 23:42:31 +0000 (23:42 +0000)]
Use unmodified tzselect.ksh in glibc.
Joseph Myers [Fri, 9 Nov 2012 23:01:03 +0000 (23:01 +0000)]
Remove $(format-me) and fix indentation.
Joseph Myers [Fri, 9 Nov 2012 22:13:45 +0000 (22:13 +0000)]
Support --with-pkgversion and --with-bugurl.
Joseph Myers [Fri, 9 Nov 2012 21:20:57 +0000 (21:20 +0000)]
Update tzcode to 2012i.
Joseph Myers [Fri, 9 Nov 2012 21:16:58 +0000 (21:16 +0000)]
Declare ecvt, fcvt, gcvt, mktemp in stdlib.h for XOPEN2K (bug 14824).
Joseph Myers [Fri, 9 Nov 2012 18:21:59 +0000 (18:21 +0000)]
Fix sunrpc 64-bit (especially big-endian) issues (bug 14821).
Marcus Shawcroft [Fri, 9 Nov 2012 17:53:51 +0000 (17:53 +0000)]
AArch64 Port
Andreas Jaeger [Fri, 9 Nov 2012 15:41:38 +0000 (16:41 +0100)]
PowerPC: Use <bits/fcntl-linux.h>
* sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h: Remove all
definitions and declarations that are provided by
<bits/fcntl-linux.h> and include <bits/fcntl-linux.h>.
Andreas Krebbel [Thu, 8 Nov 2012 08:53:00 +0000 (09:53 +0100)]
S/390: Add hwcap value for transactional execution.
Marcus Shawcroft [Thu, 8 Nov 2012 08:19:30 +0000 (08:19 +0000)]
Adjust comment above AArch64 relocs.
David S. Miller [Thu, 8 Nov 2012 05:00:09 +0000 (21:00 -0800)]
Fix NULL ucontext->uc_link handling on sparc64.
* sysdeps/unix/sysv/linux/sparc/sparc64/__start_context.S: New file.
* sysdeps/unix/sysv/linux/sparc/sparc64/makecontext.c
(__start_context): Declare.
(__makecontext_ret): Delete.
(__makecontext): Hook up __start_context instead of
__makecontext_ret.
* sysdeps/unix/sysv/linux/sparc/sparc64/Makefile
(sysdep_routines): Add __start_context when in stdlib.
Joseph Myers [Thu, 8 Nov 2012 00:01:46 +0000 (00:01 +0000)]
Use configured $(NM), $(OBJDUMP), $(READELF) in tst-xmmymm.sh.
H.J. Lu [Fri, 2 Nov 2012 08:15:07 +0000 (01:15 -0700)]
Also run tst-xmmymm.sh on i386 ld.so
Joseph Myers [Wed, 7 Nov 2012 19:42:20 +0000 (19:42 +0000)]
conformtest: Fix pthreads expectations for XPG3 / XPG4 / UNIX98.
Joseph Myers [Wed, 7 Nov 2012 19:41:38 +0000 (19:41 +0000)]
conformtest: Fix setenv / unsetenv expectations.
Joseph Myers [Wed, 7 Nov 2012 19:41:03 +0000 (19:41 +0000)]
conformtest: Fix isnan function return type.
Joseph Myers [Wed, 7 Nov 2012 19:38:39 +0000 (19:38 +0000)]
conformtest: Fix sys/mman.h expectations for UNIX98.
Joseph Myers [Wed, 7 Nov 2012 19:37:52 +0000 (19:37 +0000)]
conformtest: Only expect mknodat for XOPEN2K8.
Joseph Myers [Wed, 7 Nov 2012 19:36:48 +0000 (19:36 +0000)]
conformtest: Clean up / correct / expand C99 and C11 expectations.
Jeff Law [Wed, 7 Nov 2012 18:58:37 +0000 (11:58 -0700)]
2012-11-07 Andreas Jaeger <aj@suse.de>
[BZ #14809]
* sysdeps/unix/sysv/linux/sys/sysctl.h (_UAPI_LINUX_KERNEL_H)
(_UAPI_LINUX_TYPES_H): Starting with Linux 3.7, the include header
guards are changed. Only define if not yet defined, #undef back
after including linux/sysctl.h if defined here.
Roland McGrath [Wed, 7 Nov 2012 18:22:28 +0000 (10:22 -0800)]
NEWS update for closing 14815.
Roland McGrath [Wed, 7 Nov 2012 18:21:59 +0000 (10:21 -0800)]
BZ#14815: Manual typo fix.
Chris Metcalf [Wed, 7 Nov 2012 18:19:54 +0000 (13:19 -0500)]
Update language in ChangeLog.tile.
Dmitry V. Levin [Tue, 28 Aug 2012 22:04:10 +0000 (22:04 +0000)]
locales/ru_RU: fix abbreviated month names
[BZ#14807]
* locales/ru_RU (abmon): Change back from genitive to nominative,
apply fixed three-letter abbreviation form, remove trailing dots.
Dmitry V. Levin [Tue, 28 Aug 2012 21:59:07 +0000 (21:59 +0000)]
locales/ru_RU: fix abbreviated day names
[BZ#10873]
* locales/ru_RU (abday): Remove trailing dots.
Marcus Shawcroft [Wed, 7 Nov 2012 13:32:08 +0000 (13:32 +0000)]
Adding AArch64 support to elf/elf.h
Joseph Myers [Wed, 7 Nov 2012 13:03:31 +0000 (13:03 +0000)]
Fix spurious underflows from pow with results close to 1 (bug 14811).
Andreas Krebbel [Wed, 7 Nov 2012 07:44:35 +0000 (08:44 +0100)]
S/390: Sync AUXV capabilities and archs with kernel
Joseph Myers [Wed, 7 Nov 2012 04:05:12 +0000 (04:05 +0000)]
conformtest: Fix typo in CLK_TCK condition.
Chris Metcalf [Wed, 7 Nov 2012 03:19:31 +0000 (22:19 -0500)]
tile: use memcpy in memmove when possible
Maxim Kuvyrkov [Wed, 7 Nov 2012 01:47:55 +0000 (17:47 -0800)]
Use memcpy in memmove when possible
Andreas Jaeger [Tue, 6 Nov 2012 19:11:07 +0000 (20:11 +0100)]
Update from translation team for Esperanto
Chris Metcalf [Tue, 6 Nov 2012 18:10:19 +0000 (13:10 -0500)]
Bump timeouts on some new nptl tests to support tilepro.
Chris Metcalf [Tue, 6 Nov 2012 14:43:58 +0000 (09:43 -0500)]
tile: use atomic op to unlock pthread_spinlock_t
Atomic ops are issued directly from the core, rather than
potentially sitting in the write buffer, so can improve the
performance of other waiters. In addition, if we didn't end
up pulling a copy of the cache line where the lock is into cache,
by using an atomic op we don't have to acquire the cache line
before we can unlock.
Chris Metcalf [Mon, 5 Nov 2012 16:36:09 +0000 (11:36 -0500)]
Make ieee754 fma tolerate architectures without exception support.
Chris Metcalf [Mon, 5 Nov 2012 15:43:40 +0000 (10:43 -0500)]
tile: support very large shared objects
With gcc 4.8 tilegx has support for -mcmodel=large, to tolerate very
large shared objects. This option changes the compiler output to
not include direct jump instructions, which have a range of only
2^30, i.e +/- 512MB. Instead the compiler marshalls the target PCs
into registers and then uses jump- or call-to-register instructions.
For glibc, the upshot is that we need to arrange for a few functions
to tolerate the possibility of a large range between the PC and
the target. In particular, the crti.S and start.S code needs
to be able to reach from .init to the PLT, as does gmon-start.c.
The elf-init.c code has the reverse problem, needing to call from
libc_nonshared.a (linked at the end of shared objects) back to the
_init section at the beginning.
No other functions in *_nonshared.a need to be built this way, as
they only call the PLT (or potentially each other), but all of that
code is linked at the very end of the shared object.
We don't build the standard -static archives with this option as the
performance cost is high enough and the use case is rare enough that
it doesn't seem worthwhile. Instead, we would encourage developers
who need the -static model with huge executables to build a private
copy of glibc and configure it with -mcmodel=large.
Note that libc.so et al don't need any changes; the only changes
are for code that is statically linked into user code built with
-mcmodel=large.
For the assembly code, I just rewrote it so that it unconditionally
uses the large model. To be able to pass -mcmodel=large to
csu/elf-init.c and csu/gmon-start.c, I need to check to see if the
compiler supports that flag, since gcc 4.7 doesn't; I added the
support by creating a small Makefile fragment that just runs the
compiler to check.
Chris Metcalf [Fri, 2 Nov 2012 17:49:42 +0000 (13:49 -0400)]
tile: improve simulator notification for relative paths in dlopen
Normally, the simulator is notified of absolute pathnames by the
_dl_load_hook hook. However, when a relative pathname is used, the
simulator may not know that the relative path matches a path that
it could figure out in the file system that it has access to.
Instead we provide a simplified version of the realpath function
so we can pass a plausible absolute pathname to the simulator.
Since we're now doing more work at object load time, we also add
a guard so we do no work at all if we're not running on the simulator.