summaryrefslogtreecommitdiffhomepage
path: root/auto
diff options
context:
space:
mode:
authorRoman Arutyunyan <arut@nginx.com>2017-12-18 21:09:39 +0300
committerRoman Arutyunyan <arut@nginx.com>2017-12-18 21:09:39 +0300
commit0e92c213f51bae95605c19dfee843902e7c8a0ad (patch)
tree229a9a69caa876b5f7517df2cf0a4882efdddce0 /auto
parent752f66bf7d70fae2bf05fbf5941ff4be52b2b9a5 (diff)
downloadnginx-0e92c213f51bae95605c19dfee843902e7c8a0ad.tar.gz
nginx-0e92c213f51bae95605c19dfee843902e7c8a0ad.tar.bz2
Improved the capabilities feature detection.
Previously included file sys/capability.h mentioned in capset(2) man page, belongs to the libcap-dev package, which may not be installed on some Linux systems when compiling nginx. This prevented the capabilities feature from being detected and compiled on that systems. Now linux/capability.h system header is included instead. Since capset() declaration is located in sys/capability.h, now capset() syscall is defined explicitly in code using the SYS_capset constant, similarly to other Linux-specific features in nginx.
Diffstat (limited to 'auto')
-rw-r--r--auto/os/linux5
1 files changed, 3 insertions, 2 deletions
diff --git a/auto/os/linux b/auto/os/linux
index e4aa0e549..135280f99 100644
--- a/auto/os/linux
+++ b/auto/os/linux
@@ -174,7 +174,8 @@ ngx_feature_test="if (prctl(PR_SET_KEEPCAPS, 1, 0, 0, 0) == -1) return 1"
ngx_feature="capabilities"
ngx_feature_name="NGX_HAVE_CAPABILITIES"
ngx_feature_run=no
-ngx_feature_incs="#include <sys/capability.h>"
+ngx_feature_incs="#include <linux/capability.h>
+ #include <sys/syscall.h>"
ngx_feature_path=
ngx_feature_libs=
ngx_feature_test="struct __user_cap_data_struct data;
@@ -184,7 +185,7 @@ ngx_feature_test="struct __user_cap_data_struct data;
data.effective = CAP_TO_MASK(CAP_NET_RAW);
data.permitted = 0;
- (void) capset(&header, &data)"
+ (void) SYS_capset"
. auto/feature