Commit Graph

557 Commits

Author SHA1 Message Date
Marcus Shawcroft
75eff3fe90 Relocate AArch64 from ports to libc.
This patch moves the AArch64 port to the main sysdeps hierarchy.  The
move is essentially:

  git mv ports/sysdeps/aarch64 sysdeps/aarch64
  git mv ports/sysdeps/unix/sysv/linux/aarch64 sysdeps/unix/sysv/linux/aarch64

The README is updated and I've updated ChangeLog.aarch64 along the
lines of the ARM move.  The AArch64 build has been tested to confirm
that there were no changes in objdump -dr output or the shared
objects.
2014-02-11 11:36:00 +00:00
Joseph Myers
2ad7600be7 Move mips from ports to libc.
I've moved the MIPS port from ports to the main sysdeps hierarchy.
Beyond the README update, the move of the files was simply

git mv ports/sysdeps/mips sysdeps/mips
git mv ports/sysdeps/unix/mips sysdeps/unix/mips
git mv ports/sysdeps/unix/sysv/linux/mips sysdeps/unix/sysv/linux/mips

and in addition to the ChangeLog entries here, I put a note at the top
of ports/ChangeLog.mips similar to those in other files.

Tested that disassembly of installed shared libraries for mips is the
same before and after this patch (except for ld.so where paths in
assertions are involved, as for arm).

	* sysdeps/mips: Move directory from ports/sysdeps/mips.
	* sysdeps/unix/mips: Move directory from ports/sysdeps/unix/mips.
	* sysdeps/unix/sysv/linux/mips: Move directory from
	ports/sysdeps/unix/sysv/linux/mips.
	* README: Update listing for mips-*-linux-gnu and
	mips64-*-linux-gnu.

	* sysdeps/mips: Move directory to ../sysdeps/mips.
	* sysdeps/unix/mips: Move directory to ../sysdeps/unix/mips.
	* sysdeps/unix/sysv/linux/mips: Move directory to
	../sysdeps/unix/sysv/linux/mips.
2014-02-10 23:30:21 +00:00
Joseph Myers
384b7b4309 Move shared umount.c from hppa to mips.
This patch prepares for moving mips from ports to libc by reversing
the #include ordering between mips and hppa.

Reversing #include ordering for umount.c is the conservative change in
preparation for moving the mips port.  In fact, it appears there are
several redundant umount.c files all implementing umount in terms of
the umount2 syscall; I've filed bug 16552 for eliminating that
redundancy properly.

Tested that disassembly of shared libraries for mips (o32, n32, n64)
is the same before and after this patch.

	* sysdeps/unix/sysv/linux/hppa/umount.c: Move to
	sysdeps/unix/sysv/linux/mips/mips64/umount.c and #include that
	file.

	* sysdeps/unix/sysv/linux/mips/mips64/umount.c: Move from
	sysdeps/unix/sysv/linux/hppa/umount.c instead of #include of that
	file.
2014-02-10 22:25:42 +00:00
Andreas Schwab
73588a7223 Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
Joseph Myers
87569616d2 Remove mips dependency on alpha.
This patch removes an unnecessary dependency of the mips port on alpha
by including a powerpc file directly where previously the mips file
included the alpha one which then included the powerpc one.

	* sysdeps/unix/sysv/linux/mips/ipc_priv.h: Directly include
	sysdeps/unix/sysv/linux/powerpc/ipc_priv.h instead of via
	sysdeps/unix/sysv/linux/alpha/ipc_priv.h.
2014-02-10 18:15:10 +00:00
Chris Metcalf
4372980f58 Move tilegx, tilepro, and linux-generic from ports to libc.
I've moved the TILE-Gx and TILEPro ports to the main sysdeps hierarchy,
along with the linux-generic ports infrastructure.  Beyond the README
update, the move was just

    git mv ports/sysdeps/tile sysdeps/tile
    git mv ports/sysdeps/unix/sysv/linux/tile \
      sysdeps/unix/sysv/linux/tile
    git mv ports/sysdeps/unix/sysv/linux/generic \
      sysdeps/unix/sysv/linux/generic

