[Pkg-julia-devel] Bug#906265: RFH: julia -- ppc64el port of Julia language and LLVM-6.0

Frédéric Bonnard frediz at debian.org
Fri Aug 17 13:12:20 BST 2018


Hi,

On Fri, 17 Aug 2018 02:43:21 +0000, Lumin <cdluminate at gmail.com> wrote:
> Hi Frédéric,
> 
> Thank you very much for your help!
> 
> I've filed the bug for LLVM
> https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=906314
> and had it blocking julia's ppc64el build failure.

oh great, thanks,

> And have requested for a ppc64el vm. Next time I should be able to
> do the ppc64el build by myself :-)

ok. Let me know if you fail to get a vm or anything.

F.

> 
> 
> On Thu, Aug 16, 2018 at 05:37:06PM +0200, Frédéric Bonnard wrote:
> > Hi Mo Zhou,
> > 
> > On Thu, 16 Aug 2018 08:38:04 +0000, Mo Zhou <cdluminate at gmail.com> wrote:
> > > Package: wnpp
> > > Severity: normal
> > > 
> > > I request assistance with maintaining the julia package.
> > > Specifically I need a ppc64el porter (or anyone who has root access to
> > > a ppc64el box) to help me:
> > > 
> > >  1. Apply patch[1] to Debian's llvm-toolchain-6.0 (= 1:6.0.1-4) and build it.
> > 
> > I fetched this https://reviews.llvm.org/D43781
> > 
> > >  2. Install the resulting llvm-6.0-dev (= 1:6.0.1-5).
> > > 
> > >  3. dget julia 0.7.0-2 and build Julia for ppc64el.
> > > 
> > >  4. if (!llvm-ftbfs && !julia-ftbfs) {
> > 
> > I got there : both built fine.
> > I just had to avoid building in a schroot because of this :
> > 
> > ---
> > make[3]: Entering directory '/build/llvm-toolchain-6.0-0CdyF5/julia-0.7.0'
> > Warning: git information unavailable; versioning information limited
> >  cd /build/llvm-toolchain-6.0-0CdyF5/julia-0.7.0/base && if ! /build/llvm-toolchain-6.0-0CdyF5/julia-0.7.0/usr/bin/julia -O3 -C "native" --output-o /build/llvm-toolchain-6.0-0CdyF5/julia-0.7.0/usr/lib/powerpc64le-linux-gnu/julia/sys-o.a.tmp  --startup-file=no --warn-overwrite=yes --sysimage /build/llvm-toolchain-6.0-0CdyF5/julia-0.7.0/usr/lib/powerpc64le-linux-gnu/julia/sys.ji /build/llvm-toolchain-6.0-0CdyF5/julia-0.7.0/contrib/generate_precompile.jl /build/llvm-toolchain-6.0-0CdyF5/julia-0.7.0/usr/lib/powerpc64le-linux-gnu/julia/sys.ji; then echo '*** This error is usually fixed by running `make clean`. If the error persists, try `make cleanall`. ***'; false; fi 
> > Generating precompile statements...ERROR: LoadError: Failed to open PTY master
> > Stacktrace:
> >  [1] error(::String) at ./error.jl:33
> >  [2] open_fake_pty at /build/llvm-toolchain-6.0-0CdyF5/julia-0.7.0/usr/share/julia/test/testhelpers/FakePTYs.jl:14 [inlined]
> >  [3] with_fake_pty(::getfield(Main.anonymous, Symbol("##3#9")){String,Base.GenericIOBuffer{Array{UInt8,1}},Base.GenericIOBuffer{Array{UInt8,1}},String}) at /build/llvm-toolchain-6.0-0CdyF5/julia-0.7.0/usr/share/julia/test/testhelpers/FakePTYs.jl:30
> >  [4] (::getfield(Main.anonymous, Symbol("##2#8")){Float64,Module,String})(::String, ::IOStream) at /build/llvm-toolchain-6.0-0CdyF5/julia-0.7.0/contrib/generate_precompile.jl:81
> >  [5] mktemp(::getfield(Main.anonymous, Symbol("##2#8")){Float64,Module,String}, ::String) at ./file.jl:576
> >  [6] mktemp at ./file.jl:574 [inlined]
> >  [7] generate_precompile_statements() at /build/llvm-toolchain-6.0-0CdyF5/julia-0.7.0/contrib/generate_precompile.jl:78
> >  [8] top-level scope at /build/llvm-toolchain-6.0-0CdyF5/julia-0.7.0/contrib/generate_precompile.jl:144
> > in expression starting at /build/llvm-toolchain-6.0-0CdyF5/julia-0.7.0/contrib/generate_precompile.jl:4
> > ---
> > 
> > which is unrelated to the problem you had but to workaround I built in a
> > fresh ppc64el unstable vm (probably due to bug #817236 and my schroot being too old
> > to be created with the fix)
> > 
> > > 
> > >       1. clone #905807 for llvm-6.0 and remove the +moreinfo tag
> > >       2. pull the experimental branch from
> > >          https://salsa.debian.org/julia-team/julia
> > >          and see if the patched llvm-6.0 is also able to build julia 1.0.0
> > 
> > this one builds fine as well.
> > For now, I won't have time to re-assign the bug on llvm. I'll check that tomorrow.
> > 
> > >     } elif (!llvm-ftbfs && julia-ftbfs) {
> > > 
> > >       1. find out which patch actually fixes julia's build failure
> > >          https://github.com/JuliaLang/julia/blob/master/deps/llvm.mk#L482-L509
> > > 
> > >     } else { ...... }
> > > 
> > > I tried to setup a ppc64el chroot with qemu, and immediately find it
> > > impractical for my laptop.
> > > 
> > > I tried to do it on launchpad (Ubuntu PPA/cosmic), and lauchpad told me
> > > "Sorry, something just went wrong in Launchpad." during registration.
> > > 
> > > I tried to think of applying for the access to debian's ppc64el porterbox
> > > but it appears to be impossible for a normal user to install the resulting
> > > package and build another package. Although maybe I can do some hacks on
> > > PATH and LD_LIBRARY_PATH but that's dirty.
> > 
> > Yes, that's a security related limitation of porter boxes which
> > sometimes makes them unhelpful sadly.
> > 
> > FYI, you may request a ppc64el vm there :
> > http://openpower.ic.unicamp.br/minicloud/
> > 
> > > So I gave up and wrote this RFH. That begin said, Julia's ppc64el port
> > > is indeed supported by upstream, and it is worthwhile to keep Julia for
> > > ppc64el such a powerful architecture.
> > > 
> > > Thanks in advance.
> > 
> > Thanks a bunch for this work :)
> > 
> > F.
> > 
> > > 
> > > [1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=905807
> > > 
> > > Appendix
> > > --------
> > > 
> > > The package description is:
> > >  Julia is a high-level, high-performance dynamic programming language for
> > >  technical computing, with syntax that is familiar to users of other technical
> > >  computing environments. It provides a sophisticated compiler, distributed
> > >  parallel execution, numerical accuracy, and an extensive mathematical function
> > >  library. The library, mostly written in Julia itself, also integrates mature,
> > >  best-of-breed C and Fortran libraries for linear algebra, random number
> > >  generation, FFTs, and string processing. Julia programs are organized around
> > >  defining functions, and overloading them for different combinations of
> > >  argument types (which can also be user-defined).
> > >  .
> > >  This package provides a complete Julia installation (JIT compiler, standard
> > >  library, text-based user interface).
> > >  Julia is a high-level, high-performance dynamic programming language for
> > >  technical computing, with syntax that is familiar to users of other technical
> > >  computing environments. It provides a sophisticated compiler, distributed
> > >  parallel execution, numerical accuracy, and an extensive mathematical function
> > >  library. The library, mostly written in Julia itself, also integrates mature,
> > >  best-of-breed C and Fortran libraries for linear algebra, random number
> > >  generation, FFTs, and string processing. Julia programs are organized around
> > >  defining functions, and overloading them for different combinations of
> > >  argument types (which can also be user-defined).
> > >  .
> > >  This package provides a complete Julia installation (JIT compiler, standard
> > >  library, text-based user interface).
> > > 
> 
> 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://alioth-lists.debian.net/pipermail/pkg-julia-devel/attachments/20180817/9903ce6f/attachment.sig>


More information about the Pkg-julia-devel mailing list