llvm / llvm-project

The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
http://llvm.org
Other
27.82k stars 11.46k forks source link

Faild to build latest edk2 aarch64 target after llvm 9 #44983

Open llvmbot opened 4 years ago

llvmbot commented 4 years ago
Bugzilla Link 45638
Version unspecified
OS Linux
Reporter LLVM Bugzilla Contributor
CC @zygoloid

Extended Description

LLVM ERROR: Cannot select: 0xd4b1cb0: v8i16 = insert_vector_elt 0xcf47590, 0xcf47db0, Constant:i64<0>, edk2/CryptoPkg/Library/OpensslLib/rand_pool.c:101:1 @[ edk2/CryptoPkg/Library/OpensslLib/rand_pool.c:148:11 @[ edk2/CryptoPkg/Library/OpensslLib/rand_pool.c:0 @[ edk2/CryptoPkg/Library/OpensslLib/rand_pool.c:241:13 @[ edk2/CryptoPkg/Library/OpensslLib/openssl/crypto/rand/rand_lib.c:198:29 ] ] ] ] 0xcf47590: v8i16 = insert_subvector undef:v8i16, 0xcf473f0, Constant:i32<0>, edk2/CryptoPkg/Library/OpensslLib/rand_pool.c:101:1 @[ edk2/CryptoPkg/Library/OpensslLib/rand_pool.c:148:11 @[ edk2/CryptoPkg/Library/OpensslLib/rand_pool.c:0 @[ edk2/CryptoPkg/Library/OpensslLib/rand_pool.c:241:13 @[ edk2/CryptoPkg/Library/OpensslLib/openssl/crypto/rand/rand_lib.c:198:29 ] ] ] ] 0xde9f3f0: v8i16 = undef 0xcf473f0: v4i16 = AArch64ISD::NVCAST 0xcf47458, edk2/CryptoPkg/Library/OpensslLib/rand_pool.c:101:1 @[ edk2/CryptoPkg/Library/OpensslLib/rand_pool.c:148:11 @[ edk2/CryptoPkg/Library/OpensslLib/rand_pool.c:0 @[ edk2/CryptoPkg/Library/OpensslLib/rand_pool.c:241:13 @[ edk2/CryptoPkg/Library/OpensslLib/openssl/crypto/rand/rand_lib.c:198:29 ] ] ] ] 0xcf47458: f64 = AArch64ISD::MOVIedit Constant:i32<0>, edk2/CryptoPkg/Library/OpensslLib/rand_pool.c:101:1 @[ edk2/CryptoPkg/Library/OpensslLib/rand_pool.c:148:11 @[ edk2/CryptoPkg/Library/OpensslLib/rand_pool.c:0 @[ edk2/CryptoPkg/Library/OpensslLib/rand_pool.c:241:13 @[ edk2/CryptoPkg/Library/OpensslLib/openssl/crypto/rand/rand_lib.c:198:29 ] ] ] ] 0xcf474c0: i32 = Constant<0> 0xcf474c0: i32 = Constant<0> 0xcf47db0: i16 = and 0xd4b1838, Constant:i16<255>, edk2/CryptoPkg/Library/OpensslLib/rand_pool.c:101:1 @[ edk2/CryptoPkg/Library/OpensslLib/rand_pool.c:148:11 @[ edk2/CryptoPkg/Library/OpensslLib/rand_pool.c:0 @[ edk2/CryptoPkg/Library/OpensslLib/rand_pool.c:241:13 @[ edk2/CryptoPkg/Library/OpensslLib/openssl/crypto/rand/rand_lib.c:198:29 ] ] ] ] 0xd4b1838: i16 = truncate 0xcf22170, edk2/CryptoPkg/Library/OpensslLib/rand_pool.c:101:1 @[ edk2/CryptoPkg/Library/OpensslLib/rand_pool.c:148:11 @[ edk2/CryptoPkg/Library/OpensslLib/rand_pool.c:0 @[ edk2/CryptoPkg/Library/OpensslLib/rand_pool.c:241:13 @[ edk2/CryptoPkg/Library/OpensslLib/openssl/crypto/rand/rand_lib.c:198:29 ] ] ] ] 0xcf22170: i64,ch,glue = CopyFromReg 0xcf215a8, Register:i64 $x0, 0xcf215a8:1, edk2/CryptoPkg/Library/OpensslLib/rand_pool.c:44:26 @[ edk2/CryptoPkg/Library/OpensslLib/rand_pool.c:85:13 @[ edk2/CryptoPkg/Library/OpensslLib/rand_pool.c:148:11 @[ edk2/CryptoPkg/Library/OpensslLib/rand_pool.c:0 @[ edk2/CryptoPkg/Library/OpensslLib/rand_pool.c:241:13 @[ edk2/CryptoPkg/Library/OpensslLib/openssl/crypto/rand/rand_lib.c:198:29 ] ] ] ] ] 0xcf21dc8: i64 = Register $x0 0xcf215a8: ch,glue = callseq_end 0xd4b1490, TargetConstant:i64<0>, TargetConstant:i64<0>, 0xd4b1490:1, edk2/CryptoPkg/Library/OpensslLib/rand_pool.c:44:26 @[ edk2/CryptoPkg/Library/OpensslLib/rand_pool.c:85:13 @[ edk2/CryptoPkg/Library/OpensslLib/rand_pool.c:148:11 @[ edk2/CryptoPkg/Library/OpensslLib/rand_pool.c:0 @[ edk2/CryptoPkg/Library/OpensslLib/rand_pool.c:241:13 @[ edk2/CryptoPkg/Library/OpensslLib/openssl/crypto/rand/rand_lib.c:198:29 ] ] ] ] ] 0xcf47e18: i64 = TargetConstant<0> 0xcf47e18: i64 = TargetConstant<0> 0xd4b1490: ch,glue = AArch64ISD::CALL 0xcf46fe0, TargetGlobalAddress:i64<i64 () @​GetPerformanceCounter> 0, RegisterMask:Untyped, edk2/CryptoPkg/Library/OpensslLib/rand_pool.c:44:26 @[ edk2/CryptoPkg/Library/OpensslLib/rand_pool.c:85:13 @[ edk2/CryptoPkg/Library/OpensslLib/rand_pool.c:148:11 @[ edk2/CryptoPkg/Library/OpensslLib/rand_pool.c:0 @[ edk2/CryptoPkg/Library/OpensslLib/rand_pool.c:241:13 @[ edk2/CryptoPkg/Library/OpensslLib/openssl/crypto/rand/rand_lib.c:198:29 ] ] ] ] ] 0xcf224b0: i64 = TargetGlobalAddress<i64 () @​GetPerformanceCounter> 0, edk2/CryptoPkg/Library/OpensslLib/rand_pool.c:44:26 @[ edk2/CryptoPkg/Library/OpensslLib/rand_pool.c:85:13 @[ edk2/CryptoPkg/Library/OpensslLib/rand_pool.c:148:11 @[ edk2/CryptoPkg/Library/OpensslLib/rand_pool.c:0 @[ edk2/CryptoPkg/Library/OpensslLib/rand_pool.c:241:13 @[ edk2/CryptoPkg/Library/OpensslLib/openssl/crypto/rand/rand_lib.c:198:29 ] ] ] ] ] 0xd4b1e50: Untyped = RegisterMask 0xde9fa08: i16 = Constant<255> 0xcf479a0: i64 = Constant<0> In function: rand_drbg_get_entropy clang-10: error: linker command failed with exit code 1 (use -v to see invocation)

clang-8 can build successful,both clang-9 and clang-10 build failed. I did not test other version.

llvmbot commented 4 years ago

By default edk2 use -O3 build release and -O1 build debug, the debug build will build success. I have change -O3 to -O2 for release build, then build success too.