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. 

bash-3.2# make
mkdir -p 
/opt/aoo-4.0.0/main/solver/400/unxsoli4.pro/workdir/Dep/CxxObject/comphelper/source/misc/
 && echo 
'/opt/aoo-4.0.0/main/solver/400/unxsoli4.pro/workdir/CxxObject/comphelper/source/misc/scopeguard.o
 : $(gb_Helper_PHONY)' > 
/opt/aoo-4.0.0/main/solver/400/unxsoli4.pro/workdir/Dep/CxxObject/comphelper/source/misc/scopeguard.d
[ build DEP ] LNK:Library/libcomphelpC52.so
R=/opt/aoo-4.0.0 && S=$R/main && O=$S/solver/400/unxsoli4.pro && W=$O/workdir 
&&  mkdir -p $W/Dep/LinkTarget/Library/ && RESPONSEFILE=/tmp/gbuild.roTO8o && 
cat ${RESPONSEFILE} /dev/null | xargs -n 200 cat > 
$W/Dep/LinkTarget/Library/libcomphelpC52.so.d && rm -f ${RESPONSEFILE}
[ build CXX ] comphelper/source/misc/scopeguard
R=/opt/aoo-4.0.0 && S=$R/main && O=$S/solver/400/unxsoli4.pro && W=$O/workdir 
&&  mkdir -p $W/CxxObject/comphelper/source/misc/ && mkdir -p 
$W/Dep/CxxObject/comphelper/source/misc/ && /opt/solarisstudio12.3/bin/CC -DC52 
-DCPPU_ENV=sunpro5 -DCUI -DENABLE_GTK -DENABLE_LAYOUT=0 
-DENABLE_LAYOUT_EXPERIMENTAL=0 -DINTEL -DNDEBUG -DOPTIMIZE -DOSL_DEBUG_LEVEL=0 
-DPRODUCT -DPRODUCT_FULL -DSOLARIS -DSOLAR_JAVA -DSTLPORT_VERSION=400 -DSUN 
-DSUN4 -DSUPD=400 -DSYSV -DUNIX -DUNX -DVCL -D_POSIX_PTHREAD_SEMANTICS 
-D_PTHREADS -D_REENTRANT   -DCOMPHELPER_DLLIMPLEMENTATION -DUNX  -temp=/tmp 
-KPIC -mt -xldscope=hidden -features=no%altspell -library=no%Cstd +w2 
-erroff=doubunder,identexpected,inllargeuse,inllargeint,notemsource,reftotemp,truncwarn,wnoretvalue,anonnotype
   -DEXCEPTIONS_ON  -xarch=generic -xO3 -c 
$S/comphelper/source/misc/scopeguard.cxx -o 
$W/CxxObject/comphelper/source/misc/scopeguard.o -xMMD -xMF 
$W/Dep/CxxObject/comphelper/source/misc/scopeguard.d 
-I$S/comphelper/source/misc/ -I$O/inc/stl -I$O/inc/stl -I$S/comphelper/inc/pch 
-I$S/comphelper/source/inc -I$O/inc/external -I$O/inc -I$S/solenv/unxsoli4/inc 
-I$S/solenv/inc -I$S/res -I/opt/solarisstudio12.3/include -I$S/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$O/inc/offuh
"/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.
3 Error(s) detected.
make: *** 
[/opt/aoo-4.0.0/main/solver/400/unxsoli4.pro/workdir/CxxObject/comphelper/source/misc/scopeguard.o]
 Error 2


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


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?

///////////////////////////////////////////////////////////
//                                                       //
//                      Sun C++ ???                      //
//                                                       //
///////////////////////////////////////////////////////////

-#if defined(__sun) && !defined(__GNUC__)
-    #define VIGRA_HAS_ERF
-#endif // __sun

+#if 0 // #i123228# let vigra provide the erf() function 
+#if defined(__sun) && !defined(__GNUC__)
+     #define VIGRA_HAS_ERF
+ #endif // __sun
+#endif
________________________________________
From: Herbert Duerr [h...@apache.org]
Sent: Tuesday, September 10, 2013 4:29 AM
To: dev@openoffice.apache.org
Cc: Steele, Raymond
Subject: Re: EXTERNAL: Re: Building comphelper

Hi Raymond,

On 09.09.2013 19:13, Steele, Raymond wrote:
> Thanks for the information. I attached the new mathconf.h file with your
> patch. I then did a clean build and it compiles without error.

Good. I created an issue ("Adaptions for building AOO 4.0.0 on Solaris")
for all such adaptions that we'll find. I already attached the patch for
mathconf.h there.

[1] https://issues.apache.org/ooo/show_bug.cgi?id=123228

>    I am
> not sure about what you'd like me to provide when you say , " Of course
> it would also interesting to know what type
> ::std::numeric_limits<unsigned char>::digits on that platform." Could
> you provide more details? Thanks.

In your platform's <limits> include file there are probably
specializations for numeric_limits template. The symptoms of the error
message look as if there was no template specialization for
numeric_limits<unsigned char>. Is this so? Please check the <limits>
include file. In case you are using gcc then you could use the "-E"
option to see the preprocessed source (with the <limits> file included).

Another trick is to create a line
        struct Dummy{} dummy = ::std::numeric_limits<unsigned char>::digits;
in one of the functions and  when compiling there will be an error
message about an invalid assignment that hopefully provides enough
detail about the type of this digits member.

> Also,
>
> I've found a couple other things that you may be interested in.

Sure. I suggest to collect these findings in the newly created task
123228 I referenced above [1].

> 1. The generated bootstrap script will not execute after configure
> because of like 64. I've had to change it like this:
>
>                   -  dmake_full_package_name=$(find $TARFILE_LOCATION
> -type f -name "*-$dmake_package_name")
>
>                   +  dmake_full_package_name=`find $TARFILE_LOCATION
> -type f -name "*-$dmake_package_name"`

Good. I attached this patch to issue [1] too. It replaces the bash-ism
with generic shell code.

> 2.  I keep receiving the following each time I do a clean build:
> [...]
> Compiling: basebmp/source/bitmapdevice.cxx
> "/opt/aoo-4.0.0/main/solver/400/unxsoli4.pro/inc/vigra/mathutil.hxx",
> line 801: Error: erf is not a member of _STL.

According to the C99 standard the error function erf() should be
provided via math.h. If this is not so then vigra could provide the
function itself if the macro VIGRA_HAS_ERF was not defined. For some
reason that macro gets defined for Solaris in
     /opt/aoo-4.0.0/main/solver/400/unxsoli4.pro/inc/vigra/config.hxx
for __sun && !__GNUC__ Vigra's commit message regarding this was
    "added configs for Sun C++ (very incomplete)
which shows that there is room for improvement. I added an experimental
patch for vigra to the issue [1]. Please try it out.

Herbert

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@openoffice.apache.org
For additional commands, e-mail: dev-h...@openoffice.apache.org

Reply via email to