aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Eggert2019-04-24 17:41:05 -0700
committerPaul Eggert2019-04-24 17:42:09 -0700
commit2bf957394cdcb93396966d3289f5e200886cb424 (patch)
tree99f1f3af3c339638cfd622ec7fd1949ff1c3e3e0
parent445713f55561df9a9755ce13eec0c0324b1754c2 (diff)
downloademacs-2bf957394cdcb93396966d3289f5e200886cb424.tar.gz
emacs-2bf957394cdcb93396966d3289f5e200886cb424.zip
Improve port to platforms lacking euidaccess (Bug#35406)
* lib-src/emacsclient.c (set_local_socket): Use faccessat with AT_EACCESS instead of using euidaccess. * admin/merge-gnulib, lib/gnulib.mk.in, m4/gnulib-comp.m4: Revert previous change.
-rwxr-xr-xadmin/merge-gnulib2
-rw-r--r--lib-src/emacsclient.c2
-rw-r--r--lib/gnulib.mk.in5
-rw-r--r--m4/gnulib-comp.m438
4 files changed, 35 insertions, 12 deletions
diff --git a/admin/merge-gnulib b/admin/merge-gnulib
index cd37582cc08..4a69310d83c 100755
--- a/admin/merge-gnulib
+++ b/admin/merge-gnulib
@@ -31,7 +31,7 @@ GNULIB_MODULES='
31 count-leading-zeros count-one-bits count-trailing-zeros 31 count-leading-zeros count-one-bits count-trailing-zeros
32 crypto/md5-buffer crypto/sha1-buffer crypto/sha256-buffer crypto/sha512-buffer 32 crypto/md5-buffer crypto/sha1-buffer crypto/sha256-buffer crypto/sha512-buffer
33 d-type diffseq dosname dtoastr dtotimespec dup2 33 d-type diffseq dosname dtoastr dtotimespec dup2
34 environ euidaccess execinfo explicit_bzero faccessat 34 environ execinfo explicit_bzero faccessat
35 fcntl fcntl-h fdopendir 35 fcntl fcntl-h fdopendir
36 filemode filevercmp flexmember fpieee fstatat fsusage fsync 36 filemode filevercmp flexmember fpieee fstatat fsusage fsync
37 getloadavg getopt-gnu gettime gettimeofday gitlog-to-changelog 37 getloadavg getopt-gnu gettime gettimeofday gitlog-to-changelog
diff --git a/lib-src/emacsclient.c b/lib-src/emacsclient.c
index 5871a18ce69..fd56007b156 100644
--- a/lib-src/emacsclient.c
+++ b/lib-src/emacsclient.c
@@ -1472,7 +1472,7 @@ set_local_socket (char const *server_name)
1472 int sockdirnamelen = snprintf (sockdirname, sizeof sockdirname, 1472 int sockdirnamelen = snprintf (sockdirname, sizeof sockdirname,
1473 "/run/user/%"PRIuMAX, id); 1473 "/run/user/%"PRIuMAX, id);
1474 if (0 <= sockdirnamelen && sockdirnamelen < sizeof sockdirname 1474 if (0 <= sockdirnamelen && sockdirnamelen < sizeof sockdirname
1475 && euidaccess (sockdirname, X_OK) == 0) 1475 && faccessat (AT_FDCWD, sockdirname, X_OK, AT_EACCESS) == 0)
1476 message 1476 message
1477 (true, 1477 (true,
1478 ("%s: Should XDG_RUNTIME_DIR='%s' be in the environment?\n" 1478 ("%s: Should XDG_RUNTIME_DIR='%s' be in the environment?\n"
diff --git a/lib/gnulib.mk.in b/lib/gnulib.mk.in
index 165405f2499..ade4ff8ebdb 100644
--- a/lib/gnulib.mk.in
+++ b/lib/gnulib.mk.in
@@ -88,7 +88,6 @@
88# dtotimespec \ 88# dtotimespec \
89# dup2 \ 89# dup2 \
90# environ \ 90# environ \
91# euidaccess \
92# execinfo \ 91# execinfo \
93# explicit_bzero \ 92# explicit_bzero \
94# faccessat \ 93# faccessat \
@@ -1492,7 +1491,9 @@ endif
1492## begin gnulib module euidaccess 1491## begin gnulib module euidaccess
1493ifeq (,$(OMIT_GNULIB_MODULE_euidaccess)) 1492ifeq (,$(OMIT_GNULIB_MODULE_euidaccess))
1494 1493
1494ifneq (,$(gl_GNULIB_ENABLED_euidaccess))
1495 1495
1496endif
1496EXTRA_DIST += euidaccess.c 1497EXTRA_DIST += euidaccess.c
1497 1498
1498EXTRA_libgnu_a_SOURCES += euidaccess.c 1499EXTRA_libgnu_a_SOURCES += euidaccess.c
@@ -2148,7 +2149,9 @@ endif
2148## begin gnulib module root-uid 2149## begin gnulib module root-uid
2149ifeq (,$(OMIT_GNULIB_MODULE_root-uid)) 2150ifeq (,$(OMIT_GNULIB_MODULE_root-uid))
2150 2151
2152ifneq (,$(gl_GNULIB_ENABLED_6099e9737f757db36c47fa9d9f02e88c))
2151 2153
2154endif
2152EXTRA_DIST += root-uid.h 2155EXTRA_DIST += root-uid.h
2153 2156
2154endif 2157endif
diff --git a/m4/gnulib-comp.m4 b/m4/gnulib-comp.m4
index d6466a032fc..f648b7a495a 100644
--- a/m4/gnulib-comp.m4
+++ b/m4/gnulib-comp.m4
@@ -220,12 +220,6 @@ AC_DEFUN([gl_INIT],
220 gl_ENVIRON 220 gl_ENVIRON
221 gl_UNISTD_MODULE_INDICATOR([environ]) 221 gl_UNISTD_MODULE_INDICATOR([environ])
222 gl_HEADER_ERRNO_H 222 gl_HEADER_ERRNO_H
223 gl_FUNC_EUIDACCESS
224 if test $HAVE_EUIDACCESS = 0; then
225 AC_LIBOBJ([euidaccess])
226 gl_PREREQ_EUIDACCESS
227 fi
228 gl_UNISTD_MODULE_INDICATOR([euidaccess])
229 gl_EXECINFO_H 223 gl_EXECINFO_H
230 gl_FUNC_EXPLICIT_BZERO 224 gl_FUNC_EXPLICIT_BZERO
231 if test $HAVE_EXPLICIT_BZERO = 0; then 225 if test $HAVE_EXPLICIT_BZERO = 0; then
@@ -441,6 +435,7 @@ AC_DEFUN([gl_INIT],
441 gl_gnulib_enabled_260941c0e5dc67ec9e87d1fb321c300b=false 435 gl_gnulib_enabled_260941c0e5dc67ec9e87d1fb321c300b=false
442 gl_gnulib_enabled_cloexec=false 436 gl_gnulib_enabled_cloexec=false
443 gl_gnulib_enabled_dirfd=false 437 gl_gnulib_enabled_dirfd=false
438 gl_gnulib_enabled_euidaccess=false
444 gl_gnulib_enabled_getdtablesize=false 439 gl_gnulib_enabled_getdtablesize=false
445 gl_gnulib_enabled_getgroups=false 440 gl_gnulib_enabled_getgroups=false
446 gl_gnulib_enabled_be453cec5eecf5731a274f2de7f2db36=false 441 gl_gnulib_enabled_be453cec5eecf5731a274f2de7f2db36=false
@@ -450,6 +445,7 @@ AC_DEFUN([gl_INIT],
450 gl_gnulib_enabled_5264294aa0a5557541b53c8c741f7f31=false 445 gl_gnulib_enabled_5264294aa0a5557541b53c8c741f7f31=false
451 gl_gnulib_enabled_open=false 446 gl_gnulib_enabled_open=false
452 gl_gnulib_enabled_03e0aaad4cb89ca757653bd367a6ccb7=false 447 gl_gnulib_enabled_03e0aaad4cb89ca757653bd367a6ccb7=false
448 gl_gnulib_enabled_6099e9737f757db36c47fa9d9f02e88c=false
453 gl_gnulib_enabled_strtoll=false 449 gl_gnulib_enabled_strtoll=false
454 gl_gnulib_enabled_682e609604ccaac6be382e4ee3a4eaec=false 450 gl_gnulib_enabled_682e609604ccaac6be382e4ee3a4eaec=false
455 func_gl_gnulib_m4code_260941c0e5dc67ec9e87d1fb321c300b () 451 func_gl_gnulib_m4code_260941c0e5dc67ec9e87d1fb321c300b ()
@@ -480,6 +476,22 @@ AC_DEFUN([gl_INIT],
480 gl_gnulib_enabled_dirfd=true 476 gl_gnulib_enabled_dirfd=true
481 fi 477 fi
482 } 478 }
479 func_gl_gnulib_m4code_euidaccess ()
480 {
481 if ! $gl_gnulib_enabled_euidaccess; then
482 gl_FUNC_EUIDACCESS
483 if test $HAVE_EUIDACCESS = 0; then
484 AC_LIBOBJ([euidaccess])
485 gl_PREREQ_EUIDACCESS
486 fi
487 gl_UNISTD_MODULE_INDICATOR([euidaccess])
488 gl_gnulib_enabled_euidaccess=true
489 if test $HAVE_EUIDACCESS = 0; then
490 func_gl_gnulib_m4code_a9786850e999ae65a836a6041e8e5ed1
491 fi
492 func_gl_gnulib_m4code_6099e9737f757db36c47fa9d9f02e88c
493 fi
494 }
483 func_gl_gnulib_m4code_getdtablesize () 495 func_gl_gnulib_m4code_getdtablesize ()
484 { 496 {
485 if ! $gl_gnulib_enabled_getdtablesize; then 497 if ! $gl_gnulib_enabled_getdtablesize; then
@@ -576,6 +588,12 @@ AC_DEFUN([gl_INIT],
576 gl_gnulib_enabled_03e0aaad4cb89ca757653bd367a6ccb7=true 588 gl_gnulib_enabled_03e0aaad4cb89ca757653bd367a6ccb7=true
577 fi 589 fi
578 } 590 }
591 func_gl_gnulib_m4code_6099e9737f757db36c47fa9d9f02e88c ()
592 {
593 if ! $gl_gnulib_enabled_6099e9737f757db36c47fa9d9f02e88c; then
594 gl_gnulib_enabled_6099e9737f757db36c47fa9d9f02e88c=true
595 fi
596 }
579 func_gl_gnulib_m4code_strtoll () 597 func_gl_gnulib_m4code_strtoll ()
580 { 598 {
581 if ! $gl_gnulib_enabled_strtoll; then 599 if ! $gl_gnulib_enabled_strtoll; then
@@ -594,13 +612,13 @@ AC_DEFUN([gl_INIT],
594 gl_gnulib_enabled_682e609604ccaac6be382e4ee3a4eaec=true 612 gl_gnulib_enabled_682e609604ccaac6be382e4ee3a4eaec=true
595 fi 613 fi
596 } 614 }
597 if test $HAVE_EUIDACCESS = 0; then
598 func_gl_gnulib_m4code_a9786850e999ae65a836a6041e8e5ed1
599 fi
600 if test $HAVE_FACCESSAT = 0 || test $REPLACE_FACCESSAT = 1; then 615 if test $HAVE_FACCESSAT = 0 || test $REPLACE_FACCESSAT = 1; then
601 func_gl_gnulib_m4code_260941c0e5dc67ec9e87d1fb321c300b 616 func_gl_gnulib_m4code_260941c0e5dc67ec9e87d1fb321c300b
602 fi 617 fi
603 if test $HAVE_FACCESSAT = 0 || test $REPLACE_FACCESSAT = 1; then 618 if test $HAVE_FACCESSAT = 0 || test $REPLACE_FACCESSAT = 1; then
619 func_gl_gnulib_m4code_euidaccess
620 fi
621 if test $HAVE_FACCESSAT = 0 || test $REPLACE_FACCESSAT = 1; then
604 func_gl_gnulib_m4code_03e0aaad4cb89ca757653bd367a6ccb7 622 func_gl_gnulib_m4code_03e0aaad4cb89ca757653bd367a6ccb7
605 fi 623 fi
606 if test $HAVE_FCNTL = 0 || test $REPLACE_FCNTL = 1; then 624 if test $HAVE_FCNTL = 0 || test $REPLACE_FCNTL = 1; then
@@ -646,6 +664,7 @@ AC_DEFUN([gl_INIT],
646 AM_CONDITIONAL([gl_GNULIB_ENABLED_260941c0e5dc67ec9e87d1fb321c300b], [$gl_gnulib_enabled_260941c0e5dc67ec9e87d1fb321c300b]) 664 AM_CONDITIONAL([gl_GNULIB_ENABLED_260941c0e5dc67ec9e87d1fb321c300b], [$gl_gnulib_enabled_260941c0e5dc67ec9e87d1fb321c300b])
647 AM_CONDITIONAL([gl_GNULIB_ENABLED_cloexec], [$gl_gnulib_enabled_cloexec]) 665 AM_CONDITIONAL([gl_GNULIB_ENABLED_cloexec], [$gl_gnulib_enabled_cloexec])
648 AM_CONDITIONAL([gl_GNULIB_ENABLED_dirfd], [$gl_gnulib_enabled_dirfd]) 666 AM_CONDITIONAL([gl_GNULIB_ENABLED_dirfd], [$gl_gnulib_enabled_dirfd])
667 AM_CONDITIONAL([gl_GNULIB_ENABLED_euidaccess], [$gl_gnulib_enabled_euidaccess])
649 AM_CONDITIONAL([gl_GNULIB_ENABLED_getdtablesize], [$gl_gnulib_enabled_getdtablesize]) 668 AM_CONDITIONAL([gl_GNULIB_ENABLED_getdtablesize], [$gl_gnulib_enabled_getdtablesize])
650 AM_CONDITIONAL([gl_GNULIB_ENABLED_getgroups], [$gl_gnulib_enabled_getgroups]) 669 AM_CONDITIONAL([gl_GNULIB_ENABLED_getgroups], [$gl_gnulib_enabled_getgroups])
651 AM_CONDITIONAL([gl_GNULIB_ENABLED_be453cec5eecf5731a274f2de7f2db36], [$gl_gnulib_enabled_be453cec5eecf5731a274f2de7f2db36]) 670 AM_CONDITIONAL([gl_GNULIB_ENABLED_be453cec5eecf5731a274f2de7f2db36], [$gl_gnulib_enabled_be453cec5eecf5731a274f2de7f2db36])
@@ -655,6 +674,7 @@ AC_DEFUN([gl_INIT],
655 AM_CONDITIONAL([gl_GNULIB_ENABLED_5264294aa0a5557541b53c8c741f7f31], [$gl_gnulib_enabled_5264294aa0a5557541b53c8c741f7f31]) 674 AM_CONDITIONAL([gl_GNULIB_ENABLED_5264294aa0a5557541b53c8c741f7f31], [$gl_gnulib_enabled_5264294aa0a5557541b53c8c741f7f31])
656 AM_CONDITIONAL([gl_GNULIB_ENABLED_open], [$gl_gnulib_enabled_open]) 675 AM_CONDITIONAL([gl_GNULIB_ENABLED_open], [$gl_gnulib_enabled_open])
657 AM_CONDITIONAL([gl_GNULIB_ENABLED_03e0aaad4cb89ca757653bd367a6ccb7], [$gl_gnulib_enabled_03e0aaad4cb89ca757653bd367a6ccb7]) 676 AM_CONDITIONAL([gl_GNULIB_ENABLED_03e0aaad4cb89ca757653bd367a6ccb7], [$gl_gnulib_enabled_03e0aaad4cb89ca757653bd367a6ccb7])
677 AM_CONDITIONAL([gl_GNULIB_ENABLED_6099e9737f757db36c47fa9d9f02e88c], [$gl_gnulib_enabled_6099e9737f757db36c47fa9d9f02e88c])
658 AM_CONDITIONAL([gl_GNULIB_ENABLED_strtoll], [$gl_gnulib_enabled_strtoll]) 678 AM_CONDITIONAL([gl_GNULIB_ENABLED_strtoll], [$gl_gnulib_enabled_strtoll])
659 AM_CONDITIONAL([gl_GNULIB_ENABLED_682e609604ccaac6be382e4ee3a4eaec], [$gl_gnulib_enabled_682e609604ccaac6be382e4ee3a4eaec]) 679 AM_CONDITIONAL([gl_GNULIB_ENABLED_682e609604ccaac6be382e4ee3a4eaec], [$gl_gnulib_enabled_682e609604ccaac6be382e4ee3a4eaec])
660 # End of code from modules 680 # End of code from modules