Bitcoin Forum
May 25, 2024, 05:30:23 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: compiling from sources (0.96)  (Read 746 times)
newuser3 (OP)
Newbie
*
Offline Offline

Activity: 7
Merit: 0


View Profile
May 03, 2017, 01:27:11 PM
 #1

I use fedora 25 and I am having troubles compiling armory 0.96 from sources

I am following this guide

https://btcarmory.com/docs/building/

But I think that it's outdated.

First of all the signing key is of the old developer, I think?
gpg --recv-keys --keyserver keyserver.ubuntu.com 98832223




Then the build process

Quote
$ git checkout v0.96  # put latest version number here
$ git tag -v v0.96    # confirm signatures before continuing
$ make
$ python ArmoryQt.py

Doesn't work.

I tried to use these commands instead

Quote
$ git checkout v0.96  # put latest version number here
$ git tag -v v0.96    # confirm signatures before continuing
$ ./autogen
$ ./configure
$ make

I went a step further. Not sure if I did the right thing. But still I can't compile it

During the configure I get this warning
Quote
=== configuring in cppForSwig/fcgi (*****/BitcoinArmory/cppForSwig/fcgi)
configure: WARNING: no configuration information is in cppForSwig/fcgi

During the make command I get this error at the end
Quote
make[3]: uscita dalla directory "*****/BitcoinArmory/cppForSwig/lmdb"
Making all in fcgi
make[3]: ingresso nella directory "*****/BitcoinArmory/cppForSwig/fcgi"
make[3]: ***  Nessuna regola per generare l'obiettivo "all".  Arresto.
make[3]: uscita dalla directory "*****/BitcoinArmory/cppForSwig/fcgi"
Makefile:1445: set di istruzioni per l'obiettivo "all-recursive" non riuscito
make[2]: *** [all-recursive] Errore 1
make[2]: uscita dalla directory "*****/BitcoinArmory/cppForSwig"
Makefile:429: set di istruzioni per l'obiettivo "all-recursive" non riuscito
make[1]: *** [all-recursive] Errore 1
make[1]: uscita dalla directory "*****/BitcoinArmory"
Makefile:361: set di istruzioni per l'obiettivo "all" non riuscito
make: *** [all] Errore 2

The ***** is just a way to censor my home directory.

Any idea? I can post the full logs if needed.
achow101
Staff
Legendary
*
Offline Offline

Activity: 3402
Merit: 6653


Just writing some code


View Profile WWW
May 03, 2017, 01:29:46 PM
 #2

I will need to update the website with new build info. Thanks for reminding me.

After you have cloned the repo, you need to run
Code:
git submodule init
git submodule update
from the repo root in order to get the fcgi stuff. Then you do
Code:
./autogen.sh
./configure
make
to actually build the thing. You will need to have automake installed.

The command to run the qt client is still the same.

newuser3 (OP)
Newbie
*
Offline Offline

Activity: 7
Merit: 0


View Profile
May 03, 2017, 02:10:09 PM
 #3

Thank you very much for your quick reply. It worked.


I add here for people that will read this topic that to be able to compile it under fedora 25 I had to write this command
Quote
$ export PATH=$PATH:/usr/lib64/qt5/bin/

before the make command.
Ente
Legendary
*
Offline Offline

Activity: 2126
Merit: 1001



View Profile
May 03, 2017, 02:55:55 PM
 #4

I'll reuse this thread, as I have compile-problems as well:

Freshly installed native (non-VM) Ubuntu 17.04 with XFCE, 64 bit.

I installed
Quote
git-core build-essential pyqt4-dev-tools swig libqtcore4 libqt4-dev python-qt4 python-dev python-twisted python-psutil
and
Quote
autoconf libtool pkg-config libcrypto++-dev
for good masurement.

I did

Quote
git submodule init
git submodule update
sh autogen.sh
./configure
make

Compiling fails with many of
Code:
In file included from cpu.h:31:0,
                 from rijndael.cpp:74:
