On Nov 8, 2003, at 1:00 AM, Tom Lane wrote:
> Bob Ippolito <bob@redivi.com> writes:
>> On Nov 8, 2003, at 12:31 AM, Tom Lane wrote:
>>> I have just in the past couple hours realized that ps_status.c is
>>> seriously broken on OS X 10.3. It appears that Apple has randomly
>>> decided to start #define'ing "BSD",
>
>> __APPLE__ is usually the only define you should really be depending on
>
> It is not that we are failing to recognize Darwin, it is that Darwin is
> falsely claiming to be something else.
>
>>> I don't see why system.c would affect the problem I'm seeing --- does
>>> this really fix pltcl for you?
>
>> If you're getting the NSLinkModule -> mmap crash, then yes.
>
> No, I'm seeing an NSLinkModule -> memcmp crash. memcmp() is crashing
> because it is being passed a null pointer, and the pointer in question
> is null because ps_status.c zeroed it via "argv[1] = NULL".
>
> I modified ps_status to use the correct status update method
> (PS_CLOBBER_ARGV) but it still failed :-(. It sorta looks like
> something in the dynamic loader may be relying on a stale copy of
> the "environ" pointer ... does that ring a bell at all?
Er... I meant memcmp.. Have you tried removing the system.c hack?
That's what fixed it for me. I'm pretty sure that the multiply defined
_system is messing with things. Is it possible to use execve to
rewrite argv[0]? I've had better luck with that.
-bob