From d60752f8c9be5689a249ad518deb38061d4bc45e Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Wed, 7 Oct 2015 22:42:45 +0200 Subject: 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 --- util-linux/fdformat.c | 4 +-- util-linux/fdisk.c | 94 ++++++++++++++++++++++++------------------------- util-linux/fdisk_gpt.c | 4 +-- util-linux/fsck_minix.c | 16 ++++----- util-linux/getopt.c | 2 +- util-linux/ipcrm.c | 2 +- 6 files changed, 61 insertions(+), 61 deletions(-) (limited to 'util-linux') diff --git a/util-linux/fdformat.c b/util-linux/fdformat.c index 6f49cec8f..6ef6445e6 100644 --- a/util-linux/fdformat.c +++ b/util-linux/fdformat.c @@ -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); diff --git a/util-linux/fdisk.c b/util-linux/fdisk.c index 7fe70fb72..f49ce95a4 100644 --- a/util-linux/fdisk.c +++ b/util-linux/fdisk.c @@ -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; diff --git a/util-linux/fdisk_gpt.c b/util-linux/fdisk_gpt.c index 5786d5f7d..715e227ca 100644 --- a/util-linux/fdisk_gpt.c +++ b/util-linux/fdisk_gpt.c @@ -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'); } } } diff --git a/util-linux/fsck_minix.c b/util-linux/fsck_minix.c index 33767a1af..d2f3524b4 100644 --- a/util-linux/fsck_minix.c +++ b/util-linux/fsck_minix.c @@ -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(); diff --git a/util-linux/getopt.c b/util-linux/getopt.c index 58df1c823..b9dadf13c 100644 --- a/util-linux/getopt.c +++ b/util-linux/getopt.c @@ -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"); diff --git a/util-linux/ipcrm.c b/util-linux/ipcrm.c index 888f70ef8..38d81af50 100644 --- a/util-linux/ipcrm.c +++ b/util-linux/ipcrm.c @@ -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; } } -- cgit v1.2.3