From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 35520 invoked by alias); 18 Sep 2018 21:21:45 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 35506 invoked by uid 89); 18 Sep 2018 21:21:44 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-25.8 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,SPF_PASS autolearn=ham version=3.3.2 spammy=Carry, system's, worst, musl X-HELO: sesbmg23.ericsson.net Received: from sesbmg23.ericsson.net (HELO sesbmg23.ericsson.net) (193.180.251.37) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 18 Sep 2018 21:21:42 +0000 DKIM-Signature: v=1; a=rsa-sha256; d=ericsson.com; s=mailgw201801; c=relaxed/simple; q=dns/txt; i=@ericsson.com; t=1537305699; h=From:Sender:Reply-To:Subject:Date:Message-ID:To:CC:MIME-Version:Content-Type: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=1JPqQaYzM+9EEqQMdezFJlLbaaIAYRS1WD0vGLuKcGg=; b=gfIMCNTdRvoZQQimqFw2GHBjqnLXm8hvcqxVbhAdyBXi6FQA9g4eZndG03DqV2gb wAfGJh59uAX2+jBbfb8sFfsDs23HSxuIxawLmdKytb4DOLN/3Pu91+LuEQH8dY5c +CiF/f6FfxNVhaTesXbXYsENrwl3qoQJFBJ+NkU/Sfk=; Received: from ESESSMB502.ericsson.se (Unknown_Domain [153.88.183.120]) by sesbmg23.ericsson.net (Symantec Mail Security) with SMTP id F8.2D.05037.36C61AB5; Tue, 18 Sep 2018 23:21:39 +0200 (CEST) Received: from ESESSMB501.ericsson.se (153.88.183.162) by ESESSMB502.ericsson.se (153.88.183.163) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1466.3; Tue, 18 Sep 2018 23:21:38 +0200 Received: from NAM03-DM3-obe.outbound.protection.outlook.com (153.88.183.157) by ESESSMB501.ericsson.se (153.88.183.162) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1466.3 via Frontend Transport; Tue, 18 Sep 2018 23:21:38 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericsson.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Z05nUyL7SBpo8F9t74Xtbs4ZKds+ZaNagE4aZuQUzh0=; b=VSnFkoOInM502j5M9dtflSJ8uWSylVgUO9VjrMW0M7NQAK90Ll8ziVdrod71098b/ZGzQWkmtXDnPEkiuMT/GwHGBqBKg3hTN9n/r79NdHmRSD+iQ8SH1sRRjsDp5ssFb95usePziHs1hw/D1mmjuBxj9cDNjaEKpDR24eLHWCQ= Received: from BYAPR15MB2390.namprd15.prod.outlook.com (52.135.198.30) by BYAPR15MB2261.namprd15.prod.outlook.com (52.135.197.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1143.15; Tue, 18 Sep 2018 21:21:36 +0000 Received: from BYAPR15MB2390.namprd15.prod.outlook.com ([fe80::6d9c:234d:1f2f:cecd]) by BYAPR15MB2390.namprd15.prod.outlook.com ([fe80::6d9c:234d:1f2f:cecd%4]) with mapi id 15.20.1143.017; Tue, 18 Sep 2018 21:21:36 +0000 From: Simon Marchi To: "gdb-patches@sourceware.org" CC: Sergio Durigan Junior , Simon Marchi Subject: [PATCH] Carry the gnulib getcwd backport as a patch Date: Tue, 18 Sep 2018 21:21:00 -0000 Message-ID: <20180918212124.5851-1-simon.marchi@ericsson.com> authentication-results: spf=none (sender IP is ) smtp.mailfrom=simon.marchi@ericsson.com; received-spf: None (protection.outlook.com: ericsson.com does not designate permitted sender hosts) Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Return-Path: simon.marchi@ericsson.com X-IsSubscribed: yes X-SW-Source: 2018-09/txt/msg00656.txt.bz2 Commit e2fc52e7457 ("Fix PR gdb/23558: Use system's 'getcwd' when cross-compilin= g GDB") backported some changes from a future gnulib version to our import. However, this means that every time someone wants to change our gnulib import (e.g. add a module), they must make sure not to include that backported change. It also means that someone running the update-gnulib.sh script without changes will get some diffs and wonder why. Instead, I suggest we carry that backport as a patch applied by the update-gnulib.sh script after running the import tool. It will make it clear what backport or local modification we have and should make running update-gnulib.sh give a reproducible result. There is a hunk in the configure file in this patch, this is because the commit that backported the getcwd bits didn't include the re-generated configure. Note: you'll need this patch as well to get deterministic results: Generate aclocal-m4-deps.mk more deterministically and portably. https://sourceware.org/ml/gdb-patches/2018-09/msg00643.html gdb/ChangeLog: * patches/0001-Fix-PR-gdb-23558-Use-system-s-getcwd-when-cross-comp.patch: New file. * update-gnulib.sh: Apply patch. * configure: Re-generate. --- gdb/gnulib/configure | 18 ++++- ...-Use-system-s-getcwd-when-cross-comp.patch | 69 +++++++++++++++++++ gdb/gnulib/update-gnulib.sh | 12 ++++ 3 files changed, 96 insertions(+), 3 deletions(-) create mode 100644 gdb/gnulib/patches/0001-Fix-PR-gdb-23558-Use-system-s-g= etcwd-when-cross-comp.patch diff --git a/gdb/gnulib/configure b/gdb/gnulib/configure index 8c3027635f5..092db16ba28 100644 --- a/gdb/gnulib/configure +++ b/gdb/gnulib/configure @@ -16921,10 +16921,22 @@ else # Arrange for deletion of the temporary directory this test creates. ac_clean_files=3D"$ac_clean_files confdir3" if test "$cross_compiling" =3D yes; then : - case "$host_os" in - aix*) gl_cv_func_getcwd_path_max=3D'no, it has the AIX bug';; - *) gl_cv_func_getcwd_path_max=3Dno;; + # Cross-compilation guesses: + case "$host_os" in + aix*) # On AIX, it has the AIX bug. + gl_cv_func_getcwd_path_max=3D'no, it has the AIX bug' ;; + gnu*) # On Hurd, it is 'yes'. + gl_cv_func_getcwd_path_max=3Dyes ;; + 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=3D'no, but it is partly working' ;; + *) # If we don't know, assume the worst. + gl_cv_func_getcwd_path_max=3Dno ;; esac + else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ diff --git a/gdb/gnulib/patches/0001-Fix-PR-gdb-23558-Use-system-s-getcwd-w= hen-cross-comp.patch b/gdb/gnulib/patches/0001-Fix-PR-gdb-23558-Use-system-= s-getcwd-when-cross-comp.patch new file mode 100644 index 00000000000..1d8cdf6b901 --- /dev/null +++ b/gdb/gnulib/patches/0001-Fix-PR-gdb-23558-Use-system-s-getcwd-when-cro= ss-comp.patch @@ -0,0 +1,69 @@ +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-compil= ing + GDB + +This is a backport of a gnulib fix for the following bug: + + https://sourceware.org/bugzilla/show_bug.cgi?id=3D23558 + +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/m= 4/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=3D'yes, but with shorter paths';; + *) gl_cv_func_getcwd_path_max=3Dno;; + esac], +- [case "$host_os" in +- aix*) gl_cv_func_getcwd_path_max=3D'no, it has the AIX bug';; +- *) gl_cv_func_getcwd_path_max=3Dno;; +- esac]) ++ [# Cross-compilation guesses: ++ case "$host_os" in ++ aix*) # On AIX, it has the AIX bug. ++ gl_cv_func_getcwd_path_max=3D'no, it has the AIX bug' ;; ++ gnu*) # On Hurd, it is 'yes'. ++ gl_cv_func_getcwd_path_max=3Dyes ;; ++ 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=3D'no, but it is partly working' ;; ++ *) # If we don't know, assume the worst. ++ gl_cv_func_getcwd_path_max=3Dno ;; ++ esac ++ ]) + ]) + ]) +--=20 +2.19.0 + diff --git a/gdb/gnulib/update-gnulib.sh b/gdb/gnulib/update-gnulib.sh index 3077424622b..dff1254830b 100755 --- a/gdb/gnulib/update-gnulib.sh +++ b/gdb/gnulib/update-gnulib.sh @@ -157,6 +157,18 @@ if [ $? -ne 0 ]; then exit 1 fi =20 +# Apply our local patches. +apply_patches () +{ + patch -p3 -f -i "$1" + if [ $? -ne 0 ]; then + echo "Failed to apply some patches. Aborting." + exit 1 + fi +} + +apply_patches "patches/0001-Fix-PR-gdb-23558-Use-system-s-getcwd-when-cros= s-comp.patch" + # Regenerate all necessary files... aclocal -Iimport/m4 && autoconf && --=20 2.19.0