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

Need instructions on how to build just a specific version of solidity compiler #367

Closed
tymat opened this issue Jan 24, 2016 · 8 comments
Closed

Comments

@tymat
Copy link

tymat commented Jan 24, 2016

Need clear instructions on how to compile a specific version of solidity on OSX/Linux (version 0.1.7) The latest instructions for compiling webthree-umbrella is broken.

@tymat
Copy link
Author

tymat commented Jan 24, 2016

/Users/aeufemio/projects/ethereum/webthree-umbrella/solidity/libethereum/evmjit/libevmjit/Array.cpp:37:25: error: no member named 'getNextNode' in 'llvm::Argument'
        auto value = arrayPtr->getNextNode();
                     ~~~~~~~~  ^
/Users/aeufemio/projects/ethereum/webthree-umbrella/solidity/libethereum/evmjit/libevmjit/Array.cpp:87:25: error: no member named 'getNextNode' in 'llvm::Argument'
        auto index = arrayPtr->getNextNode();
                     ~~~~~~~~  ^
/Users/aeufemio/projects/ethereum/webthree-umbrella/solidity/libethereum/evmjit/libevmjit/Array.cpp:111:25: error: no member named 'getNextNode' in 'llvm::Argument'
        auto index = arrayPtr->getNextNode();
                     ~~~~~~~~  ^
/Users/aeufemio/projects/ethereum/webthree-umbrella/solidity/libethereum/evmjit/libevmjit/Array.cpp:133:25: error: no member named 'getNextNode' in 'llvm::Argument'
        auto index = arrayPtr->getNextNode();
                     ~~~~~~~~  ^
/Users/aeufemio/projects/ethereum/webthree-umbrella/solidity/libethereum/evmjit/libevmjit/Array.cpp:191:27: error: no member named 'getNextNode' in 'llvm::Argument'
        auto newSize = arrayPtr->getNextNode();
                       ~~~~~~~~  ^
/Users/aeufemio/projects/ethereum/webthree-umbrella/solidity/libethereum/evmjit/libevmjit/Arith256.cpp:86:14: error: no member named 'getNextNode' in 'llvm::Argument'
        auto y = x->getNextNode();
                 ~  ^
/Users/aeufemio/projects/ethereum/webthree-umbrella/solidity/libethereum/evmjit/libevmjit/BasicBlock.cpp:170:23: error: no member named 'getNextNode' in 'llvm::Argument'
        auto sizePtr = base->getNextNode();
                       ~~~~  ^
/Users/aeufemio/projects/ethereum/webthree-umbrella/solidity/libethereum/evmjit/libevmjit/Arith256.cpp:203:17: error: no member named 'getNextNode' in 'llvm::Argument'
        auto yArg = x->getNextNode();
                    ~  ^
/Users/aeufemio/projects/ethereum/webthree-umbrella/solidity/libethereum/evmjit/libevmjit/Arith256.cpp:301:14: error: no member named 'getNextNode' in 'llvm::Argument'
        auto y = x->getNextNode();
                 ~  ^
/Users/aeufemio/projects/ethereum/webthree-umbrella/solidity/libethereum/evmjit/libevmjit/Arith256.cpp:325:14: error: no member named 'getNextNode' in 'llvm::Argument'
        auto y = x->getNextNode();
                 ~  ^
/Users/aeufemio/projects/ethereum/webthree-umbrella/solidity/libethereum/evmjit/libevmjit/Arith256.cpp:369:14: error: no member named 'getNextNode' in 'llvm::Argument'
        auto y = x->getNextNode();
                 ~  ^
/Users/aeufemio/projects/ethereum/webthree-umbrella/solidity/libethereum/evmjit/libevmjit/Arith256.cpp:415:14: error: no member named 'getNextNode' in 'llvm::Argument'
        auto y = x->getNextNode();
                 ~  ^
/Users/aeufemio/projects/ethereum/webthree-umbrella/solidity/libethereum/evmjit/libevmjit/Arith256.cpp:441:14: error: no member named 'getNextNode' in 'llvm::Argument'
        auto y = x->getNextNode();
                 ~  ^
/Users/aeufemio/projects/ethereum/webthree-umbrella/solidity/libethereum/evmjit/libevmjit/Arith256.cpp:464:25: error: no member named 'getNextNode' in 'llvm::Argument'
                auto exponent = base->getNextNode();

OS X El Capitan.

@chriseth
Copy link
Contributor

Did you follow this guide here: https://solidity.readthedocs.org/en/latest/installing-solidity.html#building-from-source

If building does not work, you can always use the emscripten platform:
https://github.com/chriseth/browser-solidity/tree/gh-pages/bin

@tymat
Copy link
Author

tymat commented Jan 25, 2016

Our contracts are in multiple .sol files and are deployed in a specific order. The build instructions you pasted are breaking (see error message above)

@chriseth
Copy link
Contributor

If you use

git clone --recursive https://github.com/ethereum/webthree-umbrella.git
cd webthree-umbrella
./webthree-helpers/scripts/ethupdate.sh --no-push --simple-pull --project solidity # update Solidity repo
./webthree-helpers/scripts/ethbuild.sh --no-git --project solidity --all --cores 4 -DEVMJIT=0

as in the website given above, it should not even process the evmjit folder.

@guanqun
Copy link
Contributor

guanqun commented Jan 25, 2016

I even added some support to create xcode project for solidity on Mac OSX. IIRC, it's ./webthree-helpers/scripts/ethbuild.sh --no-git --xcode --project solidity --all --cores 4 -DEVMJIT=0

@VoR0220
Copy link
Member

VoR0220 commented Feb 2, 2016

wait... @guanqun , does that put the compiler in Solidity to be worked on? Along with the build scripts? Having a debugger might be nice....even if it is Xcode.

@guanqun
Copy link
Contributor

guanqun commented Feb 5, 2016

@VoR0220 I'm not sure about your "put the compiler in Solidity to be worked on?" Sorry.

That line I put there lets cmake generate a xcode project and therefore we can use xcode to compile and debug the solidity compiler. Without this, we have to manually use lldb which I'm not so used to yet. :)

@VoR0220
Copy link
Member

VoR0220 commented Feb 5, 2016

Looking back on it that was very poorly phrased. My apologies. But yes. That works excellently! Now I just have to figure out how to work Xcode.

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

No branches or pull requests

4 participants