/usr/lib/gcc/x86_64-linux-gnu/6/include/smmintrin.h: In member function ‘virtual void CryptoPP::Rijndael::Base::UncheckedSetKey(const byte*, unsigned int, const CryptoPP::NameValuePairs&)’:
/usr/lib/gcc/x86_64-linux-gnu/6/include/smmintrin.h:447:1: error: inlining failed in call to always_inline ‘int _mm_extract_epi32(__m128i, int)’: target specific option mismatch
 _mm_extract_epi32 (__m128i __X, const int __N)
 ^~~~~~~~~~~~~~~~~
rijndael.cpp:223:44: note: called from here
    rk[keylen/4] = rk[0] ^ _mm_extract_epi32(_mm_aeskeygenassist_si128(temp, 0), 3) ^ *(rc++);
                           ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Full output is on
https://pastebin.com/qWjMSma3
Are there more dependencies I am missing?

I wanted to double-check why I can't connect/sync/load from a remote ArmoryDB location, so this here isn't even my real problem, but just a diagnostic test.

Thanks in advance,

Ente
achow101
Staff
Legendary
*
Offline Offline

Activity: 3402
Merit: 6653


Just writing some code


View Profile WWW
May 03, 2017, 03:06:25 PM
 #5

I'll reuse this thread, as I have compile-problems as well:

Freshly installed native (non-VM) Ubuntu 17.04 with XFCE, 64 bit.

I installed
Quote
git-core build-essential pyqt4-dev-tools swig libqtcore4 libqt4-dev python-qt4 python-dev python-twisted python-psutil
and
Quote
autoconf libtool pkg-config libcrypto++-dev
for good masurement.
Do you have automake and autotools-dev installed?

Compiling fails with many of
Code:
In file included from cpu.h:31:0,
                 from rijndael.cpp:74:
/usr/lib/gcc/x86_64-linux-gnu/6/include/smmintrin.h: In member function ‘virtual void CryptoPP::Rijndael::Base::UncheckedSetKey(const byte*, unsigned int, const CryptoPP::NameValuePairs&)’:
/usr/lib/gcc/x86_64-linux-gnu/6/include/smmintrin.h:447:1: error: inlining failed in call to always_inline ‘int _mm_extract_epi32(__m128i, int)’: target specific option mismatch
 _mm_extract_epi32 (__m128i __X, const int __N)
 ^~~~~~~~~~~~~~~~~
rijndael.cpp:223:44: note: called from here
    rk[keylen/4] = rk[0] ^ _mm_extract_epi32(_mm_aeskeygenassist_si128(temp, 0), 3) ^ *(rc++);
                           ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Full output is on
https://pastebin.com/qWjMSma3
Are there more dependencies I am missing?
What version of gcc are you using?

Ente
Legendary
*
Offline Offline

Activity: 2126
Merit: 1001



View Profile
May 03, 2017, 03:18:01 PM
 #6

I'll reuse this thread, as I have compile-problems as well:

Freshly installed native (non-VM) Ubuntu 17.04 with XFCE, 64 bit.

I installed
Quote
git-core build-essential pyqt4-dev-tools swig libqtcore4 libqt4-dev python-qt4 python-dev python-twisted python-psutil
and
Quote
autoconf libtool pkg-config libcrypto++-dev
for good masurement.
Do you have automake and autotools-dev installed?

Compiling fails with many of
Code:
In file included from cpu.h:31:0,
                 from rijndael.cpp:74:
/usr/lib/gcc/x86_64-linux-gnu/6/include/smmintrin.h: In member function ‘virtual void CryptoPP::Rijndael::Base::UncheckedSetKey(const byte*, unsigned int, const CryptoPP::NameValuePairs&)’:
/usr/lib/gcc/x86_64-linux-gnu/6/include/smmintrin.h:447:1: error: inlining failed in call to always_inline ‘int _mm_extract_epi32(__m128i, int)’: target specific option mismatch
 _mm_extract_epi32 (__m128i __X, const int __N)
 ^~~~~~~~~~~~~~~~~
