Commit Graph

40 Commits

Author SHA1 Message Date
Bhargava Shastry
9f77d90c0b cmake: Minor refactoring of SANITIZE flag 2019-05-22 11:33:27 +02:00
rocky
b3ef7e2301 Remove clang+osx ld warning
Boost libraries on osx use visibility=hidden to reduce unnecessary DWARF entries.

Unless we match visibility, ld will give a warning message like:

   ld: warning: direct access in function 'boost::filesystem... from file ...
   means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
2019-04-30 07:38:28 -04:00
rocky
6d5505720d Maximum clang/gcc debugging when debugging desired.
-g3 adds macro information. See https://gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html
Both clang and gdb support this, and I think this preferred over the older -ggdb.
2019-04-16 11:47:06 -04:00
Alex Beregszaszi
62f707610e Run clang tests with ASAN 2019-02-07 18:59:40 +01:00
Shelly Grossman
3b5f446018 Ensuring UTF-8 encoding for MSVC builds 2019-01-26 15:30:17 +02:00
Daniel Kirchner
5baac8470b Use emscripten 1.38.8 on both travis and circle. 2019-01-17 18:31:34 +01:00
Alex Beregszaszi
3f58505c76 Remove obsolete ETH_EMSCRIPTEN option
This was made obsolete by using toolchain files (#2836)
2019-01-17 15:23:21 +00:00
Daniel Kirchner
ecdc00d569 Set emscripten to strict mode (wrt deprecated compiler options). 2019-01-17 15:22:43 +00:00
chriseth
8825533222
Merge pull request #5699 from ethereum/cmake-no-c-dependency
cmake: Do not depend on a C compiler to be present
2018-12-20 11:56:55 +01:00
Christian Parpart
639622c6d7 cmake: Do not depend on a C compiler to be present by explicitly stating that this is a C++ project.
CMake defaults to C *and* C++ toolchain, in case nothing has been specified.
This means that cmake always checks for both, which is more than needed.

This PR cuts off C toolchain requirement from /CMakeLists.txt and ensures that we
don't pass along any `..._C_...` variables in EthCompilerSettings.cake nor jsoncpp.cmake.
2018-12-20 09:02:00 +01:00
Paweł Bylica
b57a36ddae CMake: Use toolchain files 2018-12-19 12:32:15 +00:00
Christian Parpart
5b86e3ec50 Enables C++14 standard (was C++11) within the Solidity compiler project. 2018-12-11 21:28:05 +01:00
Alex Beregszaszi
551343ae3e
Merge pull request #4665 from mattaereal/cmake-patch-solver
cmake option added to make solvers optional
2018-08-08 17:58:01 +01:00
Matías Aereal Aeón
4b20708c49 cmake flags to make solvers optional. Implementation of #4651 2018-08-08 12:43:57 -03:00
Augusto F. Hack
6c3b48ddfc Added guards for unknown pragmas
Removed push/pop if there was no change to the warnings *in the same
file* for a given compiler. This assumes the imported boost headers use
a warning stack themselves.

The pragmas don't seem to be required anymore, but were not removed to
mantain compatibility with older versions of the boost library.

Compiled with
- clang version 6.0.1 (tags/RELEASE_601/final)
- gcc (GCC) 8.1.1 20180531
 against:
- libboost 1.67.0-5
2018-08-05 19:21:33 -03:00
Alex Beregszaszi
f7c96c8dee
Merge pull request #4560 from ethereum/cmake-policy
CMake policies
2018-08-02 13:32:32 +01:00
Paweł Bylica
807f7533d9
CMake: Add option COVERAGE
This also removed PROFILE option that also adds --coverage flag. Instead you can use -DCMAKE_EXE_LINKER_FLAGS=-lprofiler. The profiling options can be added back when better investigated (e.g. -lprofiler vs -pg options).
2018-07-24 17:12:41 +02:00
Paweł Bylica
9b5d713c28
CMake: Do not use non-existing sanitizer blacklist 2018-07-24 16:53:33 +02:00
Guido Vranken
730a444226 Do not ignore CMAKE_CXX_FLAGS defined on the command line 2018-07-17 00:58:32 +02:00
Cryptomental
140dbfdbd8 Code, Changelog, ReleaseChecklist: Fix typos.
Refs: #4442
2018-07-11 00:26:23 +02:00
Christian Parpart
230317e9ff Visual Studio 2017 build-time (linking) fix and improvements 2018-07-10 19:10:29 +02:00
Alexander Arlt
4aed41d9b6 cmake/EthCompilerSettings.cmake: increase stacksize for apple clang
- normally 16MB is enough to run all tests, but it will exceed the stack, if -DSANITIZE=address is used.
2018-05-15 15:11:38 +02:00
Alex Beregszaszi
bff741b42f Remove obsolete warning supressions for clang 2018-04-18 23:15:16 +01:00
Alex Beregszaszi
b53156b039 Remove -fpermissive 2018-04-18 23:14:38 +01:00
Alex Beregszaszi
c43953f9fe CMake: abort if linking results in undefined symbols with emscripten 2018-02-20 23:28:43 +01:00
Alex Beregszaszi
b4f99312e6 Disable greedy exception catcher in Emscripten build 2018-02-12 22:44:51 +00:00
Alexander Arlt
d9c51f9ca1 Set stack-size to 16MB for darwin clang.
By default Apple's clang defines a stack size of 8MB, some tests require
more.
2018-02-05 22:15:05 +01:00
Paweł Bylica
5722f3083c
CMake: Add compiler warning about implicit fallthough 2017-09-26 14:21:01 +02:00
Paweł Bylica
49c98bbc34
CMake: Better ccache configuration
EthCcache module taken from cpp-ethereum.
2017-09-20 16:39:41 +02:00
Paweł Bylica
d223b1361b
CMake: Better handle -fstack-protector flag support 2017-08-24 12:26:37 +02:00
Paweł Bylica
d1f4d110fb
CMake: Build static libs by default 2017-08-18 13:32:35 +02:00
Alex Beregszaszi
872e25413e Remove LINKABLE from Emscripten 2017-07-19 12:38:16 +01:00
Alex Beregszaszi
5050164d9e Add comments to Emscripten flags 2017-07-18 21:59:32 +01:00
Lefteris Karapetsas
735c977db1 Silence implicit fallthrough warning for gcc > 7
In my system I have gcc 7.1.1 and there I get a lot of warnings which
fail the build due to implicit fallthroughs in switch statements.

Some examples can be seen here:
https://gist.github.com/LefterisJP/388c3ba5ad356f92a3b44e7efed89f9f

This PR proposes a simple solution, which is to ignore the warning for
both gcc and clang.
2017-06-29 16:46:55 +02:00
Alex Beregszaszi
9cffa9a92e Do not use -Og for debug mode (won't work on Mac/clang) 2017-02-09 14:56:18 +00:00
chriseth
9c2ed33e9a Merge pull request #1342 from ethereum/emscripten-codesize
Emscripten code size improvements [WIP TEST]
2016-11-25 18:07:10 +01:00
Alex Beregszaszi
35def4735e Compile with -Og in debug mode (by @chfast) 2016-11-14 21:43:28 +00:00
Alex Beregszaszi
7bbaeedc31 Add optimisation flags for Emscripten 2016-11-09 02:46:47 +00:00
chriseth
81254e0eb7 Fix cmake empty string replace. 2016-10-27 16:30:11 +02:00
Bob Summerwill
4ee2114127 Make the Solidity repository standalone.
This commit is the culmination of several months of work to decouple Solidity from the webthree-umbrella so that it can be developed in parallel with cpp-ethereum (the Ethereum C++ runtime) and so that even for the Solidity unit-tests there is no hard-dependency onto the C++ runtime.

The Tests-over-IPC refactoring was a major step in the same process which was already committed.

This commit contains the following changes:

- A subset of the CMake functionality in webthree-helpers was extracted and tailored for Solidity into ./cmake.   Further cleanup is certainly possible.
- A subset of the libdevcore functionality in libweb3core was extracted and tailored for Solidity into ./libdevcore.   Further cleanup is certainly possible
- The gas price constants in EVMSchedule were orphaned into libevmasm.
- Some other refactorings and cleanups were made to sever unnecessary EVM dependencies in the Solidity unit-tests.
- TravisCI and Appveyor support was added, covering builds and running of the unit-tests (Linux and macOS only for now)
- A bug-fix was made to get the Tests-over-IPC running on macOS.
- There are still reliability issues in the unit-tests, which need immediate attention.    The Travis build has been flipped to run the unit-tests 5 times, to try to flush these out.
- The Emscripten automation which was previously in webthree-umbrella was merged into the TravisCI automation here.
- The development ZIP deployment step has been commented out, but we will want to read that ONLY for release branch.

Further iteration on these changes will definitely be needed, but I feel these have got to sufficient maturity than holding them back further isn't winning us anything.    It is go time :-)
2016-08-01 01:45:11 -07:00