aboutsummaryrefslogtreecommitdiff
path: root/CMakeLists.txt (unfollow)
AgeCommit message (Collapse)AuthorFilesLines
2021-06-06translations: use host compilerv0.17.2.0Bertrand Jacquin1-1/+9
Do not pass target compiler and compiler flags as generate_translations_header need to be created using host compiler and compiler flags
2021-06-05build: remove duplicate commentBertrand Jacquin1-1/+0
2021-03-24cmake: Don't default to -march=native on OpenBSDNathan Dorfman1-1/+12
2020-09-25link libzmq against libgssapi_krb5 if foundmoneromooo-monero1-0/+4
2020-06-25cmake: allow custom openssl path on macOSselsta1-1/+1
2020-06-14Do not use PIE with OSS-Fuzzmoneromooo-monero1-1/+1
2020-05-24cmake: insert CMAKE_CURRENT_SOURCE_DIR in CMAKE_MODULE_PATHxiphon1-1/+1
2020-05-16Support for supercop ASM in wallet, and benchmark for supercopLee Clagett1-1/+6
2020-05-15cmake: ASAN and PIE don't mixmoneromooo-monero1-2/+4
Binaries built with both crash on startup with maybe 25% probability
2020-05-15fuzz_tests: refactor and add OSS-Fuzz compatibilitymoneromooo-monero1-0/+6
2020-05-06Update copyright year to 2020SomaticFanatic1-1/+1
Update copyright year to 2020
2020-05-04Made ccache optional (opt out) and tidied up the FindCcache.cmakemj-xmr1-1/+6
2020-04-22FindCcache automaticallymj-xmr1-0/+2
2019-10-25Windows: enable high-entropy ASLR where availableiDunk54001-0/+1
2019-10-25build: fix building on Windows due to _FORTIFY_SOURCE changes in MSYS2iDunk54001-4/+6
Also, enable other hardening options that work on Windows with GCC 9.x
2019-09-25RandomX integrationHoward Chu1-0/+1
Support RandomX PoW algorithm
2019-09-25Don't set ARCH_ID if it's already setHoward Chu1-1/+3
Usually it's unset, but depends toolchain files set it explicitly for cross-compiling. Don't override preset values. But make sure it's set for all x86 / x86_64 builds, not just Linux. Also make sure -std=c++11 is set for Darwin builds, not all submodules were getting it consistently before.
2019-09-24Revert "easylogging++: ensure it finds boost headers"moneromooo-monero1-2/+1
This reverts commit 9a95827ea72574c3e861aa3167c0b96b9bae64b3.
2019-09-24easylogging++: ensure it finds boost headersmoneromooo-monero1-1/+2
2019-09-16Removed Berkeley DB and db switching logicJesus Ramirez1-53/+3
2019-09-11cmake: add protolib to zmq dependency libsstoffu1-0/+4
Needed for Ubuntu 19.04: https://ubuntu.pkgs.org/19.04/ubuntu-universe-amd64/libnorm-dev_1.5.8+dfsg2-1_amd64.deb.html
2019-09-07depends: attempt to fix readlineiDunk54001-1/+9
Make readline actually compile, and make ncurses use existing terminfo data (if available).
2019-09-05Add the iwyu target to get information on unused headersMartijn Otto1-0/+13
With this change, building the iwyu target will provide information on unused headers, which can be removed to reduce compilation times.
2019-08-28cmake: ensure PYTHON_EXECUTABLE is setmoneromooo-monero1-0/+1
2019-07-30fix building on OpenBSD, simplify Readme sectionMr. Me0w1-3/+3
Based on a patch from @mrme0w (#5569). Fixes #5770
2019-07-22Dropping cppzmq dependency; adding some zmq utilsLee Clagett1-2/+2
2019-06-20cmake: fix tests generatorston1th1-2/+1
find_package(PythonInterp) needs to be called before the tests.
2019-06-09cmake: do not use -mmitigate-rop on GCC >= 9.1moneromooo-monero1-2/+5
It was removed, but it still accepted by the compiler, which warns for every file
2019-05-30cmake: push cmake away from boost as much as we canmoneromooo-monero1-1/+1
Everything works better without cmake.
2019-05-06cmake: fix incorrect hint for OPENSSL_ROOT_DIRmoneromooo-monero1-2/+2
If you use a ; separated set of include and lib directories, it'll detect the headers in /usr/include and the libraries where this points to.
2019-04-23dns_checks: new helper program to check on DNSSEC lookupsmoneromooo-monero1-0/+15
2019-04-20CMakeLists.txt: suggest to update all submodules if one of them is outdatederciccione1-1/+1
2019-04-18Windows: work around a boost 1.70 and cmake SNAFUiDunk54001-0/+1
Boost got upgraded to 1.70.0 in MSYS2. As a result, cmake (v3.13.4 as of this commit) can not configure boost properly, and cmake configuration fails as a result. This is a workaround as per https://gitlab.kitware.com/cmake/cmake/issues/18865
2019-04-11cmake: always detect python, it's neeed for some testsmoneromooo-monero1-0/+2
2019-03-21cmake: handle detecting boost using boost's own cmake filesmoneromooo-monero1-2/+8
Its version looks like 1.70.1 rather than 107000, so detect range to know which type we're seeing
2019-03-05Update 2019 copyrightbinaryFate1-1/+1
2019-03-05cmake: ARCH_ID fixes for cross compilationTheCharlatan1-0/+3
2019-03-04crypto: plug CNv4 JIT into cn_slow_hashmoneromooo-monero1-0/+2
Enabled by setting the MONERO_USE_CNV4_JIT env var to 1
2019-02-23Various speedups to depends and TravisTheCharlatan1-1/+1
Further speedups to icu compilation, it is faster to run the pre-generated configure scripts. Ensure that the native protobuf installation only generates the required libraries and binaries. Disable qt compilation when running travis on windows. Qt is used for lrelease, the travis recipe instead usese the a local installation of lrelease. Remove various packages and options from the travis recipe. Update Readline to version 8.0. The previously used url 404'd sometimes, use the official gnu ftp server instead. Remove unused cmake config.
2019-02-14Support docker for gitian buildsTheCharlatan1-1/+0
Building with docker is arguably easier and more familiar to most people than either kvm, or lxc. This commit also relaxes the back compat requirement a bit. 32 bit linux now uses glibc version 2.0. Also, the docker shell could not handle gcc arguments containing spaces, so the explicit '-DFELT_TYPE' declaration was dropped. Lastly, this removes some packages from the osx descriptor.
2018-12-04Add glibc back compat codeTheCharlatan1-1/+8
To ensure that the binaries compiled by gitian run across many linux distributions, enforce 2.17 as the minimum libc version supported.
2018-11-25device/trezor: webusb transport added, cmake fixesDusan Klinec1-10/+3
- webusb transport based on libusb added. Provides direct access to Trezor via USB, no need for Trezor bridge. - trezor protocol message handler improved, no recursion used. Ready for upcoming integration tests. - libusb (for docker) bumped from v1.0.9 to v1.0.22, newer version required for webusb transport, for device enumeration. - cmake improvements and fixes. Cmake Trezor checks are moved to a dedicated CheckTrezor.cmake file. In case of a problem Trezor is excluded from build. - ifdefs made consistent to Ledger. - UDP Transport enumeration disabled by default in release mode
2018-11-17Remove -Werrormoneromooo-monero1-3/+0
It is an annoying piece of garbage
2018-11-15cmake: move Boost_LOCALE_LIBRARY out of ICU_LIBRARIESstoffu1-2/+2
2018-11-12CMakeLists.txt: add -ftemplate-depth=900moneromooo-monero1-0/+3
2018-11-04build: ubuntu 16 ppc build fixesJethro Grassie1-1/+1
2018-11-02device/trezor: trezor support addedDusan Klinec1-0/+11
2018-10-30build: older git versions don't have '-C' flagxiphon1-2/+2
2018-10-22blocks: use auto-generated .c files instead of 'LD -r -b binary'xiphon1-2/+3
2018-10-20CMakeLists.txt: only use libatomic when foundmoneromooo-monero1-1/+3
2018-10-16build: fixed submodule checkxiphon1-12/+14
2018-10-15Fix Windows build after epee dependency changeiDunk54001-1/+1
2018-10-13CMakeLists.txt: detect and use -pthread compiler flagmoneromooo-monero1-0/+2
The cmake thread detection just ain't enough to always work
2018-10-13build: use ARCH 'native' by default, allow to configure and override itxiphon1-5/+3
2018-10-08Revert "Merge pull request #4472"Riccardo Spagni1-3/+2
This reverts commit 79d46c4d551a9b1261801960095bf4d24967211a, reversing changes made to c9fc61dbb56cca442c775faa2554a7460879b637.
2018-10-08CMakeLists.txt: Fix typoerciccione1-1/+1
2018-10-05Add check if submodules need to be updatedTheCharlatan1-0/+19
Adds CMake check that pulls from the different git remotes and checks if there is any output.
2018-10-04blocks: use auto-generated .c files instead of 'LD -r -b binary'xiphon1-2/+3
2018-09-29Merge pull request #4457Riccardo Spagni1-32/+36
85318e78 build: set ARCH_FLAG before compiler/linker flag checks (xiphon)
2018-09-29Merge pull request #4448Riccardo Spagni1-4/+8
6a781408 Make depends use self built clang for darwin (TheCharlatan)
2018-09-29Merge pull request #4446Riccardo Spagni1-1/+1
69da14e1 fixes make debug compilation on OSX (Dusan Klinec)
2018-09-25Make depends use self built clang for darwinTheCharlatan1-4/+8
The configure script in hidapi and libsodium tried to find clang in /usr/bin, even though the correct prefix was passed in. This sets the correct CC flag. This was previously undetected, because clang and the sdk where installed in the global environment. This also fixes a subsequent error, where IOKIT and CoreFoundation are not found, again for the reason stated above.
2018-09-25fixes make debug compilation on OSXDusan Klinec1-1/+1
2018-09-24Replace USB-CCID (smartcard) by USB-HIDcslashm1-9/+21
Remove PCSC dependencies which is a bit hard (not user friendly) to install on linux and Mac Split Ledger logic and device IO
2018-09-22A Travis to moneroTheCharlatan1-1/+1
Add a Travis build script for Monero. This was blatantly copied from Bitcoin. It spawns jobs in docker containers running an ubuntu bionic image. This commit also a fixes a problem where librt was still linked, even when compiling statically.
2018-09-18disable AES on s390x architectureTuan M. Hoang1-1/+7
rebased by moneromooo
2018-09-18Fixup 32bit arm buildTheCharlatan1-1/+3
Set the architecture in the toolchain file correctly
2018-09-17Fix Windows buildTheCharlatan1-1/+1
icu tex support is not required, so just disable it. Re-add mistakingly removed crypt32 lib.
2018-09-17Add libsodium to the packages, the arm build was complaining about it.TheCharlatan1-3/+0
Fixup arm toolchain file.
2018-09-11NetBSD supportthomasvaughan1-0/+11
2018-09-10Adapt translations to upstream changesTheCharlatan1-10/+10
2018-09-10Add lrelease to the dependsTheCharlatan1-1/+11
This includes a minimal qt build without gui
2018-09-10Unbound is now a submodule. Adapt depends for this.TheCharlatan1-1/+1
Fix builds for native linux and windows The architecture flag was set incorrectly. It needs to be set only when compiling arm6.
2018-09-10Add support for apple and arm buildingTheCharlatan1-4/+15
Add pcsc-lite to linux builds Fixup windows icu4c linking with depends, the static libraries have an 's' appended to them Compiling depends arm-linux-gnueabihf will allow you to compile armv6zk monero binaries
2018-09-10Disable stack unwinding for mingw32 depends build.TheCharlatan1-0/+3
2018-09-09CMakeLists.txt: detect -fcf-protection=full and -fstack-clash-protectionmoneromooo-monero1-0/+8
Introduced with GCC 8.2
2018-08-23Windows: fix undefined references after unbound submodule updateiDunk54001-1/+1
2018-08-21Build: Fix target release-static-androidMoroccanMalinois1-0/+1
2018-08-21Translations: handle cross compilingMoroccanMalinois1-5/+1
2018-08-21CMakeLists.txt: disable -fstack-protector* on windowsiDunk54001-4/+6
Current GCC produces broken binaries with these options
2018-08-07CMakeLists.txt: add -mmitigate-rop to security flags if foundmoneromooo-monero1-0/+3
This is GCC/x86/x86_64 only
2018-05-31Incorporate Window debug build targetsphilkode1-0/+1
2018-05-25rapidjson: remove outdated in-tree, use submoduleanonimal1-1/+1
Includes ~2 years worth of fixes including security and build. Note: this pulls directly from master, not a release branch/tag. See https://github.com/Tencent/rapidjson/issues/1265
2018-05-23Fix PCSC compilation under windowscslashm1-0/+3
PR3843 based on release-v0.12 => rebased on master
2018-05-19Fixed for compilation in big endian PPC. "Everything is broken thought due ↵Judemir Ribeiro1-5/+24
to little endian logic."
2018-04-21Build: update CMake and p2p for in-tree miniupnpanonimal1-8/+0
(cherry picked from commit a7366b5feeffaeb65b217b2d6f138e0ab1c90192)
2018-03-08Adjust to the MSYS2/MinGW static ICU library file renamingrbrunner71-1/+1
In package mingw-w64-x86_64-icu, version 58.2-3, the names of static library files were changed, which leads to changes in CMakeLists.txt as needed for compiling for Windows.
2018-03-05Correct spelling mistakes.Edward Betts1-1/+1
2018-03-04Code modifications to integrate Ledger HW device into monero-wallet-cli.cslashm1-0/+9
The basic approach it to delegate all sensitive data (master key, secret ephemeral key, key derivation, ....) and related operations to the device. As device has low memory, it does not keep itself the values (except for view/spend keys) but once computed there are encrypted (with AES are equivalent) and return back to monero-wallet-cli. When they need to be manipulated by the device, they are decrypted on receive. Moreover, using the client for storing the value in encrypted form limits the modification in the client code. Those values are transfered from one C-structure to another one as previously. The code modification has been done with the wishes to be open to any other hardware wallet. To achieve that a C++ class hw::Device has been introduced. Two initial implementations are provided: the "default", which remaps all calls to initial Monero code, and the "Ledger", which delegates all calls to Ledger device.
2018-02-25Wallet2 + CLI wallet: UTF-8 support for filenames and paths under Windowsrbrunner71-1/+2
2018-01-28cmake: add -DHAVE_ defines to the command linemoneromooo-monero1-7/+21
since there's no config.h here
2018-01-26Update 2018 copyrightxmr-eric1-1/+1
2018-01-11epee: detect strptime, use std::get_time as fallbackmoneromooo-monero1-0/+4
2018-01-04Fix translations header generation when cross-compilatingGuillaume LE VAILLANT1-1/+5
Define generate_translations_header as an external project to be able to use the compilation toolchain for the host instead of the toolchain for the target.
2017-12-31Add misc hardening flags to the cmake machinerymoneromooo-monero1-7/+83
See https://wiki.debian.org/Hardening#User_Space
2017-12-26cmake: fix boost version detectionmoneromooo-monero1-1/+1
2017-12-23fuzz_testing: build with ASAN (assumed to be available)moneromooo-monero1-0/+10
2017-12-15Embed the translation files in the binaryGuillaume LE VAILLANT1-0/+4
If a translation file exists in a "translations" directory located in the same directory as the binary, it is used in priority (this can be useful when working on translations as you don't have to recompile the whole program all the time), and if no such file is found the embedded translation file is used (if it exists).
2017-11-27add a memwipe functionmoneromooo-monero1-0/+8
It's meant to avoid being optimized out memory_cleanse lifted from bitcoin
2017-11-14Do not build against epee_readline if it was not builtHoward Chu1-0/+1
2017-11-14link against readline only for monerod and wallet-wallet-{rpc,cli}moneromooo-monero1-1/+0
2017-11-14make this build on SunOS/SolarisPavel Maryanov1-0/+6
2017-11-11Do not require libatomic on FreeBSDVasil Dimov1-1/+1
f3e09f36 hooked a dependency on libatomic on 32 bit machines if Clang is used because compilation failed with: `std::__atomic_base<unsigned long long>::load(std::memory_order) const': /usr/bin/../lib/gcc/i686-pc-linux-gnu/6.1.1/../../../../include/c++/6.1.1/bits/atomic_base.h:396: undefined reference to `__atomic_load_8' But that does not happen on FreeBSD. The problem is likely that on Linux Clang tries to use GCC-provided C++11 library. Further, __atomic_load_8() (for 8-byte integers) is not readily available on 32 bit machines. From https://gcc.gnu.org/wiki/Atomic/GCCMM: "When lock free instructions are not available (either through hardware or OS support) atomic operations are left as function calls to be resolved by a library."
2017-10-21Link against libpgm/libnorm if found, optional libzmq ldependenciesmoneromooo-monero1-0/+8
2017-10-20cmake: add dep of version lib on version.cppredfish1-2/+0
Also, move cmake source files into cmake/ to keep them together.
2017-10-17epee: use boost type for SSL error coderedfish1-0/+5
Fixes compile error when building with OpenSSL v1.1: contrib/epee/include/net/net_helper.h: In member function ‘void epee::net_utils::blocked_mode_client::shutdown_ssl()’: contrib/epee/include/net/net_helper.h:579:106: error: ‘SSL_R_SHORT_READ’ was not declared in this scope if (ec.category() == boost::asio::error::get_ssl_category() && ec.value() != ERR_PACK(ERR_LIB_SSL, 0, SSL_R_SHORT_READ)) ^ contrib/epee/include/net/net_helper.h:579:106: note: suggested alternative: ‘SSL_F_SSL_READ’ See boost/asio/ssl/error.hpp. Boost handles differences between OpenSSL versions. cmake: fail if Boost is too old for OpenSSL v1.1
2017-10-15epee http_client SSL supportJaquee1-1/+1
2017-10-15CMakeLists.txt - Add openssl include dirJaquee1-0/+2
2017-10-08cmake: build tests lastredfish1-9/+3
Keep -Werror for src, contrib and do not pass it for tests/
2017-10-07cmake: print which stack trace lib is usedredfish1-1/+4
To avoid the suprize of stack tracing being enabled but libunwind not being linked in.
2017-10-06Fix building with -DARCH=default -DNO_AES=ONmoneromooo-monero1-1/+5
2017-09-24cmake: make warning about headers not fatalredfish1-1/+1
Warning issued on older boost and/or OS: In file included from /usr/include/boost/asio/detail/socket_types.hpp:61:0, from /usr/include/boost/asio/detail/epoll_reactor.hpp:30, from /usr/include/boost/asio/detail/reactor.hpp:21, from /usr/include/boost/asio/detail/impl/task_io_service.ipp:24, from /usr/include/boost/asio/detail/task_io_service.hpp:198, from /usr/include/boost/asio/impl/io_service.hpp:71, from /usr/include/boost/asio/io_service.hpp:767, from /usr/include/boost/asio/basic_io_object.hpp:19, from /usr/include/boost/asio/basic_socket.hpp:20, from /usr/include/boost/asio/basic_datagram_socket.hpp:20, from /usr/include/boost/asio.hpp:21, from /home/vagrant/slave/monero-static-alpine-3_5-x86_64/build/src/common/download.cpp:32: /usr/include/sys/poll.h:1:2: warning: #warning redirecting incorrect #include <sys/poll.h> to <poll.h> [-Wcpp] #warning redirecting incorrect #include <sys/poll.h> to <poll.h>
2017-09-24cmake: fix setting of -Werrorredfish1-12/+6
Setting COMPILE_FLAGS (or COMPILE_OPTIONS) property directly does not end up on the command line (even though it should because add_compile_options does just that). Also, set -Werror for tests as well, because no warnings now. Not set for 'external' only because simply moving add_compile_options above add_subdirectory(external) doesn't do it, and moving add_usbdirectory down is too big of a change (it will pick up new flags). -Werror set only for GCC on Linux, since warnings not yet cleared for other compilers/systems.
2017-09-23daemon: fix static building with libzmqiDunk54001-1/+6
2017-09-21build: auto update version info without manually deleting version.hstoffu1-1/+1
2017-09-20Fix OpenSSL 1.1 detection for static buildshyc1-7/+7
2017-09-05Fix various oversights/bugs in ZMQ RPC server codeThomas Winget1-0/+8
- Add some RPC commands (and touch up a couple others) - some bounds checking - some better pointer management - const correctness and error handling -- Thanks @vtnerd for type help with serialization and CMake changes
2017-09-05json serialization for rpc-relevant monero typesThomas Winget1-0/+2
Structured {de-,}serialization methods for (many new) types which are used for requests or responses in the RPC. New types include RPC requests and responses, and structs which compose types within those. # Conflicts: # src/cryptonote_core/blockchain.cpp
2017-08-05CMakeLists.txt - ios/xcode fixJaquee1-0/+3
2017-06-27enable monero build on ppc64le architectureRoberto Oliveira1-1/+9
Fix wrong flags for ppc64le: -maes - not avaiable -march - changed by -mcpu that does the same for powerpc
2017-06-18Add readline support to clijethro1-0/+13
This PR adds readline support to the daemon and monero-wallet-cli. Only GNU readline is supported (e.g. not libedit) and there are cmake checks to ensure this. There is a cmake variable, Readline_ROOT_DIR that can specify a directory to find readline, otherwise some default paths are searched. There is also a cmake option, USE_READLINE, that defaults to ON. If set to ON, if readline is not found, the build continues but without readline support. One negative side effect of using readline is that the color prompt in the wallet-cli now has no color and just uses terminal default. I know how to fix this but it's quite a big change so will tackle another time.
2017-05-17shared libs build (i.e. make debug)stoffu1-0/+2
2017-04-12Fix ARM64 identificationhyc1-1/+2
The actual arch flag the compiler recognizes is "armv8-a". This is true for both gcc and clang.
2017-04-10update easylogging++ to latest upstreammoneromooo-monero1-2/+3
2017-04-03IOS CMAKE build settingsJaquee1-6/+10
2017-03-20set USE_LTO_DEFAULT to falseChristoph Schnerch1-1/+1
2017-03-08Problem: misleading information about LMDB storageGareth1-2/+2
Solution: updated the comments to reflect the current situation in terms of LMDB implementation and no longer recommend 'memory' for blockchain storage in production use.
2017-02-21update copyright year, fix occasional lack of newline at line endRiccardo Spagni1-1/+1
2017-02-21cmakify opensslRiccardo Spagni1-0/+17
2017-02-20Optionally query moneropulse DNS records to check for updatesmoneromooo-monero1-0/+8
It just checks and prints a message if there is a new version for now.
2017-02-09backtrace_symbols() requires -lexecinfo on dragonflybsdDan Miller1-2/+4
freebsd also needs -lexecinfo for backtrace()
2017-02-08extract some basic code from libcryptonote_core into libcryptonote_basickenshi841-0/+1
2017-02-05cmake set atomic for androidMoroccanMalinois1-0/+3
2017-02-04Use easylogging++'s stack trace facility where possiblemoneromooo-monero1-7/+13
This avoids using libunwind, which often causes trouble.
2017-01-16Change logging to easylogging++moneromooo-monero1-1/+1
This replaces the epee and data_loggers logging systems with a single one, and also adds filename:line and explicit severity levels. Categories may be defined, and logging severity set by category (or set of categories). epee style 0-4 log level maps to a sensible severity configuration. Log files now also rotate when reaching 100 MB. To select which logs to output, use the MONERO_LOGS environment variable, with a comma separated list of categories (globs are supported), with their requested severity level after a colon. If a log matches more than one such setting, the last one in the configuration string applies. A few examples: This one is (mostly) silent, only outputting fatal errors: MONERO_LOGS=*:FATAL This one is very verbose: MONERO_LOGS=*:TRACE This one is totally silent (logwise): MONERO_LOGS="" This one outputs all errors and warnings, except for the "verify" category, which prints just fatal errors (the verify category is used for logs about incoming transactions and blocks, and it is expected that some/many will fail to verify, hence we don't want the spam): MONERO_LOGS=*:WARNING,verify:FATAL Log levels are, in decreasing order of priority: FATAL, ERROR, WARNING, INFO, DEBUG, TRACE Subcategories may be added using prefixes and globs. This example will output net.p2p logs at the TRACE level, but all other net* logs only at INFO: MONERO_LOGS=*:ERROR,net*:INFO,net.p2p:TRACE Logs which are intended for the user (which Monero was using a lot through epee, but really isn't a nice way to go things) should use the "global" category. There are a few helper macros for using this category, eg: MGINFO("this shows up by default") or MGINFO_RED("this is red"), to try to keep a similar look and feel for now. Existing epee log macros still exist, and map to the new log levels, but since they're used as a "user facing" UI element as much as a logging system, they often don't map well to log severities (ie, a log level 0 log may be an error, or may be something we want the user to see, such as an important info). In those cases, I tried to use the new macros. In other cases, I left the existing macros in. When modifying logs, it is probably best to switch to the new macros with explicit levels. The --log-level options and set_log commands now also accept category settings, in addition to the epee style log levels.
2017-01-15enable clang checks that were disabledChris Vickio1-1/+0
2017-01-09Change logic of testing for libunwind on OSX and ARMNanoAkron1-4/+9
2017-01-05Build wallet with Android NDKMoroccanMalinois1-2/+16
2016-12-23Silence CMake policy warning on macos.Randi Joseph1-0/+3
See: https://cmake.org/cmake/help/v3.0/policy/CMP0042.html
2016-12-15Preliminary support for DragonFly BSDAntonio Huete Jimenez1-5/+11
- It builds but no further testing has been done.
2016-12-09Revert forcing -fPIC for all ARMv8 buildsNanoAkron1-1/+0
2016-11-12Always compile Position Independent Code on 64-bit ARMv8 systemsNanoAkron1-7/+6
2016-10-27Report Boost library version during compilationNanoAkron1-0/+2
2016-09-21remove check for certain clang versionsDan Miller1-5/+0
2016-09-19Don't define stdc++ on FreeBSDDan Miller1-1/+1
2016-09-18Fix test for 'ARM_ID' as caught by @radfish in #1088NanoAkron1-3/+3
2016-09-18cmake: support BUILD_SHARED_LIBS built-in optionredfish1-2/+14
Support building internal libraries as shared. This reduces development time by eliminating the need to re-link all binaries every time non-interface code in the library changes. Instead, can hack on libxyz, then `make libxyz`, and re-run monerod. By default BUILD_SHARED_LIBS is OFF in release build type, and ON in debug build type, but can be overriden with -D.
2016-09-18+crypto for ARMv8 now tests and modifies ${ARCH$NanoAkron1-12/+3
2016-09-18Updated +crypto option for ARMv8 to modify ${ARCH} insteadNanoAkron1-11/+26
2016-09-17Add +crypto flag for ARMv8-aNanoAkron1-2/+6
2016-09-17cmake: quotes around ARCH_ID stringredfish1-3/+3
It's only blank only if somebody running cmake in MSYS/MinGW (Windows) manually forgets to add -D ARCH, but when it is blank, without quotes those lines are invalid cmake syntax.
2016-09-17cmake: remove redundant checks around CMAKE_{AR,RANLIB}redfish1-10/+4
Those are always set, no point in checking. #1065
2016-09-10Attempt to fix broken compilation on some systems caused by #1074iDunk54001-6/+9
2016-09-03change CMake project nameRiccardo Spagni1-1/+1
2016-09-03cmake: split BUILD_GUI_DEPS option into tworedfish1-1/+5
The split is to make this software more packageable. 'make install' is used by the package building scripts, and should not be installing vendored dependencies onto the system.
2016-09-03gui/libwallet_merged: libunbound is one more dependencyIlya Kitaev1-0/+4
2016-09-01cmake: option+target for profiling for coverageredfish1-4/+13
2016-08-31cmake: handle dists which prefix gcc binaries wth arch tripletredfish1-2/+12
Issue #1026
2016-08-30Add ARMv8 Handling to CMakeLists.txt - version 2NanoAkron1-11/+82
Adds 64-bit ARMv8 handling to CMakeLists.txt and implements GCC flags for two errata on the Cortex-A53 present on every chip in revision 0: https://developer.arm.com/docs/epm048406/latest/arm-processor-cortex-a53-mpcore-product-revision-r0-software-developers-errata-notice 835769 affects 64-bit multiply accumulate 843419 affects internal page addressing Rewritten to build on @radfish's changes Updated to address @radfish's points
2016-08-28cmake: define a default build typeredfish1-0/+5
Lets 'cmake .. && make' be sufficient to build.
2016-08-28remove original Cryptonote blockchain_storage blockchain formatmoneromooo-monero1-4/+0
2016-08-28cmake: define ARM var for all ARM arch variantsredfish1-12/+16
This is refactoring only. No behavior change.
2016-08-28cmake: ARM: exclude libunwind in static buildredfish1-1/+2
Else error in build with STATIC=ON: cd /home/redfish/bitmonero/build/release/src/miner && /usr/bin/cmake -E cmake_link_script CMakeFiles/simpleminer.dir/link.txt --verbose=1 /usr/bin/c++ -std=c++11 -D_GNU_SOURCE -Wall -Wextra -Wpointer-arith -Wundef -Wvla -Wwrite-strings -Wno-error=extra -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-unused-variable -Wno-error=unused-variable -Wno-error=undef -Wno-error=uninitialized -Wlogical-op -Wno-error=maybe-uninitialized -Wno-reorder -Wno-missing-field-initializers -march=armv7-a -fno-strict-aliasing -mfloat-abi=hard -DNDEBUG -O2 -flto -ffat-lto-objects -static-libgcc -static-libstdc++ -Wl,--wrap=__cxa_throw CMakeFiles/simpleminer.dir/simpleminer.cpp.o -o ../../bin/simpleminer -rdynamic -Wl,-Bstatic -lrt -Wl,-Bdynamic -ldl ../cryptonote_core/libcryptonote_core.a ../common/libcommon.a -Wl,-Bstatic -lboost_filesystem -lboost_program_options -lboost_regex -lboost_chrono -lboost_system -lboost_thread -Wl,-Bdynamic -pthread -Wl,-Bstatic -lrt -Wl,-Bdynamic -ldl ../blockchain_db/libblockchain_db.a ../cryptonote_core/libcryptonote_core.a ../blockchain_db/libblockchain_db.a ../../contrib/otshell_utils/libotshell_utils.a ../blocks/libblocks.a ../common/libcommon.a ../../external/unbound/libunbound.a -lssl -lcrypto -lunwind -Wl,-Bstatic -lboost_program_options ../crypto/libcrypto.a -lboost_date_time -lboost_serialization -lboost_filesystem ../../external/db_drivers/liblmdb/liblmdb.a -Wl,-Bdynamic -pthread -Wl,-Bstatic -lboost_chrono -lboost_system -lboost_thread -lrt -Wl,-Bdynamic -ldl /usr/bin/ld: ../../bin/simpleminer: hidden symbol `__aeabi_unwind_cpp_pr0' in /usr/lib/gcc/armv7l-unknown-linux-gnueabihf/6.1.1/libgcc_eh.a(unwind-arm.o) is referenced by DSO /usr/bin/ld: final link failed: Bad value collect2: error: ld returned 1 exit status
2016-08-28Revert "Interpret x86_64 as x86-64 for architecture"redfish1-5/+1
This reverts commit 86234921506944dddab4e2f5edf96bf747be6c73. Let's restrict ARCH to values accepted by -march to keep things clear and consistent. ARCH is -march, with only one exception: a value of "default" indicates to not pass -march at all.
2016-08-28cmake: don't set ARCH from CMAKE_SYSTEM_PROCESSORredfish1-27/+22
It is not correct to do so, because ARCH should only take values supported by the -march argument, with the exception of 'default' which denotes not passing -march at all. ARCH defines the target architecture for builds that are intended to be portable to other machines.
2016-08-27cmake: pass -static when STATIC=ON on Windowsredfish1-2/+12
This gets rid of bitmonerod.exe's dependecy on libwindpthreads-1.dll in build on Windows on x86_64 (via MSYS2 default toolchain). With this patch all DLL dependencies are on DLLs in c:\windows\system32.
2016-08-27remove -Wall from coverage argumentsJacob Torrey1-2/+2
2016-08-26Added coverage g++ commandsJacob Torrey1-2/+2
Signed-off-by: Jacob Torrey <torreyj@ainfosec.com>
2016-08-16Build: make boost 1.58 minimum requirement. Fixes #956anonimal1-6/+2
2016-08-16Build: use libstdc++ with clang < 3.7anonimal1-2/+2
2016-08-01cmake: do not pass -O2 in debug build on ARMredfish1-7/+8
Also, minor cleanup of redundant flag-setting code.
2016-07-28cmake: libatomic only needed for 32-bit Clang buildsredfish1-5/+3
2016-07-28cmake: cleanup logic that sets flags per target/subdirredfish1-32/+24
The previous logic that used a COMMON_*_FLAGS intermediate variable and then re-assigned CMAKE_*_FLAGS before including each subdirectory was confusing and ugly. This PR is the right way to do it. This commit is purely refactoring: built binaries unchanged.
2016-07-27cmake,common: flag for stack traceredfish1-18/+24
By default the flag is enabled whenever libunwind is found on the system, with the exception of static build on OSX (for which we can't install the throw hook #932 due to lack of support for --wrap in OSX ld64 linker).
2016-07-26cmake: install throw hook in OSX build tooredfish1-0/+3
This is an attempt to fix build with STATIC=ON on OSX (#932): [ 95%] Linking CXX executable ../../bin/bitmonerod Undefined symbols for architecture x86_64: "___real___cxa_throw", referenced from: ___wrap___cxa_throw in libcommon.a(stack_trace.cpp.o) ld: symbol(s) not found for architecture x86_64
2016-07-26cmake: do not install hook on throw when building testsredfish1-6/+14
This fixes build of tests with STATIC=ON, which failed with: /tmp/cc8lNtqY.ltrans12.ltrans.o: In function `boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::thread_resource_error> >::rethrow() const [clone .lto_priv.41]': cc8lNtqY.ltrans12.o:(.text+0x4e): undefined reference to `__wrap___cxa_throw' The hook is implemented in libcommon, which is not linked into some of the test binaries. An alternative solution is to link all tests against libcommon, but that seems worse because it introduces a false dependency (also, I tried that and for some of the test binaries the linker still failed to pick up the symol from libcommon, strangely.)
2016-07-22cmake: do not pass -Werror when building testsredfish1-15/+22
The tests currently issue a warning that "warning: -fassociative-math disabled; other options take precedence" The associative math optimization is turned on indirectly by -Ofast. Apparently, the optimization is forced to be disabled, while compiling test harnesses generated by Google Test framework. Unfortunately, there is no -Wno-error=* flag to disable this warning (see gcc --help=warnings). An alternative to this patch is to disable the optimization explicitly with -fno-associative-math, but that seems worse. Another alternative is to not pass -Ofast for tests build, but we want the tests to be built with exact same optimization flags as the code being tested, otherwise the value of the tests is diminished. Another alternative is to remove -Werror from the entire build, but it's good to include that flag to preclude people leaving warnings. A note regarding implementation of not passing -Werror for tests: I considered filtering out -Werror from CMAKE_{C,CXX}_FLAGS but that seems to be worse because it's surprizing behavior, to those reading the code that adds -Werror. It is better to add it for when it is used and not added otherwise. I also considered relying on order, adding -Werror after inluding 'tests' subdir, but before including the other subdirs, but that also seems cryptic to the reader. So, I settled with the current solution, of explicitly setting CMAKE_{C,CXX}_FLAGS to different values before including the respective subdir. Testing done: compared compiler invocation for non-tests source files using `make VERBOSE=1` with and without this commit: the only difference is the position of -Werror. So, this commit doesn't change the binary.
2016-07-20fix atomic library to only fire off for clangRiccardo Spagni1-3/+5
2016-07-20fix duplicate clang block in cmakeRiccardo Spagni1-4/+1
2016-07-12cmake: don't try to link with atomic on Appleredfish1-1/+1
-latomic is necessary with Clang on Linux, but apparently, on OSX it's not found.
2016-07-10cmake: ARM: clang: make warning non-fatal: inline asmredfish1-0/+3
Clang issues a warning for some inline asm in stack_trace.cpp. This patch ieaves the warning to be displayed as a reminder to fix the code.
2016-07-10cmake: link with -latomic for clangredfish1-0/+5
otherwise clang build fails with ../cryptonote_core/libcryptonote_core.a(miner.cpp.o): In function `std::__atomic_base<unsigned long long>::load(std::memory_order) const': /usr/bin/../lib/gcc/i686-pc-linux-gnu/6.1.1/../../../../include/c++/6.1.1/bits/atomic_base.h:396: undefined reference to `__atomic_load_8' This has no effect on the gcc build. The one strange thing is that test code like std::atomic<int> x; int main() { return x; } compiles and links without errors with clang, without -latomic. This alone would suggest that this patch is unnecessary, but that is not the case. It's not clear exactly why, though. The bitmonero code is including the same header, but it must be doing something more complex than in this test code snippet that causes the failure at link time pasted above. In any case, passing -latomic fixes the problem and seems safe. .
2016-07-10cmake: include -ldl via cmake built-in varredfish1-4/+1
This does two things: 1. fixes clang build, which otherwise errors with undefined symbol 'dlsym'. 2. simplifies the cmake script, delegating to cmake to figure out platform-specific flags for linking against the dl library.
2016-07-10cmake: do not pass -stdlib=c++ to clang >=3.7redfish1-2/+4
Tested on Linux (Arch) with clang 3.7 and 3.8 i686 and ARM: if -stdlib=c++ is passed to clang, then the build errors out with <string>,<iostrea>,etc. headers not found. Simply not passing the arg fixes the problem. **NOTE**: not tested on OSX.
2016-07-09cmake: do not ignore dangerous warnings with -Wno-errorredfish1-1/+1
Shorten the list of warnings that are reported, but which are forced to NOT generate an error, via -Wno-error. Unwhitelist these: strict-aliasing, sign-compare, type-limits For example, ignoring strict-aliasing warning caused lots of wasted time diagnosing Issue #847.
2016-07-08cmake: pass -fno-strict-aliasing to fix build with GCC 6.1.1redfish1-0/+5
This patch is a temprorary workaround until aliasing is fixed in the code (Issue #847).
2016-06-23cmake: BUILD_TESTS as option explicitly; added missed dependencyIlya Kitaev1-0/+3
2016-06-21cmake: disable AES on ARMredfish1-1/+3
On ARM, gcc fails with 'unknown argument' if passed '-maes'.
2016-06-21cmake: initialize ARCH for native buildsredfish1-1/+6
We need ARCH, because it needs to be set for ARM7, ARM6 to be initialized. Strangely, on different machines (both ARMv7, Arch), ${ARCH} var is either empty or 'native'. Handle both cases.
2016-06-21cmake: remove repetitive code in handling of NO_AESredfish1-7/+8
Minor eefactor only. No behavior or interface change in this commit.
2016-06-21remove POSIX_C_SOURCE and remove dlfcn.h for static buildsluigi11111-1/+1
The former was a faulty "fix" for gmtime_r not existing on Windows. The latter is needed only for dynamic builds, and is not included with msys2, which ends up fine because Windows is only built static at this time.
2016-06-20More fixing for WindowsiDunk1-1/+1
2016-06-20CMakeLists.txt: fix build for mingwiDunk1-1/+1
Fix from iDunk from IRC.
2016-06-20CMakeLists: fix build without libunwindmoneromooo-monero1-0/+1
2016-05-27cmake: BUILD_TESTS as option explicitly; added missed dependencyIlya Kitaev1-0/+3
2016-04-28Print stack trace on exceptionsmoneromooo-monero1-0/+18
if libunwind is found. Useful for debugging logs.
2016-03-21Revert "Print stack trace upon exceptions"moneromooo-monero1-12/+0
Ain't nobody got time for link/cmake skullduggery. This reverts commit fff238ec94ac6d45fc18c315d7bc590ddfaad63d.
2016-03-19Print stack trace upon exceptionsmoneromooo-monero1-0/+12
Useful for debugging users' logs
2016-03-14change to LMDB as default, even on 32-bit and ARMRiccardo Spagni1-28/+19
2016-03-12change to LMDB as default, even on 32-bit and ARMRiccardo Spagni1-28/+19