Build with jemalloc

NOKUBI Takatsugu knok at daionet.gr.jp
Thu Aug 29 22:12:08 PDT 2013


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?



More information about the LibreOffice mailing list