Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
229 commits
Select commit Hold shift + click to select a range
c94c77d
Update frequently-asked-questions.rst
jamesray1 Jun 30, 2017
d2c0c5f
Getter function ref
jamesray1 Jun 30, 2017
433039f
Ref to getter function
jamesray1 Jun 30, 2017
eb84acb
Ref to getter function
jamesray1 Jun 30, 2017
e257a6c
Fixed reference to getter function
jamesray1 Jul 7, 2017
ba0d277
Fixed reference to getter function
jamesray1 Jul 7, 2017
221a013
Fixed reference to getter function
jamesray1 Jul 7, 2017
f74e405
Clarify internal function types
chriseth Jul 26, 2017
89551d9
Updated reference to getter-functions
jamesray1 Jul 28, 2017
c03a85a
ref getter-functions
jamesray1 Jul 28, 2017
3c3060d
:ref:`getter-functions`
jamesray1 Jul 28, 2017
84e71f0
Link: members-of-addresses
jamesray1 Jul 28, 2017
c5b82f7
Constructor index
jamesray1 Jul 28, 2017
064918c
Constructor is not a solidity keyword
jamesray1 Jul 28, 2017
0c63f27
Updated getter-functions ref
jamesray1 Jul 29, 2017
5f9c02c
added while loop description
joshuahannan Jul 29, 2017
a73fb4d
Wording.
chriseth Jul 31, 2017
8a19b2f
:ref:`getter function<getter-functions>`
jamesray1 Jul 31, 2017
5678a08
:ref:`getter function<getter-functions>`
jamesray1 Jul 31, 2017
0da46f2
:ref:`getter function<getter-functions>`
jamesray1 Jul 31, 2017
d015b58
Merge pull request #2715 from ethereum/release
chriseth Aug 9, 2017
df41793
Set version to 0.4.16.
chriseth Aug 9, 2017
81887bc
Merge pull request #2716 from ethereum/versionIncrement
axic Aug 9, 2017
3e2f0b5
Remove some global symbols
axic Aug 9, 2017
79137e4
fix typo 'onte' -> 'onto'
Aug 9, 2017
3b41cd3
Rename Token::Const to Token::Constant
axic Aug 9, 2017
81b1ecb
Merge pull request #2717 from vladislav-ankudinov/patch-1
axic Aug 9, 2017
4b0ea1f
Merge pull request #2718 from ethereum/globals
chriseth Aug 9, 2017
a4e3959
Merge pull request #2719 from ethereum/constant
chriseth Aug 9, 2017
a8ca623
Add test for multiple visibilites on functions
axic Aug 9, 2017
efd45f6
Show previous visibility specifier in parser error
axic Aug 9, 2017
b210db8
Make toString(visibility) a helper
axic Aug 9, 2017
279e64a
Merge pull request #2720 from ethereum/visibility-parser
chriseth Aug 9, 2017
b38f316
Add isDynamicallyEncoded member function to types.
chriseth Aug 7, 2017
fbcc5f4
Support experimental feature pragma
axic Jul 8, 2017
e44da40
Warn if using experimental pragma
axic Aug 2, 2017
de9e758
Reject unsupported experimental feature names
axic Aug 2, 2017
690ed37
Reject wildcard and multiple experimental pragmas
axic Aug 4, 2017
0a5553b
Merge pull request #2701 from ethereum/determineDynamicEncoding
axic Aug 9, 2017
57c2451
Introduce ExperimentalFeatures header
axic Aug 8, 2017
470950e
Add tests for experimental pragma
axic Aug 8, 2017
41e3cbe
Merge pull request #2690 from ethereum/experimental-pragma
chriseth Aug 10, 2017
95acbc7
Some more ABI tests.
chriseth Aug 7, 2017
abe6eb9
Merge pull request #2700 from ethereum/abiTests
axic Aug 10, 2017
1b32cdc
Check for payable when comparing function types
axic Aug 9, 2017
ad7a63f
FunctionType operator== boolean refactor
gubatron Aug 10, 2017
a323486
Add pure assembly example for summing
axic Jul 26, 2017
34503d9
Move init/cond into the for loop
axic Jul 27, 2017
9358001
Use temporary variable for sum example
axic Aug 10, 2017
3dcf089
Simplify if/else statements in Types
axic Aug 9, 2017
d5188fb
Introduce IndentedWriter
axic Jun 14, 2017
c84de7f
Merge pull request #2724 from ethereum/function-type-payable
chriseth Aug 11, 2017
bd639b9
Merge pull request #2653 from ethereum/docs-asm
chriseth Aug 11, 2017
a7a9ed4
Merge pull request #2727 from ethereum/simplify-types
chriseth Aug 11, 2017
644c91f
Add __test experimental mode for testing
axic Aug 10, 2017
53a497b
Add analysis-only experimental features
axic Aug 10, 2017
4d82d4f
Store experimental flag in metadata CBOR
axic Aug 8, 2017
2d1bab0
Output experimental flag in metadata only for risky features
axic Aug 10, 2017
b5aeae0
Amend expected test messages for SolidityNameAndTypeResolution
izgzhen Jul 30, 2017
ecec557
Merge pull request #2634 from ethereum/chriseth-patch-1
axic Aug 11, 2017
92b535f
Merge pull request #2624 from izgzhen/amend-test-msg
axic Aug 11, 2017
e3d1137
Merge pull request #2712 from ethereum/experimental-metadata
axic Aug 11, 2017
20540bc
Merge pull request #2730 from ethereum/indented-writer
chriseth Aug 11, 2017
0fab0ed
Merge pull request #2487 from jamesray1/patch-23
chriseth Aug 11, 2017
a0f9e8e
Merge pull request #2485 from jamesray1/patch-21
chriseth Aug 11, 2017
5b26e2b
Merge pull request #2486 from jamesray1/patch-22
chriseth Aug 11, 2017
a8c047f
Enforce commas in tuple syntax
federicobond Aug 8, 2017
d968912
Merge pull request #2714 from federicobond/enforce-tuple-commas
axic Aug 11, 2017
da3ac86
Warn about large storage structures.
chriseth Aug 7, 2017
a5ceaac
Improve override changes signature error message
federicobond Jul 17, 2017
ff5bb54
Use fully qualified name of super in message
federicobond Jul 17, 2017
f0dc572
Improve and add missing tests
federicobond Jul 18, 2017
a694985
Refactor function override check to remove duplicate logic
federicobond Jul 19, 2017
d4997dd
Use a secondary location for function override errors
federicobond Jul 19, 2017
3571db6
Avoid duplicate errors due to function overrides
federicobond Jul 21, 2017
52ccc26
Merge pull request #2581 from federicobond/improve-override-error
axic Aug 11, 2017
fdeb94a
docs typo: remove duplicate period and unnecessary spaces in intro
stuwest Aug 12, 2017
4d9790b
Merge pull request #2703 from ethereum/warnAboutLargeStorageArrays
chriseth Aug 14, 2017
77b2655
Allow multi-dimensional arrays in interfaces.
chriseth Aug 7, 2017
bda410b
Helpers.
chriseth Aug 7, 2017
42fe8a2
New ABI encoder.
chriseth Aug 7, 2017
4630b33
Interface for new ABI encoder.
chriseth Aug 7, 2017
38446a9
ABI encoder tests.
chriseth Aug 3, 2017
ee6f56d
Remove unused magic global feature.
chriseth Aug 10, 2017
d1ad62f
Experimental feature switch for ABI encoder.
chriseth Aug 10, 2017
63b556b
Test both encoders.
chriseth Aug 10, 2017
2a9ba93
Replace constant/payable with StateMutability in AST
axic Jul 1, 2017
1c1388f
Update parser tests
axic Aug 9, 2017
b225bf5
Remove useless payable & constant typecheck
axic Aug 9, 2017
a26a5f2
Remove constant/payable in all function types
axic Aug 9, 2017
0a04a35
Merge pull request #2722 from ethereum/statemutability
axic Aug 14, 2017
2411f5d
Merge pull request #2704 from ethereum/newEncoder
chriseth Aug 14, 2017
bcce31b
Tests for recursion exploit in parser.
chriseth Aug 14, 2017
892605e
Merge pull request #2735 from stuwest/fix/typo-in-intro-doc
chriseth Aug 14, 2017
ed77f70
Update installing-solidity.rst
feliam Aug 14, 2017
32e4347
Prevent too deep recursion in parser.
chriseth Aug 14, 2017
dca1f45
Merge pull request #2743 from ethereum/preventStackOverflow
axic Aug 15, 2017
12f3257
Add statemutability field to the ABI
axic Jul 17, 2017
1f5ab60
Add test for payable constructor in ABI
axic Aug 15, 2017
7091503
Merge pull request #2744 from feliam/patch-2
chriseth Aug 15, 2017
29cf3d9
Merge pull request #2732 from ethereum/statemutability-abi
chriseth Aug 15, 2017
8ee973f
Merge pull request #2660 from jamesray1/patch-26
chriseth Aug 15, 2017
2fa5948
Merge pull request #2664 from joshuahannan/develop
chriseth Aug 15, 2017
80f8316
Merge pull request #2659 from jamesray1/patch-25
chriseth Aug 15, 2017
7222fac
Remove DocumentationType from natspec
axic Jul 27, 2017
2dc9e53
Specify address as string on events documentation
eyezick Aug 15, 2017
2021508
Update contracts.rst
chriseth Aug 16, 2017
83561e1
Merge pull request #2751 from eyezick/patch-1
chriseth Aug 16, 2017
3d595d4
Warn about shift of literals.
chriseth Aug 16, 2017
80ee7c2
Fix ABI for fixed types
axic Jul 27, 2017
4acc552
Fix the grammar for fixed point types
axic Jul 27, 2017
09ef3d8
Add proper warning for fixed point types
axic Jul 27, 2017
4449820
Merge pull request #2758 from ethereum/warnShift
axic Aug 16, 2017
93be0dd
FunctionType comparison/identifer to support all statemutability levels
axic Aug 15, 2017
a2aaa47
Use state mutability in fallback/constructor check
axic Aug 15, 2017
a61c88e
Use state mutability in override error messages
axic Aug 15, 2017
33ea314
Add statemutability to AST JSON
axic Aug 16, 2017
7700f40
Remove isDeclaredConst() from functions
axic Aug 16, 2017
4c6d476
Merge pull request #2754 from ethereum/isdeclaredconst
axic Aug 16, 2017
247ed0d
Merge pull request #2654 from ethereum/docs-fixed
axic Aug 16, 2017
c1ddc79
Disable Circle CI builds for now
chfast Aug 16, 2017
83b90f3
Merge pull request #2760 from ethereum/disable-circleci
axic Aug 16, 2017
47b6aa1
Update grammar to reflect state mutability
axic Aug 16, 2017
d5f0146
Allow constant modifier on state variables in grammar
axic Aug 16, 2017
8025ac1
Add missing keywords to documentation lexer
axic Aug 16, 2017
2a1b6b2
CMake: Simplify libdevcore config
chfast Aug 16, 2017
d1f4d11
CMake: Build static libs by default
chfast Aug 18, 2017
63372e4
CMake: Simplify libevmasm config
chfast Aug 16, 2017
7337054
CMake: Simplify liblll config
chfast Aug 16, 2017
8404e2b
CMake: Simplify libsolidity config
chfast Aug 16, 2017
a874bd3
CMake: Simplify lllc config
chfast Aug 16, 2017
6f72025
CMake: Simplify solc config
chfast Aug 16, 2017
397a721
CMake: Simplify test tools config
chfast Aug 16, 2017
0712e63
Boost: Use static libs
chfast Aug 17, 2017
fe25bcf
Library cannot have constructors
axic Aug 16, 2017
99d198f
CMake: Make libs dependencies explicit
chfast Aug 17, 2017
fa53494
CMake: Remove libsolidity <- boost::regex dependency
chfast Aug 21, 2017
2c5985d
Be more strict about number literals in assembly.
chriseth Aug 21, 2017
0cf6048
Merge pull request #2769 from ethereum/assemblyNumberLiterals
chriseth Aug 21, 2017
b3986f1
Remove some unused includes
axic Aug 21, 2017
1be713a
Merge pull request #2761 from ethereum/grammar
chriseth Aug 21, 2017
01b4bba
Merge branch 'develop' into library-constructor
chriseth Aug 21, 2017
48651fc
Merge pull request #2763 from ethereum/library-constructor
chriseth Aug 21, 2017
d270879
Merge pull request #2748 from ethereum/natspec
chriseth Aug 21, 2017
ec82706
Fix crash related to ``using for`` without a library.
chriseth Aug 21, 2017
4219aca
Merge pull request #2771 from ethereum/unused-includes
axic Aug 21, 2017
e3f9056
Avoid some Json copy operations.
chriseth Jul 27, 2017
4b56829
Create children node in ASTJsonConverter when neccesary
axic Aug 17, 2017
0dc7391
CMake: Allow linking Boost dynamically
chfast Aug 21, 2017
2c2ae74
Merge pull request #2773 from ethereum/usingForWithoutLibrary
axic Aug 21, 2017
c94b1f8
Set variable to nullptr in ASTPrinter
axic Aug 16, 2017
b25f0c5
Reject the creation of interface with the new statement
axic Aug 11, 2017
e2cfc9e
Mark a lot of functions const (where possible)
axic Aug 17, 2017
3cf2426
Make vector+vector template more readable
axic Aug 21, 2017
2a5772c
Mark appropriate constructors explicit
axic Aug 21, 2017
9897c56
Mark a lot of functions static (where possible)
axic Aug 21, 2017
7b0046a
Check inheritance specifier arguments for interfaces.
chriseth Aug 21, 2017
f874fc2
Merge pull request #2772 from ethereum/cppcheck
chriseth Aug 22, 2017
97cb571
Tests for recursion in JULIA.
chriseth Aug 21, 2017
692e4c5
Check recursion depth in assembly parser.
chriseth Aug 21, 2017
628b54c
Reduce max recursion depth.
chriseth Aug 22, 2017
97169e5
Merge pull request #2734 from ethereum/reject-create-interface
axic Aug 22, 2017
f38429f
Switch stream properties back after temporary modification
axic Aug 22, 2017
f2d6226
Some smaller issues found by Covertiy Scan
axic Aug 22, 2017
9b6caa3
Remove visits to abstract AST class TypeName.
chriseth Aug 22, 2017
badb269
Merge pull request #2776 from ethereum/removeVisitsToAbstractASTNode
axic Aug 22, 2017
210b487
Merge pull request #2775 from ethereum/coverity
chriseth Aug 22, 2017
15fd43f
CMake: Fix linking with pthread
chfast Aug 22, 2017
efe4d68
Introduce view (and keep constant as an alias)
axic Sep 8, 2016
9e8d2a5
Update grammar with view
axic Nov 17, 2016
70bb1e7
Update tests for view
axic Aug 21, 2017
b1cdf81
Document view functions
axic Aug 21, 2017
0ffc5db
Merge pull request #2762 from ethereum/statemutability-view
axic Aug 22, 2017
4974ff3
CMake: Add option to static link solc
chfast Aug 22, 2017
388fc98
CMake: Cleanup "local" include path
chfast Aug 22, 2017
09628de
docs: Add a note about CMake options
chfast Aug 22, 2017
c5f11d9
Merge pull request #2656 from ethereum/performance1
chriseth Aug 23, 2017
3b07c4d
Merge pull request #2757 from ethereum/cmake
axic Aug 23, 2017
1ece7bf
z3 conditions
chriseth Jul 6, 2017
df84885
Rewrite using SMTLIB2 interface.
chriseth Jul 10, 2017
39fc798
Use file to communicate with z3.
chriseth Jul 10, 2017
b3f8ed4
Cleanup.
chriseth Jul 11, 2017
b9015f0
CMake: Remove unused scripts
chfast Aug 16, 2017
c9cf244
Prepare build system for Z3.
chriseth Jul 13, 2017
4cea3d4
Insert abstraction layer.
chriseth Jul 13, 2017
ab5e3a8
Introduce native Z3 support.
chriseth Jul 13, 2017
9ac2ac1
Rename read file callback.
chriseth Jul 13, 2017
1e05ebe
Refactor Z3 read callback.
chriseth Jul 13, 2017
5bfd5d9
Format numbers more nicely.
chriseth Jul 13, 2017
75f09f2
Partial support for if statements.
chriseth Jul 14, 2017
c93f043
Use experimental feature pragma for SMT checker.
chriseth Aug 11, 2017
8853183
Changelog entry.
chriseth Aug 11, 2017
cf5e1d6
Review changes.
chriseth Aug 21, 2017
ee09a06
CMake: Add back compatibility with CMake 3.0
chfast Aug 23, 2017
d57e3d7
CMake: Explicitly ask for Boost.System library
chfast Aug 23, 2017
b0c78ea
Merge pull request #2784 from ethereum/cmake-3.0
chfast Aug 23, 2017
e7832ec
Merge pull request #2783 from ethereum/cmake-dead-code
axic Aug 23, 2017
e8d1658
Add external tests.
chriseth Aug 23, 2017
a0d515c
Keep REPO_ROOT as absolute path
axic Aug 23, 2017
ee8fa88
Merge pull request #2782 from ethereum/externalTests
axic Aug 23, 2017
957f23a
Merge pull request #2538 from ethereum/z3Conditions
axic Aug 23, 2017
b5d2a4e
Adding storage into the pointer for Voter delegate
designium Aug 24, 2017
940ec4b
Add libz3-dev to the snap build-packages
Aug 24, 2017
5831b04
CMake: Fix FindZ3
chfast Aug 24, 2017
77f8d6f
Merge pull request #2791 from ethereum/cmake-z3
chriseth Aug 24, 2017
78c2dca
Merge pull request #2790 from elopio/snap-z3
chriseth Aug 24, 2017
9c74473
Merge pull request #2787 from designium/patch-1
chriseth Aug 24, 2017
8af6f19
Merge pull request #2770 from ethereum/recursionInAsm
chriseth Aug 24, 2017
6dd7f62
Require libz3-dev for ubuntu PPA builds.
chriseth Aug 24, 2017
f67f798
Fix link to Russian version on wiki
nicksavers Aug 24, 2017
d223b13
CMake: Better handle -fstack-protector flag support
chfast Aug 23, 2017
9488661
Merge pull request #2793 from ethereum/fixZ3Requirement
chriseth Aug 24, 2017
220259d
Merge pull request #2781 from ethereum/compiler-flags
chriseth Aug 24, 2017
65d78f3
Merge pull request #2794 from nicksavers/patch-2
axic Aug 24, 2017
5668377
Introduce pure specifier on functions
axic Aug 15, 2017
e9a9a07
Add ABI test for pure function
axic Aug 15, 2017
93e6e83
Document pure functions
axic Aug 16, 2017
504e628
Add pure to ABI spec
axic Aug 16, 2017
23c791e
Add pure to grammar
axic Aug 16, 2017
f646247
Consider pure as constant for the AST JSON (to aid static analyzers)
axic Aug 24, 2017
d3fd6a8
Merge pull request #2745 from ethereum/statemutability-pure
axic Aug 24, 2017
deeac7e
Rename statemutability to stateMutability in ABI/AST
axic Aug 24, 2017
efe9d55
Update on the example for BlindAction
designium Aug 24, 2017
5fbe3af
Merge pull request #2799 from designium/patch-2
chriseth Aug 24, 2017
71294b2
Merge pull request #2798 from ethereum/statemutability
chriseth Aug 24, 2017
0878eaa
Prepare 0.4.16 release.
chriseth Aug 24, 2017
c5b81f5
Merge pull request #2797 from ethereum/updateVersion
chriseth Aug 24, 2017
29ba351
Describe experimental features.
chriseth Aug 24, 2017
dd67e59
Merge pull request #2800 from ethereum/updateVersion
chriseth Aug 24, 2017
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 5 additions & 4 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,19 +8,20 @@ include(EthPolicy)
eth_policy()

