Hi,

Today I was trying to build lyx-1.3.0 for our ix86-linux-gnu systems, but in
doing so I encountered serious problems.

==========================================

First I tried with gcc-2.95.3 and got (with long lines wrapped in order not to
exceed 80 columns)

../../../lyx-1.3.0/boost/boost/shared_ptr.hpp:203:
         template instantiation depth exceeds maximum of 17
../../../lyx-1.3.0/boost/boost/shared_ptr.hpp:203:
          (use -ftemplate-depth-NN to increase the maximum)
../../../lyx-1.3.0/boost/boost/shared_ptr.hpp:203:
           instantiating `boost::detail::shared_ptr_traits<boost::signals
        ::detail::cached_return_value<boost::signals::detail::unusable> >'
../../../lyx-1.3.0/boost/boost/shared_ptr.hpp:203:
           instantiated from `boost::shared_ptr<boost::signals::detail
        ::cached_return_value<boost::signals::detail::unusable> >'
../../../lyx-1.3.0/boost/boost/signals/detail/slot_call_iterator.hpp:42:
           instantiated from `boost::signals::detail::slot_call_policies<boost
        ::signals::detail::call_bound0<void>::caller<boost
        ::function0<void,allocator<boost
        ::function_base> > >,_Rb_tree_iterator<pair<const boost::any,boost
        ::signals::detail::connection_slot_pair>,pair<const boost::any,boost
        ::signals::detail::connection_slot_pair> &,pair<const boost::any,boost
        ::signals::detail::connection_slot_pair> *> >'
../../../lyx-1.3.0/boost/boost/type_traits/is_convertible.hpp:124:
           instantiated from `boost::detail::is_convertible_impl<boost
        ::signals::detail::slot_call_policies<boost::signals::detail
        ::call_bound0<void>::caller<boost::function0<void,allocator<boost
        ::function_base> > >,_Rb_tree_iterator<pair<const boost::any,boost
        ::signals::detail::connection_slot_pair>,pair<const boost::any,boost
        ::signals::detail::connection_slot_pair> &,pair<const boost::any,boost
        ::signals::detail::connection_slot_pair> *> > &,boost::detail
        ::int_convertible>'
../../../lyx-1.3.0/boost/boost/type_traits/is_enum.hpp:91:
           instantiated from `boost::is_convertible<boost::signals::detail
        ::slot_call_policies<boost::signals::detail::call_bound0<void>
        ::caller<boost::function0<void,allocator<boost
        ::function_base> > >,_Rb_tree_iterator<pair<const boost::any,boost
        ::signals::detail::connection_slot_pair>,pair<const boost::any,boost
        ::signals::detail::connection_slot_pair> &,pair<const boost::any,boost
        ::signals::detail::connection_slot_pair> *> > &,boost::detail
        ::int_convertible>'
../../../lyx-1.3.0/boost/boost/type_traits/is_enum.hpp:91:
           instantiated from `boost::detail::is_enum_helper<false>::type<boost
        ::signals::detail::slot_call_policies<boost::signals::detail
        ::call_bound0<void>::caller<boost::function0<void,allocator<boost
        ::function_base> > >,_Rb_tree_iterator<pair<const boost::any,boost
        ::signals::detail::connection_slot_pair>,pair<const boost::any,boost
        ::signals::detail::connection_slot_pair> &,pair<const boost::any,boost
        ::signals::detail::connection_slot_pair> *> > &>'
../../../lyx-1.3.0/boost/boost/type_traits/is_enum.hpp:91:
           instantiated from `boost::detail::is_enum_impl<boost::signals::detail
        ::slot_call_policies<boost::signals::detail::call_bound0<void>
        ::caller<boost::function0<void,allocator<boost
        ::function_base> > >,_Rb_tree_iterator<pair<const boost::any,boost
        ::signals::detail::connection_slot_pair>,pair<const boost::any,boost
        ::signals::detail::connection_slot_pair> &,pair<const boost::any,boost
        ::signals::detail::connection_slot_pair> *> > >'
../../../lyx-1.3.0/boost/boost/type_traits/is_scalar.hpp:36:
           instantiated from `boost::is_enum<boost::signals::detail
        ::slot_call_policies<boost::signals::detail::call_bound0<void>
        ::caller<boost::function0<void,allocator<boost
        ::function_base> > >,_Rb_tree_iterator<pair<const boost::any,boost
        ::signals::detail::connection_slot_pair>,pair<const boost::any,boost
        ::signals::detail::connection_slot_pair> &,pair<const boost::any,boost
        ::signals::detail::connection_slot_pair> *> > >'
../../../lyx-1.3.0/boost/boost/type_traits/is_scalar.hpp:36:
           instantiated from `boost::detail::is_scalar_impl<boost::signals
        ::detail::slot_call_policies<boost::signals::detail::call_bound0<void>
        ::caller<boost::function0<void,allocator<boost
        ::function_base> > >,_Rb_tree_iterator<pair<const boost::any,boost
        ::signals::detail::connection_slot_pair>,pair<const boost::any,boost
        ::signals::detail::connection_slot_pair> &,pair<const boost::any,boost
        ::signals::detail::connection_slot_pair> *> > >'
../../../lyx-1.3.0/boost/boost/type_traits/is_class.hpp:73:
           instantiated from `boost::is_scalar<boost::signals::detail
        ::slot_call_policies<boost::signals::detail::call_bound0<void>
        ::caller<boost::function0<void,allocator<boost
        ::function_base> > >,_Rb_tree_iterator<pair<const boost::any,boost
        ::signals::detail::connection_slot_pair>,pair<const boost::any,boost
        ::signals::detail::connection_slot_pair> &,pair<const boost::any,boost
        ::signals::detail::connection_slot_pair> *> > >'
../../../lyx-1.3.0/boost/boost/type_traits/is_class.hpp:73:
           instantiated from `boost::detail::is_class_impl<boost::signals
        ::detail::slot_call_policies<boost::signals::detail::call_bound0<void>
        ::caller<boost::function0<void,allocator<boost
        ::function_base> > >,_Rb_tree_iterator<pair<const boost::any,boost
        ::signals::detail::connection_slot_pair>,pair<const boost::any,boost
        ::signals::detail::connection_slot_pair> &,pair<const boost::any,boost
        ::signals::detail::connection_slot_pair> *> > >'
../../../lyx-1.3.0/boost/boost/type_traits/is_empty.hpp:74:
           instantiated from `boost::is_class<boost::signals::detail
        ::slot_call_policies<boost::signals::detail::call_bound0<void>
        ::caller<boost::function0<void,allocator<boost
        ::function_base> > >,_Rb_tree_iterator<pair<const boost::any,boost
        ::signals::detail::connection_slot_pair>,pair<const boost::any,boost
        ::signals::detail::connection_slot_pair> &,pair<const boost::any,boost
        ::signals::detail::connection_slot_pair> *> > >'
../../../lyx-1.3.0/boost/boost/type_traits/is_empty.hpp:74:
           instantiated from `boost::detail::is_empty_impl<boost::signals
        ::detail::slot_call_policies<boost::signals::detail::call_bound0<void>
        ::caller<boost::function0<void,allocator<boost
        ::function_base> > >,_Rb_tree_iterator<pair<const boost::any,boost
        ::signals::detail::connection_slot_pair>,pair<const boost::any,boost
        ::signals::detail::connection_slot_pair> &,pair<const boost::any,boost
        ::signals::detail::connection_slot_pair> *> > >'
../../../lyx-1.3.0/boost/boost/iterator_adaptors.hpp:844:
           instantiated from `boost::is_empty<boost::signals::detail
        ::slot_call_policies<boost::signals::detail::call_bound0<void>
        ::caller<boost::function0<void,allocator<boost
        ::function_base> > >,_Rb_tree_iterator<pair<const boost::any,boost
        ::signals::detail::connection_slot_pair>,pair<const boost::any,boost
        ::signals::detail::connection_slot_pair> &,pair<const boost::any,boost
        ::signals::detail::connection_slot_pair> *> > >'
