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

Building documentation fails with USE_BINARYBUILDER=0 #50701

Closed
ararslan opened this issue Jul 28, 2023 · 4 comments
Closed

Building documentation fails with USE_BINARYBUILDER=0 #50701

ararslan opened this issue Jul 28, 2023 · 4 comments
Assignees
Labels
building Build system, or building Julia or its dependencies external dependencies Involves LLVM, OpenBLAS, or other linked libraries regression Regression in behavior compared to a previous version
Milestone

Comments

@ararslan
Copy link
Member

We don't have full source distribution tarballs for 1.10.0-beta1 because the following error occurs when building the documentation:

Building HTML documentation.
  Installing known registries into `~/test/julia/doc/deps`
┌ Warning: The active manifest file has dependencies that were resolved with a different julia version (1.9.0-DEV). Unexpected behavior may occur.
└ @ ~/test/julia/doc/Manifest.toml:0
   Installed IOCapture ─────────── v0.2.2
   Installed ANSIColoredPrinters ─ v0.0.1
   Installed Parsers ───────────── v2.4.0
   Installed DocStringExtensions ─ v0.9.1
   Installed JSON ──────────────── v0.21.3
   Installed Documenter ────────── v0.27.23
Precompiling project...
  7 dependencies successfully precompiled in 7 seconds
  1 dependency had warnings during precompilation:
┌ Parsers [69de0a69-1ddd-5017-9359-2bf0b02dc9f0]
│  WARNING: method definition for dpeekbyte at /home/ararslan/test/julia/doc/deps/packages/Parsers/34hDN/src/utils.jl:199 declares type variable T but does not use it.
└
ERROR: LoadError: InitError: could not load library "libamd.so.3"
libsuitesparseconfig.so.7: cannot open shared object file: No such file or directory
Stacktrace:
  [1] dlopen(s::String, flags::UInt32; throw_error::Bool)
    @ Base.Libc.Libdl ./libdl.jl:117
  [2] dlopen
    @ Base.Libc.Libdl ./libdl.jl:116 [inlined]
  [3] dlopen(s::String)
    @ Base.Libc.Libdl ./libdl.jl:116
  [4] __init__()
    @ SuiteSparse_jll ~/test/julia/usr/share/julia/stdlib/v1.10/SuiteSparse_jll/src/SuiteSparse_jll.jl:86
  [5] run_module_init(mod::Module, i::Int64)
    @ Base ./loading.jl:1128
  [6] register_restored_modules(sv::Core.SimpleVector, pkg::Base.PkgId, path::String)
    @ Base ./loading.jl:1116
  [7] _include_from_serialized(pkg::Base.PkgId, path::String, ocachepath::String, depmods::Vector{Any})
    @ Base ./loading.jl:1061
  [8] _tryrequire_from_serialized(pkg::Base.PkgId, path::String, ocachepath::String)
    @ Base ./loading.jl:1525
  [9] _require(pkg::Base.PkgId, env::String)
    @ Base ./loading.jl:1984
 [10] __require_prelocked(uuidkey::Base.PkgId, env::String)
    @ Base ./loading.jl:1806
 [11] #invoke_in_world#3
    @ Base ./essentials.jl:921 [inlined]
 [12] invoke_in_world
    @ Base ./essentials.jl:918 [inlined]
 [13] _require_prelocked(uuidkey::Base.PkgId, env::String)
    @ Base ./loading.jl:1797
 [14] macro expansion
    @ Base ./loading.jl:1784 [inlined]
 [15] macro expansion
    @ Base ./lock.jl:267 [inlined]
 [16] __require(into::Module, mod::Symbol)
    @ Base ./loading.jl:1747
 [17] #invoke_in_world#3
    @ Base ./essentials.jl:921 [inlined]
 [18] invoke_in_world
    @ Base ./essentials.jl:918 [inlined]
 [19] require(into::Module, mod::Symbol)
    @ Base ./loading.jl:1740
 [20] include(mod::Module, _path::String)
    @ Base ./Base.jl:489
 [21] include(x::String)
    @ SparseArrays ~/test/julia/usr/share/julia/stdlib/v1.10/SparseArrays/src/SparseArrays.jl:6
 [22] top-level scope
    @ ~/test/julia/usr/share/julia/stdlib/v1.10/SparseArrays/src/SparseArrays.jl:77
 [23] include
    @ Base ./Base.jl:489 [inlined]
 [24] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::String)
    @ Base ./loading.jl:2216
 [25] top-level scope
    @ stdin:3
