build system: -fno-builtin-printf

Benefits are: drops reference to out-of-line putchar(), fixes a few cases
of failed string merge.

function                                             old     new   delta
i2cdump_main                                        1488    1502     +14
sha256_process_block64                               423     433     +10
sendmail_main                                       1183    1185      +2
list_table                                          1114    1116      +2
i2cdetect_main                                      1235    1237      +2
fdisk_main                                          2852    2854      +2
builtin_type                                         119     121      +2
unicode_conv_to_printable2                           325     324      -1
scan_recursive                                       380     378      -2
mkfs_minix_main                                     2687    2684      -3
buffer_fill_and_print                                178     169      -9
putchar                                              152       -    -152
------------------------------------------------------------------------------
(add/remove: 0/2 grow/shrink: 7/4 up/down: 34/-167)          Total: -133 bytes
   text    data     bss     dec     hex filename
 937788     932   17676  956396   e97ec busybox_old
 937564     932   17676  956172   e970c busybox_unstripped

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko
2015-10-07 22:42:45 +02:00
parent 8c0708a329
commit d60752f8c9
24 changed files with 127 additions and 124 deletions

View File

@@ -93,7 +93,7 @@ int fdformat_main(int argc UNUSED_PARAM, char **argv)
}
xioctl(fd, FDFMTEND, NULL);
printf("done\n");
puts("Done");
/* VERIFY */
if (verify) {
@@ -126,7 +126,7 @@ int fdformat_main(int argc UNUSED_PARAM, char **argv)
if (ENABLE_FEATURE_CLEAN_UP) free(data);
printf("done\n");
puts("Done");
}
if (ENABLE_FEATURE_CLEAN_UP) close(fd);

View File

