diff options
| author | Paul Eggert | 2019-04-24 17:41:05 -0700 |
|---|---|---|
| committer | Paul Eggert | 2019-04-24 17:42:09 -0700 |
| commit | 2bf957394cdcb93396966d3289f5e200886cb424 (patch) | |
| tree | 99f1f3af3c339638cfd622ec7fd1949ff1c3e3e0 | |
| parent | 445713f55561df9a9755ce13eec0c0324b1754c2 (diff) | |
| download | emacs-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-x | admin/merge-gnulib | 2 | ||||
| -rw-r--r-- | lib-src/emacsclient.c | 2 | ||||
| -rw-r--r-- | lib/gnulib.mk.in | 5 | ||||
| -rw-r--r-- | m4/gnulib-comp.m4 | 38 |
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 |
| 1493 | ifeq (,$(OMIT_GNULIB_MODULE_euidaccess)) | 1492 | ifeq (,$(OMIT_GNULIB_MODULE_euidaccess)) |
| 1494 | 1493 | ||
| 1494 | ifneq (,$(gl_GNULIB_ENABLED_euidaccess)) | ||
| 1495 | 1495 | ||
| 1496 | endif | ||
| 1496 | EXTRA_DIST += euidaccess.c | 1497 | EXTRA_DIST += euidaccess.c |
| 1497 | 1498 | ||
| 1498 | EXTRA_libgnu_a_SOURCES += euidaccess.c | 1499 | EXTRA_libgnu_a_SOURCES += euidaccess.c |
| @@ -2148,7 +2149,9 @@ endif | |||
| 2148 | ## begin gnulib module root-uid | 2149 | ## begin gnulib module root-uid |
| 2149 | ifeq (,$(OMIT_GNULIB_MODULE_root-uid)) | 2150 | ifeq (,$(OMIT_GNULIB_MODULE_root-uid)) |
| 2150 | 2151 | ||
| 2152 | ifneq (,$(gl_GNULIB_ENABLED_6099e9737f757db36c47fa9d9f02e88c)) | ||
| 2151 | 2153 | ||
| 2154 | endif | ||
| 2152 | EXTRA_DIST += root-uid.h | 2155 | EXTRA_DIST += root-uid.h |
| 2153 | 2156 | ||
| 2154 | endif | 2157 | endif |
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 |