This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [RFC][PATCH] AArch64: use movz/movk instead of literal pools in start.S
- From: Florian Weimer <fw at deneb dot enyo dot de>
- To: wangboshi <wangboshi at huawei dot com>
- Cc: <libc-alpha at sourceware dot org>
- Date: Thu, 07 Sep 2017 13:43:06 +0200
- Subject: Re: [RFC][PATCH] AArch64: use movz/movk instead of literal pools in start.S
- Authentication-results: sourceware.org; auth=none
- References: <e65025af-5168-c999-bfc1-7ac614314836@huawei.com>
> eXecute-Only Memory (XOM) is a protection mechanism against some ROP
> attacks. XOM sets the code as executable and unreadable, so the
> access to any data, like literal pools, in the code section causes
> the fault with XOM. The compiler can disable literal pools for C
> source files, but not for assembly files, so I use movz/movk instead
> of literal pools in start.S for XOM.
Isn't the main goal of XOM to make it more difficult for the
legitimate device owner to view running machine code?
| Execute-only memory allows you to protect your intellectual property
| by preventing executable code being read by users. For example, you
| can place firmware in execute-only memory and load user code and
| drivers separately. Placing the firmware in execute-only memory
| prevents users from trivially reading the code.
<http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0471m/chr1368698326509.html>
I don't think it's in the interests of the GNU projet to support such
a thing.