Skip to content

Assumes G++ binary is g++-10 #16

@owainkenwayucl

Description

@owainkenwayucl

Currently build.jl assumes that the C++ compiler is g++-10 by default if CXX is not set. This of course breaks on systems which don't have a g++-10, e.g. on Mandelbrot.

cxx = get(ENV, "CXX", "g++-10")

  [3f19e933] + p7zip_jll v17.4.0+0
    Building IPUToolkit → `~/.julia/scratchspaces/44cfe95a-1eb2-52ea-b672-e2afdf69b78f/096b5ec0dcdf1f621bdc8196869fb21ee736377b/build.log`
ERROR: Error building `IPUToolkit`: 
ERROR: LoadError: IOError: could not spawn `g++-10 -x c++ -E -Wp,-v - -fsyntax-only`: no such file or directory (ENOENT)
Stacktrace:
  [1] _spawn_primitive(file::String, cmd::Cmd, stdio::Vector{Union{RawFD, IO}})
    @ Base ./process.jl:128
  [2] (::Base.var"#784#785"{Cmd})(stdios::Vector{Union{RawFD, IO}})
    @ Base ./process.jl:139 [inlined]
  [3] setup_stdios(f::Base.var"#784#785"{Cmd}, stdios::Vector{Union{RawFD, IO}})
    @ Base ./process.jl:223
  [4] _spawn(cmd::Cmd, stdios::Vector{Union{RawFD, IO}})
    @ Base ./process.jl:138 [inlined]
  [5] _spawn(::Base.CmdRedirect, ::Vector{Union{RawFD, IO}}) (repeats 2 times)
    @ Base ./process.jl:166
  [6] open(cmds::Base.CmdRedirect, stdio::Base.DevNull; write::Bool, read::Bool)
    @ Base ./process.jl:393
  [7] open(cmds::Base.AbstractCmd, stdio::Union{RawFD, Base.FileRedirect, IO})
    @ Base ./process.jl:383 [inlined]
  [8] open(cmds::Base.CmdRedirect, mode::String, stdio::Base.DevNull)
    @ Base ./process.jl:364
  [9] read(cmd::Base.CmdRedirect)
    @ Base ./process.jl:447
 [10] read
    @ Base ./process.jl:458 [inlined]
 [11] readchomp(x::Base.CmdRedirect)
    @ Base ./io.jl:974 [inlined]
 [12] get_system_includes()
    @ Main ~/.julia/packages/IPUToolkit/xzppr/deps/build.jl:39
 [13] gen_bindings(headers::Vector{String}, blacklist::Vector{String})
    @ Main ~/.julia/packages/IPUToolkit/xzppr/deps/build.jl:589
 [14] build_bindings(; path::String, generate_bindings::Bool, compile::Bool)
    @ Main ~/.julia/packages/IPUToolkit/xzppr/deps/build.jl:619
 [15] build_bindings()
    @ Main ~/.julia/packages/IPUToolkit/xzppr/deps/build.jl:617
 [16] top-level scope
    @ ~/.julia/packages/IPUToolkit/xzppr/deps/build.jl:663
 [17] include(fname::String)
    @ Base.MainInclude ./client.jl:489
 [18] top-level scope
    @ none:5
in expression starting at /home/uccaoke/.julia/packages/IPUToolkit/xzppr/deps/build.jl:663

Obviously this can be worked around by setting CXX or by having sym-linked g++-10 in path but it should probably default to a more common thing e.g. just g++.

Metadata

Metadata

Assignees

No one assigned

    Labels

    buildRelated to the build process

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions