NetBSD-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

How does NetBSD deal with name conflicts in user program and shared library



Hi,

Recently I encountered a strange behavior when there are name
conflicts in user program and shared libraries.

Following is a demo:

#include <stdio.h>
#include <stdlib.h>

void write(void)
{
        exit(3);
}

int main(void)
{
        puts("hello");

        return 0;
}

When I run this program in Linux box, "hello" echoed to stdout
successfully. But in NetBSD, program exit with status 3. It seems that
when ld links `puts', it uses `write' defined in this program instead
of the one defined by the system.

It is a desired behavior?


Thanks,
Xin Wang


Home | Main Index | Thread Index | Old Index