There are at least two issues.
1. The easy one. GCC in Ubuntu's environment is now more paranoid and treats some warnings as errors, which prevents a compile. For now you can override it like this:
Code: Select all
make -f Makefile release OBJCFLAGS="-Wno-format-security"
2. The tough one.
Code: Select all
$ cd oolite
$ git submodule update --init
Firstly it relies on autoconf v2.13 - Ubuntu now offers 2.13, 2.59, and 2.64 in separate packages.
Code: Select all
$ apt-get install autoconf2.13
$ cd deps/mozilla/js
$ autoconf2.13
$ ./configure
$ make
[ ... lots of typedef warnings...]
jsapi.cpp: In function ‘JSIdArray* JS_Enumerate(JSContext*, JSObject*)’:
jsapi.cpp:3980:16: error: cannot convert ‘bool’ to ‘JSIdArray*’ in return
return false;
^~~~~
config/rules.mk:1475: recipe for target 'jsapi.o' failed
make[1]: *** [jsapi.o] Error 1
make[1]: Leaving directory '/scratch/src/oolite/deps/mozilla/js/src'
config/rules.mk:753: recipe for target 'default' failed
make: *** [default] Error 2
So - I'll see if I can make a list...another_commander wrote: ↑Fri May 12, 2017 11:31 amFrom this page: https://gcc.gnu.org/gcc-6/porting_to.htmlCannot convert 'bool' to 'T*'
The current C++ standard only allows integer literals to be used as null pointer constants, so other constants such as false and (1 - 1) cannot be used where a null pointer is desired. Code that fails to compile with this error should be changed to use nullptr, or 0, or NULL.