Thread (16 messages) 16 messages, 4 authors, 2019-04-23

Re: [PATCH 1/5] glibc: Perform rseq(2) registration at C startup and thread creation (v8)

flat view

From: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Date: 2019-04-18 15:37:19
Also in: lkml

----- On Apr 18, 2019, at 10:48 AM, Joseph Myers joseph@codesourcery.com wrote:
On Thu, 18 Apr 2019, Mathieu Desnoyers wrote:
quoted
The approach above should work for arm32 be8 vs be32 linker weirdness.

For aarch64, I think we can simply do:

/*
 * aarch64 -mbig-endian generates mixed endianness code vs data:
 * little-endian code and big-endian data. Ensure the RSEQ_SIG signature
 * matches code endianness.
 */
#define RSEQ_SIG_CODE   0xd428bc00      /* BRK #0x45E0.  */

#ifdef __ARM_BIG_ENDIAN
#define RSEQ_SIG_DATA   0x00bc28d4      /* BRK #0x45E0.  */
#else
#define RSEQ_SIG_DATA   RSEQ_SIG_CODE
#endif

#define RSEQ_SIG        RSEQ_SIG_DATA

Feedback is most welcome,
You'll also need __ASSEMBLER__ conditionals in the installed sys/rseq.h
header so that it only defines constants and doesn't include any C
declarations in that case, if RSEQ_SIG_CODE is meant to be usable in .S
files rather than just inline asm in C files.
Good point!

Thanks,

Mathieu

-- 
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help