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