관련된 질문이 있길래, 저도 삽질한 것을 올립니다.
-------------
2개의 변경인데, 첫번째 변경(__USE_GNU) 는 glibc-2.2 에서 필요한 것이고,
(-D__USE_GNU 로는 되지 않는다)
두번째 변경은, CFUNCTION action 을 제대로 동작하게 해준다. (under glibc-2.2)
devfsd 메뉴얼에 의하면 다음이 동작하게 된다.(엄청 삽질
;
LOOKUP ^mouse$ CFUNCTION GLOBAL symlink ${mntpnt}/misc/psaux $devpath
즉, /dev/mouse 를 엑세스 할 경우, /dev/misc/psaux 와 심볼릭 링크를 만든다.
(devfsd 동작중일 때는, /dev/mouse 파일을 지워도, ls /dev/mouse 와 같은 동작을
하면 다시 생성된다)
--- devfsd/devfsd.c Tue Jan 9 05:33:25 2001
+++ devfsd.my/devfsd.c Tue Jan 9 05:22:20 2001
@@ -189,6 +189,7 @@
#include <signal.h>
#include <regex.h>
#include <errno.h>
+#define __USE_GNU
#include <dlfcn.h>
#include <rpcsvc/ypclnt.h>
#include <rpcsvc/yp_prot.h>
@@ -1707,7 +1708,7 @@
free (so);
return (NULL);
}
- if (strcmp (name, "GLOBAL") == 0) so->handle = RTLD_NEXT;
+ if (strcmp (name, "GLOBAL") == 0) so->handle = RTLD_DEFAULT;
else if ( ( so->handle = dlopen (name, RTLD_NOW) ) == NULL )
{
free ( (char *) so->name );