@@ -1102,11 +1102,11 @@ warn_geometry(void)
printf(" sectors");
if (!g_cylinders)
printf(" cylinders");
printf(
#if ENABLE_FEATURE_FDISK_WRITABLE
" (settable in the extra functions menu)"
puts(" (settable in the extra functions menu)");
#else
bb_putchar('\n');
#endif
"\n");
return 1;
}
@@ -1150,7 +1150,7 @@ read_extended(int ext)
p = pex->part_table;
if (!get_start_sect(p)) {
printf("Bad offset in primary extended partition\n");
puts("Bad offset in primary extended partition");
return;
}
@@ -1450,8 +1450,8 @@ static int get_boot(void)
current_label_type = LABEL_OSF;
return 0;
}
printf("This disk has both DOS and BSD magic.\n"
"Give the 'b' command to go to BSD mode.\n");
puts("This disk has both DOS and BSD magic.\n"
"Give the 'b' command to go to BSD mode.");
}
#endif
@@ -1461,9 +1461,9 @@ static int get_boot(void)
#else
if (!valid_part_table_flag(MBRbuffer)) {
if (what == OPEN_MAIN) {
printf("Device contains neither a valid DOS "
"partition table, nor Sun, SGI, OSF or GPT "
"disklabel\n");
puts("Device contains neither a valid DOS "
"partition table, nor Sun, SGI, OSF or GPT "
"disklabel");
#ifdef __sparc__
IF_FEATURE_SUN_LABEL(create_sunlabel();)
#else
@@ -1596,7 +1596,7 @@ read_int(sector_t low, sector_t dflt, sector_t high, sector_t base, const char *
}
if (value >= low && value <= high)
break;
printf("Value is out of range\n");
puts("Value is out of range");
}
return value;
}
@@ -1641,7 +1641,7 @@ get_existing_partition(int warn, unsigned max)
printf("Selected partition %u\n", pno+1);
return pno;
}
printf("No partition is defined yet!\n");
puts("No partition is defined yet!");
return -1;
not_unique:
@@ -1668,7 +1668,7 @@ get_nonexisting_partition(int warn, unsigned max)
printf("Selected partition %u\n", pno+1);
return pno;
}
printf("All primary partitions have been defined already!\n");
puts("All primary partitions have been defined already!");
return -1;
not_unique:
@@ -1703,10 +1703,10 @@ toggle_dos_compatibility_flag(void)
dos_compatible_flag = 1 - dos_compatible_flag;
if (dos_compatible_flag) {
sector_offset = g_sectors;
printf("DOS Compatibility flag is set\n");
printf("DOS Compatibility flag is %sset\n", "");
} else {
sector_offset = 1;
printf("DOS Compatibility flag is not set\n");
printf("DOS Compatibility flag is %sset\n", "not ");
}
}
@@ -1813,16 +1813,16 @@ change_sysid(void)
sys = read_hex(get_sys_types());
if (!sys && !LABEL_IS_SGI && !LABEL_IS_SUN) {
printf("Type 0 means free space to many systems\n"
"(but not to Linux). Having partitions of\n"
"type 0 is probably unwise.\n");
puts("Type 0 means free space to many systems\n"
"(but not to Linux). Having partitions of\n"
"type 0 is probably unwise.");
/* break; */
}
if (!LABEL_IS_SUN && !LABEL_IS_SGI) {
if (IS_EXTENDED(sys) != IS_EXTENDED(p->sys_ind)) {
printf("You cannot change a partition into"
" an extended one or vice versa\n");
puts("You cannot change a partition into"
" an extended one or vice versa");
break;
}
}
@@ -1830,10 +1830,10 @@ change_sysid(void)
if (sys < 256) {
#if ENABLE_FEATURE_SUN_LABEL
if (LABEL_IS_SUN && i == 2 && sys != SUN_WHOLE_DISK)
printf("Consider leaving partition 3 "
"as Whole disk (5),\n"
"as SunOS/Solaris expects it and "
"even Linux likes it\n\n");
puts("Consider leaving partition 3 "
"as Whole disk (5),\n"
"as SunOS/Solaris expects it and "
"even Linux likes it\n");
#endif
#if ENABLE_FEATURE_SGI_LABEL
if (LABEL_IS_SGI &&
@@ -1842,10 +1842,10 @@ change_sysid(void)
(i == 8 && sys != 0)
)
) {
printf("Consider leaving partition 9 "
"as volume header (0),\nand "
"partition 11 as entire volume (6)"
"as IRIX expects it\n\n");
puts("Consider leaving partition 9 "
"as volume header (0),\nand "
"partition 11 as entire volume (6)"
"as IRIX expects it\n");
}
#endif
if (sys == origsys)
@@ -2067,7 +2067,7 @@ fix_partition_table_order(void)
int i,k;
if (!wrong_p_order(NULL)) {
printf("Ordering is already correct\n\n");
puts("Ordering is already correct\n");
return;
}
@@ -2095,7 +2095,7 @@ fix_partition_table_order(void)
if (i)
fix_chain_of_logicals();
printf("Done.\n");
puts("Done");
}
#endif
@@ -2178,7 +2178,7 @@ list_table(int xtra)
* if this is a sgi, sun or aix labeled disk... */
if (LABEL_IS_DOS && wrong_p_order(NULL)) {
/* FIXME */
printf("\nPartition table entries are not in disk order\n");
puts("\nPartition table entries are not in disk order");
}
}
@@ -2192,7 +2192,7 @@ x_list_table(int extend)
printf("\nDisk %s: %u heads, %u sectors, %u cylinders\n\n",
disk_device, g_heads, g_sectors, g_cylinders);
printf("Nr AF Hd Sec Cyl Hd Sec Cyl Start Size ID\n");
puts("Nr AF Hd Sec Cyl Hd Sec Cyl Start Size ID");
for (i = 0; i < g_partitions; i++) {
pe = &ptes[i];
p = (extend ? pe->ext_pointer : pe->part_table);
@@ -2419,7 +2419,7 @@ add_partition(int n, int sys)
limit = first[i] - 1;
}
if (start > limit) {
printf("No free sectors available\n");
puts("No free sectors available");
if (n > 4)
g_partitions--;
return;
@@ -2490,9 +2490,9 @@ new_partition(void)
return;
}
if (LABEL_IS_AIX) {
printf("Sorry - this fdisk cannot handle AIX disk labels.\n"
puts("Sorry - this fdisk cannot handle AIX disk labels.\n"
"If you want to add DOS-type partitions, create a new empty DOS partition\n"
"table first (use 'o'). This will destroy the present disk contents.\n");
"table first (use 'o'). This will destroy the present disk contents.");
return;
}
@@ -2500,7 +2500,7 @@ new_partition(void)
free_primary += !ptes[i].part_table->sys_ind;
if (!free_primary && g_partitions >= MAXIMUM_PARTS) {
printf("The maximum number of partitions has been created\n");
puts("The maximum number of partitions has been created");
return;
}
@@ -2508,8 +2508,8 @@ new_partition(void)
if (extended_offset)
add_logical();
else
printf("You must delete some partition and add "
"an extended partition first\n");
puts("You must delete some partition and add "
"an extended partition first");
} else {
char c, line[80];
snprintf(line, sizeof(line),
@@ -2547,7 +2547,7 @@ reread_partition_table(int leave)
{
int i;
printf("Calling ioctl() to re-read partition table\n");
puts("Calling ioctl() to re-read partition table");
sync();
/* Users with slow external USB disks on a 320MHz ARM system (year 2011)
* report that sleep is needed, otherwise BLKRRPART may fail with -EIO:
@@ -2558,10 +2558,10 @@ reread_partition_table(int leave)
"failed, kernel still uses old table");
#if 0
if (dos_changed)
printf(
puts(
"\nWARNING: If you have created or modified any DOS 6.x\n"
"partitions, please see the fdisk manual page for additional\n"
"information\n");
"information");
#endif
if (leave) {
@@ -2589,7 +2589,7 @@ write_table(void)
}
}
else if (LABEL_IS_SGI) {
/* no test on change? the printf below might be mistaken */
/* no test on change? the "altered" msg below might be mistaken */
sgi_write_table();
}
else if (LABEL_IS_SUN) {
@@ -2601,7 +2601,7 @@ write_table(void)
}
}
printf("The partition table has been altered.\n");
puts("The partition table has been altered.");
reread_partition_table(1);
}
#endif /* FEATURE_FDISK_WRITABLE */
@@ -2744,8 +2744,8 @@ xselect(void)
user_sectors = g_sectors = read_int(1, g_sectors, 63, 0, "Number of sectors");
if (dos_compatible_flag) {
sector_offset = g_sectors;
printf("Warning: setting sector offset for DOS "
"compatiblity\n");
puts("Warning: setting sector offset for DOS "
"compatiblity");
}
update_units();
break;
@@ -3024,7 +3024,7 @@ int fdisk_main(int argc UNUSED_PARAM, char **argv)
sgi_get_bootfile());
if (read_maybe_empty("Please enter the name of the "
"new boot file: ") == '\n')
printf("Boot file unchanged\n");
puts("Boot file unchanged");
else
sgi_set_bootfile(line_ptr);
}
@@ -3106,8 +3106,8 @@ int fdisk_main(int argc UNUSED_PARAM, char **argv)
#if ENABLE_FEATURE_FDISK_ADVANCED
case 'x':
if (LABEL_IS_SGI) {
printf("\n\tSorry, no experts menu for SGI "
"partition tables available\n\n");
puts("\n\tSorry, no experts menu for SGI "
"partition tables available\n");
} else
xselect();
break;

