-
Notifications
You must be signed in to change notification settings - Fork 262
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Build fails on Linux (both x64 and x32) #102
Comments
I can confirm this issue. Disabling memorystat by changing "#define USE_MEMORYSTAT 1" to "#define USE_MEMORYSTAT 0" in src/config.h circumvents this compiler error, but it is by far not enough to get the full build to work. I will report further findings in a couple of minutes ... |
Okay, I got it working now. Here are all the problems I encountered: 1. said MemoryStat build issueAgain, disabling MemoryStat fixes this. 2. Multiple tests fail to buildSpecifically:
I had to disable all of them. It should be noted however that it seems like this is caused by some compiler incompatibility. I'm running GNU C++ 7.3.1. 3. premake doesn't correctly identify boostI actually did not have the boost headers installed going into this, but premake assumed I had anyway and set HAS_BOOST=1. Installing the boost headers solves this problem. 4. ULib can't build correctlyIt seems some part of it's build system setup didn't behave properly on my system. 5. Some tests crash in the verifying stage (segfault)Specifically:
Disable them too and it should work. Oh, and you'll also need php installed, which isn't mentioned in the readme AFAIK. I hope this helps. |
This may be related #91 I disabled the ULib as explained in the #102 (comment), then run
and it failed with
Removing
The Configure crashes too, so
and rebuild. Adding more details and issues to the list from the #102 (comment):1. Linked version of configuru is failing to compile
Workaround: add missing 2. Linked version of Facil.io is failing to compile
Workaround: Remove Facil.io completely
Rebuild
Having all the workarounds applied, the benchmark builds and runs without crash. Complete set of fixes is available from my branch https://github.com/mloskot/nativejson-benchmark/tree/ml/issue-102-add-workarounds-to-build |
So uh, I thought I'd make a 2021 update to this issue: Only some of the workarounds are needed (others appear unnecessary). In my case, I disabled 1. MemoryStat and 4. ULib as mentioned by @tomolt. I also fixed/disabled configuru and facil.io as mentioned by @mloskot . However, it appears the complexity in the make-setup is unneeded and provided for one via the main Makefile. After all of this, I found new issues. 1. The results makefile needs minor editsIn the clean directive of results/makefile, add a 2. simdjson conformance test is brokenThe simdjson conformance test is missing a variable initialization (oddly). In the conformance test, function 3. ujson header is missing an STL include
4. The v8test failsFails to compile because of a non-existent header 5. Related to 4 seemingly, v8_base and v8_nosnapshot can't be linkedI changed the diff --git a/build/premake5.lua b/build/premake5.lua
index 20916ff..749f2f2 100755
--- a/build/premake5.lua
+++ b/build/premake5.lua
@@ -53 +53 @@ function gmake_common()
- links { "v8_base", "v8_libbase", "v8_libplatform", "v8_nosnapshot" }
+ links { "v8_libbase", "v8_libplatform" }
@@ -139 +139 @@ solution "benchmark"
- linkoptions { "../../thirdparty/ULib/src/ulib/.libs/libulib.a" }
+-- linkoptions { "../../thirdparty/ULib/src/ulib/.libs/libulib.a" }
@@ -243 +243 @@ solution "jsonstat"
- linkoptions { "../../thirdparty/ULib/src/ulib/.libs/libulib.a" }
+-- linkoptions { "../../thirdparty/ULib/src/ulib/.libs/libulib.a" } 6. Invalid pointers, segfaults galoreAfter all this, you should get some tests to run, but tests will fail. You should be able to just run The simdjson test "gracefully" fails in verification, but seems to work in general, and I was actually interested in this test (I wanted to in fact, see if this benchmark suite matched simdjson's, for the obvious reason that simdjson claims to have beaten the author of this suite's json libary (RapidJSON). 7. php is required, apparentlySelf-explanatory. Install php for your distribution. 8. Start a basic webserver in the repo's rootThe html files are located in I also don't know if I should trust metrics given the fact that there's an incredibly large amount of warnings generated upon compilation. In case anyone is curious, a very-abridged summary of my findings: CPU / OS / compiler detected as Parse Time Graph:Overall Conformance Graph:Parse Conformance Graph:The obvious: you'll probably want to run your own benchmark. I was unable to figure out how to order the pre-made Conformance Graphs, unfortunately. |
The text was updated successfully, but these errors were encountered: