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

Add compile options for Aarch64 #1662

Merged
merged 6 commits into from Jan 30, 2019

Conversation

Projects
2 participants
@SergiySW
Copy link
Collaborator

commented Jan 29, 2019

No description provided.

@SergiySW SergiySW added the bug label Jan 29, 2019

@SergiySW SergiySW added this to the V18.0 milestone Jan 29, 2019

@SergiySW SergiySW self-assigned this Jan 29, 2019

@SergiySW SergiySW requested a review from icarusglider Jan 29, 2019

@SergiySW SergiySW added this to During RC in V18 Jan 29, 2019

@icarusglider

This comment has been minimized.

Copy link
Contributor

commented Jan 29, 2019

Gets past inlining errors, but fails at linking:

[100%] Linking CXX executable ../../nano_node
../../libcryptopp.a(gf2n.cpp.o): In function `CryptoPP::GF2NT233::Multiply(CryptoPP::PolynomialMod2 const&, CryptoPP::PolynomialMod2 const&) const':
gf2n.cpp:(.text+0x1304): undefined reference to `CryptoPP::GF2NT_233_Multiply_Reduce_ARMv8(unsigned int const*, unsigned int const*, unsigned int*)'
../../libcryptopp.a(gf2n.cpp.o): In function `CryptoPP::GF2NT233::Square(CryptoPP::PolynomialMod2 const&) const':
gf2n.cpp:(.text+0x5a9c): undefined reference to `CryptoPP::GF2NT_233_Square_Reduce_ARMv8(unsigned int const*, unsigned int*)'
../../libcryptopp.a(cpu.cpp.o): In function `CryptoPP::DetectArmFeatures()':
cpu.cpp:(.text+0x158): undefined reference to `CryptoPP::CPU_ProbeNEON()'
cpu.cpp:(.text+0x17c): undefined reference to `CryptoPP::CPU_ProbeCRC32()'
cpu.cpp:(.text+0x1a0): undefined reference to `CryptoPP::CPU_ProbePMULL()'
collect2: error: ld returned 1 exit status
make[3]: *** [nano_node] Error 1
make[2]: *** [nano/nano_node/CMakeFiles/nano_node.dir/all] Error 2
make[1]: *** [nano/nano_node/CMakeFiles/nano_node.dir/rule] Error 2
make: *** [nano_node] Error 2

Was already testing a variant of this on my own, had to also add add_definitions(-DCRYPTOPP_DISABLE_ASM) per the developer's instructions. Verifying it works when added to your branch.

@icarusglider

This comment has been minimized.

Copy link
Contributor

commented Jan 29, 2019

Compilation works with

        elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64")
                add_compile_options(-march=armv8-a+crypto)
                add_definitions(-DCRYPTOPP_DISABLE_ASM)
@icarusglider

This comment has been minimized.

Copy link
Contributor

commented Jan 29, 2019

Confirmed, even with latest update, add_definitions(-DCRYPTOPP_DISABLE_ASM) is required for linking to succeed.

SergiySW added some commits Jan 29, 2019

@icarusglider
Copy link
Contributor

left a comment

Tested on Rock64 and AWS A1 instanced with and without SIMD.

@SergiySW SergiySW merged commit 5372971 into nanocurrency:master Jan 30, 2019

2 checks passed

continuous-integration/appveyor/pr AppVeyor build succeeded
Details
continuous-integration/travis-ci/pr The Travis CI build passed
Details

@zhyatt zhyatt moved this from RC2 to CP 3/RC 1 (2018-02-01) in V18 Feb 18, 2019

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.