Skip to content

Segfaults when building Julia from scratch with GCC 15 #58466

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

Open
jakobnissen opened this issue May 19, 2025 · 29 comments
Open

Segfaults when building Julia from scratch with GCC 15 #58466

jakobnissen opened this issue May 19, 2025 · 29 comments
Labels
building Build system, or building Julia or its dependencies heisenbug This bug occurs unpredictably system:linux Affects only Linux
Milestone

Comments

@jakobnissen
Copy link
Member

jakobnissen commented May 19, 2025

This has occurred within the last few (around 4) days. Currently on commit 864aac0 (edit: has been bisected to dbc38d6).
Building Julia from scratch results in all the stdlibs erroring with an error message like below.

The issue persists after running make cleanall, and even after deleting and re-cloning the repo.

This might be an issue with my computer, but I'm stumped as to what it could be.

Julia installed from juliaup runs fine, and returns this versioninfo

Julia Version 1.12.0-beta3
Commit faca79b503a (2025-05-12 06:47 UTC)
Build Info:
  Official https://julialang.org release
Platform Info:
  OS: Linux (x86_64-linux-gnu)
      "Manjaro Linux"
  uname: Linux 5.15.182-1-MANJARO #1 SMP PREEMPT Fri May 9 10:56:46 UTC 2025 x86_64 unknown
  CPU: AMD Ryzen 7 4700U with Radeon Graphics:
              speed         user         nice          sys         idle          irq
       #1  1397 MHz      24236 s        640 s       2513 s     220115 s        468 s
       #2  1397 MHz      16619 s        628 s       2490 s     227752 s        458 s
       #3  1397 MHz      17677 s        643 s       2517 s     225905 s       1346 s
       #4  1397 MHz      17449 s        482 s       2420 s     227271 s        430 s
       #5  1423 MHz      20922 s        645 s       2852 s     223002 s        518 s
       #6  1405 MHz      14089 s        584 s       2719 s     229428 s       1121 s
       #7  1397 MHz      14470 s        739 s       2788 s     229332 s        595 s
       #8  1397 MHz      17178 s        574 s       2679 s     227093 s        488 s
  Memory: 15.052658081054688 GB (8425.2890625 MB free)
  Uptime: 118858.09 sec
  Load Avg:  3.26  6.05  3.74
  WORD_SIZE: 64
  LLVM: libLLVM-18.1.7 (ORCJIT, znver2)
  GC: Built with stock GC
Threads: 1 default, 1 interactive, 1 GC (on 8 virtual cores)
Environment:
  JULIA_PKG_PRESERVE_TIERED_INSTALLED = true
  HOME = /home/jakob
  PATH = /home/jakob/.julia/juliaup/bin:/home/jakob/micromamba/condabin:/home/jakob/.julia/juliaup/bin:/home/jakob/.local/bin:/home/jakob/.cargo/bin:/usr/local/bin:/usr/bin:/var/lib/snapd/snap/bin:/usr/local/sbin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/usr/lib/rustup/bin:/home/jakob/Downloads/zig-linux-x86_64-0.10.0:/home/jakob/.julia/bin:/home/jakob/Downloads/zig-linux-x86_64-0.10.0:/home/jakob/.julia/bin
  TERM = alacritty

Error message:

Distributed

Failed to precompile Distributed [8ba89e20-285c-5b6f-9357-94700520ee1b] to "/home/jakob/code/julia/usr/share/julia/compiled/v1.13/Distributed/jl_8ebJlC" (ProcessExited(1)).
[120461] signal 11 (1): Segmentation fault
in expression starting at none:0
jl_emit_native_impl at /home/jakob/code/julia/src/aotcompile.cpp:828
jl_create_native_impl at /home/jakob/code/julia/src/aotcompile.cpp:709
jl_precompile_ at /home/jakob/code/julia/src/precompile_utils.c:282
jl_precompile_worklist at /home/jakob/code/julia/src/precompile_utils.c:345 [inlined]
ijl_create_system_image at /home/jakob/code/julia/src/staticdata.c:3501
ijl_write_compiler_output at /home/jakob/code/julia/src/precompile.c:155
ijl_atexit_hook at /home/jakob/code/julia/src/init.c:276
jl_repl_entrypoint at /home/jakob/code/julia/src/jlapi.c:1127
main at /home/jakob/code/julia/cli/loader_exe.c:58
unknown function (ip: 0x7f5d2f1506b4) at /usr/lib/libc.so.6
__libc_start_main at /usr/lib/libc.so.6 (unknown line)
_start at /home/jakob/code/julia/usr/bin/julia (unknown line)
Allocations: 258959 (Pool: 258949; Big: 10); GC: 4

