From a7447215cdc492a077732420a3f0db6d48b34d51 Mon Sep 17 00:00:00 2001 From: Sergio Durigan Junior Date: Mon, 10 Sep 2018 12:52:04 -0400 Subject: [PATCH] Fix PR gdb/23558: Use system's 'getcwd' when cross-compiling GDB This is a backport of a gnulib fix for the following bug: https://sourceware.org/bugzilla/show_bug.cgi?id=23558 The problem reported there is about the replacement of 'getcwd' when cross-compiling GDB. With our current gnulib copy, the mechanism for deciding whether to use the system's 'getcwd' or gnulib's version is too simplistic and pessimistic, so when cross-compiling we always end up using gnulib's version, which has a limitation: it cannot handle the situation when the parent directory doesn't have read permissions. The solution is to backport the following gnulib commit: commit a96d2e67052c879b1bcc5bc461722beac75fc372 Author: Bruno Haible Date: Thu Aug 23 21:13:19 2018 +0200 getcwd: Add cross-compilation guesses. gdb/ChangeLog: 2018-09-10 Sergio Durigan Junior PR gdb/23555 PR gdb/23558 * gnulib/import/m4/getcwd-path-max.m4: Add cross-compilation guesses. --- gdb/gnulib/import/m4/getcwd-path-max.m4 | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/gdb/gnulib/import/m4/getcwd-path-max.m4 b/gdb/gnulib/import/m4/getcwd-path-max.m4 index 2531ccff65c..90bbc77dea1 100644 --- a/gdb/gnulib/import/m4/getcwd-path-max.m4 +++ b/gdb/gnulib/import/m4/getcwd-path-max.m4 @@ -209,9 +209,21 @@ main () 32) gl_cv_func_getcwd_path_max='yes, but with shorter paths';; *) gl_cv_func_getcwd_path_max=no;; esac], - [case "$host_os" in - aix*) gl_cv_func_getcwd_path_max='no, it has the AIX bug';; - *) gl_cv_func_getcwd_path_max=no;; - esac]) + [# Cross-compilation guesses: + case "$host_os" in + aix*) # On AIX, it has the AIX bug. + gl_cv_func_getcwd_path_max='no, it has the AIX bug' ;; + gnu*) # On Hurd, it is 'yes'. + gl_cv_func_getcwd_path_max=yes ;; + linux* | kfreebsd*) + # On older Linux+glibc it's 'no, but it is partly working', + # on newer Linux+glibc it's 'yes'. + # On Linux+musl libc, it's 'no, but it is partly working'. + # On kFreeBSD+glibc, it's 'no, but it is partly working'. + gl_cv_func_getcwd_path_max='no, but it is partly working' ;; + *) # If we don't know, assume the worst. + gl_cv_func_getcwd_path_max=no ;; + esac + ]) ]) ]) -- 2.19.0