diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2019-10-14 11:48:43 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2019-10-14 12:03:30 +0200 |
commit | 1e4a948673d709a2f8fcb9229b3cca77f3a25d51 (patch) | |
tree | 3e55bf42cf7bef48b1e304914a273786102fd676 /common/ubiformat.c | |
parent | 59523901d29386f0bf86750b6bf8c8222ab22a33 (diff) | |
download | barebox-1e4a948673d709a2f8fcb9229b3cca77f3a25d51.tar.gz barebox-1e4a948673d709a2f8fcb9229b3cca77f3a25d51.tar.xz |
command: Use array of pointers to commands
We used to store the commands as a linker array. One problem with this
is that on X86_64 for unknown reasons the linker uses a different struct
alignment than the compiler, so when we use the linker to compose the
array and the compiler to iterate over it we have to play tricks with
manually adjusting the alignment. The other problem is that we declare
the commands as const (and also put it in .rodata), but in fact we do
not treat it as const: we put the commands onto a list which modifies
the struct list_head list member of struct command.
With this patch we no longer put the command themselves into an array,
but instead create an array of pointers to the commands. This inherently
solves the second issue as well.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'common/ubiformat.c')
0 files changed, 0 insertions, 0 deletions