38 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
--- a/src/mklibs
 | 
						|
+++ b/src/mklibs
 | 
						|
@@ -113,11 +113,8 @@ def library_depends_gcc_libnames(obj, so
 | 
						|
     ret = []
 | 
						|
     for i in libs:
 | 
						|
         match = re.match("^(((?P<ld>ld\S*)|(lib(?P<lib>\S+))))\.so.*$", i)
 | 
						|
-        if match and not soname in ("libpthread.so.0"):
 | 
						|
-            if match.group('ld'):
 | 
						|
-                ret.append(find_lib(match.group(0)))
 | 
						|
-            elif match.group('lib'):
 | 
						|
-                ret.append('-l%s' % match.group('lib'))
 | 
						|
+        if match:
 | 
						|
+            ret.append(find_lib(match.group(0)))
 | 
						|
     return ' '.join(ret)
 | 
						|
 
 | 
						|
 class Symbol(object):
 | 
						|
@@ -584,6 +581,7 @@ while 1:
 | 
						|
             extra_flags = []
 | 
						|
             extra_pre_obj = []
 | 
						|
             extra_post_obj = []
 | 
						|
+            libgcc_link = find_lib("libgcc_s.so.1")
 | 
						|
 
 | 
						|
             symbols.update(library_symbols_used[library])
 | 
						|
 
 | 
						|
@@ -614,9 +612,10 @@ while 1:
 | 
						|
             cmd.append(pic_file)
 | 
						|
             cmd.extend(extra_post_obj)
 | 
						|
             cmd.extend(extra_flags)
 | 
						|
-            cmd.append("-lgcc")
 | 
						|
             cmd.extend(["-L%s" % a for a in [dest_path] + [sysroot + b for b in lib_path if sysroot == "" or b not in ("/" + libdir + "/", "/usr/" + libdir + "/")]])
 | 
						|
-            cmd.append(library_depends_gcc_libnames(so_file, soname))
 | 
						|
+            if soname != "libgcc_s.so.1":
 | 
						|
+                cmd.append(library_depends_gcc_libnames(so_file, soname))
 | 
						|
+                cmd.append(libgcc_link)
 | 
						|
             command(target + "gcc", *cmd)
 | 
						|
 
 | 
						|
             ## DEBUG
 |