[120461] signal 11 (1): Segmentation fault
in expression starting at none:0
jl_emit_native_impl at /home/jakob/code/julia/src/aotcompile.cpp:828
jl_create_native_impl at /home/jakob/code/julia/src/aotcompile.cpp:709
jl_precompile_ at /home/jakob/code/julia/src/precompile_utils.c:282
jl_precompile_worklist at /home/jakob/code/julia/src/precompile_utils.c:345 [inlined]
ijl_create_system_image at /home/jakob/code/julia/src/staticdata.c:3501
ijl_write_compiler_output at /home/jakob/code/julia/src/precompile.c:155
ijl_atexit_hook at /home/jakob/code/julia/src/init.c:276
jl_repl_entrypoint at /home/jakob/code/julia/src/jlapi.c:1127
main at /home/jakob/code/julia/cli/loader_exe.c:58
unknown function (ip: 0x7f5d2f1506b4) at /usr/lib/libc.so.6
__libc_start_main at /usr/lib/libc.so.6 (unknown line)
_start at /home/jakob/code/julia/usr/bin/julia (unknown line)
Allocations: 258959 (Pool: 258949; Big: 10); GC: 4
@oscardssmith oscardssmith added building Build system, or building Julia or its dependencies system:linux Affects only Linux labels May 19, 2025
@DilumAluthge
Copy link
Member

Could you bisect?

@Zentrik
Copy link
Member

Zentrik commented May 19, 2025

Is this the same as #58448?

@jakobnissen
Copy link
Member Author

Probably the same as #58448. Since we both use an Arch-based system, it's probably a non-Julia issue, but I'll keep this issue open until I can verify.

@jakobnissen
Copy link
Member Author