../../../lyx-1.3.0/boost/boost/iterator_adaptors.hpp:844:
           instantiated from `boost
        ::compressed_pair<_Rb_tree_iterator<pair<const boost::any,boost
        ::signals::detail::connection_slot_pair>,pair<const boost::any,boost
        ::signals::detail::connection_slot_pair> &,pair<const boost::any,boost
        ::signals::detail::connection_slot_pair> *>,boost::signals::detail
        ::slot_call_policies<boost::signals::detail::call_bound0<void>
        ::caller<boost::function0<void,allocator<boost
        ::function_base> > >,_Rb_tree_iterator<pair<const boost::any,boost
        ::signals::detail::connection_slot_pair>,pair<const boost::any,boost
        ::signals::detail::connection_slot_pair> &,pair<const boost::any,boost
        ::signals::detail::connection_slot_pair> *> > >'
../../../lyx-1.3.0/boost/boost/iterator_adaptors.hpp:844:
           instantiated from `boost::
        iterator_adaptor<_Rb_tree_iterator<pair<const boost::any,boost
        ::signals::detail::connection_slot_pair>,pair<const boost::any,boost
        ::signals::detail::connection_slot_pair> &,pair<const boost::any,boost
        ::signals::detail::connection_slot_pair> *>,boost::signals::detail
        ::slot_call_policies<boost::signals::detail::call_bound0<void>
        ::caller<boost::function0<void,allocator<boost
        ::function_base> > >,_Rb_tree_iterator<pair<const boost::any,boost
        ::signals::detail::connection_slot_pair>,pair<const boost::any,boost
        ::signals::detail::connection_slot_pair> &,pair<const boost::any,boost
        ::signals::detail::connection_slot_pair> *> >,boost::signals::detail
        ::unusable,boost::signals::detail::unusable &,boost::signals::detail
        ::unusable *,input_iterator_tag,boost::detail::default_argument>'
../../../lyx-1.3.0/boost/boost/signals/detail/slot_call_iterator.hpp:109:
           instantiated from `boost::signals::detail
        ::make_slot_call_iterator<boost::signals::detail::call_bound0<void>
        ::caller<boost::function0<void,allocator<boost
        ::function_base> > >, _Rb_tree_iterator<pair<const boost::any,boost
        ::signals::detail::connection_slot_pair>,pair<const boost::any,boost
        ::signals::detail::connection_slot_pair> &,pair<const boost::any,boost
        ::signals::detail
        ::connection_slot_pair> *> >(_Rb_tree_iterator<pair<const boost
        ::any,boost::signals::detail::connection_slot_pair>,pair<const boost
        ::any,boost::signals::detail::connection_slot_pair> &,pair<const boost
        ::any,boost::signals::detail
        ::connection_slot_pair> *>, _Rb_tree_iterator<pair<const boost
        ::any,boost::signals::detail::connection_slot_pair>,pair<const boost
        ::any,boost::signals::detail::connection_slot_pair> &,pair<const boost
        ::any,boost::signals::detail::connection_slot_pair> *>, boost::signals
        ::detail::call_bound0<void>::caller<boost
        ::function0<void,allocator<boost::function_base> > >)'
../../../lyx-1.3.0/boost/boost/signals/signal_template.hpp:305:
           instantiated from `boost::signal0<void,boost
        ::last_value<void>,int,less<int>,boost::function0<void,allocator<boost
        ::function_base> > >::operator ()()'
../../../lyx-1.3.0/src/insets/insetcommand.h:39:   instantiated from here

It seems that somewhere there is a C++ construct misunderstood by
gcc-2.95.3, or do you really need more than 17 template instantiation
levels? If so please note (quoted from gcc-info, gcc-3.2):

`ftemplate-depth-N'
     Set the maximum instantiation depth for template classes to N.  A
     limit on the template instantiation depth is needed to detect
     endless recursions during template class instantiation.  ANSI/ISO
     C++ conforming programs must not rely on a maximum depth greater
     than 17.

==========================================

Then I tried with gcc-3.2 and got ('make -k' yields zillions of these):

In file included from /usr/include/c++/3.2/cstring:51,
                from ..........
                from ../../../lyx-1.3.0/src/mathed/dimension.C:17:
/usr/ix86-linux-gnulibc2/include/string.h:229: declaration of `char*
   strerror(int) throw ()' throws different exceptions
../../src/config.h:428: than previous declaration `char* strerror(int)'
make[3]: *** [dimension.lo] Error 1

(gcc-2.95.3 seems to ignore this discrepancy.)

This is clearly due to a defect in src/config.h.in:

If you test for HAVE_STRERROR, you should better also define/undefine it.

Adding '#define HAVE_STRERROR 1' by hand in the 'src/config.h' generated by
configure did the job. Please FIX your configure and config.h.in
accordingly.

==========================================

Finally, I had to manually replace '-lforms' by '-lforms -lflimage' in order
to sucessfully build the lyx binary.

It seems that the detection of libflimage in configre is broken. Please FIX
(I get
        checking for flimage.h... yes
        checking for library containing flimage_dup... no
)

==========================================

If possible please make sure that lyx-1.3.0 can be compiled with gcc-2.95.x

regards
Peter Breitenlohner <[EMAIL PROTECTED]>

Reply via email to