| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
|
|
| |
Autoconf has been deprecating configure.in for quite a long time.
Rename all our configure.in and preconfigure.in files to .ac.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Convert __longjmp code to allow building as Thumb.
ports/ChangeLog.arm:
2013-10-04 Will Newton <will.newton@linaro.org>
* sysdeps/arm/__longjmp.S (NO_THUMB): Remove define.
(__longjmp): Use Thumb supported instructions.
* sysdeps/unix/sysv/linux/arm/____longjmp_chk.S (NO_THUMB):
Remove define.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add support for pointer encryption in glibc internal structures in C
and assembler code. Pointer encryption is a glibc security feature
described here:
https://sourceware.org/glibc/wiki/PointerEncryption
The ARM implementation uses global variables instead of thread pointer
relative accesses to get the value of the pointer encryption guard
because accessing the thread pointer can be very expensive on older
ARM cores.
ports/ChangeLog.arm:
2013-10-03 Will Newton <will.newton@linaro.org>
* sysdeps/arm/__longjmp.S (__longjmp): Demangle fp, sp
and lr when restoring register values.
* sysdeps/arm/include/bits/setjmp.h (JMP_BUF_REGLIST): Remove
sp and lr from list and replace fp with a4.
* sysdeps/arm/jmpbuf-unwind.h (_jmpbuf_sp): New function.
(_JMPBUF_UNWINDS_ADJ): Call _jmpbuf_sp.
* sysdeps/arm/setjmp.S (__sigsetjmp): Mangle fp, sp and lr
before storing register values.
* sysdeps/arm/sysdep.h (LDST_GLOBAL): New macro.
* sysdeps/unix/sysv/linux/arm/sysdep.h (PTR_MANGLE): New macro.
(PTR_DEMANGLE): Likewise. (PTR_MANGLE2): Likewise.
(PTR_DEMANGLE2): Likewise.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The mov lr, pc instruction will lose the Thumb bit from the return address
so use blx lr instead.
ports/ChangeLog.arm:
2013-08-30 Will Newton <will.newton@linaro.org>
[BZ #15909]
* sysdeps/unix/sysv/linux/arm/clone.S (__clone): Use blx
instead of mov lr, pc.
|
| |
|
| |
|
|
|
|
|
|
|
| |
This patch introduces two new convenience functions to set the default
thread attributes used for creating threads. This allows a programmer
to set the default thread attributes just once in a process and then
run pthread_create without additional attributes.
|
| |
|
| |
|
|
|
|
| |
It is based on draft TS 18661 and currently enabled as a GNU extension.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
For arm this makes no difference--the result is bit-for-bit identical;
for thumb this results in smaller encodings. Perhaps it ought not and
this is in fact an assembler bug, but I also think it's clearer.
|
|
|
|
|
|
| |
Factor out the sequence needed to call kuser_get_tls, as we can't
play subtract into pc games in thumb mode. Prepare for hard-tp,
pulling the save of LR into the macro.
|
|
|
|
|
|
|
|
|
| |
There are several places in which we access negative offsets from
the thread-pointer, but thumb2 only supports positive offsets in
memory references.
Avoid duplicating the rather large macros in which these references
are embedded by abstracting out the operation.
|
|
|
|
|
| |
Macro-ising the few instances where we need to distinguish between
arm and thumb pc-relative memory operations.
|
| |
|
|
|
|
|
|
|
|
|
| |
Some routines are written with complex LDM/STM insns that cannot be
used in thumb mode, or are highly conditional requiring excessive
IT insns.
When a future patch goes in to enable thumb2 by default, this marker
will be used to override that default.
|
|
|
|
|
| |
These are ignored by the assembler in ARM mode, so by
default this has no effect on generated code.
|
|
|
|
|
| |
Scour the source for raw "-8" adjustments that are related to the
offset created by reading the pc.
|
| |
|
|
|
|
| |
When compiling with -mthumb, ld.so itself also needs __libc_do_syscall.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
This feature is specifically for the C++ compiler to offload calling
thread_local object destructors on thread program exit, to glibc.
This is to overcome the possible complication of destructors of
thread_local objects getting called after the DSO in which they're
defined is unloaded by the dynamic linker. The DSO is marked as
'unloadable' if it has a constructed thread_local object and marked as
'unloadable' again when all the constructed thread_local objects
defined in it are destroyed.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
ARM now supports loading unmarked objects from
the dynamic loader cache. Unmarked objects can
be used with the hard-float or soft-float ABI.
We must support loading unmarked objects during
the transition period from a binutils that does
not mark objects to one that does mark them with
the correct ELF flags.
Signed-off-by: Carlos O'Donell <carlos@redhat.com>
|
| |
|
| |
|
|
|
|
| |
Signed-off-by: Steve McIntyre <steve.mcintyre@linaro.org>
|
|
|
|
| |
Signed-off-by: Steve McIntyre <steve.mcintyre@linaro.org>
|
|
|
|
|
|
|
| |
Add the correct tags for ARM and AArch64 libraries in the ldconfig
cache for ARM.
Signed-off-by: Steve McIntyre <steve.mcintyre@linaro.org>
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
* sysdeps/unix/sysv/linux/arm/bits/fcntl.h: Remove all
definitions and declarations that are provided by
<bits/fcntl-linux.h> and include <bits/fcntl-linux.h>.
|
| |
|
| |
|
| |
|