Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 31 Mar 2015 22:31:08 +0000
From:      Ben Woods <woodsb02@gmail.com>
To:        Gleb Popov <6yearold@gmail.com>
Cc:        FreeBSD ports <freebsd-ports@freebsd.org>
Subject:   Re: Update editors/abiword to 3.0.1
Message-ID:  <CAOc73CA42S38MKZLNuo%2B3XxNUy_wn-pFaw7Xz-XU%2Bha5f=_5EQ@mail.gmail.com>
In-Reply-To: <CALH631njaMaw9jB3=yHOjc%2BrLad541227JUxoQqyeV0rKt9Diw@mail.gmail.com>
References:  <CAOc73CD4-N33%2BKvw3pSpNPx8U_xZeUTVa=aQLzWO18rAhWBsQw@mail.gmail.com> <CALH631njaMaw9jB3=yHOjc%2BrLad541227JUxoQqyeV0rKt9Diw@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Thanks for the feedback Gleb. I am compiling with clang 3.4.1 in FreeBSD
10.1 base.

I have since spoken to an Abiword developer, who kindly helped me fix this
issue with the following patch (which I will include in the PR I will
submit to update this port):

diff --git a/src/text/ptbl/xp/pd_DocumentRDF.cpp
b/src/text/ptbl/xp/pd_DocumentRDF.cpp
index 798e262..3406b88 100644
--- a/src/text/ptbl/xp/pd_DocumentRDF.cpp
+++ b/src/text/ptbl/xp/pd_DocumentRDF.cpp
@@ -570,6 +570,11 @@ bool PD_URI::operator==(const std::string& b) const
     return m_value == b;
 }

+bool PD_URI::operator<(const PD_URI& b) const
+{
+    return m_value < b.m_value;
+}
+
 PD_URI
 PD_URI::prefixedToURI( PD_RDFModelHandle model ) const
 {
@@ -611,11 +616,6 @@ bool PD_URI::write( std::ostream& ss ) const
     return true;
 }

