gnu: nss: Prepare for GCC 10.

* gnu/packages/patches/nss-getcwd-nonnull.patch: New file.
* gnu/local.mk (dist_patch_DATA): Adjust accordingly.
* gnu/packages/nss.scm (nss)[source](patches): Add it.
This commit is contained in:
Marius Bakke 2021-06-06 18:57:19 +02:00
parent 0788e62d3e
commit 1eee406b07
No known key found for this signature in database
GPG key ID: A2A06DF2A33A54FA
3 changed files with 32 additions and 0 deletions

View file

@ -1439,6 +1439,7 @@ dist_patch_DATA = \
%D%/packages/patches/network-manager-plugin-path.patch \
%D%/packages/patches/nginx-socket-cloexec.patch \
%D%/packages/patches/nsis-env-passthru.patch \
%D%/packages/patches/nss-getcwd-nonnull.patch \
%D%/packages/patches/nss-increase-test-timeout.patch \
%D%/packages/patches/nss-3.56-pkgconfig.patch \
%D%/packages/patches/ntfs-3g-CVE-2019-9755.patch \

View file

@ -96,6 +96,7 @@ (define-public nss
(file-name (git-file-name name version))
;; Create nss.pc and nss-config.
(patches (search-patches "nss-3.56-pkgconfig.patch"
"nss-getcwd-nonnull.patch"
"nss-increase-test-timeout.patch"))
(modules '((guix build utils)))
(snippet

View file

@ -0,0 +1,30 @@
Disable -Werror=nonnull on getcwd(0, 4096) because GCC incorrectly warns that
the second argument should be NULL with recent glibc. See:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96832
https://sourceware.org/bugzilla/show_bug.cgi?id=26545
diff --git a/coreconf/nsinstall/nsinstall.c b/coreconf/nsinstall/nsinstall.c
--- a/coreconf/nsinstall/nsinstall.c
+++ b/coreconf/nsinstall/nsinstall.c
@@ -236,14 +236,20 @@ main(int argc, char **argv)
return 0;
if (!cwd) {
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wnonnull"
cwd = GETCWD(0, PATH_MAX);
+#pragma GCC diagnostic pop
if (!cwd)
fail("could not get CWD");
}
/* make sure we can get into todir. */
xchdir(todir);
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wnonnull"
todir = GETCWD(0, PATH_MAX);
+#pragma GCC diagnostic pop
if (!todir)
fail("could not get CWD in todir");
tdlen = strlen(todir);