decrease paddign: gcc-9.3.1 slaps 32-byte alignment on arrays willy-nilly
No binary (build failed)
—
(log yok)
| @@ -1304,7 +1304,7 @@ postrm abort-install <old_version> | |
| postrm abort-upgrade <old_version> | |
| postrm disappear <overwriter> <version> | |
| */ | |
| - | static const char *const all_control_files[] = { |
| + | static const char *const all_control_files[] ALIGN_PTR = { |
| "preinst", "postinst", "prerm", "postrm", | |
| "list", "md5sums", "shlibs", "conffiles", | |
| "config", "templates" | |
| @@ -459,7 +459,7 @@ int mainGtU(EState* state, | |
| * usually small, typically <= 20. | |
| */ | |
| static | |
| - | const uint32_t incs[14] = { |
| + | const uint32_t incs[14] ALIGN4 = { |
| 1, 4, 13, 40, 121, 364, 1093, 3280, | |
| 9841, 29524, 88573, 265720, | |
| 797161, 2391484 | |
| @@ -20,7 +20,7 @@ enum { | |
| TAR_MAX, | |
| }; | |
| - | static const char *const tar_var[] = { |
| + | static const char *const tar_var[] ALIGN_PTR = { |
| // "FILETYPE", | |
| "MODE", | |
| "FILENAME", | |
| @@ -627,7 +627,7 @@ decode_one_format(const char *s_orig, const char *s, struct tspec *tspec) | |
| bytes_to_unsigned_dec_digits, | |
| bytes_to_hex_digits, | |
| }; | |
| - | static const char doux_fmtstring[][sizeof(" %%0%u%s")] = { |
| + | static const char doux_fmtstring[][sizeof(" %%0%u%s")] ALIGN1 = { |
| " %%%u%s", | |
| " %%0%u%s", | |
| " %%%u%s", | |
| @@ -1148,7 +1148,7 @@ dump_strings(off_t address, off_t end_offset) | |
| static int | |
| parse_old_offset(const char *s, off_t *offset) | |
| { | |
| - | static const struct suffix_mult Bb[] = { |
| + | static const struct suffix_mult Bb[] ALIGN_SUFFIX = { |
| { "B", 1024 }, | |
| { "b", 512 }, | |
| { "", 0 } | |
| @@ -44,7 +44,7 @@ | |
| #include "common_bufsiz.h" | |
| #if ENABLE_FEATURE_SPLIT_FANCY | |
| - | static const struct suffix_mult split_suffixes[] = { |
| + | static const struct suffix_mult split_suffixes[] ALIGN_SUFFIX = { |
| { "b", 512 }, | |
| { "k", 1024 }, | |
| { "m", 1024*1024 }, | |
| @@ -208,7 +208,7 @@ FS_TYPE(0x62656572, "sysfs") | |
| static const char *human_fstype(uint32_t f_type) | |
| { | |
| # define FS_TYPE(type, name) type, | |
| - | static const uint32_t fstype[] = { |
| + | static const uint32_t fstype[] ALIGN4 = { |
| FS_TYPE_LIST | |
| }; | |
| # undef FS_TYPE | |
| @@ -487,7 +487,7 @@ static const char mode_name[] ALIGN1 = | |
| #undef MI_ENTRY | |
| #define MI_ENTRY(N,T,F,B,M) { T, F, M, B }, | |
| - | static const struct mode_info mode_info[] = { |
| + | static const struct mode_info mode_info[] ALIGN4 = { |
| /* This should be verbatim cut-n-paste copy of the above MI_ENTRYs */ | |
| MI_ENTRY("evenp", combination, REV | OMIT, 0, 0 ) | |
| MI_ENTRY("parity", combination, REV | OMIT, 0, 0 ) | |
| @@ -905,7 +905,7 @@ static void display_window_size(int fancy) | |
| } | |
| } | |
| - | static const struct suffix_mult stty_suffixes[] = { |
| + | static const struct suffix_mult stty_suffixes[] ALIGN_SUFFIX = { |
| { "b", 512 }, | |
| { "k", 1024 }, | |
| { "B", 1024 }, | |
| @@ -306,7 +306,7 @@ struct operator_t { | |
| unsigned char op_num, op_type; | |
| }; | |
| - | static const struct operator_t ops_table[] = { |
| + | static const struct operator_t ops_table[] ALIGN2 = { |
| { /* "-r" */ FILRD , UNOP }, | |
| { /* "-w" */ FILWR , UNOP }, | |
| { /* "-x" */ FILEX , UNOP }, | |
| @@ -127,7 +127,7 @@ int fgetsetflags(const char *name, unsigned long *get_flags, unsigned long set_f | |
| /* Print file attributes on an ext2 file system */ | |
| - | const uint32_t e2attr_flags_value[] = { |
| + | const uint32_t e2attr_flags_value[] ALIGN4 = { |
| #ifdef ENABLE_COMPRESSION | |
| EXT2_COMPRBLK_FL, | |
| EXT2_DIRTY_FL, | |
| @@ -405,7 +405,7 @@ static const char tokenlist[] ALIGN1 = | |
| #define OC_B OC_BUILTIN | |
| - | static const uint32_t tokeninfo[] = { |
| + | static const uint32_t tokeninfo[] ALIGN4 = { |
| 0, | |
| 0, | |
| OC_REGEXP, | |
| @@ -1441,7 +1441,7 @@ static action*** parse_params(char **argv) | |
| #else | |
| #define XATOU_SFX xatoul_sfx | |
| #endif | |
| - | static const struct suffix_mult find_suffixes[] = { |
| + | static const struct suffix_mult find_suffixes[] ALIGN_SUFFIX = { |
| { "c", 1 }, | |
| { "w", 2 }, | |
| { "", 512 }, | |
| @@ -1026,8 +1026,9 @@ void generate_uuid(uint8_t *buf) FAST_FUNC; | |
| /* Last element is marked by mult == 0 */ | |
| struct suffix_mult { | |
| char suffix[4]; | |
| - | unsigned mult; |
| + | uint32_t mult; |
| }; | |
| + | #define ALIGN_SUFFIX ALIGN4 |
| extern const struct suffix_mult bkm_suffixes[]; | |
| #define km_suffixes (bkm_suffixes + 1) | |
| extern const struct suffix_mult cwbkMG_suffixes[]; | |
| @@ -342,6 +342,8 @@ typedef unsigned smalluint; | |
| # define ALIGN2 | |
| # define ALIGN4 | |
| #endif | |
| + | #define ALIGN8 __attribute__((aligned(8))) |
| + | #define ALIGN_PTR __attribute__((aligned(sizeof(void*)))) |
| /* | |
| * For 0.9.29 and svn, __ARCH_USE_MMU__ indicates no-mmu reliably. | |
| @@ -17,7 +17,7 @@ extern int capget(cap_user_header_t header, const cap_user_data_t data); | |
| // This way, libcap needs not be installed in build environment. | |
| #include "libbb.h" | |
| - | static const char *const capabilities[] = { |
| + | static const char *const capabilities[] ALIGN_PTR = { |
| "chown", | |
| "dac_override", | |
| "dac_read_search", | |
| @@ -21,7 +21,7 @@ | |
| #include "libbb.h" | |
| - | static const struct suffix_mult duration_suffixes[] = { |
| + | static const struct suffix_mult duration_suffixes[] ALIGN_SUFFIX = { |
| { "s", 1 }, | |
| { "m", 60 }, | |
| { "h", 60*60 }, | |
| @@ -111,7 +111,7 @@ static void FAST_FUNC md5_process_block64(md5_ctx_t *ctx) | |
| They are defined in RFC 1321 as | |
| T[i] = (int)(2^32 * fabs(sin(i))), i=1..64 | |
| */ | |
| - | static const uint32_t C_array[] = { |
| + | static const uint32_t C_array[] ALIGN4 = { |
| /* round 1 */ | |
| 0xd76aa478, 0xe8c7b756, 0x242070db, 0xc1bdceee, | |
| 0xf57c0faf, 0x4787c62a, 0xa8304613, 0xfd469501, | |
| @@ -492,7 +492,7 @@ unsigned FAST_FUNC md5_end(md5_ctx_t *ctx, void *resbuf) | |
| static void FAST_FUNC sha1_process_block64(sha1_ctx_t *ctx) | |
| { | |
| - | static const uint32_t rconsts[] = { |
| + | static const uint32_t rconsts[] ALIGN4 = { |
| 0x5A827999, 0x6ED9EBA1, 0x8F1BBCDC, 0xCA62C1D6 | |
| }; | |
| int i, j; | |
| @@ -567,7 +567,7 @@ typedef uint64_t sha_K_int; | |
| typedef uint32_t sha_K_int; | |
| # define K(v) (uint32_t)(v >> 32) | |
| #endif | |
| - | static const sha_K_int sha_K[] = { |
| + | static const sha_K_int sha_K[] ALIGN8 = { |
| K(0x428a2f98d728ae22ULL), K(0x7137449123ef65cdULL), | |
| K(0xb5c0fbcfec4d3b2fULL), K(0xe9b5dba58189dbbcULL), | |
| K(0x3956c25bf348b538ULL), K(0x59f111f1b605d019ULL), | |
| @@ -760,7 +760,7 @@ void FAST_FUNC sha1_begin(sha1_ctx_t *ctx) | |
| ctx->process_block = sha1_process_block64; | |
| } | |
| - | static const uint32_t init256[] = { |
| + | static const uint32_t init256[] ALIGN4 = { |
| 0, | |
| 0, | |
| 0x6a09e667, | |
| @@ -773,7 +773,7 @@ static const uint32_t init256[] = { | |
| 0x5be0cd19, | |
| }; | |
| #if NEED_SHA512 | |
| - | static const uint32_t init512_lo[] = { |
| + | static const uint32_t init512_lo[] ALIGN4 = { |
| 0, | |
| 0, | |
| 0xf3bcc908, | |
| @@ -1009,7 +1009,7 @@ static void sha3_process_block72(uint64_t *state) | |
| #if OPTIMIZE_SHA3_FOR_32 | |
| /* | |
| - | static const uint32_t IOTA_CONST_0[NROUNDS] = { |
| + | static const uint32_t IOTA_CONST_0[NROUNDS] ALIGN4 = { |
| 0x00000001UL, | |
| 0x00000000UL, | |
| 0x00000000UL, | |
| @@ -1038,7 +1038,7 @@ static void sha3_process_block72(uint64_t *state) | |
| ** bits are in lsb: 0101 0000 1111 0100 1111 0001 | |
| */ | |
| uint32_t IOTA_CONST_0bits = (uint32_t)(0x0050f4f1); | |
| - | static const uint32_t IOTA_CONST_1[NROUNDS] = { |
| + | static const uint32_t IOTA_CONST_1[NROUNDS] ALIGN4 = { |
| 0x00000000UL, | |
| 0x00000089UL, | |
| 0x8000008bUL, | |
| @@ -1174,7 +1174,7 @@ static void sha3_process_block72(uint64_t *state) | |
| combine_halves(state); | |
| #else | |
| /* Native 64-bit algorithm */ | |
| - | static const uint16_t IOTA_CONST[NROUNDS] = { |
| + | static const uint16_t IOTA_CONST[NROUNDS] ALIGN2 = { |
| /* Elements should be 64-bit, but top half is always zero | |
| * or 0x80000000. We encode 63rd bits in a separate word below. | |
| * Same is true for 31th bits, which lets us use 16-bit table | |
| @@ -1210,15 +1210,15 @@ static void sha3_process_block72(uint64_t *state) | |
| /* bit for CONST[0] is in msb: 0001 0110 0011 1000 0001 1011 */ | |
| const uint32_t IOTA_CONST_bit31 = (uint32_t)(0x16381b00); | |
| - | static const uint8_t ROT_CONST[24] = { |
| + | static const uint8_t ROT_CONST[24] ALIGN1 = { |
| 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 2, 14, | |
| 27, 41, 56, 8, 25, 43, 62, 18, 39, 61, 20, 44, | |
| }; | |
| - | static const uint8_t PI_LANE[24] = { |
| + | static const uint8_t PI_LANE[24] ALIGN1 = { |
| 10, 7, 11, 17, 18, 3, 5, 16, 8, 21, 24, 4, | |
| 15, 23, 19, 13, 12, 2, 20, 14, 22, 9, 6, 1, | |
| }; | |
| - | /*static const uint8_t MOD5[10] = { 0, 1, 2, 3, 4, 0, 1, 2, 3, 4, };*/ |
| + | /*static const uint8_t MOD5[10] ALIGN1 = { 0, 1, 2, 3, 4, 0, 1, 2, 3, 4, };*/ |
| unsigned x; | |
| unsigned round; | |
| @@ -27,7 +27,7 @@ | |
| #define mode_t unsigned short | |
| #endif | |
| - | static const mode_t mode_flags[] = { |
| + | static const mode_t mode_flags[] ALIGN4 = { |
| S_IRUSR, S_IWUSR, S_IXUSR, S_ISUID, | |
| S_IRGRP, S_IWGRP, S_IXGRP, S_ISGID, | |
| S_IROTH, S_IWOTH, S_IXOTH, S_ISVTX | |
| @@ -65,25 +65,25 @@ | |
| /* A pile of data */ | |
| - | static const uint8_t IP[64] = { |
| + | static const uint8_t IP[64] ALIGN1 = { |
| 58, 50, 42, 34, 26, 18, 10, 2, 60, 52, 44, 36, 28, 20, 12, 4, | |
| 62, 54, 46, 38, 30, 22, 14, 6, 64, 56, 48, 40, 32, 24, 16, 8, | |
| 57, 49, 41, 33, 25, 17, 9, 1, 59, 51, 43, 35, 27, 19, 11, 3, | |
| 61, 53, 45, 37, 29, 21, 13, 5, 63, 55, 47, 39, 31, 23, 15, 7 | |
| }; | |
| - | static const uint8_t key_perm[56] = { |
| + | static const uint8_t key_perm[56] ALIGN1 = { |
| 57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18, | |
| 10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44, 36, | |
| 63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22, | |
| 14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4 | |
| }; | |
| - | static const uint8_t key_shifts[16] = { |
| + | static const uint8_t key_shifts[16] ALIGN1 = { |
| 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1 | |
| }; | |
| - | static const uint8_t comp_perm[48] = { |
| + | static const uint8_t comp_perm[48] ALIGN1 = { |
| 14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10, | |
| 23, 19, 12, 4, 26, 8, 16, 7, 27, 20, 13, 2, | |
| 41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48, | |
| @@ -181,13 +181,12 @@ static const uint8_t u_sbox[8][32] = { | |
| }; | |
| #endif | |
| - | static const uint8_t pbox[32] = { |
| + | static const uint8_t pbox[32] ALIGN1 = { |
| 16, 7, 20, 21, 29, 12, 28, 17, 1, 15, 23, 26, 5, 18, 31, 10, | |
| 2, 8, 24, 14, 32, 27, 3, 9, 19, 13, 30, 6, 22, 11, 4, 25 | |
| }; | |
| - | static const uint32_t bits32[32] = |
| - | { |
| + | static const uint32_t bits32[32] ALIGN4 = { |
| 0x80000000, 0x40000000, 0x20000000, 0x10000000, | |
| 0x08000000, 0x04000000, 0x02000000, 0x01000000, | |
| 0x00800000, 0x00400000, 0x00200000, 0x00100000, | |
| @@ -198,7 +197,7 @@ static const uint32_t bits32[32] = | |
| 0x00000008, 0x00000004, 0x00000002, 0x00000001 | |
| }; | |
| - | static const uint8_t bits8[8] = { 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01 }; |
| + | static const uint8_t bits8[8] ALIGN1 = { 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01 }; |
| static int | |
| @@ -28,7 +28,7 @@ struct speed_map { | |
| }; | |
| /* On Linux, Bxx constants are 0..15 (up to B38400) and 0x1001..0x100f */ | |
| - | static const struct speed_map speeds[] = { |
| + | static const struct speed_map speeds[] ALIGN4 = { |
| {B0, 0}, | |
| {B50, 50}, | |
| {B75, 75}, | |
| @@ -68,14 +68,14 @@ uint16_t FAST_FUNC xatou16(const char *numstr) | |
| return xatou_range(numstr, 0, 0xffff); | |
| } | |
| - | const struct suffix_mult bkm_suffixes[] = { |
| + | const struct suffix_mult bkm_suffixes[] ALIGN_SUFFIX = { |
| { "b", 512 }, | |
| { "k", 1024 }, | |
| { "m", 1024*1024 }, | |
| { "", 0 } | |
| }; | |
| - | const struct suffix_mult cwbkMG_suffixes[] = { |
| + | const struct suffix_mult cwbkMG_suffixes[] ALIGN_SUFFIX = { |
| { "c", 1 }, | |
| { "w", 2 }, | |
| { "b", 512 }, | |
| @@ -96,7 +96,7 @@ const struct suffix_mult cwbkMG_suffixes[] = { | |
| { "", 0 } | |
| }; | |
| - | const struct suffix_mult kmg_i_suffixes[] = { |
| + | const struct suffix_mult kmg_i_suffixes[] ALIGN_SUFFIX = { |
| { "KiB", 1024 }, | |
| { "kiB", 1024 }, | |
| { "K", 1024 }, | |
| @@ -492,7 +492,7 @@ static void load_crontab(const char *fileName) | |
| const char *name; | |
| const char tokens[8]; | |
| } SpecialEntry; | |
| - | static const SpecialEntry SpecAry[] = { |
| + | static const SpecialEntry SpecAry[] ALIGN8 = { |
| /* hour day month weekday */ | |
| { "yearly", "0\0" "1\0" "1\0" "*" }, | |
| { "annually", "0\0" "1\0" "1\0" "*" }, | |
| @@ -195,7 +195,7 @@ struct op { | |
| void (*function) (void); | |
| }; | |
| - | static const struct op operators[] = { |
| + | static const struct op operators[] ALIGN_PTR = { |
| #if ENABLE_FEATURE_DC_LIBM | |
| {"^", power}, | |
| // {"exp", power}, | |
| @@ -1366,7 +1366,7 @@ static NOINLINE void dump_identity(const struct hd_driveid *id) | |
| } | |
| if (id->capability & 1) { | |
| if (id->dma_1word | id->dma_mword) { | |
| - | static const int dma_wmode_masks[] = { 0x100, 1, 0x200, 2, 0x400, 4, 0xf800, 0xf8 }; |
| + | static const int dma_wmode_masks[] ALIGN4 = { 0x100, 1, 0x200, 2, 0x400, 4, 0xf800, 0xf8 }; |
| printf("\n DMA modes: "); | |
| print_flags_separated(dma_wmode_masks, | |
| "*\0""sdma0 \0""*\0""sdma1 \0""*\0""sdma2 \0""*\0""sdma? \0", | |
| @@ -1053,18 +1053,13 @@ struct adap_desc { | |
| }; | |
| static const struct adap_desc adap_descs[] = { | |
| - | { .funcs = "dummy", |
| - | .algo = "Dummy bus", }, |
| - | { .funcs = "isa", |
| - | .algo = "ISA bus", }, |
| - | { .funcs = "i2c", |
| - | .algo = "I2C adapter", }, |
| - | { .funcs = "smbus", |
| - | .algo = "SMBus adapter", }, |
| + | { .funcs = "dummy", .algo = "Dummy bus", }, |
| + | { .funcs = "isa", .algo = "ISA bus", }, |
| + | { .funcs = "i2c", .algo = "I2C adapter", }, |
| + | { .funcs = "smbus", .algo = "SMBus adapter", }, |
| }; | |
| - | struct i2c_func |
| - | { |
| + | struct i2c_func { |
| long value; | |
| const char* name; | |
| }; | |
| @@ -30,7 +30,7 @@ | |
| #include <sys/mtio.h> | |
| /* missing: eod/seod, stoptions, stwrthreshold, densities */ | |
| - | static const short opcode_value[] = { |
| + | static const short opcode_value[] ALIGN2 = { |
| MTBSF, | |
| MTBSFM, | |
| MTBSR, | |
| @@ -381,8 +381,7 @@ static bool cmd_needs_arg(int cmd) | |
| # error "Unexpected flags size" | |
| #endif | |
| - | static const uint16_t setbits[CMD_FLAG_LAST + 1] = |
| - | { |
| + | static const uint16_t setbits[CMD_FLAG_LAST + 1] ALIGN2 = { |
| 0, | |
| ASYNC_SPD_HI, | |
| ASYNC_SPD_VHI, | |
| @@ -97,7 +97,7 @@ static unsigned get_num_from_file(const char *path, unsigned max) | |
| int ubi_tools_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; | |
| int ubi_tools_main(int argc UNUSED_PARAM, char **argv) | |
| { | |
| - | static const struct suffix_mult size_suffixes[] = { |
| + | static const struct suffix_mult size_suffixes[] ALIGN_SUFFIX = { |
| { "KiB", 1024 }, | |
| { "MiB", 1024*1024 }, | |
| { "GiB", 1024*1024*1024 }, | |
| @@ -88,7 +88,7 @@ int watchdog_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; | |
| int watchdog_main(int argc UNUSED_PARAM, char **argv) | |
| { | |
| static const int enable = WDIOS_ENABLECARD; | |
| - | static const struct suffix_mult suffixes[] = { |
| + | static const struct suffix_mult suffixes[] ALIGN_SUFFIX = { |
| { "ms", 1 }, | |
| { "", 1000 }, | |
| { "", 0 } | |
| @@ -20,7 +20,7 @@ | |
| #include "libbb.h" | |
| #include "modutils.h" | |
| - | static const char *const shortcuts[] = { |
| + | static const char *const shortcuts[] ALIGN_PTR = { |
| "filename", // -n | |
| "author", // -a | |
| "description", // -d | |
| @@ -304,7 +304,7 @@ static const char api_modes[] ALIGN1 = "empwia"; | |
| static const struct { | |
| const char *name; | |
| smallint (*func)(void); | |
| - | } method_table[] = { |
| + | } method_table[] ALIGN_PTR = { |
| { "SIOCETHTOOL" , &detect_link_ethtool }, | |
| { "SIOCGMIIPHY" , &detect_link_mii }, | |
| { "SIOCDEVPRIVATE" , &detect_link_priv }, | |
| @@ -746,7 +746,7 @@ static const struct hwtype *const hwtypes[] = { | |
| }; | |
| #ifdef IFF_PORTSEL | |
| - | static const char *const if_port_text[] = { |
| + | static const char *const if_port_text[] ALIGN_PTR = { |
| /* Keep in step with <linux/netdevice.h> */ | |
| "unknown", | |
| "10base2", | |
| @@ -400,7 +400,7 @@ int ip_main(int argc UNUSED_PARAM, char **argv) | |
| IF_FEATURE_IP_RULE("rule\0") | |
| IF_FEATURE_IP_NEIGH("neigh\0") | |
| ; | |
| - | static const ip_func_ptr_t ip_func_ptrs[] = { |
| + | static const ip_func_ptr_t ip_func_ptrs[] ALIGN_PTR = { |
| ip_print_help, | |
| IF_FEATURE_IP_ADDRESS(do_ipaddr,) | |
| IF_FEATURE_IP_ROUTE(do_iproute,) | |
| @@ -77,7 +77,7 @@ static rtnl_tab_t *rtnl_rtprot_tab; | |
| static void rtnl_rtprot_initialize(void) | |
| { | |
| - | static const char *const init_tab[] = { |
| + | static const char *const init_tab[] ALIGN_PTR = { |
| "none", | |
| "redirect", | |
| "kernel", | |
| @@ -460,9 +460,9 @@ static NOINLINE void INET6_setroute(int action, char **args) | |
| #endif | |
| static const | |
| - | IF_NOT_FEATURE_IPV6(uint16_t) |
| - | IF_FEATURE_IPV6(unsigned) |
| - | flagvals[] = { /* Must agree with flagchars[]. */ |
| + | IF_NOT_FEATURE_IPV6(uint16_t flagvals[] ALIGN2 = ) |
| + | IF_FEATURE_IPV6(uint32_t flagvals[] ALIGN4 = ) |
| + | { /* Must agree with flagchars[]. */ |
| RTF_UP, | |
| RTF_GATEWAY, | |
| RTF_HOST, | |
| @@ -1953,7 +1953,7 @@ static void send_client_key_exchange(tls_state_t *tls) | |
| premaster_size = sizeof(rsa_premaster); | |
| } else { | |
| /* ECDHE */ | |
| - | static const uint8_t basepoint9[CURVE25519_KEYSIZE] = {9}; |
| + | static const uint8_t basepoint9[CURVE25519_KEYSIZE] ALIGN1 = {9}; |
| uint8_t privkey[CURVE25519_KEYSIZE]; //[32] | |
| if (!(tls->flags & GOT_EC_KEY)) | |
| @@ -398,7 +398,7 @@ struct config_keyword { | |
| #define OFS(field) offsetof(struct server_data_t, field) | |
| - | static const struct config_keyword keywords[] = { |
| + | static const struct config_keyword keywords[] ALIGN_PTR = { |
| /* keyword handler variable address default */ | |
| {"start" , udhcp_str2nip , OFS(start_ip ), "192.168.0.20"}, | |
| {"end" , udhcp_str2nip , OFS(end_ip ), "192.168.0.254"}, | |
| @@ -838,7 +838,7 @@ static void FAST_FUNC collect_info(s_stat *s) | |
| typedef s_stat* init_func(const char *param); | |
| static const char options[] ALIGN1 = "ncmsfixptTbr"; | |
| - | static init_func *const init_functions[] = { |
| + | static init_func *const init_functions[] ALIGN_PTR = { |
| init_if, | |
| init_cpu, | |
| init_mem, | |
| @@ -375,7 +375,7 @@ static void func_pcpu(char *buf, int size, const procps_status_t *ps) | |
| } | |
| */ | |
| - | static const ps_out_t out_spec[] = { |
| + | static const ps_out_t out_spec[] ALIGN_PTR = { |
| /* Mandated by http://pubs.opengroup.org/onlinepubs/9699919799/utilities/ps.html: */ | |
| { 8 , "user" ,"USER" ,func_user ,PSSCAN_UIDGID }, | |
| { 8 , "group" ,"GROUP" ,func_group ,PSSCAN_UIDGID }, | |
| @@ -775,7 +775,7 @@ static NOINLINE unsigned logdir_open(struct logdir *ld, const char *fn) | |
| ld->nmin = xatoi_positive(&s[1]); | |
| break; | |
| case 't': { | |
| - | static const struct suffix_mult mh_suffixes[] = { |
| + | static const struct suffix_mult mh_suffixes[] ALIGN_SUFFIX = { |
| { "m", 60 }, | |
| { "h", 60*60 }, | |
| /*{ "d", 24*60*60 },*/ | |
| @@ -2091,7 +2091,7 @@ static const struct { | |
| int flags; | |
| const char *var_text; | |
| void (*var_func)(const char *) FAST_FUNC; | |
| - | } varinit_data[] = { |
| + | } varinit_data[] ALIGN_PTR = { |
| /* | |
| * Note: VEXPORT would not work correctly here for NOFORK applets: | |
| * some environment strings may be constant. | |
| @@ -4811,7 +4811,7 @@ static char *cmdnextc; | |
| static void | |
| cmdputs(const char *s) | |
| { | |
| - | static const char vstype[VSTYPE + 1][3] = { |
| + | static const char vstype[VSTYPE + 1][3] ALIGN1 = { |
| "", "}", "-", "+", "?", "=", | |
| "%", "%%", "#", "##" | |
| IF_BASH_SUBSTR(, ":") | |
| @@ -8510,7 +8510,7 @@ enum { | |
| , /* thus far 29 bits used */ | |
| }; | |
| - | static const char *const tokname_array[] = { |
| + | static const char *const tokname_array[] ALIGN_PTR = { |
| "end of file", | |
| "newline", | |
| "redirection", | |
| @@ -596,10 +596,10 @@ typedef struct in_str { | |
| /* The descrip member of this structure is only used to make | |
| * debugging output pretty */ | |
| static const struct { | |
| - | int mode; |
| + | int32_t mode; |
| signed char default_fd; | |
| char descrip[3]; | |
| - | } redir_table[] = { |
| + | } redir_table[] ALIGN4 = { |
| { O_RDONLY, 0, "<" }, | |
| { O_CREAT|O_TRUNC|O_WRONLY, 1, ">" }, | |
| { O_CREAT|O_APPEND|O_WRONLY, 1, ">>" }, | |
| @@ -1143,7 +1143,7 @@ struct built_in_command { | |
| #endif | |
| }; | |
| - | static const struct built_in_command bltins1[] = { |
| + | static const struct built_in_command bltins1[] ALIGN_PTR = { |
| BLTIN("." , builtin_source , "Run commands in file"), | |
| BLTIN(":" , builtin_true , NULL), | |
| #if ENABLE_HUSH_JOB | |
| @@ -1228,7 +1228,7 @@ static const struct built_in_command bltins1[] = { | |
| /* These builtins won't be used if we are on NOMMU and need to re-exec | |
| * (it's cheaper to run an external program in this case): | |
| */ | |
| - | static const struct built_in_command bltins2[] = { |
| + | static const struct built_in_command bltins2[] ALIGN_PTR = { |
| #if ENABLE_HUSH_TEST | |
| BLTIN("[" , builtin_test , NULL), | |
| #endif | |
| @@ -3895,7 +3895,7 @@ struct reserved_combo { | |
| char literal[6]; | |
| unsigned char res; | |
| unsigned char assignment_flag; | |
| - | int flag; |
| + | uint32_t flag; |
| }; | |
| enum { | |
| FLAG_END = (1 << RES_NONE ), | |
| @@ -3928,7 +3928,7 @@ static const struct reserved_combo* match_reserved_word(o_string *word) | |
| * to turn the compound list into a command. | |
| * FLAG_START means the word must start a new compound list. | |
| */ | |
| - | static const struct reserved_combo reserved_list[] = { |
| + | static const struct reserved_combo reserved_list[] ALIGN4 = { |
| # if ENABLE_HUSH_IF | |
| { "!", RES_NONE, NOT_ASSIGNMENT , 0 }, | |
| { "if", RES_IF, MAYBE_ASSIGNMENT, FLAG_THEN | FLAG_START }, | |
| @@ -324,7 +324,7 @@ struct limits { | |
| uint8_t factor_shift; /* shift by to get rlim_{cur,max} values */ | |
| }; | |
| - | static const struct limits limits_tbl[] = { |
| + | static const struct limits limits_tbl[] ALIGN2 = { |
| { RLIMIT_CORE, 9, }, // -c | |
| { RLIMIT_DATA, 10, }, // -d | |
| { RLIMIT_NICE, 0, }, // -e | |
| @@ -99,7 +99,7 @@ struct acpi_event { | |
| const char *desc; | |
| }; | |
| - | static const struct acpi_event f_evt_tab[] = { |
| + | static const struct acpi_event f_evt_tab[] ALIGN_PTR = { |
| { "EV_KEY", 0x01, "KEY_POWER", 116, 1, "button/power PWRF 00000080" }, | |
| { "EV_KEY", 0x01, "KEY_POWER", 116, 1, "button/power PWRB 00000080" }, | |
| { "EV_SW", 0x05, "SW_LID", 0x00, 1, "button/lid LID0 00000080" }, | |
| @@ -110,7 +110,7 @@ struct acpi_action { | |
| const char *action; | |
| }; | |
| - | static const struct acpi_action f_act_tab[] = { |
| + | static const struct acpi_action f_act_tab[] ALIGN_PTR = { |
| { "PWRF", "PWRF/00000080" }, | |
| { "LID0", "LID/00000080" }, | |
| }; | |
| @@ -193,7 +193,7 @@ static const struct cmdoptions_t { | |
| const char name[9]; | |
| const unsigned char param_count; | |
| const unsigned char code; | |
| - | } g_cmdoptions[] = { |
| + | } g_cmdoptions[] ALIGN1 = { |
| /*"12345678" + NUL */ | |
| //TODO: convert to index_in_strings() | |
| { "fb" , 1, CMD_FB }, | |
| @@ -303,7 +303,7 @@ static sector_t get_nr_sects(const struct partition *p); | |
| /* DOS partition types */ | |
| - | static const char *const i386_sys_types[] = { |
| + | static const char *const i386_sys_types[] ALIGN_PTR = { |
| "\x00" "Empty", | |
| "\x01" "FAT12", | |
| "\x04" "FAT16 <32M", | |
| @@ -144,7 +144,7 @@ struct xbsd_disklabel { | |
| #define BSD_DSTYPE_DOSPART(s) ((s) & 3) /* dos partition number */ | |
| #define BSD_DSTYPE_GEOMETRY 0x10 /* drive params in label */ | |
| - | static const char *const xbsd_dktypenames[] = { |
| + | static const char *const xbsd_dktypenames[] ALIGN_PTR = { |
| "unknown", | |
| "SMD", | |
| "MSCP", | |
| @@ -190,7 +190,7 @@ static const char *const xbsd_dktypenames[] = { | |
| #define BSD_FS_MSDOS 8 /* MS-DOS file system */ | |
| #endif | |
| - | static const char *const xbsd_fstypes[] = { |
| + | static const char *const xbsd_fstypes[] ALIGN_PTR = { |
| "\x00" "unused", /* BSD_FS_UNUSED */ | |
| "\x01" "swap", /* BSD_FS_SWAP */ | |
| "\x02" "Version 6", /* BSD_FS_V6 */ | |
| @@ -174,7 +174,7 @@ isinfreelist(unsigned int b) | |
| * end of free blocks section | |
| */ | |
| - | static const char *const sgi_sys_types[] = { |
| + | static const char *const sgi_sys_types[] ALIGN_PTR = { |
| /* SGI_VOLHDR */ "\x00" "SGI volhdr" , | |
| /* 0x01 */ "\x01" "SGI trkrepl" , | |
| /* 0x02 */ "\x02" "SGI secrepl" , | |
| @@ -61,7 +61,7 @@ guess_device_type(void) | |
| } | |
| } | |
| - | static const char *const sun_sys_types[] = { |
| + | static const char *const sun_sys_types[] ALIGN_PTR = { |
| "\x00" "Empty" , /* 0 */ | |
| "\x01" "Boot" , /* 1 */ | |
| "\x02" "SunOS root" , /* 2 */ | |
| @@ -133,7 +133,7 @@ static const struct sun_predefined_drives { | |
| unsigned short ntrks; | |
| unsigned short nsect; | |
| unsigned short rspeed; | |
| - | } sun_drives[] = { |
| + | } sun_drives[] ALIGN_PTR = { |
| { "Quantum","ProDrive 80S",1,832,2,834,6,34,3662}, | |
| { "Quantum","ProDrive 105S",1,974,2,1019,6,35,3662}, | |
| { "CDC","Wren IV 94171-344",3,1545,2,1549,9,46,3600}, | |
| @@ -131,7 +131,7 @@ static void allocate(uint8_t *bitmap, uint32_t blocksize, uint32_t start, uint32 | |
| static uint32_t has_super(uint32_t x) | |
| { | |
| // 0, 1 and powers of 3, 5, 7 up to 2^32 limit | |
| - | static const uint32_t supers[] = { |
| + | static const uint32_t supers[] ALIGN4 = { |
| 0, 1, 3, 5, 7, 9, 25, 27, 49, 81, 125, 243, 343, 625, 729, | |
| 2187, 2401, 3125, 6561, 15625, 16807, 19683, 59049, 78125, | |
| 117649, 177147, 390625, 531441, 823543, 1594323, 1953125, | |
| @@ -323,7 +323,7 @@ enum { | |
| // Standard mount options (from -o options or --options), | |
| // with corresponding flags | |
| - | static const int32_t mount_options[] = { |
| + | static const int32_t mount_options[] ALIGN4 = { |
| // MS_FLAGS set a bit. ~MS_FLAGS disable that bit. 0 flags are NOPs. | |
| IF_FEATURE_MOUNT_LOOP( | |
| @@ -49,7 +49,7 @@ | |
| typedef int FAST_FUNC (*raid_probe_fptr)(struct volume_id *id, /*uint64_t off,*/ uint64_t size); | |
| typedef int FAST_FUNC (*probe_fptr)(struct volume_id *id /*, uint64_t off*/); | |
| - | static const raid_probe_fptr raid1[] = { |
| + | static const raid_probe_fptr raid1[] ALIGN_PTR = { |
| #if ENABLE_FEATURE_VOLUMEID_LINUXRAID | |
| volume_id_probe_linux_raid, | |
| #endif | |
| @@ -76,7 +76,7 @@ static const raid_probe_fptr raid1[] = { | |
| #endif | |
| }; | |
| - | static const probe_fptr raid2[] = { |
| + | static const probe_fptr raid2[] ALIGN_PTR = { |
| #if ENABLE_FEATURE_VOLUMEID_LVM | |
| volume_id_probe_lvm1, | |
| volume_id_probe_lvm2, | |
| @@ -90,7 +90,7 @@ static const probe_fptr raid2[] = { | |
| }; | |
| /* signature in the first block, only small buffer needed */ | |
| - | static const probe_fptr fs1[] = { |
| + | static const probe_fptr fs1[] ALIGN_PTR = { |
| #if ENABLE_FEATURE_VOLUMEID_FAT | |
| volume_id_probe_vfat, | |
| #endif | |
| @@ -118,7 +118,7 @@ static const probe_fptr fs1[] = { | |
| }; | |
| /* fill buffer with maximum */ | |
| - | static const probe_fptr fs2[] = { |
| + | static const probe_fptr fs2[] ALIGN_PTR = { |
| #if ENABLE_FEATURE_VOLUMEID_LINUXSWAP | |
| volume_id_probe_linux_swap, | |
| #endif | |