aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--scripts/recordmcount.c48
-rw-r--r--scripts/recordmcount.h16
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
78ulseek(int const fd, off_t const offset, int const whence) 78ulseek(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 *
111umalloc(size_t size) 111umalloc(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);
206static int 206static int
207is_mcounted_section_name(char const *const txtname) 207is_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}