Opened 11 years ago
Closed 11 years ago
#41548 closed defect (fixed)
llvm-3.4 @3.4-r193941: ‘class std::vector<llvm::SDValue, std::allocator<llvm::SDValue> >’ has no member named ‘data’
Reported by: | ryandesign (Ryan Carsten Schmidt) | Owned by: | jeremyhu (Jeremy Huddleston Sequoia) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.2.1 |
Keywords: | Cc: | ||
Port: | llvm-3.4 |
Description
llvm-3.4 fails to build on Leopard i386:
SIISelLowering.cpp:1139: error: ‘class std::vector<llvm::SDValue, std::allocator<llvm::SDValue> >’ has no member named ‘data’
I'm trying to install vigra, which blacklists compilers older than clang-3.4.
Attachments (2)
Change History (9)
Changed 11 years ago by ryandesign (Ryan Carsten Schmidt)
Attachment: | main.log.bz2 added |
---|
comment:1 Changed 11 years ago by jeremyhu (Jeremy Huddleston Sequoia)
comment:2 Changed 11 years ago by jeremyhu (Jeremy Huddleston Sequoia)
Introduced in:
commit 84a775d8e3d5a3765e01db4b454f849ed8be99be Author: Christian Konig <christian.koenig@amd.com> Date: Wed Apr 10 08:39:08 2013 +0000 R600/SI: adjust writemask to only the used components Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Michel Dänzer <michel.daenzer@amd.com> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179165 91177308-0d34-0410-b5e6-96231b3b80d8
comment:3 Changed 11 years ago by jeremyhu (Jeremy Huddleston Sequoia)
Email sent to committer and llvmdev:
Hi Christian, Ryan just reported to me that llvm-3.4 is no longer building on OS X Leopard (https://trac.macports.org/ticket/41548). It seems the issue is with a commit that you made back in April (referenced below) which added this to SIISelLowering.cpp: // Adjust the writemask in the node std::vector<SDValue> Ops; Ops.push_back(DAG.getTargetConstant(NewDmask, MVT::i32)); for (unsigned i = 1, e = Node->getNumOperands(); i != e; ++i) Ops.push_back(Node->getOperand(i)); Node = (MachineSDNode*)DAG.UpdateNodeOperands(Node, Ops.data(), Ops.size()); That fails with Leopard's libstdc++ STL which does not a data method for std::vector. This method was added in C++11: http://www.cplusplus.com/reference/vector/vector/ Is llvm-3.4 now requiring a C++11 runtime? If not, can we solve this a different way? Thanks, Jeremy commit 84a775d8e3d5a3765e01db4b454f849ed8be99be Author: Christian Konig <christian.koenig@amd.com> Date: Wed Apr 10 08:39:08 2013 +0000 R600/SI: adjust writemask to only the used components Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Michel Dänzer <michel.daenzer@amd.com> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179165 91177308-0d34-0410-b5e6-96231b3b80d8
Changed 11 years ago by jeremyhu (Jeremy Huddleston Sequoia)
Attachment: | Portfile.patch added |
---|
Untested patch to disable R600 on Leopard
comment:4 Changed 11 years ago by jeremyhu (Jeremy Huddleston Sequoia)
Ryan, can you give that patch a try?
comment:5 Changed 11 years ago by ryandesign (Ryan Carsten Schmidt)
Thanks; now it fails as clang-3.3 does in #41322.
comment:6 Changed 11 years ago by jeremyhu (Jeremy Huddleston Sequoia)
r113945, leaving open to track real fix.
comment:7 Changed 11 years ago by jeremyhu (Jeremy Huddleston Sequoia)
Resolution: | → fixed |
---|---|
Status: | new → closed |
3.5 requires C++11, so there's no real point in keeping this open.
Note: See
TracTickets for help on using
tickets.
We could just disable R600 on Leopard for a short term fix.