Merge pull request #7832 from ethereum/updateEmscripten

Update emscripten to 1.39.3
This commit is contained in:
Leonardo 2019-11-29 14:39:41 +01:00 committed by GitHub
commit 27097b3eca
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 24 additions and 31 deletions

View File

@ -476,7 +476,7 @@ jobs:
b_ems: b_ems:
docker: docker:
- image: trzeci/emscripten:sdk-tag-1.38.22-64bit - image: trzeci/emscripten:sdk-tag-1.39.3-64bit
environment: environment:
TERM: xterm TERM: xterm
steps: steps:

View File

@ -110,7 +110,7 @@ matrix:
before_install: before_install:
- nvm install 8 - nvm install 8
- nvm use 8 - nvm use 8
- docker pull trzeci/emscripten:sdk-tag-1.38.22-64bit - docker pull trzeci/emscripten:sdk-tag-1.39.3-64bit
env: env:
- SOLC_EMSCRIPTEN=On - SOLC_EMSCRIPTEN=On
- SOLC_INSTALL_DEPS_TRAVIS=Off - SOLC_INSTALL_DEPS_TRAVIS=Off
@ -127,7 +127,7 @@ matrix:
# #
# This key here has no significant on anything, apart from caching. Please keep # This key here has no significant on anything, apart from caching. Please keep
# it in sync with the version above. # it in sync with the version above.
- EMSCRIPTEN_VERSION_KEY="1.38.22" - EMSCRIPTEN_VERSION_KEY="1.39.3"
# OS X Mavericks (10.9) # OS X Mavericks (10.9)
# https://en.wikipedia.org/wiki/OS_X_Mavericks # https://en.wikipedia.org/wiki/OS_X_Mavericks

View File

@ -11,6 +11,10 @@ Compiler Features:
* Yul Optimizer: Perform loop-invariant code motion. * Yul Optimizer: Perform loop-invariant code motion.
Build System:
* Update to emscripten version 1.39.3.
Bugfixes: Bugfixes:
* SMTChecker: Fix internal error when using ``abi.decode``. * SMTChecker: Fix internal error when using ``abi.decode``.

View File

@ -86,7 +86,7 @@ if (("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU") OR ("${CMAKE_CXX_COMPILER_ID}" MA
elseif(EMSCRIPTEN) elseif(EMSCRIPTEN)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --memory-init-file 0") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --memory-init-file 0")
# Leave only exported symbols as public and aggressively remove others # Leave only exported symbols as public and aggressively remove others
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fdata-sections -ffunction-sections -Wl,--gc-sections -fvisibility=hidden") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fdata-sections -ffunction-sections -fvisibility=hidden")
# Optimisation level # Optimisation level
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3")
# Re-enable exception catching (optimisations above -O1 disable it) # Re-enable exception catching (optimisations above -O1 disable it)
@ -110,7 +110,7 @@ if (("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU") OR ("${CMAKE_CXX_COMPILER_ID}" MA
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -s STRICT=1") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -s STRICT=1")
# Export the Emscripten-generated auxiliary methods which are needed by solc-js. # Export the Emscripten-generated auxiliary methods which are needed by solc-js.
# Which methods of libsolc itself are exported is specified in libsolc/CMakeLists.txt. # Which methods of libsolc itself are exported is specified in libsolc/CMakeLists.txt.
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -s EXTRA_EXPORTED_RUNTIME_METHODS=['cwrap','addFunction','removeFunction','Pointer_stringify','lengthBytesUTF8','_malloc','stringToUTF8','setValue']") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -s EXTRA_EXPORTED_RUNTIME_METHODS=['cwrap','addFunction','removeFunction','UTF8ToString','lengthBytesUTF8','_malloc','stringToUTF8','setValue']")
# Do not build as a WebAssembly target - we need an asm.js output. # Do not build as a WebAssembly target - we need an asm.js output.
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -s WASM=0") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -s WASM=0")

View File

@ -34,7 +34,7 @@ else
BUILD_DIR="$1" BUILD_DIR="$1"
fi fi
docker run -v $(pwd):/root/project -w /root/project trzeci/emscripten:sdk-tag-1.38.22-64bit \ docker run -v $(pwd):/root/project -w /root/project trzeci/emscripten:sdk-tag-1.39.3-64bit \
./scripts/travis-emscripten/install_deps.sh ./scripts/travis-emscripten/install_deps.sh
docker run -v $(pwd):/root/project -w /root/project trzeci/emscripten:sdk-tag-1.38.22-64bit \ docker run -v $(pwd):/root/project -w /root/project trzeci/emscripten:sdk-tag-1.39.3-64bit \
./scripts/travis-emscripten/build_emscripten.sh $BUILD_DIR ./scripts/travis-emscripten/build_emscripten.sh $BUILD_DIR

View File