during initialization of module SuiteSparse_jll
in expression starting at /home/ararslan/test/julia/usr/share/julia/stdlib/v1.10/SparseArrays/src/solvers/LibSuiteSparse.jl:1
in expression starting at /home/ararslan/test/julia/usr/share/julia/stdlib/v1.10/SparseArrays/src/SparseArrays.jl:3
in expression starting at stdin:3
ERROR: LoadError: Failed to precompile SparseArrays [2f01184e-e22b-5df5-ae63-d93ebab69eaf] to "/home/ararslan/test/julia/doc/deps/compiled/v1.10/SparseArrays/jl_wIqmSr".
Stacktrace:
  [1] error(s::String)
    @ Base ./error.jl:35
  [2] compilecache(pkg::Base.PkgId, path::String, internal_stderr::IO, internal_stdout::IO, keep_loaded_modules::Bool)
    @ Base ./loading.jl:2468
  [3] compilecache
    @ Base ./loading.jl:2334 [inlined]
  [4] (::Base.var"#967#968"{Base.PkgId})()
    @ Base ./loading.jl:1968
  [5] mkpidlock(f::Base.var"#967#968"{Base.PkgId}, at::String, pid::Int32; kwopts::@Kwargs{stale_age::Int64, wait::Bool})
    @ FileWatching.Pidfile ~/test/julia/usr/share/julia/stdlib/v1.10/FileWatching/src/pidfile.jl:92
  [6] #mkpidlock#6
    @ FileWatching.Pidfile ~/test/julia/usr/share/julia/stdlib/v1.10/FileWatching/src/pidfile.jl:87 [inlined]
  [7] trymkpidlock(::Function, ::Vararg{Any}; kwargs::@Kwargs{stale_age::Int64})
    @ FileWatching.Pidfile ~/test/julia/usr/share/julia/stdlib/v1.10/FileWatching/src/pidfile.jl:110
  [8] #invokelatest#2
    @ Base ./essentials.jl:889 [inlined]
  [9] invokelatest
    @ Base ./essentials.jl:884 [inlined]
 [10] maybe_cachefile_lock(f::Base.var"#967#968"{Base.PkgId}, pkg::Base.PkgId, srcpath::String; stale_age::Int64)
    @ Base ./loading.jl:2898
 [11] maybe_cachefile_lock
    @ Base ./loading.jl:2895 [inlined]
 [12] _require(pkg::Base.PkgId, env::String)
    @ Base ./loading.jl:1964
 [13] __require_prelocked(uuidkey::Base.PkgId, env::String)
    @ Base ./loading.jl:1806
 [14] #invoke_in_world#3
    @ Base ./essentials.jl:921 [inlined]
 [15] invoke_in_world
    @ Base ./essentials.jl:918 [inlined]
 [16] _require_prelocked(uuidkey::Base.PkgId, env::String)
    @ Base ./loading.jl:1797
 [17] macro expansion
    @ Base ./loading.jl:1784 [inlined]
 [18] macro expansion
    @ Base ./lock.jl:267 [inlined]
 [19] __require(into::Module, mod::Symbol)
    @ Base ./loading.jl:1747
 [20] #invoke_in_world#3
    @ Base ./essentials.jl:921 [inlined]
 [21] invoke_in_world
    @ Base ./essentials.jl:918 [inlined]
 [22] require(into::Module, mod::Symbol)
    @ Base ./loading.jl:1740
 [23] eval
    @ ./boot.jl:383 [inlined]
 [24] top-level scope
    @ ~/test/julia/doc/make.jl:227
in expression starting at /home/ararslan/test/julia/doc/make.jl:226
make[1]: *** [Makefile:47: html] Error 1
make: *** [Makefile:113: docs] Error 2

It appears the SuiteSparse libraries aren't getting their RPATH set properly:

$ ldd usr/lib/libamd.so
        linux-vdso.so.1 (0x00007ffe4cff8000)
        libsuitesparseconfig.so.7 => not found
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f1014670000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f101447e000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f10147e0000)
$ objdump -p usr/lib/libamd.so                                                                                                                               

usr/lib/libamd.so:     file format elf64-x86-64