I updated the relevant ChangeLogs along the lines of the ARM move
in commit c6bfe5c4d7 and tested the 64-bit tilegx build to confirm that
there were no changes in "objdump -dr" output in the shared objects.
2014-02-10 11:04:39 -05:00
Joseph Myers
c6bfe5c4d7 Move arm from ports to libc.
I've moved the ARM port from ports to the main sysdeps hierarchy.
Beyond the README update, the move of the files was simply

git mv ports/sysdeps/arm sysdeps/arm
git mv ports/sysdeps/unix/arm sysdeps/unix/arm
git mv ports/sysdeps/unix/sysv/linux/arm sysdeps/unix/sysv/linux/arm

and in addition to the ChangeLog entries here, I put a note at the top
of ports/ChangeLog.arm similar to that at the top of
ChangeLog.powerpc.  There is deliberately no NEWS change, as I think
it makes the most sense to put in a general note above all ports
having moved if we can achieve that for 2.20.

Tested that disassembly of installed shared libraries for arm is the
same before and after this patch, except for data (not instructions)
in ld.so (there are assertions in sysdeps/arm/dl-machine.h, and the
path by which that file is found, and so by which it appears in the
assertion message, changes as a result of the move).

	* sysdeps/arm: Move directory from ports/sysdeps/arm.
	* sysdeps/unix/arm: Move directory from ports/sysdeps/unix/arm.
	* sysdeps/unix/sysv/linux/arm: Move directory from
	ports/sysdeps/unix/sysv/linux/arm.
	* README: Update listing for arm-*-linux-gnueabi.

ports/ChangeLog.arm:
	* sysdeps/arm: Move directory to ../sysdeps/arm.
	* sysdeps/unix/arm: Move directory to ../sysdeps.arm.
	* sysdeps/unix/sysv/linux/arm: Move directory to
	../sysdeps/unix/sysv/linux/arm.
