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

Libunwind compilation error on ARM #13270

Closed
LTGZZ opened this issue Sep 22, 2015 · 15 comments
Closed

Libunwind compilation error on ARM #13270

LTGZZ opened this issue Sep 22, 2015 · 15 comments
Labels
building Build system, or building Julia or its dependencies system:arm ARMv7 and AArch64 upstream The issue is with an upstream dependency, e.g. LLVM

Comments

@LTGZZ
Copy link

LTGZZ commented Sep 22, 2015

Slackware ARM -current, soft-float.

../src/.libs/libunwind-arm.so: undefined reference to AO_fetch_and_add' ../src/.libs/libunwind-arm.so: undefined reference toAO_fetch_and_add1'
collect2: error: ld returned 1 exit status
make[1]: *** [Gperf-simple] Error 1
make[1]: Leaving directory `/tmp/SBo/libunwind-1.1/tests'

Have the same error with julia's libunwind.

My Make.user:

override USE_SYSTEM_LAPACK=1
override USE_SYSTEM_BLAS=1
override USE_SYSTEM_LIBGIT2=1
override USE_SYSTEM_LLVM=1
override USE_SYSTEM_FFTW=1
override USE_SYSTEM_GMP=1
override USE_SYSTEM_MPFR=1
@pao pao added building Build system, or building Julia or its dependencies system:arm ARMv7 and AArch64 labels Sep 22, 2015
@pao
Copy link
Member

pao commented Sep 22, 2015

(identical to #13268)

@LTGZZ
Copy link
Author

LTGZZ commented Sep 22, 2015

Yup, I'm sorry it was closed, I don't know why.

@pao
Copy link
Member

pao commented Sep 22, 2015

You may have accidentally hit the "Close and comment" button rather than the "Comment" button. Happens all the time because they're right next to one another. You are welcome to reopen when that happens, but this is fine. Thanks.

@vtjnash vtjnash added the upstream The issue is with an upstream dependency, e.g. LLVM label Sep 22, 2015
@vtjnash
Copy link
Member

vtjnash commented Sep 22, 2015

use the system libunwind, the upstream project hasn't yet made a release that supports ARM

@LTGZZ
Copy link
Author

LTGZZ commented Sep 23, 2015

I've tried the latest release and also the upstream git version of libunwind, I have the exact same problem.

@LTGZZ
Copy link
Author

LTGZZ commented Sep 23, 2015

I took a look at Debian patches, but no one seemed to address the issue.
I wonder how they succeeded to compile it because I also tried under Debian and it failed...

@yuyichao
Copy link
Contributor

Have you tried to use the system libunwind? (Or does the distribution you use not have a libunwind package?) Looking at the libunwind source, you could probably try to run make VERBOSE=1 to see what command libunwind uses for linking and add -latomic_ops in your LDFLAGS to see if it's just missing a library to link (and make sure you have the corresponding package installed.)

Also, I don't think ARM with soft-float is a supported target.

@yuyichao
Copy link
Contributor

@tkelman
Copy link
Contributor

tkelman commented Jan 31, 2016

I was fixing up libunwind's build system today and sending them patches, so if there's a good configure probe for this we can probably fix it in a less-hacky way.

@yuyichao
Copy link
Contributor

I believe libunwind already have platform detection code so it's just a matter of adding the right flags.

@tkelman
Copy link
Contributor

tkelman commented Jan 31, 2016

Is there some output during configure on arm that says something to the effect of "checking for atomics library: -latomic_ops" ?

@yuyichao
Copy link
Contributor

In particular, it seems that it's a matter of uncommenting this

@yuyichao
Copy link
Contributor

And from the archlinuxarm log, it seems that this is only needed with armv5, which actually has the vfp2 instruction set we require as an optional extension.

@ViralBShah
Copy link
Member

Is this still a problem?

@yuyichao
Copy link
Contributor

yuyichao commented May 1, 2016

This is an upstream problem and I don't think it's fixed.

yuyichao added a commit that referenced this issue Aug 18, 2016
* Allow `cpu_target` to specify a generic arch, matching the behavior on x86
* Detect the CPU arch version with `uname`
* Require armv6

    Close #13270 (ARMv5 is not supported)
    Fix #18042

* Remove warning about generic arch since it's not really useful

    Fix #17549

* Require at least the same ARM arch version the C code is compiled with
yuyichao added a commit that referenced this issue Aug 18, 2016
* Allow `cpu_target` to specify a generic arch, matching the behavior on x86
* Detect the CPU arch version with `uname`
* Require armv6

    Close #13270 (ARMv5 is not supported)
    Fix #18042

* Remove warning about generic arch since it's not really useful

    Fix #17549

* Require at least the same ARM arch version the C code is compiled with
yuyichao added a commit that referenced this issue Aug 18, 2016
* Allow `cpu_target` to specify a generic arch, matching the behavior on x86
* Detect the CPU arch version with `uname`
* Require `armv6`

    Close #13270 (`armv5` is not supported)
    Fix #18042

* Remove warning about generic arch since it's not really useful

    Fix #17549

* Require at least the same ARM arch version the C code is compiled with
yuyichao added a commit that referenced this issue Aug 18, 2016
* Allow `cpu_target` to specify a generic arch, matching the behavior on x86
* Detect the CPU arch version with `uname`
* Require `armv6`

    Close #13270 (`armv5` is not supported)
    Fix #18042

* Remove warning about generic arch since it's not really useful

    Fix #17549

* Require at least the same ARM arch version the C code is compiled with
yuyichao added a commit that referenced this issue Aug 18, 2016
* Allow `cpu_target` to specify a generic arch, matching the behavior on x86
* Detect the CPU arch version with `uname`
* Require `armv6`

    Close #13270 (`armv5` is not supported)
    Fix #18042

* Remove warning about generic arch since it's not really useful

    Fix #17549

* Require at least the same ARM arch version the C code is compiled with
yuyichao added a commit that referenced this issue Aug 18, 2016
* Allow `cpu_target` to specify a generic arch, matching the behavior on x86
* Detect the CPU arch version with `uname`
* Require `armv6`

    Close #13270 (`armv5` is not supported)
    Fix #18042

* Remove warning about generic arch since it's not really useful

    Fix #17549

* Require at least the same ARM arch version and profile the C code is compiled with
yuyichao added a commit that referenced this issue Aug 18, 2016
* Allow `cpu_target` to specify a generic arch, matching the behavior on x86
* Detect the CPU arch version with `uname`
* Require `armv6`

    Close #13270 (`armv5` is not supported)
    Fix #18042

* Remove warning about generic arch since it's not really useful

    Fix #17549

* Require at least the same ARM arch version and profile the C code is compiled with
yuyichao added a commit that referenced this issue Aug 18, 2016
* Allow `cpu_target` to specify a generic arch, matching the behavior on x86
* Detect the CPU arch version with `uname`
* Require `armv6`

    Close #13270 (`armv5` is not supported)
    Fix #18042

* Remove warning about generic arch since it's not really useful

    Fix #17549

* Require at least the same ARM arch version and profile the C code is compiled with
tkelman pushed a commit that referenced this issue Aug 20, 2016
* Allow `cpu_target` to specify a generic arch, matching the behavior on x86
* Detect the CPU arch version with `uname`
* Require `armv6`

    Close #13270 (`armv5` is not supported)
    Fix #18042

* Remove warning about generic arch since it's not really useful

    Fix #17549

* Require at least the same ARM arch version and profile the C code is compiled with

(cherry picked from commit 760bc41)
ref #18100
mfasi pushed a commit to mfasi/julia that referenced this issue Sep 5, 2016
* Allow `cpu_target` to specify a generic arch, matching the behavior on x86
* Detect the CPU arch version with `uname`
* Require `armv6`

    Close JuliaLang#13270 (`armv5` is not supported)
    Fix JuliaLang#18042

* Remove warning about generic arch since it's not really useful

    Fix JuliaLang#17549

* Require at least the same ARM arch version and profile the C code is compiled with
staticfloat pushed a commit that referenced this issue May 5, 2017
* Allow `cpu_target` to specify a generic arch, matching the behavior on x86
* Detect the CPU arch version with `uname`
* Require `armv6`

    Close #13270 (`armv5` is not supported)
    Fix #18042

* Remove warning about generic arch since it's not really useful

    Fix #17549

* Require at least the same ARM arch version and profile the C code is compiled with
staticfloat pushed a commit that referenced this issue May 5, 2017
* Allow `cpu_target` to specify a generic arch, matching the behavior on x86
* Detect the CPU arch version with `uname`
* Require `armv6`

    Close #13270 (`armv5` is not supported)
    Fix #18042

* Remove warning about generic arch since it's not really useful

    Fix #17549

* Require at least the same ARM arch version and profile the C code is compiled with

(cherry picked from commit d9f5334)
staticfloat pushed a commit that referenced this issue May 5, 2017
* Allow `cpu_target` to specify a generic arch, matching the behavior on x86
* Detect the CPU arch version with `uname`
* Require `armv6`

    Close #13270 (`armv5` is not supported)
    Fix #18042

* Remove warning about generic arch since it's not really useful

    Fix #17549

* Require at least the same ARM arch version and profile the C code is compiled with

(cherry picked from commit d9f5334 from PR #18100)
staticfloat pushed a commit that referenced this issue May 5, 2017
* Allow `cpu_target` to specify a generic arch, matching the behavior on x86
* Detect the CPU arch version with `uname`
* Require `armv6`

    Close #13270 (`armv5` is not supported)
    Fix #18042

* Remove warning about generic arch since it's not really useful

    Fix #17549

* Require at least the same ARM arch version and profile the C code is compiled with

(cherry picked from commit 760bc41 and PR #18100)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
building Build system, or building Julia or its dependencies system:arm ARMv7 and AArch64 upstream The issue is with an upstream dependency, e.g. LLVM
Projects
None yet
Development

No branches or pull requests

6 participants