trylink: produce even more info about final link stage
trylink: explain how to modify link and drastically decrease amount of padding (unfortunately, needs hand editing ATM). *: add ALIGN1 / ALIGN2 to global strings and arrays of bytes and shorts size saving: 0.5k
This commit is contained in:
parent
4185548984
commit
6ca409e0e4
119 changed files with 491 additions and 444 deletions
2
Makefile
2
Makefile
|
@ -569,7 +569,7 @@ busybox-all := $(core-y) $(libs-y)
|
|||
# May be overridden by arch/$(ARCH)/Makefile
|
||||
quiet_cmd_busybox__ ?= LINK $@
|
||||
cmd_busybox__ ?= $(srctree)/scripts/trylink $(CC) $(LDFLAGS) \
|
||||
-o $@ -Wl,-M \
|
||||
-o $@ -Wl,-Map -Wl,$@.map \
|
||||
-Wl,--warn-common -Wl,--sort-common -Wl,--gc-sections \
|
||||
-Wl,--start-group $(busybox-all) -Wl,--end-group \
|
||||
$(LDLIBS)
|
||||
|
|
|
@ -20,6 +20,6 @@ quiet_cmd_gen_usage_compressed = GEN include/usage_compressed.h
|
|||
HOSTCFLAGS_usage.o = -I$(srctree)/include
|
||||
|
||||
applets/applets.o: include/usage_compressed.h
|
||||
applets/usage: .config
|
||||
include/usage_compressed.h: applets/usage
|
||||
applets/usage: .config $(srctree)/applets/usage_compressed
|
||||
include/usage_compressed.h: applets/usage $(srctree)/applets/usage_compressed
|
||||
$(call cmd,gen_usage_compressed)
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
|
||||
#if ENABLE_SHOW_USAGE && !ENABLE_FEATURE_COMPRESS_USAGE
|
||||
/* Define usage_messages[] */
|
||||
static const char usage_messages[] = ""
|
||||
static const char usage_messages[] ALIGN1 = ""
|
||||
#define MAKE_USAGE
|
||||
#include "usage.h"
|
||||
#include "applets.h"
|
||||
|
@ -108,12 +108,12 @@ static char *get_trimmed_slice(char *s, char *e)
|
|||
}
|
||||
|
||||
/* Don't depend on the tools to combine strings. */
|
||||
static const char config_file[] = "/etc/busybox.conf";
|
||||
static const char config_file[] ALIGN1 = "/etc/busybox.conf";
|
||||
|
||||
/* We don't supply a value for the nul, so an index adjustment is
|
||||
* necessary below. Also, we use unsigned short here to save some
|
||||
* space even though these are really mode_t values. */
|
||||
static const unsigned short mode_mask[] = {
|
||||
static const unsigned short mode_mask[] ALIGN2 = {
|
||||
/* SST sst xxx --- */
|
||||
S_ISUID, S_ISUID|S_IXUSR, S_IXUSR, 0, /* user */
|
||||
S_ISGID, S_ISGID|S_IXGRP, S_IXGRP, 0, /* group */
|
||||
|
@ -255,7 +255,7 @@ static void parse_config_file(void)
|
|||
|
||||
for (i = 0; i < 3; i++) {
|
||||
/* There are 4 chars + 1 nul for each of user/group/other. */
|
||||
static const char mode_chars[] = "Ssx-\0" "Ssx-\0" "Ttx-";
|
||||
static const char mode_chars[] ALIGN1 = "Ssx-\0" "Ssx-\0" "Ttx-";
|
||||
|
||||
const char *q;
|
||||
q = strchrnul(mode_chars + 5*i, *e++);
|
||||
|
@ -499,8 +499,8 @@ static void install_links(const char *busybox, int use_symbolic_links)
|
|||
/* directory table
|
||||
* this should be consistent w/ the enum,
|
||||
* busybox.h::bb_install_loc_t, or else... */
|
||||
static const char usr_bin [] = "/usr/bin";
|
||||
static const char usr_sbin[] = "/usr/sbin";
|
||||
static const char usr_bin [] ALIGN1 = "/usr/bin";
|
||||
static const char usr_sbin[] ALIGN1 = "/usr/sbin";
|
||||
static const char *const install_dir[] = {
|
||||
&usr_bin [8], /* "", equivalent to "/" for concat_path_file() */
|
||||
&usr_bin [4], /* "/bin" */
|
||||
|
|
|
@ -12,7 +12,7 @@ sz=`"$loc/usage" | wc -c` || exit 1
|
|||
|
||||
exec >"$target"
|
||||
|
||||
echo 'static const char packed_usage[] = '
|
||||
echo 'static const char packed_usage[] ALIGN1 = '
|
||||
"$loc/usage" | bzip2 -1 | od -v -t x1 \
|
||||
| $SED -e 's/^[^ ]*//' -e 's/ *\(..\)/\\x\1/g' -e 's/^\(.*\)$/"\1"/'
|
||||
echo ';'
|
||||
|
|
|
@ -41,10 +41,11 @@ static void header_verbose_list_ar(const file_header_t *file_header)
|
|||
int ar_main(int argc, char **argv);
|
||||
int ar_main(int argc, char **argv)
|
||||
{
|
||||
static const char msg_unsupported_err[] ALIGN1 =
|
||||
"archive %s is not supported";
|
||||
|
||||
archive_handle_t *archive_handle;
|
||||
unsigned opt;
|
||||
static const char msg_unsupported_err[] =
|
||||
"Archive %s not supported. Install binutils 'ar'.";
|
||||
char magic[8];
|
||||
|
||||
archive_handle = init_handle();
|
||||
|
@ -88,7 +89,8 @@ int ar_main(int argc, char **argv)
|
|||
}
|
||||
archive_handle->offset += 7;
|
||||
|
||||
while (get_header_ar(archive_handle) == EXIT_SUCCESS) /* repeat */;
|
||||
while (get_header_ar(archive_handle) == EXIT_SUCCESS)
|
||||
continue;
|
||||
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
|
|
|
@ -582,7 +582,8 @@ static int read_package_field(const char *package_buffer, char **field_name, cha
|
|||
|
||||
static unsigned fill_package_struct(char *control_buffer)
|
||||
{
|
||||
static const char field_names[] = "Package\0""Version\0"
|
||||
static const char field_names[] ALIGN1 =
|
||||
"Package\0""Version\0"
|
||||
"Pre-Depends\0""Depends\0""Replaces\0""Provides\0"
|
||||
"Conflicts\0""Suggests\0""Recommends\0""Enhances\0";
|
||||
|
||||
|
@ -1226,7 +1227,7 @@ static int run_package_script(const char *package_name, const char *script_type)
|
|||
return result;
|
||||
}
|
||||
|
||||
static const char *all_control_files[] = {
|
||||
static const char *const all_control_files[] = {
|
||||
"preinst", "postinst", "prerm", "postrm",
|
||||
"list", "md5sums", "shlibs", "conffiles",
|
||||
"config", "templates", NULL
|
||||
|
|
|
@ -768,26 +768,24 @@ static void check_match(IPos start, IPos match, int length)
|
|||
#define BL_CODES 19
|
||||
/* number of codes used to transfer the bit lengths */
|
||||
|
||||
typedef uch extra_bits_t;
|
||||
|
||||
/* extra bits for each length code */
|
||||
static const extra_bits_t extra_lbits[LENGTH_CODES]= {
|
||||
static const uint8_t extra_lbits[LENGTH_CODES] ALIGN1 = {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4,
|
||||
4, 4, 5, 5, 5, 5, 0
|
||||
};
|
||||
|
||||
/* extra bits for each distance code */
|
||||
static const extra_bits_t extra_dbits[D_CODES] = {
|
||||
static const uint8_t extra_dbits[D_CODES] ALIGN1 = {
|
||||
0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9,
|
||||
10, 10, 11, 11, 12, 12, 13, 13
|
||||
};
|
||||
|
||||
/* extra bits for each bit length code */
|
||||
static const extra_bits_t extra_blbits[BL_CODES] = {
|
||||
static const uint8_t extra_blbits[BL_CODES] ALIGN1 = {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 7 };
|
||||
|
||||
/* number of codes at each bit length for an optimal tree */
|
||||
static const uch bl_order[BL_CODES] = {
|
||||
static const uint8_t bl_order[BL_CODES] ALIGN1 = {
|
||||
16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 };
|
||||
|
||||
#define STORED_BLOCK 0
|
||||
|
@ -861,7 +859,7 @@ typedef struct ct_data {
|
|||
typedef struct tree_desc {
|
||||
ct_data *dyn_tree; /* the dynamic tree */
|
||||
ct_data *static_tree; /* corresponding static tree or NULL */
|
||||
const extra_bits_t *extra_bits; /* extra bits for each code or NULL */
|
||||
const uint8_t *extra_bits; /* extra bits for each code or NULL */
|
||||
int extra_base; /* base index for extra_bits */
|
||||
int elems; /* max number of elements in the tree */
|
||||
int max_length; /* max bit length for the codes */
|
||||
|
@ -1064,7 +1062,7 @@ static void pqdownheap(ct_data * tree, int k)
|
|||
static void gen_bitlen(tree_desc * desc)
|
||||
{
|
||||
ct_data *tree = desc->dyn_tree;
|
||||
const extra_bits_t *extra = desc->extra_bits;
|
||||
const uint8_t *extra = desc->extra_bits;
|
||||
int base = desc->extra_base;
|
||||
int max_code = desc->max_code;
|
||||
int max_length = desc->max_length;
|
||||
|
|
|
@ -182,39 +182,39 @@ static state_t* alloc_state(void)
|
|||
#endif
|
||||
|
||||
|
||||
static const unsigned short mask_bits[] = {
|
||||
static const unsigned short mask_bits[] ALIGN2 = {
|
||||
0x0000, 0x0001, 0x0003, 0x0007, 0x000f, 0x001f, 0x003f, 0x007f, 0x00ff,
|
||||
0x01ff, 0x03ff, 0x07ff, 0x0fff, 0x1fff, 0x3fff, 0x7fff, 0xffff
|
||||
};
|
||||
|
||||
/* Copy lengths for literal codes 257..285 */
|
||||
static const unsigned short cplens[] = {
|
||||
static const unsigned short cplens[] ALIGN2 = {
|
||||
3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59,
|
||||
67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0
|
||||
};
|
||||
|
||||
/* note: see note #13 above about the 258 in this list. */
|
||||
/* Extra bits for literal codes 257..285 */
|
||||
static const unsigned char cplext[] = {
|
||||
static const unsigned char cplext[] ALIGN1 = {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5,
|
||||
5, 5, 5, 0, 99, 99
|
||||
}; /* 99 == invalid */
|
||||
|
||||
/* Copy offsets for distance codes 0..29 */
|
||||
static const unsigned short cpdist[] = {
|
||||
static const unsigned short cpdist[] ALIGN2 = {
|
||||
1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513,
|
||||
769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577
|
||||
};
|
||||
|
||||
/* Extra bits for distance codes */
|
||||
static const unsigned char cpdext[] = {
|
||||
static const unsigned char cpdext[] ALIGN1 = {
|
||||
0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10,
|
||||
11, 11, 12, 12, 13, 13
|
||||
};
|
||||
|
||||
/* Tables for deflate from PKZIP's appnote.txt. */
|
||||
/* Order of the bit length code lengths */
|
||||
static const unsigned char border[] = {
|
||||
static const unsigned char border[] ALIGN1 = {
|
||||
16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15
|
||||
};
|
||||
|
||||
|
|
|
@ -715,7 +715,7 @@ enum {
|
|||
OPT_NOPRESERVE_PERM = 1 << OPTBIT_NOPRESERVE_PERM, // no-same-permissions
|
||||
};
|
||||
#if ENABLE_FEATURE_TAR_LONG_OPTIONS
|
||||
static const char tar_longopts[] =
|
||||
static const char tar_longopts[] ALIGN1 =
|
||||
"list\0" No_argument "t"
|
||||
"extract\0" No_argument "x"
|
||||
"directory\0" Required_argument "C"
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
#include "libbb.h"
|
||||
|
||||
#if ENABLE_FEATURE_SETCONSOLE_LONG_OPTIONS
|
||||
static const char setconsole_longopts[] =
|
||||
static const char setconsole_longopts[] ALIGN1 =
|
||||
"reset\0" No_argument "r"
|
||||
;
|
||||
#endif
|
||||
|
|
|
@ -30,11 +30,11 @@
|
|||
#define MAXDAYS 42 /* max slots in a month array */
|
||||
#define SPACE -1 /* used in day array */
|
||||
|
||||
static const unsigned char days_in_month[] = {
|
||||
static const unsigned char days_in_month[] ALIGN1 = {
|
||||
0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31
|
||||
};
|
||||
|
||||
static const unsigned char sep1752[] = {
|
||||
static const unsigned char sep1752[] ALIGN1 = {
|
||||
1, 2, 14, 15, 16,
|
||||
17, 18, 19, 20, 21, 22, 23,
|
||||
24, 25, 26, 27, 28, 29, 30
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
|
||||
|
||||
/* option vars */
|
||||
static const char optstring[] = "b:c:f:d:sn";
|
||||
static const char optstring[] ALIGN1 = "b:c:f:d:sn";
|
||||
#define CUT_OPT_BYTE_FLGS (1<<0)
|
||||
#define CUT_OPT_CHAR_FLGS (1<<1)
|
||||
#define CUT_OPT_FIELDS_FLGS (1<<2)
|
||||
|
@ -163,7 +163,7 @@ static void cut_file(FILE * file)
|
|||
}
|
||||
}
|
||||
|
||||
static const char _op_on_field[] = " only when operating on fields";
|
||||
static const char _op_on_field[] ALIGN1 = " only when operating on fields";
|
||||
|
||||
int cut_main(int argc, char **argv);
|
||||
int cut_main(int argc, char **argv)
|
||||
|
|
|
@ -63,8 +63,9 @@ int date_main(int argc, char **argv)
|
|||
if (!isofmt_arg) {
|
||||
ifmt = 0; /* default is date */
|
||||
} else {
|
||||
static const char * const isoformats[] =
|
||||
{ "date", "hours", "minutes", "seconds" };
|
||||
static const char *const isoformats[] = {
|
||||
"date", "hours", "minutes", "seconds"
|
||||
};
|
||||
|
||||
for (ifmt = 0; ifmt < 4; ifmt++)
|
||||
if (!strcmp(isofmt_arg, isoformats[ifmt]))
|
||||
|
|
|
@ -83,7 +83,7 @@ int dd_main(int argc, char **argv)
|
|||
FLAG_TWOBUFS = 1 << 3,
|
||||
FLAG_COUNT = 1 << 4,
|
||||
};
|
||||
static const char keywords[] =
|
||||
static const char keywords[] ALIGN1 =
|
||||
"bs=\0""count=\0""seek=\0""skip=\0""if=\0""of=\0"
|
||||
#if ENABLE_FEATURE_DD_IBS_OBS
|
||||
"ibs=\0""obs=\0""conv=\0""notrunc\0""sync\0""noerror\0"
|
||||
|
|
|
@ -42,7 +42,8 @@ int df_main(int argc, char **argv)
|
|||
FILE *mount_table;
|
||||
struct mntent *mount_entry;
|
||||
struct statfs s;
|
||||
static const char hdr_1k[] = "1k-blocks"; /* default display is kilobytes */
|
||||
/* default display is kilobytes */
|
||||
static const char hdr_1k[] ALIGN1 = "1k-blocks";
|
||||
const char *disp_units_hdr = hdr_1k;
|
||||
|
||||
#ifdef CONFIG_FEATURE_HUMAN_READABLE
|
||||
|
|
|
@ -35,7 +35,7 @@ extern char **environ;
|
|||
#include "libbb.h"
|
||||
|
||||
#if ENABLE_FEATURE_ENV_LONG_OPTIONS
|
||||
static const char env_longopts[] =
|
||||
static const char env_longopts[] ALIGN1 =
|
||||
"ignore-environment\0" No_argument "i"
|
||||
"unset\0" Required_argument "u"
|
||||
;
|
||||
|
|
|
@ -277,7 +277,7 @@ static VALUE *eval7(void)
|
|||
|
||||
static VALUE *eval6(void)
|
||||
{
|
||||
static const char keywords[] =
|
||||
static const char keywords[] ALIGN1 =
|
||||
"quote\0""length\0""match\0""index\0""substr\0";
|
||||
|
||||
VALUE *r, *i1, *i2;
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
|
||||
#include "libbb.h"
|
||||
|
||||
static const char head_opts[] =
|
||||
static const char head_opts[] ALIGN1 =
|
||||
"n:"
|
||||
#if ENABLE_FEATURE_FANCY_HEAD
|
||||
"c:qv"
|
||||
|
@ -29,7 +29,7 @@ static const struct suffix_mult head_suffixes[] = {
|
|||
};
|
||||
#endif
|
||||
|
||||
static const char header_fmt_str[] = "\n==> %s <==\n";
|
||||
static const char header_fmt_str[] ALIGN1 = "\n==> %s <==\n";
|
||||
|
||||
int head_main(int argc, char **argv);
|
||||
int head_main(int argc, char **argv)
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
#include "libcoreutils/coreutils.h"
|
||||
|
||||
#if ENABLE_FEATURE_INSTALL_LONG_OPTIONS
|
||||
static const char install_longopts[] =
|
||||
static const char install_longopts[] ALIGN1 =
|
||||
"directory\0" No_argument "d"
|
||||
"preserve-timestamps\0" No_argument "p"
|
||||
"strip\0" No_argument "s"
|
||||
|
|
|
@ -120,7 +120,7 @@ SPLIT_SUBDIR = 2,
|
|||
static smallint show_color;
|
||||
/* long option entry used only for --color, which has no short option
|
||||
* equivalent */
|
||||
static const char ls_color_opt[] =
|
||||
static const char ls_color_opt[] ALIGN1 =
|
||||
"color\0" Optional_argument "\xff" /* no short equivalent */
|
||||
;
|
||||
#else
|
||||
|
@ -710,7 +710,8 @@ static int list_single(struct dnode *dn)
|
|||
/* "[-]SXvThw", GNU options, busybox optionally supports */
|
||||
/* "[-]K", SELinux mandated options, busybox optionally supports */
|
||||
/* "[-]e", I think we made this one up */
|
||||
static const char ls_options[] = "Cadil1gnsxAk"
|
||||
static const char ls_options[] ALIGN1 =
|
||||
"Cadil1gnsxAk"
|
||||
USE_FEATURE_LS_TIMESTAMPS("cetu")
|
||||
USE_FEATURE_LS_SORTFILES("SXrv")
|
||||
USE_FEATURE_LS_FILETYPES("Fp")
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
/* This is a NOFORK applet. Be very careful! */
|
||||
|
||||
#if ENABLE_FEATURE_MKDIR_LONG_OPTIONS
|
||||
static const char mkdir_longopts[] =
|
||||
static const char mkdir_longopts[] ALIGN1 =
|
||||
"mode\0" Required_argument "m"
|
||||
"parents\0" No_argument "p"
|
||||
#if ENABLE_SELINUX
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
#include "libbb.h"
|
||||
#include "libcoreutils/coreutils.h"
|
||||
|
||||
static const char modes_chars[] = { 'p', 'c', 'u', 'b', 0, 1, 1, 2 };
|
||||
static const char modes_chars[] ALIGN1 = { 'p', 'c', 'u', 'b', 0, 1, 1, 2 };
|
||||
static const mode_t modes_cubp[] = { S_IFIFO, S_IFCHR, S_IFBLK };
|
||||
|
||||
int mknod_main(int argc, char **argv);
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
#include "libcoreutils/coreutils.h"
|
||||
|
||||
#if ENABLE_FEATURE_MV_LONG_OPTIONS
|
||||
static const char mv_longopts[] =
|
||||
static const char mv_longopts[] ALIGN1 =
|
||||
"interactive\0" No_argument "i"
|
||||
"force\0" No_argument "f"
|
||||
;
|
||||
|
@ -30,7 +30,8 @@ static const char mv_longopts[] =
|
|||
#define OPT_FILEUTILS_FORCE 1
|
||||
#define OPT_FILEUTILS_INTERACTIVE 2
|
||||
|
||||
static const char fmt[] = "cannot overwrite %sdirectory with %sdirectory";
|
||||
static const char fmt[] ALIGN1 =
|
||||
"cannot overwrite %sdirectory with %sdirectory";
|
||||
|
||||
int mv_main(int argc, char **argv);
|
||||
int mv_main(int argc, char **argv)
|
||||
|
|
|
@ -147,9 +147,9 @@ static const char * const add_strings[] = {
|
|||
"4/4 \" %011o \" \"\\n\"", /* O */
|
||||
};
|
||||
|
||||
static const char od_opts[] = "aBbcDdeFfHhIiLlOoXxv";
|
||||
static const char od_opts[] ALIGN1 = "aBbcDdeFfHhIiLlOoXxv";
|
||||
|
||||
static const char od_o2si[] = {
|
||||
static const char od_o2si[] ALIGN1 = {
|
||||
0, 1, 2, 3, 5,
|
||||
4, 6, 6, 7, 8,
|
||||
9, 0xa, 0xb, 0xa, 0xa,
|
||||
|
|
|
@ -129,20 +129,20 @@ struct tspec {
|
|||
10 unsigned decimal
|
||||
8 unsigned hexadecimal */
|
||||
|
||||
static const uint8_t bytes_to_oct_digits[] =
|
||||
static const uint8_t bytes_to_oct_digits[] ALIGN1 =
|
||||
{0, 3, 6, 8, 11, 14, 16, 19, 22, 25, 27, 30, 32, 35, 38, 41, 43};
|
||||
|
||||
static const uint8_t bytes_to_signed_dec_digits[] =
|
||||
static const uint8_t bytes_to_signed_dec_digits[] ALIGN1 =
|
||||
{1, 4, 6, 8, 11, 13, 16, 18, 20, 23, 25, 28, 30, 33, 35, 37, 40};
|
||||
|
||||
static const uint8_t bytes_to_unsigned_dec_digits[] =
|
||||
static const uint8_t bytes_to_unsigned_dec_digits[] ALIGN1 =
|
||||
{0, 3, 5, 8, 10, 13, 15, 17, 20, 22, 25, 27, 29, 32, 34, 37, 39};
|
||||
|
||||
static const uint8_t bytes_to_hex_digits[] =
|
||||
static const uint8_t bytes_to_hex_digits[] ALIGN1 =
|
||||
{0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32};
|
||||
|
||||
/* Convert enum size_spec to the size of the named type. */
|
||||
static const signed char width_bytes[] = {
|
||||
static const signed char width_bytes[] ALIGN1 = {
|
||||
-1,
|
||||
sizeof(char),
|
||||
sizeof(short),
|
||||
|
@ -212,7 +212,7 @@ static char const *const default_file_list[] = { "-", NULL };
|
|||
static FILE *in_stream;
|
||||
|
||||
#define MAX_INTEGRAL_TYPE_SIZE sizeof(ulonglong_t)
|
||||
static unsigned char integral_type_size[MAX_INTEGRAL_TYPE_SIZE + 1] = {
|
||||
static unsigned char integral_type_size[MAX_INTEGRAL_TYPE_SIZE + 1] ALIGN1 = {
|
||||
[sizeof(char)] = CHAR,
|
||||
#if USHRT_MAX != UCHAR_MAX
|
||||
[sizeof(short)] = SHORT,
|
||||
|
@ -229,11 +229,11 @@ static unsigned char integral_type_size[MAX_INTEGRAL_TYPE_SIZE + 1] = {
|
|||
};
|
||||
|
||||
#define MAX_FP_TYPE_SIZE sizeof(longdouble_t)
|
||||
static unsigned char fp_type_size[MAX_FP_TYPE_SIZE + 1] = {
|
||||
static unsigned char fp_type_size[MAX_FP_TYPE_SIZE + 1] ALIGN1 = {
|
||||
/* gcc seems to allow repeated indexes. Last one stays */
|
||||
[sizeof(longdouble_t)] = FLOAT_LONG_DOUBLE,
|
||||
[sizeof(double)] = FLOAT_DOUBLE,
|
||||
[sizeof(float)] = FLOAT_SINGLE,
|
||||
[sizeof(float)] = FLOAT_SINGLE
|
||||
};
|
||||
|
||||
|
||||
|
@ -383,7 +383,7 @@ print_named_ascii(size_t n_bytes, const char *block,
|
|||
const char *unused_fmt_string ATTRIBUTE_UNUSED)
|
||||
{
|
||||
/* Names for some non-printing characters. */
|
||||
static const char charname[33][3] = {
|
||||
static const char charname[33][3] ALIGN1 = {
|
||||
"nul", "soh", "stx", "etx", "eot", "enq", "ack", "bel",
|
||||
" bs", " ht", " nl", " vt", " ff", " cr", " so", " si",
|
||||
"dle", "dc1", "dc2", "dc3", "dc4", "nak", "syn", "etb",
|
||||
|
@ -560,7 +560,7 @@ decode_one_format(const char *s_orig, const char *s, const char **next,
|
|||
case 'o':
|
||||
case 'u':
|
||||
case 'x': {
|
||||
static const char CSIL[] = "CSIL";
|
||||
static const char CSIL[] ALIGN1 = "CSIL";
|
||||
|
||||
c = *s++;
|
||||
p = strchr(CSIL, *s);
|
||||
|
@ -596,7 +596,7 @@ decode_one_format(const char *s_orig, const char *s, const char **next,
|
|||
size_spec = integral_type_size[size];
|
||||
|
||||
{
|
||||
static const char doux[] = "doux";
|
||||
static const char doux[] ALIGN1 = "doux";
|
||||
static const char doux_fmt_letter[][4] = {
|
||||
"lld", "llo", "llu", "llx"
|
||||
};
|
||||
|
@ -653,7 +653,7 @@ decode_one_format(const char *s_orig, const char *s, const char **next,
|
|||
}
|
||||
|
||||
case 'f': {
|
||||
static const char FDL[] = "FDL";
|
||||
static const char FDL[] ALIGN1 = "FDL";
|
||||
|
||||
fmt = FLOATING_POINT;
|
||||
++s;
|
||||
|
@ -836,7 +836,7 @@ format_address_none(off_t address ATTRIBUTE_UNUSED, char c ATTRIBUTE_UNUSED)
|
|||
{
|
||||
}
|
||||
|
||||
static char address_fmt[] = "%0n"OFF_FMT"xc";
|
||||
static char address_fmt[] ALIGN1 = "%0n"OFF_FMT"xc";
|
||||
/* Corresponds to 'x' above */
|
||||
#define address_base_char address_fmt[sizeof(address_fmt)-3]
|
||||
/* Corresponds to 'n' above */
|
||||
|
@ -1233,7 +1233,7 @@ int od_main(int argc, char **argv)
|
|||
OPT_traditional = (1 << 18) * ENABLE_GETOPT_LONG,
|
||||
};
|
||||
#if ENABLE_GETOPT_LONG
|
||||
static const char od_longopts[] =
|
||||
static const char od_longopts[] ALIGN1 =
|
||||
"skip-bytes\0" Required_argument "j"
|
||||
"address-radix\0" Required_argument "A"
|
||||
"read-bytes\0" Required_argument "N"
|
||||
|
@ -1268,11 +1268,11 @@ int od_main(int argc, char **argv)
|
|||
argc -= optind;
|
||||
argv += optind;
|
||||
if (opt & OPT_A) {
|
||||
static const char doxn[] = "doxn";
|
||||
static const char doxn_address_base_char[] = {
|
||||
static const char doxn[] ALIGN1 = "doxn";
|
||||
static const char doxn_address_base_char[] ALIGN1 = {
|
||||
'u', 'o', 'x', /* '?' fourth one is not important */
|
||||
};
|
||||
static const uint8_t doxn_address_pad_len_char[] = {
|
||||
static const uint8_t doxn_address_pad_len_char[] ALIGN1 = {
|
||||
'7', '7', '6', /* '?' */
|
||||
};
|
||||
char *p;
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
*/
|
||||
|
||||
/* These are sort types */
|
||||
static const char OPT_STR[] = "ngMucszbrdfimS:T:o:k:t:";
|
||||
static const char OPT_STR[] ALIGN1 = "ngMucszbrdfimS:T:o:k:t:";
|
||||
enum {
|
||||
FLAG_n = 1, /* Numeric sort */
|
||||
FLAG_g = 2, /* Sort using strtod() */
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
#define OPT_DEREFERENCE (1<<2)
|
||||
#define OPT_SELINUX (1<<3)
|
||||
|
||||
static char buf[sizeof("YYYY-MM-DD HH:MM:SS.000000000")];
|
||||
static char buf[sizeof("YYYY-MM-DD HH:MM:SS.000000000")] ALIGN1;
|
||||
|
||||
static char const * file_type(struct stat const *st)
|
||||
{
|
||||
|
|
|
@ -127,28 +127,28 @@ enum {
|
|||
control, input, output, local, combination
|
||||
};
|
||||
|
||||
static const char evenp [] = "evenp";
|
||||
static const char raw [] = "raw";
|
||||
static const char stty_min [] = "min";
|
||||
static const char stty_time [] = "time";
|
||||
static const char stty_swtch[] = "swtch";
|
||||
static const char stty_eol [] = "eol";
|
||||
static const char stty_eof [] = "eof";
|
||||
static const char parity [] = "parity";
|
||||
static const char stty_oddp [] = "oddp";
|
||||
static const char stty_nl [] = "nl";
|
||||
static const char stty_ek [] = "ek";
|
||||
static const char stty_sane [] = "sane";
|
||||
static const char cbreak [] = "cbreak";
|
||||
static const char stty_pass8[] = "pass8";
|
||||
static const char litout [] = "litout";
|
||||
static const char cooked [] = "cooked";
|
||||
static const char decctlq [] = "decctlq";
|
||||
static const char stty_tabs [] = "tabs";
|
||||
static const char stty_lcase[] = "lcase";
|
||||
static const char stty_LCASE[] = "LCASE";
|
||||
static const char stty_crt [] = "crt";
|
||||
static const char stty_dec [] = "dec";
|
||||
static const char evenp [] ALIGN1 = "evenp";
|
||||
static const char raw [] ALIGN1 = "raw";
|
||||
static const char stty_min [] ALIGN1 = "min";
|
||||
static const char stty_time [] ALIGN1 = "time";
|
||||
static const char stty_swtch[] ALIGN1 = "swtch";
|
||||
static const char stty_eol [] ALIGN1 = "eol";
|
||||
static const char stty_eof [] ALIGN1 = "eof";
|
||||
static const char parity [] ALIGN1 = "parity";
|
||||
static const char stty_oddp [] ALIGN1 = "oddp";
|
||||
static const char stty_nl [] ALIGN1 = "nl";
|
||||
static const char stty_ek [] ALIGN1 = "ek";
|
||||
static const char stty_sane [] ALIGN1 = "sane";
|
||||
static const char cbreak [] ALIGN1 = "cbreak";
|
||||
static const char stty_pass8[] ALIGN1 = "pass8";
|
||||
static const char litout [] ALIGN1 = "litout";
|
||||
static const char cooked [] ALIGN1 = "cooked";
|
||||
static const char decctlq [] ALIGN1 = "decctlq";
|
||||
static const char stty_tabs [] ALIGN1 = "tabs";
|
||||
static const char stty_lcase[] ALIGN1 = "lcase";
|
||||
static const char stty_LCASE[] ALIGN1 = "LCASE";
|
||||
static const char stty_crt [] ALIGN1 = "crt";
|
||||
static const char stty_dec [] ALIGN1 = "dec";
|
||||
|
||||
/* Flags for 'struct mode_info' */
|
||||
#define SANE_SET 1 /* Set in 'sane' mode */
|
||||
|
@ -417,11 +417,11 @@ static const char *visible(unsigned ch)
|
|||
|
||||
static tcflag_t *mode_type_flag(unsigned type, const struct termios *mode)
|
||||
{
|
||||
static const unsigned char tcflag_offsets[] = {
|
||||
static const unsigned char tcflag_offsets[] ALIGN1 = {
|
||||
offsetof(struct termios, c_cflag), /* control */
|
||||
offsetof(struct termios, c_iflag), /* input */
|
||||
offsetof(struct termios, c_oflag), /* output */
|
||||
offsetof(struct termios, c_lflag), /* local */
|
||||
offsetof(struct termios, c_lflag) /* local */
|
||||
};
|
||||
|
||||
if (type <= local) {
|
||||
|
@ -562,7 +562,7 @@ enum {
|
|||
|
||||
static int find_param(const char *const name)
|
||||
{
|
||||
static const char params[] =
|
||||
static const char params[] ALIGN1 =
|
||||
"line\0" /* 1 */
|
||||
"rows\0" /* 2 */
|
||||
"cols\0" /* 3 */
|
||||
|
|
|
@ -63,7 +63,7 @@ static ssize_t tail_read(int fd, char *buf, size_t count)
|
|||
return r;
|
||||
}
|
||||
|
||||
static const char header_fmt[] = "\n==> %s <==\n";
|
||||
static const char header_fmt[] ALIGN1 = "\n==> %s <==\n";
|
||||
|
||||
static unsigned eat_num(const char *p)
|
||||
{
|
||||
|
|
|
@ -52,7 +52,7 @@ static unsigned int expand(const char *arg, char *buffer)
|
|||
unsigned i; /* XXX: FIXME: use unsigned char? */
|
||||
unsigned char ac;
|
||||
#define CLO ":]\0"
|
||||
static const char classes[] =
|
||||
static const char classes[] ALIGN1 =
|
||||
"alpha"CLO "alnum"CLO "digit"CLO "lower"CLO "upper"CLO "space"CLO
|
||||
"blank"CLO "punct"CLO "cntrl"CLO;
|
||||
#define CLASS_invalid 0 /* we increment the retval */
|
||||
|
|
|
@ -38,8 +38,8 @@ typedef struct {
|
|||
char processor[8]; /* for "unknown" */
|
||||
} uname_info_t;
|
||||
|
||||
static const char options[] = "snrvmpa";
|
||||
static const unsigned short int utsname_offset[] = {
|
||||
static const char options[] ALIGN1 = "snrvmpa";
|
||||
static const unsigned short utsname_offset[] ALIGN2 = {
|
||||
offsetof(uname_info_t,name.sysname),
|
||||
offsetof(uname_info_t,name.nodename),
|
||||
offsetof(uname_info_t,name.release),
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
#include "libbb.h"
|
||||
|
||||
static const char uniq_opts[] = "cdu" "f:s:" "cdu\0\1\2\4";
|
||||
static const char uniq_opts[] ALIGN1 = "cdu" "f:s:" "cdu\0\1\2\4";
|
||||
|
||||
static FILE *xgetoptfile_uniq_s(char **argv, int read0write2)
|
||||
{
|
||||
|
|
|
@ -35,7 +35,7 @@
|
|||
#include "libbb.h"
|
||||
|
||||
#if ENABLE_FEATURE_RUN_PARTS_LONG_OPTIONS
|
||||
static const char runparts_longopts[] =
|
||||
static const char runparts_longopts[] ALIGN1 =
|
||||
"arg\0" Required_argument "a"
|
||||
"umask\0" Required_argument "u"
|
||||
"test\0" No_argument "t"
|
||||
|
|
|
@ -192,7 +192,7 @@ static int do_stop(void)
|
|||
}
|
||||
|
||||
#if ENABLE_FEATURE_START_STOP_DAEMON_LONG_OPTIONS
|
||||
static const char start_stop_daemon_longopts[] =
|
||||
static const char start_stop_daemon_longopts[] ALIGN1 =
|
||||
"stop\0" No_argument "K"
|
||||
"start\0" No_argument "S"
|
||||
"background\0" No_argument "b"
|
||||
|
|
|
@ -38,7 +38,7 @@ struct globals {
|
|||
static unsigned long get_flag(char c)
|
||||
{
|
||||
/* Two separate vectors take less space than vector of structs */
|
||||
static const char flags_letter[] = "ASDacdijsutT";
|
||||
static const char flags_letter[] ALIGN1 = "ASDacdijsutT";
|
||||
static const unsigned long flags_val[] = {
|
||||
/* A */ EXT2_NOATIME_FL,
|
||||
/* S */ EXT2_SYNC_FL,
|
||||
|
|
|
@ -79,7 +79,7 @@ struct fsck_instance {
|
|||
char *base_device; /* /dev/hda for /dev/hdaN etc */
|
||||
};
|
||||
|
||||
static const char ignored_types[] =
|
||||
static const char ignored_types[] ALIGN1 =
|
||||
"ignore\0"
|
||||
"iso9660\0"
|
||||
"nfs\0"
|
||||
|
@ -90,7 +90,7 @@ static const char ignored_types[] =
|
|||
"devpts\0";
|
||||
|
||||
#if 0
|
||||
static const char really_wanted[] =
|
||||
static const char really_wanted[] ALIGN1 =
|
||||
"minix\0"
|
||||
"ext2\0"
|
||||
"ext3\0"
|
||||
|
|
|
@ -263,7 +263,7 @@ enum {
|
|||
|
||||
#define OC_B OC_BUILTIN
|
||||
|
||||
static const char tokenlist[] =
|
||||
static const char tokenlist[] ALIGN1 =
|
||||
"\1(" NTC
|
||||
"\1)" NTC
|
||||
"\1/" NTC /* REGEXP */
|
||||
|
@ -373,7 +373,7 @@ enum {
|
|||
ENVIRON, F0, NUM_INTERNAL_VARS
|
||||
};
|
||||
|
||||
static const char vNames[] =
|
||||
static const char vNames[] ALIGN1 =
|
||||
"CONVFMT\0" "OFMT\0" "FS\0*" "OFS\0"
|
||||
"ORS\0" "RS\0*" "RT\0" "FILENAME\0"
|
||||
"SUBSEP\0" "ARGIND\0" "ARGC\0" "ARGV\0"
|
||||
|
@ -381,16 +381,15 @@ static const char vNames[] =
|
|||
"NR\0" "NF\0*" "IGNORECASE\0*"
|
||||
"ENVIRON\0" "$\0*" "\0";
|
||||
|
||||
static const char vValues[] =
|
||||
static const char vValues[] ALIGN1 =
|
||||
"%.6g\0" "%.6g\0" " \0" " \0"
|
||||
"\n\0" "\n\0" "\0" "\0"
|
||||
"\034\0"
|
||||
"\377";
|
||||
|
||||
/* hash size may grow to these values */
|
||||
#define FIRST_PRIME 61;
|
||||
static const unsigned PRIMES[] = { 251, 1021, 4093, 16381, 65521 };
|
||||
|
||||
#define FIRST_PRIME 61
|
||||
static const uint16_t PRIMES[] ALIGN2 = { 251, 1021, 4093, 16381, 65521 };
|
||||
|
||||
|
||||
/* Globals. Split in two parts so that first one is addressed
|
||||
|
@ -504,17 +503,17 @@ static int awk_exit(int) ATTRIBUTE_NORETURN;
|
|||
|
||||
/* ---- error handling ---- */
|
||||
|
||||
static const char EMSG_INTERNAL_ERROR[] = "Internal error";
|
||||
static const char EMSG_UNEXP_EOS[] = "Unexpected end of string";
|
||||
static const char EMSG_UNEXP_TOKEN[] = "Unexpected token";
|
||||
static const char EMSG_DIV_BY_ZERO[] = "Division by zero";
|
||||
static const char EMSG_INV_FMT[] = "Invalid format specifier";
|
||||
static const char EMSG_TOO_FEW_ARGS[] = "Too few arguments for builtin";
|
||||
static const char EMSG_NOT_ARRAY[] = "Not an array";
|
||||
static const char EMSG_POSSIBLE_ERROR[] = "Possible syntax error";
|
||||
static const char EMSG_UNDEF_FUNC[] = "Call to undefined function";
|
||||
static const char EMSG_INTERNAL_ERROR[] ALIGN1 = "Internal error";
|
||||
static const char EMSG_UNEXP_EOS[] ALIGN1 = "Unexpected end of string";
|
||||
static const char EMSG_UNEXP_TOKEN[] ALIGN1 = "Unexpected token";
|
||||
static const char EMSG_DIV_BY_ZERO[] ALIGN1 = "Division by zero";
|
||||
static const char EMSG_INV_FMT[] ALIGN1 = "Invalid format specifier";
|
||||
static const char EMSG_TOO_FEW_ARGS[] ALIGN1 = "Too few arguments for builtin";
|
||||
static const char EMSG_NOT_ARRAY[] ALIGN1 = "Not an array";
|
||||
static const char EMSG_POSSIBLE_ERROR[] ALIGN1 = "Possible syntax error";
|
||||
static const char EMSG_UNDEF_FUNC[] ALIGN1 = "Call to undefined function";
|
||||
#if !ENABLE_FEATURE_AWK_MATH
|
||||
static const char EMSG_NO_MATH[] = "Math support is not compiled in";
|
||||
static const char EMSG_NO_MATH[] ALIGN1 = "Math support is not compiled in";
|
||||
#endif
|
||||
|
||||
static void zero_out_var(var * vp)
|
||||
|
|
|
@ -33,12 +33,12 @@ static FILE *cmp_xfopen_input(const char *filename)
|
|||
xfunc_die(); /* We already output an error message. */
|
||||
}
|
||||
|
||||
static const char fmt_eof[] = "cmp: EOF on %s\n";
|
||||
static const char fmt_differ[] = "%s %s differ: char %"OFF_FMT"d, line %d\n";
|
||||
static const char fmt_eof[] ALIGN1 = "cmp: EOF on %s\n";
|
||||
static const char fmt_differ[] ALIGN1 = "%s %s differ: char %"OFF_FMT"d, line %d\n";
|
||||
// This fmt_l_opt uses gnu-isms. SUSv3 would be "%.0s%.0s%"OFF_FMT"d %o %o\n"
|
||||
static const char fmt_l_opt[] = "%.0s%.0s%"OFF_FMT"d %3o %3o\n";
|
||||
static const char fmt_l_opt[] ALIGN1 = "%.0s%.0s%"OFF_FMT"d %3o %3o\n";
|
||||
|
||||
static const char opt_chars[] = "sl";
|
||||
static const char opt_chars[] ALIGN1 = "sl";
|
||||
#define CMP_OPT_s (1<<0)
|
||||
#define CMP_OPT_l (1<<1)
|
||||
|
||||
|
|
|
@ -89,7 +89,7 @@ typedef struct sed_cmd_s {
|
|||
char cmd; /* The command char: abcdDgGhHilnNpPqrstwxy:={} */
|
||||
} sed_cmd_t;
|
||||
|
||||
static const char semicolon_whitespace[] = "; \n\r\t\v";
|
||||
static const char semicolon_whitespace[] ALIGN1 = "; \n\r\t\v";
|
||||
|
||||
struct globals {
|
||||
/* options */
|
||||
|
|
18
editors/vi.c
18
editors/vi.c
|
@ -62,18 +62,18 @@ enum {
|
|||
|
||||
/* vt102 typical ESC sequence */
|
||||
/* terminal standout start/normal ESC sequence */
|
||||
static const char SOs[] = "\033[7m";
|
||||
static const char SOn[] = "\033[0m";
|
||||
static const char SOs[] ALIGN1 = "\033[7m";
|
||||
static const char SOn[] ALIGN1 = "\033[0m";
|
||||
/* terminal bell sequence */
|
||||
static const char bell[] = "\007";
|
||||
static const char bell[] ALIGN1 = "\007";
|
||||
/* Clear-end-of-line and Clear-end-of-screen ESC sequence */
|
||||
static const char Ceol[] = "\033[0K";
|
||||
static const char Ceos [] = "\033[0J";
|
||||
static const char Ceol[] ALIGN1 = "\033[0K";
|
||||
static const char Ceos[] ALIGN1 = "\033[0J";
|
||||
/* Cursor motion arbitrary destination ESC sequence */
|
||||
static const char CMrc[] = "\033[%d;%dH";
|
||||
static const char CMrc[] ALIGN1 = "\033[%d;%dH";
|
||||
/* Cursor motion up and down ESC sequence */
|
||||
static const char CMup[] = "\033[A";
|
||||
static const char CMdown[] = "\n";
|
||||
static const char CMup[] ALIGN1 = "\033[A";
|
||||
static const char CMdown[] ALIGN1 = "\n";
|
||||
|
||||
|
||||
enum {
|
||||
|
@ -2663,7 +2663,7 @@ static void ni(const char * s) // display messages
|
|||
static int format_edit_status(void) // show file status on status line
|
||||
{
|
||||
static int tot;
|
||||
static const char cmd_mode_indicator[] = "-IR-";
|
||||
static const char cmd_mode_indicator[] ALIGN1 = "-IR-";
|
||||
int cur, percent, ret, trunc_at;
|
||||
|
||||
// file_modified is now a counter rather than a flag. this
|
||||
|
|
|
@ -470,7 +470,7 @@ static action*** parse_params(char **argv)
|
|||
USE_FEATURE_FIND_CONTEXT(PARM_context ,)
|
||||
};
|
||||
|
||||
static const char params[] =
|
||||
static const char params[] ALIGN1 =
|
||||
"-a\0"
|
||||
"-o\0"
|
||||
USE_FEATURE_FIND_NOT( "!\0" )
|
||||
|
@ -794,7 +794,7 @@ static action*** parse_params(char **argv)
|
|||
int find_main(int argc, char **argv);
|
||||
int find_main(int argc, char **argv)
|
||||
{
|
||||
static const char options[] =
|
||||
static const char options[] ALIGN1 =
|
||||
"-follow\0"
|
||||
USE_FEATURE_FIND_XDEV( "-xdev\0" )
|
||||
USE_FEATURE_FIND_MAXDEPTH("-maxdepth\0")
|
||||
|
|
|
@ -169,7 +169,7 @@ __extension__ typedef unsigned long long __u64;
|
|||
# error "Sorry, this libc version is not supported :("
|
||||
#endif
|
||||
|
||||
// Don't perpetuate e2fsck crap into the headers. Clean up e2fsck instead.
|
||||
/* Don't perpetuate e2fsck crap into the headers. Clean up e2fsck instead. */
|
||||
|
||||
#if defined __GLIBC__ || defined __UCLIBC__ \
|
||||
|| defined __dietlibc__ || defined _NEWLIB_VERSION
|
||||
|
@ -210,6 +210,16 @@ typedef unsigned smalluint;
|
|||
#include <stdbool.h>
|
||||
#endif
|
||||
|
||||
/* Try to defeat gcc's alignment of "char message[]"-like data */
|
||||
#if 1 /* if needed: !defined(arch1) && !defined(arch2) */
|
||||
#define ALIGN1 __attribute__((aligned(1)))
|
||||
#define ALIGN2 __attribute__((aligned(2)))
|
||||
#else
|
||||
/* Arches which MUST have 2 or 4 byte alignment for everything are here */
|
||||
#define ALIGN1
|
||||
#define ALIGN2
|
||||
#endif
|
||||
|
||||
|
||||
/* uclibc does not implement daemon() for no-mmu systems.
|
||||
* For 0.9.29 and svn, __ARCH_USE_MMU__ indicates no-mmu reliably.
|
||||
|
@ -289,7 +299,7 @@ static ALWAYS_INLINE char* strchrnul(const char *s, char c)
|
|||
|
||||
#if defined(__linux__)
|
||||
#include <sys/mount.h>
|
||||
// Make sure we have all the new mount flags we actually try to use.
|
||||
/* Make sure we have all the new mount flags we actually try to use. */
|
||||
#ifndef MS_BIND
|
||||
#define MS_BIND (1<<12)
|
||||
#endif
|
||||
|
@ -303,7 +313,7 @@ static ALWAYS_INLINE char* strchrnul(const char *s, char c)
|
|||
#define MS_SILENT (1<<15)
|
||||
#endif
|
||||
|
||||
// The shared subtree stuff, which went in around 2.6.15
|
||||
/* The shared subtree stuff, which went in around 2.6.15. */
|
||||
#ifndef MS_UNBINDABLE
|
||||
#define MS_UNBINDABLE (1<<17)
|
||||
#endif
|
||||
|
|
|
@ -457,7 +457,7 @@ static pid_t run(const struct init_action *a)
|
|||
|
||||
#if !defined(__UCLIBC__) || defined(__ARCH_HAS_MMU__)
|
||||
if (a->action & ASKFIRST) {
|
||||
static const char press_enter[] =
|
||||
static const char press_enter[] ALIGN1 =
|
||||
#ifdef CUSTOMIZED_BANNER
|
||||
#include CUSTOMIZED_BANNER
|
||||
#endif
|
||||
|
|
10
libbb/dump.c
10
libbb/dump.c
|
@ -26,12 +26,12 @@ static int exitval; /* final exit value */
|
|||
int bb_dump_blocksize; /* data block size */
|
||||
int bb_dump_length = -1; /* max bytes to read */
|
||||
|
||||
static const char index_str[] = ".#-+ 0123456789";
|
||||
static const char index_str[] ALIGN1 = ".#-+ 0123456789";
|
||||
|
||||
static const char size_conv_str[] =
|
||||
static const char size_conv_str[] ALIGN1 =
|
||||
"\x1\x4\x4\x4\x4\x4\x4\x8\x8\x8\x8\010cdiouxXeEfgG";
|
||||
|
||||
static const char lcc[] = "diouxX";
|
||||
static const char lcc[] ALIGN1 = "diouxX";
|
||||
|
||||
int bb_dump_size(FS * fs)
|
||||
{
|
||||
|
@ -440,7 +440,7 @@ static void bpad(PR * pr)
|
|||
while ((*p2++ = *p1++) != 0);
|
||||
}
|
||||
|
||||
static const char conv_str[] =
|
||||
static const char conv_str[] ALIGN1 =
|
||||
"\0\\0\0"
|
||||
"\007\\a\0" /* \a */
|
||||
"\b\\b\0"
|
||||
|
@ -479,7 +479,7 @@ static void conv_c(PR * pr, unsigned char * p)
|
|||
|
||||
static void conv_u(PR * pr, unsigned char * p)
|
||||
{
|
||||
static const char list[] =
|
||||
static const char list[] ALIGN1 =
|
||||
"nul\0soh\0stx\0etx\0eot\0enq\0ack\0bel\0"
|
||||
"bs\0_ht\0_lf\0_vt\0_ff\0_cr\0_so\0_si\0_"
|
||||
"dle\0dcl\0dc2\0dc3\0dc4\0nak\0syn\0etb\0"
|
||||
|
|
|
@ -76,7 +76,7 @@ const char *applet_long_options
|
|||
|
||||
This struct allows you to define long options:
|
||||
|
||||
static const char applet_longopts[] =
|
||||
static const char applet_longopts[] ALIGN1 =
|
||||
//"name\0" has_arg val
|
||||
"verbose\0" No_argument "v"
|
||||
;
|
||||
|
|
|
@ -31,12 +31,12 @@
|
|||
const char *make_human_readable_str(unsigned long long size,
|
||||
unsigned long block_size, unsigned long display_unit)
|
||||
{
|
||||
/* The code will adjust for additional (appended) units. */
|
||||
static const char zero_and_units[] = { '0', 0, 'k', 'M', 'G', 'T' };
|
||||
static const char fmt[] = "%llu";
|
||||
static const char fmt_tenths[] = "%llu.%d%c";
|
||||
/* The code will adjust for additional (appended) units */
|
||||
static const char zero_and_units[] ALIGN1 = { '0', 0, 'k', 'M', 'G', 'T' };
|
||||
static const char fmt[] ALIGN1 = "%llu";
|
||||
static const char fmt_tenths[] ALIGN1 = "%llu.%d%c";
|
||||
|
||||
static char str[21]; /* Sufficient for 64 bit unsigned integers. */
|
||||
static char str[21] ALIGN1; /* Sufficient for 64 bit unsigned integers */
|
||||
|
||||
unsigned long long val;
|
||||
int frac;
|
||||
|
@ -53,7 +53,7 @@ const char *make_human_readable_str(unsigned long long size,
|
|||
}
|
||||
|
||||
if (display_unit) {
|
||||
val += display_unit/2; /* Deal with rounding. */
|
||||
val += display_unit/2; /* Deal with rounding */
|
||||
val /= display_unit; /* Don't combine with the line above!!! */
|
||||
} else {
|
||||
++u;
|
||||
|
|
|
@ -15,8 +15,8 @@
|
|||
|
||||
#define LOGIN " login: "
|
||||
|
||||
static const char fmtstr_d[] = "%A, %d %B %Y";
|
||||
static const char fmtstr_t[] = "%H:%M:%S";
|
||||
static const char fmtstr_d[] ALIGN1 = "%A, %d %B %Y";
|
||||
static const char fmtstr_t[] ALIGN1 = "%H:%M:%S";
|
||||
|
||||
void print_login_issue(const char *issue_file, const char *tty)
|
||||
{
|
||||
|
|
|
@ -75,7 +75,7 @@ static void md5_hash_block(const void *buffer, md5_ctx_t *ctx)
|
|||
0xf7537e82, 0xbd3af235, 0x2ad7d2bb, 0xeb86d391
|
||||
};
|
||||
|
||||
static const char P_array[] = {
|
||||
static const char P_array[] ALIGN1 = {
|
||||
# if MD5_SIZE_VS_SPEED > 1
|
||||
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, /* 1 */
|
||||
# endif /* MD5_SIZE_VS_SPEED > 1 */
|
||||
|
@ -85,7 +85,7 @@ static void md5_hash_block(const void *buffer, md5_ctx_t *ctx)
|
|||
};
|
||||
|
||||
# if MD5_SIZE_VS_SPEED > 1
|
||||
static const char S_array[] = {
|
||||
static const char S_array[] ALIGN1 = {
|
||||
7, 12, 17, 22,
|
||||
5, 9, 14, 20,
|
||||
4, 11, 16, 23,
|
||||
|
|
|
@ -12,34 +12,34 @@
|
|||
#else
|
||||
#define BANNER "BusyBox v" BB_VER " (" BB_EXTRA_VERSION ")"
|
||||
#endif
|
||||
const char bb_banner[] = BANNER;
|
||||
const char bb_banner[] ALIGN1 = BANNER;
|
||||
|
||||
const char bb_msg_memory_exhausted[] = "memory exhausted";
|
||||
const char bb_msg_invalid_date[] = "invalid date '%s'";
|
||||
const char bb_msg_write_error[] = "write error";
|
||||
const char bb_msg_read_error[] = "read error";
|
||||
const char bb_msg_unknown[] = "(unknown)";
|
||||
const char bb_msg_can_not_create_raw_socket[] = "can't create raw socket";
|
||||
const char bb_msg_perm_denied_are_you_root[] = "permission denied. (are you root?)";
|
||||
const char bb_msg_requires_arg[] = "%s requires an argument";
|
||||
const char bb_msg_invalid_arg[] = "invalid argument '%s' to '%s'";
|
||||
const char bb_msg_standard_input[] = "standard input";
|
||||
const char bb_msg_standard_output[] = "standard output";
|
||||
const char bb_msg_memory_exhausted[] ALIGN1 = "memory exhausted";
|
||||
const char bb_msg_invalid_date[] ALIGN1 = "invalid date '%s'";
|
||||
const char bb_msg_write_error[] ALIGN1 = "write error";
|
||||
const char bb_msg_read_error[] ALIGN1 = "read error";
|
||||
const char bb_msg_unknown[] ALIGN1 = "(unknown)";
|
||||
const char bb_msg_can_not_create_raw_socket[] ALIGN1 = "can't create raw socket";
|
||||
const char bb_msg_perm_denied_are_you_root[] ALIGN1 = "permission denied. (are you root?)";
|
||||
const char bb_msg_requires_arg[] ALIGN1 = "%s requires an argument";
|
||||
const char bb_msg_invalid_arg[] ALIGN1 = "invalid argument '%s' to '%s'";
|
||||
const char bb_msg_standard_input[] ALIGN1 = "standard input";
|
||||
const char bb_msg_standard_output[] ALIGN1 = "standard output";
|
||||
|
||||
const char bb_str_default[] = "default";
|
||||
const char bb_hexdigits_upcase[] = "0123456789ABCDEF";
|
||||
const char bb_str_default[] ALIGN1 = "default";
|
||||
const char bb_hexdigits_upcase[] ALIGN1 = "0123456789ABCDEF";
|
||||
|
||||
const char bb_path_passwd_file[] = "/etc/passwd";
|
||||
const char bb_path_shadow_file[] = "/etc/shadow";
|
||||
const char bb_path_group_file[] = "/etc/group";
|
||||
const char bb_path_gshadow_file[] = "/etc/gshadow";
|
||||
const char bb_path_motd_file[] = "/etc/motd";
|
||||
const char bb_dev_null[] = "/dev/null";
|
||||
const char bb_busybox_exec_path[] = CONFIG_BUSYBOX_EXEC_PATH;
|
||||
const char bb_default_login_shell[] = LIBBB_DEFAULT_LOGIN_SHELL;
|
||||
const char bb_path_passwd_file[] ALIGN1 = "/etc/passwd";
|
||||
const char bb_path_shadow_file[] ALIGN1 = "/etc/shadow";
|
||||
const char bb_path_group_file[] ALIGN1 = "/etc/group";
|
||||
const char bb_path_gshadow_file[] ALIGN1 = "/etc/gshadow";
|
||||
const char bb_path_motd_file[] ALIGN1 = "/etc/motd";
|
||||
const char bb_dev_null[] ALIGN1 = "/dev/null";
|
||||
const char bb_busybox_exec_path[] ALIGN1 = CONFIG_BUSYBOX_EXEC_PATH;
|
||||
const char bb_default_login_shell[] ALIGN1 = LIBBB_DEFAULT_LOGIN_SHELL;
|
||||
/* util-linux manpage says /sbin:/bin:/usr/sbin:/usr/bin,
|
||||
* but I want to save a few bytes here. Check libbb.h before changing! */
|
||||
const char bb_PATH_root_path[] = "PATH=/sbin:/usr/sbin:/bin:/usr/bin";
|
||||
const char bb_PATH_root_path[] ALIGN1 = "PATH=/sbin:/usr/sbin:/bin:/usr/bin";
|
||||
|
||||
|
||||
const int const_int_0;
|
||||
|
@ -47,7 +47,7 @@ const int const_int_1 = 1;
|
|||
|
||||
#include <utmp.h>
|
||||
/* This is usually something like "/var/adm/wtmp" or "/var/log/wtmp" */
|
||||
const char bb_path_wtmp_file[] =
|
||||
const char bb_path_wtmp_file[] ALIGN1 =
|
||||
#if defined _PATH_WTMP
|
||||
_PATH_WTMP;
|
||||
#elif defined WTMP_FILE
|
||||
|
|
|
@ -47,9 +47,9 @@ static const mode_t mode_flags[] = {
|
|||
|
||||
/* The previous version used "0pcCd?bB-?l?s???". However, the '0', 'C',
|
||||
* and 'B' types don't appear to be available on linux. So I removed them. */
|
||||
static const char type_chars[16] = "?pc?d?b?-?l?s???";
|
||||
static const char type_chars[16] ALIGN1 = "?pc?d?b?-?l?s???";
|
||||
/* 0123456789abcdef */
|
||||
static const char mode_chars[7] = "rwxSTst";
|
||||
static const char mode_chars[7] ALIGN1 = "rwxSTst";
|
||||
|
||||
const char *bb_mode_string(mode_t mode)
|
||||
{
|
||||
|
|
|
@ -11,5 +11,5 @@
|
|||
|
||||
/* Busybox mount uses either /proc/mounts or /etc/mtab to
|
||||
* get the list of currently mounted filesystems */
|
||||
const char bb_path_mtab_file[] =
|
||||
const char bb_path_mtab_file[] ALIGN1 =
|
||||
USE_FEATURE_MTAB_SUPPORT("/etc/mtab")SKIP_FEATURE_MTAB_SUPPORT("/proc/mounts");
|
||||
|
|
|
@ -31,8 +31,8 @@ int bb_parse_mode(const char *s, mode_t *current_mode)
|
|||
S_ISUID | S_ISGID, /* s */
|
||||
S_ISVTX /* t */
|
||||
};
|
||||
static const char who_chars[] = "augo";
|
||||
static const char perm_chars[] = "rwxXst";
|
||||
static const char who_chars[] ALIGN1 = "augo";
|
||||
static const char perm_chars[] ALIGN1 = "rwxXst";
|
||||
|
||||
const char *p;
|
||||
mode_t wholist;
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
|
||||
char bb_process_escape_sequence(const char **ptr)
|
||||
{
|
||||
static const char charmap[] = {
|
||||
static const char charmap[] ALIGN1 = {
|
||||
'a', 'b', 'f', 'n', 'r', 't', 'v', '\\', 0,
|
||||
'\a', '\b', '\f', '\n', '\r', '\t', '\v', '\\', '\\' };
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
#include "libbb.h"
|
||||
|
||||
/* Conversion table. for base 64 */
|
||||
const char bb_uuenc_tbl_base64[65 + 2] = {
|
||||
const char bb_uuenc_tbl_base64[65 + 2] ALIGN1 = {
|
||||
'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H',
|
||||
'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P',
|
||||
'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X',
|
||||
|
@ -21,7 +21,7 @@ const char bb_uuenc_tbl_base64[65 + 2] = {
|
|||
'\n', '\0' /* needed for uudecode.c */
|
||||
};
|
||||
|
||||
const char bb_uuenc_tbl_std[65] = {
|
||||
const char bb_uuenc_tbl_std[65] ALIGN1 = {
|
||||
'`', '!', '"', '#', '$', '%', '&', '\'',
|
||||
'(', ')', '*', '+', ',', '-', '.', '/',
|
||||
'0', '1', '2', '3', '4', '5', '6', '7',
|
||||
|
|
|
@ -695,7 +695,8 @@ int putpwent(const struct passwd *__restrict p, FILE *__restrict f)
|
|||
|
||||
int putgrent(const struct group *__restrict p, FILE *__restrict f)
|
||||
{
|
||||
static const char format[] = ",%s";
|
||||
static const char format[] ALIGN1 = ",%s";
|
||||
|
||||
char **m;
|
||||
const char *fmt;
|
||||
int rv = -1;
|
||||
|
@ -735,18 +736,19 @@ int putgrent(const struct group *__restrict p, FILE *__restrict f)
|
|||
}
|
||||
|
||||
#if ENABLE_USE_BB_SHADOW
|
||||
static const unsigned char _sp_off[] = {
|
||||
static const unsigned char _sp_off[] ALIGN1 = {
|
||||
offsetof(struct spwd, sp_lstchg), /* 2 - not a char ptr */
|
||||
offsetof(struct spwd, sp_min), /* 3 - not a char ptr */
|
||||
offsetof(struct spwd, sp_max), /* 4 - not a char ptr */
|
||||
offsetof(struct spwd, sp_warn), /* 5 - not a char ptr */
|
||||
offsetof(struct spwd, sp_inact), /* 6 - not a char ptr */
|
||||
offsetof(struct spwd, sp_expire), /* 7 - not a char ptr */
|
||||
offsetof(struct spwd, sp_expire) /* 7 - not a char ptr */
|
||||
};
|
||||
|
||||
int putspent(const struct spwd *p, FILE *stream)
|
||||
{
|
||||
static const char ld_format[] = "%ld:";
|
||||
static const char ld_format[] ALIGN1 = "%ld:";
|
||||
|
||||
const char *f;
|
||||
long x;
|
||||
int i;
|
||||
|
@ -787,7 +789,7 @@ DO_UNLOCK:
|
|||
/* Internal uClibc functions. */
|
||||
/**********************************************************************/
|
||||
|
||||
static const unsigned char pw_off[] = {
|
||||
static const unsigned char pw_off[] ALIGN1 = {
|
||||
offsetof(struct passwd, pw_name), /* 0 */
|
||||
offsetof(struct passwd, pw_passwd), /* 1 */
|
||||
offsetof(struct passwd, pw_uid), /* 2 - not a char ptr */
|
||||
|
@ -845,7 +847,7 @@ static int bb__parsepwent(void *data, char *line)
|
|||
|
||||
/**********************************************************************/
|
||||
|
||||
static const unsigned char gr_off[] = {
|
||||
static const unsigned char gr_off[] ALIGN1 = {
|
||||
offsetof(struct group, gr_name), /* 0 */
|
||||
offsetof(struct group, gr_passwd), /* 1 */
|
||||
offsetof(struct group, gr_gid) /* 2 - not a char ptr */
|
||||
|
@ -943,7 +945,7 @@ static int bb__parsegrent(void *data, char *line)
|
|||
/**********************************************************************/
|
||||
|
||||
#if ENABLE_USE_BB_SHADOW
|
||||
static const unsigned char sp_off[] = {
|
||||
static const unsigned char sp_off[] ALIGN1 = {
|
||||
offsetof(struct spwd, sp_namp), /* 0 */
|
||||
offsetof(struct spwd, sp_pwdp), /* 1 */
|
||||
offsetof(struct spwd, sp_lstchg), /* 2 - not a char ptr */
|
||||
|
|
|
@ -81,7 +81,8 @@ static void passwd_wrapper(const char *login) ATTRIBUTE_NORETURN;
|
|||
|
||||
static void passwd_wrapper(const char *login)
|
||||
{
|
||||
static const char prog[] = "passwd";
|
||||
static const char prog[] ALIGN1 = "passwd";
|
||||
|
||||
BB_EXECLP(prog, prog, login, NULL);
|
||||
bb_error_msg_and_die("failed to execute '%s', you must set the password for '%s' manually", prog, login);
|
||||
}
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
#if ENABLE_GETOPT_LONG
|
||||
#include <getopt.h>
|
||||
|
||||
static const char chpasswd_longopts[] =
|
||||
static const char chpasswd_longopts[] ALIGN1 =
|
||||
"encrypted\0" No_argument "e"
|
||||
"md5\0" No_argument "m"
|
||||
;
|
||||
|
|
|
@ -93,7 +93,7 @@ struct options {
|
|||
int speeds[MAX_SPEED]; /* baud rates to be tried */
|
||||
};
|
||||
|
||||
static const char opt_string[] = "I:LH:f:hil:mt:wn";
|
||||
static const char opt_string[] ALIGN1 = "I:LH:f:hil:mt:wn";
|
||||
#define F_INITSTRING (1<<0) /* initstring is set */
|
||||
#define F_LOCAL (1<<1) /* force local */
|
||||
#define F_FAKEHOST (1<<2) /* force fakehost */
|
||||
|
|
|
@ -14,7 +14,10 @@
|
|||
#include "libbb.h"
|
||||
#include <sys/timex.h>
|
||||
|
||||
static const struct {int bit; const char *name;} statlist[] = {
|
||||
static const struct {
|
||||
int bit;
|
||||
const char *name;
|
||||
} statlist[] = {
|
||||
{ STA_PLL, "PLL" },
|
||||
{ STA_PPSFREQ, "PPSFREQ" },
|
||||
{ STA_PPSTIME, "PPSTIME" },
|
||||
|
@ -28,7 +31,8 @@ static const struct {int bit; const char *name;} statlist[] = {
|
|||
{ STA_PPSWANDER, "PPSWANDER" },
|
||||
{ STA_PPSERROR, "PPSERROR" },
|
||||
{ STA_CLOCKERR, "CLOCKERR" },
|
||||
{ 0, NULL } };
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
||||
static const char *const ret_code_descript[] = {
|
||||
"clock synchronized",
|
||||
|
@ -36,7 +40,8 @@ static const char * const ret_code_descript[] = {
|
|||
"delete leap second",
|
||||
"leap second in progress",
|
||||
"leap second has occurred",
|
||||
"clock not synchronized" };
|
||||
"clock not synchronized"
|
||||
};
|
||||
|
||||
int adjtimex_main(int argc, char **argv);
|
||||
int adjtimex_main(int argc, char **argv)
|
||||
|
|
|
@ -245,12 +245,10 @@ static struct config_entry_struct *last_config = NULL;
|
|||
static char *mount_point = NULL;
|
||||
static volatile int caught_signal = FALSE;
|
||||
static volatile int caught_sighup = FALSE;
|
||||
static struct initial_symlink_struct
|
||||
{
|
||||
static struct initial_symlink_struct {
|
||||
const char *dest;
|
||||
const char *name;
|
||||
} initial_symlinks[] =
|
||||
{
|
||||
} initial_symlinks[] = {
|
||||
{"/proc/self/fd", "fd"},
|
||||
{"fd/0", "stdin"},
|
||||
{"fd/1", "stdout"},
|
||||
|
@ -258,12 +256,10 @@ static struct initial_symlink_struct
|
|||
{NULL, NULL},
|
||||
};
|
||||
|
||||
static struct event_type
|
||||
{
|
||||
static struct event_type {
|
||||
unsigned int type; /* The DEVFSD_NOTIFY_* value */
|
||||
const char *config_name; /* The name used in the config file */
|
||||
} event_types[] =
|
||||
{
|
||||
} event_types[] = {
|
||||
{DEVFSD_NOTIFY_REGISTERED, "REGISTER"},
|
||||
{DEVFSD_NOTIFY_UNREGISTERED, "UNREGISTER"},
|
||||
{DEVFSD_NOTIFY_ASYNC_OPEN, "ASYNC_OPEN"},
|
||||
|
@ -277,10 +273,10 @@ static struct event_type
|
|||
|
||||
/* Busybox messages */
|
||||
|
||||
static const char * const bb_msg_proto_rev = "protocol revision";
|
||||
static const char * const bb_msg_bad_config = "bad %s config file: %s";
|
||||
static const char * const bb_msg_small_buffer = "buffer too small";
|
||||
static const char * const bb_msg_variable_not_found = "variable: %s not found";
|
||||
static const char bb_msg_proto_rev[] ALIGN1 = "protocol revision";
|
||||
static const char bb_msg_bad_config[] ALIGN1 = "bad %s config file: %s";
|
||||
static const char bb_msg_small_buffer[] ALIGN1 = "buffer too small";
|
||||
static const char bb_msg_variable_not_found[] ALIGN1 = "variable: %s not found";
|
||||
|
||||
/* Busybox stuff */
|
||||
#if ENABLE_DEVFSD_VERBOSE || ENABLE_DEBUG
|
||||
|
@ -509,7 +505,7 @@ static void process_config_line(const char *line, unsigned long *event_mask)
|
|||
int i;
|
||||
|
||||
/* !!!! Only Uppercase Keywords in devsfd.conf */
|
||||
static const char options[] =
|
||||
static const char options[] ALIGN1 =
|
||||
"CLEAR_CONFIG\0""INCLUDE\0""OPTIONAL_INCLUDE\0"
|
||||
"RESTORE\0""PERMISSIONS\0""MODLOAD\0""EXECUTE\0"
|
||||
"COPY\0""IGNORE\0""MKOLDCOMPAT\0""MKNEWCOMPAT\0"
|
||||
|
|
|
@ -1096,14 +1096,16 @@ static unsigned long hwif_irq;
|
|||
// Too bad, really.
|
||||
|
||||
#if ENABLE_FEATURE_HDPARM_GET_IDENTITY
|
||||
static const char * const cfg_str[] =
|
||||
{ "", "HardSect", "SoftSect", "NotMFM",
|
||||
static const char *const cfg_str[] = {
|
||||
"", "HardSect", "SoftSect", "NotMFM",
|
||||
"HdSw>15uSec", "SpinMotCtl", "Fixed", "Removeable",
|
||||
"DTR<=5Mbs", "DTR>5Mbs", "DTR>10Mbs", "RotSpdTol>.5%",
|
||||
"dStbOff", "TrkOff", "FmtGapReq", "nonMagnetic"
|
||||
};
|
||||
|
||||
static const char * const BuffType[] = {"Unknown", "1Sect", "DualPort", "DualPortCache"};
|
||||
static const char *const BuffType[] = {
|
||||
"Unknown", "1Sect", "DualPort", "DualPortCache"
|
||||
};
|
||||
|
||||
static void dump_identity(const struct hd_driveid *id)
|
||||
{
|
||||
|
@ -1930,7 +1932,8 @@ static void parse_xfermode(int flag, smallint *get, smallint *set, int *value)
|
|||
}
|
||||
|
||||
/*------- getopt short options --------*/
|
||||
static const char hdparm_options[] = "gfu::n::p:r::m::c::k::a::B:tTh"
|
||||
static const char hdparm_options[] ALIGN1 =
|
||||
"gfu::n::p:r::m::c::k::a::B:tTh"
|
||||
USE_FEATURE_HDPARM_GET_IDENTITY("iI")
|
||||
USE_FEATURE_HDPARM_HDIO_GETSET_DMA("d::")
|
||||
#ifdef HDIO_DRIVE_CMD
|
||||
|
|
|
@ -450,12 +450,12 @@ static void cap_cur_fline(int nlines)
|
|||
}
|
||||
}
|
||||
|
||||
static const char controls[] =
|
||||
static const char controls[] ALIGN1 =
|
||||
/* NUL: never encountered; TAB: not converted */
|
||||
/**/"\x01\x02\x03\x04\x05\x06\x07\x08" "\x0a\x0b\x0c\x0d\x0e\x0f"
|
||||
"\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f"
|
||||
"\x7f\x9b"; /* DEL and infamous Meta-ESC :( */
|
||||
static const char ctrlconv[] =
|
||||
static const char ctrlconv[] ALIGN1 =
|
||||
/* '\n': it's a former NUL - subst with '@', not 'J' */
|
||||
"\x40\x41\x42\x43\x44\x45\x46\x47\x48\x49\x40\x4b\x4c\x4d\x4e\x4f"
|
||||
"\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f";
|
||||
|
|
|
@ -23,15 +23,15 @@ typedef struct {
|
|||
|
||||
#define UL unsigned long
|
||||
|
||||
static const char default_format[] = "real\t%E\nuser\t%u\nsys\t%T";
|
||||
static const char default_format[] ALIGN1 = "real\t%E\nuser\t%u\nsys\t%T";
|
||||
|
||||
/* The output format for the -p option .*/
|
||||
static const char posix_format[] = "real %e\nuser %U\nsys %S";
|
||||
static const char posix_format[] ALIGN1 = "real %e\nuser %U\nsys %S";
|
||||
|
||||
|
||||
/* Format string for printing all statistics verbosely.
|
||||
Keep this output to 24 lines so users on terminals can see it all.*/
|
||||
static const char long_format[] =
|
||||
static const char long_format[] ALIGN1 =
|
||||
"\tCommand being timed: \"%C\"\n"
|
||||
"\tUser time (seconds): %U\n"
|
||||
"\tSystem time (seconds): %S\n"
|
||||
|
|
|
@ -3618,7 +3618,7 @@ static int obj_gpl_license(struct obj_file *f, const char **license)
|
|||
"GPL v2",
|
||||
"GPL and additional rights",
|
||||
"Dual BSD/GPL",
|
||||
"Dual MPL/GPL",
|
||||
"Dual MPL/GPL"
|
||||
};
|
||||
|
||||
sec = obj_find_section(f, ".modinfo");
|
||||
|
@ -3681,7 +3681,8 @@ static void set_tainted(struct obj_file *f, int fd, char *m_name,
|
|||
/* Check if loading this module will taint the kernel. */
|
||||
static void check_tainted_module(struct obj_file *f, char *m_name)
|
||||
{
|
||||
static const char tainted_file[] = TAINT_FILENAME;
|
||||
static const char tainted_file[] ALIGN1 = TAINT_FILENAME;
|
||||
|
||||
int fd, kernel_has_tainted;
|
||||
const char *ptr;
|
||||
|
||||
|
@ -3750,7 +3751,8 @@ static void
|
|||
add_ksymoops_symbols(struct obj_file *f, const char *filename,
|
||||
const char *m_name)
|
||||
{
|
||||
static const char symprefix[] = "__insmod_";
|
||||
static const char symprefix[] ALIGN1 = "__insmod_";
|
||||
|
||||
struct obj_section *sec;
|
||||
struct obj_symbol *sym;
|
||||
char *name, *absolute_filename;
|
||||
|
|
|
@ -46,7 +46,7 @@ static int sockfd; /* active socket descriptor */
|
|||
static smallint hw_set; /* flag if hw-type was set (-H) */
|
||||
static const char *device = ""; /* current device */
|
||||
|
||||
static const char options[] =
|
||||
static const char options[] ALIGN1 =
|
||||
"pub\0"
|
||||
"priv\0"
|
||||
"temp\0"
|
||||
|
|
|
@ -287,7 +287,7 @@ int ftp_send(ftp_host_info_t *server, FILE *control_stream,
|
|||
#define FTPGETPUT_OPT_PORT 16
|
||||
|
||||
#if ENABLE_FEATURE_FTPGETPUT_LONG_OPTIONS
|
||||
static const char ftpgetput_longopts[] =
|
||||
static const char ftpgetput_longopts[] ALIGN1 =
|
||||
"continue\0" Required_argument "c"
|
||||
"verbose\0" No_argument "v"
|
||||
"username\0" Required_argument "u"
|
||||
|
|
|
@ -98,8 +98,8 @@
|
|||
# define PIPE_BUF 4096
|
||||
#endif
|
||||
|
||||
static const char default_path_httpd_conf[] = "/etc";
|
||||
static const char httpd_conf[] = "httpd.conf";
|
||||
static const char default_path_httpd_conf[] ALIGN1 = "/etc";
|
||||
static const char httpd_conf[] ALIGN1 = "httpd.conf";
|
||||
|
||||
#define TIMEOUT 60
|
||||
|
||||
|
@ -202,7 +202,7 @@ struct globals {
|
|||
ContentLength = -1; \
|
||||
} while (0)
|
||||
|
||||
static const char request_GET[] = "GET"; /* size algorithmic optimize */
|
||||
static const char request_GET[] ALIGN1 = "GET"; /* size algorithmic optimize */
|
||||
|
||||
static const char *const suffixTable[] = {
|
||||
/* Warning: shorted equivalent suffix in one line must be first */
|
||||
|
@ -288,7 +288,7 @@ static const HttpEnumString httpResponseNames[] = {
|
|||
};
|
||||
|
||||
|
||||
static const char RFC1123FMT[] = "%a, %d %b %Y %H:%M:%S GMT";
|
||||
static const char RFC1123FMT[] ALIGN1 = "%a, %d %b %Y %H:%M:%S GMT";
|
||||
|
||||
|
||||
#define STRNCASECMP(a, str) strncasecmp((a), (str), sizeof(str)-1)
|
||||
|
@ -1268,7 +1268,7 @@ static int sendCgi(const char *url,
|
|||
* <cr><lf> pair here. We will output "200 OK" line
|
||||
* if needed, but CGI still has to provide blank line
|
||||
* between header and body */
|
||||
static const char HTTP_200[] = "HTTP/1.0 200 OK\r\n";
|
||||
static const char HTTP_200[] ALIGN1 = "HTTP/1.0 200 OK\r\n";
|
||||
|
||||
/* Must use safe_read, not full_read, because
|
||||
* CGI may output a few first bytes and then wait
|
||||
|
|
|
@ -871,7 +871,7 @@ static int hw_null_address(const struct hwtype *hw, void *ap)
|
|||
return 1;
|
||||
}
|
||||
|
||||
static const char TRext[] = "\0\0\0Ki\0Mi\0Gi\0Ti";
|
||||
static const char TRext[] ALIGN1 = "\0\0\0Ki\0Mi\0Gi\0Ti";
|
||||
|
||||
static void print_bytes_scaled(unsigned long long ull, const char *end)
|
||||
{
|
||||
|
@ -1020,7 +1020,7 @@ static void ife_print(struct interface *ptr)
|
|||
if (ptr->flags == 0) {
|
||||
printf("[NO FLAGS] ");
|
||||
} else {
|
||||
static const char ife_print_flags_strs[] =
|
||||
static const char ife_print_flags_strs[] ALIGN1 =
|
||||
"UP\0"
|
||||
"BROADCAST\0"
|
||||
"DEBUG\0"
|
||||
|
@ -1038,7 +1038,7 @@ static void ife_print(struct interface *ptr)
|
|||
"DYNAMIC\0"
|
||||
#endif
|
||||
;
|
||||
static const unsigned short ife_print_flags_mask[] = {
|
||||
static const unsigned short ife_print_flags_mask[] ALIGN2 = {
|
||||
IFF_UP,
|
||||
IFF_BROADCAST,
|
||||
IFF_DEBUG,
|
||||
|
@ -1051,9 +1051,9 @@ static void ife_print(struct interface *ptr)
|
|||
IFF_ALLMULTI,
|
||||
IFF_SLAVE,
|
||||
IFF_MASTER,
|
||||
IFF_MULTICAST,
|
||||
IFF_MULTICAST
|
||||
#ifdef HAVE_DYNAMIC
|
||||
IFF_DYNAMIC,
|
||||
,IFF_DYNAMIC
|
||||
#endif
|
||||
};
|
||||
const unsigned short *mask = ife_print_flags_mask;
|
||||
|
|
|
@ -82,7 +82,7 @@ int iptunnel_main(int argc, char **argv)
|
|||
int ip_main(int argc, char **argv);
|
||||
int ip_main(int argc, char **argv)
|
||||
{
|
||||
static const char keywords[] =
|
||||
static const char keywords[] ALIGN1 =
|
||||
USE_FEATURE_IP_ADDRESS("address\0")
|
||||
USE_FEATURE_IP_ROUTE("route\0")
|
||||
USE_FEATURE_IP_LINK("link\0")
|
||||
|
|
|
@ -63,7 +63,7 @@ int get_prefix(unsigned long netmask);
|
|||
#define SILENT 0x20
|
||||
|
||||
#if ENABLE_FEATURE_IPCALC_LONG_OPTIONS
|
||||
static const char ipcalc_longopts[] =
|
||||
static const char ipcalc_longopts[] ALIGN1 =
|
||||
"netmask\0" No_argument "m"
|
||||
"broadcast\0" No_argument "b"
|
||||
"network\0" No_argument "n"
|
||||
|
|
|
@ -26,7 +26,7 @@ void ip_parse_common_args(int *argcp, char ***argvp)
|
|||
{
|
||||
int argc = *argcp;
|
||||
char **argv = *argvp;
|
||||
static const char ip_common_commands[] =
|
||||
static const char ip_common_commands[] ALIGN1 =
|
||||
"-family\0""inet\0""inet6\0""link\0"
|
||||
"-4\0""-6\0""-0\0""-oneline\0";
|
||||
enum {
|
||||
|
|
|
@ -412,7 +412,7 @@ static void ipaddr_reset_filter(int _oneline)
|
|||
/* Return value becomes exitcode. It's okay to not return at all */
|
||||
int ipaddr_list_or_flush(int argc, char **argv, int flush)
|
||||
{
|
||||
static const char option[] = "to\0""scope\0""up\0""label\0""dev\0";
|
||||
static const char option[] ALIGN1 = "to\0""scope\0""up\0""label\0""dev\0";
|
||||
|
||||
struct nlmsg_list *linfo = NULL;
|
||||
struct nlmsg_list *ainfo = NULL;
|
||||
|
@ -599,7 +599,7 @@ static int default_scope(inet_prefix *lcl)
|
|||
/* Return value becomes exitcode. It's okay to not return at all */
|
||||
static int ipaddr_modify(int cmd, int argc, char **argv)
|
||||
{
|
||||
static const char option[] =
|
||||
static const char option[] ALIGN1 =
|
||||
"peer\0""remote\0""broadcast\0""brd\0"
|
||||
"anycast\0""scope\0""dev\0""label\0""local\0";
|
||||
struct rtnl_handle rth;
|
||||
|
@ -768,7 +768,7 @@ static int ipaddr_modify(int cmd, int argc, char **argv)
|
|||
/* Return value becomes exitcode. It's okay to not return at all */
|
||||
int do_ipaddr(int argc, char **argv)
|
||||
{
|
||||
static const char commands[] =
|
||||
static const char commands[] ALIGN1 =
|
||||
"add\0""delete\0""list\0""show\0""lst\0""flush\0";
|
||||
|
||||
int command_num = 2; /* default command is list */
|
||||
|
|
|
@ -171,7 +171,7 @@ static int do_set(int argc, char **argv)
|
|||
struct ifreq ifr0, ifr1;
|
||||
char *newname = NULL;
|
||||
int htype, halen;
|
||||
static const char keywords[] =
|
||||
static const char keywords[] ALIGN1 =
|
||||
"up\0""down\0""name\0""mtu\0""multicast\0""arp\0""addr\0""dev\0"
|
||||
"on\0""off\0";
|
||||
enum { ARG_up = 1, ARG_down, ARG_name, ARG_mtu, ARG_multicast, ARG_arp,
|
||||
|
@ -275,7 +275,7 @@ static int ipaddr_list_link(int argc, char **argv)
|
|||
/* Return value becomes exitcode. It's okay to not return at all */
|
||||
int do_iplink(int argc, char **argv)
|
||||
{
|
||||
static const char keywords[] =
|
||||
static const char keywords[] ALIGN1 =
|
||||
"set\0""show\0""lst\0""list\0";
|
||||
smalluint key;
|
||||
if (argc <= 0)
|
||||
|
|
|
@ -294,7 +294,7 @@ static int print_route(struct sockaddr_nl *who ATTRIBUTE_UNUSED,
|
|||
/* Return value becomes exitcode. It's okay to not return at all */
|
||||
static int iproute_modify(int cmd, unsigned flags, int argc, char **argv)
|
||||
{
|
||||
static const char keywords[] =
|
||||
static const char keywords[] ALIGN1 =
|
||||
"src\0""via\0""mtu\0""lock\0""protocol\0"USE_FEATURE_IP_RULE("table\0")
|
||||
"dev\0""oif\0""to\0";
|
||||
enum {
|
||||
|
@ -489,7 +489,7 @@ static int rtnl_rtcache_request(struct rtnl_handle *rth, int family)
|
|||
|
||||
static void iproute_flush_cache(void)
|
||||
{
|
||||
static const char fn[] = "/proc/sys/net/ipv4/route/flush";
|
||||
static const char fn[] ALIGN1 = "/proc/sys/net/ipv4/route/flush";
|
||||
int flush_fd = open_or_warn(fn, O_WRONLY);
|
||||
|
||||
if (flush_fd < 0) {
|
||||
|
@ -517,7 +517,7 @@ static int iproute_list_or_flush(int argc, char **argv, int flush)
|
|||
struct rtnl_handle rth;
|
||||
char *id = NULL;
|
||||
char *od = NULL;
|
||||
static const char keywords[] =
|
||||
static const char keywords[] ALIGN1 =
|
||||
"protocol\0""all\0""dev\0""oif\0""iif\0""via\0""table\0""cache\0" /*all*/
|
||||
"from\0""root\0""match\0""exact\0""to\0"/*root match exact*/;
|
||||
enum {
|
||||
|
@ -679,7 +679,7 @@ static int iproute_get(int argc, char **argv)
|
|||
char *odev = NULL;
|
||||
bool connected = 0;
|
||||
bool from_ok = 0;
|
||||
static const char options[] =
|
||||
static const char options[] ALIGN1 =
|
||||
"from\0""iif\0""oif\0""dev\0""notify\0""connected\0""to\0";
|
||||
|
||||
memset(&req, 0, sizeof(req));
|
||||
|
@ -824,7 +824,7 @@ static int iproute_get(int argc, char **argv)
|
|||
/* Return value becomes exitcode. It's okay to not return at all */
|
||||
int do_iproute(int argc, char **argv)
|
||||
{
|
||||
static const char ip_route_commands[] =
|
||||
static const char ip_route_commands[] ALIGN1 =
|
||||
/*0-3*/ "add\0""append\0""change\0""chg\0"
|
||||
/*4-7*/ "delete\0""get\0""list\0""show\0"
|
||||
/*8..*/ "prepend\0""replace\0""test\0""flush\0";
|
||||
|
|
|
@ -187,7 +187,7 @@ static int iprule_list(int argc, char **argv)
|
|||
/* Return value becomes exitcode. It's okay to not return at all */
|
||||
static int iprule_modify(int cmd, int argc, char **argv)
|
||||
{
|
||||
static const char keywords[] =
|
||||
static const char keywords[] ALIGN1 =
|
||||
"from\0""to\0""preference\0""order\0""priority\0"
|
||||
"tos\0""fwmark\0""realms\0""table\0""lookup\0""dev\0"
|
||||
"iif\0""nat\0""map-to\0""type\0""help\0";
|
||||
|
@ -313,7 +313,7 @@ static int iprule_modify(int cmd, int argc, char **argv)
|
|||
/* Return value becomes exitcode. It's okay to not return at all */
|
||||
int do_iprule(int argc, char **argv)
|
||||
{
|
||||
static const char ip_rule_commands[] =
|
||||
static const char ip_rule_commands[] ALIGN1 =
|
||||
"add\0""delete\0""list\0""show\0";
|
||||
int cmd = 2; /* list */
|
||||
|
||||
|
|
|
@ -128,7 +128,7 @@ static int do_del_ioctl(const char *basedev, struct ip_tunnel_parm *p)
|
|||
/* Dies on error */
|
||||
static void parse_args(int argc, char **argv, int cmd, struct ip_tunnel_parm *p)
|
||||
{
|
||||
static const char keywords[] =
|
||||
static const char keywords[] ALIGN1 =
|
||||
"mode\0""ipip\0""ip/ip\0""gre\0""gre/ip\0""sit\0""ipv6/ip\0"
|
||||
"key\0""ikey\0""okey\0""seq\0""iseq\0""oseq\0"
|
||||
"csum\0""icsum\0""ocsum\0""nopmtudisc\0""pmtudisc\0"
|
||||
|
@ -519,7 +519,7 @@ static int do_show(int argc, char **argv)
|
|||
/* Return value becomes exitcode. It's okay to not return at all */
|
||||
int do_iptunnel(int argc, char **argv)
|
||||
{
|
||||
static const char keywords[] =
|
||||
static const char keywords[] ALIGN1 =
|
||||
"add\0""change\0""delete\0""show\0""list\0""lst\0";
|
||||
enum { ARG_add = 0, ARG_change, ARG_del, ARG_show, ARG_list, ARG_lst };
|
||||
int key;
|
||||
|
|
|
@ -51,7 +51,7 @@ const char *rtnl_rtntype_n2a(int id, char *buf, int len)
|
|||
|
||||
int rtnl_rtntype_a2n(int *id, char *arg)
|
||||
{
|
||||
static const char keywords[] =
|
||||
static const char keywords[] ALIGN1 =
|
||||
"local\0""nat\0""broadcast\0""brd\0""anycast\0"
|
||||
"multicast\0""prohibit\0""unreachable\0""blackhole\0"
|
||||
"xresolve\0""unicast\0""throw\0";
|
||||
|
|
|
@ -47,8 +47,7 @@ enum {
|
|||
TCP_CLOSING /* now a valid state */
|
||||
};
|
||||
|
||||
static const char * const tcp_state[] =
|
||||
{
|
||||
static const char *const tcp_state[] = {
|
||||
"",
|
||||
"ESTABLISHED",
|
||||
"SYN_SENT",
|
||||
|
|
|
@ -73,7 +73,7 @@
|
|||
#define HOST_FLAG 2
|
||||
|
||||
/* We remap '-' to '#' to avoid problems with getopt. */
|
||||
static const char tbl_hash_net_host[] =
|
||||
static const char tbl_hash_net_host[] ALIGN1 =
|
||||
"\007\001#net\0"
|
||||
/* "\010\002#host\0" */
|
||||
"\007\002#host" /* Since last, we can save a byte. */
|
||||
|
@ -96,7 +96,7 @@ static const char tbl_hash_net_host[] =
|
|||
#define KW_IPVx_DYN 042
|
||||
#define KW_IPVx_REINSTATE 043
|
||||
|
||||
static const char tbl_ipvx[] =
|
||||
static const char tbl_ipvx[] ALIGN1 =
|
||||
/* 020 is the "takes an arg" bit */
|
||||
#if HAVE_NEW_ADDRT
|
||||
"\011\020metric\0"
|
||||
|
@ -438,7 +438,7 @@ static void INET6_setroute(int action, char **args)
|
|||
}
|
||||
#endif
|
||||
|
||||
static const unsigned int flagvals[] = { /* Must agree with flagchars[]. */
|
||||
static const unsigned flagvals[] = { /* Must agree with flagchars[]. */
|
||||
RTF_GATEWAY,
|
||||
RTF_HOST,
|
||||
RTF_REINSTATE,
|
||||
|
@ -454,7 +454,8 @@ static const unsigned int flagvals[] = { /* Must agree with flagchars[]. */
|
|||
#define IPV4_MASK (RTF_GATEWAY|RTF_HOST|RTF_REINSTATE|RTF_DYNAMIC|RTF_MODIFIED)
|
||||
#define IPV6_MASK (RTF_GATEWAY|RTF_HOST|RTF_DEFAULT|RTF_ADDRCONF|RTF_CACHE)
|
||||
|
||||
static const char flagchars[] = /* Must agree with flagvals[]. */
|
||||
/* Must agree with flagvals[]. */
|
||||
static const char flagchars[] ALIGN1 =
|
||||
"GHRDM"
|
||||
#if ENABLE_FEATURE_IPV6
|
||||
"DAC"
|
||||
|
@ -631,11 +632,12 @@ static void INET6_displayroutes(int noresolve)
|
|||
#define ROUTE_OPT_INET6 0x08 /* Not an actual option. See below. */
|
||||
|
||||
/* 1st byte is offset to next entry offset. 2nd byte is return value. */
|
||||
static const char tbl_verb[] = /* 2nd byte matches RTACTION_* code */
|
||||
/* 2nd byte matches RTACTION_* code */
|
||||
static const char tbl_verb[] ALIGN1 =
|
||||
"\006\001add\0"
|
||||
"\006\002del\0"
|
||||
/* "\011\002delete\0" */
|
||||
"\010\002delete" /* Since last, we can save a byte. */
|
||||
"\010\002delete" /* Since it's last, we can save a byte. */
|
||||
;
|
||||
|
||||
int route_main(int argc, char **argv);
|
||||
|
|
|
@ -123,7 +123,7 @@ int slattach_main(int argc, char **argv);
|
|||
int slattach_main(int argc, char **argv)
|
||||
{
|
||||
/* Line discipline code table */
|
||||
static const char proto_names[] =
|
||||
static const char proto_names[] ALIGN1 =
|
||||
"slip\0" /* 0 */
|
||||
"cslip\0" /* 1 */
|
||||
"slip6\0" /* 2 */
|
||||
|
|
|
@ -353,7 +353,7 @@ static void putiac_naws(byte c, int x, int y)
|
|||
}
|
||||
#endif
|
||||
|
||||
static char const escapecharis[] = "\r\nEscape character is ";
|
||||
static char const escapecharis[] ALIGN1 = "\r\nEscape character is ";
|
||||
|
||||
static void setConMode(void)
|
||||
{
|
||||
|
|
|
@ -278,7 +278,7 @@ static int tftp( USE_GETPUT(const int cmd,)
|
|||
"unknown transfer id",
|
||||
"file already exists",
|
||||
"no such user",
|
||||
"bad option",
|
||||
"bad option"
|
||||
};
|
||||
|
||||
const char *msg = "";
|
||||
|
@ -309,7 +309,7 @@ static int tftp( USE_GETPUT(const int cmd,)
|
|||
/* htons can be impossible to use in const initializer: */
|
||||
/*static const uint16_t error_8[2] = { htons(TFTP_ERROR), htons(8) };*/
|
||||
/* thus we open-code big-endian layout */
|
||||
static const char error_8[4] = { 0,TFTP_ERROR, 0,8 };
|
||||
static const uint8_t error_8[4] = { 0,TFTP_ERROR, 0,8 };
|
||||
xsendto(socketfd, error_8, 4, &peer_lsa->sa, peer_lsa->len);
|
||||
bb_error_msg("server proposes bad blksize %d, exiting", blksize);
|
||||
goto ret;
|
||||
|
|
|
@ -6,4 +6,6 @@
|
|||
|
||||
#include "common.h"
|
||||
|
||||
const uint8_t MAC_BCAST_ADDR[6] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
|
||||
const uint8_t MAC_BCAST_ADDR[6] ALIGN2 = {
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff
|
||||
};
|
||||
|
|
|
@ -180,7 +180,7 @@ int udhcpc_main(int argc, char **argv)
|
|||
OPT_v = 1 << 17,
|
||||
};
|
||||
#if ENABLE_GETOPT_LONG
|
||||
static const char udhcpc_longopts[] =
|
||||
static const char udhcpc_longopts[] ALIGN1 =
|
||||
"clientid\0" Required_argument "c"
|
||||
"clientid-none\0" No_argument "C"
|
||||
"vendorclass\0" Required_argument "V"
|
||||
|
|
|
@ -24,7 +24,7 @@ int dumpleases_main(int argc, char **argv)
|
|||
OPT_f = 0x4, // -f
|
||||
};
|
||||
#if ENABLE_GETOPT_LONG
|
||||
static const char dumpleases_longopts[] =
|
||||
static const char dumpleases_longopts[] ALIGN1 =
|
||||
"absolute\0" No_argument "a"
|
||||
"remaining\0" No_argument "r"
|
||||
"file\0" Required_argument "f"
|
||||
|
|
|
@ -52,7 +52,7 @@ const struct dhcp_option dhcp_options[] = {
|
|||
};
|
||||
|
||||
/* Lengths of the different option types */
|
||||
const unsigned char option_lengths[] = {
|
||||
const unsigned char option_lengths[] ALIGN1 = {
|
||||
[OPTION_IP] = 4,
|
||||
[OPTION_IP_PAIR] = 8,
|
||||
[OPTION_BOOLEAN] = 1,
|
||||
|
|
|
@ -63,7 +63,7 @@ static const char *xfind_str(const char *table, const char *str)
|
|||
return table - 1;
|
||||
}
|
||||
|
||||
static const char cmds[] = {
|
||||
static const char cmds[] ALIGN1 = {
|
||||
4, ADD_VLAN_CMD, 7,
|
||||
'a', 'd', 'd', 0,
|
||||
3, DEL_VLAN_CMD, 7,
|
||||
|
@ -85,7 +85,7 @@ static const char cmds[] = {
|
|||
'm', 'a', 'p', 0,
|
||||
};
|
||||
|
||||
static const char name_types[] = {
|
||||
static const char name_types[] ALIGN1 = {
|
||||
VLAN_NAME_TYPE_PLUS_VID, 16,
|
||||
'V', 'L', 'A', 'N',
|
||||
'_', 'P', 'L', 'U', 'S', '_', 'V', 'I', 'D',
|
||||
|
@ -104,7 +104,7 @@ static const char name_types[] = {
|
|||
'_', 'N', 'O', '_', 'P', 'A', 'D', 0,
|
||||
};
|
||||
|
||||
static const char conf_file_name[] = "/proc/net/vlan/config";
|
||||
static const char conf_file_name[] ALIGN1 = "/proc/net/vlan/config";
|
||||
|
||||
int vconfig_main(int argc, char **argv);
|
||||
int vconfig_main(int argc, char **argv)
|
||||
|
|
|
@ -114,7 +114,7 @@ int wget_main(int argc, char **argv)
|
|||
bool use_proxy = 1; /* Use proxies if env vars are set */
|
||||
const char *proxy_flag = "on"; /* Use proxies if env vars are set */
|
||||
const char *user_agent = "Wget";/* "User-Agent" header field */
|
||||
static const char keywords[] =
|
||||
static const char keywords[] ALIGN1 =
|
||||
"content-length\0""transfer-encoding\0""chunked\0""location\0";
|
||||
enum {
|
||||
KEY_content_length = 1, KEY_transfer_encoding, KEY_chunked, KEY_location
|
||||
|
@ -131,7 +131,7 @@ int wget_main(int argc, char **argv)
|
|||
WGET_OPT_HEADER = 0x100,
|
||||
};
|
||||
#if ENABLE_FEATURE_WGET_LONG_OPTIONS
|
||||
static const char wget_longopts[] =
|
||||
static const char wget_longopts[] ALIGN1 =
|
||||
/* name, has_arg, val */
|
||||
"continue\0" No_argument "c"
|
||||
"spider\0" No_argument "s"
|
||||
|
@ -539,7 +539,7 @@ static void parse_url(char *src_url, struct host_info *h)
|
|||
p = strchr(h->host, '#'); if (!sp || (p && sp > p)) sp = p;
|
||||
if (!sp) {
|
||||
/* must be writable because of bb_get_last_path_component() */
|
||||
static char nullstr[] = "";
|
||||
static char nullstr[] ALIGN1 = "";
|
||||
h->path = nullstr;
|
||||
} else if (*sp == '/') {
|
||||
*sp = '\0';
|
||||
|
|
|
@ -36,7 +36,7 @@ static const char *const proc_name[] = {
|
|||
"net/dev",
|
||||
"meminfo",
|
||||
"diskstats",
|
||||
"sys/fs/file-nr",
|
||||
"sys/fs/file-nr"
|
||||
};
|
||||
|
||||
struct globals {
|
||||
|
@ -754,7 +754,7 @@ static void collect_info(s_stat *s)
|
|||
|
||||
typedef s_stat* init_func(const char *param);
|
||||
|
||||
static const char options[] = "ncmsfixptbdr";
|
||||
static const char options[] ALIGN1 = "ncmsfixptbdr";
|
||||
static init_func *const init_functions[] = {
|
||||
init_if,
|
||||
init_cpu,
|
||||
|
@ -767,7 +767,7 @@ static init_func *const init_functions[] = {
|
|||
init_time,
|
||||
init_blk,
|
||||
init_delay,
|
||||
init_cr,
|
||||
init_cr
|
||||
};
|
||||
|
||||
int nmeter_main(int argc, char **argv);
|
||||
|
|
|
@ -29,7 +29,7 @@ void BUG_bad_PRIO_USER(void);
|
|||
int renice_main(int argc, char **argv);
|
||||
int renice_main(int argc, char **argv)
|
||||
{
|
||||
static const char Xetpriority_msg[] = "%cetpriority";
|
||||
static const char Xetpriority_msg[] ALIGN1 = "%cetpriority";
|
||||
|
||||
int retval = EXIT_SUCCESS;
|
||||
int which = PRIO_PROCESS; /* Default 'which' value. */
|
||||
|
@ -67,8 +67,9 @@ int renice_main(int argc, char **argv)
|
|||
while ((arg = *++argv) != NULL) {
|
||||
/* Check for a mode switch. */
|
||||
if (arg[0] == '-' && arg[1]) {
|
||||
static const char opts[]
|
||||
= { 'p', 'g', 'u', 0, PRIO_PROCESS, PRIO_PGRP, PRIO_USER };
|
||||
static const char opts[] ALIGN1 = {
|
||||
'p', 'g', 'u', 0, PRIO_PROCESS, PRIO_PGRP, PRIO_USER
|
||||
};
|
||||
const char *p = strchr(opts, arg[1]);
|
||||
if (p) {
|
||||
which = p[4];
|
||||
|
|
|
@ -27,24 +27,27 @@ static int sysctl_display_all(const char *path, int output, int show_table);
|
|||
/*
|
||||
* Globals...
|
||||
*/
|
||||
static const char PROC_PATH[] = "/proc/sys/";
|
||||
static const char DEFAULT_PRELOAD[] = "/etc/sysctl.conf";
|
||||
static const char PROC_PATH[] ALIGN1 = "/proc/sys/";
|
||||
static const char DEFAULT_PRELOAD[] ALIGN1 = "/etc/sysctl.conf";
|
||||
|
||||
/* error messages */
|
||||
static const char ERR_UNKNOWN_PARAMETER[] = "error: Unknown parameter '%s'\n";
|
||||
static const char ERR_MALFORMED_SETTING[] = "error: Malformed setting '%s'\n";
|
||||
static const char ERR_NO_EQUALS[] =
|
||||
static const char ERR_UNKNOWN_PARAMETER[] ALIGN1 =
|
||||
"error: Unknown parameter '%s'\n";
|
||||
static const char ERR_MALFORMED_SETTING[] ALIGN1 =
|
||||
"error: Malformed setting '%s'\n";
|
||||
static const char ERR_NO_EQUALS[] ALIGN1 =
|
||||
"error: '%s' must be of the form name=value\n";
|
||||
static const char ERR_INVALID_KEY[] = "error: '%s' is an unknown key\n";
|
||||
static const char ERR_UNKNOWN_WRITING[] =
|
||||
static const char ERR_INVALID_KEY[] ALIGN1 =
|
||||
"error: '%s' is an unknown key\n";
|
||||
static const char ERR_UNKNOWN_WRITING[] ALIGN1 =
|
||||
"error: unknown error %d setting key '%s'\n";
|
||||
static const char ERR_UNKNOWN_READING[] =
|
||||
static const char ERR_UNKNOWN_READING[] ALIGN1 =
|
||||
"error: unknown error %d reading key '%s'\n";
|
||||
static const char ERR_PERMISSION_DENIED[] =
|
||||
static const char ERR_PERMISSION_DENIED[] ALIGN1 =
|
||||
"error: permission denied on key '%s'\n";
|
||||
static const char ERR_PRELOAD_FILE[] =
|
||||
static const char ERR_PRELOAD_FILE[] ALIGN1 =
|
||||
"error: cannot open preload file '%s'\n";
|
||||
static const char WARN_BAD_LINE[] =
|
||||
static const char WARN_BAD_LINE[] ALIGN1 =
|
||||
"warning: %s(%d): invalid syntax, continuing...\n";
|
||||
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@ try() {
|
|||
added="$1"
|
||||
shift
|
||||
$debug && echo "Trying: $* $added"
|
||||
"$@" $added >busybox.map 2>busybox_ld.err
|
||||
"$@" $added 2>busybox_ld.err
|
||||
}
|
||||
|
||||
# Sanitize lib list (dups, extra spaces etc)
|
||||
|
@ -22,14 +22,17 @@ try "-Wl,--start-group $l_list -Wl,--end-group" "$@" \
|
|||
cat busybox_ld.err
|
||||
exit 1
|
||||
}
|
||||
# Hack: we are not supposed to know executable name,
|
||||
# but this hack cuts down link time
|
||||
mv busybox_unstripped busybox_unstripped.tmp
|
||||
mv busybox.map busybox.map.tmp
|
||||
|
||||
#### Hack disabled: conflicts with ld --verbose flag in last link phase
|
||||
|
||||
##### Hack: we are not supposed to know executable name,
|
||||
##### but this hack cuts down link time
|
||||
####mv busybox_unstripped busybox_unstripped.tmp
|
||||
####mv busybox.map busybox.map.tmp
|
||||
|
||||
# Now try to remove each lib and build without it.
|
||||
# Stop when no lib can be removed.
|
||||
ever_discarded=false
|
||||
####ever_discarded=false
|
||||
while test "$BBOX_LIB_LIST"; do
|
||||
$debug && echo "Trying libraries: $BBOX_LIB_LIST"
|
||||
all_needed=true
|
||||
|
@ -41,7 +44,7 @@ while test "$BBOX_LIB_LIST"; do
|
|||
echo "Library $one is not needed"
|
||||
BBOX_LIB_LIST="$without_one"
|
||||
all_needed=false
|
||||
ever_discarded=true
|
||||
#### ever_discarded=true
|
||||
else
|
||||
echo "Library $one is needed"
|
||||
fi
|
||||
|
@ -54,13 +57,23 @@ while test "$BBOX_LIB_LIST"; do
|
|||
#{ echo "$BBOX_LIB_LIST" | grep -q ' '; } || break
|
||||
done
|
||||
|
||||
mv busybox_unstripped.tmp busybox_unstripped
|
||||
mv busybox.map.tmp busybox.map
|
||||
$ever_discarded && {
|
||||
####mv busybox_unstripped.tmp busybox_unstripped
|
||||
####mv busybox.map.tmp busybox.map
|
||||
####$ever_discarded && {
|
||||
# Make the binary with final, minimal list of libs
|
||||
echo "Final link with: $BBOX_LIB_LIST"
|
||||
l_list=`echo "$BBOX_LIB_LIST" | sed -e 's/ / -l/g' -e 's/^/-l/'`
|
||||
try "-Wl,--start-group $l_list -Wl,--end-group" "$@" || exit 1
|
||||
}
|
||||
rm busybox_ld.err
|
||||
exit 0 # Ensure "success" exit code
|
||||
# --verbose gives us gobs of info to stdout (e.g. linker script used)
|
||||
try "-Wl,--start-group $l_list -Wl,--end-group -Wl,--verbose" "$@" >busybox_ld.out ####|| exit 1
|
||||
#
|
||||
# Add SORT_BY_ALIGNMENT to linker script (found in busybox_ld.out):
|
||||
# .rodata : { *(.rodata SORT_BY_ALIGNMENT(.rodata.*) .gnu.linkonce.r.*) }
|
||||
# *(.data SORT_BY_ALIGNMENT(.data.*) .gnu.linkonce.d.*)
|
||||
# *(.bss SORT_BY_ALIGNMENT(.bss.*) .gnu.linkonce.b.*)
|
||||
# This will eliminate most of the data padding. Use linker script
|
||||
# by commenting "try" above and uncommenting this one (tested on i386):
|
||||
#try "-Wl,--start-group $l_list -Wl,--end-group -Wl,--verbose -Wl,-T -Wl,busybox_ldscript" "$@" >busybox_ld.out
|
||||
#
|
||||
####}
|
||||
####rm busybox_ld.err
|
||||
####exit 0 # Ensure "success" exit code
|
||||
|
|
|
@ -105,7 +105,7 @@ skip:
|
|||
}
|
||||
|
||||
#if ENABLE_FEATURE_CHCON_LONG_OPTIONS
|
||||
static const char chcon_longopts[] =
|
||||
static const char chcon_longopts[] ALIGN1 =
|
||||
"recursive\0" No_argument "R"
|
||||
"changes\0" No_argument "c"
|
||||
"no-dereference\0" No_argument "h"
|
||||
|
|
|
@ -69,7 +69,7 @@ static context_t runcon_compute_new_context(char *user, char *role, char *type,
|
|||
}
|
||||
|
||||
#if ENABLE_FEATURE_RUNCON_LONG_OPTIONS
|
||||
static const char runcon_options[] =
|
||||
static const char runcon_longopts[] ALIGN1 =
|
||||
"user\0" Required_argument "u"
|
||||
"role\0" Required_argument "r"
|
||||
"type\0" Required_argument "t"
|
||||
|
@ -101,7 +101,7 @@ int runcon_main(int argc, char **argv)
|
|||
selinux_or_die();
|
||||
|
||||
#if ENABLE_FEATURE_RUNCON_LONG_OPTIONS
|
||||
applet_long_options = runcon_options;
|
||||
applet_long_options = runcon_longopts;
|
||||
#endif
|
||||
opt_complementary = "-1";
|
||||
opts = getopt32(argc, argv, "r:t:u:l:ch", &role, &type, &user, &range);
|
||||
|
|
|
@ -409,7 +409,7 @@ static int apply_spec(const char *file,
|
|||
|
||||
static int canoncon(const char *path, unsigned lineno, char **contextp)
|
||||
{
|
||||
static const char err_msg[] = "%s: line %u has invalid context %s";
|
||||
static const char err_msg[] ALIGN1 = "%s: line %u has invalid context %s";
|
||||
|
||||
char *tmpcon;
|
||||
char *context = *contextp;
|
||||
|
|
56
shell/ash.c
56
shell/ash.c
|
@ -91,10 +91,10 @@ static const char *const optletters_optnames[] = {
|
|||
"a" "allexport",
|
||||
"b" "notify",
|
||||
"u" "nounset",
|
||||
"\0" "vi",
|
||||
"\0" "vi"
|
||||
#if DEBUG
|
||||
"\0" "nolog",
|
||||
"\0" "debug",
|
||||
,"\0" "nolog"
|
||||
,"\0" "debug"
|
||||
#endif
|
||||
};
|
||||
|
||||
|
@ -103,7 +103,7 @@ static const char *const optletters_optnames[] = {
|
|||
|
||||
enum { NOPTS = ARRAY_SIZE(optletters_optnames) };
|
||||
|
||||
static char optlist[NOPTS];
|
||||
static char optlist[NOPTS] ALIGN1;
|
||||
|
||||
#define eflag optlist[0]
|
||||
#define fflag optlist[1]
|
||||
|
@ -127,10 +127,10 @@ static char optlist[NOPTS];
|
|||
|
||||
/* ============ Misc data */
|
||||
|
||||
static char nullstr[1]; /* zero length string */
|
||||
static const char homestr[] = "HOME";
|
||||
static const char snlfmt[] = "%s\n";
|
||||
static const char illnum[] = "Illegal number: %s";
|
||||
static char nullstr[1] ALIGN1; /* zero length string */
|
||||
static const char homestr[] ALIGN1 = "HOME";
|
||||
static const char snlfmt[] ALIGN1 = "%s\n";
|
||||
static const char illnum[] ALIGN1 = "Illegal number: %s";
|
||||
|
||||
static char *minusc; /* argument to -c option */
|
||||
|
||||
|
@ -447,7 +447,9 @@ out2str(const char *p)
|
|||
#define VSTRIMLEFTMAX 0x9 /* ${var##pattern} */
|
||||
#define VSLENGTH 0xa /* ${#var} */
|
||||
|
||||
static const char dolatstr[] = { CTLVAR, VSNORMAL|VSQUOTE, '@', '=', '\0' };
|
||||
static const char dolatstr[] ALIGN1 = {
|
||||
CTLVAR, VSNORMAL|VSQUOTE, '@', '=', '\0'
|
||||
};
|
||||
|
||||
#define NCMD 0
|
||||
#define NPIPE 1
|
||||
|
@ -1583,10 +1585,10 @@ static unsigned long rseed;
|
|||
#endif
|
||||
|
||||
#ifdef IFS_BROKEN
|
||||
static const char defifsvar[] = "IFS= \t\n";
|
||||
static const char defifsvar[] ALIGN1 = "IFS= \t\n";
|
||||
#define defifs (defifsvar + 4)
|
||||
#else
|
||||
static const char defifs[] = " \t\n";
|
||||
static const char defifs[] ALIGN1 = " \t\n";
|
||||
#endif
|
||||
|
||||
struct shparam {
|
||||
|
@ -2548,16 +2550,16 @@ static const char S_I_T[][3] = {
|
|||
static int
|
||||
SIT(int c, int syntax)
|
||||
{
|
||||
static const char spec_symbls[] = "\t\n !\"$&'()*-/:;<=>?[\\]`|}~";
|
||||
static const char spec_symbls[] ALIGN1 = "\t\n !\"$&'()*-/:;<=>?[\\]`|}~";
|
||||
#if ENABLE_ASH_ALIAS
|
||||
static const char syntax_index_table[] = {
|
||||
static const char syntax_index_table[] ALIGN1 = {
|
||||
1, 2, 1, 3, 4, 5, 1, 6, /* "\t\n !\"$&'" */
|
||||
7, 8, 3, 3, 3, 3, 1, 1, /* "()*-/:;<" */
|
||||
3, 1, 3, 3, 9, 3, 10, 1, /* "=>?[\\]`|" */
|
||||
11, 3 /* "}~" */
|
||||
};
|
||||
#else
|
||||
static const char syntax_index_table[] = {
|
||||
static const char syntax_index_table[] ALIGN1 = {
|
||||
0, 1, 0, 2, 3, 4, 0, 5, /* "\t\n !\"$&'" */
|
||||
6, 7, 2, 2, 2, 2, 0, 0, /* "()*-/:;<" */
|
||||
2, 0, 2, 2, 8, 2, 9, 0, /* "=>?[\\]`|" */
|
||||
|
@ -5003,7 +5005,7 @@ esclen(const char *start, const char *p)
|
|||
static char *
|
||||
_rmescapes(char *str, int flag)
|
||||
{
|
||||
static const char qchars[] = { CTLESC, CTLQUOTEMARK, '\0' };
|
||||
static const char qchars[] ALIGN1 = { CTLESC, CTLQUOTEMARK, '\0' };
|
||||
|
||||
char *p, *q, *r;
|
||||
unsigned inquotes;
|
||||
|
@ -5420,7 +5422,7 @@ static char *evalvar(char *p, int flag);
|
|||
static void
|
||||
argstr(char *p, int flag)
|
||||
{
|
||||
static const char spclchars[] = {
|
||||
static const char spclchars[] ALIGN1 = {
|
||||
'=',
|
||||
':',
|
||||
CTLQUOTEMARK,
|
||||
|
@ -6266,7 +6268,7 @@ expsort(struct strlist *str)
|
|||
static void
|
||||
expandmeta(struct strlist *str, int flag)
|
||||
{
|
||||
static const char metachars[] = {
|
||||
static const char metachars[] ALIGN1 = {
|
||||
'*', '?', '[', 0
|
||||
};
|
||||
/* TODO - EXP_REDIR */
|
||||
|
@ -10200,7 +10202,7 @@ parsesub: {
|
|||
int typeloc;
|
||||
int flags;
|
||||
char *p;
|
||||
static const char types[] = "}-+?=";
|
||||
static const char types[] ALIGN1 = "}-+?=";
|
||||
|
||||
c = pgetc();
|
||||
if (
|
||||
|
@ -10496,13 +10498,15 @@ parsearith: {
|
|||
#define NEW_xxreadtoken
|
||||
#ifdef NEW_xxreadtoken
|
||||
/* singles must be first! */
|
||||
static const char xxreadtoken_chars[7] = { '\n', '(', ')', '&', '|', ';', 0 };
|
||||
static const char xxreadtoken_chars[7] ALIGN1 = {
|
||||
'\n', '(', ')', '&', '|', ';', 0
|
||||
};
|
||||
|
||||
static const char xxreadtoken_tokens[] = {
|
||||
static const char xxreadtoken_tokens[] ALIGN1 = {
|
||||
TNL, TLP, TRP, /* only single occurrence allowed */
|
||||
TBACKGND, TPIPE, TSEMI, /* if single occurrence */
|
||||
TEOF, /* corresponds to trailing nul */
|
||||
TAND, TOR, TENDCASE, /* if double occurrence */
|
||||
TAND, TOR, TENDCASE /* if double occurrence */
|
||||
};
|
||||
|
||||
#define xxreadtoken_doubles \
|
||||
|
@ -11379,7 +11383,7 @@ unsetcmd(int argc, char **argv)
|
|||
|
||||
#include <sys/times.h>
|
||||
|
||||
static const unsigned char timescmd_str[] = {
|
||||
static const unsigned char timescmd_str[] ALIGN1 = {
|
||||
' ', offsetof(struct tms, tms_utime),
|
||||
'\n', offsetof(struct tms, tms_stime),
|
||||
' ', offsetof(struct tms, tms_cutime),
|
||||
|
@ -11659,9 +11663,9 @@ readcmd(int argc, char **argv)
|
|||
static int
|
||||
umaskcmd(int argc, char **argv)
|
||||
{
|
||||
static const char permuser[3] = "ugo";
|
||||
static const char permmode[3] = "rwx";
|
||||
static const short int permmask[] = {
|
||||
static const char permuser[3] ALIGN1 = "ugo";
|
||||
static const char permmode[3] ALIGN1 = "rwx";
|
||||
static const short permmask[] ALIGN2 = {
|
||||
S_IRUSR, S_IWUSR, S_IXUSR,
|
||||
S_IRGRP, S_IWGRP, S_IXGRP,
|
||||
S_IROTH, S_IWOTH, S_IXOTH
|
||||
|
@ -12318,7 +12322,7 @@ arith_apply(operator op, v_n_t *numstack, v_n_t **numstackptr)
|
|||
}
|
||||
|
||||
/* longest must be first */
|
||||
static const char op_tokens[] = {
|
||||
static const char op_tokens[] ALIGN1 = {
|
||||
'<','<','=',0, TOK_LSHIFT_ASSIGN,
|
||||
'>','>','=',0, TOK_RSHIFT_ASSIGN,
|
||||
'<','<', 0, TOK_LSHIFT,
|
||||
|
|
|
@ -126,7 +126,8 @@ extern char **environ; /* This is in <unistd.h>, but protected with __USE_GNU */
|
|||
/* broken, of course, but OK for testing */
|
||||
static const char *indenter(int i)
|
||||
{
|
||||
static const char blanks[] = " ";
|
||||
static const char blanks[] ALIGN1 =
|
||||
" ";
|
||||
return &blanks[sizeof(blanks) - i - 1];
|
||||
}
|
||||
#define debug_printf_clean(...) fprintf(stderr, __VA_ARGS__)
|
||||
|
@ -3656,7 +3657,7 @@ static void setup_job_control(void)
|
|||
int hush_main(int argc, char **argv);
|
||||
int hush_main(int argc, char **argv)
|
||||
{
|
||||
static const char version_str[] = "HUSH_VERSION="HUSH_VER_STR;
|
||||
static const char version_str[] ALIGN1 = "HUSH_VERSION="HUSH_VER_STR;
|
||||
static const struct variable const_shell_ver = {
|
||||
.next = NULL,
|
||||
.varstr = (char*)version_str,
|
||||
|
|
|
@ -711,7 +711,7 @@ static char * strsep_space(char *string, int * ix)
|
|||
|
||||
static int expand_arguments(char *command)
|
||||
{
|
||||
static const char out_of_space[] = "out of space during expansion";
|
||||
static const char out_of_space[] ALIGN1 = "out of space during expansion";
|
||||
|
||||
int total_length = 0, length, i, retval, ix = 0;
|
||||
expand_t expand_result;
|
||||
|
|
|
@ -280,7 +280,7 @@ struct brkcon {
|
|||
* -x: trace
|
||||
* -u: unset variables net diagnostic
|
||||
*/
|
||||
static char flags['z' - 'a' + 1];
|
||||
static char flags['z' - 'a' + 1] ALIGN1;
|
||||
/* this looks weird, but is OK ... we index FLAG with 'a'...'z' */
|
||||
#define FLAG (flags - 'a')
|
||||
|
||||
|
@ -593,11 +593,10 @@ static const char * const signame[] = {
|
|||
"SIGUSR2",
|
||||
NULL, /* broken pipe */
|
||||
"Alarm clock",
|
||||
"Terminated",
|
||||
"Terminated"
|
||||
};
|
||||
|
||||
|
||||
|
||||
struct res {
|
||||
const char *r_name;
|
||||
int r_val;
|
||||
|
@ -4209,7 +4208,7 @@ static char *unquote(char *as)
|
|||
#define NDENT ((BLKSIZ+sizeof(struct dirent)-1)/sizeof(struct dirent))
|
||||
|
||||
static struct wdblock *cl, *nl;
|
||||
static char spcl[] = "[?*";
|
||||
static const char spcl[] ALIGN1= "[?*";
|
||||
|
||||
static struct wdblock *glob(char *cp, struct wdblock *wb)
|
||||
{
|
||||
|
|
|
@ -48,12 +48,12 @@ struct hd_geometry {
|
|||
|
||||
#define HDIO_GETGEO 0x0301 /* get device geometry */
|
||||
|
||||
static const char msg_building_new_label[] =
|
||||
static const char msg_building_new_label[] ALIGN1 =
|
||||
"Building a new %s. Changes will remain in memory only,\n"
|
||||
"until you decide to write them. After that the previous content\n"
|
||||
"won't be recoverable.\n\n";
|
||||
|
||||
static const char msg_part_already_defined[] =
|
||||
static const char msg_part_already_defined[] ALIGN1 =
|
||||
"Partition %d is already defined, delete it before re-adding\n";
|
||||
|
||||
|
||||
|
@ -82,11 +82,11 @@ struct partition {
|
|||
unsigned char size4[4]; /* nr of sectors in partition */
|
||||
} ATTRIBUTE_PACKED;
|
||||
|
||||
static const char unable_to_open[] = "cannot open %s";
|
||||
static const char unable_to_read[] = "cannot read from %s";
|
||||
static const char unable_to_seek[] = "cannot seek on %s";
|
||||
static const char unable_to_write[] = "cannot write to %s";
|
||||
static const char ioctl_error[] = "BLKGETSIZE ioctl failed on %s";
|
||||
static const char unable_to_open[] ALIGN1 = "cannot open %s";
|
||||
static const char unable_to_read[] ALIGN1 = "cannot read from %s";
|
||||
static const char unable_to_seek[] ALIGN1 = "cannot seek on %s";
|
||||
static const char unable_to_write[] ALIGN1 = "cannot write to %s";
|
||||
static const char ioctl_error[] ALIGN1 = "BLKGETSIZE ioctl failed on %s";
|
||||
static void fdisk_fatal(const char *why) ATTRIBUTE_NORETURN;
|
||||
|
||||
enum label_type {
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue