Opened 12 years ago
Closed 9 years ago
#37320 closed enhancement (fixed)
tbb: add universal variant
Reported by: | ryandesign (Ryan Carsten Schmidt) | Owned by: | sean@… |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | |
Keywords: | haspatch | Cc: | cooljeanius (Eric Gallager) |
Port: | tbb |
Description
The tbb port should have a universal variant if possible.
Due to the build system's insistence on nonstandard variables to indicate desired architecture, I wouldn't even attempt this without using the muniversal portgroup.
This was proposed before and a patch provided as part of #25208 but was ignored or forgotten.
Attachments (1)
Change History (15)
comment:1 Changed 12 years ago by cooljeanius (Eric Gallager)
comment:4 Changed 12 years ago by cooljeanius (Eric Gallager)
#23944 would have to be resolved first I think...
comment:5 Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)
#23944 is about PowerPC, so no, fixing that is not necessary to fix the universal variant, if we're talking about the default i386 x86_64 universal variant on Snow Leopard and up.
comment:6 Changed 11 years ago by cooljeanius (Eric Gallager)
so now that there's a new version as of r106358, will a universal variant work for tbb now?
comment:7 Changed 11 years ago by cooljeanius (Eric Gallager)
How about now as of r107772? Also could someone cc stromnov on this, as he was the last one to update it?
comment:8 Changed 11 years ago by mf2k (Frank Schima)
Owner: | changed from mnick@… to macports-tickets@… |
---|---|
Version: | 2.1.2 |
mnick has retired.
comment:9 Changed 11 years ago by cooljeanius (Eric Gallager)
r117034 made sure that we are UsingTheRightCompiler again... doesn't doing that usually make it easier to add a universal variant?
comment:10 follow-up: 12 Changed 11 years ago by ryandesign (Ryan Carsten Schmidt)
No, it's not related. Ports like tbb that don't use a standard build system need help both using the right compiler and using the right architecture (and a universal build is a continuation of using the right architecture), but they are separate tasks. tbb's build system is unusual and takes a special command line argument to indicate the desired architecture. As far as I know, multiple architectures cannot be specified simultaneously with this build system. So a universal build would involve building separately for each architecture and then combining with lipo
. That's what the muniversal portgroup does, however the muniversal portgroup also currently requires a standard destroot phase, which the tbb port does not have, because again the tbb build system is unusual and its Makefile does not have an install
target, so we install things manually.
It might not be too difficult to convert the custom destroot block into a Makefile install
target, at which point using the muniversal portgroup should become possible.
comment:11 Changed 10 years ago by ryandesign (Ryan Carsten Schmidt)
Owner: | changed from macports-tickets@… to sean@… |
---|
comment:12 Changed 9 years ago by ryandesign (Ryan Carsten Schmidt)
Keywords: | haspatch added |
---|
Replying to ryandesign@…:
however the muniversal portgroup also currently requires a standard destroot phase, which the tbb port does not have
The port could easily use a standard destroot phase that does nothing, the problem was I didn't think there was a way to do something else after that but before the muniversal portgroup does the merging, but it turns out there is: one can define a merger-post-destroot
proc.
An additional problem was that the arch needs to supplied to the test phase. The muniversal portgroup didn't have the capability to specify different args or env vars in the test phase, so I added that in r138613.
The attached patch implements a working universal variant, as far as I can tell, though I haven't tried to use tbb after this change (don't know how). May I commit it?
Changed 9 years ago by ryandesign (Ryan Carsten Schmidt)
Attachment: | tbb-universal.diff added |
---|
comment:14 Changed 9 years ago by ryandesign (Ryan Carsten Schmidt)
Resolution: | → fixed |
---|---|
Status: | new → closed |
Committed in r140447.
so once this gets committed, the
+tbb
and+universal
variants won't conflict for OpenCV anymore, right?