Yes, the modified vigra config.hxx allowed basebmp to be built. I am using --with-system-boost, however, I just did a reconfigure after removing it and ran into issues during the boost build. I receive the following hundreds of times until it fails.
/usr/sfw/bin/gtar: Archive value 4294967295 is out of gid_t range -2147483648..2147483647 /usr/sfw/bin/gtar: Archive value 4294967295 is out of gid_t range -2147483648..2147483647 /usr/sfw/bin/gtar: Archive value 4294967295 is out of gid_t range -2147483648..2147483647 /usr/sfw/bin/gtar: Archive value 4294967295 is out of gid_t range -2147483648..2147483647 /usr/sfw/bin/gtar: Archive value 4294967295 is out of gid_t range -2147483648..2147483647 etc... I am not sure why. Looking into it now. Also, here is filtered output from the CC -E of partial.cxx. I grep'd for limits, as you can see in the command I issued. bash-3.2# /opt/solarisstudio12.3/bin/CC -E -temp=/tmp -xarch=generic -xO3 -DENABLE_LAYOUT=0 -DENABLE_LAYOUT_EXPERIMENTAL=0 -xldscope=hidden -I. -I../unxsoli4.pro/inc/configmgr -I../inc -I../inc/pch -I../inc -I../unx/inc -I../unxsoli4.pro/inc -I. -I/opt/aoo-4.0.0/main/solver/400/unxsoli4.pro/inc/stl -I/opt/aoo-4.0.0/main/solver/400/unxsoli4.pro/inc/external -I/opt/aoo-4.0.0/main/solver/400/unxsoli4.pro/inc -I/opt/aoo-4.0.0/main/solenv/unxsoli4/inc -I/opt/aoo-4.0.0/main/solenv/inc -I/opt/aoo-4.0.0/main/res -I/opt/aoo-4.0.0/main/solver/400/unxsoli4.pro/inc/stl -I/opt/solarisstudio12.3/include -I/opt/aoo-4.0.0/main/solenv/inc/Xp31 -I/usr/jdk/latest/include -I/usr/jdk/latest/include/solaris -I/usr/jdk/latest/include/native_threads/include: -I/usr/local/include -I/usr/include -I/usr/local/include/boost -I/opt/solarisstudio12.3/prod/include/CC/Cstd/ -I/usr/local/include/rasqal: -I/usr/local/include -I/usr/include -I/usr/local/include/boost -I/usr/local/include/rasqal -I/usr/include/stdcxx4 -I/opt/aoo-4.0.0/main/solver/400/unxsoli4.pro/inc/offuh -I. -I../res -I. -features=no%altspell -library=no%Cstd "-features=rvalueref" +w2 -erroff=doubunder,identexpected,inllargeuse,inllargeint,notemsource,reftotemp,truncwarn,wnoretvalue,anonnotype -KPIC -mt -DSOLARIS -DUNX -DVCL -DC52 -DC52 -DINTEL -D_PTHREADS -DSYSV -DSUN -DSUN4 -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -DSTLPORT_VERSION=400 -D__DMAKE -DUNIX -DCPPU_ENV=sunpro5 -DSUPD=400 -DPRODUCT -DNDEBUG -DOSL_DEBUG_LEVEL=0 -DOPTIMIZE -DCUI -DSOLAR_JAVA -DSHAREDLIB -D_DLL_ -DEXCEPTIONS_ON -o /tmp/file /opt/aoo-4.0.0/main/configmgr/source/partial.cxx|grep -i limit #1 "/opt/aoo-4.0.0/main/solver/400/unxsoli4.pro/inc/stl/climits.SUNWCCh" #1 "/usr/include/limits.h" #pragma ident "@(#)limits.h 1.60 11/04/12 SMI" #1 "/usr/include/iso/limits_iso.h" #pragma ident "@(#)limits_iso.h 1.2 03/12/04 SMI" #1 "/usr/include/sys/int_limits.h" #pragma ident "@(#)int_limits.h 1.9 04/09/28 SMI" #35 "/usr/include/limits.h" unsigned long operator ( ) ( unsigned long __limit ) { return _M_table [ _M_index1 ] % __limit ; #1 "/usr/local/include/boost/limits.hpp" #1 "/opt/aoo-4.0.0/main/solver/400/unxsoli4.pro/inc/stl/limits.SUNWCCh" #1 "/opt/aoo-4.0.0/main/solver/400/unxsoli4.pro/inc/stl/stl/_limits.h" class _Numeric_limits_base { class _Integer_limits : public _Numeric_limits_base < _Int > class _Floating_limits : public _Numeric_limits_base < __number > class numeric_limits : public _Numeric_limits_base < _Tp > { } ; class numeric_limits < bool > : public _Integer_limits < bool , false , true , 0 , false > class numeric_limits < char > : public _Integer_limits < char , ( - 128 ) , 127 , - 1 , true > class numeric_limits < signed char > : public _Integer_limits < signed char , ( - 128 ) , 127 , - 1 , true > class numeric_limits < unsigned char > : public _Integer_limits < unsigned char , 0 , 255 , - 1 , true > class numeric_limits < wchar_t > : public _Integer_limits < wchar_t , ( - 2147483647 - 1 ) , 2147483647 , - 1 , true > class numeric_limits < short > : public _Integer_limits < short , ( - 32768 ) , 32767 , - 1 , true > class numeric_limits < unsigned short > : public _Integer_limits < unsigned short , 0 , 65535 , - 1 , true > class numeric_limits < int > : public _Integer_limits < int , ( - 2147483647 - 1 ) , 2147483647 , - 1 , true > class numeric_limits < unsigned int > : public _Integer_limits < unsigned int , 0 , 4294967295U , - 1 , true > class numeric_limits < long > : public _Integer_limits < long , ( - 2147483647L - 1L ) , 2147483647L , - 1 , true > class numeric_limits < unsigned long > : public _Integer_limits < unsigned long , 0 , 4294967295UL , - 1 , true > class numeric_limits < long long > : public _Integer_limits < long long , ( - 0x7fffffffffffffffLL - 1LL ) , 0x7fffffffffffffffLL , - 1 , true > class numeric_limits < unsigned long long > : public _Integer_limits < unsigned long long , 0 , 0xffffffffffffffffULL , - 1 , true > template < > class numeric_limits < float > : public _Floating_limits < float , template < > class numeric_limits < double > : public _Floating_limits < double , class numeric_limits < long double > : public _Floating_limits < long double , return ( _STL :: numeric_limits < SizeType > :: max ) ( ) ; #1 "/usr/local/include/boost/mpl/limits/arity.hpp" _Size __depth_limit ) ; _Size __depth_limit , _Compare __comp ) ; ( _STL :: numeric_limits < _STL :: size_t > :: max ) ( ) ) ? ( _STL :: numeric_limits < _STL :: size_t > :: max ) ( ) : #1 "/usr/local/include/boost/functional/hash/detail/limits.hpp" struct limits : _STL :: numeric_limits < T > { } ; #1 "/usr/local/include/boost/functional/hash/detail/limits.hpp" exp += limits < T > :: max_exponent - limits < T > :: min_exponent ; v = ldexp ( v , limits < _STL :: size_t > :: digits ) ; = ( limits < T > :: digits * boost :: static_log2 < limits < T > :: radix > :: value + limits < _STL :: size_t > :: digits - 1 ) / limits < _STL :: size_t > :: digits ; v = ldexp ( v , limits < _STL :: size_t > :: digits ) ; const int size_t_bits = _STL :: numeric_limits < _STL :: size_t > :: digits ; const int length = ( _STL :: numeric_limits < T > :: digits - 1 ) const int size_t_bits = _STL :: numeric_limits < _STL :: size_t > :: digits ; const int length = ( _STL :: numeric_limits < T > :: digits - 1 ) ________________________________________ From: Herbert Duerr [h...@apache.org] Sent: Wednesday, September 11, 2013 7:02 AM To: dev@openoffice.apache.org Cc: Steele, Raymond Subject: Re: EXTERNAL: Re: Building comphelper On 10.09.2013 19:29, Steele, Raymond wrote: > I cannot seem to figure out which <limits> integer_fw.hpp is using on my > system. I put the following in scopeguard.cxx and received a > > void ScopeGuard::dismiss() > { > struct Dummy{} dummy = ::std::numeric_limits<unsigned char>::digits; > m_func.clear(); > } > > > Here is the output. > [...] > "/usr/local/include/boost/integer_fwd.hpp", line 138: Error: Illegal value > for template parameter. > "/usr/local/include/boost/integer_fwd.hpp", line 138: Error: Cannot use class > specialization with non-classes. > "/opt/aoo-4.0.0/main/comphelper/source/misc/scopeguard.cxx", line 63: Error: > Cannot use const int to initialize Dummy. Ah, so this shows that the digits member is a const int as it should be. Why low_bit_mask_t<> doesn't like the specialization with int is strange, because in my boost/integer/integer_mask.hpp only allows integer specializations (for std::size_t)! What is also interesting is the location of the integer_fwd.hpp header file: /usr/local/include/boost/ Are you using "--with-system-boost" or "--with-system-headers"? What version of boost is installed on your system? AOO's current reference implementation of boost is 1.48. > I did a search for all the limits files on my system. Here are the results.: > > bash-3.2# find / -name limits > /usr/sfw/include/c++/3.4.3/limits > /usr/include/stdcxx4/limits > /usr/local/include/boost/mpl/limits > /usr/local/include/boost/tr1/tr1/limits > /usr/local/include/boost_52/mpl/limits > /usr/local/include/boost_52/tr1/tr1/limits > /usr/local/gcc-4.8.1/include/c++/4.8.1/limits > /opt/aoo-4.0.0/main/stlport/unxsoli4.pro/inc/stlport/limits > /opt/aoo-4.0.0/main/stlport/unxsoli4.pro/inc/stlport/SC5/limits > /opt/aoo-4.0.0/main/stlport/unxsoli4.pro/misc/build/STLport-4.0/stlport/limits > /opt/aoo-4.0.0/main/stlport/unxsoli4.pro/misc/build/STLport-4.0/stlport/SC5/limits > /opt/aoo-4.0.0/main/solver/400/unxsoli4.pro/inc/stl/limits > /opt/aoodeps/perl-5.18.1/cpan/Devel-PPPort/parts/inc/limits > /opt/aoodeps/STLport-5.2.1/stlport/limits > /opt/aoodeps/boost_1_48_0/boost/mpl/limits > /opt/aoodeps/boost_1_48_0/boost/tr1/tr1/limits > /opt/aoodeps/gcc-4.8.1/libstdc++-v3/testsuite/18_support/headers/limits > /opt/aoodeps/gcc-4.8.1/libstdc++-v3/include/std/limits > /opt/solarisstudio12.3/prod/include/CC/Cstd/limits > /opt/solarisstudio12.3/prod/include/CC/stlport4/limits > /boost_1_54_0/boost/mpl/limits > /boost_1_54_0/boost/tr1/tr1/limits > /gcc-4.8.1.OLD/include/c++/4.8.1/limits Darn, these are a lot of <limits> file. If the compiler picks one that is not consistent with the related include files then all kinds of troubles are not surprising. To find out which <limits> file is included you could use the gcc option "-E", that tells the compiler to just preprocess a source file and output the preprocessed result to the output file specified by "-o". As an example change into the configmgr directory and build verbose=true there. You'll see the exact command line for the compiler building e.g. partial.cxx. Change the "-c" option ("compile") to "-E" ("preprocess only") and run this one command line. The resulting partial.o is the preprocessed source that will show you which <limits> was included. > Lastly, > The following patch seems to address the erf() issue. I edited > /opt/aoo-4.0./main/solver/400/unxsoli4.pro/inc/vigra/config.hxx with the > following and it seems to compile without error. However, isn't > /opt/aoo-4.0.0/main/solver/400/unxsoli4.pro/inc/vigra/config.hxx generated by > the build. Should this be modified somewhere else? When external libraries are built the process is as follows: 1. the tarball of the library is unpacked 2. some patches are applied (for vigra its the file "vigra-1.6.0.patch") 3. the library is built 4. the library is delivered to "solver" Though modifying the header in solver can temporarily solve a compile problem in a dependent module (e.g. basebmp) it is better to do the needed modification before the library is built to get a consistent state. To get the patch in as early as possible the patch file has to be modified. As mentioned yesterday I already attached a patch against "vigra-1.6.0.patch" to issue 123228. By the way, did the modified vigra config.hxx allow basebmp to be built? Herbert --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@openoffice.apache.org For additional commands, e-mail: dev-h...@openoffice.apache.org