2014-02-08 01:49:39 +00:00
Joseph Myers
852fa2dd3a Move shared sysdeps files from alpha to arm.
This patch prepares for moving arm from ports to libc (see overall
plan at <https://sourceware.org/ml/libc-alpha/2014-01/msg00373.html>
and discussion of ordering starting at
<https://sourceware.org/ml/libc-ports/2014-01/msg00071.html>) by
reversing the #include order between arm and alpha, so that arm can
move early as a test for the general pattern of moving architectures.
MicroBlaze files (that used the same alpha files) were made to include
the files directly from their new locations rather than indirecting.

Tested that disassembly of installed shared libraries for arm is the
same before and after this patch.

	* sysdeps/unix/sysv/linux/alpha/msgctl.c: Move to
	sysdeps/unix/sysv/linux/arm/msgctl.c and #include that file.
	* sysdeps/unix/sysv/linux/alpha/semctl.c: Move to
	sysdeps/unix/sysv/linux/arm/semctl.c and #include that file.
	* sysdeps/unix/sysv/linux/alpha/shmctl.c: Move to
	sysdeps/unix/sysv/linux/arm/shmctl.c and #include that file.

	* sysdeps/unix/sysv/linux/arm/msgctl.c: Move from
	sysdeps/unix/sysv/linux/alpha/msgctl.c instead of #include of that
	file.
	* sysdeps/unix/sysv/linux/arm/semctl.c: Move from
	sysdeps/unix/sysv/linux/alpha/semctl.c instead of #include of that
	file.
	* sysdeps/unix/sysv/linux/arm/shmctl.c: Move from
	sysdeps/unix/sysv/linux/alpha/shmctl.c instead of #include of that
	file.

	* sysdeps/unix/sysv/linux/microblaze/msgctl.c: Include
	sysdeps/unix/sysv/linux/arm/msgctl.c instead of
	sysdeps/unix/sysv/linux/alpha/msgctl.c.
	* sysdeps/unix/sysv/linux/microblaze/semctl.c: Include
	sysdeps/unix/sysv/linux/arm/semctl.c instead of
	sysdeps/unix/sysv/linux/alpha/semctl.c.
	* sysdeps/unix/sysv/linux/microblaze/shmctl.c: Include
	sysdeps/unix/sysv/linux/arm/shmctl.c instead of
	sysdeps/unix/sysv/linux/alpha/shmctl.c.
2014-02-08 01:17:28 +00:00
Joseph Myers
464263cc00 Remove am33 port.
This patch removes the am33 port (no other port #includes any files
from it), as previously discussed (see
<https://sourceware.org/ml/libc-ports/2014-01/msg00046.html>).
2014-02-08 00:16:57 +00:00
David Holsgrove
dbe7af29a5 Revert "microblaze BZ #15705: Define MMAP2_PAGE_SHIFT"
This reverts commit 79b846ecc0.

Conflicts:

	NEWS
	ports/ChangeLog.microblaze

Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com>
2014-02-06 09:57:56 +10:00
David Holsgrove
cff469ca41 microblaze: Update libm-test-ulps
Update libm-test-ulps for microblaze, and remove unneeded copy
libm-test-ulps_new.

ports/ChangeLog.microblaze

 2014-02-04  David Holsgrove <david.holsgrove@xilinx.com>

   * sysdeps/microblaze/libm-test-ulps: Update.
   * sysdeps/microblaze/libm-test-ulps_new: Deleted redundant file.

Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com>
2014-02-05 17:25:43 +10:00
David Holsgrove
79b846ecc0 microblaze BZ #15705: Define MMAP2_PAGE_SHIFT
Define MMAP2_PAGE_SHIFT to -1 for microblaze so the correct shift
for the syscall is determined dynamically using getpagesize

ports/ChangeLog.microblaze

 2014-02-04  David Holsgrove <david.holsgrove@xilinx.com>

   * sysdeps/unix/sysv/linux/microblaze/mmap64.c: New file.

Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com>
2014-02-05 17:25:43 +10:00
David Holsgrove
e9043c0dfe microblaze: Use <fenv.h> fallback functions
Delete redundant fegetround.c and fesetround.c for microblaze
and use the fallback functions instead.

ports/ChangeLog.microblaze

 2014-02-04  David Holsgrove <david.holsgrove@xilinx.com>

    * sysdeps/microblaze/fegetround.c: Delete redundant file.
    * sysdeps/microblaze/fesetround.c: Likewise.

Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com>
2014-02-05 17:22:19 +10:00
Carlos O'Donell
2efc59633e [hppa] Regenerate libm-test-ulps.
Regenerate libm-test-ulps from scratch.
2014-02-03 16:22:22 -05:00
Marcus Shawcroft
a8b0805d0b [AArch64] Regenerate libm-test-ulps.
Re-generate libm-test-ulps from scratch.
2014-01-29 14:47:48 +00:00
Siddhesh Poyarekar
c8e9f0783a Fix spaces before tabs 2014-01-29 14:03:11 +05:30
Andreas Schwab
31629ac863 m68k: regenerate libm test ULPs 2014-01-27 18:43:22 +01:00
Chris Metcalf
cf965b144a tile: Regenerate libm-test-ulps 2014-01-24 13:23:23 -05:00
Richard Henderson
e466417f25 alpha: Update libm-test-ulps 2014-01-24 09:43:19 -08:00
Richard Henderson
4ab6acaebd alpha: Fix tls-macros.h
Reported to the gcc bugzilla, there was a missing dependency on $gp
that let the compiler generated $gp reload be scheduled across the
macros here.
2014-01-24 09:07:04 -08:00
Will Newton
47590bce28 ARM: Fix clone build for ARMv4
ARMv4 does not have the blx instruction, so use the BLX macro which
handles abstracting this for us.

Build tested for armv7, armv4t and armv4.

ports/ChangeLog.arm:

2014-01-24  Will Newton  <will.newton@linaro.org>

	[BZ #16499]
	* sysdeps/unix/sysv/linux/arm/clone.S: Use BLX macro instead
	of blx instruction directly.
2014-01-24 13:15:46 +00:00
Marcus Shawcroft
2bc52556b7 [AArch64] Fix type in abi-lp64_be-options. 2014-01-20 17:45:06 +00:00
Tom Tromey
3a3acb6afc [AArch64] BZ #16169 Add CFI directives to clone.S
[BZ #16169] Add CFI directives to the AArch64 clone.S implementation
and ensure that the FP in the child is zero'd in order to comply with
AAPCS.
2014-01-20 15:44:05 +00:00
Marcus Shawcroft
b67e7fe0f9 [AArch64] Define BE loader name. 2014-01-20 15:43:06 +00:00
Will Newton
2f10c4d690 ARM: Don't apply pointer encryption to the frame pointer
The frame pointer register is rarely used for that purpose on ARM and
applications that look at the contents of the jmp_buf may be relying
on reading an unencrypted value. For example, Ruby uses the contents
of jmp_buf to find the root set for garbage collection so relies on
this pointer value being unencrypted. Without this patch the Ruby
testsuite fails with a segmentation fault.

ports/ChangeLog.arm:

2013-01-14  Will Newton  <will.newton@linaro.org>

	* sysdeps/arm/__longjmp.S: Don't apply pointer encryption
	to fp register.
	* sysdeps/arm/setjmp.S: Likewise.
	* sysdeps/arm/include/bits/setjmp.h (JMP_BUF_REGLIST): Add
	fp to register list, remove a4.
	* sysdeps/unix/sysv/linux/arm/sysdep.h (PTR_MANGLE_LOAD):
	New macro.
2014-01-14 14:02:34 +00:00
Roland McGrath
bc2ba20ae8 ARM: Disable compat mcount code when unneeded. 2014-01-10 13:32:35 -08:00
Joseph Myers
6e067a5128 Use separate libc.abilist for MIPS o32 soft float.
Examining MIPS test results showed an ABI test failure that I must
have missed in 2.18 testing: hard-float and soft-float o32 no longer
have the same set of symbols (because of the __mips_fpu_getcw and
__mips_fpu_setcw functions, present for hard-float only, used by
fpu_control.h for hard-float MIPS16) and so need separate ABI test
baselines (they always were ABI-incompatible - the function-calling
interface is different - but previously had the same set of symbols
and versions so didn't need separate baselines).

Tested for hard-float and soft-float o32.

	* sysdeps/unix/sysv/linux/mips/mips32/nptl/libc.abilist: Move to
	....
	* sysdeps/unix/sysv/linux/mips/mips32/fpu/nptl/libc.abilist:
	... here.
	* sysdeps/unix/sysv/linux/mips/mips32/nofpu/nptl/libc.abilist: New
	file.
2014-01-07 23:58:45 +00:00
Marcus Shawcroft
196f456b84 [AArch64] Fix FP_ROUNDMODE.
[BZ #16387] Fix FP_ROUNDMODE to extract the correct bits from FPCR.
2014-01-07 16:17:52 +00:00
Marcus Shawcroft
07d55c6c37 [AArch64] Remove sqrt from libm-test-ulps 2014-01-07 16:17:45 +00:00
Marcus Shawcroft
b513cbf751 [AArch64] Fix CFA adjustment on dynamic linker entry. 2014-01-07 10:29:18 +00:00
Mike Frysinger
d5780febe6 ia64: regen libm-test-ulps from scratch
Truncate the file first so as to delete old entries and to lower ULPs
for tests that have improved.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2014-01-06 20:37:47 -05:00
Mike Frysinger
7157a710e4 ia64: drop large results from libm-test-ulps [BZ #16401]
We don't want to record these test results as a good thing.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2014-01-06 20:33:31 -05:00
Mike Frysinger
5fd3eccbea ia64: regenerate libm-test-ulps
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2014-01-06 08:22:23 -05:00
Mike Frysinger
c8c9ab8b88 ia64: add __ prefix to pt_all_user_regs/ia64_fpreg [BZ #762]
This addresses a long standing collision between userspace headers and
kernel headers only on ia64 systems.  All other types have a __ prefix
in the ptrace headers except these two.  Let's finally namespace these.

Verified that at least strace still builds after this change, as well
as after deleting all the struct hacks it has specifically for ia64.

URL: https://sourceware.org/bugzilla/show_bug.cgi?id=762
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2014-01-06 08:11:35 -05:00
Mike Frysinger
9341dde4d5 ptrace.h: add __ prefix to ptrace_peeksiginfo_args
All the other ptrace structures in this file have a __ prefix except this
new one.  This in turn causes build problems for most packages that try to
use ptrace such as strace:

gcc -DHAVE_CONFIG_H -I. -I../..  -I../../linux/x86_64 -I../../linux \
	-I./linux  -Wall -Wwrite-strings -g -O2 -MT process.o -MD -MP \
	-MF .deps/process.Tpo -c -o process.o ../../process.c
In file included from ../../process.c:63:0:
/usr/include/linux/ptrace.h:58:8: error: redefinition of 'struct ptrace_peeksiginfo_args'
 struct ptrace_peeksiginfo_args {
        ^
In file included from ../../defs.h:159:0,
                 from ../../process.c:37:
/usr/include/sys/ptrace.h:191:8: note: originally defined here
 struct ptrace_peeksiginfo_args
        ^

Since this struct was introduced in glibc-2.18, there shouldn't be any
real regressions with adding the __ prefix.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2014-01-06 08:07:33 -05:00
Mike Frysinger
19f6b98b55 ia64: fix build failure after async tls updates
The recent commit 7f507ee17a added a new
local variable "offset" to tls_get_addr_tail.  This conflicts with the
ia64 code which also declares an offset code inline in this func.  So
have the ia64 code rename its local vars with a prefix that shouldn't
collide with anything else in the future.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2014-01-04 08:58:08 -05:00
Marcus Shawcroft
ac49ddc495 [AArch64] Regenerate libm-test-ulps. 2014-01-01 17:58:47 +00:00
Marcus Shawcroft
4513de089b [AArch64] Define ABORT_INSTRUCTION. 2014-01-01 17:58:47 +00:00
Venkataramanan Kumar
9188b6818a [AArch64] Pointer mangling support for AArch64. 2014-01-01 17:58:46 +00:00
Joseph Myers
b06ece6aec Regenerate ARM ulps. 2014-01-01 16:46:17 +00:00
Joseph Myers
5d5841db70 Regenerate MIPS ulps. 2014-01-01 15:54:30 +00:00
Allan McRae
d4697bc93d Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
Mike Frysinger
98b78b4b72 ia64: longjmp_chk: support signal stacks [BZ #16372]
The sp check has to be moved up to the start of the func since it now
makes a system call and that'll clobber a lot of registers.

URL: https://sourceware.org/bugzilla/show_bug.cgi?id=16372
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2013-12-30 23:12:16 -05:00
Mike Frysinger
e646a161ce ia64: setjmp/longjmp: stop saving/restoring fpsr [BZ #16379]
The new tst-setjmp-fp test has been failing on IA64 because the setjmp
and longjmp helpers take care of saving/restoring the fpsr register.
Per the C standards, this is incorrect, so disable that logic.

URL: https://sourceware.org/bugzilla/show_bug.cgi?id=16379
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2013-12-30 10:02:49 -05:00
Mike Frysinger
d97ae285e8 ia64: setjmp: use HIDDEN_JUMPTARGET
Rather than opencode the __GI_xxx logic, use proper hidden helpers.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2013-12-30 05:35:39 -05:00
Mike Frysinger
88dd1da188 ia64: syscall: add some helpful documentation
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2013-12-29 16:29:27 -05:00
Mike Frysinger
aa8e370425 ia64: implement futex requeue pi support
Used the s390 code as a guideline until all tests pass.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2013-12-25 04:40:22 -05:00
Mike Frysinger
5243e58568 ia64: add lll_futex_timed_wait_bitset
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2013-12-25 04:37:30 -05:00
Mike Frysinger
fe1a83aa1c ia64: ioperm: clean up long dead code
This file has a few #if 0 code paths which cause a build time warning:
ports/sysdeps/unix/sysv/linux/ia64/ioperm.c:66:7: warning:
	variable 'prot' set but not used [-Wunused-but-set-variable]

Rather than add more #if 0 around that variable, just delete the code
altogether.  Not like it's going to ever be implemented.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2013-12-24 05:34:52 -05:00
Mike Frysinger
41b1792698 ia64: implement sotruss support
Tested with:
	$ cat test.c
	main(){close(0x1024, 2, 3);}
	$ gcc test.c
	$ sotruss -e ./a.out
		a.out -> libc.so.6.1    : __libc_start_main(0x4000000000000950, 0x1, 0x60000fffffb56bc8)
		a.out -> libc.so.6.1    : close(0x1024, 0x2, 0x3)
		a.out -> libc.so.6.1    : close - 0xffffffffffffffff

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2013-12-24 04:05:46 -05:00