rijndael.cpp:223:44: note: called from here
    rk[keylen/4] = rk[0] ^ _mm_extract_epi32(_mm_aeskeygenassist_si128(temp, 0), 3) ^ *(rc++);
                           ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Full output is on
https://pastebin.com/qWjMSma3
Are there more dependencies I am missing?
What version of gcc are you using?


Quote
Do you have automake and autotools-dev installed?
Yes, both were present by default.

Quote
What version of gcc are you using?
gcc (Ubuntu 6.3.0-12ubuntu2) 6.3.0 20170406

Thank you for looking into this.

Cheers,

Ente
achow101
Staff
Legendary
*
Offline Offline

Activity: 3402
Merit: 6653


Just writing some code


View Profile WWW
May 03, 2017, 03:30:40 PM
 #7

gcc (Ubuntu 6.3.0-12ubuntu2) 6.3.0 20170406
Can you try using gcc 5.x? I think there is some incompatibility between gcc versions for cryptopp. We haven't tried compiling on anything newer than gcc 5.x yet.

goatpig
Moderator
Legendary
*
Offline Offline

Activity: 3668
Merit: 1347

Armory Developer


View Profile
May 03, 2017, 05:36:45 PM
 #8

This isn't a GCC issue, it's a SSE4.1 issue most likely. What CPU are you using?

The settings in this line are the issue:

https://github.com/goatpig/BitcoinArmory/blob/master/cppForSwig/cryptopp/Makefile.am#L16

You may want to just set the line to:

Code:
AM_CXXFLAGS += -DCRYPTOPP_DISABLE_ASM

Otherwise you have to play around with the m4 to mute the x86 instruction set that your compiler is failing to find:

https://github.com/goatpig/BitcoinArmory/blob/master/m4/ax_gcc_x86_cpu_supports.m4
https://github.com/goatpig/BitcoinArmory/blob/master/m4/ax_check_x86_features.m4

Ente
Legendary
*
Offline Offline

Activity: 2126
Merit: 1001



View Profile
May 04, 2017, 07:51:35 AM
Last edit: May 04, 2017, 08:05:44 AM by Ente
 #9

It's an ancient "Centrino Duo", could very well be that they were missing some features back then.
Thank you for your help, I will check it out.

I suppose running Armory on old hardware is a usecase. Now that it's even possible to store the DB elsewhere.
People have old hardware laying around, and a dedicated Armory client machine does have security advantages.

Thank you, I'll report back.

edit:
Unfortunately, same problem. I did "make clean", in the end make still gives the same errors.
Do I have to do anything else besides removing those options for crypto++? Anything to activate the new config?

Ente
goatpig
Moderator
Legendary
*
Offline Offline

Activity: 3668
Merit: 1347

Armory Developer


View Profile
May 04, 2017, 09:54:01 AM
 #10

Unfortunately, same problem. I did "make clean", in the end make still gives the same errors.
Do I have to do anything else besides removing those options for crypto++? Anything to activate the new config?

I'm unsure about that, I have to try it out on some old hardware of my own. Cryptopp is a pain like that. I plan to move away from it for the new wallets, that's how much distaste I have for it.

Ente
Legendary
*
Offline Offline

Activity: 2126
Merit: 1001



View Profile
May 04, 2017, 10:43:40 AM
 #11

Unfortunately, same problem. I did "make clean", in the end make still gives the same errors.
Do I have to do anything else besides removing those options for crypto++? Anything to activate the new config?

I'm unsure about that, I have to try it out on some old hardware of my own. Cryptopp is a pain like that. I plan to move away from it for the new wallets, that's how much distaste I have for it.

I see.
Don't put too much effort into this then, if cryptopp will be thrown out anyway.
I'll try something else to troubleshoot and get Armory-with-remote-DB running.

Cheers,

Ente
goatpig
Moderator
Legendary
*
Offline Offline

Activity: 3668
Merit: 1347

Armory Developer


View Profile
May 04, 2017, 03:50:27 PM
 #12

Consider trying to build with clang, which sidesteps most of the asm/sse stuff in cryptopp. In the long term I'll be moving to libsecp and ctaes used in Core, that should reduce the headache.

Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!