Hi Sascha. On Wed, Oct 02, 2019 at 04:44:28PM +0200, Sascha Hauer wrote: > We do not seem to need all these alignments in the rodata sections > except the one for the command array. Remove them and put the alignment > for the command array into the BAREBOX_CMDS define. The changelog does not match the code. The alignment is only for x86_64. > --- a/include/asm-generic/barebox.lds.h > +++ b/include/asm-generic/barebox.lds.h > @@ -46,7 +46,13 @@ > KEEP(*(.exitcall.6)) \ > __barebox_exitcalls_end = .; > > +/* For some obscure reason X86_64 needs these 64bit aligned */ The obscure reason looks like this (from include/command.h): #ifdef __x86_64__ /* This is required because the linker will put symbols on a 64 bit alignment */ __attribute__((aligned(64))) #endif I did not try it. But I would assume removing the alignment from the .h file and the .lds file would sort it out. Sam > +#ifdef __x86_64__ > +#define X86_64_ALIGN . = ALIGN(64); > +#endif > + > #define BAREBOX_CMDS \ > + X86_64_ALIGN \ > __barebox_cmd_start = .; \ > KEEP(*(SORT_BY_NAME(.barebox_cmd*))) \ > __barebox_cmd_end = .; > -- > 2.23.0 > > > _______________________________________________ > barebox mailing list > barebox@xxxxxxxxxxxxxxxxxxx > http://lists.infradead.org/mailman/listinfo/barebox _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox