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

Can't build empythoned #14

Open
acejam opened this issue Jul 22, 2013 · 5 comments
Open

Can't build empythoned #14

acejam opened this issue Jul 22, 2013 · 5 comments

Comments

@acejam
Copy link

acejam commented Jul 22, 2013

Hello,

I seem to be getting some errors when trying to build. I'm invoking the build script by running "./build". I've set the proper variables located at the top of both "build" and ccproxy.py. I am receiving the following error output after the build script runs for a little bit: (~10 seconds or so)

Potential incompatible plugin version. GCC: 4.6 (20120301). Expected: 4.6 (20120301)
Defines 'dragonegg_disable_version_check' as env variable to remove this warning
Please note that unexpected errors might occur.
../ccproxy.py -DNDEBUG -g -O3 -Wall -Wstrict-prototypes Parser/acceler.o Parser/grammar1.o Parser/listnode.o Parser/node.o Parser/parser.o Parser/parsetok.o Parser/bitset.o Parser/metagrammar.o Parser/firstsets.o Parser/grammar.o Parser/pgen.o Objects/obmalloc.o Python/mysnprintf.o Python/pyctype.o Parser/tokenizer_pgen.o Parser/printgrammar.o Parser/pgenmain.o -ldl -lutil -o Parser/pgen
/usr/bin/llvm-link: Parser/acceler.o:1:1: error: expected top-level entity
�ELFH4(U���(��E�E�E�E�H��U�M��!�E�$�M�L$�<�E���M�M�E�E�M�����E�M�}ˋE��@��(]Ív��'U���(�E
��M�E�E�M�M�E��M�Q�E�U��$�E�$�M�L$���E���M���E�M�E�M�U�9J
�M�E��ȃ�(]�f�U���8��E�E�E�E��@�H��U�M��f��M�Q�E�U��0�E�xt�E�H�
$������E��@�M܃����M�E�E�M�U�9J
�M܉E����E���M؉M�E�E�M�����E�M�}���8]Ð��&U��SWV���E
��M�E�E�M�E�M�E��U��B�4����M�|6�E�
���t�E�
��M���E܋E܉$������E���E؋E؃��E�uO���$�5�$�D$�D$�t$
�MЉU��������$�MȉE��������E���E��
��U��
^
/usr/bin/llvm-link: error loading file 'Parser/acceler.o'
/usr/bin/llc: Parser/pgen: Could not open input file: No such file or directory
gcc-4.6: error: Parser/pgen.tmp.o: No such file or directory
gcc-4.6: fatal error: no input files
compilation terminated.
Traceback (most recent call last):
File "../ccproxy.py", line 100, in
os.unlink(target + '.tmp.o')
OSError: [Errno 2] No such file or directory: 'Parser/pgen.tmp.o'
make: *** [Parser/pgen] Error 1

Any idea as to what might be occuring? I'm trying to compile Python in Javascript with the basic configuration for now. Once I get this working, I plan to add/enable the Python SSL module and hopefully compile/convert that too.

Thanks,
Acejam

@acejam
Copy link
Author

acejam commented Jul 22, 2013

I am also using Ubuntu 12.04 LTS x86 within a Vagrant VM as well.

@max99x
Copy link
Contributor

max99x commented Jul 23, 2013

The error doesn't mean anything to me, but if I was to guess, it may be because you're using a newer version of LLVM that is incompatible. Empythoned was tested on LLVM 2.9.

@acejam
Copy link
Author

acejam commented Jul 23, 2013

@max99x I'm using LLVM-link 2.9. My LLVM line is set to /usr/bin/llvm which I believe is 2.9 as well, but I'm not sure. What type of system/OS has this been successfully built on? And just to be clear - I shouldn't have to pass any arguments to ./build, correct?

With Ubuntu 12.04 x86, I'm using the llvm and llvm-gcc packages from the Ubuntu apt repository. Perhaps I'll try downloading llvm from a different site. I assume that emscripten needs to be cloned into the emscripten directory as well? And should the CC= line be set to llvm, or llvm-gcc? (or emcc?)

@acejam
Copy link
Author

acejam commented Jul 24, 2013

@max99x Can you detail which versions of LLVM you used, and on which OS? Did you compile these binaries yourself, or did you download them pre-compiled? I am running into errors left and right with this.

I see the latest llvm-gcc included within apt-get in Ubuntu is actually not true llvm-gcc, rather it's llvm-gcc with DragonEgg. Apparently it will work if I switch -c and -emit-llvm to -S and -flto, respectively. I tried that and get the following:

./ccproxy.py -DNDEBUG -g -O3 -Wall -Wstrict-prototypes Parser/acceler.o Parser/grammar1.o Parser/listnode.o Parser/node.o Parser/parser.o Parser/parsetok.o Parser/bitset.o Parser/metagrammar.o Parser/firstsets.o Parser/grammar.o Parser/pgen.o Objects/obmalloc.o Python/mysnprintf.o Python/pyctype.o Parser/tokenizer_pgen.o Parser/printgrammar.o Parser/pgenmain.o -ldl -lutil -o Parser/pgen
/usr/bin/llvm-link: Parser/acceler.o:23:57: error: expected '{' in function body
define void @PyGrammar_AddAccelerators(%0* %g) nounwind uwtable ssp {
^
/usr/bin/llvm-link: error loading file 'Parser/acceler.o'
/usr/bin/llc: Parser/pgen: Could not open input file: No such file or directory

Before these changes, I was getting: " Parser/acceler.o:1:1: error: expected top-level entity"

@max99x
Copy link
Contributor

max99x commented Jul 25, 2013

I used 64-bit Arch Linux for all development on this, but I believe @amasad has also built this on a Mac. I used LLVM 2.9 and LLVM-GCC both built from source. You should not be modifying the CC line or adding any flags (at least until you can get it to compile). If you have LLVM and LLVM-GCC built together, it should be found automatically as long as you specify the right path for LLVM.

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

2 participants