-bool operator<( PD_URI a, PD_URI b)
-{
-    return a.toString() < b.toString();
-}
-
 bool operator<( std::pair< PD_URI, PD_URI > a, PD_URI b)
 {
     return a.first.toString() < b.toString();
diff --git a/src/text/ptbl/xp/pd_DocumentRDF.h
b/src/text/ptbl/xp/pd_DocumentRDF.h
index 66e9fd6..3e6b8ef 100644
--- a/src/text/ptbl/xp/pd_DocumentRDF.h
+++ b/src/text/ptbl/xp/pd_DocumentRDF.h
@@ -68,6 +68,7 @@ class ABI_EXPORT PD_URI
     bool isValid() const;
     bool operator==(const PD_URI& b) const;
     bool operator==(const std::string& b) const;
+    bool operator<(const PD_URI& b) const;

     virtual bool read( std::istream& ss );
     virtual bool write( std::ostream& ss ) const;


Regards,
Ben

On Wed, Apr 1, 2015 at 2:22 AM Gleb Popov <6yearold@gmail.com> wrote:

> On Tue, Mar 31, 2015 at 6:00 PM, Ben Woods <woodsb02@gmail.com> wrote:
>
>> I am trying to update editors/abiword from 2.8.6 to 3.0.1.
>>
>> Part way through compiling my new test port, I get the following errors:
>>
>> gmake[7]: Entering directory
>> '/wrkdirs/usr/ports/editors/abiword/work/abiword-3.0.1/src/text/fmt/xp'
>>   CXX      fl_Squiggles.lo
>>   CXX      fb_Alignment.lo
>> In file included from fb_Alignment.cpp:22:
>> ./fb_Alignment.h:114:8: warning: private field 'm_iSpaceCountLeft' is
>> not used [-Wunused-private-field]
>>         int                     m_iSpaceCountLeft;
>>                                 ^
>> ./fb_Alignment.h:115:8: warning: private field 'm_iSpaceCount' is not
>> used [-Wunused-private-field]
>>         int                     m_iSpaceCount;
>>                                 ^
>> 2 warnings generated.
>>   CXX      fb_ColumnBreaker.lo
>> In file included from fb_ColumnBreaker.cpp:22:
>> ./fb_ColumnBreaker.h:53:24: warning: private field 'm_pCurrentBlock'
>> is not used [-Wunused-private-field]
>>         fl_BlockLayout *      m_pCurrentBlock;
>>                               ^
>> 1 warning generated.
>>   CXX      fb_LineBreaker.lo
>>   CXX      fg_Graphic.lo
>>   CXX      fg_GraphicRaster.lo
>>   CXX      fg_GraphicVector.lo
>>   CXX      fl_AutoLists.lo
>>   CXX      fl_AutoNum.lo
>>   CXX      fl_BlockLayout.lo
>>   CXX      fl_ContainerLayout.lo
>>   CXX      fl_DocLayout.lo
>>   CXX      fl_DocListener.lo
>>   CXX      fl_FootnoteLayout.lo
>>   CXX      fl_FrameLayout.lo
>>   CXX      fl_Layout.lo
>>   CXX      fl_SectionLayout.lo
>>   CXX      fl_SelectionPreserver.lo
>>   CXX      fl_TableLayout.lo
>>   CXX      fl_TestRoutines.lo
>>   CXX      fl_TOCLayout.lo
>> In file included from fl_TOCLayout.cpp:32:
>> ./fl_TOCLayout.h:82:20: warning: private field 'm_iStartAt' is not
>> used [-Wunused-private-field]
>>         UT_sint32         m_iStartAt;
>>                           ^
>> 1 warning generated.
>>   CXX      fp_AnnotationRun.lo
>>   CXX      fp_RDFAnchorRun.lo
>> In file included from fp_RDFAnchorRun.cpp:23:
>> In file included from ./fp_Run.h:33:
>> In file included from ../../../../src/af/util/xp/ut_misc.h:39:
>> In file included from /usr/include/c++/v1/string:439:
>> In file included from /usr/include/c++/v1/algorithm:627:
>> In file included from /usr/include/c++/v1/memory:601:
>> /usr/include/c++/v1/__functional_base:63:21: error: invalid operands
>> to binary expression ('const PD_URI' and 'const PD_URI')
>>         {return __x < __y;}
>>                 ~~~ ^ ~~~
>> /usr/include/c++/v1/map:457:17: note: in instantiation of member
>> function 'std::__1::less<PD_URI>::operator()' requested here
>>         {return static_cast<const _Compare&>(*this)(__x.__cc.first,
>> __y.__cc.first);}
>>                 ^
>> /usr/include/c++/v1/__tree:1573:29: note: in instantiation of member
>> function 'std::__1::__map_value_compare<PD_URI,
>> std::__1::__value_type<PD_URI, PD_Object>, std::__1::less<PD_URI>,
>> true>::operator()' requested here
>>     if (__hint == end() || !value_comp()(*__hint, __v))  // check before
>>                             ^
>> /usr/include/c++/v1/__tree:1912:36: note: in instantiation of member
>> function 'std::__1::__tree<std::__1::__value_type<PD_URI, PD_Object>,
>> std::__1::__map_value_compare<PD_URI, std::__1::__value_type<PD_URI,
>> PD_Object>, std::__1::less<PD_URI>, true>,
>> std::__1::allocator<std::__1::__value_type<PD_URI, PD_Object> >
>> >::__find_leaf' requested here
>>     __node_base_pointer& __child = __find_leaf(__p, __parent, __v);
>>                                    ^
>> /usr/include/c++/v1/map:1779:25: note: in instantiation of member
>> function 'std::__1::__tree<std::__1::__value_type<PD_URI, PD_Object>,
>> std::__1::__map_value_compare<PD_URI, std::__1::__value_type<PD_URI,
>> PD_Object>, std::__1::less<PD_URI>, true>,
>> std::__1::allocator<std::__1::__value_type<PD_URI, PD_Object> >
>> >::__insert_multi' requested here
>>                 __tree_.__insert_multi(__e.__i_, *__f);
>>                         ^
>> /usr/include/c++/v1/map:1612:13: note: in instantiation of function
>> template specialization 'std::__1::multimap<PD_URI, PD_Object,
>> std::__1::less<PD_URI>, std::__1::allocator<std::__1::pair<const
>> PD_URI, PD_Object> >
>>
>> >::insert<std::__1::__map_const_iterator<std::__1::__tree_const_iterator<std::__1::__value_type<PD_URI,
>> PD_Object>, std::__1::__tree_node<std::__1::__value_type<PD_URI,
>> PD_Object>, void *> *, long> > >' requested here
>>             insert(__m.begin(), __m.end());
>>             ^
>> ../../../../src/text/ptbl/xp/pd_DocumentRDF.h:198:18: note: in
>> instantiation of member function 'std::__1::multimap<PD_URI,
>> PD_Object, std::__1::less<PD_URI>,
>> std::__1::allocator<std::__1::pair<const PD_URI, PD_Object> >
>> >::multimap' requested here
>> class ABI_EXPORT PD_RDFModelIterator
>>                  ^
>> ../../../../src/af/util/xp/ut_string_class.h:124:17: note: candidate
>> function not viable: no known conversion from 'const PD_URI' to 'const
>> UT_String' for 1st argument
>> ABI_EXPORT bool operator<(const UT_String& s1, const UT_String& s2);
>>                 ^
>> ../../../../src/af/util/xp/ut_string_class.h:277:17: note: candidate
>> function not viable: no known conversion from 'const PD_URI' to 'const
>> UT_UTF8String' for 1st argument
>> ABI_EXPORT bool operator<(const UT_UTF8String& s1, const UT_UTF8String&
>> s2);
>>                 ^
>> ../../../../src/af/util/xp/ut_string_class.h:394:6: note: candidate
>> function not viable: no known conversion from 'const PD_URI' to 'const
>> UT_UCS4String' for 1st argument
>> bool operator<(const UT_UCS4String& s1, const UT_UCS4String& s2);
>>      ^
>> /usr/include/c++/v1/utility:419:1: note: candidate template ignored:
>> could not match 'pair<type-parameter-0-0, type-parameter-0-1>' against
>> 'const PD_URI'
>> operator< (const pair<_T1,_T2>& __x, const pair<_T1,_T2>& __y)
>> ^
>> /usr/include/c++/v1/iterator:582:1: note: candidate template ignored:
>> could not match 'reverse_iterator<type-parameter-0-0>' against 'const
>> PD_URI'
>> operator<(const reverse_iterator<_Iter1>& __x, const
>> reverse_iterator<_Iter2>& __y)
>> ^
>> /usr/include/c++/v1/iterator:977:1: note: candidate template ignored:
>> could not match 'move_iterator<type-parameter-0-0>' against 'const
>> PD_URI'
>> operator<(const move_iterator<_Iter1>& __x, const move_iterator<_Iter2>&
>> __y)
>> ^
>> /usr/include/c++/v1/iterator:1293:1: note: candidate template ignored:
>> could not match '__wrap_iter<type-parameter-0-0>' against 'const
>> PD_URI'
>> operator<(const __wrap_iter<_Iter1>& __x, const __wrap_iter<_Iter2>&
>> __y) _NOEXCEPT
>> ^
>> 1 error generated.
>> Makefile:823: recipe for target 'fp_RDFAnchorRun.lo' failed
>> gmake[7]: *** [fp_RDFAnchorRun.lo] Error 1
>> gmake[7]: Leaving directory
>> '/wrkdirs/usr/ports/editors/abiword/work/abiword-3.0.1/src/text/fmt/xp'
>> Makefile:842: recipe for target 'all-recursive' failed
>> gmake[6]: *** [all-recursive] Error 1
>> gmake[6]: Leaving directory
>> '/wrkdirs/usr/ports/editors/abiword/work/abiword-3.0.1/src/text/fmt/xp'
>> Makefile:529: recipe for target 'all-recursive' failed
>> gmake[5]: *** [all-recursive] Error 1
>> gmake[5]: Leaving directory
>> '/wrkdirs/usr/ports/editors/abiword/work/abiword-3.0.1/src/text/fmt'
>> Makefile:528: recipe for target 'all-recursive' failed
>> gmake[4]: *** [all-recursive] Error 1
>> gmake[4]: Leaving directory
>> '/wrkdirs/usr/ports/editors/abiword/work/abiword-3.0.1/src/text'
>> Makefile:1157: recipe for target 'all-recursive' failed
>> gmake[3]: *** [all-recursive] Error 1
>> gmake[3]: Leaving directory
>> '/wrkdirs/usr/ports/editors/abiword/work/abiword-3.0.1/src'
>> Makefile:774: recipe for target 'all-recursive' failed
>> gmake[2]: *** [all-recursive] Error 1
>> gmake[2]: Leaving directory
>> '/wrkdirs/usr/ports/editors/abiword/work/abiword-3.0.1'
>> Makefile:593: recipe for target 'all' failed
>> gmake[1]: *** [all] Error 2
>> gmake[1]: Leaving directory
>> '/wrkdirs/usr/ports/editors/abiword/work/abiword-3.0.1'
>> *** Error code 1
>>
>> Stop.
>> make: stopped in /usr/ports/editors/abiword
>>
>>
>> Is this an issue with the new C++ stack libc++ referring to the std::__1
>> namespace, not just std::, as explained at the link below?
>> https://wiki.freebsd.org/NewC++Stack
>>
>> Regards,
>> Ben
>>
> _______________________________________________
>> freebsd-ports@freebsd.org mailing list
>> http://lists.freebsd.org/mailman/listinfo/freebsd-ports
>> To unsubscribe, send any mail to "freebsd-ports-unsubscribe@freebsd.org"
>>
>
> Nope, the error is that there is no operator< for operands with types
> ('const PD_URI' and 'const PD_URI'). They, probably, should be implicitly
> casted to something else, but something goes wrong. What compiler are you
> building with?
>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAOc73CA42S38MKZLNuo%2B3XxNUy_wn-pFaw7Xz-XU%2Bha5f=_5EQ>