# project name and version should be set after cmake_policy CMP0048
set(PROJECT_VERSION "0.4.15")
set(PROJECT_VERSION "0.4.16")
project(solidity VERSION ${PROJECT_VERSION})

option(SOLC_LINK_STATIC "Link solc executable statically on supported platforms" OFF)

# Let's find our dependencies
include(EthDependencies)
include(deps/jsoncpp.cmake)

find_package(Threads)

# Figure out what compiler and system are we using
include(EthCompilerSettings)

# Include helper macros
include(EthExecutableHelper)

# Include utils
include(EthUtils)

Expand Down
30 changes: 30 additions & 0 deletions Changelog.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,33 @@
### 0.4.16 (2017-08-24)

Features:
* ABI JSON: Include new field ``stateMutability`` with values ``pure``, ``view``,
``nonpayable`` and ``payable``.
* Analyzer: Experimental partial support for Z3 SMT checker ("SMTChecker").
* Build System: Shared libraries (``libdevcore``, ``libevmasm``, ``libsolidity``
and ``liblll``) are no longer produced during the build process.
* Code generator: Experimental new implementation of ABI encoder that can
encode arbitrarily nested arrays ("ABIEncoderV2")
* Metadata: Store experimental flag in metadata CBOR.
* Parser: Display previous visibility specifier in error if multiple are found.
* Parser: Introduce ``pure`` and ``view`` keyword for functions,
``constant`` remains an alias for ``view`` and pureness is not enforced yet,
so use with care.
* Static Analyzer: Warn about large storage structures.
* Syntax Checker: Support ``pragma experimental <feature>;`` to turn on
experimental features.
* Type Checker: More detailed error message for invalid overrides.
* Type Checker: Warn about shifting a literal.

