From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 19035 invoked by alias); 7 Sep 2017 11:43:16 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Received: (qmail 19026 invoked by uid 89); 7 Sep 2017 11:43:15 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=0.7 required=5.0 tests=AWL,BAYES_20,KAM_LAZY_DOMAIN_SECURITY,RCVD_IN_DNSWL_NONE,RP_MATCHES_RCVD autolearn=no version=3.3.2 spammy=H*MI:mid, H*M:mid, index.jsp, UD:index.jsp X-HELO: albireo.enyo.de From: Florian Weimer To: wangboshi Cc: Subject: Re: [RFC][PATCH] AArch64: use movz/movk instead of literal pools in start.S References: Date: Thu, 07 Sep 2017 11:43:00 -0000 In-Reply-To: (wangboshi@huawei.com's message of "Thu, 7 Sep 2017 15:33:34 +0800") Message-ID: <877exalool.fsf@mid.deneb.enyo.de> MIME-Version: 1.0 Content-Type: text/plain X-SW-Source: 2017-09/txt/msg00294.txt.bz2 > 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. I don't think it's in the interests of the GNU projet to support such a thing.