Skip to content

Bootstrap failure on ARMv7 #10602

Closed
Closed
@nalimilan

Description

When trying to build a nightly RPM on Fedora 22 armv7hl, I get failures during the bootstrap step. Depending on the value of JULIA_TARGET_CPU I use, the error is different:

  • With native (JULIA_TARGET_CPU not passed):
osutils.jl
error during bootstrap:
LoadError(at "sysimg.jl" line 82: LoadError(at "osutils.jl" line 38: BoundsError(a=Array{Any, 1}[(), ()], i=(0,))))
Makefile:168: recipe for target '/builddir/build/BUILD/julia/build/usr/lib/julia/sys0.o' failed

https://kojipkgs.fedoraproject.org//work/tasks/26/9290026/build.log

  • With cortex-a8:
osutils.jl
error during bootstrap:
LoadError(at "sysimg.jl" line 82: LoadError(at "osutils.jl" line 38: Base.TypeError(func=:getfield, context="", expected=DataType, got=<?::false>)))
signal (11): Segmentation fault
/bin/sh: line 1:  7563 Segmentation fault      (core dumped) /builddir/build/BUILD/julia/build/usr/bin/julia -C cortex-a8 --build /builddir/build/BUILD/julia/build/usr/lib/julia/sys0 sysimg.jl
Makefile:168: recipe for target '/builddir/build/BUILD/julia/build/usr/lib/julia/sys0.o' failed

https://kojipkgs.fedoraproject.org//work/tasks/1460/9291460/build.log

I'm not familiar with ARM at all, so I'm not sure which one is the more reasonable (maybe none). Note that I'm using USE_SYSTEM_LLVM=1, which is LLVM 3.5. A difficulty is that gcc, which is used in the build, uses -march=armv7-a on Fedora armv7hl, but LLVM does not accept this as a target. This is why I tried JULIA_CPU_TARGET=cortex-a8. Fedora's LLVM is built using these settings:

  --with-cpu=cortex-a8 \
  --with-tune=cortex-a8 \
  --with-arch=armv7-a \
  --with-float=hard \
  --with-fpu=vfpv3-d16 \
  --with-abi=aapcs-vfp

http://pkgs.fedoraproject.org/cgit/llvm.git/tree/llvm.spec?h=f22&id=5aea06bdf020fd2fc750286d397e51e01a94a765#n404

I see that ARM.inc advises --with-cpu=cortex-a9 --with-fpu=neon instead. Do you think that can be an issue?

BTW, note JCFLAGS includes -fsigned-char.

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions