Bug 1264132 - `Use $gcc_dir/bin/gcc -print-libgcc-file-name` to find the libraries and headers to copy in the clang package. r?ehsan draft
authorMike Hommey <mh+mozilla@glandium.org>
Wed, 13 Apr 2016 08:00:11 +0900
changeset 350222 22ec64a05cb698fbf11c1d672991976369b2c8ed
parent 350218 73d2087c8b27affa4b8b497aa4728c580c4c9ebe
child 518272 1840203e7e185da48ff59a5c434920b612c192bf
push id15273
push userbmo:mh+mozilla@glandium.org
push dateWed, 13 Apr 2016 00:51:14 +0000
reviewersehsan
bugs1264132
milestone48.0a1
Bug 1264132 - `Use $gcc_dir/bin/gcc -print-libgcc-file-name` to find the libraries and headers to copy in the clang package. r?ehsan
build/build-clang/build-clang.py
--- a/build/build-clang/build-clang.py
+++ b/build/build-clang/build-clang.py
@@ -110,30 +110,31 @@ def mkdir_p(path):
     try:
         os.makedirs(path)
     except OSError as e:
         if e.errno != errno.EEXIST or not os.path.isdir(path):
             raise
 
 
 def install_libgcc(gcc_dir, clang_dir):
-        libgcc_dir = glob.glob(os.path.join(gcc_dir, "lib", "gcc",
-                                            "x86_64-*linux-gnu",
-                                            "[0-9]*"))[0]
-        clang_lib_dir = os.path.join(clang_dir, "lib", "gcc",
-                                     "x86_64-unknown-linux-gnu",
-                                     os.path.basename(libgcc_dir))
-        mkdir_p(clang_lib_dir)
-        copy_dir_contents(libgcc_dir, clang_lib_dir)
-        libgcc_dir = os.path.join(gcc_dir, "lib64")
-        clang_lib_dir = os.path.join(clang_dir, "lib")
-        copy_dir_contents(libgcc_dir, clang_lib_dir)
-        include_dir = os.path.join(gcc_dir, "include")
-        clang_include_dir = os.path.join(clang_dir, "include")
-        copy_dir_contents(include_dir, clang_include_dir)
+    out = subprocess.check_output([os.path.join(gcc_dir, "bin", "gcc"),
+                                   '-print-libgcc-file-name'])
+
+    libgcc_dir = os.path.dirname(out.rstrip())
+    clang_lib_dir = os.path.join(clang_dir, "lib", "gcc",
+                                 "x86_64-unknown-linux-gnu",
+                                 os.path.basename(libgcc_dir))
+    mkdir_p(clang_lib_dir)
+    copy_dir_contents(libgcc_dir, clang_lib_dir)
+    libgcc_dir = os.path.join(gcc_dir, "lib64")
+    clang_lib_dir = os.path.join(clang_dir, "lib")
+    copy_dir_contents(libgcc_dir, clang_lib_dir)
+    include_dir = os.path.join(gcc_dir, "include")
+    clang_include_dir = os.path.join(clang_dir, "include")
+    copy_dir_contents(include_dir, clang_include_dir)
 
 
 def svn_co(source_dir, url, directory, revision):
     run_in(source_dir, ["svn", "co", "-r", revision, url, directory])
 
 
 def svn_update(directory, revision):
     run_in(directory, ["svn", "update", "-r", revision])