Bugfixes:
* Assembly Parser: Be more strict about number literals.
* Assembly Parser: Limit maximum recursion depth.
* Parser: Enforce commas between array and tuple elements.
* Parser: Limit maximum recursion depth.
* Type Checker: Crash fix related to ``using``.
* Type Checker: Disallow constructors in libraries.
* Type Checker: Reject the creation of interface contracts using the ``new`` statement.

### 0.4.15 (2017-08-08)

Features:
Expand Down
10 changes: 10 additions & 0 deletions circle.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
version: 2
jobs:
build:
branches:
ignore:
- /.*/
docker:
- image: trzeci/emscripten:sdk-tag-1.37.18-64bit
steps:
- checkout
161 changes: 0 additions & 161 deletions cmake/CMakeParseArguments.cmake

This file was deleted.

65 changes: 12 additions & 53 deletions cmake/EthCompilerSettings.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,18 @@ if(CCACHE_FOUND)
message("Using ccache")
endif(CCACHE_FOUND)

include(CheckCXXCompilerFlag)

check_cxx_compiler_flag(-fstack-protector-strong have_stack_protector_strong)
if (have_stack_protector_strong)
add_compile_options(-fstack-protector-strong)
else()
check_cxx_compiler_flag(-fstack-protector have_stack_protector)
if(have_stack_protector)
add_compile_options(-fstack-protector)
endif()
endif()

