Skip to content
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

Eliminate hacks. Upstream fixes #11

Closed
anthony-cros opened this issue Nov 18, 2015 · 17 comments
Closed

Eliminate hacks. Upstream fixes #11

anthony-cros opened this issue Nov 18, 2015 · 17 comments
Assignees
Labels

Comments

@anthony-cros
Copy link
Member

@anthony-cros anthony-cros commented Nov 18, 2015

No description provided.

@bobsummerwill
Copy link
Member

@bobsummerwill bobsummerwill commented Nov 19, 2015

Yeah ... Please could you break this up into a bug per hack? Pain in the ass, I know, but working through these may take some time, and I don't want a mega-bug. Thanks!

@anthony-cros
Copy link
Member Author

@anthony-cros anthony-cros commented Nov 19, 2015

Here's a breakdown:

boost:

curl:

jsoncpp:

cryptopp:

jsonrpccpp:

secp256k1:

libweb3core:

  • turning off Miniupnpc manually: 1 and 2

libethereum:

webthree:

@bobsummerwill
Copy link
Member

@bobsummerwill bobsummerwill commented Nov 19, 2015

Thanks - could you just kill this bug and make a GitHub issue per package? Thanks! Just cut-and-pasting these button points.

Titles: Undo hacks for . Thanks!

@bobsummerwill
Copy link
Member

@bobsummerwill bobsummerwill commented Nov 19, 2015

"Undo hacks for X"

@bobsummerwill
Copy link
Member

@bobsummerwill bobsummerwill commented Nov 19, 2015

"turning off Miniupnpc manually" - Wasn't this the one you logged a Github issue for?

@bobsummerwill
Copy link
Member

@bobsummerwill bobsummerwill commented Nov 19, 2015

No. It was Odd -lOFF flags in resulting Makefile I was thinking of ...

https://github.com/ethereum/libweb3core/issues/23

@bobsummerwill bobsummerwill removed the eth label Nov 28, 2015
@bobsummerwill bobsummerwill changed the title eth scripts: address hacks when possible - work with c++ team so they get addressed properly Eliminate hacks. Upstream fixes Nov 29, 2015
@bobsummerwill bobsummerwill self-assigned this Nov 30, 2015
This was referenced Dec 2, 2015
@bobsummerwill
Copy link
Member

@bobsummerwill bobsummerwill commented Dec 6, 2015

Pull request to address unconditional use of JSRemoteConsole in main.cpp of eth:
ethereum/webthree#89

@bobsummerwill
Copy link
Member

@bobsummerwill bobsummerwill commented Dec 6, 2015

@bobsummerwill
Copy link
Member

@bobsummerwill bobsummerwill commented Dec 6, 2015

Is the fundamental issue with all the OPTIONAL modules, @anthony-cros, that the semantics are "Look at my host machine's available libraries, and build different code depending on that"? Where we do NOT want such implicit behavior, because our target machine might provide different answers?

So really for cross-building scenarios, you never want OPTIONAL modules, unless there was a way of controlling that on the command-line with parameterization?

@bobsummerwill
Copy link
Member

@bobsummerwill bobsummerwill commented Dec 6, 2015

Whereas the jsconsole and jsengine ones are just build system bugs of some kind, in that the C++ code itself can cope with them being on/off via #ifdefs, but we are perhaps missing an equivalent functional mechanism for skipping their build steps?

@bobsummerwill
Copy link
Member

@bobsummerwill bobsummerwill commented Dec 6, 2015

Actually, the other thing with the OPTIONAL modules is that they are assumed to be pre-installed and available, right? They aren't being built within the native build process (V8 for example). They are just package-installed. Where we need to built them.

Aha!

@bobsummerwill
Copy link
Member

@bobsummerwill bobsummerwill commented Dec 17, 2015

Webthree "attach" bug has been addressed and the hack removed. This was messed-up #ifdefs.

@anthony-cros
Copy link
Member Author

@anthony-cros anthony-cros commented Dec 17, 2015

crossed-off the list!

@bobsummerwill bobsummerwill added this to the Milestone 1 milestone Dec 24, 2015
@bobsummerwill
Copy link
Member

@bobsummerwill bobsummerwill commented Dec 30, 2015

OK ... I'll make a complete fresh list of all the hacks here at some point today or tomorrow, after I finish my work on #42 , which has been a complete pig. At least I have a better feeling for the shape of the whole thing now!

@bobsummerwill
Copy link
Member

@bobsummerwill bobsummerwill commented Dec 30, 2015

TODO

  • Hack removal - xcompiler name is always arm-unknown-linux-gnueabi (see ct-ng.sh)
  • Hack removal - webthree-helper
    • EthDependencies.cmake introduces global Boost dependency
  • Hack removal - Boost #67
  • Hack removal - CryptoPP
    • Hacking GNUmakefile to add -fPIC setting
    • Hacking GNUmakefile to remove -march=native
    • Multiple hacks for irregular include path structure and CMake assumptions (including in set_cmake_include_path in utils.sh)
  • Hack removal - Curl
    • Adding CC and CXX to global path
  • Hack removal - GMP
    • Hardcoded unknown-linux-gnueabi passed to configure
  • Hack removal - jsoncpp
    • Soft-link for irregular include paths?
    • Can we remove "homogenization" of outputs?
  • Hack removal - libscrypt
    • Unnecessary boost dependency
    • Horrible webthree/CMake hack to cope with it not being its own repo
    • Can we remove "homogenization" of outputs?
  • Hack removal - MHD
    • Hardcoded unknown-linux-gnueabi passed to configure
  • Hack removal - libjson-rpc-cpp
    • Missing CXX options
    • Can we remove "homogenization" of outputs?
  • Hack removal - secp256k1
    • Unnecessary boost dependency
    • Horrible webthree/CMake hack to cope with it not being its own repo
  • Hack removal - libweb3core
    • Hacking out optional Miniupnpc dependency
    • Hack to mask unmerged PR - ethereum/libweb3core#44
    • Can we remove "homogenization" of outputs?
  • Hack removal - libethereum
    • Hacking out optional dependencies - ethash-cl, Cpuid, miniupnpc (all in main.sh)
    • BuildInfo.h and ConfigInfo.h aren't being installed properly, it seems?
    • Can we remove "homogenization" of outputs?
  • Hack removal - webthree
    • Hacking out flu, jsengine, libjsconsole (#defines for JSENGINE, but not build-file conditionals?).
    • Won't be able to handle these cases until we have V8 cross-compiled, but should at least have build-system conditional support in the meantime, vs gsub-ing the CMake files.
    • Hacking out Solidity, also needs clean conditional
    • 5 hacks for adding missing libethereum and json-rpc-cpp include paths. Might be redundant now, but needs testing.
@yep
Copy link
Contributor

@yep yep commented Aug 11, 2016

Please close this bug.

As suggested above, having a separate issue for each item on this todo list is way more maintainable.

Just created issues #96, #97, #98, #99, #100, #101, #102, #103, #104, #105, #106, #107 an #108 for this (Referencing them should create a backlink to this issue).

Please update status of each individual issue if necessary.

@bobsummerwill
Copy link
Member

@bobsummerwill bobsummerwill commented Aug 11, 2016

Thanks! Quick pass through them, and they looked correct.
Just merged the ones which got merged into cpp-ethereum.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
3 participants