Add armhf/aarch64 gitian builds #8188

pull theuni wants to merge 2 commits into bitcoin:master from theuni:arm-bins changing 6 files +57 −17
  1. theuni commented at 9:29 am on June 10, 2016: member

    As discussed in yesterday’s IRC meeting.

    Please see the individual commit messages for more detailed info and caveats. Also note:

    • I haven’t tested the resulting bins. I’d prefer to get ACKs from testers on native hardware before merge.
    • Not yet tested for determinism, though I have no reason to believe it should cause problems.
  2. depends: only build qt on linux for x86_64/x86 980e7eb98c
  3. jonasschnelli added the label Build system on Jun 10, 2016
  4. jonasschnelli commented at 9:33 am on June 10, 2016: contributor
  5. build: add armhf/aarch64 gitian builds
    - create a script to handle split debug. This will also eventually need to check
      targets, and use dsymutil for osx.
    - update config.guess/config.sub for bdb for aarch64.
    - temporarily disable symbol checks for arm/aarch64
    - quit renaming to linux32/linux64 and use the host directly
    
    This also adds a hack to work around an Ubuntu bug in the gcc-multilib package:
    https://bugs.launchpad.net/ubuntu/+source/gcc-defaults-armhf-cross/+bug/1347820
    
    The problem is that gcc-multilib conflicts with the aarch toolchain.
    gcc-multilib installs a symlink that points
    /usr/include/asm -> /usr/include/x86_64-linux-gnu/asm.
    
    Without this link, gcc -m32 can't find asm/errno.h (and others), since
    /usr/include/x86_64-linux-gnu isn't in its default include path. But
    /usr/include/i386-linux-gnu is (though it doesn't exist on disk).
    
    So work around the problem by linking
    /usr/include/i386-linux-gnu/asm -> /usr/include/x86_64-linux-gnu/asm.
    
    The symlink fix is actually quite reasonable, but echoing the password into
    sudo is nasty, and should probably be addressed in gitian itself. It makes more
    sense to enable passwordless sudo for the build user by default.
    9d25362087
  6. laanwj commented at 9:48 am on June 10, 2016: member
    Going to test this.
  7. laanwj commented at 10:50 am on June 10, 2016: member
    Sorry, looks like something is going wrong here locally. Probably a descriptor/tree mismatch.
  8. sipa commented at 11:38 am on June 10, 2016: member
    Hmm, I don’t see how this is avoiding building Qt? (I haven’t tried, just looking at the code changes)
  9. laanwj commented at 12:45 pm on June 10, 2016: member

    ACK https://github.com/bitcoin/bitcoin/pull/8188/commits/9d253620874087d96d64d0c4c771a582d9774657

    • Output (commit 9d253620874087d96d64d0c4c771a582d9774657):
    0682f88fc641256963247e7af3f9a4884f283966fcb5c231f722f689d89a2cee6  bitcoin-0.12.99-aarch64-linux-gnu-debug.tar.gz
    1b9ffbbc180381c0f258ce73b03907a083787fd9ff60858c43d6cf0f44eed5329  bitcoin-0.12.99-aarch64-linux-gnu.tar.gz
    2b68184aaca65cf3e35f5404933cd76e64e050b964a1a9f5b2ffe4c9e04a9f0c4  bitcoin-0.12.99-arm-linux-gnueabihf-debug.tar.gz
    3c1e2fce0759ad9b960541ebe46ffcf82e0a68de2c1f38aedc2750044b45c3d72  bitcoin-0.12.99-arm-linux-gnueabihf.tar.gz
    4859d36d60686b1df9349c200bb28d6fd05dfa718fce80e1d3130ba1a3fade01e  bitcoin-0.12.99-i686-pc-linux-gnu-debug.tar.gz
    53b0d20fdac61ba321eba25a8171bf0a6c859fedf3d85f62bae03949898229822  bitcoin-0.12.99-i686-pc-linux-gnu.tar.gz
    67ec01ff5322a0efabe3230c612a9110501ec1da4604c2518b82d104928b249a8  bitcoin-0.12.99-x86_64-linux-gnu-debug.tar.gz
    7ae713f6b25a5e35362d1717bcb6f0721a9683f445c71cd0b403b7729ab6dfa5d  bitcoin-0.12.99-x86_64-linux-gnu.tar.gz
    
    • It correctly built Xorg and Qt and other GUI dependencies only for x64, not the ARM archs
    • ARM tarballs contain the expected files:
     0bitcoin-0.12.99/
     1bitcoin-0.12.99/bin/
     2bitcoin-0.12.99/bin/bitcoin-cli
     3bitcoin-0.12.99/bin/bitcoind
     4bitcoin-0.12.99/bin/bitcoin-tx
     5bitcoin-0.12.99/bin/test_bitcoin
     6bitcoin-0.12.99/include/
     7bitcoin-0.12.99/include/bitcoinconsensus.h
     8bitcoin-0.12.99/lib/
     9bitcoin-0.12.99/lib/libbitcoinconsensus.so
    10bitcoin-0.12.99/lib/libbitcoinconsensus.so.0
    11bitcoin-0.12.99/lib/libbitcoinconsensus.so.0.0.0
    
    • 32-bit ARM Debian 8.5 (i.MX6 Quad/DualLite)
      • test_bitcoin passes
      • bitcoind was able to run it on a node, where it veriefied blocks, connected to peers correctly and stayed up to date with the chain
      • bitcoind succesfully shuts down, no crashes
    • 64-bit ARM Ubuntu 16.04 (ODROID-C2)
      • test_bitcoin passes
      • bitcoind was able to create its data files and do a testnet sync up to block ~70000 (will keep this running)
      • bitcoind succesfully shuts down, no crashes
  10. jonasschnelli commented at 3:27 pm on June 10, 2016: contributor

    Tested ACK 9d253620874087d96d64d0c4c771a582d9774657 (AARCH only). Gitian built successful. Got different hashes then @laanwj, but I did a merge build:

    00614d92 Merge branch 'arm-bins' of https://github.com/theuni/bitcoin
    19d25362 build: add armhf/aarch64 gitian builds
    2980e7eb depends: only build qt on linux for x86_64/x86
    367db011 Merge [#8177](/bitcoin-bitcoin/8177/): developer notes: updates for C++11
    4ac8d041 qt: translations update
    5fde0ac4 Merge [#8133](/bitcoin-bitcoin/8133/): build: Finish up out-of-tree changes
    
     0    c68ea35758ed49abf31e97a516b705ca2d8002699e5b8c82370f39b7d5dec7ce  bitcoin-0.12.99-aarch64-linux-gnu-debug.tar.gz
     1    5b14e326dff5ccf118df8ca6efadbc6ba6bf7042dd82b81a3c27274722c414eb  bitcoin-0.12.99-aarch64-linux-gnu.tar.gz
     2    1101faad27ea7f39e876b4274f8601468bf2c534b8bb4038ca783af4cccdcc0b  bitcoin-0.12.99-arm-linux-gnueabihf-debug.tar.gz
     3    bab4c0213d2a76e72517bab413eebf421ab7dcf67ff245a0e99f25f8cb81e593  bitcoin-0.12.99-arm-linux-gnueabihf.tar.gz
     4    454b5ab2a3edaad347d9a6c12cfadc921fc89be79922695cdb3a240d23ce4be1  bitcoin-0.12.99-i686-pc-linux-gnu-debug.tar.gz
     5    bb74034acd026637531e87199f9b902fdef9420767c6eb96ad0878d2c492d465  bitcoin-0.12.99-i686-pc-linux-gnu.tar.gz
     6    733f39ad756212d5b321b439a66328e4d005956cf03c4252c5ff383b21583d32  bitcoin-0.12.99-x86_64-linux-gnu-debug.tar.gz
     7    2145f811a8a5892087948a5f827f791a199da8d0a5e631aff8148ed5c4b163c6  bitcoin-0.12.99-x86_64-linux-gnu.tar.gz
     8    bdd273ce240272abeff7980895c75bb25456446ac6ec2cdc8f2e36d7f4c3eb7a  src/bitcoin-0.12.99.tar.gz
     9- in_manifest: |-
    10    b07e1e71c64e656612820ea76a377730c4e1c79cd29d432051fd99efe29a8f07  bitcoin-linux-0.13-desc.yml
    11    git:0614d929ddc55be702d910ff3f3f4481db0a6192 bitcoin
    

    https://bitcoin.jonasschnelli.ch/pulls/8188/bitcoin-linux-0.13-build.assert

    Successfully ran test_bitcoin and bitcoind on my Pine64 2GB.

     0ubuntu@pine64:~$ cat /proc/cpuinfo 
     1Processor   : AArch64 Processor rev 4 (aarch64)
     2processor   : 0
     3processor   : 1
     4processor   : 2
     5processor   : 3
     6Features    : fp asimd aes pmull sha1 sha2 crc32 
     7CPU implementer : 0x41
     8CPU architecture: AArch64
     9CPU variant : 0x0
    10CPU part    : 0xd03
    11CPU revision    : 4
    
    0ubuntu@pine64:~$ ./test_bitcoin 
    1Running 204 test cases...
    2
    3*** No errors detected
    
     0ubuntu@pine64:~$ ./bitcoind --dbcache=300 --datadir=/disk2/fullnode/ --prune=550 --printtoconsole
     12016-06-10 15:21:26 
     22016-06-10 15:21:26 Bitcoin version v0.12.99.0-0614d92
     32016-06-10 15:21:26 InitParameterInteraction: parameter interaction: -whitelistforcerelay=1 -> setting -whitelistrelay=1
     4---snip
     52016-06-10 15:22:57 init message: Verifying blocks...
     62016-06-10 15:22:57 Verifying last 288 blocks at level 3
     72016-06-10 15:22:57 [0%]...[10%]...[20%]...[30%]...[40%]...[50%]...[60%]...[70%]...[80%]...[90%]...[DONE].
     82016-06-10 15:24:19 No coin database inconsistencies in last 42 blocks (43555 transactions)
     92016-06-10 15:24:19  block index          171850ms
    102016-06-10 15:24:19 init message: Loading wallet...
    112016-06-10 15:24:19 nFileVersion = 129900
    122016-06-10 15:24:19 Keys: 101 plaintext, 0 encrypted, 101 w/ metadata, 101 total
    132016-06-10 15:24:20  wallet                  742ms
    142016-06-10 15:24:20 Unsetting NODE_NETWORK on prune mode
    152016-06-10 15:24:20 init message: Pruning blockstore...
    162016-06-10 15:24:20 mapBlockIndex.size() = 415682
    172016-06-10 15:24:20 nBestHeight = 414857
    182016-06-10 15:24:20 setKeyPool.size() = 100
    192016-06-10 15:24:20 mapWallet.size() = 0
    202016-06-10 15:24:20 mapAddressBook.size() = 1
    212016-06-10 15:24:20 init message: Loading addresses...
    222016-06-10 15:24:20 torcontrol thread start
    232016-06-10 15:24:21 Loaded 57944 addresses from peers.dat  1023ms
    242016-06-10 15:24:21 init message: Loading banlist...
    252016-06-10 15:24:21 dnsseed thread start
    262016-06-10 15:24:21 net thread start
    272016-06-10 15:24:21 msghand thread start
    282016-06-10 15:24:21 opencon thread start
    292016-06-10 15:24:21 addcon thread start
    302016-06-10 15:24:21 init message: Done loading
    
  11. sipa commented at 2:12 pm on June 11, 2016: member
    Concept ACK
  12. laanwj commented at 5:55 am on June 13, 2016: member
    odroid64 testnet node synced to height 869998 over the weekend. All seems to work fine. No apparent difference in behavior or performance from natively-built.
  13. laanwj merged this on Jun 13, 2016
  14. laanwj closed this on Jun 13, 2016

  15. laanwj referenced this in commit 65a9d7dcdc on Jun 13, 2016
  16. laanwj referenced this in commit b7bf037121 on Jun 21, 2016
  17. codablock referenced this in commit 1612f303d4 on Sep 16, 2017
  18. codablock referenced this in commit 09d3bd3375 on Sep 19, 2017
  19. schinzelh referenced this in commit 4735eda91a on Oct 19, 2017
  20. schinzelh referenced this in commit 72c6f984c3 on Oct 19, 2017
  21. codablock referenced this in commit 06a73ad7c4 on Dec 22, 2017
  22. andvgal referenced this in commit d4edcdbff9 on Jan 6, 2019
  23. hebasto referenced this in commit 18a408436d on Jul 29, 2020
  24. hebasto referenced this in commit d3fe00d90d on Jul 29, 2020
  25. hebasto referenced this in commit 95051682be on Jul 31, 2020
  26. fanquake referenced this in commit f306384f5a on Aug 10, 2020
  27. sidhujag referenced this in commit 3b86ff3945 on Aug 10, 2020
  28. MarcoFalke locked this on Sep 8, 2021

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2024-12-18 21:12 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me