#46418 closed defect (invalid)
Boost array
Reported by: | dershow | Owned by: | macports-tickets@… |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.3.3 |
Keywords: | Cc: | ryandesign (Ryan Carsten Schmidt) | |
Port: | boost |
Description
I have an application that I have built fine in the past. It is a non-macport port, that uses OpenSceneGraph, which uses boost.
:info:build In file included from /opt/local/var/macports/build/_opt_local_var_macports_sources_build.openmodelica.org_macports_lang_openmodelica-devel/openmodelica-devel/work/openmodelica_23935/3rdParty/modelica3d/lib/proc3d/src/operations.hpp:26: :info:build In file included from /opt/local/include/boost/numeric/ublas/matrix.hpp:18: :info:build In file included from /opt/local/include/boost/numeric/ublas/vector.hpp:21: :info:build In file included from /opt/local/include/boost/numeric/ublas/storage.hpp:25: :info:build In file included from /opt/local/include/boost/numeric/ublas/exception.hpp:19: :info:build In file included from /opt/local/include/boost/numeric/ublas/detail/config.hpp:299: :info:build /opt/local/include/boost/numeric/ublas/fwd.hpp:21:10: fatal error: 'array' file not found :info:build #include <array> :info:build ^ :info:build 1 error generated. :info:build make[5]: *** [lib/proc3d/CMakeFiles/proc3d.dir/src/proc3d.cpp.o] Error 1
So, it looks to me like /opt/local/include/boost/numeric/ublas/fwd.hpp can't find the file <array> I am not sure what has changed, but this include is causing a difficulty.
Thanks,
Change History (14)
comment:1 Changed 10 years ago by seanfarley (Sean Farley)
comment:2 Changed 10 years ago by dershow
I'm not sure how to update cache? Is the CMake cache part of "cmake" or part of the specific application being built?
I did just do a search for array in boost and I see these three directories:
/opt/local/include/boost/fusion/adapted/array /opt/local/include/boost/preprocessor/array /opt/local/include/boost/tr1/tr1/array
and this file: /opt/local/include/boost/tr1/tr1/bcc32/array.h
comment:3 Changed 10 years ago by seanfarley (Sean Farley)
The array header is located at /opt/local/include/boost/array.hpp ... do you not have that file?
comment:4 Changed 10 years ago by dershow
Yes, it is there. I had searched for array and array.h, but missed array.hpp
comment:5 Changed 10 years ago by seanfarley (Sean Farley)
Then either your project or OpenSceneGraph is missing an -I/opt/local/include/boost
. It seems you have an openmodelica port in your own local tree? I'll try installing OpenSceneGraph and building openmodelica but I am pretty sure this is just an incorrectly specified header location (somewhere in the build system).
comment:6 Changed 10 years ago by dershow
Yes, the issue is when I try to build openmodelica-devel +modelica3d. If I do it without the 3d variant it builds fine. And OpenScenGraph also seems to have been built fine. It was installed as a dependent of openmodelica. But, in the past that was working fine. I have also put in a ticket with OpenModelica, but I don't see any recent changes there, that I think would have caused this problem.
comment:7 Changed 10 years ago by seanfarley (Sean Farley)
Resolution: | → invalid |
---|---|
Status: | new → closed |
Ok, I just looked at openmodelica and its own port tree. I'm afraid you're on your own here. I just updated boost to 1.57 which could cause problems for ports that depend on it. It is impossible for us macports devs to know if people, like openmodelica, have problem with this because their ports our not in our repo.
FYI, the portfile for openmodelica has many problems. For starters, they enforce gcc compilers. This can be fixed by using the compilers portgroup. I am, unfortunately, not paid enough to work on this issue.
comment:8 Changed 10 years ago by dershow
Thanks. Yes, they have kept their own tree. I think that part of the reason for that is that openmodelica-devel is updated with every code change, so it often changes hourly, and I think that they just auto-update the port file. The timing for the problem does look like it showed up around when the update to boost 1.57 happened.
comment:9 Changed 10 years ago by dershow
openmodelica now includes the correct search path, and now builds fine again.
comment:10 Changed 10 years ago by dershow
Resolution: | invalid |
---|---|
Status: | closed → reopened |
I was mistaken about a flag when I was trying to build. It still doesn't work. But, the openmodelica folks are working hard to get this to work. They have confirmed that the build includes: -I/opt/local/include -I/opt/local/include/boost It is very strange, but even so, it is not finding array correctly. And, it used to before the update to boost.
comment:11 Changed 10 years ago by dershow
It seems that /opt/local/include/boost/numeric/ublas/fwd.hpp needs the file named "array" The only place I can find that is in:
/opt/local/include/boost/tr1/tr1/
So, does that have to be explicitly included?
comment:12 Changed 10 years ago by dershow
It turns out that it was an issue with some of the build flags being used, and openmodelica now does build correctly after the fixes in this ticket: https://trac.openmodelica.org/OpenModelica/ticket/3056
comment:13 Changed 10 years ago by ryandesign (Ryan Carsten Schmidt)
Resolution: | → invalid |
---|---|
Status: | reopened → closed |
openmodelica now does build correctly after the fixes in this ticket
Ok.
For some reason, /opt/local/include/boost is not searched. Perhaps you need to update the CMake cache to include that?