The readdir_r change hits:

 gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I.. -g -O2 -Wall -Wmissing-prototypes 
-MT filesys.lo -MD -
MP -MF .deps/filesys.Tpo -c filesys.
c  -fPIC -DPIC -o .libs/filesys.o
filesys.c: In function `scm_readdir':
filesys.c:905: warning: implicit declaration of function `dirfd'
filesys.c:914: warning: implicit declaration of function `SCM_MAX'
filesys.c:918: warning: implicit declaration of function `alloca'
filesys.c:920: error: too many arguments to function `readdir_r'
filesys.c:898: warning: unused variable `old_errno'


I included "private-gc.h" to get SCM_MAX, and <alloca.h> for alloca,
but dirfd is not defined in Solaris. The version in win32-dirent.c won't work 
because there is no fd field.  This compiles:

    name_max = fpathconf (ds->dd_fd, _PC_NAME_MAX);

and readdir takes 2 arguments now, so:

    SCM_SYSCALL (readdir_r (ds, &rdent));

but that gets:

filesys.c: In function `scm_readdir':
filesys.c:927: warning: passing arg 2 of `readdir_r' from incompatible pointer 
type

I don't know enough about readdir_r to say whether it matters.



_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/guile-devel

Reply via email to