Thread (8 messages) flat view 8 messages, 4 authors, 2017-10-02

Re: [PATCH] mm: fix RODATA_TEST failure "rodata_test: test data was not read only"

From: Kees Cook <hidden>
Date: 2017-10-02 19:29:48
Also in: linux-mm, lkml

On Mon, Sep 25, 2017 at 12:41 PM, Segher Boessenkool
[off-list ref] wrote:
On Mon, Sep 25, 2017 at 04:01:55PM +0000, David Laight wrote:
quoted
From: Segher Boessenkool
quoted
The compiler puts this item in .sdata, for 32-bit.  There is no .srodata,
so if it wants to use a small data section, it must use .sdata .

Non-external, non-referenced symbols are not put in .sdata, that is the
difference you see with the "static".

I don't think there is a bug here.  If you think there is, please open
a GCC bug.
The .sxxx sections are for 'small' data that can be accessed (typically)
using small offsets from a global register.
This means that all sections must be adjacent in the image.
So you can't really have readonly small data.

My guess is that the linker script is putting .srodata in with .sdata.
.srodata does not *exist* (in the ABI).
So, I still think this is a bug. The variable is marked const: this is
not a _suggestion_. :) If the compiler produces output where the
variable is writable, that's a bug.

I can't tell if this bug is related:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=9571

-Kees

-- 
Kees Cook
Pixel Security
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help