Bisected to commit dbc38d6 (#58142) cc. @Zentrik

@giordano
Copy link
Contributor

giordano commented May 20, 2025

For what is worth I can compile fine on Debian testing which is also a rolling release distro, although with larger lag compared to Arch Linux (and it entered feature freeze a few days ago).

Can you try to do a debug+assert build with

override JULIA_BUILD_MODE=debug
override LLVM_DEBUG=0
override LLVM_ASSERTIONS=1
override FORCE_ASSERTIONS=1

? If you're lucky, the segfault hits an assertion.

@jakobnissen
Copy link
Member Author

Sorry, I'm not familiar with these commands. Are these environmental variables? And where does the Make.user file go - that seems not to be present. In the Julia repo?

@giordano
Copy link
Contributor

Create the file Make.user in the top-level directory of the repo with the content suggested above and compile regularly as you usually do.

@jakobnissen
Copy link
Member Author

It builds successfully using the four settings above. Very weird.

@giordano giordano added the heisenbug This bug occurs unpredictably label May 20, 2025
@giordano
Copy link
Contributor

And if you remove

override JULIA_BUILD_MODE=debug
override LLVM_DEBUG=0

? That'd an optimised build (instead of a debug build), with assertions.

@giordano
Copy link
Contributor

giordano commented May 20, 2025

Ok, I found an Arch Linux machine to test where I could reproduce the reported issue: enabling assertions, with or without a debug build, always makes the segfault go away. Similarly, a debug build, with or without assertions, always makes the segfault disappear. This is seriously a heisenbug.

@DilumAluthge
Copy link
Member

Any chance you could get an rr trace of the build?

@kunzaatko
Copy link
Contributor

I can confirm that this is the same issue as #58448. I can confirm that building is successful with the options above.
Produced a trace with rr record make and zipped the directory that it was traced to, however the zip file still has 3.1 GB so I am not sure, how to share it... Is there a way to produce a smaller output that I can add here? @DilumAluthge

@Zentrik
Copy link
Member

Zentrik commented May 21, 2025

Maybe try running the built julia like so julia --bug-report=rr (see https://github.com/JuliaLang/BugReporting.jl)? That will run julia under rr and will upload the trace to a s3 bucket we can read.

EDIT: Actually BugReporting might depend on distributed so that might be tricky to get working.

@kunzaatko
Copy link
Contributor

This runs into an error and outputs only:

/home/kunzaatko/Dev/julia/julia/usr/tools/lld: symbol lookup error: /home/kunzaatko/Dev/julia/julia/usr/tools/lld: undefined symbol: _ZN4llvm23EnableABIBreakingChecksE, version JL_LLVM_20.1
/home/kunzaatko/Dev/julia/julia/usr/tools/lld: symbol lookup error: /home/kunzaatko/Dev/julia/julia/usr/tools/lld: undefined symbol: _ZN4llvm23EnableABIBreakingChecksE, version JL_LLVM_20.1

@Zentrik
Copy link
Member

Zentrik commented May 21, 2025

Reproduces in docker.
Seems to be a null pointer dereference as rax is null because rbx points to null.

(lldb) di --start-address $pc-50 -c 25
libjulia-codegen.so.1.13`::jl_emit_native_impl(jl_array_t *, LLVMOrcThreadSafeModuleRef, const jl_cgparams_t *, int) [inlined] llvm::SmallPtrSetImplBase::clear():
    0x7f4ca890db57 <+885038>: cmpl   %edx, %eax
    0x7f4ca890db59 <+885040>: jb     0x7f4ca89105dc ; <+895923> [inlined] llvm::SmallPtrSetImplBase::clear() at SmallPtrSet.h:103:32
    0x7f4ca890db5f <+885046>: movq   -0x1e0(%rbp), %rdi
    0x7f4ca890db66 <+885053>: shlq   $0x3, %rdx
    0x7f4ca890db6a <+885057>: movl   $0xffffffff, %esi ; imm = 0xFFFFFFFF 
    0x7f4ca890db6f <+885062>: callq  0x7f4ca8835390 ; ___lldb_unnamed_symbol5432 + 16
    0x7f4ca890db74 <+885067>: movq   $0x0, -0x1d4(%rbp)
    0x7f4ca890db7f <+885078>: movq   -0xae8(%rbp), %rbx
    0x7f4ca890db86 <+885085>: movq   (%rbx), %rax
->  0x7f4ca890db89 <+885088>: movq   0x8(%rax), %rax
    0x7f4ca890db8d <+885092>: movq   %rax, (%rbx)
    0x7f4ca890db90 <+885095>: movq   -0x1f0(%rbp), %rbx
    0x7f4ca890db97 <+885102>: leaq   -0x9d0(%rbp), %rax
    0x7f4ca890db9e <+885109>: movq   $0x0, -0x9d8(%rbp)
    0x7f4ca890dba9 <+885120>: movq   %rax, -0xae0(%rbp)
    0x7f4ca890dbb0 <+885127>: movq   %rax, -0x9e0(%rbp)
    0x7f4ca890dbb7 <+885134>: testq  %rbx, %rbx
    0x7f4ca890dbba <+885137>: je     0x7f4ca890ff42 ; <+894233> [inlined] void llvm::SmallVectorImpl<void*>::resizeImpl<false>(unsigned long) at SmallVector.h:620:5
    0x7f4ca890dbc0 <+885143>: movq   -0xac0(%rbp), %rdi
    0x7f4ca890dbc7 <+885150>: movq   %rbx, %rsi
    0x7f4ca890dbca <+885153>: callq  0x7f4ca89243c0 ; llvm::SmallVectorTemplateBase<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, false>::grow at SmallVector.h:433:6
    0x7f4ca890dbcf <+885158>: movl   -0x9d8(%rbp), %eax
    0x7f4ca890dbd5 <+885164>: movq   %rbx, %rdx
    0x7f4ca890dbd8 <+885167>: shlq   $0x5, %rdx
    0x7f4ca890dbdc <+885171>: shlq   $0x5, %rax

Maybe this is the pgcstack being null, not sure if this is the correct way to inspect it?

(lldb) p *(jl_gcframe_t **)jl_get_pgcstack()
(jl_gcframe_t *) nullptr

EDIT: looks like rbx is the pcgstack. I guess jl_pgcstack->prev was null?

@giordano giordano added this to the 1.13 milestone May 21, 2025
@Zentrik
Copy link
Member

Zentrik commented May 21, 2025

Current progress is something weird seems to be going on in

JL_GC_PUSH1(&codeinst);
and
JL_GC_POP();
.

I wonder if this is just a compiler bug with gcc 15.

@Zentrik
Copy link
Member

Zentrik commented May 22, 2025

Build succeeded on gcc 14

@giordano giordano changed the title Segfaults when building Julia from scratch Segfaults when building Julia from scratch with GCC 15 May 22, 2025
@giordano
Copy link
Contributor

@fxcoudert I know you are more into gfortran which is most likely not relevant here, I'm pinging you on the off chance you may have a clue of what change in gcc 15 could caused something like #58466 (comment) (not too much information at the moment, though).

@fxcoudert
Copy link
Contributor

I see this is specific to GCC 15, but is it also target-dependent? Linux-only, or aarch64-only, or aarch64-linux-only? That would go a long way toward identifying a possible cause.

It sounds like it could be a miscompilation (or an optimization of invalid code), but as you said, there is little information for now. Maybe compare the ASM emitted for the problematic function, with GCC 14 vs GCC 15?

@Zentrik
Copy link
Member

Zentrik commented May 23, 2025

Minimal fix to get Julia building on gcc 15 on top of dbc38d6 is to revert the change to llvm-expand-atomic-modify.cpp and switch back to llvm 19 (make LLVM_VER_MAJ=19 LLD_JLL_VER=19.1.7+1 LLVM_JLL_VER=19.1.7+1). I'm somewhat surprised that the llvm bump is causing this.

diff --git a/src/llvm-expand-atomic-modify.cpp b/src/llvm-expand-atomic-modify.cpp
index e4152bb45f..7b7b3c8761 100644
--- a/src/llvm-expand-atomic-modify.cpp
+++ b/src/llvm-expand-atomic-modify.cpp
@@ -17,7 +17,6 @@
 #include <llvm/IR/InstIterator.h>
 #include <llvm/IR/Instructions.h>
 #include <llvm/IR/IntrinsicInst.h>
-#include "llvm/IR/MemoryModelRelaxationAnnotations.h"
 #include <llvm/IR/Module.h>
 #include <llvm/IR/Operator.h>
 #include <llvm/IR/PassManager.h>
@@ -142,28 +141,12 @@ std::pair<Value *, Value *> insertRMWCmpXchgLoop(
 }
 
 // from AtomicExpandImpl
-// IRBuilder to be used for replacement atomic instructions.
-struct ReplacementIRBuilder
-    : IRBuilder<InstSimplifyFolder, IRBuilderCallbackInserter> {
-  MDNode *MMRAMD = nullptr;
-
+struct ReplacementIRBuilder : IRBuilder<InstSimplifyFolder> {
   // Preserves the DebugLoc from I, and preserves still valid metadata.
-  // Enable StrictFP builder mode when appropriate.
   explicit ReplacementIRBuilder(Instruction *I, const DataLayout &DL)
-      : IRBuilder(I->getContext(), InstSimplifyFolder(DL),
-                  IRBuilderCallbackInserter(
-                      [this](Instruction *I) { addMMRAMD(I); })) {
+      : IRBuilder(I->getContext(), DL) {
     SetInsertPoint(I);
     this->CollectMetadataToCopy(I, {LLVMContext::MD_pcsections});
-    if (BB->getParent()->getAttributes().hasFnAttr(Attribute::StrictFP))
-      this->setIsFPConstrained(true);
-
-    MMRAMD = I->getMetadata(LLVMContext::MD_mmra);
-  }
-
-  void addMMRAMD(Instruction *I) {
-    if (canInstructionHaveMMRAs(*I))
-      I->setMetadata(LLVMContext::MD_mmra, MMRAMD);
   }
 };
 
@@ -338,6 +321,7 @@ void expandAtomicModifyToCmpXchg(CallInst &Modify,
   Type *Ty = Modify.getFunctionType()->getReturnType()->getStructElementType(0);
 
   ReplacementIRBuilder Builder(&Modify, Modify.getModule()->getDataLayout());
+  Builder.setIsFPConstrained(Modify.hasFnAttr(Attribute::StrictFP));
 
   CallInst *ModifyOp;
   {
@@ -382,7 +366,7 @@ void expandAtomicModifyToCmpXchg(CallInst &Modify,
         ModifyOp = cast<CallInst>(ValOp->getUser());
         LoadedOp = ValOp;
         assert(LoadedOp->get() == RMW);
-        RMW->moveBeforePreserving(ModifyOp->getIterator()); // NewValInst is a user of RMW, and RMW has no other dependants (per patternMatchAtomicRMWOp)
+        RMW->moveBefore(ModifyOp); // NewValInst is a user of RMW, and RMW has no other dependants (per patternMatchAtomicRMWOp)
         BinOp = false;
         if (++attempts > 3)
           break;
@@ -399,7 +383,7 @@ void expandAtomicModifyToCmpXchg(CallInst &Modify,
         assert(isa<UndefValue>(RMW->getOperand(1))); // RMW was previously being used as the placeholder for Val
         Value *Val;
         if (ValOp != nullptr) {
-          RMW->moveBeforePreserving(cast<Instruction>(ValOp->getUser())->getIterator()); // ValOp is a user of RMW, and RMW has no other dependants (per patternMatchAtomicRMWOp)
+          RMW->moveBefore(cast<Instruction>(ValOp->getUser())); // ValOp is a user of RMW, and RMW has no other dependants (per patternMatchAtomicRMWOp)
           Val = ValOp->get();
         } else if (RMWOp == AtomicRMWInst::Xchg) {
           Val = NewVal;
@@ -427,7 +411,7 @@ void expandAtomicModifyToCmpXchg(CallInst &Modify,
       Builder, Ty,  Ptr, *Alignment, Ordering, SSID, Modify,
       [&](IRBuilderBase &Builder, Value *Loaded) JL_NOTSAFEPOINT {
         LoadedOp->set(Loaded);
-        ModifyOp->moveBeforePreserving(*Builder.GetInsertBlock(), Builder.GetInsertPoint());
+        ModifyOp->moveBefore(*Builder.GetInsertBlock(), Builder.GetInsertPoint());
         return ModifyOp;
       },
       CreateWeakCmpXchg);

@Zentrik
Copy link
Member

Zentrik commented May 23, 2025

The difference in the jl_emit_native_impl seems to be solely due to the difference in llvm 19 and 20 headers when compiling aotcompile.o. Interestingly, with llvm 19 %rsp is used extensively but with llvm 20 %rbp is instead used.

@Zentrik
Copy link
Member

Zentrik commented May 24, 2025

Even more minimally compiling with make CC="gcc -std=gnu17" CXX="g++ -std=gnu17" seems to work on master.

@giordano
Copy link
Contributor

but is it also target-dependent?

I can reproduce the segfault when precompiling all the stdlibs on both x86_64-linux-gnu and aarch64-linux-gnu, so that doesn't seem to be target-dependent.

Even more minimally compiling with make CC="gcc -std=gnu17" CXX="g++ -std=gnu17" seems to work on master.

So that's the switch to C23 in GCC 15? Note that there's no gnu17 standard for C++.

@Zentrik
Copy link
Member

Zentrik commented May 24, 2025

Sure but specifying the cxx seems necessary

@Zentrik
Copy link
Member

Zentrik commented May 24, 2025

So CXX=g=++ -std=gnu17 causes the -march=native -mtune=native -m64 flags to no longer be used (this seems to be due to passing CXX as an argument to make prevents us modifying it further in Make.inc to append these flags to it). Indeed a standard compile of master but with aotcompile.cpp compiled without these flags works.

Dropping just -march=native works, -march=westmere works but -march=sandybridge fails, so I guess avx is causing issues (per https://gcc.gnu.org/onlinedocs/gcc/x86-Options.html)?

@giordano
Copy link
Contributor

giordano commented May 24, 2025

Ok, that makes more sense, it's just an accident that CXX=g=++ -std=gnu17 makes that work. I had tried with CXXFLAGS=-std=gnu17 (which, again, is an invalid standard) or CXXFLAGS=-std=c++17 (which is the default anyway) and still got the segfault.

@Zentrik
Copy link
Member

Zentrik commented May 25, 2025

I tried running creduce but gave up as it's taking way too long, problem being compiling aotcompile.cpp is just slow. Interestingly, compiling with the gcc 15.1.0 from nix on pop os seems to not have issues.

EDIT: I properly recompiled with the nix gcc 15.1.0 and it's failing with the same issue now.

@Zentrik
Copy link
Member

Zentrik commented May 26, 2025

Bisected to gcc-mirror/gcc@6ea25c0 which changes -mprefer-vector-width to 256 when that's supported and using avx I think. (indeed adding -mprefer-vector-width=128 fixes the segfault). Specifying -mprefer-vector-width=256 on gcc 13 works, so I'll bisect that as well.

For my future reference, bisected with commands

git bisect start releases/gcc-15.1.0 releases/gcc-14.2.0 --first-parent
git bisect run bisect_aotcompile.sh

And the script is

#!/bin/bash

JULIA_ROOT=...
GCCSRC=...
GCCBUILDIR=...
GCCINSTALLDIR=...

rm -f $GCCINSTALLDIR/usr/local/bin/g++
mkdir -p $GCCBUILDIR

pushd $GCCBUILDIR
$GCCSRC/configure --disable-bootstrap --enable-checking=yes --disable-libsanitizer --disable-nls --disable-dependency-tracking --enable-languages=c,c++ --without-isl --disable-cet --disable-libstdcxx-pch --disable-static --disable-multilib CC="ccache gcc" CCX="ccache g++" > /dev/null

nice make -j12 CFLAGS="-O1 -g0" CXXFLAGS="-O1 -g0" > /dev/null
make install DESTDIR=$GCCINSTALLDIR > /dev/null
popd

if [ ! -f $GCCINSTALLDIR/usr/local/bin/g++ ]; then
    echo "GCC installation failed, g++ not found in $GCCINSTALLDIR/usr/local/bin/"
    exit 125;
fi

rm -f $JULIA_ROOT/src/aotcompile.o $JULIA_ROOT/usr/lib/libjulia-codegen.so.1.13.0
nice make VERBOSE=1 -j12 -C $JULIA_ROOT/src CXX="$GCCINSTALLDIR/usr/local/bin/g++" SHIPFLAGS_COMMON="-O1" libjulia-codegen-release

DEPOT=`mktemp -d`
no_avx_precompilation_output=$(JULIA_DEPOT_PATH=$DEPOT JULIA_LOAD_PATH=@stdlib:$JULIA_ROOT/stdlib JULIA_CPU_TARGET="native" $JULIA_ROOT/usr/bin/julia --startup-file=no -e 'Base.Precompilation.precompilepkgs(["LibUV_jll"])' 2>&1)
no_avx_exit_code=$?
rm -rf $DEPOT

if [[ $no_avx_exit_code -ne 0 ]] || [[ $no_avx_precompilation_output == *"error"* ]] || [[ $no_avx_precompilation_output == *"Error"* ]]; then
    echo "Precompilation of LibUV_jll failed, exiting."
    exit 125
fi
echo "Precompilation of LibUV_jll succeeded without AVX."


rm $JULIA_ROOT/src/aotcompile.o $JULIA_ROOT/usr/lib/libjulia-codegen.so.1.13.0
nice make -j12 -C $JULIA_ROOT/src CXX="$GCCINSTALLDIR/usr/local/bin/g++ -mavx" libjulia-codegen-release

DEPOT=`mktemp -d`

precompile_output=$(JULIA_DEPOT_PATH=$DEPOT JULIA_LOAD_PATH=@stdlib:$JULIA_ROOT/stdlib JULIA_CPU_TARGET="native" $JULIA_ROOT/usr/bin/julia --startup-file=no -e 'Base.Precompilation.precompilepkgs(["LibUV_jll"])' 2>&1)

rm -rf $DEPOT
echo "$precompile_output"
if [[ $precompile_output == *"Segmentation fault"* ]] && [[ $precompile_output == *"jl_emit_native_impl"* ]]; then
    echo "Interesting"
    exit 1
fi
exit 0

@Zentrik
Copy link
Member

Zentrik commented May 26, 2025

With -mprefer-vector-width=256 bisected to gcc-mirror/gcc@c08b0d3

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 heisenbug This bug occurs unpredictably system:linux Affects only Linux
Projects
None yet
Development

No branches or pull requests

7 participants