Fix AIX compulation (break addr resolution)

Revert c92c161585, casting to void*
cannot fool gcc. The AIX address resolution was broken anyway, so
just avoid the problem and make it compile well.
This commit is contained in:
Daniel Black
2022-10-19 16:41:24 +11:00
parent 79dc3989fd
commit 18a0f0c178

View File

@ -319,12 +319,20 @@ int my_addr_resolve(void *ptr, my_addr_loc *loc)
/* Save result for future comparisons. */ /* Save result for future comparisons. */
strnmov(addr2line_binary, info.dli_fname, sizeof(addr2line_binary)); strnmov(addr2line_binary, info.dli_fname, sizeof(addr2line_binary));
#ifdef _AIX
/*
info.dli_fbase is a char on AIX and casting it doesn't fool gcc.
leave backtracing broken on AIX until a real solution can be found.
*/
addr_offset= NULL;
#else
/* /*
Check if we should use info.dli_fbase as an offset or not Check if we should use info.dli_fbase as an offset or not
for the base program. This is depending on if the compilation is for the base program. This is depending on if the compilation is
done with PIE or not. done with PIE or not.
*/ */
addr_offset= (void*) info.dli_fbase; addr_offset= info.dli_fbase;
#endif
#ifndef __PIE__ #ifndef __PIE__
if (strcmp(info.dli_fname, my_progname) == 0 && if (strcmp(info.dli_fname, my_progname) == 0 &&
addr_resolve((void*) my_addr_resolve, loc) == 0 && addr_resolve((void*) my_addr_resolve, loc) == 0 &&