Skip to content

JLL-style LibSuiteSparse headers are incompatible with new platforms  #445

@maleadt

Description

@maleadt

During bringup of Julia on a non BB-supported platform, i.e., compiling Julia with USE_BINARYBUILDER := 0, I ran into the fact that SparseArrays.jl's LibSuiteSparse.jl behaves pretty much like a JLL, in that it only supports a fixed set of platforms:

elseif Sys.isbsd() && !Sys.isapple()
include("lib/x86_64-unknown-freebsd.jl")
elseif Sys.iswindows() && Sys.ARCH === :x86_64
include("lib/x86_64-w64-mingw32.jl")
else
error("Unknown platform: $(Base.BUILD_TRIPLET)")
end

This seems needlessly complicated, especially because the headers are in fact identical:

❯ md5sum *
7de9f4584578f167cc12bf5000883b8c  aarch64-apple-darwin20.jl
7de9f4584578f167cc12bf5000883b8c  aarch64-linux-gnu.jl
7de9f4584578f167cc12bf5000883b8c  aarch64-linux-musl.jl
7de9f4584578f167cc12bf5000883b8c  armv7l-linux-gnueabihf.jl
7de9f4584578f167cc12bf5000883b8c  armv7l-linux-musleabihf.jl
7de9f4584578f167cc12bf5000883b8c  i686-linux-gnu.jl
7de9f4584578f167cc12bf5000883b8c  i686-linux-musl.jl
7de9f4584578f167cc12bf5000883b8c  i686-w64-mingw32.jl
7de9f4584578f167cc12bf5000883b8c  powerpc64le-linux-gnu.jl
7de9f4584578f167cc12bf5000883b8c  x86_64-apple-darwin14.jl
7de9f4584578f167cc12bf5000883b8c  x86_64-linux-gnu.jl
7de9f4584578f167cc12bf5000883b8c  x86_64-linux-musl.jl
7de9f4584578f167cc12bf5000883b8c  x86_64-unknown-freebsd.jl
7de9f4584578f167cc12bf5000883b8c  x86_64-w64-mingw32.jl

As we still support building Julia without BB support (and we probably always will), can we get rid of this complexity and move to a single libsuitesparse.jl header? Or am I missing anything?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions