Jump to content
Sign in to follow this  

setting up dev environment "ERROR: SpiderMonkey build failed"

Recommended Posts

Hi all, first post, brand new here, 

love the game, feel I could contribute, also get some code experience here,

I use vanilla ubuntu 18.10 (consider it a 18.04.01, it's indistinguishable)

So I've been trying to set up a dev environment for 0AD, I've been following this guide https://trac.wildfiregames.com/wiki/BuildInstructions

here's what I've done so far (terminal commands) :

#(1) :
sudo apt install subversion build-essential libboost-dev libboost-filesystem-dev libcurl4-gnutls-dev libenet-dev libgloox-dev libicu-dev libminiupnpc-dev libnspr4-dev libnvtt-dev libogg-dev libopenal-dev libpng-dev libsdl2-dev libvorbis-dev libwxgtk3.0-dev libxcursor-dev libxml2-dev  zlib1g-dev libsodium-dev

# python comes with ubuntu but is not part of PATH by default so I set that up thusly : 
#(2) :
sudo ln -s /usr/bin/python3.6m /usr/bin/python

#(3) :
sudo gedit /etc/environment

# added :/usr/bin/python to the end of PATH and after a reboot typing "python" into terminal correctly opens up a python3.6m shell
# also the later update-workspaces script no longer fails with "python was not found in $PATH"

#(4) :
source /etc/environment

#(5) :
svn co https://svn.wildfiregames.com/public/ps/trunk/ 0ad

#(6) :
cd 0ad/build/workspaces/

#(7) :
./update-workspaces.sh --with-system-nvtt

this outputs :
./update-workspaces.sh --with-system-nvtt
Updating bundled third-party dependencies...

Building SpiderMonkey...

SpiderMonkey build options: --enable-shared-js --disable-tests --without-intl-api         
--enable-shared-js --disable-tests --without-intl-api
patching file js/src/configure.in
patching file js/src/configure
patching file config/external/zlib/moz.build
patching file js/src/jit-test/tests/tracelogger/bug1231170.js
patching file js/src/jit-test/tests/tracelogger/bug1266649.js
patching file js/src/jit/Ion.cpp
patching file js/src/vm/Debugger.cpp
patching file js/src/vm/Debugger.h
patching file js/src/vm/TraceLogging.cpp
patching file js/src/vm/TraceLogging.h
patching file js/src/vm/TraceLoggingGraph.cpp
patching file js/src/vm/TraceLoggingTypes.h
patching file python/psutil/psutil/_psutil_bsd.c
creating cache ./config.cache
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu
checking build system type... x86_64-unknown-linux-gnu
checking for gawk... no
checking for mawk... mawk
checking for perl5... no
checking for perl... /usr/bin/perl
checking for gcc... gcc
checking whether the C compiler (gcc  ) works... yes
checking whether the C compiler (gcc  ) is a cross-compiler... no
checking whether we are using GNU C... yes
checking whether gcc accepts -g... yes
checking for c++... c++
checking whether the C++ compiler (c++  -fno-schedule-insns2 -fno-delete-null-pointer-checks -DTRACE_LOG_DIR="\"../../source/tools/tracelogger/\"" ) works... yes
checking whether the C++ compiler (c++  -fno-schedule-insns2 -fno-delete-null-pointer-checks -DTRACE_LOG_DIR="\"../../source/tools/tracelogger/\"" ) is a cross-compiler... no
checking whether we are using GNU C++... yes
checking whether c++ accepts -g... yes
checking for ranlib... ranlib
checking for as... /usr/bin/as
checking for ar... ar
checking for ld... ld
checking for strip... strip
checking for windres... no
checking how to run the C preprocessor... gcc -E
checking how to run the C++ preprocessor... c++ -E
checking for sb-conf... no
checking for ve... no
checking for a BSD compatible install... /usr/bin/install -c
checking whether ln -s works... yes
checking for tar archiver... checking for gnutar... no
checking for gtar... no
checking for tar... tar
checking for minimum required perl version >= 5.006... 5.026002
checking for full perl installation... yes
checking for python2.7... no
checking for python... /usr/bin/python
Creating Python environment
Python 2.7.3 or greater (but not Python 3) is required to build. You are running Python 3.6.7.
Run |mach bootstrap| to ensure your system is up to date.

If you still receive this error, your shell environment is likely detecting
another Python version. Ensure a modern Python can be found in the paths
defined by the $PATH environment variable and try again.
------ config.log ------
configure:3111:1: note: include '<stdlib.h>' or provide a declaration of 'exit'
configure:3134: checking for ranlib
configure:3166: checking for as
configure:3220: checking for ar
configure:3255: checking for ld
configure:3290: checking for strip
configure:3325: checking for windres
configure:3941: checking how to run the C preprocessor
configure:3962: gcc -E  conftest.c >/dev/null 2>conftest.out
configure:4021: checking how to run the C++ preprocessor
configure:4039: c++ -E  conftest.C >/dev/null 2>conftest.out
configure:4161: checking for sb-conf
configure:4161: checking for ve
configure:4223: checking for a BSD compatible install
configure:4276: checking whether ln -s works
configure:4298: checking for tar archiver
configure:4304: checking for gnutar
configure:4304: checking for gtar
configure:4304: checking for tar
configure:4341: checking for minimum required perl version >= 5.006
configure:4351: checking for full perl installation
configure:4369: checking for python2.7
configure:4369: checking for python
ERROR: SpiderMonkey build failed

so I get  ERROR: SpiderMonkey build failed, why is that and how do I fix it?


thanks in advance for any help :)

Edited by tatsu

Share this post

Link to post
Share on other sites

woops I didn't see that error in the middle., guess it only wants 2.7

I suggest that the guide be edited for clarity, for one python 2.7 should be listed as a dependency, added to the packages to be installed (ubuntu 18 is with python3.6) and it should be specified that users should at least verify that python is being exposed one way or another (2.7 or a generic python link which points to both 2.7 and 3.6) in the environment $PATH variable.

also no mention of cd'ing to 



./update-workspaces.sh --with-system-nvtt

is up way too high,

way before you've finished installing the necessary packages.



is only mentioned way after, it should be included straight away, like so :

./update-workspaces.sh -j3 --with-system-nvtt



is editing the build instructions part of what community members can do?

Edited by tatsu
  • Like 1

Share this post

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Create New...