Program Header:
    LOAD off    0x0000000000000000 vaddr 0x0000000000000000 paddr 0x0000000000000000 align 2**12
         filesz 0x0000000000000c28 memsz 0x0000000000000c28 flags r--
    LOAD off    0x0000000000001000 vaddr 0x0000000000001000 paddr 0x0000000000001000 align 2**12
         filesz 0x00000000000071b1 memsz 0x00000000000071b1 flags r-x
    LOAD off    0x0000000000009000 vaddr 0x0000000000009000 paddr 0x0000000000009000 align 2**12
         filesz 0x0000000000001014 memsz 0x0000000000001014 flags r--
    LOAD off    0x000000000000add0 vaddr 0x000000000000bdd0 paddr 0x000000000000bdd0 align 2**12
         filesz 0x00000000000002e8 memsz 0x00000000000002f0 flags rw-
 DYNAMIC off    0x000000000000ade0 vaddr 0x000000000000bde0 paddr 0x000000000000bde0 align 2**3
         filesz 0x0000000000000200 memsz 0x0000000000000200 flags rw-
    NOTE off    0x00000000000002a8 vaddr 0x00000000000002a8 paddr 0x00000000000002a8 align 2**3
         filesz 0x0000000000000020 memsz 0x0000000000000020 flags r--
    NOTE off    0x00000000000002c8 vaddr 0x00000000000002c8 paddr 0x00000000000002c8 align 2**2
         filesz 0x0000000000000024 memsz 0x0000000000000024 flags r--
0x6474e553 off    0x00000000000002a8 vaddr 0x00000000000002a8 paddr 0x00000000000002a8 align 2**3
         filesz 0x0000000000000020 memsz 0x0000000000000020 flags r--
EH_FRAME off    0x0000000000009838 vaddr 0x0000000000009838 paddr 0x0000000000009838 align 2**2
         filesz 0x00000000000000d4 memsz 0x00000000000000d4 flags r--
   STACK off    0x0000000000000000 vaddr 0x0000000000000000 paddr 0x0000000000000000 align 2**4
         filesz 0x0000000000000000 memsz 0x0000000000000000 flags rw-
   RELRO off    0x000000000000add0 vaddr 0x000000000000bdd0 paddr 0x000000000000bdd0 align 2**0
         filesz 0x0000000000000230 memsz 0x0000000000000230 flags r--

Dynamic Section:
  NEEDED               libsuitesparseconfig.so.7
  NEEDED               libm.so.6
  NEEDED               libc.so.6
  SONAME               libamd.so.3
  INIT                 0x0000000000001000
  FINI                 0x00000000000081a4
  INIT_ARRAY           0x000000000000bdd0
  INIT_ARRAYSZ         0x0000000000000008
  FINI_ARRAY           0x000000000000bdd8
  FINI_ARRAYSZ         0x0000000000000008
  GNU_HASH             0x00000000000002f0
  STRTAB               0x00000000000006b0
  SYMTAB               0x00000000000003b0
  STRSZ                0x0000000000000282
  SYMENT               0x0000000000000018
  PLTGOT               0x000000000000c000
  PLTRELSZ             0x00000000000001c8
  PLTREL               0x0000000000000007
  JMPREL               0x0000000000000a60
  RELA                 0x00000000000009b8
  RELASZ               0x00000000000000a8
  RELAENT              0x0000000000000018
  VERNEED              0x0000000000000978
  VERNEEDNUM           0x0000000000000002
  VERSYM               0x0000000000000932
  RELACOUNT            0x0000000000000003

Version References:
  required from libm.so.6:
    0x09691a75 0x00 03 GLIBC_2.2.5
  required from libc.so.6:
    0x09691a75 0x00 02 GLIBC_2.2.5

Possibly related to #48977, I guess?

@ararslan ararslan added building Build system, or building Julia or its dependencies regression Regression in behavior compared to a previous version external dependencies Involves LLVM, OpenBLAS, or other linked libraries labels Jul 28, 2023
@ararslan ararslan added this to the 1.10 milestone Jul 28, 2023
@rayegun rayegun self-assigned this Jul 29, 2023
@ararslan
Copy link
Member Author

This is still a problem in v1.10.0-beta2, so we still can't make source tarballs for this release (cc @Wimmerer)

@rayegun
Copy link
Member

rayegun commented Aug 17, 2023

@ararslan what's the MWE to get this error? Building locally with BB=0?

@ararslan
Copy link
Member Author

Yes, exactly.

@gbaraldi
Copy link
Member

Is it reproducible with just suiteSparse built locally?

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 external dependencies Involves LLVM, OpenBLAS, or other linked libraries regression Regression in behavior compared to a previous version
Projects
None yet
Development

No branches or pull requests

3 participants