Date: prev next · Thread: first prev next last
2013 Archives by date, by thread · List index


Does anyone tried to build LibreOffice with jemallc?

I tried to use LibreOffice on Windows environment, and it required too much memory rather than 
Microsoft Office.

So I tryied to inspect memory usage with Microsoft Performance Analyzer.
http://msdn.microsoft.com/en-us/library/windows/desktop/hh448170.aspx

I can find many malloc/free and new/delete pair, so I suspect possibility of heap memory 
fragmantation.

Then I tried to build with jemalloc, a famous memory allocator.

I modified desktop/Executable_soffice_bin.mk like the following:
$(eval $(call gb_Executable_add_ldflags,soffice_bin,\
    /STACK:10000000 \
        /NODEFAULTLIB:msvcrt /NODEFAULTLIB:libcmt \
        'c:\cygwin\libo\jemalloc\jemalloc_s.lib' \
        'c:\cygwin\libo\jemalloc\libgcc.a' \
        'C:\Program Files\Microsoft Visual Studio 11.0\VC\lib\msvcrt.lib' \
        'C:\Program Files\Microsoft Visual Studio 11.0\VC\lib\libcmt.lib' \

))

(it’s a dirty hack)

So gbuild invoked the following command (a little bit long):

S=C:/cygwin/libo && O=C:/cygwin/opt/lo/build2/solver/wntmsci14.pro && 
W=C:/cygwin/opt/lo/build2/workdir/wntmsci14.pro &&  
mkdir -p $W/LinkTarget/Executable/ && 
rm -f $W/LinkTarget/Executable/soffice_bin.exe && RESPONSEFILE=C:/cygwin/tmp/gbuild.ThJJlZ &&  
unset INCLUDE &&  
link   -release -opt:noref -incremental:no -debug -nxcompat -dynamicbase -manifest  
-SUBSYSTEM:WINDOWS,5.01    -LIBPATH:$O/lib -LIBPATH:C:/PROGRA~1/Java/JDK17~1.0_2/lib 
-LIBPATH:C:/PROGRA~1/MICROS~1.0/VC/lib -LIBPATH:C:/PROGRA~1/WI3CF2~1/8.0/lib 
-LIBPATH:C:/PROGRA~1/WI3CF2~1/8.0/lib/win8/um/x86 -LIBPATH:C:/PROGRA~1/MICROS~1.NET/SDK/v2.0//lib 
-LIBPATH:C:/PROGRA~1/MI5E29~1/lib/x86    /STACK:10000000 
/NODEFAULTLIB:msvcrt
 /NODEFAULTLIB:libcmt 
'c:\cygwin\libo\jemalloc\jemalloc_s.lib' 'c:\cygwin\libo\jemalloc\libgcc.a' 
'C:\Program Files\Microsoft Visual Studio 11.0\VC\lib\msvcrt.lib' 
'C:\Program Files\Microsoft Visual Studio 11.0\VC\lib\libcmt.lib'  
@${RESPONSEFILE} isal.lib isofficeapp.lib iuwinapi.lib ooopathutils.lib 
winextendloaderenv.lib  advapi32.lib  user32.lib -out:$W/LinkTarget/Executable/soffice_bin.exe; 
RC=$?; rm ${RESPONSEFILE}   && 
if [ -f $W/LinkTarget/Executable/soffice_bin.exe.manifest ]; then mt.exe  -nologo -manifest 
$W/LinkTarget/Executable/soffice_bin.exe.manifest
 outputresource:$W/LinkTarget/Executable/soffice_bin.exe\;1 &&
 touch -r $W/LinkTarget/Executable/soffice_bin.exe
 W/LinkTarget/Executable/soffice_bin.exe.manifest; fi &&
 if [ -f $S/solenv/inc/DeclareDPIAware.manifest ]; then 
mt.exe  -nologo -manifest $S/solenv/inc/DeclareDPIAware.manifest 
-updateresource:$W/LinkTarget/Executable/soffice_bin.exe\;1 ;
 fi  ; exit $RC

I thknk it seems fine, but the output binary hadn’t have static jemalloc code.

Does anyone tried same thing? 
Or how can I build LibreOffice with jemalloc static library?


Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.