Commit Graph

562 Commits

Author SHA1 Message Date
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
Jeff Becker
1d958d95de
* make rpc compile right
* make link sessions introspectable
* make utp write buffers fully flush each tick
2019-02-15 17:19:19 -05:00
Michael
90373b806c
Fix log tag after cmake changes 2019-02-15 20:49:10 +00:00
Jeff
cdc19c52fa
Merge branch 'staging' into abstract_router_replacement 2019-02-15 12:10:18 -05:00
Michael
048fa83c39
Finish replacement of Router with AbstractRouter 2019-02-14 22:31:31 +00:00
Rick V
e9048559b2
late-breaking hotfix patch for libabyss-win32 2019-02-14 15:10:56 -06:00
Rick V
1bb441a367
fix clang cross-compile nt shared lib 2019-02-14 14:30:18 -06:00
Michael
ebf2800c3f Fixup windows 2019-02-14 00:22:21 +00:00
Michael
2997b38e35
Fixup after rebase 2019-02-12 10:24:43 +00:00
Michael
656843e9a3
Fix issues on debian 2019-02-12 01:19:38 +00:00
Michael
1aeacb0043
Refactor CMakeLists into distinct directories 2019-02-12 01:19:37 +00:00
Jeff
f84ceb3b6a
Merge pull request #300 from majestrate/staging
add rpc endpoint for dumping internal state
2019-02-11 12:30:56 -05:00
Jeff Becker
46222df421
refactor 2019-02-11 12:14:43 -05:00
Michael
4f3c2a7e80
Add support for building with ccache 2019-02-09 12:38:49 +00:00
Jeff Becker
e1522faeaa
add introspection rpc endpoint 2019-02-08 14:43:25 -05:00
Rick V
1fafe27300
damn it 2019-02-06 20:14:48 -06:00
Jeff
1369c3b23c
Merge pull request #283 from despair86/dev
more windows fixes
2019-02-06 21:10:30 -05:00
Rick V
4c19f562f0
A compromise for C++17 ports.
Remove abseil build config for such targets.
Include headers (which should fall through by definition).
Macintosh can go fuck itself.
2019-02-06 19:53:15 -06:00
Rick V
406e3a6b6c
document option correctly 2019-02-06 19:53:14 -06:00
Rick V
72d0720da0
use c++17 stl on windows
While the absl:: namespace is aliased to std:: in a
standard win32 build, it also needlessly adds the
library to the build process, only to discard most
of it at link time. This also makes the distinction
between Abseil STL and G++ STL more explicit, to avoid
some forms of confusion.

From the product page:
"...We think not: if you look at the preprocessor conditional
structure in our string_view.h you'll see that we are trying
to identify whether your C++ installation has std::string_view.
If you do, absl::string_view is defined only as an alias to the
standard type. If you don't, you get a C++11/C++14 compatible
implementation of the type. This means you can adopt Abseil,
and for types we are b you can use the type from the absl
namespace. As soon as your project is built with the appropriate
compiler/standard library version, we'll fall away and leave you
with the standard type, albeit spelled funny. Better: as soon as
you know that your project will only build with the appropriate
language version you can run tools that we will provide to change
the places that refer to absl::string_view to spell it std::string_view
-- since those are the same type, this is safe to do, even across
API boundaries.

So, one reason you might want to adopt Abseil: early access to facilities
from upcoming C++ standard library releases, with a clear migration path."
2019-02-06 19:53:14 -06:00
Rick V
8800cee785
fix crash on exit 2019-02-06 19:53:13 -06:00
Rick V
3931b7d9d7
implement missing libabyss functionality
remove some finished TODOs
2019-02-06 19:53:11 -06:00
Rick V
59c6184233
linker flags have no effect in compilation
and will cause -Werror=unused-command-line-option
on apple cc
2019-02-06 19:53:10 -06:00
Rick V
6d608d292f
add warning message for libg++ runtime 2019-02-06 19:53:09 -06:00
Rick V
00a095b61c
update description 2019-02-06 19:53:09 -06:00
Rick V
7f52c9eae7
restore gtest win32 patch (stripped during gtest rebase)
enable lokinet shared library on win32

TODO: define an API to expose from this library
currently, it resorts to exporting *everything*
including system implementation details that otherwise
should remain hidden out of sight
(i.e. the winsock2 load stubs for new socket API, or entire libstdc++ classes!)
2019-02-06 19:53:09 -06:00
Rick V
d0448dfb64
finish moving event loop implementations out of headers
ok

ah so that was the mac build problem
2019-02-06 19:53:08 -06:00
Rick V
6e93697214
surprisingly a full abyss build works
also move the event loop code back into platform lib (!!!)
2019-02-06 19:53:07 -06:00
Rick V
f277f368a1
win32 g++ is set to c++17 by default, so we use the _real_ string_view class 2019-02-06 19:53:06 -06:00
Michael
6d8d910aff
Refactor and add tests for bits.hpp 2019-02-07 00:23:22 +00:00
Michael
4c3734a146
Build everything with -fPIC 2019-02-05 23:06:17 +00:00
Ryan Tharp
5769e5c716
Merge pull request #259 from michael-loki/more_dht_tests
More dht tests
2019-02-05 14:06:29 -08:00
Michael
40e85f0f69
Tests for dht::RCNode and dht::ISNode 2019-02-05 21:35:46 +00:00