Commit 18a0f0c1 authored by Daniel Black's avatar Daniel Black

Fix AIX compulation (break addr resolution)

Revert c92c1615, casting to void*
cannot fool gcc. The AIX address resolution was broken anyway, so
just avoid the problem and make it compile well.
parent 79dc3989
...@@ -319,12 +319,20 @@ int my_addr_resolve(void *ptr, my_addr_loc *loc) ...@@ -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 &&
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment