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

Backports for Julia 1.4.0 #34992

Merged
merged 3 commits into from
Mar 19, 2020
Merged

Backports for Julia 1.4.0 #34992

merged 3 commits into from
Mar 19, 2020

Conversation

KristofferC
Copy link
Sponsor Member

@KristofferC KristofferC commented Mar 4, 2020

@KristofferC KristofferC changed the title Backports for Julia 1.4. Backports for Julia 1.4.0 Mar 4, 2020
@staticfloat
Copy link
Sponsor Member

@Keno I'm having a tough time figuring out why these windows builds are segfaulting. Logging in and using gdb to get a backtrace, I get the following:

Thread 1 received signal SIGSEGV, Segmentation fault.                                                                                     
0x000000006fd1cc2e in libstdc++-6!_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_assignERKS4_ ()                                
   from /cygdrive/d/buildbot/worker/package_win64/build/usr/bin/libstdc++-6.dll                                                           
(gdb) bt                                                                                                                                  
#0  0x000000006fd1cc2e in libstdc++-6!_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_assignERKS4_ ()                            
   from /cygdrive/d/buildbot/worker/package_win64/build/usr/bin/libstdc++-6.dll                                                           
#1  0x00000000668590ff in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::assign (__str=...,             
    this=0xcaf1b0) at /usr/lib/gcc/x86_64-w64-mingw32/9.2.0/include/c++/bits/basic_string.h:1364                                          
#2  std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator= (__str=..., this=0xcaf1b0)                 
    at /usr/lib/gcc/x86_64-w64-mingw32/9.2.0/include/c++/bits/basic_string.h:696                                                          
#3  llvm::MCTargetOptions::operator= (this=0xcaf1a8)                                                                                      
    at /cygdrive/d/buildbot/worker/package_win64/build/usr/include/llvm/MC/MCTargetOptions.h:35                                           
#4  llvm::TargetOptions::operator= (this=0xcaf170)                                                                                        
    at /cygdrive/d/buildbot/worker/package_win64/build/usr/include/llvm/Target/TargetOptions.h:107                                        
#5  llvm::EngineBuilder::setTargetOptions (Opts=..., this=0x8500)                                                                         
    at /cygdrive/d/buildbot/worker/package_win64/build/usr/include/llvm/ExecutionEngine/ExecutionEngine.h:591                             
#6  jl_init_llvm () at /cygdrive/d/buildbot/worker/package_win64/build/src/codegen.cpp:7818                                               
#7  0x0000000066864d67 in jl_init_codegen () at /cygdrive/d/buildbot/worker/package_win64/build/src/codegen.cpp:7905                      
#8  0x00000000668d8fea in _julia_init (rel=(unknown: 1651076188)) at /cygdrive/d/buildbot/worker/package_win64/build/src/init.c:726       
#9  0x00000000668d9815 in julia_init__threading (rel=<optimized out>) at /cygdrive/d/buildbot/worker/package_win64/build/src/task.c:248   
#10 0x0000000000401bcb in wmain (argc=<optimized out>, argv=<optimized out>, envp=<optimized out>)                                        
    at /cygdrive/d/buildbot/worker/package_win64/build/ui/repl.c:211                                                                      
#11 0x00000000004013df in __tmainCRTStartup () at /usr/src/debug/mingw64-x86_64-runtime-7.0.0-1/crt/crtexe.c:334                          
#12 0x000000000040151b in mainCRTStartup () at /usr/src/debug/mingw64-x86_64-runtime-7.0.0-1/crt/crtexe.c:223 

Which seems to point strongly towards cxx11 string ABI issues; however both libjulia.dll and LLVM.dll are using the cxx11-style strings, as far as I can tell. My best guess is that this is triggered by Cygwin moving to GCC 9 by default, and that there may be some issue with the combination of the old LLVM tarballs this branch is using with GCC 9, but I wanted to run this past you first to see if you have any bright ideas.

@Keno
Copy link
Member

Keno commented Mar 6, 2020

I agree it looks like a C++11 ABI mismatch. In particular, looks like julia is built with C++11 enabled, but it got a string from somewhere that uses the old ABI.

* Switch LLVM BB download to new format

* use cxx11-specific downloads instead of GCC-version-specific downloads

* Default to `cxx11` when it's indeterminate

* handle CXX expanded BB builds

* Add LLVM_full checksums

Co-authored-by: Valentin Churavy <[email protected]>
@KristofferC KristofferC merged commit 268f9d2 into release-1.4 Mar 19, 2020
@KristofferC KristofferC deleted the backports-release-1.4 branch March 19, 2020 11:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants