aboutsummaryrefslogtreecommitdiff
From f0065f207cf19cd960b33d961472c6d69514336f Mon Sep 17 00:00:00 2001
From: Samuel Thibault <samuel.thibault@gnu.org>
Date: Fri, 7 Oct 2022 22:45:06 +0200
Subject: [PATCH] libstdc++: Mark pieces of gnu-linux/os_support.h
 linux-specific

This is notably needed because in glibc 2.34, the move of pthread functions
into libc.so happened for Linux only, not GNU/Hurd.

The pthread_self() function can also always be used fine as it is on
GNU/Hurd.

libstdc++-v3/ChangeLog:

	* config/os/gnu-linux/os_defines.h [!__linux__]
	(_GLIBCXX_NATIVE_THREAD_ID, _GLIBCXX_GTHREAD_USE_WEAK): Do not define.

Reviewed-by: Jonathan Wakely <jwakely@redhat.com>
---
 libstdc++-v3/config/os/gnu-linux/os_defines.h | 22 +++++++++++--------
 1 file changed, 13 insertions(+), 9 deletions(-)

diff --git a/libstdc++-v3/config/os/gnu-linux/os_defines.h b/libstdc++-v3/config/os/gnu-linux/os_defines.h
index 3064f8d908ac2..87317031fcd71 100644
--- a/libstdc++-v3/config/os/gnu-linux/os_defines.h
+++ b/libstdc++-v3/config/os/gnu-linux/os_defines.h
@@ -60,22 +60,26 @@
 # define _GLIBCXX_HAVE_FLOAT128_MATH 1
 #endif
 
-#if __GLIBC_PREREQ(2, 27)
+#ifdef __linux__
+// The following libpthread properties only apply to Linux, not GNU/Hurd.
+
+# if __GLIBC_PREREQ(2, 27)
 // Since glibc 2.27 pthread_self() is usable without linking to libpthread.
-# define _GLIBCXX_NATIVE_THREAD_ID pthread_self()
-#else
+#  define _GLIBCXX_NATIVE_THREAD_ID pthread_self()
+# else
 // Before then it was in libc.so.6 but not libc.a, and always returns 0,
 // which breaks the invariant this_thread::get_id() != thread::id{}.
 // So only use it if we know the libpthread version is available.
 // Otherwise use (__gthread_t)1 as the ID of the main (and only) thread.
-# define _GLIBCXX_NATIVE_THREAD_ID \
-  (__gthread_active_p() ? __gthread_self() : (__gthread_t)1)
-#endif
+#  define _GLIBCXX_NATIVE_THREAD_ID \
+   (__gthread_active_p() ? __gthread_self() : (__gthread_t)1)
+# endif
 
-#if __GLIBC_PREREQ(2, 34)
+# if __GLIBC_PREREQ(2, 34)
 // Since glibc 2.34 all pthreads functions are usable without linking to
 // libpthread.
-# define _GLIBCXX_GTHREAD_USE_WEAK 0
-#endif
+#  define _GLIBCXX_GTHREAD_USE_WEAK 0
+# endif
+#endif // __linux__
 
 #endif
