File tree 1 file changed +4
-14
lines changed
pkgs/development/compilers/gcc/common
1 file changed +4
-14
lines changed Original file line number Diff line number Diff line change 28
28
29
29
assert ! enablePlugin -> disableGdbPlugin ;
30
30
31
- # Note [Windows Exception Handling]
32
- # sjlj (short jump long jump) exception handling makes no sense on x86_64,
33
- # it's forcably slowing programs down as it produces a constant overhead.
34
- # On x86_64 we have SEH (Structured Exception Handling) and we should use
35
- # that. On i686, we do not have SEH, and have to use sjlj with dwarf2.
36
- # Hence it's now conditional on x86_32 (i686 is 32bit).
37
- #
38
- # ref: https://stackoverflow.com/questions/15670169/what-is-difference-between-sjlj-vs-dwarf-vs-seh
39
-
40
-
41
31
let
42
32
inherit ( stdenv )
43
33
buildPlatform hostPlatform targetPlatform ;
57
47
"--with-as=${ if targetPackages . stdenv . cc . bintools . isLLVM then binutils else targetPackages . stdenv . cc . bintools } /bin/${ targetPlatform . config } -as"
58
48
"--with-ld=${ targetPackages . stdenv . cc . bintools } /bin/${ targetPlatform . config } -ld"
59
49
]
50
+ ++ lib . optionals ( crossMingw && targetPlatform . isx86_32 ) [
51
+ "--disable-sjlj-exceptions"
52
+ "--with-dwarf2"
53
+ ]
60
54
++ ( if withoutTargetLibc then [
61
55
"--disable-libssp"
62
56
"--disable-nls"
80
74
"--disable-nls"
81
75
# To keep ABI compatibility with upstream mingw-w64
82
76
"--enable-fully-dynamic-string"
83
- ] ++ lib . optionals ( crossMingw && targetPlatform . isx86_32 ) [
84
- # See Note [Windows Exception Handling]
85
- "--enable-sjlj-exceptions"
86
- "--with-dwarf2"
87
77
] else [
88
78
( if crossDarwin then "--with-sysroot=${ lib . getLib libcCross } /share/sysroot"
89
79
else "--with-headers=${ lib . getDev libcCross } ${ libcCross . incdir or "/include" } " )
You can’t perform that action at this time.
0 commit comments