[cgma-dev] Missing include on Mavericks (+patch)

Jane Hu janejhu at gmail.com
Tue Jan 21 10:28:57 CST 2014


Thank you, David! I've double checked on linux platform, and it works too.
Already check it in the cgm system, revision 6114.

Jane


On Mon, Jan 20, 2014 at 12:22 PM, David Thompson <david.thompson at kitware.com
> wrote:

> Hi all,
>
> I've found a fix for the Mavericks compile issue. The new Apple libc++
> uses a specialization for std::vector<bool> that prevents DLIList<bool>
> from re-using the std::vector<X>::const_reference typedef blindly. The
> following fixes things for me:
>
> --- a/util/DLIList.hpp
> +++ b/util/DLIList.hpp
> @@ -40,7 +40,7 @@ public:
>    friend class DLIListIterator<X>;
>
>    typedef typename std::vector<X>::reference reference;
> -  typedef typename std::vector<X>::const_reference const_reference;
> +  typedef const typename std::vector<X>::value_type& const_reference;
>    typedef typename std::vector<X>::pointer pointer;
>    typedef typename std::vector<X>::const_pointer const_pointer;
>
>
> and should work for other platforms.
>
>         David
>
>
> On Dec 10, 2013, at 1:21 PM, David Thompson <david.thompson at kitware.com>
> wrote:
>
> > Hi Rajeev,
> >
> >> I’m getting similar error on Mavericks.
> >> Did you find a solution?
> >
> > Not yet. My workaround is to use svn version 6078 with the patch at the
> start of this thread.
> >
> >       David
> >
> >
> >
> >>> From: David Thompson <david.thompson at kitware.com>
> >>> Subject: Re: [cgma-dev] Missing include on Mavericks (+patch)
> >>> Date: December 2, 2013 at 6:31:03 PM CST
> >>> To: Jane Hu <janejhu at gmail.com>
> >>> Cc: CGMA Development <cgma-dev at mcs.anl.gov>
> >>>
> >>> Hi Jane,
> >>>
> >>>> Current trunk is only buildable with occ, there's a bug which prevent
> cubit build on cgm14.0 and I am working on it.
> >>>
> >>> I am using OCC, so that's not the problem.
> >>>
> >>>> ... Please let us know when you figured out the cause.
> >>>
> >>> OK.
> >>>
> >>>     Thanks,
> >>>     David
> >>>
> >>>> On Mon, Dec 2, 2013 at 3:08 PM, David Thompson <
> david.thompson at kitware.com> wrote:
> >>>> Hi Jane,
> >>>>
> >>>>> It's just been done. Happy coding!
> >>>>
> >>>> Thanks! However, when I updated to catch this fix, I ran into another
> issue:
> >>>>
> >>>> libtool: compile:  clang++ -I. -I/Users/dcthomp/Source/cgm/geom -I..
> -I../geom/parallel -I../itaps -I/Users/dcthomp/Source/cgm/util -I. -g -Wall
> -mmacosx-version-min=10.9
> --sysroot=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk
> -arch x86_64 -Wall -pipe -pedantic -MT CubitAttribManager.lo -MD -MP -MF
> .deps/CubitAttribManager.Tpo -c
> /Users/dcthomp/Source/cgm/geom/CubitAttribManager.cpp  -fno-common -DPIC -o
> .libs/CubitAttribManager.o
> >>>> /Users/dcthomp/Source/cgm/geom/CubitAttribManager.cpp:108:28: error:
> no viable conversion from 'CubitBoolean' (aka 'bool') to
> >>>>     'const_reference' (aka
> '__bit_const_reference<std::__1::vector<bool, std::__1::allocator<bool> >
> >')
> >>>> mAutoActuateFlags.append(auto_actuate_flag);
> >>>>                          ^~~~~~~~~~~~~~~~~
> >>>>
> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/__bit_reference:124:7:
> note:
> >>>>     candidate constructor (the implicit copy constructor) not viable:
> no known conversion from 'CubitBoolean' (aka 'bool') to
> >>>>     'const std::__1::__bit_const_reference<std::__1::vector<bool,
> std::__1::allocator<bool> > > &' for 1st argument
> >>>> class __bit_const_reference
> >>>>     ^
> >>>>
> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/__bit_reference:140:5:
> note:
> >>>>     candidate constructor not viable: no known conversion from
> 'CubitBoolean' (aka 'bool') to 'const
> >>>>     __bit_reference<std::__1::vector<bool, std::__1::allocator<bool>
> > > &' for 1st argument
> >>>>   __bit_const_reference(const __bit_reference<_Cp>& __x) _NOEXCEPT
> >>>>   ^
> >>>> /Users/dcthomp/Source/cgm/util/DLIList.hpp:448:31: note: passing
> argument to parameter 'new_item' here
> >>>> void append(const_reference new_item);
> >>>>                             ^
> >>>>
> >>>> I haven't been able to figure out the source of this problem. Both
> Apple's new C++ library and the old GNU one specialize vector<bool>, so
> that does not appear to be the cause. If it helps, I had not updated since
> before you moved the cubit-14 branch to the trunk.
> >>>>
> >>>>       David
> >>>>
> >>>>
> >>>>> On Mon, Dec 2, 2013 at 12:43 PM, David Thompson <
> david.thompson at kitware.com> wrote:
> >>>>> Hi all,
> >>>>>
> >>>>> When I try building on OS X Mavericks using the latest Xcode, I get
> an error that pid_t is not defined in util/CubitProcess.h. It appears that
> <unistd.h> must be included for this type to be defined. A patch is below.
> Could someone apply it or help me revise it so I can build without patching
> CGM?
> >>>>>
> >>>>>       Thanks,
> >>>>>       David
> >>>>>
> >>>>> --- a/util/CubitProcess.hpp
> >>>>> +++ b/util/CubitProcess.hpp
> >>>>> @@ -20,6 +20,7 @@
> >>>>> #include <windows.h>
> >>>>> typedef PROCESS_INFORMATION PidType;
> >>>>> #else
> >>>>> +#  include <unistd.h>
> >>>>> typedef pid_t PidType;
> >>>>> #endif
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>> --
> >>>>> Jane Hu
> >>>>>
> >>>>> Asst. Researcher
> >>>>> Dept. of Engineering Physics
> >>>>> UW @ Madison
> >>>>>
> >>>>> "And we know that for those who love God, that is, for those who are
> called according to his purpose, all things are working together for good."
> (Romans 8:28)
> >>>>
> >>>>
> >>>>
> >>>>
> >>>> --
> >>>> Jane Hu
> >>>>
> >>>> Asst. Researcher
> >>>> Dept. of Engineering Physics
> >>>> UW @ Madison
> >>>>
> >>>> "And we know that for those who love God, that is, for those who are
> called according to his purpose, all things are working together for good."
> (Romans 8:28)
>
>


-- 
Jane Hu

Asst. Researcher
Dept. of Engineering Physics
UW @ Madison

"And we know that for those who love God, that is, for those who are called
according to his purpose, all things are working together for good."
(Romans 8:28)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/cgma-dev/attachments/20140121/337c1c0c/attachment.html>


More information about the cgma-dev mailing list