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

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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

Enable continuous integration via AppVeyor
2 participants