diff options
-rw-r--r-- | scripts/recordmcount.c | 48 | ||||
-rw-r--r-- | scripts/recordmcount.h | 16 |
2 files changed, 32 insertions, 32 deletions
diff --git a/scripts/recordmcount.c b/scripts/recordmcount.c index f9f6f52db772..37afe0ecacb2 100644 --- a/scripts/recordmcount.c +++ b/scripts/recordmcount.c | |||
@@ -78,7 +78,7 @@ static off_t | |||
78 | ulseek(int const fd, off_t const offset, int const whence) | 78 | ulseek(int const fd, off_t const offset, int const whence) |
79 | { | 79 | { |
80 | off_t const w = lseek(fd, offset, whence); | 80 | off_t const w = lseek(fd, offset, whence); |
81 | if ((off_t)-1 == w) { | 81 | if (w == (off_t)-1) { |
82 | perror("lseek"); | 82 | perror("lseek"); |
83 | fail_file(); | 83 | fail_file(); |
84 | } | 84 | } |
@@ -111,7 +111,7 @@ static void * | |||
111 | umalloc(size_t size) | 111 | umalloc(size_t size) |
112 | { | 112 | { |
113 | void *const addr = malloc(size); | 113 | void *const addr = malloc(size); |
114 | if (0 == addr) { | 114 | if (addr == 0) { |
115 | fprintf(stderr, "malloc failed: %zu bytes\n", size); | 115 | fprintf(stderr, "malloc failed: %zu bytes\n", size); |
116 | fail_file(); | 116 | fail_file(); |
117 | } | 117 | } |
@@ -136,7 +136,7 @@ static void *mmap_file(char const *fname) | |||
136 | void *addr; | 136 | void *addr; |
137 | 137 | ||
138 | fd_map = open(fname, O_RDWR); | 138 | fd_map = open(fname, O_RDWR); |
139 | if (0 > fd_map || 0 > fstat(fd_map, &sb)) { | 139 | if (fd_map < 0 || fstat(fd_map, &sb) < 0) { |
140 | perror(fname); | 140 | perror(fname); |
141 | fail_file(); | 141 | fail_file(); |
142 | } | 142 | } |
@@ -147,7 +147,7 @@ static void *mmap_file(char const *fname) | |||
147 | addr = mmap(0, sb.st_size, PROT_READ|PROT_WRITE, MAP_PRIVATE, | 147 | addr = mmap(0, sb.st_size, PROT_READ|PROT_WRITE, MAP_PRIVATE, |
148 | fd_map, 0); | 148 | fd_map, 0); |
149 | mmap_failed = 0; | 149 | mmap_failed = 0; |
150 | if (MAP_FAILED == addr) { | 150 | if (addr == MAP_FAILED) { |
151 | mmap_failed = 1; | 151 | mmap_failed = 1; |
152 | addr = umalloc(sb.st_size); | 152 | addr = umalloc(sb.st_size); |
153 | uread(fd_map, addr, sb.st_size); | 153 | uread(fd_map, addr, sb.st_size); |
@@ -206,12 +206,12 @@ static uint32_t (*w2)(uint16_t); | |||
206 | static int | 206 | static int |
207 | is_mcounted_section_name(char const *const txtname) | 207 | is_mcounted_section_name(char const *const txtname) |
208 | { | 208 | { |
209 | return 0 == strcmp(".text", txtname) || | 209 | return strcmp(".text", txtname) == 0 || |
210 | 0 == strcmp(".ref.text", txtname) || | 210 | strcmp(".ref.text", txtname) == 0 || |
211 | 0 == strcmp(".sched.text", txtname) || | 211 | strcmp(".sched.text", txtname) == 0 || |
212 | 0 == strcmp(".spinlock.text", txtname) || | 212 | strcmp(".spinlock.text", txtname) == 0 || |
213 | 0 == strcmp(".irqentry.text", txtname) || | 213 | strcmp(".irqentry.text", txtname) == 0 || |
214 | 0 == strcmp(".text.unlikely", txtname); | 214 | strcmp(".text.unlikely", txtname) == 0; |
215 | } | 215 | } |
216 | 216 | ||
217 | /* 32 bit and 64 bit are very similar */ | 217 | /* 32 bit and 64 bit are very similar */ |
@@ -270,7 +270,7 @@ do_file(char const *const fname) | |||
270 | fail_file(); | 270 | fail_file(); |
271 | } break; | 271 | } break; |
272 | case ELFDATA2LSB: { | 272 | case ELFDATA2LSB: { |
273 | if (1 != *(unsigned char const *)&endian) { | 273 | if (*(unsigned char const *)&endian != 1) { |
274 | /* main() is big endian, file.o is little endian. */ | 274 | /* main() is big endian, file.o is little endian. */ |
275 | w = w4rev; | 275 | w = w4rev; |
276 | w2 = w2rev; | 276 | w2 = w2rev; |
@@ -278,7 +278,7 @@ do_file(char const *const fname) | |||
278 | } | 278 | } |
279 | } break; | 279 | } break; |
280 | case ELFDATA2MSB: { | 280 | case ELFDATA2MSB: { |
281 | if (0 != *(unsigned char const *)&endian) { | 281 | if (*(unsigned char const *)&endian != 0) { |
282 | /* main() is little endian, file.o is big endian. */ | 282 | /* main() is little endian, file.o is big endian. */ |
283 | w = w4rev; | 283 | w = w4rev; |
284 | w2 = w2rev; | 284 | w2 = w2rev; |
@@ -286,9 +286,9 @@ do_file(char const *const fname) | |||
286 | } | 286 | } |
287 | } break; | 287 | } break; |
288 | } /* end switch */ | 288 | } /* end switch */ |
289 | if (0 != memcmp(ELFMAG, ehdr->e_ident, SELFMAG) | 289 | if (memcmp(ELFMAG, ehdr->e_ident, SELFMAG) != 0 |
290 | || ET_REL != w2(ehdr->e_type) | 290 | || w2(ehdr->e_type) != ET_REL |
291 | || EV_CURRENT != ehdr->e_ident[EI_VERSION]) { | 291 | || ehdr->e_ident[EI_VERSION] != EV_CURRENT) { |
292 | fprintf(stderr, "unrecognized ET_REL file %s\n", fname); | 292 | fprintf(stderr, "unrecognized ET_REL file %s\n", fname); |
293 | fail_file(); | 293 | fail_file(); |
294 | } | 294 | } |
@@ -321,15 +321,15 @@ do_file(char const *const fname) | |||
321 | fail_file(); | 321 | fail_file(); |
322 | } break; | 322 | } break; |
323 | case ELFCLASS32: { | 323 | case ELFCLASS32: { |
324 | if (sizeof(Elf32_Ehdr) != w2(ehdr->e_ehsize) | 324 | if (w2(ehdr->e_ehsize) != sizeof(Elf32_Ehdr) |
325 | || sizeof(Elf32_Shdr) != w2(ehdr->e_shentsize)) { | 325 | || w2(ehdr->e_shentsize) != sizeof(Elf32_Shdr)) { |
326 | fprintf(stderr, | 326 | fprintf(stderr, |
327 | "unrecognized ET_REL file: %s\n", fname); | 327 | "unrecognized ET_REL file: %s\n", fname); |
328 | fail_file(); | 328 | fail_file(); |
329 | } | 329 | } |
330 | if (EM_S390 == w2(ehdr->e_machine)) | 330 | if (w2(ehdr->e_machine) == EM_S390) |
331 | reltype = R_390_32; | 331 | reltype = R_390_32; |
332 | if (EM_MIPS == w2(ehdr->e_machine)) { | 332 | if (w2(ehdr->e_machine) == EM_MIPS) { |
333 | reltype = R_MIPS_32; | 333 | reltype = R_MIPS_32; |
334 | is_fake_mcount32 = MIPS32_is_fake_mcount; | 334 | is_fake_mcount32 = MIPS32_is_fake_mcount; |
335 | } | 335 | } |
@@ -337,15 +337,15 @@ do_file(char const *const fname) | |||
337 | } break; | 337 | } break; |
338 | case ELFCLASS64: { | 338 | case ELFCLASS64: { |
339 | Elf64_Ehdr *const ghdr = (Elf64_Ehdr *)ehdr; | 339 | Elf64_Ehdr *const ghdr = (Elf64_Ehdr *)ehdr; |
340 | if (sizeof(Elf64_Ehdr) != w2(ghdr->e_ehsize) | 340 | if (w2(ghdr->e_ehsize) != sizeof(Elf64_Ehdr) |
341 | || sizeof(Elf64_Shdr) != w2(ghdr->e_shentsize)) { | 341 | || w2(ghdr->e_shentsize) != sizeof(Elf64_Shdr)) { |
342 | fprintf(stderr, | 342 | fprintf(stderr, |
343 | "unrecognized ET_REL file: %s\n", fname); | 343 | "unrecognized ET_REL file: %s\n", fname); |
344 | fail_file(); | 344 | fail_file(); |
345 | } | 345 | } |
346 | if (EM_S390 == w2(ghdr->e_machine)) | 346 | if (w2(ghdr->e_machine) == EM_S390) |
347 | reltype = R_390_64; | 347 | reltype = R_390_64; |
348 | if (EM_MIPS == w2(ghdr->e_machine)) { | 348 | if (w2(ghdr->e_machine) == EM_MIPS) { |
349 | reltype = R_MIPS_64; | 349 | reltype = R_MIPS_64; |
350 | Elf64_r_sym = MIPS64_r_sym; | 350 | Elf64_r_sym = MIPS64_r_sym; |
351 | Elf64_r_info = MIPS64_r_info; | 351 | Elf64_r_info = MIPS64_r_info; |
@@ -371,7 +371,7 @@ main(int argc, char const *argv[]) | |||
371 | } | 371 | } |
372 | 372 | ||
373 | /* Process each file in turn, allowing deep failure. */ | 373 | /* Process each file in turn, allowing deep failure. */ |
374 | for (--argc, ++argv; 0 < argc; --argc, ++argv) { | 374 | for (--argc, ++argv; argc > 0; --argc, ++argv) { |
375 | int const sjval = setjmp(jmpenv); | 375 | int const sjval = setjmp(jmpenv); |
376 | int len; | 376 | int len; |
377 | 377 | ||
diff --git a/scripts/recordmcount.h b/scripts/recordmcount.h index baf187bee983..ac7b3303cb31 100644 --- a/scripts/recordmcount.h +++ b/scripts/recordmcount.h | |||
@@ -275,12 +275,12 @@ static uint_t *sift_rel_mcount(uint_t *mlocp, | |||
275 | Elf_Sym const *const symp = | 275 | Elf_Sym const *const symp = |
276 | &sym0[Elf_r_sym(relp)]; | 276 | &sym0[Elf_r_sym(relp)]; |
277 | char const *symname = &str0[w(symp->st_name)]; | 277 | char const *symname = &str0[w(symp->st_name)]; |
278 | char const *mcount = '_' == gpfx ? "_mcount" : "mcount"; | 278 | char const *mcount = gpfx == '_' ? "_mcount" : "mcount"; |
279 | 279 | ||
280 | if ('.' == symname[0]) | 280 | if (symname[0] == '.') |
281 | ++symname; /* ppc64 hack */ | 281 | ++symname; /* ppc64 hack */ |
282 | if (0 == strcmp(mcount, symname) || | 282 | if (strcmp(mcount, symname) == 0 || |
283 | (altmcount && 0 == strcmp(altmcount, symname))) | 283 | (altmcount && strcmp(altmcount, symname) == 0)) |
284 | mcountsym = Elf_r_sym(relp); | 284 | mcountsym = Elf_r_sym(relp); |
285 | } | 285 | } |
286 | 286 | ||
@@ -290,7 +290,7 @@ static uint_t *sift_rel_mcount(uint_t *mlocp, | |||
290 | mrelp->r_offset = _w(offbase | 290 | mrelp->r_offset = _w(offbase |
291 | + ((void *)mlocp - (void *)mloc0)); | 291 | + ((void *)mlocp - (void *)mloc0)); |
292 | Elf_r_info(mrelp, recsym, reltype); | 292 | Elf_r_info(mrelp, recsym, reltype); |
293 | if (sizeof(Elf_Rela) == rel_entsize) { | 293 | if (rel_entsize == sizeof(Elf_Rela)) { |
294 | ((Elf_Rela *)mrelp)->r_addend = addend; | 294 | ((Elf_Rela *)mrelp)->r_addend = addend; |
295 | *mlocp++ = 0; | 295 | *mlocp++ = 0; |
296 | } else | 296 | } else |
@@ -354,12 +354,12 @@ __has_rel_mcount(Elf_Shdr const *const relhdr, /* is SHT_REL or SHT_RELA */ | |||
354 | Elf_Shdr const *const txthdr = &shdr0[w(relhdr->sh_info)]; | 354 | Elf_Shdr const *const txthdr = &shdr0[w(relhdr->sh_info)]; |
355 | char const *const txtname = &shstrtab[w(txthdr->sh_name)]; | 355 | char const *const txtname = &shstrtab[w(txthdr->sh_name)]; |
356 | 356 | ||
357 | if (0 == strcmp("__mcount_loc", txtname)) { | 357 | if (strcmp("__mcount_loc", txtname) == 0) { |
358 | fprintf(stderr, "warning: __mcount_loc already exists: %s\n", | 358 | fprintf(stderr, "warning: __mcount_loc already exists: %s\n", |
359 | fname); | 359 | fname); |
360 | succeed_file(); | 360 | succeed_file(); |
361 | } | 361 | } |
362 | if (SHT_PROGBITS != w(txthdr->sh_type) || | 362 | if (w(txthdr->sh_type) != SHT_PROGBITS || |
363 | !is_mcounted_section_name(txtname)) | 363 | !is_mcounted_section_name(txtname)) |
364 | return NULL; | 364 | return NULL; |
365 | return txtname; | 365 | return txtname; |
@@ -370,7 +370,7 @@ static char const *has_rel_mcount(Elf_Shdr const *const relhdr, | |||
370 | char const *const shstrtab, | 370 | char const *const shstrtab, |
371 | char const *const fname) | 371 | char const *const fname) |
372 | { | 372 | { |
373 | if (SHT_REL != w(relhdr->sh_type) && SHT_RELA != w(relhdr->sh_type)) | 373 | if (w(relhdr->sh_type) != SHT_REL && w(relhdr->sh_type) != SHT_RELA) |
374 | return NULL; | 374 | return NULL; |
375 | return __has_rel_mcount(relhdr, shdr0, shstrtab, fname); | 375 | return __has_rel_mcount(relhdr, shdr0, shstrtab, fname); |
376 | } | 376 | } |