mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1134039: Make SpiderMonkey standalone (JS_STANDALONE) builds use jemalloc and mozglue by default. r=glandium
JS_STANDALONE builds don't need everything in mozglue; have mozglue omit the unneeded code for such builds. Since the SpiderMonkey binaries are now more like the other Gecko binaries, we can remove some special cases for JS_STANDALONE in GeckoSharedLibrary, GeckoProgram, etc. All Gecko binaries now use mozglue, which contains mfbt, so we no longer need mention mfbt explicitly. Add a property to the getBuildConfiguration testing function's result that indicates whether we're using jemalloc or not. Include the newly necessary source directories in the SpiderMonkey source package.
This commit is contained in:
parent
5c0bf9660a
commit
1f8998c1b5
@ -55,9 +55,7 @@ def GeckoBinary(linkage='dependent', msvcrt='dynamic', mozglue=None):
|
||||
error('`linkage` must be "dependent", "standalone" or None')
|
||||
|
||||
if mozglue:
|
||||
if CONFIG['JS_STANDALONE']:
|
||||
pass
|
||||
elif CONFIG['MOZ_CRT']:
|
||||
if CONFIG['MOZ_CRT']:
|
||||
if msvcrt == 'dynamic':
|
||||
USE_LIBS += ['mozcrt']
|
||||
elif msvcrt == 'static':
|
||||
|
@ -9219,9 +9219,6 @@ ac_configure_args="$ac_configure_args --prefix=$dist"
|
||||
if test "$MOZ_MEMORY"; then
|
||||
ac_configure_args="$ac_configure_args --enable-jemalloc"
|
||||
fi
|
||||
if test -n "$MOZ_GLUE_IN_PROGRAM"; then
|
||||
export MOZ_GLUE_IN_PROGRAM
|
||||
fi
|
||||
if test -n "$ZLIB_IN_MOZGLUE"; then
|
||||
MOZ_ZLIB_LIBS=
|
||||
fi
|
||||
|
@ -195,6 +195,14 @@ GetBuildConfiguration(JSContext *cx, unsigned argc, jsval *vp)
|
||||
if (!JS_SetProperty(cx, info, "mapped-array-buffer", value))
|
||||
return false;
|
||||
|
||||
#ifdef MOZ_MEMORY
|
||||
value = BooleanValue(true);
|
||||
#else
|
||||
value = BooleanValue(false);
|
||||
#endif
|
||||
if (!JS_SetProperty(cx, info, "moz-memory", value))
|
||||
return false;
|
||||
|
||||
args.rval().setObject(*info);
|
||||
return true;
|
||||
}
|
||||
|
@ -2993,11 +2993,21 @@ fi
|
||||
dnl ========================================================
|
||||
dnl = Enable jemalloc
|
||||
dnl ========================================================
|
||||
MOZ_ARG_ENABLE_BOOL(jemalloc,
|
||||
[ --enable-jemalloc Replace memory allocator with jemalloc],
|
||||
MOZ_MEMORY=1,
|
||||
MOZ_MEMORY=1
|
||||
MOZ_ARG_DISABLE_BOOL(jemalloc,
|
||||
[ --disable-jemalloc Don't replace memory allocator with jemalloc],
|
||||
MOZ_MEMORY=)
|
||||
|
||||
case "${OS_TARGET}" in
|
||||
Android|WINNT|Darwin)
|
||||
MOZ_GLUE_IN_PROGRAM=
|
||||
;;
|
||||
*)
|
||||
dnl On !Android !Windows !OSX, we only want to link executables against mozglue
|
||||
MOZ_GLUE_IN_PROGRAM=1
|
||||
;;
|
||||
esac
|
||||
|
||||
if test "$MOZ_MEMORY"; then
|
||||
AC_DEFINE(MOZ_MEMORY)
|
||||
if test "x$MOZ_DEBUG" = "x1"; then
|
||||
|
@ -23,6 +23,8 @@ pkgpath=${pkg%.tar*}
|
||||
tgtpath=${DIST}/${pkgpath}
|
||||
taropts="-jcf"
|
||||
|
||||
TOPSRCDIR=${SRCDIR}/../..
|
||||
|
||||
case $cmd in
|
||||
"clean")
|
||||
echo "Cleaning ${pkg} and ${tgtpath} ..."
|
||||
@ -43,21 +45,21 @@ case $cmd in
|
||||
|
||||
# copy the embedded icu
|
||||
${MKDIR} -p ${tgtpath}/intl
|
||||
cp -t ${tgtpath}/intl -dRp ${SRCDIR}/../../intl/icu
|
||||
cp -t ${tgtpath}/intl -dRp ${TOPSRCDIR}/intl/icu
|
||||
|
||||
# copy main moz.build and Makefile.in
|
||||
cp -t ${tgtpath} -dRp ${SRCDIR}/../../Makefile.in ${SRCDIR}/../../moz.build
|
||||
cp -t ${tgtpath} -dRp ${TOPSRCDIR}/Makefile.in ${TOPSRCDIR}/moz.build
|
||||
|
||||
# copy a nspr file used by the build system
|
||||
${MKDIR} -p ${tgtpath}/nsprpub/config
|
||||
cp -t ${tgtpath}/nsprpub/config -dRp \
|
||||
${SRCDIR}/../../nsprpub/config/make-system-wrappers.pl
|
||||
${TOPSRCDIR}/nsprpub/config/make-system-wrappers.pl
|
||||
|
||||
# copy build and config directory.
|
||||
cp -t ${tgtpath} -dRp ${SRCDIR}/../../build ${SRCDIR}/../../config
|
||||
cp -t ${tgtpath} -dRp ${TOPSRCDIR}/build ${TOPSRCDIR}/config
|
||||
|
||||
# put in js itself
|
||||
cp -t ${tgtpath} -dRp ${SRCDIR}/../../mfbt
|
||||
cp -t ${tgtpath} -dRp ${TOPSRCDIR}/mfbt
|
||||
cp -t ${tgtpath}/js -dRp ${SRCDIR}/../public
|
||||
find ${SRCDIR} -mindepth 1 -maxdepth 1 -not -path ${DIST} -a -not -name ${pkg} \
|
||||
-exec cp -t ${tgtpath}/js/src -dRp {} +
|
||||
@ -68,26 +70,37 @@ case $cmd in
|
||||
fi
|
||||
|
||||
cp -t ${tgtpath} -dRp \
|
||||
${SRCDIR}/../../python
|
||||
${TOPSRCDIR}/python
|
||||
${MKDIR} -p ${tgtpath}/dom/bindings
|
||||
cp -t ${tgtpath}/dom/bindings -dRp \
|
||||
${SRCDIR}/../../dom/bindings/mozwebidlcodegen
|
||||
${TOPSRCDIR}/dom/bindings/mozwebidlcodegen
|
||||
${MKDIR} -p ${tgtpath}/media/webrtc/trunk/tools
|
||||
cp -t ${tgtpath}/media/webrtc/trunk/tools -dRp \
|
||||
${SRCDIR}/../../media/webrtc/trunk/tools/gyp
|
||||
${TOPSRCDIR}/media/webrtc/trunk/tools/gyp
|
||||
${MKDIR} -p ${tgtpath}/testing
|
||||
cp -t ${tgtpath}/testing -dRp \
|
||||
${SRCDIR}/../../testing/mozbase
|
||||
${TOPSRCDIR}/testing/mozbase
|
||||
${MKDIR} -p ${tgtpath}/modules/zlib
|
||||
cp -t ${tgtpath}/modules/zlib -dRp \
|
||||
${SRCDIR}/../../modules/zlib/src
|
||||
${TOPSRCDIR}/modules/zlib/src
|
||||
${MKDIR} -p ${tgtpath}/layout/tools/reftest
|
||||
cp -t ${tgtpath}/layout/tools/reftest -dRp \
|
||||
${SRCDIR}/../../layout/tools/reftest/reftest
|
||||
${TOPSRCDIR}/layout/tools/reftest/reftest
|
||||
${MKDIR} -p ${tgtpath}/toolkit/mozapps/installer
|
||||
cp -t ${tgtpath}/toolkit/mozapps/installer -dRp \
|
||||
${SRCDIR}/../../toolkit/mozapps/installer/package-name.mk \
|
||||
${SRCDIR}/../../toolkit/mozapps/installer/upload-files.mk \
|
||||
${TOPSRCDIR}/toolkit/mozapps/installer/package-name.mk \
|
||||
${TOPSRCDIR}/toolkit/mozapps/installer/upload-files.mk
|
||||
${MKDIR} -p ${tgtpath}/mozglue
|
||||
cp -t ${tgtpath}/mozglue -dRp \
|
||||
${TOPSRCDIR}/mozglue/build \
|
||||
${TOPSRCDIR}/mozglue/crt \
|
||||
${TOPSRCDIR}/mozglue/moz.build
|
||||
${MKDIR} -p ${tgtpath}/memory
|
||||
cp -t ${tgtpath}/memory -dRp \
|
||||
${TOPSRCDIR}/memory/moz.build \
|
||||
${TOPSRCDIR}/memory/build \
|
||||
${TOPSRCDIR}/memory/jemalloc \
|
||||
${TOPSRCDIR}/memory/mozjemalloc
|
||||
|
||||
# remove *.pyc and *.pyo files if any
|
||||
find ${tgtpath} -type f -name "*.pyc" -o -name "*.pyo" |xargs rm -f
|
||||
@ -128,17 +141,17 @@ README_EOF
|
||||
fi
|
||||
|
||||
# copy LICENSE
|
||||
if [ -e ${SRCDIR}/../../b2g/LICENSE ]; then
|
||||
cp ${SRCDIR}/../../b2g/LICENSE ${tgtpath}/
|
||||
if [ -e ${TOPSRCDIR}/b2g/LICENSE ]; then
|
||||
cp ${TOPSRCDIR}/b2g/LICENSE ${tgtpath}/
|
||||
else
|
||||
cp ${SRCDIR}/../../LICENSE ${tgtpath}/
|
||||
cp ${TOPSRCDIR}/LICENSE ${tgtpath}/
|
||||
fi
|
||||
|
||||
# copy patches dir, if it currently exists in DIST
|
||||
if [ -d ${DIST}/patches ]; then
|
||||
cp -t ${tgtpath} -dRp ${DIST}/patches
|
||||
elif [ -d ${SRCDIR}/../../patches ]; then
|
||||
cp -t ${tgtpath} -dRp ${SRCDIR}/../../patches
|
||||
elif [ -d ${TOPSRCDIR}/patches ]; then
|
||||
cp -t ${tgtpath} -dRp ${TOPSRCDIR}/patches
|
||||
fi
|
||||
|
||||
# Roll the tarball
|
||||
|
@ -67,12 +67,7 @@ CONFIGURE_SUBST_FILES += [
|
||||
'js.pc',
|
||||
]
|
||||
|
||||
if CONFIG['JS_STANDALONE']:
|
||||
DEFINES['IMPL_MFBT'] = True
|
||||
USE_LIBS += [
|
||||
'mfbt',
|
||||
]
|
||||
else:
|
||||
if not CONFIG['JS_STANDALONE']:
|
||||
CONFIGURE_SUBST_FILES += [
|
||||
'../../config/autoconf-js.mk',
|
||||
'../../config/emptyvars-js.mk',
|
||||
|
@ -34,19 +34,19 @@ if not CONFIG['JS_STANDALONE']:
|
||||
|
||||
if not CONFIG['LIBXUL_SDK']:
|
||||
DIRS += [
|
||||
'mozglue',
|
||||
'mfbt',
|
||||
'config/external/zlib',
|
||||
]
|
||||
|
||||
if CONFIG['MOZ_MEMORY']:
|
||||
DIRS += ['memory']
|
||||
|
||||
if not CONFIG['JS_STANDALONE']:
|
||||
if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'android':
|
||||
DIRS += ['other-licenses/android']
|
||||
|
||||
if CONFIG['MOZ_MEMORY']:
|
||||
DIRS += ['memory']
|
||||
|
||||
DIRS += [
|
||||
'mozglue',
|
||||
'memory/fallible',
|
||||
'memory/mozalloc',
|
||||
'memory/volatile',
|
||||
|
@ -13,75 +13,78 @@ else:
|
||||
|
||||
SDK_LIBRARY = True
|
||||
|
||||
if CONFIG['MOZ_MEMORY'] and (CONFIG['MOZ_NATIVE_JEMALLOC'] or FORCE_SHARED_LIB):
|
||||
pass
|
||||
# TODO: SHARED_LIBRARY_LIBS go here
|
||||
else:
|
||||
# Temporary, until bug 662814 lands
|
||||
NO_VISIBILITY_FLAGS = True
|
||||
SOURCES += [
|
||||
'dummy.cpp',
|
||||
]
|
||||
|
||||
if CONFIG['OS_TARGET'] == 'Android':
|
||||
SOURCES += [
|
||||
'BionicGlue.cpp',
|
||||
]
|
||||
|
||||
if CONFIG['OS_TARGET'] == 'WINNT':
|
||||
SOURCES += [
|
||||
'WindowsDllBlocklist.cpp',
|
||||
]
|
||||
DEFFILE = 'mozglue.def'
|
||||
DISABLE_STL_WRAPPING = True
|
||||
OS_LIBS += [
|
||||
'version',
|
||||
]
|
||||
|
||||
if CONFIG['MOZ_NUWA_PROCESS']:
|
||||
EXPORTS.ipc += [
|
||||
'Nuwa.h',
|
||||
]
|
||||
SOURCES += [
|
||||
'Nuwa.cpp',
|
||||
]
|
||||
|
||||
EXPORTS.mozilla += [
|
||||
'arm.h',
|
||||
'SSE.h',
|
||||
'WindowsDllBlocklist.h',
|
||||
]
|
||||
|
||||
if CONFIG['CPU_ARCH'].startswith('x86'):
|
||||
SOURCES += [
|
||||
'SSE.cpp',
|
||||
]
|
||||
|
||||
if CONFIG['CPU_ARCH'] == 'arm':
|
||||
SOURCES += [
|
||||
'arm.cpp',
|
||||
]
|
||||
|
||||
if CONFIG['MOZ_ASAN']:
|
||||
SOURCES += [
|
||||
'AsanOptions.cpp',
|
||||
]
|
||||
|
||||
if CONFIG['OS_TARGET'] == 'WINNT':
|
||||
DEFFILE = 'mozglue.def'
|
||||
|
||||
if not CONFIG['JS_STANDALONE']:
|
||||
|
||||
if CONFIG['MOZ_MEMORY'] and (CONFIG['MOZ_NATIVE_JEMALLOC'] or FORCE_SHARED_LIB):
|
||||
pass
|
||||
# TODO: SHARED_LIBRARY_LIBS go here
|
||||
else:
|
||||
# Temporary, until bug 662814 lands
|
||||
NO_VISIBILITY_FLAGS = True
|
||||
SOURCES += [
|
||||
'dummy.cpp',
|
||||
]
|
||||
|
||||
if CONFIG['OS_TARGET'] == 'WINNT':
|
||||
SOURCES += [
|
||||
'WindowsDllBlocklist.cpp',
|
||||
]
|
||||
DISABLE_STL_WRAPPING = True
|
||||
OS_LIBS += [
|
||||
'version',
|
||||
]
|
||||
|
||||
if CONFIG['MOZ_NUWA_PROCESS']:
|
||||
EXPORTS.ipc += [
|
||||
'Nuwa.h',
|
||||
]
|
||||
SOURCES += [
|
||||
'Nuwa.cpp',
|
||||
]
|
||||
|
||||
EXPORTS.mozilla += [
|
||||
'arm.h',
|
||||
'SSE.h',
|
||||
'WindowsDllBlocklist.h',
|
||||
]
|
||||
|
||||
if CONFIG['CPU_ARCH'].startswith('x86'):
|
||||
SOURCES += [
|
||||
'SSE.cpp',
|
||||
]
|
||||
|
||||
if CONFIG['CPU_ARCH'] == 'arm':
|
||||
SOURCES += [
|
||||
'arm.cpp',
|
||||
]
|
||||
|
||||
if CONFIG['MOZ_LINKER']:
|
||||
USE_LIBS += [
|
||||
'zlib',
|
||||
]
|
||||
|
||||
if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk':
|
||||
SOURCES += [
|
||||
'cpuacct.c',
|
||||
]
|
||||
|
||||
USE_LIBS += [
|
||||
'mfbt',
|
||||
]
|
||||
|
||||
if CONFIG['MOZ_LINKER']:
|
||||
USE_LIBS += [
|
||||
'zlib',
|
||||
]
|
||||
|
||||
if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk':
|
||||
SOURCES += [
|
||||
'cpuacct.c',
|
||||
]
|
||||
|
||||
DEFINES['IMPL_MFBT'] = True
|
||||
|
||||
LDFLAGS += CONFIG['MOZ_GLUE_WRAP_LDFLAGS']
|
||||
|
@ -15,4 +15,5 @@ DIRS += ['build']
|
||||
if CONFIG['MOZ_CRT']:
|
||||
DIRS += ['crt']
|
||||
|
||||
TEST_DIRS += ['tests']
|
||||
if not CONFIG['JS_STANDALONE']:
|
||||
TEST_DIRS += ['tests']
|
||||
|
Loading…
Reference in New Issue
Block a user