]> granicus.if.org Git - php/commitdiff
MFH: (r-1.16) ttyname_r() is broken on BSD
authorSara Golemon <pollita@php.net>
Fri, 5 Jan 2007 21:31:56 +0000 (21:31 +0000)
committerSara Golemon <pollita@php.net>
Fri, 5 Jan 2007 21:31:56 +0000 (21:31 +0000)
ext/posix/config.m4

index 9038330bb135298f4374598a9c199b12ae8daeab..f84facde60b1ffc61827842b0bfe6b32692bc269 100644 (file)
@@ -11,5 +11,22 @@ if test "$PHP_POSIX" = "yes"; then
 
   AC_CHECK_HEADERS(sys/mkdev.h)
 
-  AC_CHECK_FUNCS(seteuid setegid setsid getsid setpgid getpgid ctermid mkfifo mknod getrlimit getlogin getgroups makedev initgroups getpwuid_r getgrgid_r ttyname_r)
+  AC_CHECK_FUNCS(seteuid setegid setsid getsid setpgid getpgid ctermid mkfifo mknod getrlimit getlogin getgroups makedev initgroups getpwuid_r getgrgid_r)
+
+  AC_MSG_CHECKING([for working ttyname_r() implementation])
+  AC_TRY_RUN([
+#include <unistd.h>
+
+int main(int argc, char *argv[])
+{
+       char buf[64];
+
+       return ttyname_r(0, buf, 64) ? 1 : 0;
+}
+  ],[
+    AC_MSG_RESULT([yes])
+    AC_DEFINE(HAVE_TTYNAME_R, 1, [Whether you have a working ttyname_r])
+  ],[
+    AC_MSG_RESULT([no, posix_ttyname() will be thread-unsafe])
+  ])
 fi