Opened 5 years ago
Closed 21 months ago
#58869 closed defect (fixed)
ispc @1.11.0: fatal error: 'type_traits' file not found
Reported by: | ryandesign (Ryan Carsten Schmidt) | Owned by: | |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | |
Keywords: | lion, mountainlion | Cc: | mascguy (Christopher Nielsen) |
Port: | ispc |
Description
ispc does not build on OS X 10.7 or 10.8. The first error is:
/opt/local/libexec/llvm-8.0/include/llvm/Support/type_traits.h:18:10: fatal error: 'type_traits' file not found #include <type_traits> ^~~~~~~~~~~~~
This probably means this software (or the version of llvm it is now using) requires C++11. To indicate that requirement, include the cxx11 1.1 portgroup.
Change History (15)
comment:1 Changed 5 years ago by jmroot (Joshua Root)
comment:2 follow-up: 6 Changed 5 years ago by kencu (Ken)
it's trying to build against libstdc++, which does not support c++11. The cxx11 PG would force a newer stdlib.
Another vote for defaulting us to libc++ on all systems :)
comment:3 follow-up: 5 Changed 5 years ago by kencu (Ken)
one thing to know is that macports-clang-7.0 and later default to c++17 if none is specified. This can break builds on software that doesn't set a standard.
comment:4 Changed 5 years ago by kencu (Ken)
I was going to look into this, but this port doesn't yet build on any MacOS systems at all, so no point trying for the legacy systems.
comment:5 Changed 5 years ago by ryandesign (Ryan Carsten Schmidt)
Replying to kencu:
one thing to know is that macports-clang-7.0 and later default to c++17 if none is specified. This can break builds on software that doesn't set a standard.
Does the new compiler selection code slated to be released in MacPorts 2.6.0 address this? Are we now setting a language standard by default? If not, those changes should at least make it easier to specify a language standard. I believe we'll now have a portfile option for that.
comment:6 Changed 5 years ago by ryandesign (Ryan Carsten Schmidt)
Replying to kencu:
Another vote for defaulting us to libc++ on all systems :)
It's not about voting. It's about deciding how to do it, including how to provide a smooth upgrade path for our existing libstdc++ users, and then writing the code to do it. In any case, let's keep that debate out of this ticket. There are other more appropriate places where that discussion can be had.
comment:7 Changed 5 years ago by tenomoto (Takeshi Enomoto)
I need to setup the old versions.
It is strange that clang-8.0 behaves differently across OS versions.
The build failure on a newer (10.13, 14) was due to a failure to force require_active_variants. Fixed in 5eb768a54de36485a3c04d0502247e04ba734bc4/macports-ports
See: #58868
comment:8 Changed 5 years ago by kencu (Ken)
yes, it is exactly the fact that (all) clang versions behave differently across os versions that is leading us to default to libc++ on older systems. Then clang will behave the same across os versions, and we will see fewer tickets like this one!
comment:9 Changed 4 years ago by ryandesign (Ryan Carsten Schmidt)
The new compiler selection logic in MacPorts base has been released, but also a new ispc-clang subport exists which apparently the ispc port is now supposed to be using (but doesn't actually appear to be using). We will need to see what happens on the 10.7 or 10.8 buildbot worker after ispc-clang is fixed so that it can build and so that it is used.
comment:10 Changed 3 years ago by mascguy (Christopher Nielsen)
Cc: | mascguy added |
---|
comment:12 Changed 2 years ago by kencu (Ken)
Owner: | changed from tenomoto to nobody |
---|
comment:13 Changed 2 years ago by kencu (Ken)
Owner: | nobody deleted |
---|
comment:14 Changed 2 years ago by kencu (Ken)
Keywords: | lion mountainlion added |
---|
comment:15 Changed 21 months ago by cjones051073 (Chris Jones)
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Update to 1.19.0 fixed build down to 10.7
Using the cxx11 portgroup will do nothing since this port is already setting configure.compiler to clang-8.0.