The following packages will be installed: recoverdm Fetching README... 0%100%100%100%100%100%Done Fetching recoverdm.SlackBuild... 0%100%100%100%100%100%Done Fetching recoverdm.info... 0%100%100%100%100%100%Done Fetching slack-desc... 0%100%100%100%100%100%Done recoverdm-0.20/ recoverdm-0.20/error.h recoverdm-0.20/recoverdm.c recoverdm-0.20/io.h recoverdm-0.20/Makefile recoverdm-0.20/utils.h recoverdm-0.20/mergebad.c recoverdm-0.20/dev.h recoverdm-0.20/io.c recoverdm-0.20/utils.c recoverdm-0.20/gen.h recoverdm-0.20/error.c recoverdm-0.20/recoverdm.1 recoverdm-0.20/dev.c recoverdm-0.20/license.txt recoverdm-0.20/readme.txt cc -Wall -Wshadow -Wconversion -Wwrite-strings -Winline -O2 -DVERSION=\"0.20\" -c -o recoverdm.o recoverdm.c recoverdm.c: In function ‘lba_to_msf’: recoverdm.c:55:27: warning: conversion from ‘off64_t’ {aka ‘long int’} to ‘unsigned char’ may change value [-Wconversion] 55 | *minute = (lba + 150) / (60 * 75); | ^ recoverdm.c:57:27: warning: conversion from ‘off64_t’ {aka ‘long int’} to ‘unsigned char’ may change value [-Wconversion] 57 | *second = (lba + 150) / 75; | ^ recoverdm.c:59:26: warning: conversion from ‘off64_t’ {aka ‘long int’} to ‘unsigned char’ may change value [-Wconversion] 59 | *frame = (lba + 150); | ^ recoverdm.c:63:27: warning: conversion from ‘off64_t’ {aka ‘long int’} to ‘unsigned char’ may change value [-Wconversion] 63 | *minute = (lba + 450150) / (60 * 75); | ^ recoverdm.c:65:27: warning: conversion from ‘off64_t’ {aka ‘long int’} to ‘unsigned char’ may change value [-Wconversion] 65 | *second = (lba + 450150) / 75; | ^ recoverdm.c:67:26: warning: conversion from ‘off64_t’ {aka ‘long int’} to ‘unsigned char’ may change value [-Wconversion] 67 | *frame = (lba + 450150); | ^ recoverdm.c: In function ‘create_sector’: recoverdm.c:75:57: warning: passing argument 2 of ‘mymalloc’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] 75 | char *sector_out = (char *)mymalloc(block_size, "sector"); | ^~~~~~~~ In file included from recoverdm.c:13: utils.h:1:36: note: expected ‘char *’ but argument is of type ‘const char *’ 1 | void * mymalloc(size_t size, char *what); | ~~~~~~^~~~ recoverdm.c:107:53: warning: conversion from ‘int’ to ‘short int’ may change value [-Wconversion] 107 | chosen_byte_count = count[loop2]; | ^~~~~ recoverdm.c:108:47: warning: conversion from ‘int’ to ‘short int’ may change value [-Wconversion] 108 | chosen_byte = loop2; | ^~~~~ recoverdm.c:126:44: warning: conversion from ‘short int’ to ‘char’ may change value [-Wconversion] 126 | sector_out[loop] = chosen_byte; | ^~~~~~~~~~~ recoverdm.c:149:44: warning: conversion to ‘char’ from ‘unsigned char’ may change the sign of the result [-Wsign-conversion] 149 | sector_out[loop] = sectors[max_n_ok_index][loop]; | ^~~~~~~ recoverdm.c: In function ‘get_raw_cd’: recoverdm.c:169:71: warning: conversion to ‘long unsigned int’ from ‘int’ may change the sign of the result [-Wsign-conversion] 169 | char **sector_list = (char **)mymalloc(sizeof(char *) * n_raw_retries, "sectorlist"); | ^ recoverdm.c:169:88: warning: passing argument 2 of ‘mymalloc’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] 169 | char **sector_list = (char **)mymalloc(sizeof(char *) * n_raw_retries, "sectorlist"); | ^~~~~~~~~~~~ In file included from recoverdm.c:13: utils.h:1:36: note: expected ‘char *’ but argument is of type ‘const char *’ 1 | void * mymalloc(size_t size, char *what); | ~~~~~~^~~~ recoverdm.c:174:74: warning: passing argument 2 of ‘mymalloc’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] 174 | sector_list[loop] = (char *)mymalloc(block_size, "sector"); | ^~~~~~~~ In file included from recoverdm.c:13: utils.h:1:36: note: expected ‘char *’ but argument is of type ‘const char *’ 1 | void * mymalloc(size_t size, char *what); | ~~~~~~^~~~ recoverdm.c:184:43: warning: passing argument 1 of ‘create_sector’ from incompatible pointer type [-Wincompatible-pointer-types] 184 | if (create_sector(sector_list, n_raw_retries, block_size, &dummy) == -1) | ^~~~~~~~~~~ | | | char ** recoverdm.c:71:35: note: expected ‘unsigned char **’ but argument is of type ‘char **’ 71 | int create_sector(unsigned char **sectors, int n_sectors, size_t block_size, char **psector_out) | ~~~~~~~~~~~~~~~~^~~~~~~ recoverdm.c: In function ‘main’: recoverdm.c:235:36: warning: conversion from ‘int’ to ‘char’ may change value [-Wconversion] 235 | dev_type = atoi(optarg); | ^~~~ recoverdm.c:256:37: warning: conversion from ‘int’ to ‘char’ may change value [-Wconversion] 256 | n_retries = atoi(optarg); | ^~~~ recoverdm.c:262:36: warning: conversion from ‘int’ to ‘char’ may change value [-Wconversion] 262 | cd_speed = atoi(optarg); | ^~~~ recoverdm.c:265:44: warning: conversion from ‘int’ to ‘char’ may change value [-Wconversion] 265 | n_raw_cd_retries = atoi(optarg); | ^~~~ recoverdm.c:307:47: warning: passing argument 2 of ‘mymalloc’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] 307 | buffer = (char *)mymalloc(block_size, "sectorbuffer"); | ^~~~~~~~~~~~~~ In file included from recoverdm.c:13: utils.h:1:36: note: expected ‘char *’ but argument is of type ‘const char *’ 1 | void * mymalloc(size_t size, char *what); | ~~~~~~^~~~ recoverdm.c:308:48: warning: passing argument 2 of ‘mymalloc’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] 308 | buffer2 = (char *)mymalloc(block_size, "sectorbuffer for retries"); | ^~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from recoverdm.c:13: utils.h:1:36: note: expected ‘char *’ but argument is of type ‘const char *’ 1 | void * mymalloc(size_t size, char *what); | ~~~~~~^~~~ recoverdm.c:361:28: warning: format ‘%lld’ expects argument of type ‘long long int’, but argument 2 has type ‘off64_t’ {aka ‘long int’} [-Wformat=] 361 | printf("%lld\r", curpos); | ~~~^ ~~~~~~ | | | | | off64_t {aka long int} | long long int | %ld recoverdm.c:388:45: warning: format ‘%lld’ expects argument of type ‘long long int’, but argument 2 has type ‘off64_t’ {aka ‘long int’} [-Wformat=] 388 | printf("error at %lld bytes, retrying: %d\n", curpos, n); | ~~~^ ~~~~~~ | | | | long long int off64_t {aka long int} | %ld recoverdm.c:445:91: warning: conversion to ‘size_t’ {aka ‘long unsigned int’} from ‘int’ may change the sign of the result [-Wsign-conversion] 445 | fprintf(dsecfile, "%lld %ld\n", curpos, block_size*skip_value); | ^ recoverdm.c:445:63: warning: format ‘%lld’ expects argument of type ‘long long int’, but argument 3 has type ‘off64_t’ {aka ‘long int’} [-Wformat=] 445 | fprintf(dsecfile, "%lld %ld\n", curpos, block_size*skip_value); | ~~~^ ~~~~~~ | | | | | off64_t {aka long int} | long long int | %ld recoverdm.c:440:38: warning: variable ‘ok’ set but not used [-Wunused-but-set-variable] 440 | char ok = 1; | ^~ cc -Wall -Wshadow -Wconversion -Wwrite-strings -Winline -O2 -DVERSION=\"0.20\" -c -o dev.o dev.c dev.c: In function ‘read_raw_cd’: dev.c:174:9: warning: implicit declaration of function ‘memcpy’ [-Wimplicit-function-declaration] 174 | memcpy(whereto, &pframe[12 + 4], 2048); | ^~~~~~ dev.c:23:1: note: include ‘’ or provide a declaration of ‘memcpy’ 22 | #include "dev.h" +++ |+#include 23 | dev.c:174:9: warning: incompatible implicit declaration of built-in function ‘memcpy’ [-Wbuiltin-declaration-mismatch] 174 | memcpy(whereto, &pframe[12 + 4], 2048); | ^~~~~~ dev.c:174:9: note: include ‘’ or provide a declaration of ‘memcpy’ cc -Wall -Wshadow -Wconversion -Wwrite-strings -Winline -O2 -DVERSION=\"0.20\" -c -o io.o io.c io.c: In function ‘READ’: io.c:30:52: warning: passing argument 1 of ‘error_exit’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] 30 | error_exit("unexpected error while reading: %s (%d)\n", strerror(errno), errno); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from io.c:12: error.h:1:23: note: expected ‘char *’ but argument is of type ‘const char *’ 1 | void error_exit(char *format, ...); | ~~~~~~^~~~~~ io.c:42:29: warning: conversion to ‘long unsigned int’ from ‘ssize_t’ {aka ‘long int’} may change the sign of the result [-Wsign-conversion] 42 | len -= rc; | ^~ io.c: In function ‘WRITE’: io.c:75:29: warning: conversion to ‘long unsigned int’ from ‘ssize_t’ {aka ‘long int’} may change the sign of the result [-Wsign-conversion] 75 | len -= rc; | ^~ io.c: In function ‘phantom_write’: io.c:126:35: warning: conversion from ‘ssize_t’ {aka ‘long int’} to ‘int’ may change value [-Wconversion] 126 | if ((rc = WRITE(fd, in, move_a_little)) <= 0) | ^~~~~ io.c:132:39: warning: conversion to ‘size_t’ {aka ‘long unsigned int’} from ‘int’ may change the sign of the result [-Wsign-conversion] 132 | move_a_little -= rc; | ^~ io.c:163:43: warning: conversion from ‘ssize_t’ {aka ‘long int’} to ‘int’ may change value [-Wconversion] 163 | if ((rc = WRITE(fd, in, 512)) <= 0) | ^~~~~ io.c:172:35: warning: conversion from ‘ssize_t’ {aka ‘long int’} to ‘int’ may change value [-Wconversion] 172 | if ((rc = WRITE(fd, in, nbytes)) <= 0) | ^~~~~ io.c:181:24: warning: conversion to ‘size_t’ {aka ‘long unsigned int’} from ‘int’ may change the sign of the result [-Wsign-conversion] 181 | nbytes -= rc; | ^~ cc -Wall -Wshadow -Wconversion -Wwrite-strings -Winline -O2 -DVERSION=\"0.20\" -c -o utils.o utils.c utils.c: In function ‘mymalloc’: utils.c:21:28: warning: passing argument 1 of ‘error_exit’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] 21 | error_exit("failed to allocate %d bytes for %s\n", size, what); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from utils.c:15: error.h:1:23: note: expected ‘char *’ but argument is of type ‘const char *’ 1 | void error_exit(char *format, ...); | ~~~~~~^~~~~~ utils.c: In function ‘myrealloc’: utils.c:30:28: warning: passing argument 1 of ‘error_exit’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] 30 | error_exit("failed to reallocate to %d bytes for %s\n", newsize, what); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from utils.c:15: error.h:1:23: note: expected ‘char *’ but argument is of type ‘const char *’ 1 | void error_exit(char *format, ...); | ~~~~~~^~~~~~ utils.c: In function ‘get_filesize’: utils.c:40:28: warning: passing argument 1 of ‘error_exit’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] 40 | error_exit("Failed to retrieve length of file %s: %s (%d)\n", filename, strerror(errno), errno); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from utils.c:15: error.h:1:23: note: expected ‘char *’ but argument is of type ‘const char *’ 1 | void error_exit(char *format, ...); | ~~~~~~^~~~~~ In file included from utils.c:13: utils.c: In function ‘copy_block’: gen.h:1:25: warning: conversion to ‘size_t’ {aka ‘long unsigned int’} from ‘off64_t’ {aka ‘long int’} may change the sign of the result [-Wsign-conversion] 1 | #define min(x, y) ((x)<(y)?(x):(y)) | ^ utils.c:51:38: note: in expansion of macro ‘min’ 51 | size_t sector_size = min(block_size, 512); | ^~~ utils.c:56:58: warning: format ‘%d’ expects argument of type ‘int’, but argument 3 has type ‘size_t’ {aka ‘long unsigned int’} [-Wformat=] 56 | fprintf(stderr, "Failed to read %d bytes from inputfile: %s (%d)\n", sector_size, strerror(errno), errno); | ~^ ~~~~~~~~~~~ | | | | int size_t {aka long unsigned int} | %ld utils.c:68:28: warning: conversion to ‘long unsigned int’ from ‘off64_t’ {aka ‘long int’} may change the sign of the result [-Wsign-conversion] 68 | block_size -= sector_size; | ^~ utils.c:68:31: warning: conversion to ‘off64_t’ {aka ‘long int’} from ‘long unsigned int’ may change the sign of the result [-Wsign-conversion] 68 | block_size -= sector_size; | ^~~~~~~~~~~ utils.c: In function ‘myseek’: utils.c:78:28: warning: passing argument 1 of ‘error_exit’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] 78 | error_exit("Failed to seek in file to offset %lld: %s (%d)\n", offset, strerror(errno), errno); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from utils.c:15: error.h:1:23: note: expected ‘char *’ but argument is of type ‘const char *’ 1 | void error_exit(char *format, ...); | ~~~~~~^~~~~~ cc -Wall -Wshadow -Wconversion -Wwrite-strings -Winline -O2 -DVERSION=\"0.20\" -c -o error.o error.c cc -Wall -W recoverdm.o dev.o io.o utils.o error.o -o recoverdm cc -Wall -Wshadow -Wconversion -Wwrite-strings -Winline -O2 -DVERSION=\"0.20\" -c -o mergebad.o mergebad.c mergebad.c: In function ‘find_image_without_badblock’: mergebad.c:45:64: warning: format ‘%lld’ expects argument of type ‘long long int’, but argument 4 has type ‘off64_t’ {aka ‘long int’} [-Wformat=] 45 | printf("> find_image_without_badblock(%p %d %lld)\n", imgs, n_imgs, offset); | ~~~^ ~~~~~~ | | | | long long int off64_t {aka long int} | %ld mergebad.c:59:53: warning: format ‘%lld’ expects argument of type ‘long long int’, but argument 4 has type ‘off64_t’ {aka ‘long int’} [-Wformat=] 59 | printf("= %d/%d, %lld - %lld\n", img_index, badblock_index, cur_offset, cur_bb_end); | ~~~^ ~~~~~~~~~~ | | | | long long int off64_t {aka long int} | %ld mergebad.c:59:60: warning: format ‘%lld’ expects argument of type ‘long long int’, but argument 5 has type ‘off64_t’ {aka ‘long int’} [-Wformat=] 59 | printf("= %d/%d, %lld - %lld\n", img_index, badblock_index, cur_offset, cur_bb_end); | ~~~^ ~~~~~~~~~~ | | | | long long int off64_t {aka long int} | %ld mergebad.c: In function ‘find_smallest_current_badblock’: mergebad.c:103:67: warning: format ‘%lld’ expects argument of type ‘long long int’, but argument 4 has type ‘off64_t’ {aka ‘long int’} [-Wformat=] 103 | printf("> find_smallest_current_badblock(%p %d %lld %p %p)\n", imgs, n_imgs, offset, selected_image, selected_badblock); | ~~~^ ~~~~~~ | | | | long long int off64_t {aka long int} | %ld mergebad.c:118:53: warning: format ‘%lld’ expects argument of type ‘long long int’, but argument 4 has type ‘off64_t’ {aka ‘long int’} [-Wformat=] 118 | printf("= %d/%d, %lld - %lld\n", img_index, badblock_index, cur_offset, cur_bb_end); | ~~~^ ~~~~~~~~~~ | | | | long long int off64_t {aka long int} | %ld mergebad.c:118:60: warning: format ‘%lld’ expects argument of type ‘long long int’, but argument 5 has type ‘off64_t’ {aka ‘long int’} [-Wformat=] 118 | printf("= %d/%d, %lld - %lld\n", img_index, badblock_index, cur_offset, cur_bb_end); | ~~~^ ~~~~~~~~~~ | | | | long long int off64_t {aka long int} | %ld mergebad.c:130:68: warning: format ‘%lld’ expects argument of type ‘long long int’, but argument 2 has type ‘off64_t’ {aka ‘long int’} [-Wformat=] 130 | printf("= # bytes left: %lld\n", block_size_left); | ~~~^ ~~~~~~~~~~~~~~~ | | | | | off64_t {aka long int} | long long int | %ld mergebad.c:148:69: warning: format ‘%lld’ expects argument of type ‘long long int’, but argument 4 has type ‘off64_t’ {aka ‘long int’} [-Wformat=] 148 | printf("> find_smallest_current_badblock: %d %d (%lld)\n", *selected_image, *selected_badblock, smallest_block_size); | ~~~^ ~~~~~~~~~~~~~~~~~~~ | | | | long long int off64_t {aka long int} | %ld mergebad.c: In function ‘read_mapfile’: mergebad.c:189:32: warning: format ‘%lld’ expects argument of type ‘long long int *’, but argument 3 has type ‘off64_t *’ {aka ‘long int *’} [-Wformat=] 189 | fscanf(fh, "%lld %d", &offset, &block_size); | ~~~^ ~~~~~~~ | | | | | off64_t * {aka long int *} | long long int * | %ld mergebad.c:191:67: warning: conversion to ‘long unsigned int’ from ‘int’ may change the sign of the result [-Wsign-conversion] 191 | bbs = (badblock *)myrealloc(bbs, sizeof(badblock) * (n_bb + 1), "badblocks list"); | ^ mergebad.c:191:81: warning: passing argument 3 of ‘myrealloc’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] 191 | bbs = (badblock *)myrealloc(bbs, sizeof(badblock) * (n_bb + 1), "badblocks list"); | ^~~~~~~~~~~~~~~~ In file included from mergebad.c:14: utils.h:2:52: note: expected ‘char *’ but argument is of type ‘const char *’ 2 | void * myrealloc(void *oldp, size_t newsize, char *what); | ~~~~~~^~~~ mergebad.c:196:40: warning: format ‘%lld’ expects argument of type ‘long long int’, but argument 3 has type ‘off64_t’ {aka ‘long int’} [-Wformat=] 196 | printf("%d] %lld %lld\n", n_bb, offset, block_size); | ~~~^ ~~~~~~ | | | | long long int off64_t {aka long int} | %ld mergebad.c:196:45: warning: format ‘%lld’ expects argument of type ‘long long int’, but argument 4 has type ‘int’ [-Wformat=] 196 | printf("%d] %lld %lld\n", n_bb, offset, block_size); | ~~~^ ~~~~~~~~~~ | | | | long long int int | %d mergebad.c: In function ‘select_most_occuring_byte’: mergebad.c:228:41: warning: conversion from ‘int’ to ‘char’ may change value [-Wconversion] 228 | selected_byte = loop; | ^~~~ mergebad.c:235:28: warning: passing argument 1 of ‘error_exit’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] 235 | error_exit("Internal error: no byte found!"); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from mergebad.c:15: error.h:1:23: note: expected ‘char *’ but argument is of type ‘const char *’ 1 | void error_exit(char *format, ...); | ~~~~~~^~~~~~ mergebad.c: In function ‘main’: mergebad.c:269:62: warning: conversion to ‘long unsigned int’ from ‘int’ may change the sign of the result [-Wsign-conversion] 269 | imgs = myrealloc(imgs, sizeof(image) * (n_imgs + 1), "image structure"); | ^ mergebad.c:269:78: warning: passing argument 3 of ‘myrealloc’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] 269 | imgs = myrealloc(imgs, sizeof(image) * (n_imgs + 1), "image structure"); | ^~~~~~~~~~~~~~~~~ In file included from mergebad.c:14: utils.h:2:52: note: expected ‘char *’ but argument is of type ‘const char *’ 2 | void * myrealloc(void *oldp, size_t newsize, char *what); | ~~~~~~^~~~ mergebad.c:290:61: warning: format ‘%lld’ expects argument of type ‘long long int’, but argument 3 has type ‘off64_t’ {aka ‘long int’} [-Wformat=] 290 | printf("Adding image: %s/%lld number of badblocks: %d\n", imgs[n_imgs].filename, imgs[n_imgs].size, imgs[n_imgs].bb_list_size); | ~~~^ ~~~~~~~~~~~~~~~~~ | | | | long long int off64_t {aka long int} | %ld mergebad.c:318:57: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘off64_t’ {aka ‘long int’} [-Wformat=] 318 | printf("Length set to: %d\n", length); | ~^ ~~~~~~ | | | | int off64_t {aka long int} | %ld mergebad.c:357:74: warning: format ‘%lld’ expects argument of type ‘long long int’, but argument 3 has type ‘off64_t’ {aka ‘long int’} [-Wformat=] 357 | printf("No filelength given, using length of file %s: %lld\n", imgs[0].filename, (length = get_filesize(imgs[0].filename))); | ~~~^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | | | long long int off64_t {aka long int} | %ld mergebad.c:365:52: warning: format ‘%lld’ expects argument of type ‘long long int’, but argument 2 has type ‘off64_t’ {aka ‘long int’} [-Wformat=] 365 | printf("Current offset: %lld\n", offset); | ~~~^ ~~~~~~ | | | | | off64_t {aka long int} | long long int | %ld mergebad.c:388:54: warning: format ‘%lld’ expects argument of type ‘long long int’, but argument 2 has type ‘off64_t’ {aka ‘long int’} [-Wformat=] 388 | printf("Will copy %lld bytes from file %s\n", n_bytes_to_copy, imgs[img_index].filename); | ~~~^ ~~~~~~~~~~~~~~~ | | | | long long int off64_t {aka long int} | %ld mergebad.c:396:81: warning: format ‘%lld’ expects argument of type ‘long long int’, but argument 3 has type ‘off64_t’ {aka ‘long int’} [-Wformat=] 396 | fprintf(stderr, "There was a problem copying %lld bytes of data from file %s to the outputfile: %s (%d)\n", n_bytes_to_copy, imgs[img_index].filename, strerror(errno), errno); | ~~~^ ~~~~~~~~~~~~~~~ | | | | long long int off64_t {aka long int} | %ld mergebad.c:411:91: warning: format ‘%lld’ expects argument of type ‘long long int’, but argument 2 has type ‘off64_t’ {aka ‘long int’} [-Wformat=] 411 | printf("No image without badblocks for current offset (%lld) found: \"guessing\" one or more bytes.\n", offset); | ~~~^ ~~~~~~ | | | | long long int off64_t {aka long int} | %ld mergebad.c:413:65: warning: conversion to ‘size_t’ {aka ‘long unsigned int’} from ‘int’ may change the sign of the result [-Wsign-conversion] 413 | guess_bytes = (unsigned char *)mymalloc(n_imgs, "temp buffer for bytes from each image to select from"); | ^~~~~~ mergebad.c:413:73: warning: passing argument 2 of ‘mymalloc’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] 413 | guess_bytes = (unsigned char *)mymalloc(n_imgs, "temp buffer for bytes from each image to select from"); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from mergebad.c:14: utils.h:1:36: note: expected ‘char *’ but argument is of type ‘const char *’ 1 | void * mymalloc(size_t size, char *what); | ~~~~~~^~~~ mergebad.c:419:44: warning: passing argument 1 of ‘error_exit’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] 419 | error_exit("Internal error: could not find the badblock \"we're in\".\n"); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from mergebad.c:15: error.h:1:23: note: expected ‘char *’ but argument is of type ‘const char *’ 1 | void error_exit(char *format, ...); | ~~~~~~^~~~~~ mergebad.c:431:58: warning: format ‘%lld’ expects argument of type ‘long long int’, but argument 3 has type ‘off64_t’ {aka ‘long int’} [-Wformat=] 431 | fprintf(fh_map_file, "%lld %lld\n", offset, n_to_guess); | ~~~^ ~~~~~~ | | | | | off64_t {aka long int} | long long int | %ld mergebad.c:431:63: warning: format ‘%lld’ expects argument of type ‘long long int’, but argument 4 has type ‘off64_t’ {aka ‘long int’} [-Wformat=] 431 | fprintf(fh_map_file, "%lld %lld\n", offset, n_to_guess); | ~~~^ ~~~~~~~~~~ | | | | long long int off64_t {aka long int} | %ld mergebad.c:437:57: warning: format ‘%lld’ expects argument of type ‘long long int’, but argument 2 has type ‘off64_t’ {aka ‘long int’} [-Wformat=] 437 | printf("\"Guessing\" %lld bytes\n", n_to_guess); | ~~~^ ~~~~~~~~~~ | | | | | off64_t {aka long int} | long long int | %ld mergebad.c:441:44: warning: passing argument 1 of ‘error_exit’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] 441 | error_exit("Number of \"bytes to guess\" less then 1!\n"); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from mergebad.c:15: error.h:1:23: note: expected ‘char *’ but argument is of type ‘const char *’ 1 | void error_exit(char *format, ...); | ~~~~~~^~~~~~ mergebad.c:449:50: warning: conversion to ‘size_t’ {aka ‘long unsigned int’} from ‘off64_t’ {aka ‘long int’} may change the sign of the result [-Wsign-conversion] 449 | output_buffer = mymalloc(n_to_guess, "guessed bytes"); | ^~~~~~~~~~ mergebad.c:449:62: warning: passing argument 2 of ‘mymalloc’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] 449 | output_buffer = mymalloc(n_to_guess, "guessed bytes"); | ^~~~~~~~~~~~~~~ In file included from mergebad.c:14: utils.h:1:36: note: expected ‘char *’ but argument is of type ‘const char *’ 1 | void * mymalloc(size_t size, char *what); | ~~~~~~^~~~ mergebad.c:472:66: warning: conversion to ‘size_t’ {aka ‘long unsigned int’} from ‘off64_t’ {aka ‘long int’} may change the sign of the result [-Wsign-conversion] 472 | if (phantom_write(fd_out, output_buffer, n_to_guess) != n_to_guess) | ^~~~~~~~~~ cc -Wall -W mergebad.o io.o utils.o error.o -o mergebad Slackware package maker, version 3.14159265. Searching for symbolic links: No symbolic links were found, so we won't make an installation script. You can make your own later in ./install/doinst.sh and rebuild the package if you like. This next step is optional - you can set the directories in your package to some sane permissions. If any of the directories in your package have special permissions, then DO NOT reset them here! Would you like to reset all directory permissions to 755 (drwxr-xr-x) and directory ownerships to root.root ([y]es, [n]o)? n Creating Slackware package: /usr/src/slapt-src-x86_64/system/recoverdm/recoverdm-0.20-x86_64-1salix15.0.txz ./ install/ install/slack-desc usr/ usr/bin/ usr/bin/mergebad usr/bin/recoverdm usr/doc/ usr/doc/recoverdm-0.20/ usr/doc/recoverdm-0.20/license.txt usr/doc/recoverdm-0.20/readme.txt usr/doc/recoverdm-0.20/recoverdm.SlackBuild Slackware package /usr/src/slapt-src-x86_64/system/recoverdm/recoverdm-0.20-x86_64-1salix15.0.txz created. Installing package recoverdm-0.20-x86_64-1salix15.0... | recoverdm (recover files/disks with damaged sectors) | | This program will help you recover disks with bad sectors. You can | recover files as well complete devices. This toolkit also has a | utility called 'mergebad': mergebad merges multiple images into one. | | Homepage: http://www.vanheusden.com/recoverdm/ | | | | | |