Messages in this thread | | | Date | Thu, 10 Mar 2011 15:25:02 -0800 | From | David Daney <> | Subject | Re: [PATCH 0/2] jump label: update for .39 |
| |
On 03/10/2011 03:16 PM, Steven Rostedt wrote: > On Thu, 2011-03-10 at 17:48 -0500, Mathieu Desnoyers wrote: >> * Steven Rostedt (rostedt@goodmis.org) wrote: >>> On Thu, 2011-03-10 at 16:22 -0500, Mathieu Desnoyers wrote: >>> >>>>> Anyway, I think the best thing for now is to have Jason add >>>>> the .align(sizeof(long)) in the inline assembly for all locations and be >>>>> done with it. >>>> >>>> You seem to be contradicting yourself here. I'm concerned about having >>>> "structures" of a size not power of two. Can we simply either >>> >>> But we don't have structures. We have data that has been allocated in >>> assembly. Come to think of it, it may be best to keep these as >>> ".align 4". >> >> The .align 4 is certainly not the right answer, because it will trigger >> unaligned accesses on some 64-bit architectures, as we have faced with >> trace event. > > Will it? Seems that sparc does this regardless. > > Remember, this is 3 natural word sized objects, and vmlinux.ld starts > the section off with .ALIGN 8, hence, the section is already 8 byte > aligned, all objects within this section are 8 bytes (for 64bit archs, > and 4 bytes for 32bit), why would saying ".align 4" cause the linker to > add holes to make it 4 byte aligned when it is already 8 byte aligned. > The ".align 4" should work with both 32bit and 64bit archs. >
It should work, but it hurts my eyes to see the source code forcing a 64-bit word to 32-bit alignment.
David Daney
| |