From ca466f385ac985a8b3491daa9f326dc480cdee70 Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Sun, 6 Feb 2022 19:53:10 +0100 Subject: [PATCH] *: slap on a few ALIGN* where appropriate The result of looking at "grep -F -B2 '*fill*' busybox_unstripped.map" function old new delta .rodata 108586 108460 -126 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-126) Total: -126 bytes text data bss dec hex filename 970412 4219 1848 976479 ee65f busybox_old 970286 4219 1848 976353 ee5e1 busybox_unstripped Signed-off-by: Denys Vlasenko --- console-tools/reset.c | 2 +- coreutils/od.c | 2 +- include/platform.h | 1 + libbb/appletlib.c | 2 +- libbb/get_console.c | 2 +- miscutils/bc.c | 2 +- miscutils/man.c | 2 +- networking/ifupdown.c | 8 ++++---- networking/interface.c | 6 +++--- networking/libiproute/ipaddress.c | 2 +- networking/udhcp/common.c | 2 +- networking/udhcp/d6_dhcpc.c | 2 +- shell/ash.c | 2 +- util-linux/hexdump.c | 2 +- util-linux/nsenter.c | 2 +- util-linux/unshare.c | 2 +- 16 files changed, 21 insertions(+), 20 deletions(-) diff --git a/console-tools/reset.c b/console-tools/reset.c index b3acf69f8..cc04e4fcc 100644 --- a/console-tools/reset.c +++ b/console-tools/reset.c @@ -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 }; diff --git a/coreutils/od.c b/coreutils/od.c index 9a888dd5f..6f22331e0 100644 --- a/coreutils/od.c +++ b/coreutils/od.c @@ -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 */ diff --git a/include/platform.h b/include/platform.h index ad27bb31a..ea0512f36 100644 --- a/include/platform.h +++ b/include/platform.h @@ -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*)))) /* diff --git a/libbb/appletlib.c b/libbb/appletlib.c index 03389f541..841b3b873 100644 --- a/libbb/appletlib.c +++ b/libbb/appletlib.c @@ -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/" */ diff --git a/libbb/get_console.c b/libbb/get_console.c index 7f2c75332..9044efea1 100644 --- a/libbb/get_console.c +++ b/libbb/get_console.c @@ -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 }; diff --git a/miscutils/bc.c b/miscutils/bc.c index ae370ff55..ab785bbc8 100644 --- a/miscutils/bc.c +++ b/miscutils/bc.c @@ -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 diff --git a/miscutils/man.c b/miscutils/man.c index d319e8bba..deaf9e5ab 100644 --- a/miscutils/man.c +++ b/miscutils/man.c @@ -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 */ } diff --git a/networking/ifupdown.c b/networking/ifupdown.c index 737113dd4..6c4ae27f2 100644 --- a/networking/ifupdown.c +++ b/networking/ifupdown.c @@ -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 } }; diff --git a/networking/interface.c b/networking/interface.c index ea6a2c8a8..6b6c0944a 100644 --- a/networking/interface.c +++ b/networking/interface.c @@ -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, diff --git a/networking/libiproute/ipaddress.c b/networking/libiproute/ipaddress.c index 17a838411..ecc3848ff 100644 --- a/networking/libiproute/ipaddress.c +++ b/networking/libiproute/ipaddress.c @@ -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 = diff --git a/networking/udhcp/common.c b/networking/udhcp/common.c index 8e9b93655..ae818db05 100644 --- a/networking/udhcp/common.c +++ b/networking/udhcp/common.c @@ -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 */ diff --git a/networking/udhcp/d6_dhcpc.c b/networking/udhcp/d6_dhcpc.c index 9d2a8f5d3..9fc690315 100644 --- a/networking/udhcp/d6_dhcpc.c +++ b/networking/udhcp/d6_dhcpc.c @@ -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 }, diff --git a/shell/ash.c b/shell/ash.c index 55df54bd0..adb0f223a 100644 --- a/shell/ash.c +++ b/shell/ash.c @@ -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 */ diff --git a/util-linux/hexdump.c b/util-linux/hexdump.c index 57e7e8db7..307a84803 100644 --- a/util-linux/hexdump.c +++ b/util-linux/hexdump.c @@ -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 */ diff --git a/util-linux/nsenter.c b/util-linux/nsenter.c index e6339da2f..1aa045b35 100644 --- a/util-linux/nsenter.c +++ b/util-linux/nsenter.c @@ -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", }, diff --git a/util-linux/unshare.c b/util-linux/unshare.c index 68ccdd874..06b938074 100644 --- a/util-linux/unshare.c +++ b/util-linux/unshare.c @@ -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" },