@ -55,11 +55,11 @@ fi
WORKSPACE=/root/project WORKSPACE=/root/project
# Increase nodejs stack size # Increase nodejs stack size
if ! [ -e /emsdk_portable/node/bin/node_orig ] if ! [ -e /emsdk_portable/node/current/bin/node_orig ]
then then
mv /emsdk_portable/node/bin/node /emsdk_portable/node/bin/node_orig mv /emsdk_portable/node/current/bin/node /emsdk_portable/node/current/bin/node_orig
echo -e '#!/bin/sh\nexec /emsdk_portable/node/bin/node_orig --stack-size=8192 $@' > /emsdk_portable/node/bin/node echo -e '#!/bin/sh\nexec /emsdk_portable/node/current/bin/node_orig --stack-size=8192 $@' > /emsdk_portable/node/current/bin/node
chmod 755 /emsdk_portable/node/bin/node chmod 755 /emsdk_portable/node/current/bin/node
fi fi
# Boost # Boost
@ -70,8 +70,8 @@ cd "$WORKSPACE"/boost_1_70_0
--with-system --with-filesystem --with-test --with-program_options cxxflags="-Wno-unused-local-typedef -Wno-variadic-macros -Wno-c99-extensions -Wno-all" \ --with-system --with-filesystem --with-test --with-program_options cxxflags="-Wno-unused-local-typedef -Wno-variadic-macros -Wno-c99-extensions -Wno-all" \
--prefix="$WORKSPACE"/boost_1_70_0_install install --prefix="$WORKSPACE"/boost_1_70_0_install install
) )
ln -sf "$WORKSPACE"/boost_1_70_0_install/lib/* /emsdk_portable/sdk/system/lib ln -sf "$WORKSPACE"/boost_1_70_0_install/lib/* /emsdk_portable/emscripten/sdk/system/lib
ln -sf "$WORKSPACE"/boost_1_70_0_install/include/* /emsdk_portable/sdk/system/include ln -sf "$WORKSPACE"/boost_1_70_0_install/include/* /emsdk_portable/emscripten/sdk/system/include
echo -en 'travis_fold:end:compiling_boost\\r' echo -en 'travis_fold:end:compiling_boost\\r'
echo -en 'travis_fold:start:install_cmake.sh\\r' echo -en 'travis_fold:start:install_cmake.sh\\r'
@ -94,8 +94,6 @@ make -j 4
cd .. cd ..
mkdir -p upload mkdir -p upload
# Patch soljson.js to provide backwards-compatibility with older emscripten versions
echo ";/* backwards compatibility */ Module['Runtime'] = Module;" >> $BUILD_DIR/libsolc/soljson.js
cp $BUILD_DIR/libsolc/soljson.js upload/ cp $BUILD_DIR/libsolc/soljson.js upload/
cp $BUILD_DIR/libsolc/soljson.js ./ cp $BUILD_DIR/libsolc/soljson.js ./

View File

@ -1,4 +1,4 @@
# This is a copy of emscripten.jam from https://github.com/tee3/boost-build-emscripten # Modified version of emscripten.jam from https://github.com/tee3/boost-build-emscripten
# which is released under the following license: # which is released under the following license:
# #
# Boost Software License - Version 1.0 - August 17th, 2003 # Boost Software License - Version 1.0 - August 17th, 2003
@ -55,12 +55,8 @@ rule init ( version ? : command * : options * )
{ {
command = [ common.get-invocation-command emscripten : em++ : $(command) ] ; command = [ common.get-invocation-command emscripten : em++ : $(command) ] ;
root = ;
if $(command) if $(command)
{ {
root = [ common.get-absolute-tool-path $(command[-1]) ] ;
root = $(root:P) ;
version ?= [ MATCH "^([0-9.]+)" : [ SHELL \""$(command)\" --version" ] ] ; version ?= [ MATCH "^([0-9.]+)" : [ SHELL \""$(command)\" --version" ] ] ;
if $(version) if $(version)
{ {
@ -83,15 +79,10 @@ rule init ( version ? : command * : options * )
# @todo this seems to be the right way, but this is a list somehow # @todo this seems to be the right way, but this is a list somehow
toolset.add-requirements <toolset>emscripten:<testing.launcher>node ; toolset.add-requirements <toolset>emscripten:<testing.launcher>node ;
if $(.debug-configuration) toolset.flags emscripten.compile STDHDRS $(condition) : /emsdk_portable/emscripten/sdk/system/include ;
{ toolset.flags emscripten.link STDLIBPATH $(condition) : /emsdk_portable/emscripten/sdk/system/lib ;
ECHO "emscripten: using compiler" $(version) "at" $(root) ; toolset.flags emscripten AR $(condition) : /emsdk_portable/emscripten/sdk/emar ;
} toolset.flags emscripten RANLIB $(condition) : /emsdk_portable/emscripten/sdk/emranlib ;
toolset.flags emscripten.compile STDHDRS $(condition) : $(root)/libexec/system/include ;
toolset.flags emscripten.link STDLIBPATH $(condition) : $(root)/libexec/system/lib ;
toolset.flags emscripten AR $(condition) : $(root)/bin/emar ;
toolset.flags emscripten RANLIB $(condition) : $(root)/bin/emranlib ;
} }
type.set-generated-target-suffix EXE : <toolset>emscripten : js ; type.set-generated-target-suffix EXE : <toolset>emscripten : js ;

View File

@ -37,7 +37,7 @@ function setup_solcjs
cd "$dir" cd "$dir"
printLog "Setting up solc-js..." printLog "Setting up solc-js..."
git clone --depth 1 -b v0.5.0 https://github.com/ethereum/solc-js.git solc git clone --depth 1 -b master https://github.com/ethereum/solc-js.git solc
cd solc cd solc
npm install npm install
@ -107,7 +107,7 @@ function force_solc_truffle_modules
if [ -d "$d" ]; then if [ -d "$d" ]; then
cd $d cd $d
rm -rf solc rm -rf solc
git clone --depth 1 -b v0.5.0 https://github.com/ethereum/solc-js.git solc git clone --depth 1 -b master https://github.com/ethereum/solc-js.git solc
cp "$1" solc/soljson.js cp "$1" solc/soljson.js
fi fi
) )