ntdll-DOS_Attributes: If multiple header files are found make sure that the right implementation is used.

This commit is contained in:
Sebastian Lackner 2014-10-19 04:20:13 +02:00
parent f9c393b4a8
commit 2f5a9b7ba1
2 changed files with 30 additions and 27 deletions

View File

@ -1,15 +1,15 @@
From a9e7952601fa6bbe52cb9c01ef48f5f90c67109d Mon Sep 17 00:00:00 2001
From 29e445c891dab24f5f753cf7823dc2572db3b903 Mon Sep 17 00:00:00 2001
From: "Erich E. Hoover" <erich.e.hoover@gmail.com>
Date: Mon, 6 Oct 2014 14:21:11 -0600
Subject: libport: Add support for Mac OS X style extended attributes.
---
configure.ac | 3 +++
libs/port/xattr.c | 26 ++++++++++++++++++++------
2 files changed, 23 insertions(+), 6 deletions(-)
configure.ac | 3 +++
libs/port/xattr.c | 27 +++++++++++++++++++++------
2 files changed, 24 insertions(+), 6 deletions(-)
diff --git a/configure.ac b/configure.ac
index fd760e3..d691c73 100644
index 6234d15..3e88371 100644
--- a/configure.ac
+++ b/configure.ac
@@ -671,6 +671,9 @@ AC_CHECK_HEADERS([libprocstat.h],,,
@ -23,19 +23,21 @@ index fd760e3..d691c73 100644
if test "x$with_xattr" == "xyes"
then
diff --git a/libs/port/xattr.c b/libs/port/xattr.c
index dc89a45..3badafc 100644
index dc89a45..2f20687 100644
--- a/libs/port/xattr.c
+++ b/libs/port/xattr.c
@@ -23,6 +23,8 @@
@@ -22,7 +22,10 @@
#include "wine/port.h"
#if defined(HAVE_ATTR_XATTR_H)
+# undef XATTR_ADDITIONAL_OPTIONS
# include <attr/xattr.h>
+#elif defined(HAVE_SYS_XATTR_H)
+# include <sys/xattr.h>
#endif
#include <ctype.h>
@@ -30,7 +32,9 @@
@@ -30,7 +33,9 @@
int xattr_fget( int filedes, const char *name, void *value, size_t size )
{
@ -46,7 +48,7 @@ index dc89a45..3badafc 100644
return fgetxattr( filedes, name, value, size );
#else
errno = ENOTSUP;
@@ -40,7 +44,9 @@ int xattr_fget( int filedes, const char *name, void *value, size_t size )
@@ -40,7 +45,9 @@ int xattr_fget( int filedes, const char *name, void *value, size_t size )
int xattr_fremove( int filedes, const char *name )
{
@ -57,7 +59,7 @@ index dc89a45..3badafc 100644
return fremovexattr( filedes, name );
#else
errno = ENOTSUP;
@@ -50,7 +56,9 @@ int xattr_fremove( int filedes, const char *name )
@@ -50,7 +57,9 @@ int xattr_fremove( int filedes, const char *name )
int xattr_fset( int filedes, const char *name, void *value, size_t size )
{
@ -68,7 +70,7 @@ index dc89a45..3badafc 100644
return fsetxattr( filedes, name, value, size, 0 );
#else
errno = ENOTSUP;
@@ -60,7 +68,9 @@ int xattr_fset( int filedes, const char *name, void *value, size_t size )
@@ -60,7 +69,9 @@ int xattr_fset( int filedes, const char *name, void *value, size_t size )
int xattr_get( const char *path, const char *name, void *value, size_t size )
{
@ -79,7 +81,7 @@ index dc89a45..3badafc 100644
return getxattr( path, name, value, size );
#else
errno = ENOTSUP;
@@ -70,7 +80,9 @@ int xattr_get( const char *path, const char *name, void *value, size_t size )
@@ -70,7 +81,9 @@ int xattr_get( const char *path, const char *name, void *value, size_t size )
int xattr_remove( const char *path, const char *name )
{
@ -90,7 +92,7 @@ index dc89a45..3badafc 100644
return removexattr( path, name );
#else
errno = ENOTSUP;
@@ -80,7 +92,9 @@ int xattr_remove( const char *path, const char *name )
@@ -80,7 +93,9 @@ int xattr_remove( const char *path, const char *name )
int xattr_set( const char *path, const char *name, void *value, size_t size )
{
@ -102,5 +104,5 @@ index dc89a45..3badafc 100644
#else
errno = ENOTSUP;
--
1.7.9.5
2.1.2

View File

@ -1,15 +1,15 @@
From 314ee71bd95c3561bb71f6ef6f8d214c2e4e5394 Mon Sep 17 00:00:00 2001
From 47dd345f3b2e59cbcd0912c75977dda9a5eff143 Mon Sep 17 00:00:00 2001
From: "Erich E. Hoover" <erich.e.hoover@gmail.com>
Date: Mon, 6 Oct 2014 14:26:24 -0600
Subject: libport: Add support for FreeBSD style extended attributes.
---
configure.ac | 2 +-
libs/port/xattr.c | 40 ++++++++++++++++++++++++++++++++++++++++
2 files changed, 41 insertions(+), 1 deletion(-)
configure.ac | 2 +-
libs/port/xattr.c | 41 +++++++++++++++++++++++++++++++++++++++++
2 files changed, 42 insertions(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index d691c73..7500350 100644
index 3e88371..3a79581 100644
--- a/configure.ac
+++ b/configure.ac
@@ -670,7 +670,7 @@ AC_CHECK_HEADERS([libprocstat.h],,,
@ -22,14 +22,15 @@ index d691c73..7500350 100644
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/xattr.h>]], [[getxattr("", "", "", 0, 0, 0);]])],
[AC_DEFINE(XATTR_ADDITIONAL_OPTIONS, 1, [Define if xattr functions take additional arguments (Mac OS X)])])])
diff --git a/libs/port/xattr.c b/libs/port/xattr.c
index 3badafc..d759aa4 100644
index 2f20687..70af249 100644
--- a/libs/port/xattr.c
+++ b/libs/port/xattr.c
@@ -25,17 +25,39 @@
@@ -26,17 +26,40 @@
# include <attr/xattr.h>
#elif defined(HAVE_SYS_XATTR_H)
# include <sys/xattr.h>
+#elif defined(HAVE_SYS_EXTATTR_H)
+# undef XATTR_ADDITIONAL_OPTIONS
+# include <sys/extattr.h>
#endif
@ -65,7 +66,7 @@ index 3badafc..d759aa4 100644
#else
errno = ENOTSUP;
return -1;
@@ -48,6 +70,9 @@ int xattr_fremove( int filedes, const char *name )
@@ -49,6 +72,9 @@ int xattr_fremove( int filedes, const char *name )
return fremovexattr( filedes, name, 0 );
#elif defined(HAVE_SYS_XATTR_H) || defined(HAVE_ATTR_XATTR_H)
return fremovexattr( filedes, name );
@ -75,7 +76,7 @@ index 3badafc..d759aa4 100644
#else
errno = ENOTSUP;
return -1;
@@ -60,6 +85,10 @@ int xattr_fset( int filedes, const char *name, void *value, size_t size )
@@ -61,6 +87,10 @@ int xattr_fset( int filedes, const char *name, void *value, size_t size )
return fsetxattr( filedes, name, value, size, 0, 0 );
#elif defined(HAVE_SYS_XATTR_H) || defined(HAVE_ATTR_XATTR_H)
return fsetxattr( filedes, name, value, size, 0 );
@ -86,7 +87,7 @@ index 3badafc..d759aa4 100644
#else
errno = ENOTSUP;
return -1;
@@ -72,6 +101,10 @@ int xattr_get( const char *path, const char *name, void *value, size_t size )
@@ -73,6 +103,10 @@ int xattr_get( const char *path, const char *name, void *value, size_t size )
return getxattr( path, name, value, size, 0, 0 );
#elif defined(HAVE_SYS_XATTR_H) || defined(HAVE_ATTR_XATTR_H)
return getxattr( path, name, value, size );
@ -97,7 +98,7 @@ index 3badafc..d759aa4 100644
#else
errno = ENOTSUP;
return -1;
@@ -84,6 +117,9 @@ int xattr_remove( const char *path, const char *name )
@@ -85,6 +119,9 @@ int xattr_remove( const char *path, const char *name )
return removexattr( path, name, 0 );
#elif defined(HAVE_SYS_XATTR_H) || defined(HAVE_ATTR_XATTR_H)
return removexattr( path, name );
@ -107,7 +108,7 @@ index 3badafc..d759aa4 100644
#else
errno = ENOTSUP;
return -1;
@@ -96,6 +132,10 @@ int xattr_set( const char *path, const char *name, void *value, size_t size )
@@ -97,6 +134,10 @@ int xattr_set( const char *path, const char *name, void *value, size_t size )
return setxattr( path, name, value, size, 0, 0 );
#elif defined(HAVE_SYS_XATTR_H) || defined(HAVE_ATTR_XATTR_H)
return setxattr( path, name, value, size, 0 );
@ -119,5 +120,5 @@ index 3badafc..d759aa4 100644
errno = ENOTSUP;
return -1;
--
1.7.9.5
2.1.2