*: slap on a few ALIGN* where appropriate
No binary (build failed)
—
(log yok)
| @@ -36,7 +36,7 @@ int stty_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; | |
| int reset_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; | |
| int reset_main(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) | |
| { | |
| - | static const char *const args[] = { |
| + | static const char *const args[] ALIGN_PTR = { |
| "stty", "sane", NULL | |
| }; | |
| @@ -144,7 +144,7 @@ odoffset(dumper_t *dumper, int argc, char ***argvp) | |
| } | |
| } | |
| - | static const char *const add_strings[] = { |
| + | static const char *const add_strings[] ALIGN_PTR = { |
| "16/1 \"%3_u \" \"\\n\"", /* a */ | |
| "8/2 \" %06o \" \"\\n\"", /* B, o */ | |
| "16/1 \"%03o \" \"\\n\"", /* b */ | |
| @@ -346,6 +346,7 @@ typedef unsigned smalluint; | |
| # define ALIGN4 | |
| #endif | |
| #define ALIGN8 __attribute__((aligned(8))) | |
| + | #define ALIGN_INT __attribute__((aligned(sizeof(int)))) |
| #define ALIGN_PTR __attribute__((aligned(sizeof(void*)))) | |
| /* | |
| @@ -651,7 +651,7 @@ static void check_suid(int applet_no) | |
| # if ENABLE_FEATURE_INSTALLER | |
| static const char usr_bin [] ALIGN1 = "/usr/bin/"; | |
| static const char usr_sbin[] ALIGN1 = "/usr/sbin/"; | |
| - | static const char *const install_dir[] = { |
| + | static const char *const install_dir[] ALIGN_PTR = { |
| &usr_bin [8], /* "/" */ | |
| &usr_bin [4], /* "/bin/" */ | |
| &usr_sbin[4] /* "/sbin/" */ | |
| @@ -37,7 +37,7 @@ static int open_a_console(const char *fnam) | |
| */ | |
| int FAST_FUNC get_console_fd_or_die(void) | |
| { | |
| - | static const char *const console_names[] = { |
| + | static const char *const console_names[] ALIGN_PTR = { |
| DEV_CONSOLE, CURRENT_VC, CURRENT_TTY | |
| }; | |
| @@ -6011,7 +6011,7 @@ static BC_STATUS zxc_program_assign(char inst) | |
| #endif | |
| if (ib || sc || left->t == XC_RESULT_OBASE) { | |
| - | static const char *const msg[] = { |
| + | static const char *const msg[] ALIGN_PTR = { |
| "bad ibase; must be [2,16]", //XC_RESULT_IBASE | |
| "bad obase; must be [2,"BC_MAX_OBASE_STR"]", //XC_RESULT_OBASE | |
| "bad scale; must be [0,"BC_MAX_SCALE_STR"]", //XC_RESULT_SCALE | |
| @@ -303,7 +303,7 @@ int man_main(int argc UNUSED_PARAM, char **argv) | |
| config_close(parser); | |
| if (!man_path_list) { | |
| - | static const char *const mpl[] = { "/usr/man", "/usr/share/man", NULL }; |
| + | static const char *const mpl[] ALIGN_PTR = { "/usr/man", "/usr/share/man", NULL }; |
| man_path_list = (char**)mpl; | |
| /*count_mp = 2; - not used below anyway */ | |
| } | |
| @@ -532,7 +532,7 @@ static int FAST_FUNC v4tunnel_down(struct interface_defn_t * ifd, execfn * exec) | |
| } | |
| # endif | |
| - | static const struct method_t methods6[] = { |
| + | static const struct method_t methods6[] ALIGN_PTR = { |
| # if ENABLE_FEATURE_IFUPDOWN_IP | |
| { "v4tunnel" , v4tunnel_up , v4tunnel_down , }, | |
| # endif | |
| @@ -627,7 +627,7 @@ struct dhcp_client_t { | |
| const char *stopcmd; | |
| }; | |
| - | static const struct dhcp_client_t ext_dhcp_clients[] = { |
| + | static const struct dhcp_client_t ext_dhcp_clients[] ALIGN_PTR = { |
| { "dhcpcd", | |
| "dhcpcd[[ -h %hostname%]][[ -i %vendor%]][[ -I %client%]][[ -l %leasetime%]] %iface%", | |
| "dhcpcd -k %iface%", | |
| @@ -774,7 +774,7 @@ static int FAST_FUNC wvdial_down(struct interface_defn_t *ifd, execfn *exec) | |
| "-p /var/run/wvdial.%iface% -s 2", ifd, exec); | |
| } | |
| - | static const struct method_t methods[] = { |
| + | static const struct method_t methods[] ALIGN_PTR = { |
| { "manual" , manual_up_down, manual_up_down, }, | |
| { "wvdial" , wvdial_up , wvdial_down , }, | |
| { "ppp" , ppp_up , ppp_down , }, | |
| @@ -797,7 +797,7 @@ static int FAST_FUNC link_up_down(struct interface_defn_t *ifd UNUSED_PARAM, exe | |
| return 1; | |
| } | |
| - | static const struct method_t link_methods[] = { |
| + | static const struct method_t link_methods[] ALIGN_PTR = { |
| { "none", link_up_down, link_up_down } | |
| }; | |
| @@ -446,13 +446,13 @@ static char *get_name(char name[IFNAMSIZ], char *p) | |
| * %n specifiers (even the size of integers may not match). | |
| */ | |
| #if INT_MAX == LONG_MAX | |
| - | static const char *const ss_fmt[] = { |
| + | static const char *const ss_fmt[] ALIGN_PTR = { |
| "%n%llu%u%u%u%u%n%n%n%llu%u%u%u%u%u", | |
| "%llu%llu%u%u%u%u%n%n%llu%llu%u%u%u%u%u", | |
| "%llu%llu%u%u%u%u%u%u%llu%llu%u%u%u%u%u%u" | |
| }; | |
| #else | |
| - | static const char *const ss_fmt[] = { |
| + | static const char *const ss_fmt[] ALIGN_PTR = { |
| "%n%llu%lu%lu%lu%lu%n%n%n%llu%lu%lu%lu%lu%lu", | |
| "%llu%llu%lu%lu%lu%lu%n%n%llu%llu%lu%lu%lu%lu%lu", | |
| "%llu%llu%lu%lu%lu%lu%lu%lu%llu%llu%lu%lu%lu%lu%lu%lu" | |
| @@ -731,7 +731,7 @@ static const struct hwtype ib_hwtype = { | |
| #endif | |
| - | static const struct hwtype *const hwtypes[] = { |
| + | static const struct hwtype *const hwtypes[] ALIGN_PTR = { |
| &loop_hwtype, | |
| ðer_hwtype, | |
| &ppp_hwtype, | |
| @@ -58,7 +58,7 @@ typedef struct filter_t filter_t; | |
| static void print_link_flags(unsigned flags, unsigned mdown) | |
| { | |
| - | static const int flag_masks[] = { |
| + | static const int flag_masks[] ALIGN_INT = { |
| IFF_LOOPBACK, IFF_BROADCAST, IFF_POINTOPOINT, | |
| IFF_MULTICAST, IFF_NOARP, IFF_UP, IFF_LOWER_UP }; | |
| static const char flag_labels[] ALIGN1 = | |
| @@ -19,7 +19,7 @@ const uint8_t MAC_BCAST_ADDR[6] ALIGN2 = { | |
| * See RFC2132 for more options. | |
| * OPTION_REQ: these options are requested by udhcpc (unless -o). | |
| */ | |
| - | const struct dhcp_optflag dhcp_optflags[] = { |
| + | const struct dhcp_optflag dhcp_optflags[] ALIGN2 = { |
| /* flags code */ | |
| { OPTION_IP | OPTION_REQ, 0x01 }, /* DHCP_SUBNET */ | |
| { OPTION_S32 , 0x02 }, /* DHCP_TIME_OFFSET */ | |
| @@ -65,7 +65,7 @@ | |
| /* "struct client_data_t client_data" is in bb_common_bufsiz1 */ | |
| - | static const struct dhcp_optflag d6_optflags[] = { |
| + | static const struct dhcp_optflag d6_optflags[] ALIGN2 = { |
| #if ENABLE_FEATURE_UDHCPC6_RFC3646 | |
| { OPTION_6RD | OPTION_LIST | OPTION_REQ, D6_OPT_DNS_SERVERS }, | |
| { OPTION_DNS_STRING | OPTION_LIST | OPTION_REQ, D6_OPT_DOMAIN_LIST }, | |
| @@ -313,7 +313,7 @@ typedef long arith_t; | |
| /* ============ Shell options */ | |
| /* If you add/change options hare, update --help text too */ | |
| - | static const char *const optletters_optnames[] = { |
| + | static const char *const optletters_optnames[] ALIGN_PTR = { |
| "e" "errexit", | |
| "f" "noglob", | |
| /* bash has '-o ignoreeof', but no short synonym -I for it */ | |
| @@ -71,7 +71,7 @@ static void bb_dump_addfile(dumper_t *dumper, char *name) | |
| fclose(fp); | |
| } | |
| - | static const char *const add_strings[] = { |
| + | static const char *const add_strings[] ALIGN_PTR = { |
| "\"%07.7_ax \"16/1 \"%03o \"\"\n\"", /* b */ | |
| "\"%07.7_ax \"16/1 \"%3_c \"\"\n\"", /* c */ | |
| "\"%07.7_ax \"8/2 \" %05u \"\"\n\"", /* d */ | |
| @@ -93,7 +93,7 @@ enum { | |
| * The user namespace comes first, so that it is entered first. | |
| * This gives an unprivileged user the potential to enter other namespaces. | |
| */ | |
| - | static const struct namespace_descr ns_list[] = { |
| + | static const struct namespace_descr ns_list[] ALIGN_INT = { |
| { CLONE_NEWUSER, "ns/user", }, | |
| { CLONE_NEWIPC, "ns/ipc", }, | |
| { CLONE_NEWUTS, "ns/uts", }, | |
| @@ -120,7 +120,7 @@ enum { | |
| NS_USR_POS, /* OPT_user, NS_USR_POS, and ns_list[] index must match! */ | |
| NS_COUNT, | |
| }; | |
| - | static const struct namespace_descr ns_list[] = { |
| + | static const struct namespace_descr ns_list[] ALIGN_INT = { |
| { CLONE_NEWNS, "mnt" }, | |
| { CLONE_NEWUTS, "uts" }, | |
| { CLONE_NEWIPC, "ipc" }, | |