View File

@@ -106,7 +106,7 @@ gpt_list_table(int xtra UNUSED_PARAM)
(unsigned long long)SWAP_LE64(gpt_hdr->first_usable_lba),
(unsigned long long)SWAP_LE64(gpt_hdr->last_usable_lba));
printf("Number Start (sector) End (sector) Size Code Name\n");
puts("Number Start (sector) End (sector) Size Code Name");
for (i = 0; i < n_parts; i++) {
gpt_partition *p = gpt_part(i);
if (p->lba_start) {
@@ -119,7 +119,7 @@ gpt_list_table(int xtra UNUSED_PARAM)
numstr6,
0x0700 /* FIXME */);
gpt_print_wide(p->name, 18);
printf("\n");
bb_putchar('\n');
}
}
}

View File

@@ -371,9 +371,9 @@ static int ask(const char *string, int def)
}
}
if (def)
printf("y\n");
puts("y");
else {
printf("n\n");
puts("n");
errors_uncorrected = 1;
}
return def;
@@ -405,7 +405,7 @@ static void check_mount(void)
if (isatty(0) && isatty(1))
cont = ask("Do you really want to continue", 0);
if (!cont) {
printf("Check aborted\n");
puts("Check aborted");
exit(EXIT_SUCCESS);
}
}
@@ -470,8 +470,8 @@ static void write_block(unsigned nr, void *addr)
if (!nr)
return;
if (nr < FIRSTZONE || nr >= ZONES) {
printf("Internal error: trying to write bad block\n"
"Write request ignored\n");
puts("Internal error: trying to write bad block\n"
"Write request ignored");
errors_uncorrected = 1;
return;
}
@@ -659,7 +659,7 @@ static void read_tables(void)
if (INODE_BUFFER_SIZE != read(dev_fd, inode_buffer, INODE_BUFFER_SIZE))
die("can't read inodes");
if (NORM_FIRSTZONE != FIRSTZONE) {
printf("warning: firstzone!=norm_firstzone\n");
puts("warning: firstzone!=norm_firstzone");
errors_uncorrected = 1;
}
get_dirsize();
@@ -713,7 +713,7 @@ static void get_inode_common(unsigned nr, uint16_t i_mode)
} else
links++;
if (!++inode_count[nr]) {
printf("Warning: inode count too big\n");
puts("Warning: inode count too big");
inode_count[nr]--;
errors_uncorrected = 1;
}
@@ -1299,7 +1299,7 @@ int fsck_minix_main(int argc UNUSED_PARAM, char **argv)
}
if (changed) {
write_tables();
printf("FILE SYSTEM HAS BEEN CHANGED\n");
puts("FILE SYSTEM HAS BEEN CHANGED");
sync();
} else if (OPT_repair)
write_superblock();

View File

@@ -378,7 +378,7 @@ int getopt_main(int argc, char **argv)
if (compatible) {
/* For some reason, the original getopt gave no error
* when there were no arguments. */
printf(" --\n");
puts(" --");
return 0;
}
bb_error_msg_and_die("missing optstring argument");

View File

@@ -119,7 +119,7 @@ int ipcrm_main(int argc, char **argv)
if (remove_ids(what, &argv[2]))
fflush_stdout_and_exit(EXIT_FAILURE);
printf("resource(s) deleted\n");
puts("resource(s) deleted");
return 0;
}
}