Revert "gnu: gcc: Add '-lgcc_s' only when '-pthread' is given."
This reverts commit 9097e666d4.
This turned out not to be a good strategy.  Some build system, e.g. tcl's, do
not pass -pthread on GNU/Linux by default, but merely link with -lpthread.
Also, Ludovic found other cases where libgcc_s is dlopened by libc that have
nothing to do with pthreads, e.g. to walk the stack.
			
			
This commit is contained in:
		
							parent
							
								
									b515822de1
								
							
						
					
					
						commit
						fa1e2f3d0d
					
				
					 1 changed files with 6 additions and 8 deletions
				
			
		|  | @ -1,6 +1,5 @@ | ||||||
| ;;; GNU Guix --- Functional package management for GNU | ;;; GNU Guix --- Functional package management for GNU | ||||||
| ;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org> | ;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org> | ||||||
| ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> |  | ||||||
| ;;; | ;;; | ||||||
| ;;; This file is part of GNU Guix. | ;;; This file is part of GNU Guix. | ||||||
| ;;; | ;;; | ||||||
|  | @ -202,15 +201,14 @@ where the OS part is overloaded to denote a specific ABI---into GCC | ||||||
|                 (substitute* (find-files "gcc/config" |                 (substitute* (find-files "gcc/config" | ||||||
|                                          "^gnu-user.*\\.h$") |                                          "^gnu-user.*\\.h$") | ||||||
|                   (("#define GNU_USER_TARGET_LIB_SPEC (.*)$" _ suffix) |                   (("#define GNU_USER_TARGET_LIB_SPEC (.*)$" _ suffix) | ||||||
|                    ;; Help libgcc_s.so be found (see also below.)  When |                    ;; Help libgcc_s.so be found (see also below.)  Always use | ||||||
|                    ;; -pthread is given, use '-lgcc_s' so that libgcc_s.so is |                    ;; '-lgcc_s' so that libgcc_s.so is always found by those | ||||||
|                    ;; always found by those programs that use 'pthread_cancel' |                    ;; programs that use 'pthread_cancel' (glibc dlopens | ||||||
|                    ;; (glibc dlopens libgcc_s.so when pthread_cancel support |                    ;; libgcc_s.so when pthread_cancel support is needed, but | ||||||
|                    ;; is needed, but having it in the application's RUNPATH |                    ;; having it in the application's RUNPATH isn't enough; see | ||||||
|                    ;; isn't enough; see |  | ||||||
|                    ;; <http://sourceware.org/ml/libc-help/2013-11/msg00023.html>.) |                    ;; <http://sourceware.org/ml/libc-help/2013-11/msg00023.html>.) | ||||||
|                    (format #f "#define GNU_USER_TARGET_LIB_SPEC \ |                    (format #f "#define GNU_USER_TARGET_LIB_SPEC \ | ||||||
| \"-L~a/lib %{!static:-rpath=~a/lib %{!static-libgcc:-rpath=~a/lib64 -rpath=~a/lib %{pthread:-lgcc_s}}} \" ~a" | \"-L~a/lib %{!static:-rpath=~a/lib %{!static-libgcc:-rpath=~a/lib64 -rpath=~a/lib -lgcc_s}} \" ~a" | ||||||
|                            libc libc libdir libdir suffix)) |                            libc libc libdir libdir suffix)) | ||||||
|                   (("#define GNU_USER_TARGET_STARTFILE_SPEC.*$" line) |                   (("#define GNU_USER_TARGET_STARTFILE_SPEC.*$" line) | ||||||
|                    (format #f "#define STANDARD_STARTFILE_PREFIX_1 \"~a/lib\" |                    (format #f "#define STANDARD_STARTFILE_PREFIX_1 \"~a/lib\" | ||||||
|  |  | ||||||
		Reference in a new issue