if (("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU") OR ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang"))

# Use ISO C++11 standard language.
Expand Down Expand Up @@ -63,13 +75,6 @@ if (("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU") OR ("${CMAKE_CXX_COMPILER_ID}" MA
# Applying -fpermissive to a C command-line (ie. secp256k1) gives a build error.
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpermissive")

# Build everything as shared libraries (.so files)
add_definitions(-DSHAREDLIB)

# If supported for the target machine, emit position-independent code, suitable for dynamic
# linking and avoiding any limit on the size of the global offset table.
add_compile_options(-fPIC)

# Configuration-specific compiler settings.
set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g -DETH_DEBUG")
set(CMAKE_CXX_FLAGS_MINSIZEREL "-Os -DNDEBUG")
Expand All @@ -86,14 +91,6 @@ if (("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU") OR ("${CMAKE_CXX_COMPILER_ID}" MA
message(FATAL_ERROR "${PROJECT_NAME} requires g++ 4.7 or greater.")
endif ()

# Strong stack protection was only added in GCC 4.9.
# Use it if we have the option to do so.
# See https://lwn.net/Articles/584225/
if (GCC_VERSION VERSION_GREATER 4.9 OR GCC_VERSION VERSION_EQUAL 4.9)
add_compile_options(-fstack-protector-strong)
add_compile_options(-fstack-protector)
endif()

# Until https://github.com/ethereum/solidity/issues/2479 is handled
# disable all implicit fallthrough warnings in the codebase for GCC > 7.0
if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 7.0)
Expand All @@ -103,31 +100,6 @@ if (("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU") OR ("${CMAKE_CXX_COMPILER_ID}" MA
# Additional Clang-specific compiler settings.
elseif ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")

add_compile_options(-fstack-protector)

# Enable strong stack protection only on Mac and only for OS X Yosemite
# or newer (AppleClang 7.0+). We should be able to re-enable this setting
# on non-Apple Clang as well, if we can work out what expression to use for
# the version detection.

# The fact that the version-reporting for AppleClang loses the original
# Clang versioning is rather annoying. Ideally we could just have
# a single cross-platform "if version >= 3.4.1" check.
#
# There is debug text in the else clause below, to help us work out what
# such an expression should be, if we can get this running on a Trusty box
# with Clang. Greg Colvin previously replicated the issue there too.
#
# See https://github.com/ethereum/webthree-umbrella/issues/594

if (APPLE)
if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 7.0 OR CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 7.0)
add_compile_options(-fstack-protector-strong)
endif()
else()
message(WARNING "CMAKE_CXX_COMPILER_VERSION = ${CMAKE_CXX_COMPILER_VERSION}")
endif()

# A couple of extra warnings suppressions which we seemingly
# need when building with Clang.
#
Expand Down Expand Up @@ -198,7 +170,6 @@ elseif (DEFINED MSVC)
add_compile_options(/wd4800) # disable forcing value to bool 'true' or 'false' (performance warning) (4800)
add_compile_options(-D_WIN32_WINNT=0x0600) # declare Windows Vista API requirement
add_compile_options(-DNOMINMAX) # undefine windows.h MAX && MIN macros cause it cause conflicts with std::min && std::max functions
add_compile_options(-DMINIUPNP_STATICLIB) # define miniupnp static library

# Always use Release variant of C++ runtime.
# We don't want to provide Debug variants of all dependencies. Some default
Expand All @@ -218,12 +189,6 @@ elseif (DEFINED MSVC)
# stack size 16MB
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /ignore:4099,4075 /STACK:16777216")

# windows likes static
if (NOT ETH_STATIC)
message("Forcing static linkage for MSVC.")
set(ETH_STATIC 1)
endif ()

# If you don't have GCC, Clang or VC++ then you are on your own. Good luck!
else ()
message(WARNING "Your compiler is not tested, if you run into any issues, we'd welcome any patches.")
Expand Down Expand Up @@ -262,9 +227,3 @@ if (("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU") OR ("${CMAKE_CXX_COMPILER_ID}" MA
endif ()
endif ()
endif ()

if(ETH_STATIC)
set(BUILD_SHARED_LIBS OFF)
else()
set(BUILD_SHARED_LIBS ON)
endif(ETH_STATIC)
Loading