Opened 11 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)

tbb-universal.diff (3.0 KB) - added by ryandesign (Ryan Carsten Schmidt) 9 years ago.

Download all attachments as: .zip

Change History (15)

comment:1 Changed 11 years ago by cooljeanius (Eric Gallager)

so once this gets committed, the +tbb and +universal variants won't conflict for OpenCV anymore, right?

comment:2 Changed 11 years ago by cooljeanius (Eric Gallager)

Cc: egall@… added

Cc Me!

comment:3 Changed 11 years ago by ryandesign (Ryan Carsten Schmidt)

Hopefully!

comment:4 Changed 11 years ago by cooljeanius (Eric Gallager)

#23944 would have to be resolved first I think...

comment:5 Changed 11 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 10 years ago by mf2k (Frank Schima)

Owner: changed from mnick@… to macports-tickets@…
Version: 2.1.2

mnick has retired.

comment:9 Changed 10 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 Changed 10 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 in reply to:  10 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:13 Changed 9 years ago by sean@…

Let me give this a whirl. I'll respond within a day or so.

comment:14 Changed 9 years ago by ryandesign (Ryan Carsten Schmidt)

Resolution: fixed
Status: newclosed

Committed in r140447.

Note: See TracTickets for help on using tickets.