lization Services): Update doc. Maxim Cournoyer 2021-03-10doc: Fix grammar....* doc/contributing.texi (Package Naming): Fix grammar. Tobias Geerinckx-Rice 2021-02-13doc: Try again to the improve the branching workflow....This is a followup to commit 175bea0ca42dba3e02109820efae0cac2804e73b. * doc/contributing.texi (Submitting Patches): Distill the workflow to its essence. Leo Famulari 2021-02-11doc: Try to improve the branching workflow....* doc/contributing.texi (Submitting Patches): Introduce the use of "-frozen" branch names. Leo Famulari 2021-01-29doc: Update guidance about Rust package naming....* doc/contributing.texi (Rust Crates): Explain versions suffix based on packages version and Crate "caret" versioning. Hartmut Goebel 2021-01-20doc: Replace TP with Weblate mentions....* doc/contributing.texi: Replace link to TP with a link to Weblate. * doc/guix.texi: Replace link to TP with a link to Weblate. * doc/guix-cookbook.texi: Replace link to TP with a link to Weblate. Julien Lepiller 2021-01-03doc: Running Guix Before It Is Installed: mention ./bootstrap...* doc/contributing.texi (Running Guix Before It Is Installed): Instruct user to run ./bootstrap before ./configure. Signed-off-by: Jakub Kądziołka <kuba@kadziolka.net> Rovanion Luckey 2020-12-17doc: Emacs Packages: Fix typos....* doc/contributing.texi (Emacs Packages): Fix typo. Also remove spurious white space, and unnecessary quote. Nicolas Goaziou 2020-12-17doc: Add Emacs packaging guidelines....* doc/contributing.texi (Emacs Packages): New subsection. Maxim Cournoyer 2020-12-14doc: Note different texlive-tiny & texline-union natures....* doc/contributing.texi (Submitting Patches): Add ‘package’ and ‘procedure’. Inspired-by: Jorge P. de Morais Neto Tobias Geerinckx-Rice 2020-12-14doc: Link to "Pattern Matching" in Guile....* doc/contributing.texi (Data Types and Pattern Matching): Link to the "Pattern Matching" node of the Guile manual. Ludovic Courtès 2020-11-12maint: update-guix-package: Optionally add sources to store....Following discussions in <https://issues.guix.gnu.org/43893>, keeping a copy of the updated package source is desirable when generating a release. * build-aux/update-guix-package.scm (version-controlled?): Remove variable. (call-with-temporary-git-worktree): Renamed from 'with-temporary-git-worktree'. Update doc. Do not change directory implicitly. Define as a procedure, not a syntax. (keep-source-in-store): New procedure. (main): Adjust to use with call-with-temporary-git-worktree. Add the sources to the store when GUIX_ALLOW_ME_TO_USE_PRIVATE_COMMIT is set. Exit gracefully when FIND-ORIGIN-REMOTE returns #f. (%savannah-guix-git-repo-push-url-regexp): Adjust match for a potential colon separator. * Makefile.am (GUIX_ALLOW_ME_TO_USE_PRIVATE_COMMIT): Adjust. * .dir-locals.el (scheme-mode): Remove entry for with-temporary-git-worktree. * doc/contributing.texi (Updating the Guix Package): Update doc. Co-authored-by: Ludovic Courtès <ludo@gnu.org> Maxim Cournoyer 2020-10-24build: Add GUIX_GIT_KEYRING variable for make authenticate....* Makefile.am (GUIX_GIT_KEYRING): New variable. (authenticate): Use GUIX_GIT_KEYRING to select the keyring branch reference. * doc/contributing.texi (Building from Git): Add an example about the use of GUIX_GIT_KEYRING. Miguel Ángel Arruga Vivas 2020-10-20doc: More uses of @lisp instead of @example....* doc/guix.texi (G-Expressions): Use @lisp for 'let-system' example. * doc/contributing.texi (Synopses and Descriptions): Use @lisp for second example. Ludovic Courtès 2020-10-19maint: update-guix-package: Prevent accidentally breaking guix pull....Fixes <https://issues.guix.gnu.org/43893>. This changes the 'update-guix-package' tool so that it: 1. Always uses a clean checkout to compute the hash of the updated 'guix' package. 2. Ensures the commit used in the updated 'guix' package definition has already been pushed upstream. * build-aux/update-guix-package.scm (%savannah-guix-git-repo-push-url): New variable. (with-input-pipe-to-string, with-temporary-git-worktree): New syntaxes. (find-origin-remote, git-add-worktree): New procedures. (commit-already-pushed?): New predicate. (main): Check the commit used has already been pushed upstream and compute the hash from a clean checkout. * doc/contributing.texi (Updating the Guix Package): Document it. * .dir-locals.el (scheme-mode): Fix indentation of with-temporary-git-worktree. Maxim Cournoyer 2020-10-08doc: Clarify that guix-daemon doesn't have to be launched from the checkout....Suggested by Emmanuel Agullo. * doc/contributing.texi (Running Guix Before It Is Installed): Move the "./pre-inst-env guix-daemon" snippet at the bottom. Make it clear that it's necessary only when hacking on guix-daemon or when guix-daemon is not already running. Ludovic Courtès 2020-10-08doc: Developers don't need to run "make install" in Guix....Suggested by Emmanuel Agullo. * doc/contributing.texi (Building from Git): Mention that running "make install" is unnecessary. Ludovic Courtès 2020-09-18doc: Fix broken hyperlinks in the contribution instructions....* doc/contributing.texi (Packaging Guidelines, Submitting Patches): Change URLs from relative to absolute links. Greg Hogan 2020-09-12doc: Document the use of snippets vs phases....* doc/contributing.texi (Snippets versus phases): New section. Maxim Cournoyer 2020-08-27doc: Improve the instructions regarding `guix git authenticate`....* doc/contributing.texi (Building from Git): Instruct the user to fetch the 'keyring' branch. Fix a typo. Signed-off-by: Leo Famulari <leo@famulari.name> Joshua Branson 2020-07-23doc: Recommend running 'guix git authenticate' when cloning the repo....* doc/contributing.texi (Building from Git): Adjust instruction and recommend 'guix git authenticate'. Ludovic Courtès 2020-07-09doc: Fix typo....* doc/contributing.texi (The Perfect Setup): Fix spelling & placement of ‘additionally’. Tobias Geerinckx-Rice 2020-06-20doc: Make issues.guix.gnu.org more visible....* doc/contributing.texi (Tracking Bugs and Patches): Make issues.guix.gnu.org more visible, update issue URL. Ludovic Courtès 2020-06-16doc: Recommend "make authenticate" after ./bootstrap....* doc/contributing.texi (Building from Git): Move "make authenticate" instructions below. Ludovic Courtès 2020-06-14doc: Adjust branching and rebuilding strategy to match reality....The amount of packages has more than tripled since this section was written. Adjust the rebuild limits and cycle lengths based on current practices. * doc/contributing.texi (Submitting Patches): Increase 'staging' rebuild limit to 1800 packages, and adjust the cycle to six weeks. Increase 'core-updates' cycle to six months. Marius Bakke 2020-05-28doc: Remove explicit support for mips64el-linux....It's been a good run, but no one is maintaining the architecture. So long, and thanks for all the fish. * doc/guix.texi (GNU Distribution): Change text for mips64el-linux to denote it is deprecated. (Daemon Offload Setup): Change occurrences of mips64el-linux to aarch64-linux and adjust local code snippets. (Guix Environment)[cross-compilation]: Change mips64el-linux-gnu to aarch64-linux-gnu. (GNU Build System)(package-cross-derivation]: Same. (G-Expressions)[cross compilation]: Same. (Additional Build Options)[cross-compilation, build logs]: Same. (qemu-binfmt-service-type): Remove mips64el. * doc/contributing.texi (Submitting Patches): Same. * m4/guix.m4: (GUIX_ASSERT_SUPPORTED_SYSTEM): Remove mips64el-linux. Efraim Flashner 2020-05-25doc: Fix typos....* doc/guix.texi: Fix typos. * doc/contributing.texi: Fix typos. Signed-off-by: Julien Lepiller <julien@lepiller.eu> zimoun 2020-05-22maint: Add "make check-channel-news"....* build-aux/check-channel-news.scm: New file. * Makefile.am (EXTRA_DIST): Add it. (check-channel-news): New phony rule. * doc/contributing.texi (Commit Access): Mention "make check-channel-news". Ludovic Courtès 2020-05-12doc: Specify the branch name in the title of a patch....* doc/contributing.texi (Submitting Patches): Add branch name in the title of a patch if different than master. Brice Waegeneire 2020-05-04doc: Recommend against SHA1 OpenPGP signatures....* doc/contributing.texi (Commit Access): Recommend against SHA1 signatures. Ludovic Courtès 2020-05-04doc: Document committer authorization....* doc/contributing.texi (Commit Access): Add instructions for authorizing committers. Ludovic Courtès 2020-03-13doc: Update guidance about Python 2 package variants....* doc/contributing.texi (Python Modules): Don't recommend adding Python-2 package variants by default. Leo Famulari 2020-03-10doc: Use HTTPS for external links....* doc/contributing.texi (14.1 Building from Git, 14.3 The Perfect Setup, 14.4.1 Software Freedom, 14.4.4 Synopses and Descriptions, 14.5.4 Formatting Code): Use HTTPS for @uref{}s and @url{}s that support it. * doc/fdl-1.3.texi (Appendix A GNU Free Documentation License): Use HTTPS for @uref{}s and @url{}s that support it. * doc/guix.texi (6.3 Build Systems, 8.8.4 Networking Services, 8.8.8 Sound Services, 8.8.16 Web Services, 8.11 Name Service Switch, 12.2 Preparing to Use the Bootstrap Binaries); Use HTTPS for @uref{}s and @url{}s that support it. Signed-off-by: Marius Bakke <mbakke@fastmail.com> Vitaliy Shatrov 2020-03-09doc: Use an https link for Contributor Covenant....* doc/contributing.texi: Switch to https for the link to contributor-covenant.org Reported-By: guix-vits on IRC Jakub Kądziołka 2020-02-22etc: Add copyright....* etc/copyright.el: New file. * doc/contributing.texi (The Perfect Setup): Document this. Oleg Pykhalov 2020-02-18doc: Document packaging guidelines for Rust crates....* doc/contributing.texi (Rust Crates): New section. Efraim Flashner 2020-01-19Use HTTPS for www.emacswiki.org....* doc/contributing.texi (The Perfect Setup): Use HTTPS for ParEdit wiki page. * gnu/packages/emacs-xyz.scm (emacs-wget, emacs-iedit)[home-page]: Use HTTPS. (emacs-transpose-frame)[source]: Likewise. Tobias Geerinckx-Rice 2020-01-09doc: Add a cooptation policy for commit access....* doc/contributing.texi (Commit Access): Draft a cooptation policy. Ludovic Courtès 2020-01-09doc: Encourage patch review....* doc/contributing.texi (Commit Access): Add note about patch review. Ludovic Courtès 2020-01-09doc: Move "Commit Access" section from 'HACKING' to the manual....* HACKING (Commit Access): Remove. (Contributing): Update URL of the manual. * doc/contributing.texi (Commit Access): New section. (Submitting Patches): Add cross reference. Ludovic Courtès 2020-01-09doc: Add "Tracking Bugs and Patches" section....* doc/contributing.texi (Tracking Bugs and Patches): New section. (Submitting Patches): Refer to it. * doc/guix.texi: Update copyright line. * HACKING (Using emacs-debbugs): Remove. Ludovic Courtès