fdisk: remove 8k buffer from bss - OSF labels are not THAT common anyway
No binary (build failed)
—
(log yok)
| @@ -2715,7 +2715,7 @@ is_ide_cdrom_or_tape(const char *device) | |
| static void | |
| - | try(const char *device, int user_specified) |
| + | trydev(const char *device, int user_specified) |
| { | |
| int gb; | |
| @@ -2736,7 +2736,7 @@ try(const char *device, int user_specified) | |
| return; | |
| } | |
| #if ENABLE_FEATURE_OSF_LABEL | |
| - | if (btrydev(device) < 0) |
| + | if (bsd_trydev(device) < 0) |
| #endif | |
| printf(_("Disk %s doesn't contain a valid " | |
| "partition table\n"), device); | |
| @@ -2780,7 +2780,7 @@ tryprocpt(void) | |
| if (isdigit(s[-1])) | |
| continue; | |
| sprintf(devname, "/dev/%s", ptname); | |
| - | try(devname, 0); |
| + | trydev(devname, 0); |
| } | |
| #if ENABLE_FEATURE_CLEAN_UP | |
| fclose(procpt); | |
| @@ -2865,7 +2865,7 @@ int fdisk_main(int argc, char **argv) | |
| #endif | |
| listing = 1; | |
| for (k = 0; k < argc; k++) | |
| - | try(argv[k], 1); |
| + | trydev(argv[k], 1); |
| } else { | |
| /* we no longer have default device names */ | |
| /* but, we can use /proc/partitions instead */ | |
| @@ -272,12 +272,9 @@ static struct partition *xbsd_part; | |
| static int xbsd_part_index; | |
| #endif | |
| - | #if defined(__alpha__) |
| /* We access this through a uint64_t * when checksumming */ | |
| - | static char disklabelbuffer[BSD_BBSIZE] ATTRIBUTE_ALIGNED(8); |
| - | #else |
| - | static char disklabelbuffer[BSD_BBSIZE]; |
| - | #endif |
| + | /* hopefully xmalloc gives us required alignment */ |
| + | static char *disklabelbuffer; /*[BSD_BBSIZE]*/ |
| static struct xbsd_disklabel xbsd_dlabel; | |
| @@ -299,7 +296,7 @@ check_osf_label(void) | |
| } | |
| static int | |
| - | btrydev(const char * dev) |
| + | bsd_trydev(const char * dev) |
| { | |
| if (xbsd_readlabel(NULL, &xbsd_dlabel) == 0) | |
| return -1; | |
| @@ -309,7 +306,7 @@ btrydev(const char * dev) | |
| } | |
| static void | |
| - | bmenu(void) |
| + | bsd_menu(void) |
| { | |
| puts(_("Command action")); | |
| puts(_("\td\tdelete a BSD partition")); | |
| @@ -431,7 +428,7 @@ bsd_select(void) | |
| break; | |
| #endif | |
| default: | |
| - | bmenu(); |
| + | bsd_menu(); |
| break; | |
| } | |
| } | |
| @@ -921,6 +918,9 @@ xbsd_readlabel(struct partition *p, struct xbsd_disklabel *d) | |
| { | |
| int t, sector; | |
| + | if (!disklabelbuffer) |
| + | disklabelbuffer = xmalloc(BSD_BBSIZE); |
| + | |
| /* p is used only to get the starting sector */ | |
| #if !defined(__alpha__) | |
| sector = (p ? get_start_sect(p) : 0); | |
| @@ -808,42 +808,43 @@ create_sgilabel(void) | |
| } | |
| memset(MBRbuffer, 0, sizeof(MBRbuffer)); | |
| + | /* fields with '//' are already zeroed out by memset above */ |
| + | |
| sgilabel->magic = SGI_SSWAP32(SGI_LABEL_MAGIC); | |
| - | sgilabel->boot_part = SGI_SSWAP16(0); |
| + | //sgilabel->boot_part = SGI_SSWAP16(0); |
| sgilabel->swap_part = SGI_SSWAP16(1); | |
| - | /* sizeof(sgilabel->boot_file) = 16 > 6 */ |
| - | memset(sgilabel->boot_file, 0, 16); |
| - | strcpy((char*)sgilabel->boot_file, "/unix"); |
| + | //memset(sgilabel->boot_file, 0, 16); |
| + | strcpy((char*)sgilabel->boot_file, "/unix"); /* sizeof(sgilabel->boot_file) == 16 > 6 */ |
| - | sgilabel->devparam.skew = (0); |
| - | sgilabel->devparam.gap1 = (0); |
| - | sgilabel->devparam.gap2 = (0); |
| - | sgilabel->devparam.sparecyl = (0); |
| + | //sgilabel->devparam.skew = (0); |
| + | //sgilabel->devparam.gap1 = (0); |
| + | //sgilabel->devparam.gap2 = (0); |
| + | //sgilabel->devparam.sparecyl = (0); |
| sgilabel->devparam.pcylcount = SGI_SSWAP16(geometry.cylinders); | |
| - | sgilabel->devparam.head_vol0 = SGI_SSWAP16(0); |
| + | //sgilabel->devparam.head_vol0 = SGI_SSWAP16(0); |
| + | /* tracks/cylinder (heads) */ |
| sgilabel->devparam.ntrks = SGI_SSWAP16(geometry.heads); | |
| - | /* tracks/cylinder (heads) */ |
| - | sgilabel->devparam.cmd_tag_queue_depth = (0); |
| - | sgilabel->devparam.unused0 = (0); |
| - | sgilabel->devparam.unused1 = SGI_SSWAP16(0); |
| + | //sgilabel->devparam.cmd_tag_queue_depth = (0); |
| + | //sgilabel->devparam.unused0 = (0); |
| + | //sgilabel->devparam.unused1 = SGI_SSWAP16(0); |
| + | /* sectors/track */ |
| sgilabel->devparam.nsect = SGI_SSWAP16(geometry.sectors); | |
| - | /* sectors/track */ |
| sgilabel->devparam.bytes = SGI_SSWAP16(512); | |
| sgilabel->devparam.ilfact = SGI_SSWAP16(1); | |
| sgilabel->devparam.flags = SGI_SSWAP32(TRACK_FWD| | |
| IGNORE_ERRORS|RESEEK); | |
| - | sgilabel->devparam.datarate = SGI_SSWAP32(0); |
| + | //sgilabel->devparam.datarate = SGI_SSWAP32(0); |
| sgilabel->devparam.retries_on_error = SGI_SSWAP32(1); | |
| - | sgilabel->devparam.ms_per_word = SGI_SSWAP32(0); |
| - | sgilabel->devparam.xylogics_gap1 = SGI_SSWAP16(0); |
| - | sgilabel->devparam.xylogics_syncdelay = SGI_SSWAP16(0); |
| - | sgilabel->devparam.xylogics_readdelay = SGI_SSWAP16(0); |
| - | sgilabel->devparam.xylogics_gap2 = SGI_SSWAP16(0); |
| - | sgilabel->devparam.xylogics_readgate = SGI_SSWAP16(0); |
| - | sgilabel->devparam.xylogics_writecont = SGI_SSWAP16(0); |
| - | memset( &(sgilabel->directory), 0, sizeof(struct volume_directory)*15 ); |
| - | memset( &(sgilabel->partitions), 0, sizeof(struct sgi_partinfo)*16 ); |
| + | //sgilabel->devparam.ms_per_word = SGI_SSWAP32(0); |
| + | //sgilabel->devparam.xylogics_gap1 = SGI_SSWAP16(0); |
| + | //sgilabel->devparam.xylogics_syncdelay = SGI_SSWAP16(0); |
| + | //sgilabel->devparam.xylogics_readdelay = SGI_SSWAP16(0); |
| + | //sgilabel->devparam.xylogics_gap2 = SGI_SSWAP16(0); |
| + | //sgilabel->devparam.xylogics_readgate = SGI_SSWAP16(0); |
| + | //sgilabel->devparam.xylogics_writecont = SGI_SSWAP16(0); |
| + | //memset( &(sgilabel->directory), 0, sizeof(struct volume_directory)*15 ); |
| + | //memset( &(sgilabel->partitions), 0, sizeof(struct sgi_partinfo)*16 ); |
| current_label_type = label_sgi; | |
| partitions = 16; | |
| sgi_volumes = 15; | |