Opened 6 years ago

Closed 6 years ago

Last modified 6 years ago

#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 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 6 years ago by seanfarley (Sean Farley)

For some reason, /opt/local/include/boost is not searched. Perhaps you need to update the CMake cache to include that?

comment:2 Changed 6 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 6 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 6 years ago by dershow

Yes, it is there. I had searched for array and array.h, but missed array.hpp

comment:5 Changed 6 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 6 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 6 years ago by seanfarley (Sean Farley)

Resolution: invalid
Status: newclosed

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 6 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 6 years ago by dershow

openmodelica now includes the correct search path, and now builds fine again.

comment:10 Changed 6 years ago by dershow

Resolution: invalid
Status: closedreopened

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 6 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 6 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 6 years ago by ryandesign (Ryan Schmidt)

Resolution: invalid
Status: reopenedclosed

openmodelica now does build correctly after the fixes in this ticket

Ok.

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

Cc: ryandesign@… added

Cc Me!

Note: See TracTickets for help on using tickets.