[fink:package-submissions] #4831 llvm39-3.9.0-2 to add common libomp-dev and libomp-shlibs split-offs

Hanspeter Niederstrasser via Fink-tracker <[email protected]> Fri, 12 Jan 2018 11:34:30 -0000
Newsgroups gmane.os.apple.fink.tracker
Message-ID </p/fink/package-submissions/4831/18a8dcb62232bc94039dd194e82af3c39c9940dd.package-submissions@fink.p.sourceforge.net>
This is a multi-part message in MIME format.
--===============6914683325869341681==
Content-Type: multipart/related;
 boundary="===============0382972483872987318=="

This is a multi-part message in MIME format.
--===============0382972483872987318==
Content-Type: multipart/alternative;
 boundary="===============2154402256035999940=="
MIME-Version: 1.0

--===============2154402256035999940==
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit

- **labels**:  --> languages, Updated Revision of Existing
- **status**: open --> closed-out-of-date
- **Group**: Undergoing_Validation -->  Supplanted
- **Comment**:

[#4868] has llvm39-3.9.1.



---

** [package-submissions:#4831] llvm39-3.9.0-2 to add common libomp-dev and libomp-shlibs split-offs**

**Status:** closed-out-of-date
**Group:**  Supplanted
**Labels:** languages Updated Revision of Existing 
**Created:** Tue Nov 01, 2016 11:37 AM UTC by Jack Howarth
**Last Updated:** Wed Nov 02, 2016 12:37 AM UTC
**Owner:** nobody


The attached packaging introduces a common set of libomp-dev and libomp-shlibs split-offs to encourage the use of the clangXY compiler packages for -fopenmp support. This approach is the same currently used for the libcxx1-dev and libcxx1-shlibs split-offs. The upstream changes to unconditionally emit -lto_library to help the linker find the appropriate libLTO.dylib is added and the ld shell script hack removed. The Info file changes are...

~~~
Index: llvm39.info
===================================================================
RCS file: /cvsroot/fink/dists/10.9-libcxx/stable/main/finkinfo/languages/llvm39.info,v
retrieving revision 1.2
diff -u -r1.2 llvm39.info
--- llvm39.info	27 Oct 2016 04:01:28 -0000	1.2
+++ llvm39.info	1 Nov 2016 11:28:06 -0000
@@ -1,7 +1,7 @@
 Info3: <<
 Package: llvm39
 Version: 3.9.0
-Revision: 1
+Revision: 2
 Description: Modular and reusable compiler
 License: BSD
 Maintainer: David Fang <[email protected]>
@@ -54,8 +54,8 @@
 
 PatchFile: %n.patch
 PatchFile-MD5: 6addcbd4c9fe449b3cd006eb48f5219b
-#PatchFile2: %n-clang.patch
-#PatchFile2-MD5: d2a2b4207c19b7f09f197ae9769a51d2
+PatchFile2: %n-clang.patch
+PatchFile2-MD5: 25a45c309e14611b278c30b782f0d7e5 
 #PatchFile3: %n-compiler-rt.patch
 #PatchFile3-MD5: 60ed1415e15b1781f2d58c0db17aab78
 #PatchFile4: %n-polly.patch
@@ -65,7 +65,7 @@
 #PatchFile6: %n-clang-omp.patch
 #PatchFile6-MD5: 8067f4cc1f58030f7746521d58c776c2 
 PatchFile7: %n-clang-iomp5.patch
-PatchFile7-MD5: 33f21b006473cbdd5feced616b05903b
+PatchFile7-MD5: 921fc2acf91e9927044980f4c264e250
 
 PatchScript: <<
 	#!/bin/sh -ev
@@ -108,7 +108,7 @@
 	pushd tools/clang
 	  # Apply clang-omp merge before clang patch
 	  #$patch_filter %{PatchFile6} | patch -p1
-	  #$patch_filter %{PatchFile2} | patch -p1
+	  $patch_filter %{PatchFile2} | patch -p1
 	  $patch_filter %{PatchFile7} | patch -p1
 	popd
 	pushd tools/polly
@@ -1078,15 +1078,6 @@
 	iprefix=%i/$stem
 	prefix=%p/$stem
 
-	# Pass path to libLTO.dylib with -lto_library using ld shell script
-	pushd $iprefix/bin
-		cat <<EOF > ./ld
-#!/bin/sh
-exec /usr/bin/ld -lto_library %p/opt/llvm-3.9/lib/libLTO.dylib "\$@"
-EOF
-		chmod ugo+x ./ld
-	popd
-
 # convenient clang symlinks
 	mkdir -p %i/bin
 	pushd %i/bin
@@ -1112,6 +1103,22 @@
 		cp %b/../build/last/*-check.log testlogs/
 		cp %b/../build/last-libcxx/*-check.log testlogs/
 	popd
+
+# place omp.h in include/libomp for common libomp-dev package
+# and access in clang39 through a symlink instead.
+	install -d %i/include/libomp
+	pushd %i/opt/llvm-$brv/lib/clang/%v/include
+		mv omp.h %i/include/libomp
+		ln -s %p/include/libomp/omp.h omp.h
+	popd
+
+# place libomp.dylib in libomp subdirectory for common libomp-shlibs package
+# leave legacy copy in %p/opt/llvm-$brv/lib for clang39-shlibs
+	install -d %i/lib/libomp
+	pushd %i/opt/llvm-$brv/lib
+		cp libomp.dylib libiomp5.dylib libgomp.dylib %i/lib/libomp
+	popd
+	install_name_tool -id %p/lib/libomp/libomp.dylib %i/lib/libomp/libomp.dylib
 <<
 SplitOff: <<
 	Package: clang39-tools
@@ -1178,7 +1185,9 @@
 	#	odcctools,
 	# choosing to require opt-in instead of defaulting to libcxx1-dev
 	#	libcxx1-dev,
+		libomp-dev (>= %v-%r),
 		clang39-shlibs (= %v-%r),
+		libomp-shlibs (>= %v-%r),
 		polly39-shlibs (= %v-%r)
 	<<
 	Description: Executables and runtime for clang compiler
@@ -1186,7 +1195,6 @@
 	Files: <<
 		bin/clang*
 		opt/llvm-3.9/bin/clang*
-		opt/llvm-3.9/bin/ld
 		opt/llvm-3.9/lib/clang
 	<<
 	DescUsage: <<
@@ -1313,6 +1321,32 @@
 	<<
 <<
 SplitOff14: <<
+	Package: libomp-shlibs
+	Description: Standard library for libomp
+	Files: <<
+		(%m != powerpc) lib//libomp/lib*omp*.dylib
+	<<
+	DocFiles: <<
+		projects/openmp/CREDITS.txt
+		projects/openmp/LICENSE.txt
+	<<
+	Shlibs: <<
+		(%m != powerpc) %p/lib/libomp/libomp.dylib 5.0.0 %n (>= 3.9.0-2)
+	<<
+<<
+SplitOff15: <<
+	Package: libomp-dev
+	Description: Standard library header for libomp
+	Depends: libomp-shlibs (= %v-%r)
+	BuildDependsOnly: false
+	Files: include/libomp/omp.h
+	DescPackaging: <<
+	BuildDependsOnly set to false since clang compiler always needs
+	access to omp.h via a symlink in %p/opt/llvm-3.9/lib/clang/%v/include
+	which allows multiple compiler releases to use the latest libomp.
+	<<
+<<
+SplitOff16: <<
 	Package: %N-bundle
 	Description: Bundle of LLVM/Clang compiler tools
 	Type: bundle
~~~

Note that while clang39 now links against the libomp.dylib installed in %p/lib/libomp, a clang39-shlibs retains a legacy copy of libomp.dylib installed in %p/opt/llvm-3,9/lib. This legacy copy will be dropped in the llvm40 packaging and only exists because llvm39-3.9.0-1 was released without the libomp split-off changes. Also note that libomp-dev is 'BuildDependsOnly: false' because all future clangXY packages will require it to obtain the omp.h header via the symlink.

Tested on 10.11 with 'fink -m update-all' to verifiy clean upgrade from an installed copy of clang39-3.9.0-1.


---

Sent from sourceforge.net because [email protected] is subscribed to https://sourceforge.net/p/fink/package-submissions/

To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/fink/admin/package-submissions/options.  Or, if this is a mailing list, you can unsubscribe from the mailing list.
--===============2154402256035999940==
MIME-Version: 1.0
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: 7bit

<div class="markdown_content"><ul>
<li><strong>labels</strong>:  --&gt; languages, Updated Revision of Existing</li>
<li><strong>status</strong>: open --&gt; closed-out-of-date</li>
<li><strong>Group</strong>: Undergoing_Validation --&gt;  Supplanted</li>
<li><strong>Comment</strong>:</li>
</ul>
<p><a class="alink" href="https://sourceforge.net/p/fink/package-submissions/4868/">[#4868]</a> has llvm39-3.9.1.</p>
<hr/>
<p><strong> <a class="alink strikethrough" href="https://sourceforge.net/p/fink/package-submissions/4831/">[package-submissions:#4831]</a> llvm39-3.9.0-2 to add common libomp-dev and libomp-shlibs split-offs</strong></p>
<p><strong>Status:</strong> closed-out-of-date<br/>
<strong>Group:</strong>  Supplanted<br/>
<strong>Labels:</strong> languages Updated Revision of Existing <br/>
<strong>Created:</strong> Tue Nov 01, 2016 11:37 AM UTC by Jack Howarth<br/>
<strong>Last Updated:</strong> Wed Nov 02, 2016 12:37 AM UTC<br/>
<strong>Owner:</strong> nobody</p>
<p>The attached packaging introduces a common set of libomp-dev and libomp-shlibs split-offs to encourage the use of the clangXY compiler packages for -fopenmp support. This approach is the same currently used for the libcxx1-dev and libcxx1-shlibs split-offs. The upstream changes to unconditionally emit -lto_library to help the linker find the appropriate libLTO.dylib is added and the ld shell script hack removed. The Info file changes are...</p>
<div class="codehilite"><pre><span></span><span class="gh">Index: llvm39.info</span>
<span class="gh">===================================================================</span>
RCS file: /cvsroot/fink/dists/10.9-libcxx/stable/main/finkinfo/languages/llvm39.info,v
retrieving revision 1.2
<span class="gh">diff -u -r1.2 llvm39.info</span>
<span class="gd">--- llvm39.info 27 Oct 2016 04:01:28 -0000  1.2</span>
<span class="gi">+++ llvm39.info 1 Nov 2016 11:28:06 -0000</span>
<span class="gu">@@ -1,7 +1,7 @@</span>
 Info3: &lt;&lt;
 Package: llvm39
 Version: 3.9.0
<span class="gd">-Revision: 1</span>
<span class="gi">+Revision: 2</span>
 Description: Modular and reusable compiler
 License: BSD
 Maintainer: David Fang &lt;[email protected]&gt;
<span class="gu">@@ -54,8 +54,8 @@</span>

 PatchFile: %n.patch
 PatchFile-MD5: 6addcbd4c9fe449b3cd006eb48f5219b
<span class="gd">-#PatchFile2: %n-clang.patch</span>
<span class="gd">-#PatchFile2-MD5: d2a2b4207c19b7f09f197ae9769a51d2</span>
<span class="gi">+PatchFile2: %n-clang.patch</span>
<span class="gi">+PatchFile2-MD5: 25a45c309e14611b278c30b782f0d7e5 </span>
 #PatchFile3: %n-compiler-rt.patch
 #PatchFile3-MD5: 60ed1415e15b1781f2d58c0db17aab78
 #PatchFile4: %n-polly.patch
<span class="gu">@@ -65,7 +65,7 @@</span>
 #PatchFile6: %n-clang-omp.patch
 #PatchFile6-MD5: 8067f4cc1f58030f7746521d58c776c2 
 PatchFile7: %n-clang-iomp5.patch
<span class="gd">-PatchFile7-MD5: 33f21b006473cbdd5feced616b05903b</span>
<span class="gi">+PatchFile7-MD5: 921fc2acf91e9927044980f4c264e250</span>

 PatchScript: &lt;&lt;
    #!/bin/sh -ev
<span class="gu">@@ -108,7 +108,7 @@</span>
    pushd tools/clang
      # Apply clang-omp merge before clang patch
      #$patch_filter %{PatchFile6} | patch -p1
<span class="gd">-     #$patch_filter %{PatchFile2} | patch -p1</span>
<span class="gi">+     $patch_filter %{PatchFile2} | patch -p1</span>
      $patch_filter %{PatchFile7} | patch -p1
    popd
    pushd tools/polly
<span class="gu">@@ -1078,15 +1078,6 @@</span>
    iprefix=%i/$stem
    prefix=%p/$stem

<span class="gd">-   # Pass path to libLTO.dylib with -lto_library using ld shell script</span>
<span class="gd">-   pushd $iprefix/bin</span>
<span class="gd">-       cat &lt;&lt;EOF &gt; ./ld</span>
<span class="gd">-#!/bin/sh</span>
<span class="gd">-exec /usr/bin/ld -lto_library %p/opt/llvm-3.9/lib/libLTO.dylib "\$@"</span>
<span class="gd">-EOF</span>
<span class="gd">-       chmod ugo+x ./ld</span>
<span class="gd">-   popd</span>
<span class="gd">-</span>
 # convenient clang symlinks
    mkdir -p %i/bin
    pushd %i/bin
<span class="gu">@@ -1112,6 +1103,22 @@</span>
        cp %b/../build/last/*-check.log testlogs/
        cp %b/../build/last-libcxx/*-check.log testlogs/
    popd
<span class="gi">+</span>
<span class="gi">+# place omp.h in include/libomp for common libomp-dev package</span>
<span class="gi">+# and access in clang39 through a symlink instead.</span>
<span class="gi">+   install -d %i/include/libomp</span>
<span class="gi">+   pushd %i/opt/llvm-$brv/lib/clang/%v/include</span>
<span class="gi">+       mv omp.h %i/include/libomp</span>
<span class="gi">+       ln -s %p/include/libomp/omp.h omp.h</span>
<span class="gi">+   popd</span>
<span class="gi">+</span>
<span class="gi">+# place libomp.dylib in libomp subdirectory for common libomp-shlibs package</span>
<span class="gi">+# leave legacy copy in %p/opt/llvm-$brv/lib for clang39-shlibs</span>
<span class="gi">+   install -d %i/lib/libomp</span>
<span class="gi">+   pushd %i/opt/llvm-$brv/lib</span>
<span class="gi">+       cp libomp.dylib libiomp5.dylib libgomp.dylib %i/lib/libomp</span>
<span class="gi">+   popd</span>
<span class="gi">+   install_name_tool -id %p/lib/libomp/libomp.dylib %i/lib/libomp/libomp.dylib</span>
 &lt;&lt;
 SplitOff: &lt;&lt;
    Package: clang39-tools
<span class="gu">@@ -1178,7 +1185,9 @@</span>
    #   odcctools,
    # choosing to require opt-in instead of defaulting to libcxx1-dev
    #   libcxx1-dev,
<span class="gi">+       libomp-dev (&gt;= %v-%r),</span>
        clang39-shlibs (= %v-%r),
<span class="gi">+       libomp-shlibs (&gt;= %v-%r),</span>
        polly39-shlibs (= %v-%r)
    &lt;&lt;
    Description: Executables and runtime for clang compiler
<span class="gu">@@ -1186,7 +1195,6 @@</span>
    Files: &lt;&lt;
        bin/clang*
        opt/llvm-3.9/bin/clang*
<span class="gd">-       opt/llvm-3.9/bin/ld</span>
        opt/llvm-3.9/lib/clang
    &lt;&lt;
    DescUsage: &lt;&lt;
<span class="gu">@@ -1313,6 +1321,32 @@</span>
    &lt;&lt;
 &lt;&lt;
 SplitOff14: &lt;&lt;
<span class="gi">+   Package: libomp-shlibs</span>
<span class="gi">+   Description: Standard library for libomp</span>
<span class="gi">+   Files: &lt;&lt;</span>
<span class="gi">+       (%m != powerpc) lib//libomp/lib*omp*.dylib</span>
<span class="gi">+   &lt;&lt;</span>
<span class="gi">+   DocFiles: &lt;&lt;</span>
<span class="gi">+       projects/openmp/CREDITS.txt</span>
<span class="gi">+       projects/openmp/LICENSE.txt</span>
<span class="gi">+   &lt;&lt;</span>
<span class="gi">+   Shlibs: &lt;&lt;</span>
<span class="gi">+       (%m != powerpc) %p/lib/libomp/libomp.dylib 5.0.0 %n (&gt;= 3.9.0-2)</span>
<span class="gi">+   &lt;&lt;</span>
<span class="gi">+&lt;&lt;</span>
<span class="gi">+SplitOff15: &lt;&lt;</span>
<span class="gi">+   Package: libomp-dev</span>
<span class="gi">+   Description: Standard library header for libomp</span>
<span class="gi">+   Depends: libomp-shlibs (= %v-%r)</span>
<span class="gi">+   BuildDependsOnly: false</span>
<span class="gi">+   Files: include/libomp/omp.h</span>
<span class="gi">+   DescPackaging: &lt;&lt;</span>
<span class="gi">+   BuildDependsOnly set to false since clang compiler always needs</span>
<span class="gi">+   access to omp.h via a symlink in %p/opt/llvm-3.9/lib/clang/%v/include</span>
<span class="gi">+   which allows multiple compiler releases to use the latest libomp.</span>
<span class="gi">+   &lt;&lt;</span>
<span class="gi">+&lt;&lt;</span>
<span class="gi">+SplitOff16: &lt;&lt;</span>
    Package: %N-bundle
    Description: Bundle of LLVM/Clang compiler tools
    Type: bundle
</pre></div>


<p>Note that while clang39 now links against the libomp.dylib installed in %p/lib/libomp, a clang39-shlibs retains a legacy copy of libomp.dylib installed in %p/opt/llvm-3,9/lib. This legacy copy will be dropped in the llvm40 packaging and only exists because llvm39-3.9.0-1 was released without the libomp split-off changes. Also note that libomp-dev is 'BuildDependsOnly: false' because all future clangXY packages will require it to obtain the omp.h header via the symlink.</p>
<p>Tested on 10.11 with 'fink -m update-all' to verifiy clean upgrade from an installed copy of clang39-3.9.0-1.</p>
<hr/>
<p>Sent from sourceforge.net because [email protected] is subscribed to <a href="https://sourceforge.net/p/fink/package-submissions/">https://sourceforge.net/p/fink/package-submissions/</a></p>
<p>To unsubscribe from further messages, a project admin can change settings at <a href="https://sourceforge.net/p/fink/admin/package-submissions/options.">https://sourceforge.net/p/fink/admin/package-submissions/options.</a>  Or, if this is a mailing list, you can unsubscribe from the mailing list.</p></div>
--===============2154402256035999940==--
--===============0382972483872987318==--


--===============6914683325869341681==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
--===============6914683325869341681==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Fink-tracker mailing list
[email protected]
http://news.gmane.org/gmane.os.apple.fink.tracker
--===============6914683325869341681==--