mirror of
https://github.com/flatcar/scripts.git
synced 2025-10-08 05:51:31 +02:00
spidermonkey: fix cross-compiling logic
The existing ebuild uses a really crazy hack for cross compiling which may have worked a few versions ago but it doesn't now. The root issue is that Mozilla mixes up the meaning of "host" and "target" so give in to their stupid and setup the environment with their meaning. The configure script claimed in a comment: In Mozilla, we use the names $target, $host and $build incorrectly, but are too far gone to back out now. See Bug 475488: - When we say $target, we mean $host, that is, the system on which Mozilla will be run. - When we say $host, we mean $build, that is, the system on which Mozilla is built. - $target (in its correct usage) is for compilers who generate code for a different platform than $host, so it would not be used by Mozilla. I'm inclined to smack someone with a stick.
This commit is contained in:
parent
b8ad381b43
commit
a047717347
@ -58,17 +58,28 @@ src_prepare() {
|
||||
src_configure() {
|
||||
cd "${BUILDDIR}" || die
|
||||
|
||||
CC="$(tc-getCC)" CXX="$(tc-getCXX)" \
|
||||
AR="$(tc-getAR)" RANLIB="$(tc-getRANLIB)" \
|
||||
LD="$(tc-getLD)" \
|
||||
# Mozilla screws up the meaning of BUILD, HOST, and TARGET :(
|
||||
tc-export_build_env CC CXX LD AR RANLIB PKG_CONFIG \
|
||||
BUILD_CC BUILD_CXX BUILD_LD BUILD_AR BUILD_RANLIB
|
||||
export HOST_CC="${BUILD_CC}" HOST_CFLAGS="${BUILD_CFLAGS}" \
|
||||
HOST_CXX="${BUILD_CXX}" HOST_CXXFLAGS="${BUILD_CXXFLAGS}" \
|
||||
HOST_LD="${BUILD_LD}" HOST_LDFLAGS="${BUILD_LDFLAGS}" \
|
||||
HOST_AR="${BUILD_AR}" HOST_RANLIB="${BUILD_RANLIB}"
|
||||
|
||||
# Use pkg-config instead of nspr-config to use $SYSROOT
|
||||
local nspr_cflags="$(${PKG_CONFIG} --cflags nspr)" || die
|
||||
local nspr_libs="$(${PKG_CONFIG} --libs nspr)" || die
|
||||
|
||||
econf \
|
||||
${myopts} \
|
||||
--host="${CBUILD}" \
|
||||
--target="${CHOST}" \
|
||||
--enable-jemalloc \
|
||||
--enable-readline \
|
||||
--enable-threadsafe \
|
||||
--with-system-nspr \
|
||||
--enable-system-ffi \
|
||||
--enable-jemalloc \
|
||||
--with-nspr-cflags="${nspr_cflags}" \
|
||||
--with-nspr-libs="${nspr_libs}" \
|
||||
$(use_enable debug) \
|
||||
$(use_enable jit tracejit) \
|
||||
$(use_enable jit methodjit) \
|
||||
@ -78,29 +89,6 @@ src_configure() {
|
||||
|
||||
src_compile() {
|
||||
cd "${BUILDDIR}" || die
|
||||
if tc-is-cross-compiler; then
|
||||
make CFLAGS="" CXXFLAGS="" \
|
||||
CC=$(tc-getBUILD_CC) CXX=$(tc-getBUILD_CXX) \
|
||||
AR=$(tc-getBUILD_AR) RANLIB=$(tc-getBUILD_RANLIB) \
|
||||
jscpucfg host_jsoplengen host_jskwgen || die
|
||||
make CFLAGS="" CXXFLAGS="" \
|
||||
CC=$(tc-getBUILD_CC) CXX=$(tc-getBUILD_CXX) \
|
||||
AR=$(tc-getBUILD_AR) RANLIB=$(tc-getBUILD_RANLIB) \
|
||||
-C config nsinstall || die
|
||||
mv {,native-}jscpucfg || die
|
||||
mv {,native-}host_jskwgen || die
|
||||
mv {,native-}host_jsoplengen || die
|
||||
mv config/{,native-}nsinstall || die
|
||||
sed -e 's@./jscpucfg@./native-jscpucfg@' \
|
||||
-e 's@./host_jskwgen@./native-host_jskwgen@' \
|
||||
-e 's@./host_jsoplengen@./native-host_jsoplengen@' \
|
||||
-i Makefile || die
|
||||
sed -e 's@/nsinstall@/native-nsinstall@' -i config/config.mk || die
|
||||
rm -f config/host_nsinstall.o \
|
||||
config/host_pathsub.o \
|
||||
host_jskwgen.o \
|
||||
host_jsoplengen.o || die
|
||||
fi
|
||||
emake
|
||||
}
|
||||
|
@ -81,3 +81,5 @@ sys-apps/systemd -ssl
|
||||
|
||||
# disable kernel config detection and module building
|
||||
net-firewall/ipset -modules
|
||||
|
||||
dev-lang/spidermonkey minimal
|
||||
|
Loading…
x
Reference in New Issue
Block a user