Optimize !ENABLE_SHOW_USAGE config
No binary (build failed)
gcc -Wp,-MD,applets/.usage.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -Iinclude -Iinclude -o applets/usage applets/usage.c
(log yok)
| @@ -1574,7 +1574,11 @@ extern smallint logmode; | |
| extern uint8_t xfunc_error_retval; | |
| extern void (*die_func)(void); | |
| void xfunc_die(void) NORETURN FAST_FUNC; | |
| + | #if !ENABLE_SHOW_USAGE |
| + | #define bb_show_usage() xfunc_die() |
| + | #else |
| void bb_show_usage(void) NORETURN FAST_FUNC; | |
| + | #endif |
| void bb_error_msg(const char *s, ...) __attribute__ ((format (printf, 1, 2))) FAST_FUNC; | |
| void bb_simple_error_msg(const char *s) FAST_FUNC; | |
| void bb_error_msg_and_die(const char *s, ...) __attribute__ ((noreturn, format (printf, 1, 2))) FAST_FUNC; | |
| @@ -124,57 +124,57 @@ static const char packed_usage[] ALIGN1 = { PACKED_USAGE }; | |
| #endif /* FEATURE_COMPRESS_USAGE */ | |
| + | #if ENABLE_SHOW_USAGE |
| void FAST_FUNC bb_show_usage(void) | |
| { | |
| - | if (ENABLE_SHOW_USAGE) { |
| - | ssize_t FAST_FUNC (*full_write_fn)(const char *) = |
| - | xfunc_error_retval ? full_write2_str : full_write1_str; |
| - | #ifdef SINGLE_APPLET_STR |
| - | /* Imagine that this applet is "true". Dont link in printf! */ |
| - | const char *usage_string = unpack_usage_messages(); |
| - | |
| - | if (usage_string) { |
| - | if (*usage_string == '\b') { |
| - | full_write_fn("No help available\n"); |
| - | } else { |
| - | full_write_fn("Usage: "SINGLE_APPLET_STR" "); |
| - | full_write_fn(usage_string); |
| - | full_write_fn("\n"); |
| - | } |
| - | if (ENABLE_FEATURE_CLEAN_UP) |
| - | dealloc_usage_messages((char*)usage_string); |
| - | } |
| - | #else |
| - | const char *p; |
| - | const char *usage_string = p = unpack_usage_messages(); |
| - | int ap = find_applet_by_name(applet_name); |
| - | |
| - | if (ap < 0 || usage_string == NULL) |
| - | xfunc_die(); |
| - | while (ap) { |
| - | while (*p++) continue; |
| - | ap--; |
| - | } |
| - | full_write_fn(bb_banner); |
| - | full_write_fn(" multi-call binary.\n"); /* common string */ |
| - | if (*p == '\b') |
| - | full_write_fn("\nNo help available\n"); |
| - | else { |
| - | full_write_fn("\nUsage: "); |
| - | full_write_fn(applet_name); |
| - | if (p[0]) { |
| - | if (p[0] != '\n') |
| - | full_write_fn(" "); |
| - | full_write_fn(p); |
| - | } |
| + | ssize_t FAST_FUNC (*full_write_fn)(const char *) = |
| + | xfunc_error_retval ? full_write2_str : full_write1_str; |
| + | # ifdef SINGLE_APPLET_STR |
| + | /* Imagine that this applet is "true". Dont link in printf! */ |
| + | const char *usage_string = unpack_usage_messages(); |
| + | |
| + | if (usage_string) { |
| + | if (*usage_string == '\b') { |
| + | full_write_fn("No help available\n"); |
| + | } else { |
| + | full_write_fn("Usage: "SINGLE_APPLET_STR" "); |
| + | full_write_fn(usage_string); |
| full_write_fn("\n"); | |
| } | |
| if (ENABLE_FEATURE_CLEAN_UP) | |
| dealloc_usage_messages((char*)usage_string); | |
| - | #endif |
| } | |
| + | # else |
| + | const char *p; |
| + | const char *usage_string = p = unpack_usage_messages(); |
| + | int ap = find_applet_by_name(applet_name); |
| + | |
| + | if (ap < 0 || usage_string == NULL) |
| + | xfunc_die(); |
| + | while (ap) { |
| + | while (*p++) continue; |
| + | ap--; |
| + | } |
| + | full_write_fn(bb_banner); |
| + | full_write_fn(" multi-call binary.\n"); /* common string */ |
| + | if (*p == '\b') |
| + | full_write_fn("\nNo help available\n"); |
| + | else { |
| + | full_write_fn("\nUsage: "); |
| + | full_write_fn(applet_name); |
| + | if (p[0]) { |
| + | if (p[0] != '\n') |
| + | full_write_fn(" "); |
| + | full_write_fn(p); |
| + | } |
| + | full_write_fn("\n"); |
| + | } |
| + | if (ENABLE_FEATURE_CLEAN_UP) |
| + | dealloc_usage_messages((char*)usage_string); |
| + | # endif |
| xfunc_die(); | |
| } | |
| + | #endif |
| int FAST_FUNC find_applet_by_name(const char *name) | |
| { | |