← Commit list

ead17e780

Denys Vlasenko
Denys Vlasenko
2026-05-02
SUCCESS Duration: 144s

Subject

Optimize !ENABLE_SHOW_USAGE config

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0
gcc -Wp,-MD,applets/.usage.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer      -Iinclude -Iinclude -o applets/usage applets/usage.c

Build Log

(log yok)

Commit Diff GitHub →

include/libbb.h+4 -0
@@ -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;
libbb/appletlib.c+42 -42
@@ -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)
{