Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Switch CI to GitHub Actions #40

Merged
merged 12 commits into from
Aug 26, 2020
Merged

Switch CI to GitHub Actions #40

merged 12 commits into from
Aug 26, 2020

Conversation

termoshtt
Copy link
Member

@termoshtt termoshtt commented Aug 22, 2020

  • Integrate CI by AppVeyor and Travis CI into GitHub Actions.
  • Add OS specific search path

Based on termoshtt#2, Resolve #38

Futures and supported platforms

target no-features static system static,system
x86_64-pc-windows-msvc unsupported unsupported ✔️ (vcpkg) ✔️ (vcpkg)
x86_64-pc-windows-gnu
x86_64-apple-darwin ✔️ ✔️ ✔️ (homebrew)
x86_64-unknown-linux-gnu ✔️ ✔️ ✔️ (apt)
  • ✔️ : Tested on CI, and works well
  • ❌ : Has technical problem(s) which should be fixed

Known Issues

msys2 (x86_64-pc-windows-gnu)

  • -lopenblas cannot be found in CI msys2 environment for system feature

  • no-feature case exits with STATUS_DLL_NOT_FOUND error for no-feature case (possibly it cannot find gfortran) https://github.com/termoshtt/openblas-src/runs/1013368553

    process didn't exit successfully: `D:\a\openblas-src\openblas-src\target\debug\deps\lib-fac6f8ac341a9ceb.exe` (exit code: 0xc0000135, STATUS_DLL_NOT_FOUND)
    
  • msys2 environment sometimes causes undefined reference to gfortran components. I cannot figure out what causes this, and it often resolved when rerun the test (maybe cache problem?). https://github.com/termoshtt/openblas-src/runs/1007384029?check_suite_focus=true

    = note: D:/a/openblas-src/openblas-src/target/debug/build/openblas-src-c8044e99da530d63/out\opt/OpenBLAS/lib\libopenblas.a(sgesvd.o):sgesvd.f:(.text+0xb1b): undefined reference to `_gfortran_concat_string'
            D:/a/openblas-src/openblas-src/target/debug/build/openblas-src-c8044e99da530d63/out\opt/OpenBLAS/lib\libopenblas.a(sgesvd.o):sgesvd.f:(.text+0xde0): undefined reference to `_gfortran_concat_string'
            D:/a/openblas-src/openblas-src/target/debug/build/openblas-src-c8044e99da530d63/out\opt/OpenBLAS/lib\libopenblas.a(sgesvdx.o):sgesvdx.f:(.text+0x2033): undefined reference to `_gfortran_concat_string'
            D:/a/openblas-src/openblas-src/target/debug/build/openblas-src-c8044e99da530d63/out\opt/OpenBLAS/lib\libopenblas.a(sgesvdx.o):sgesvdx.f:(.text+0x2181): undefined reference to `_gfortran_concat_string'
            D:/a/openblas-src/openblas-src/target/debug/build/openblas-src-c8044e99da530d63/out\opt/OpenBLAS/lib\libopenblas.a(shseqr.o):shseqr.f:(.text+0x3cd): undefined reference to `_gfortran_concat_string'
            D:/a/openblas-src/openblas-src/target/debug/build/openblas-src-c8044e99da530d63/out\opt/OpenBLAS/lib\libopenblas.a(sormbr.o):sormbr.f:(.text+0x3e3): more undefined references to `_gfortran_concat_string' follow
            D:/a/openblas-src/openblas-src/target/debug/build/openblas-src-c8044e99da530d63/out\opt/OpenBLAS/lib\libopenblas.a(second_INT_ETIME.o):second_INT_ETIME.f:(.text+0x54): undefined reference to `_gfortran_etime'
            D:/a/openblas-src/openblas-src/target/debug/build/openblas-src-c8044e99da530d63/out\opt/OpenBLAS/lib\libopenblas.a(dsecnd_INT_ETIME.o):dsecnd_INT_ETIME.f:(.text+0x54): undefined reference to `_gfortran_etime'
    

Linux (official Rust container)

  • apt (Rust official image is based on Debian) does not provides static version of openblas

macOS

  • --features=system,static causes following error:

              "_GOMP_parallel", referenced from:
                  _exec_blas in libopenblas.a(blas_server.o)
              "_omp_get_max_threads", referenced from:
                  _ddot_k_NEHALEM in libopenblas.a(ddot_k_NEHALEM.o)
                  _ddot_k_SANDYBRIDGE in libopenblas.a(ddot_k_SANDYBRIDGE.o)
                  _zdotc_k_SANDYBRIDGE in libopenblas.a(zdotc_k_SANDYBRIDGE.o)
                  _zdotu_k_SANDYBRIDGE in libopenblas.a(zdotu_k_SANDYBRIDGE.o)
                  _zdotc_k_BULLDOZER in libopenblas.a(zdotc_k_BULLDOZER.o)
                  _zdotu_k_BULLDOZER in libopenblas.a(zdotu_k_BULLDOZER.o)
                  _ddot_k_PILEDRIVER in libopenblas.a(ddot_k_PILEDRIVER.o)
                  ...
              "_omp_set_num_threads", referenced from:
                  _goto_set_num_threads in libopenblas.a(blas_server.o)
              "_omp_get_num_threads", referenced from:
                  _exec_blas._omp_fn.0 in libopenblas.a(blas_server.o)
            ld: symbol(s) not found for architecture x86_64
            clang: error: linker command failed with exit code 1 (use -v to see invocation)       
    

@IvanUkhov
Copy link
Member

IvanUkhov commented Aug 23, 2020

Great work! Thank you! Please feel free to merge and release however you see fit.

@termoshtt
Copy link
Member Author

msys2 test looks still to be broken. I omit its test from this PR 😓

@termoshtt termoshtt merged commit 31e0701 into master Aug 26, 2020
@termoshtt
Copy link
Member Author

@IvanUkhov could you turn off AppVeyor integration? It looks that I do not have its authority.

@termoshtt termoshtt deleted the github-actions branch August 26, 2020 12:15
@IvanUkhov
Copy link
Member

I have added you on the GitHub Apps page. You should be able to install apps yourself now. However, I have granted access for AppVeyor.

termoshtt added a commit to rust-ndarray/ndarray-linalg that referenced this pull request Sep 7, 2020
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

Enable continuous integration via AppVeyor
2 participants