Skip to content

Conversation

@ararslan
Copy link
Member

List of changes: libunwind/libunwind#698

@ararslan ararslan added the julia 💜 ❤️ 💚 Builders and issues related to Julia and its dependencies label Jan 16, 2024
@giordano
Copy link
Member

https://buildkite.com/julialang/yggdrasil/builds/7797#018d136e-5e99-499b-a460-7d62227df9f9/620-2148

[18:01:19] aarch64/Gos-linux.c: In function ‘_Uaarch64_local_resume’:
[18:01:19] aarch64/Gos-linux.c:147:1: error: x29 cannot be used in asm here
[18:01:19]  }
[18:01:19]  ^
[18:01:19] aarch64/Gos-linux.c:41:7: error: ‘asm’ operand has impossible constraints
[18:01:19]        __asm__ __volatile__ (
[18:01:19]        ^

May need a newer gcc to compile this asm, I've seen similar assembler error before on aaarch64

@ararslan
Copy link
Member Author

@giordano, any idea what version of GCC might be needed? Some googling suggests that this x29 register message used to occur on Linux AArch64 when building TensorFlow but was fixed by building with -fomit-frame-pointer. 🤔

Seems people building TensorFlow on Linux AArch64 hit the same inline
assembly issue we're seeing here and this (plus
`-flax-vector-conversion`) seems to fix it for them. This flag seems sus
for libunwind but worth a try.
ararslan and others added 2 commits April 18, 2024 15:58
Co-authored-by: Mosè Giordano <[email protected]>
@ararslan
Copy link
Member Author

Ah, this is apparently a known issue: libunwind/libunwind#742

ararslan added 2 commits June 11, 2024 09:21
Should hopefully fix the inline assembly issue on AArch64?
12 seems excessive; 1.7.2 uses 5, let's try that
@ararslan
Copy link
Member Author

ararslan commented Jun 11, 2024

I've included libunwind/libunwind#748 as a patch, which fixes building on Linux AArch64. An alternative approach would have been to include a patch that reverts libunwind/libunwind#503, which is the approach that the .NET runtime took when upgrading to libunwind 1.8.0 (dotnet/runtime#96969). Evidently Xamarin has their own fix that differs from the what's implemented in the patch I've included: dotnet/android#8857.

@ararslan ararslan requested a review from giordano June 11, 2024 17:01
@ararslan ararslan changed the title [libunwind] Add v1.8.0 [libunwind] Add v1.8.1 Jun 12, 2024
@giordano giordano enabled auto-merge (squash) June 13, 2024 17:55
@giordano giordano merged commit 1517796 into master Jun 13, 2024
@giordano giordano deleted the aa/libunwind-1.8.0 branch June 13, 2024 17:55
amontoison pushed a commit that referenced this pull request Jun 22, 2024
* [libunwind] Add v1.8.0

* [libunwind 1.8.0] Amend patch

* [libunwind 1.8.0] Set preferred GCC version to 6

* [libunwind 1.8.0] idk, how about gcc 12

* [libunwind] 1.8.0 -> 1.8.1

* [[email protected]] Try `-fomit-frame-pointer` on Linux AArch64

Seems people building TensorFlow on Linux AArch64 hit the same inline
assembly issue we're seeing here and this (plus
`-flax-vector-conversion`) seems to fix it for them. This flag seems sus
for libunwind but worth a try.

* Thank you, Mosè

Co-authored-by: Mosè Giordano <[email protected]>

* [[email protected]] rm `-fomit-frame-pointer`, prefer GCC 12

Also add line breaks for long line

* [[email protected]] Include patch for PR 748

Should hopefully fix the inline assembly issue on AArch64?

* [[email protected]] Try re-lowering the preferred GCC version

12 seems excessive; 1.7.2 uses 5, let's try that

* Update L/LibUnwind/[email protected]/build_tarballs.jl

* Revert "Update L/LibUnwind/[email protected]/build_tarballs.jl"

This reverts commit c37f8f9.

---------

Co-authored-by: Mosè Giordano <[email protected]>
Co-authored-by: Mosè Giordano <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

julia 💜 ❤️ 💚 Builders and issues related to Julia and its dependencies

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants