Jason Rhinelander
7a5b105f49
Remove enable_testing() because ctest sucks (and thus we don't use it)
2020-03-03 12:35:01 -04:00
Jason Rhinelander
53c85ebf1d
if(LINUX) doesn't work; just try to find libsystemd gently instead
2020-02-25 22:19:41 -04:00
Jason Rhinelander
54236cde9d
Merge pull request #1136 from jagerman/fix-cmake-linux-var
...
Fix cmake LINUX variable around systemd enabling
2020-02-25 22:11:51 -04:00
Jason Rhinelander
b87adab438
Fix cmake LINUX variable around systemd enabling
2020-02-25 22:10:28 -04:00
Jason Rhinelander
e3bce76a7c
Add EXCLUDE_FROM_ALL to subprojects
...
Prevent `make install` from installing headers/cmake stuff.
2020-02-25 22:00:33 -04:00
Rick V
5295ada917
systemd is linux only
2020-02-25 15:46:37 -06:00
Jason Rhinelander
51ef8d69f8
Default libsystemd support to enabled if found
...
WITH_SYSTEMD=ON or =OFF works to explicitly enable/disable, but if
omitted the default is now ON if found and OFF if you don't.
2020-02-25 17:01:11 -04:00
Jason Rhinelander
3be0766f27
Bump XSAN build to bionic and add status message
2020-02-24 14:27:44 -04:00
Jason Rhinelander
0839c16f19
Final abseil purge
...
Bye-bye Google Boost.
2020-02-24 14:27:44 -04:00
Jason Rhinelander
2e9840ea39
Replace abseil date code with Hinnart's date.h
...
Howard Hinnart's date.h is the library that was accepted as C++20
date/calendar support, so this is essentially a backport of C++20 date
time support.
(It does support timezone support, but requires more of the library and
that seems like overkill for what we need; this just prints UTC
timestamps instead, which need only a header-only include).
2020-02-24 14:27:44 -04:00
Jason Rhinelander
ac1486d0be
Replace absl::optional with optional-lite
...
Step 1 of removing abseil from lokinet.
For the most part this is a drop-in replacement, but there are also a
few changes here to the JSONRPC layer that were needed to work around
current gcc 10 dev snapshot:
- JSONRPC returns a json now instead of an optional<json>. It doesn't
make any sense to have a json rpc call that just closes the connection
with returning anything. Invoked functions can return a null (default
constructed) result now if they don't have anything to return (such a
null value won't be added as "result").
2020-02-19 18:21:25 -04:00
Jason Rhinelander
ecdc389e1a
Fix typo in option to disable submodule checks
2020-02-17 20:22:13 -04:00
Jason Rhinelander
c522bc0537
ghc::filesystem devendor to submodule
...
Also removed some unused/old options for conditionally not using
ghc::filesystem and a sodium option that wasn't used anywhere.
2020-02-13 15:47:11 -04:00
Jason Rhinelander
3df4eaef2d
Devendor cxxopts to submodule
2020-02-13 15:18:17 -04:00
Jason Rhinelander
edbe0c7bf4
Devendor gtest to a submodule
2020-02-13 15:15:34 -04:00
Jason Rhinelander
5a787de73b
Switch abseil & nlohmann to submodules and update to latest stable
...
Our current abseil won't build with gcc 10 (its `optional`
implementation appears broken), and spews warnings under slightly older
compilers; updating to the latest stable 2019 branch fixes both issues.
2020-02-13 15:14:17 -04:00
Jason Rhinelander
04fa117399
Use -mcpu=native on ppc64le
2020-02-07 00:22:27 -04:00
Jeff Becker
7aa1b2c27c
monotonic time and run testnet at 20% realtime
2020-01-23 12:14:25 -05:00
Jason Rhinelander
7cec0db371
Simplify CRYPTO_FLAGS logic, remove RYZEN_HACK
...
We currently spend a bunch of time setting CRYPTO_FLAGS and then just
completely wipe it out if NATIVE_BUILD is specified.
The AMD_RYZEN_HACK is really not needed; it was only some early CPU
microcode and compiler combinations that had trouble detecting Ryzen's
FMA3 support (and Ryzen *doesn't* properly support FMA4--it can be
forced on and runs, but apparently it can give wrong results).
2020-01-07 18:57:40 -04:00
Jason Rhinelander
6f3757e933
Modernize non-AVX2 tuning to haswell
...
Tuning to an ancient architecture doesn't make a lot of sense; we want
to support the ancient architecture, but don't want to optimize for it.
Also change the AVX2 tuning to use haswell so that optimizations don't
depend on the CPU in the system the build runs on.
2020-01-07 18:53:00 -04:00
Jeff
0c979aaa3f
Merge pull request #1017 from despair86/dev
...
IX86 builds should only require SSE3 by default
2019-12-31 10:32:03 -05:00
Rick V
6bb95ce718
IX86 builds should only require SSE3, and this still allows debian release mgr to override the target selection flag
2019-12-31 09:15:57 -06:00
Ryan Tharp
60a36a4a7d
when STATIC_LINK search for static versions of libraries, delay CURL detection until later
2019-12-23 06:55:02 +00:00
Rick V
fd6602bf05
fix versiontag
2019-12-16 11:32:42 -06:00
Rick V
9fa9209114
don't be aggressive
...
remove libcurl packaging rules. We still build it, but ship only the curl.exe
2019-12-16 11:28:47 -06:00
Rick V
e15c57c114
get ready for v0.6
...
bump version
don't ship the shared object
2019-12-16 11:28:21 -06:00
Stephen Shelton
332f33b049
Remove FS_LIB conditionals
2019-12-12 12:58:46 -07:00
Stephen Shelton
5ce260fce1
Use vendored fs::filesystem on all platforms
2019-12-12 12:29:03 -07:00
Jason Rhinelander
638fb25b47
Put version info into a compiled file
...
This rewrites the version info using lokid's approach of compiling it
into a .cpp file that gets generated as part of the build (*not* during
the configure stage).
Among other things, this means that changing the version no longer
invalidates ccache or cmake dependencies, and because it depends on
`.git/index` git commits will cause the version to be regenerated,
making the commit tag more reliable (currently if you rebuild without
running cmake your git commit tag doesn't update).
2019-12-11 22:40:07 -04:00
Jeff
512a350783
Merge pull request #953 from majestrate/try-preventing-router-lockup-2019-12-07
...
try fixing router lockup
2019-12-09 07:38:17 -05:00
Jeff Becker
2eabe98d9b
add systemd watchdog if enabled on compile time
2019-12-07 14:21:26 -05:00
Jason Rhinelander
8d2c22fc72
Replace cppbackport with ghc-filesystem
...
From https://github.com/gulrak/filesystem which is more up-to-date and
looks better maintained than cppbackport.
2019-12-06 20:41:22 -04:00
Jeff Becker
d685057754
update readme and disable curl on windows
2019-11-26 17:11:13 -05:00
Jeff Becker
3878ebd534
use curl to fetch from lokid rpc the identity key
2019-11-26 16:58:20 -05:00
Jeff Becker
70ceca1e72
disable gtest when no unit tests
2019-11-05 07:29:43 -05:00
Jeff Becker
6bd593f3e2
move it more
2019-11-05 07:28:08 -05:00
Jeff Becker
329c9d1044
move more stuff
2019-11-05 07:26:44 -05:00
Jeff Becker
a5b1379b88
exclude debian from setting CRYPTO_FLAGS
2019-11-05 07:24:05 -05:00
Jeff Becker
c3302018ba
more
2019-11-05 07:11:05 -05:00
Jeff Becker
e3724577d3
detect properly for mobile
2019-11-05 07:01:14 -05:00
Jeff Becker
ea7884231d
move it
2019-11-05 06:58:40 -05:00
Jeff Becker
9d0d96b70f
get rid of NON_PC_TARGET
2019-11-05 06:45:49 -05:00
Rick V
35c131cb27
restore crypto flags for binary builds
2019-10-30 18:02:34 -05:00
Rick V
9b9ea6e6d0
make that a universal rule
2019-10-30 18:02:32 -05:00
Jeff Becker
3ebea458e9
use vendored libsodium if we dont have a good version
2019-10-29 12:31:36 -04:00
Jeff Becker
168420dba8
finishing touches
2019-10-29 12:07:20 -04:00
Jeff Becker
f38240f945
devendor libsodium by default except for android
2019-10-29 12:01:58 -04:00
Jeff
3a6c16aa36
Merge pull request #871 from majestrate/ed25519-signing
...
Ed25519 signing
2019-10-28 10:42:40 -04:00
Jeff Becker
01c4a9c287
revert a few things
2019-10-28 10:16:00 -04:00
Stephen Shelton
961c8dbddf
Prevent in-source-builds with cmake macro
2019-10-24 13:21:45 -06:00
jeff
869ab0b652
Merge remote-tracking branch 'upstream/dev' into vpn-api-2019-10-03
2019-10-21 08:01:29 -04:00
Jason Rhinelander
281fbff42f
Fix build on xenial
...
- xenial's cmake version (3.5.1) builds everything fine and test suite
passes, so lower the minimum to that.
- add a hack for xenial's kernel header & glibc version breaking if both
net/if.h and linux/if.h get included. The only thing we actually need
from net/if.h that linux/if.h doesn't have is `if_nametoindex`, so
just hack that definition in for xenial's specific glibc/kernel header
versions.
2019-10-11 17:26:12 -03:00
jeff
c26b67c379
finish wiring up jni shizz
2019-10-08 10:52:01 -04:00
jeff
7d7c6bf38c
Merge remote-tracking branch 'upstream/dev' into multithreaded-cryptography
2019-10-07 06:08:47 -04:00
Michael
77b4efd78b
fixup ios
2019-10-07 00:52:04 +01:00
Michael
abc527ca35
Split cmake files for executables into src dirs
2019-10-05 16:08:12 +01:00
jeff
6dc350a8f3
update cmake
2019-10-04 14:16:39 -04:00
jeff
52757fef0e
Merge remote-tracking branch 'micheal/background_mode' into vpn-api-2019-10-03
2019-10-04 14:10:58 -04:00
jeff
1e57397c99
revert to c++14 for non win32
2019-10-02 11:40:26 -04:00
jeff
32ed821763
Merge remote-tracking branch 'upstream/dev' into multithreaded-cryptography
2019-10-01 10:51:28 -04:00
Michael
fadedb4a7b
Distinct ios build
2019-09-30 09:59:34 +01:00
Michael
86a07e2a80
Enable more sanitisers
2019-09-23 11:47:58 +01:00
Jeff
35230adbe5
Merge pull request #833 from majestrate/gut-utp-2019-09-19
...
remove libutp and all such code related to utp
2019-09-19 16:48:36 -04:00
jeff
1853b28590
remove libutp and all such code related to utp
2019-09-19 11:36:05 -04:00
Michael
6719a1790c
Statically link releases
2019-09-18 21:33:08 +01:00
jeff
ac2a2aed1d
gut libutp and finish making things compile and pass tests
2019-09-12 14:19:25 -04:00
Jeff Becker
0250f79742
Merge remote-tracking branch 'origin/master'
2019-09-04 18:06:41 -04:00
Jeff Becker
c01112e4b7
tracy lock contention testing and other fun things
2019-09-03 11:56:56 -04:00
Rick V
5ecc76a332
if cppbackport is built, make that consistent too
2019-09-03 08:02:32 -05:00
Rick V
89f92d3aed
new cmake module
2019-09-03 08:02:32 -05:00
Rick V
4246caf8a1
add build option for constrained node ops and make sure everything is now target-optimised in all configurations (allows debugging on the target using the debug build config)
...
link libatomic if we're targeting 486
link libatomic.a if we're targeting windows
idk what the hell MSVC does for -arch:IA32
we already set the c++14 flag early on
strip target selection flags from MSVC builds and clang-cl
c++14 does not propagate to compile tests
2019-09-03 08:02:04 -05:00
Rick V
6ade591a6e
add native build option
2019-08-27 07:06:49 -05:00
despair
60cf1be757
fix cmake (restore crypto opts)
2019-08-27 06:55:18 -05:00
Michael
7d39f84ef3
Partial fixes for shadow
2019-08-26 23:10:48 +00:00
Michael
429284aedc
Fix static linking on macOS
2019-08-17 12:33:07 +01:00
Michael
6e5cab971f
make windows fixes
2019-08-13 10:02:48 +01:00
Michael
8c5bbcaeeb
Update rcutil and add to build
2019-08-12 21:47:30 +00:00
Michael
f9e9227e19
Fix gcc trunk warnings
2019-08-02 10:29:08 +01:00
Jeff Becker
7c8c11a42a
correct cmake paramter for shellhooks
2019-07-29 08:14:35 -04:00
Thomas Winget
baf8019fe5
Refactor Router code into more classes
...
This commit refactors functionality from the Router class into separate,
dedicated classes.
There are a few behavior changes that came as a result of discussion on
what the correct behavior should be.
In addition, many things Router was previously doing can now be provided
callback functions to alert the calling point when the asynchronous
action completes, successfully or otherwise.
2019-07-25 14:11:02 -04:00
Michael
82958de2d7
Tidy up cmake files
2019-07-22 00:58:45 +01:00
Michael
65af2c4266
Normalise build
2019-07-21 17:08:26 +01:00
Michael
edcaf8c25c
try actually reading the gtest docs
2019-07-21 16:57:12 +01:00
Michael
42b951aa80
Try to link shared again
2019-07-21 16:57:11 +01:00
Michael
cc67794b43
build gtest/gmock in shared mode
2019-07-21 16:57:11 +01:00
Michael
246ff605c4
Try building tests on windows
2019-07-21 16:57:11 +01:00
Michael
ac8624698d
Fix some string_view problems
2019-07-21 16:57:11 +01:00
Michael
9f2ec57704
Try forcing avx2
2019-07-21 16:57:11 +01:00
Michael
728661f82c
Explictly enable catching exceptions
2019-07-21 16:57:11 +01:00
Michael
082897eff5
Set PIC everywhere
2019-07-15 22:46:58 +01:00
Michael
2cc180b6a4
Add FindLibUV and migrate
2019-07-13 14:06:34 +01:00
Jeff Becker
095330b787
disable shell hooks by default
2019-07-12 09:06:59 -04:00
Michael
80d1e4aef9
Add in-source version of std::filesystem::permissions
2019-07-02 00:01:25 +01:00
Michael
59e8a7316f
Revert "Merge pull request #668 from michael-loki/remove_cppbackport"
...
This reverts commit 33142d5005
, reversing
changes made to 408a652a01
.
2019-07-01 10:33:03 +01:00
Michael
07377b8d5f
Find libuv for Ryan
2019-06-28 12:08:43 +01:00
Michael
1639c58cb6
Remove cppbackport from vendor dir
2019-06-27 16:25:44 +01:00
Jeff Becker
e265661adb
try fixing issue number 17 (not done)
2019-06-24 12:48:48 -04:00
Rick V
302fa232d7
I _think_ this is a decent compromise for LTO vs non-LTO builds
2019-06-17 23:48:58 -05:00
Rick V
8a0bd5b532
try fixing libabyss
...
Why does abyss not inherit the include folders used by the rest of the lokinet build?
2019-06-17 23:29:36 -05:00
Jeff Becker
4c1ac0e991
update for win32 parts
2019-06-12 09:20:00 -04:00
Jeff Becker
9447a1bb25
ammend previous commit
2019-06-10 12:38:24 -04:00
Jeff Becker
473ceedb9d
try linking for freebsd
2019-06-10 12:36:00 -04:00
Jeff Becker
223f2702d3
Merge branch 'fix-big-ooooofff'
2019-06-06 06:53:54 -04:00
Jeff Becker
9deafa4cb8
use libuv
2019-06-02 17:17:05 -04:00
Michael
19802229ac
Update cmake to point to vendor dir
2019-05-29 23:18:47 +01:00
Michael
19578fa8fc
Fix ASAN build
2019-05-18 16:34:03 +01:00
Jeff Becker
3e0585e0b8
remove fatal error message from git revision when not in git
2019-05-03 10:00:12 -04:00
Michael
8c570653ee
Refactor top level cmake file into multiple components
2019-04-30 00:48:48 +01:00
Michael
0b4d787042
More work on router docker image
...
- Multi-stage docker build (final image only 15MB!)
- Build in release mode
- Fix bug with release mode
- Fix compiler being dumb AF
- Disable FORTIFY for now
- Enable LTO when making a staticly linked release
- Fix some gcc specific warnings
- Refactor cmake stuff into multiple files
2019-04-28 17:04:52 +01:00
Michael
9ee525a006
Fix shadowing warnings
2019-04-26 00:21:19 +01:00
Michael
4143472a17
Add cmake module to target a library as 'system', and fix a few warnings
2019-04-25 00:27:31 +01:00
Rick V
4c4efd1aaa
irrelevant on Microsoft C++
2019-04-22 18:05:57 -05:00
Rick V
01ec1cc61c
fix windows ( #535 )
2019-04-19 13:28:03 -05:00
michael-loki
0195152e05
Allow builds on MSVC ( #518 )
...
* Import cxxopts to replace getopts usage
* Add visual studio build things
* Fixup abseil build parts
* Replace __attribute__((unused)) with ABSL_ATTRIBUTE_UNUSED
* Fixup minor windows build issues
* Replace getopts usage
* Temporarily fixup .rc files
* More minor windows fixes
* Get a working build
* Revert .rc files
* Revert changes to nodedb
2019-04-19 13:24:33 -05:00
Jeff Becker
2c5fa94170
fix freebsd build
2019-04-19 09:31:33 -04:00
Rick V
853d19209c
Revert "unbreak windows target"
...
select 64-bit target by default (since normal devs REEEEEEEE at the sight of 4 byte ptrs)
pretty much every _other_ linux/unix has a c++17 windows compiler
This reverts commit a844c61049
.
2019-04-11 10:17:58 -05:00
Jeff Becker
a844c61049
unbreak windows target
2019-04-10 11:53:10 -04:00
Jeff Becker
3da6551e82
make android compile
2019-04-08 11:54:19 -04:00
Jeff Becker
2edf1da819
add more android stuff
2019-04-08 10:27:55 -04:00
Jeff Becker
e178a70929
use shared_ptr for event loop
2019-04-08 08:01:52 -04:00
Michael
25f10d5b11
Fix more address sanitiser issues
2019-04-02 10:03:53 +01:00
Michael
6b5a688e08
Fix Catalog.Iterator test failure
2019-03-29 22:14:22 +00:00
Rick V
07e5978144
only pick one event loop on sol2
2019-03-26 21:20:58 -05:00
Rick V
bbba2c0eea
improve windows select loop
...
add generic svr4 poll(2) event loop
2019-03-26 19:56:34 -05:00
Michael
f2c5d32399
Metric collection subsystem
2019-03-25 20:36:23 +00:00
Rick V
490f3f31d0
minimal build system plumbing for backports to oracle solaris
2019-03-25 12:03:56 -05:00
Rick V
abb9284167
add sun link libs
2019-03-25 12:03:53 -05:00
Rick V
2e1b2ff8b1
abseil should pick up all of our compile flags (and stop on warnings if enabled), temp disable tuntap on Solaris
2019-03-25 12:03:53 -05:00
Rick V
87cebd9ba6
port abseil-cpp to Solaris 2.x and legacy compiler
...
fuck oracle with a rusty knife, we only support compilers with a full implementation of G++ (so, basically, only clang)
2019-03-25 12:03:52 -05:00
Rick V
67845e342a
distinguish good solaris from bad solaris
2019-03-25 12:03:52 -05:00
Rick V
866643f099
public releases should run reasonably well on most
...
devices in spite of the buiild system
currently, the instruction scheduling is tuned for the AMD K10 uarch, which is the CPU
of the unix build agent
2019-03-20 21:13:14 -05:00
Rick V
be5e70f9eb
update clang bits for release
2019-03-18 23:09:29 -05:00
Rick V
072ff9a50e
finally make -WX/-Werror optional
2019-03-18 19:22:37 -05:00
Rick V
8443c5ab8c
Support abseil on i686-pc-winnt-gnu
2019-03-18 16:13:09 -05:00
Rick V
53f7360094
added warning for AMD users
2019-03-18 16:13:09 -05:00
Rick V
61fb9a9c82
added some notes to gear up for the #371 putback by @michael-loki
...
moved platform-specifc stuff *to* platform specifc lib
removed -Wno-format on windows and *actually* turn on proper format checking
here using compiler-specifc extension for C99
2019-03-18 16:13:08 -05:00
Rick V
aab8167408
remove AMD FPU hack, remove FPU opts for crypto code in debug mode
...
see https://www.digitaltrends.com/computing/ryzen-amd-bios-fix-fma3-crash/
AMD has released a fix for Zen and later
2019-03-18 16:13:08 -05:00
Jeff
a79f27cfd0
Merge pull request #395 from majestrate/staging
...
lokinet rpc use http digest auth instead of basic auth
2019-03-13 16:21:14 -04:00
Jeff Becker
990049f423
make rpc do basic auth and shit like that
2019-03-13 16:01:10 -04:00
michael-loki
8ada001bc9
Remove negative thread safety warning flag
...
This is experimental, and has a bunch of false positives.
2019-03-12 10:13:33 +00:00
Jeff Becker
734a5b5fae
more
2019-03-11 09:01:43 -04:00
Jeff Becker
2218749134
Merge remote-tracking branch 'origin/staging' into staging
2019-03-07 17:58:29 -05:00
Jeff Becker
6a09348c47
today's work
2019-03-07 17:53:36 -05:00
Jeff
1a09a12ee0
Merge branch 'staging' into absl_mutex
2019-03-05 17:06:23 -05:00
Michael
61f3273dc4
Add threading annotations and fix potential deadlocks
2019-03-04 00:03:52 +00:00
Michael
c5a129ddff
Convert to use abseil synchronisation primitives
2019-03-03 21:20:38 +00:00
Michael
93399fdbb4
Make nlohmann::json part of the build
2019-03-02 02:32:18 +00:00
Michael
c6e6bdb90f
Fix for windows just being the Worst
2019-02-20 22:09:29 +00:00
Michael
4132f883a7
Make libabyss mandatory
2019-02-20 22:08:49 +00:00
Michael
a0125ffe86
Move abyss/json to llarp/util/json
2019-02-15 23:43:26 +00:00