From unknown Fri Jun 13 10:12:11 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#31976] [PATCH] gnu: Add gcc@8. Resent-From: Marius Bakke Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Tue, 26 Jun 2018 11:25:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 31976 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 31976@debbugs.gnu.org Cc: Marius Bakke X-Debbugs-Original-To: guix-patches@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.15300122587946 (code B ref -1); Tue, 26 Jun 2018 11:25:01 +0000 Received: (at submit) by debbugs.gnu.org; 26 Jun 2018 11:24:18 +0000 Received: from localhost ([127.0.0.1]:35682 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fXm54-000246-5d for submit@debbugs.gnu.org; Tue, 26 Jun 2018 07:24:18 -0400 Received: from eggs.gnu.org ([208.118.235.92]:41301) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fXm50-00023s-VZ for submit@debbugs.gnu.org; Tue, 26 Jun 2018 07:24:17 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fXm4u-0000br-I8 for submit@debbugs.gnu.org; Tue, 26 Jun 2018 07:24:09 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,FREEMAIL_FROM, T_DKIM_INVALID autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:47769) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fXm4u-0000bk-DO for submit@debbugs.gnu.org; Tue, 26 Jun 2018 07:24:08 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60503) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fXm4s-0005Hq-Mc for guix-patches@gnu.org; Tue, 26 Jun 2018 07:24:08 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fXm4o-0000Yv-Id for guix-patches@gnu.org; Tue, 26 Jun 2018 07:24:06 -0400 Received: from out2-smtp.messagingengine.com ([66.111.4.26]:50701) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fXm4o-0000Y7-AH for guix-patches@gnu.org; Tue, 26 Jun 2018 07:24:02 -0400 Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.nyi.internal (Postfix) with ESMTP id A1ED821AED; Tue, 26 Jun 2018 07:24:01 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute5.internal (MEProxy); Tue, 26 Jun 2018 07:24:01 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fastmail.com; h= cc:content-transfer-encoding:content-type:date:from:message-id :mime-version:subject:to:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; bh=K24X7qQNvI4SJhbZFhOsseSf90PYlfrZZ+DYgCXy2yM=; b=YrhWKOwh 5kpS08o7ypw1ShMFiAkJnqmzBNZwqghkbCxwOQr6mP17qP/2a4KsuOXHP/Rw5Udg hQhx3/rcBsXzRUk0G6qe+A8nN6AUic8NcozmNi/4Oum4nb9T6sjdvPKBIsEsT8Zz zqecIevZ7FNC9TJtJp3Rx2E1EozrhZhG56Te3gURAGmh98oKwzzvf+o/rwSWBcqp qe12L02Qmls7VZ2rx0Txd/BFBALqRhv8q49POm1ncKS6NIhFMZYa4spDas8uSfgG zqQi3DJDaKHksVmD3jeUE0Ns/hT0/lUEt46Xp1eiEi4CSU/vvM8KSXWq/JZlgOBI hqtdWqxKPCgSUA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:message-id:mime-version:subject:to:x-me-sender :x-me-sender:x-sasl-enc; s=fm3; bh=K24X7qQNvI4SJhbZFhOsseSf90PYl frZZ+DYgCXy2yM=; b=EEnC6IpxWfaV3gwifcodRsdO3Tr14NIRRzyekhx0vcLKr fxBjYNJT3nV9VaMVPFV1HbicqAIgk7kNjV1AaK67kArh8oYtd9soWCBskeEmhzv5 67L+YNSCG4/QDTeL5nK2QagJioDmNDo6sTwpXt9wjTLdvDWisq7ZDGO7w+cNuSC4 hPuolejikLikpqwMflh9NJn/BglzBXx44MO6h5EKlOrBrY34yKFk72xFR9hSPwCm LPZth8pIgWDYgG5Sq+tIStGhINCd7rLcCuvmh9oRlP/jNSEEblB2cvfB7YKX/DGz vcwFntjE8mnv+U5ouG5HFfNHgoWBdqQKUl9u6w5Kw== X-ME-Proxy: X-ME-Sender: Received: from localhost (cm-84.214.174.185.getinternet.no [84.214.174.185]) by mail.messagingengine.com (Postfix) with ESMTPA id EE5C710292; Tue, 26 Jun 2018 07:24:00 -0400 (EDT) From: Marius Bakke Date: Tue, 26 Jun 2018 13:23:51 +0200 Message-Id: <20180626112351.10215-1-mbakke@fastmail.com> X-Mailer: git-send-email 2.18.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.4 (----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.4 (-----) * gnu/packages/patches/gcc-8-strmov-store-file-names.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. * gnu/packages/gcc.scm (gcc-8): New public variable. --- gnu/local.mk | 1 + gnu/packages/gcc.scm | 14 +++ .../gcc-8-strmov-store-file-names.patch | 110 ++++++++++++++++++ 3 files changed, 125 insertions(+) create mode 100644 gnu/packages/patches/gcc-8-strmov-store-file-names.patch diff --git a/gnu/local.mk b/gnu/local.mk index 9d8947d55..516576d7f 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -705,6 +705,7 @@ dist_patch_DATA = \ %D%/packages/patches/gcc-6-cross-environment-variables.patch \ %D%/packages/patches/gcc-6-source-date-epoch-1.patch \ %D%/packages/patches/gcc-6-source-date-epoch-2.patch \ + %D%/packages/patches/gcc-8-strmov-store-file-names.patch \ %D%/packages/patches/gcr-disable-failing-tests.patch \ %D%/packages/patches/gcr-fix-collection-tests-to-work-with-gpg-21.patch \ %D%/packages/patches/gd-CVE-2018-5711.patch \ diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index 5012d9a91..78ccd4738 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -515,6 +515,20 @@ Go. It also includes runtime support libraries for these languages.") for several languages, including C, C++, Objective-C, Fortran, Ada, and Go. It also includes runtime support libraries for these languages."))) +(define-public gcc-8 + (package + (inherit gcc-7) + (version "8.1.0") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/gcc/gcc-" + version "/gcc-" version ".tar.xz")) + (sha256 + (base32 + "0lxil8x0jjx7zbf90cy1rli650akaa6hpk8wk8s62vk2jbwnc60x")) + (patches (search-patches "gcc-8-strmov-store-file-names.patch" + "gcc-5.0-libvtv-runpath.patch")))))) + ;; Note: When changing the default gcc version, update ;; the gcc-toolchain-* definitions and the gfortran definition ;; accordingly. diff --git a/gnu/packages/patches/gcc-8-strmov-store-file-names.patch b/gnu/packages/patches/gcc-8-strmov-store-file-names.patch new file mode 100644 index 000000000..f8e6b951b --- /dev/null +++ b/gnu/packages/patches/gcc-8-strmov-store-file-names.patch @@ -0,0 +1,110 @@ +Make sure that statements such as: + + strcpy (dst, "/gnu/store/…"); + +or + + static const char str[] = "/gnu/store/…"; + … + strcpy (dst, str); + +do not result in chunked /gnu/store strings that are undetectable by +Guix's GC and its grafting code. See +and . + +--- gcc-5.3.0/gcc/builtins.c 2016-10-18 10:50:46.080616285 +0200 ++++ gcc-5.3.0/gcc/builtins.c 2016-11-09 15:26:43.693042737 +0100 +@@ -3012,6 +3012,58 @@ determine_block_size (tree len, rtx len_rtx, + GET_MODE_MASK (GET_MODE (len_rtx))); + } + ++extern void debug_tree (tree); ++ ++/* Return true if STR contains the string "/gnu/store". */ ++ ++bool ++store_reference_p (tree str) ++{ ++ if (getenv ("GUIX_GCC_DEBUG") != NULL) ++ debug_tree (str); ++ ++ if (TREE_CODE (str) == ADDR_EXPR) ++ str = TREE_OPERAND (str, 0); ++ ++ if (TREE_CODE (str) == VAR_DECL ++ && TREE_STATIC (str) ++ && TREE_READONLY (str)) ++ { ++ /* STR may be a 'static const' variable whose initial value ++ is a string constant. See . */ ++ str = DECL_INITIAL (str); ++ if (str == NULL_TREE) ++ return false; ++ } ++ ++ if (TREE_CODE (str) != STRING_CST) ++ return false; ++ ++ int len; ++ const char *store; ++ ++ store = getenv ("NIX_STORE") ? getenv ("NIX_STORE") : "/gnu/store"; ++ len = strlen (store); ++ ++ /* Size of the hash part of store file names, including leading slash and ++ trailing hyphen. */ ++ const int hash_len = 34; ++ ++ if (TREE_STRING_LENGTH (str) < len + hash_len) ++ return false; ++ ++ /* We cannot use 'strstr' because 'TREE_STRING_POINTER' returns a string ++ that is not necessarily NUL-terminated. */ ++ ++ for (int i = 0; i < TREE_STRING_LENGTH (str) - (len + hash_len); i++) ++ { ++ if (strncmp (TREE_STRING_POINTER (str) + i, store, len) == 0) ++ return true; ++ } ++ ++ return false; ++} ++ + /* Try to verify that the sizes and lengths of the arguments to a string + manipulation function given by EXP are within valid bounds and that + the operation does not lead to buffer overflow or read past the end. +@@ -3605,6 +3657,13 @@ expand_builtin_memory_copy_args (tree dest, tree src, tree len, + unsigned HOST_WIDE_INT max_size; + unsigned HOST_WIDE_INT probable_max_size; + ++ /* Do not emit block moves, which translate to the 'movabs' instruction on ++ x86_64, when SRC refers to store items. That way, store references ++ remain visible to the Guix GC and grafting code. See ++ . */ ++ if (store_reference_p (src)) ++ return NULL_RTX; ++ + /* If DEST is not a pointer type, call the normal function. */ + if (dest_align == 0) + return NULL_RTX; +--- gcc-5.5.0/gcc/gimple-fold.c 2018-03-20 11:36:16.709442004 +0100 ++++ gcc-5.5.0/gcc/gimple-fold.c 2018-03-20 11:46:43.838487065 +0100 +@@ -635,6 +635,8 @@ var_decl_component_p (tree var) + return SSA_VAR_P (inner); + } + ++extern bool store_reference_p (tree); ++ + /* If the SIZE argument representing the size of an object is in a range + of values of which exactly one is valid (and that is zero), return + true, otherwise false. */ +@@ -742,6 +744,9 @@ gimple_fold_builtin_memory_op (gimple_stmt_iterator *gsi, + off0 = build_int_cst (build_pointer_type_for_mode (char_type_node, + ptr_mode, true), 0); + ++ if (store_reference_p (src)) ++ return false; ++ + /* If we can perform the copy efficiently with first doing all loads + and then all stores inline it that way. Currently efficiently + means that we can load all the memory into a single integer -- 2.18.0 From unknown Fri Jun 13 10:12:11 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#31976] [PATCH] gnu: Add gcc@8. Resent-From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Tue, 26 Jun 2018 14:06:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 31976 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Marius Bakke Cc: 31976@debbugs.gnu.org Received: via spool by 31976-submit@debbugs.gnu.org id=B31976.153002193831344 (code B ref 31976); Tue, 26 Jun 2018 14:06:01 +0000 Received: (at 31976) by debbugs.gnu.org; 26 Jun 2018 14:05:38 +0000 Received: from localhost ([127.0.0.1]:36319 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fXobC-00089T-GC for submit@debbugs.gnu.org; Tue, 26 Jun 2018 10:05:38 -0400 Received: from eggs.gnu.org ([208.118.235.92]:46729) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fXob7-00089E-MR for 31976@debbugs.gnu.org; Tue, 26 Jun 2018 10:05:36 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fXoaz-0007jX-9R for 31976@debbugs.gnu.org; Tue, 26 Jun 2018 10:05:28 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:58253) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fXoay-0007jS-Rh; Tue, 26 Jun 2018 10:05:25 -0400 Received: from [193.50.110.137] (port=37220 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1fXoay-0003kL-FG; Tue, 26 Jun 2018 10:05:24 -0400 From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) References: <20180626112351.10215-1-mbakke@fastmail.com> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 8 Messidor an 226 de la =?UTF-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Tue, 26 Jun 2018 16:05:22 +0200 In-Reply-To: <20180626112351.10215-1-mbakke@fastmail.com> (Marius Bakke's message of "Tue, 26 Jun 2018 13:23:51 +0200") Message-ID: <87sh593aot.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) Marius Bakke skribis: > * gnu/packages/patches/gcc-8-strmov-store-file-names.patch: New file. > * gnu/local.mk (dist_patch_DATA): Register it. > * gnu/packages/gcc.scm (gcc-8): New public variable. Woohoo! So I suppose =E2=80=98gcc-strmov-store-file-names.patch=E2=80=99 d= idn=E2=80=99t apply as-is, right? LGTM. Thanks, Ludo=E2=80=99. From unknown Fri Jun 13 10:12:11 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: Marius Bakke Subject: bug#31976: closed (Re: [bug#31976] [PATCH] gnu: Add gcc@8.) Message-ID: References: <87efgty3bp.fsf@fastmail.com> <20180626112351.10215-1-mbakke@fastmail.com> X-Gnu-PR-Message: they-closed 31976 X-Gnu-PR-Package: guix-patches X-Gnu-PR-Keywords: patch Reply-To: 31976@debbugs.gnu.org Date: Tue, 26 Jun 2018 15:29:02 +0000 Content-Type: multipart/mixed; boundary="----------=_1530026942-14411-1" This is a multi-part message in MIME format... ------------=_1530026942-14411-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #31976: [PATCH] gnu: Add gcc@8. which was filed against the guix-patches package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 31976@debbugs.gnu.org. --=20 31976: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D31976 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1530026942-14411-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 31976-done) by debbugs.gnu.org; 26 Jun 2018 15:28:49 +0000 Received: from localhost ([127.0.0.1]:36415 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fXptg-0003k1-V8 for submit@debbugs.gnu.org; Tue, 26 Jun 2018 11:28:49 -0400 Received: from out2-smtp.messagingengine.com ([66.111.4.26]:35723) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fXptd-0003js-3H for 31976-done@debbugs.gnu.org; Tue, 26 Jun 2018 11:28:48 -0400 Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.nyi.internal (Postfix) with ESMTP id A33FB21990; Tue, 26 Jun 2018 11:28:44 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute5.internal (MEProxy); Tue, 26 Jun 2018 11:28:44 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fastmail.com; h= cc:content-type:date:from:in-reply-to:message-id:mime-version :references:subject:to:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; bh=T8Ib0oAISWM6YfzYmTjKQlW/38us/GiCGkX5gfwl63s=; b=DTmGD7UW I+UXcNDZRPV8c2/lKq0AhnsRrWs0QzKZpcFLXk74FV54qw9KGYL2i6R+gbrmnZy1 vucJqMda5EpVArGOTfK0Q/Rq8rDgz7U+9XRP8ihB3NH14S0UcWna3+2kYRDkmFcX Jamc4bTyv5+Uxv5HfT+1ReiigdfWRe9eSm+lhfGKnxSVLWF2PmgO1q3AcH32aa5h etHVOJDFs/mx/MBBjgJqgHzP7/z80kPTdjJaZQGgxbCG4+Du0S4oYDkDuq5ySeMA 7OKyHsoLg+g/Hz+1W6iPkFB7VSPjrOdKPpzg9P5Swq/vSQ6sVXOwo6Elo/VAsVxQ eoeA+/dFhczZFg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-sender :x-me-sender:x-sasl-enc; s=fm3; bh=T8Ib0oAISWM6YfzYmTjKQlW/38us/ GiCGkX5gfwl63s=; b=qP/a5e1qJkjNpxAxqFZCyfGx80Bub0QXKa1ZxrqbV+LPN mh3a6kWr86bQLIMXEC5zRjlleFkG1biLgrnes1hu8hNNVSMucg0pBt+r1z0yk47S R/8p5qV5iDiGmF/1+1eOe3Rp+o8fOynhGSKvhgofMVOUUkiV2jToWDlvVOP9JOEk 4zE6d///Qyve1Pn1I0JhYjli4tEnZk4+VB7LEodCfJcNiHAdtY9RuIQmQP6uC+zP hzQNeOxJ+nI9rs+6GDopU+dxwpLlu+YscLNxf81hUNOqCJhqk3wJnU+o49v9FjAZ QrhF9nvRx+24pb6IHAjj8cKpwTKmn+UKRPYFHScqw== X-ME-Proxy: X-ME-Sender: Received: from localhost (cm-84.214.174.185.getinternet.no [84.214.174.185]) by mail.messagingengine.com (Postfix) with ESMTPA id 1D44F10298; Tue, 26 Jun 2018 11:28:43 -0400 (EDT) From: Marius Bakke To: Ludovic =?utf-8?Q?Court=C3=A8s?= Subject: Re: [bug#31976] [PATCH] gnu: Add gcc@8. In-Reply-To: <87sh593aot.fsf@gnu.org> References: <20180626112351.10215-1-mbakke@fastmail.com> <87sh593aot.fsf@gnu.org> User-Agent: Notmuch/0.27 (https://notmuchmail.org) Emacs/26.1 (x86_64-pc-linux-gnu) Date: Tue, 26 Jun 2018 17:28:42 +0200 Message-ID: <87efgty3bp.fsf@fastmail.com> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 31976-done Cc: 31976-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable ludo@gnu.org (Ludovic Court=C3=A8s) writes: > Marius Bakke skribis: > >> * gnu/packages/patches/gcc-8-strmov-store-file-names.patch: New file. >> * gnu/local.mk (dist_patch_DATA): Register it. >> * gnu/packages/gcc.scm (gcc-8): New public variable. > > Woohoo! So I suppose =E2=80=98gcc-strmov-store-file-names.patch=E2=80=99= didn=E2=80=99t apply > as-is, right? Indeed, I had to rebase the patch (and included the fix from core-updates while at it). > LGTM. Applied! --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQEzBAEBCgAdFiEEu7At3yzq9qgNHeZDoqBt8qM6VPoFAlsyW6oACgkQoqBt8qM6 VPpNbQgAggQu6kOWbF5ZatQO4sqofWmPz+IiZvyZScjhonxY8MI9qG/T1Y3lRa13 TJIW0ko4jLOf1qm56znqPkETAgfxQEtu+ER+4Jefc1+XDsgSsYr7WuIPxyFQSPWp ++j9pl5ljo6JGqB414qsT2Yno1B9tH1UoZ/6YYCxt4hVTAfaRvRg4uGmOApamA5z H1pO+5kEd4cs+Y/spLTAffzXieS4LGARDYPsY3wlWV3DLoSKMrp3bi4ZPu6loVp4 GaebqI/DemO+4aD6Jo09HpUzkCyS8t6jyCnuAVOgCeAFXAMoY2I93sUfcxTdEceu pYPk6DlO+mFTtxd7ml+dx7jLYfdnSQ== =PLIf -----END PGP SIGNATURE----- --=-=-=-- ------------=_1530026942-14411-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 26 Jun 2018 11:24:18 +0000 Received: from localhost ([127.0.0.1]:35682 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fXm54-000246-5d for submit@debbugs.gnu.org; Tue, 26 Jun 2018 07:24:18 -0400 Received: from eggs.gnu.org ([208.118.235.92]:41301) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fXm50-00023s-VZ for submit@debbugs.gnu.org; Tue, 26 Jun 2018 07:24:17 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fXm4u-0000br-I8 for submit@debbugs.gnu.org; Tue, 26 Jun 2018 07:24:09 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,FREEMAIL_FROM, T_DKIM_INVALID autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:47769) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fXm4u-0000bk-DO for submit@debbugs.gnu.org; Tue, 26 Jun 2018 07:24:08 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60503) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fXm4s-0005Hq-Mc for guix-patches@gnu.org; Tue, 26 Jun 2018 07:24:08 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fXm4o-0000Yv-Id for guix-patches@gnu.org; Tue, 26 Jun 2018 07:24:06 -0400 Received: from out2-smtp.messagingengine.com ([66.111.4.26]:50701) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fXm4o-0000Y7-AH for guix-patches@gnu.org; Tue, 26 Jun 2018 07:24:02 -0400 Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.nyi.internal (Postfix) with ESMTP id A1ED821AED; Tue, 26 Jun 2018 07:24:01 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute5.internal (MEProxy); Tue, 26 Jun 2018 07:24:01 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fastmail.com; h= cc:content-transfer-encoding:content-type:date:from:message-id :mime-version:subject:to:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; bh=K24X7qQNvI4SJhbZFhOsseSf90PYlfrZZ+DYgCXy2yM=; b=YrhWKOwh 5kpS08o7ypw1ShMFiAkJnqmzBNZwqghkbCxwOQr6mP17qP/2a4KsuOXHP/Rw5Udg hQhx3/rcBsXzRUk0G6qe+A8nN6AUic8NcozmNi/4Oum4nb9T6sjdvPKBIsEsT8Zz zqecIevZ7FNC9TJtJp3Rx2E1EozrhZhG56Te3gURAGmh98oKwzzvf+o/rwSWBcqp qe12L02Qmls7VZ2rx0Txd/BFBALqRhv8q49POm1ncKS6NIhFMZYa4spDas8uSfgG zqQi3DJDaKHksVmD3jeUE0Ns/hT0/lUEt46Xp1eiEi4CSU/vvM8KSXWq/JZlgOBI hqtdWqxKPCgSUA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:message-id:mime-version:subject:to:x-me-sender :x-me-sender:x-sasl-enc; s=fm3; bh=K24X7qQNvI4SJhbZFhOsseSf90PYl frZZ+DYgCXy2yM=; b=EEnC6IpxWfaV3gwifcodRsdO3Tr14NIRRzyekhx0vcLKr fxBjYNJT3nV9VaMVPFV1HbicqAIgk7kNjV1AaK67kArh8oYtd9soWCBskeEmhzv5 67L+YNSCG4/QDTeL5nK2QagJioDmNDo6sTwpXt9wjTLdvDWisq7ZDGO7w+cNuSC4 hPuolejikLikpqwMflh9NJn/BglzBXx44MO6h5EKlOrBrY34yKFk72xFR9hSPwCm LPZth8pIgWDYgG5Sq+tIStGhINCd7rLcCuvmh9oRlP/jNSEEblB2cvfB7YKX/DGz vcwFntjE8mnv+U5ouG5HFfNHgoWBdqQKUl9u6w5Kw== X-ME-Proxy: X-ME-Sender: Received: from localhost (cm-84.214.174.185.getinternet.no [84.214.174.185]) by mail.messagingengine.com (Postfix) with ESMTPA id EE5C710292; Tue, 26 Jun 2018 07:24:00 -0400 (EDT) From: Marius Bakke To: guix-patches@gnu.org Subject: [PATCH] gnu: Add gcc@8. Date: Tue, 26 Jun 2018 13:23:51 +0200 Message-Id: <20180626112351.10215-1-mbakke@fastmail.com> X-Mailer: git-send-email 2.18.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.4 (----) X-Debbugs-Envelope-To: submit Cc: Marius Bakke X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.4 (-----) * gnu/packages/patches/gcc-8-strmov-store-file-names.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. * gnu/packages/gcc.scm (gcc-8): New public variable. --- gnu/local.mk | 1 + gnu/packages/gcc.scm | 14 +++ .../gcc-8-strmov-store-file-names.patch | 110 ++++++++++++++++++ 3 files changed, 125 insertions(+) create mode 100644 gnu/packages/patches/gcc-8-strmov-store-file-names.patch diff --git a/gnu/local.mk b/gnu/local.mk index 9d8947d55..516576d7f 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -705,6 +705,7 @@ dist_patch_DATA = \ %D%/packages/patches/gcc-6-cross-environment-variables.patch \ %D%/packages/patches/gcc-6-source-date-epoch-1.patch \ %D%/packages/patches/gcc-6-source-date-epoch-2.patch \ + %D%/packages/patches/gcc-8-strmov-store-file-names.patch \ %D%/packages/patches/gcr-disable-failing-tests.patch \ %D%/packages/patches/gcr-fix-collection-tests-to-work-with-gpg-21.patch \ %D%/packages/patches/gd-CVE-2018-5711.patch \ diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index 5012d9a91..78ccd4738 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -515,6 +515,20 @@ Go. It also includes runtime support libraries for these languages.") for several languages, including C, C++, Objective-C, Fortran, Ada, and Go. It also includes runtime support libraries for these languages."))) +(define-public gcc-8 + (package + (inherit gcc-7) + (version "8.1.0") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/gcc/gcc-" + version "/gcc-" version ".tar.xz")) + (sha256 + (base32 + "0lxil8x0jjx7zbf90cy1rli650akaa6hpk8wk8s62vk2jbwnc60x")) + (patches (search-patches "gcc-8-strmov-store-file-names.patch" + "gcc-5.0-libvtv-runpath.patch")))))) + ;; Note: When changing the default gcc version, update ;; the gcc-toolchain-* definitions and the gfortran definition ;; accordingly. diff --git a/gnu/packages/patches/gcc-8-strmov-store-file-names.patch b/gnu/packages/patches/gcc-8-strmov-store-file-names.patch new file mode 100644 index 000000000..f8e6b951b --- /dev/null +++ b/gnu/packages/patches/gcc-8-strmov-store-file-names.patch @@ -0,0 +1,110 @@ +Make sure that statements such as: + + strcpy (dst, "/gnu/store/…"); + +or + + static const char str[] = "/gnu/store/…"; + … + strcpy (dst, str); + +do not result in chunked /gnu/store strings that are undetectable by +Guix's GC and its grafting code. See +and . + +--- gcc-5.3.0/gcc/builtins.c 2016-10-18 10:50:46.080616285 +0200 ++++ gcc-5.3.0/gcc/builtins.c 2016-11-09 15:26:43.693042737 +0100 +@@ -3012,6 +3012,58 @@ determine_block_size (tree len, rtx len_rtx, + GET_MODE_MASK (GET_MODE (len_rtx))); + } + ++extern void debug_tree (tree); ++ ++/* Return true if STR contains the string "/gnu/store". */ ++ ++bool ++store_reference_p (tree str) ++{ ++ if (getenv ("GUIX_GCC_DEBUG") != NULL) ++ debug_tree (str); ++ ++ if (TREE_CODE (str) == ADDR_EXPR) ++ str = TREE_OPERAND (str, 0); ++ ++ if (TREE_CODE (str) == VAR_DECL ++ && TREE_STATIC (str) ++ && TREE_READONLY (str)) ++ { ++ /* STR may be a 'static const' variable whose initial value ++ is a string constant. See . */ ++ str = DECL_INITIAL (str); ++ if (str == NULL_TREE) ++ return false; ++ } ++ ++ if (TREE_CODE (str) != STRING_CST) ++ return false; ++ ++ int len; ++ const char *store; ++ ++ store = getenv ("NIX_STORE") ? getenv ("NIX_STORE") : "/gnu/store"; ++ len = strlen (store); ++ ++ /* Size of the hash part of store file names, including leading slash and ++ trailing hyphen. */ ++ const int hash_len = 34; ++ ++ if (TREE_STRING_LENGTH (str) < len + hash_len) ++ return false; ++ ++ /* We cannot use 'strstr' because 'TREE_STRING_POINTER' returns a string ++ that is not necessarily NUL-terminated. */ ++ ++ for (int i = 0; i < TREE_STRING_LENGTH (str) - (len + hash_len); i++) ++ { ++ if (strncmp (TREE_STRING_POINTER (str) + i, store, len) == 0) ++ return true; ++ } ++ ++ return false; ++} ++ + /* Try to verify that the sizes and lengths of the arguments to a string + manipulation function given by EXP are within valid bounds and that + the operation does not lead to buffer overflow or read past the end. +@@ -3605,6 +3657,13 @@ expand_builtin_memory_copy_args (tree dest, tree src, tree len, + unsigned HOST_WIDE_INT max_size; + unsigned HOST_WIDE_INT probable_max_size; + ++ /* Do not emit block moves, which translate to the 'movabs' instruction on ++ x86_64, when SRC refers to store items. That way, store references ++ remain visible to the Guix GC and grafting code. See ++ . */ ++ if (store_reference_p (src)) ++ return NULL_RTX; ++ + /* If DEST is not a pointer type, call the normal function. */ + if (dest_align == 0) + return NULL_RTX; +--- gcc-5.5.0/gcc/gimple-fold.c 2018-03-20 11:36:16.709442004 +0100 ++++ gcc-5.5.0/gcc/gimple-fold.c 2018-03-20 11:46:43.838487065 +0100 +@@ -635,6 +635,8 @@ var_decl_component_p (tree var) + return SSA_VAR_P (inner); + } + ++extern bool store_reference_p (tree); ++ + /* If the SIZE argument representing the size of an object is in a range + of values of which exactly one is valid (and that is zero), return + true, otherwise false. */ +@@ -742,6 +744,9 @@ gimple_fold_builtin_memory_op (gimple_stmt_iterator *gsi, + off0 = build_int_cst (build_pointer_type_for_mode (char_type_node, + ptr_mode, true), 0); + ++ if (store_reference_p (src)) ++ return false; ++ + /* If we can perform the copy efficiently with first doing all loads + and then all stores inline it that way. Currently efficiently + means that we can load all the memory into a single integer -- 2.18.0 ------------=_1530026942-14411-1--