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.
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.
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>
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>
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.
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.
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.
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>
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>
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>
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>
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>
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>