Обсуждение: build farm failure tuna on OSX 10.4 for 8.0

Поиск
Список
Период
Сортировка

build farm failure tuna on OSX 10.4 for 8.0

От
Dave Cramer
Дата:
It appears to be getting the wrong address for tsearch()

Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_PROTECTION_FAILURE at address: 0x0000011b
0x9009a7c8 in tsearch ()

However if I set a break point for tsearch, I get

br tsearch
Breakpoint 5 at 0xe08c64: file txtidx.c, line 533.

further

(gdb) display *finfo
5: *finfo = {  fn_addr = 0x9009a798 <tsearch>,  fn_oid = 377912,  fn_nargs = 0,  fn_strict = 0 '\0',  fn_retset = 0
'\0', fn_extra = 0x0,  fn_mcxt = 0x20270f4,  fn_expr = 0x0
 
}
(gdb) list *0x9009a798
No source file for address 0x9009a798.

I admit to not being an expert in gdb here, but it certainly looks  
like something isn't quite right

Dave


Re: build farm failure tuna on OSX 10.4 for 8.0

От
Tom Lane
Дата:
Dave Cramer <pg@fastcrypt.com> writes:
> It appears to be getting the wrong address for tsearch()

I applied a patch for that earlier today.  It seems that in OS X 10.4
the compiler generates a function with the same name as the shared
library, ie tsearch() for libtsearch ... and it doesn't tell you about
the name conflict, it just lets the wrong function get called at
runtime.  Earlier OS X versions did not do this, and I have to say that
it's one of the most brain-dead usurpations of application namespace
I've seen in a long time.  But there you have it.
        regards, tom lane