Current-Users archive

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

Re: c063 and openat



On Fri, Nov 23, 2012 at 01:32:40PM +0100, Martin Husemann wrote:
> On Fri, Nov 23, 2012 at 12:30:20PM +0000, Patrick Welche wrote:
> > I just had pkgsrc multimedia/vlc fail to compile, because it detected 
> > openat()
> > and fcntl.h, but doesn't define _INCOMPLETE_XOPEN_C063.
> 
> Sounds more like it did "detect" it - I would fix the autoconfig test 
> (to at least AC_TRY_LINK).

Thinking about it: if I wrote a configure test which found the function I
was after in the header file, and as a symbol in the library, I would be
surprised if it didn't work. I wouldn't AC_LINK_IFELSE every function was
going to use just in case it might not work.

So, I went for the attached patch instead. The OPSYS test could then
be changed to a version once _INCOMPLETE_XOPEN_C063 was no longer
incomplete ;-)

(BTW presumably bug reports of the form, I get a kernel panic if try
to openat(dfd, "/tmp/openfoo/bar", O_RDONLY, 0); aren't useful because
you know already which is why openat is marked as _INCOMPETE ?)


Cheers,

Patrick
Index: mk/configure/gnu-configure.mk
===================================================================
RCS file: /cvsroot/pkgsrc/mk/configure/gnu-configure.mk,v
retrieving revision 1.13
diff -u -r1.13 gnu-configure.mk
--- mk/configure/gnu-configure.mk       26 Jan 2012 06:33:43 -0000      1.13
+++ mk/configure/gnu-configure.mk       25 Nov 2012 15:20:16 -0000
@@ -22,6 +22,28 @@
 CONFIGURE_ENV+=        lt_cv_sys_max_cmd_len=${_OPSYS_MAX_CMDLEN_CMD:sh}
 .endif
 
+.if ${OPSYS} == "NetBSD"
+# remove when _INCOMPLETE_XOPEN_C063 is no longer necessary
+# sys/fcntl.h
+CONFIGURE_ENV+=        ac_cv_func_openat=no
+# sys/stat.h
+CONFIGURE_ENV+=        ac_cv_func_fstatat=no
+CONFIGURE_ENV+=        ac_cv_func_utimensat=no
+# unistd.h
+CONFIGURE_ENV+=        ac_cv_func_linkat=no
+CONFIGURE_ENV+=        ac_cv_func_renameat=no
+CONFIGURE_ENV+=        ac_cv_func_mkfifoat=no
+CONFIGURE_ENV+=        ac_cv_func_mknodat=no
+CONFIGURE_ENV+=        ac_cv_func_mkdirat=no
+CONFIGURE_ENV+=        ac_cv_func_faccessat=no
+CONFIGURE_ENV+=        ac_cv_func_fchmodat=no
+CONFIGURE_ENV+=        ac_cv_func_fchownat=no
+CONFIGURE_ENV+=        ac_cv_func_readlinkat=no
+CONFIGURE_ENV+=        ac_cv_func_symlinkat=no
+CONFIGURE_ENV+=        ac_cv_func_unlinkat=no
+CONFIGURE_ENV+=        ac_cv_func_fexecve=no
+.endif
+
 .if ${OPSYS} == "MirBSD"
 CONFIGURE_ENV+=        lt_cv_deplibs_check_method='match_pattern 
/lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$$'
 .endif


Home | Main Index | Thread Index | Old Index