[AArch64] Fix out of range branch from ioctl() and clone()

2013-05-12  Marcus Shawcroft  <marcus.shawcroft@linaro.org>

	* sysdeps/unix/sysv/linux/aarch64/clone.S (__clone):
	Do not call sycall_error directly with a confitional branch.

	* sysdeps/unix/sysv/linux/aarch64/ioctl.S (__ioctl):
	Do not call sycall_error directly with a confitional branch.
Convert TEST_c_c tests from code to data.
Convert TEST_fff_f tests from code to data.
Make _LIB_VERSION a weak symbol

That way it can live alongside _LIB_VERSION in libieee.a for
statically compiled programs.

Resolves #14582.
Use HP_TIMING for benchmarks if available

HP_TIMING uses native timestamping instructions if available, thus
greatly reducing the overhead of recording start and end times for
function calls.  For architectures that don't have HP_TIMING
available, we fall back to the clock_gettime bits.  One may also
override this by invoking the benchmark as follows:

  make USE_CLOCK_GETTIME=1 bench

and get the benchmark results using clock_gettime.  One has to do
`make bench-clean` to ensure that the benchmark programs are rebuilt.
Define decimal constant M_1_DIV_El in libm-test.inc

This patch replaces the 1.0 / M_El by the decimal constant M_1_DIV_El.
Consistently use TEST_fl_f in tests of scalbln.
Convert TEST_if_f tests from code to data.
Convert TEST_c_f tests from code to data.
Convert TEST_fi_f tests from code to data.
Convert TEST_fl_f tests from code to data.
ARM: Make multiarch memcpy always use NEON when compiler does
Add comments to vDSO hwcap loading process.

Loading of the vDSO pseudo-hwcap from the type 2 GNU note is
a rather arcane and poorly documented process. Given that I had
a chance to review this code today I thought I would add all
of the things I had to lookup to verify the validity of the
process.

With a single .note.GNU the vDSO can register up to 64 flags,
though in practice you are limited to 64 - _DL_FIRST_EXTRA
bits which on x86 is 12 bits.

The only use of this that I know of is in the Xen support
in Linux where they use the 1st bit to indicate "nosegneg".
I see "We use bit 1 to avoid bugs in some versions of glibc
when bit 0 is used; the choice is otherwise arbitrary.", but
no reference to a glibc bug anywhere. The code as-is should
support bit zero, so we still have that free for future use.

The kernel, glibc, and ld.so.cache must coordinate to ensure
that bit values don't go too high and are used consistently.

---

2013-05-13  Carlos O'Donell  <carlos@redhat.com>

	* elf/dl-hwcaps.c (_dl_important_hwcaps): Comment vDSO hwcap loading.
	* elf/ldconfig.c (is_hwcap_platform): Comment each hwcap check.
	(main): Comment "tls" pseudo-hwcap.
Convert TEST_f_f1 tests from code to data.
Convert TEST_fF_f1 tests from code to data.
Convert TEST_fI_f1 tests from code to data.
Fix function name in scalbln_test call to END.
Convert TEST_f_i tests from code to data.
Add test for setjmp / longjmp and floating-point state.
Stop ARM setjmp/longjmp saving/restoring fpscr (bug 14908).