Closed Bug 1724914 Opened 3 years ago Closed 3 years ago

[win32] libotr.dll links to (missing) libgcc_s_sjlj-1.dll

Categories

(Thunderbird :: Build Config, defect, P2)

Thunderbird 92
x86
Windows 10

Tracking

(thunderbird_esr78 unaffected, thunderbird_esr91 fixed, thunderbird92 fixed)

RESOLVED FIXED
93 Branch
Tracking Status
thunderbird_esr78 --- unaffected
thunderbird_esr91 --- fixed
thunderbird92 --- fixed

People

(Reporter: rjl, Assigned: rjl)

References

(Blocks 1 open bug, Regression)

Details

Attachments

(1 file)

Likely a regression from bug 1700240.

An additional DLL (libgcc_s_sjlj-1.dll ) started getting linked in the libotr build, but only win32.

The functions that are used from libgcc_s_sjlj-1.dll are __udivdi3 and __umoddi3. These are functions from libgcc to do 64-bit math on 32-bit architectures. There's several possible fixes, but the easiest appears to be ensuring that libgcc is statically linked with -static-libgcc.

There's an xpcshell test that is supposed to detect this kind of failure, yet it passes in Treeherder on win32.

Win64:

➜ mingw-ldd libotr.dll
        msvcrt.dll => /usr/lib/wine/x86_64-windows/msvcrt.dll
        advapi32.dll => /usr/lib/wine/x86_64-windows/advapi32.dll
        ws2_32.dll => /usr/lib/wine/x86_64-windows/ws2_32.dll
        libssp-0.dll => libssp-0.dll

Win32:

➜ mingw-ldd libotr.dll
        msvcrt.dll => /usr/lib32/wine/i386-windows/msvcrt.dll
        advapi32.dll => /usr/lib32/wine/i386-windows/advapi32.dll
        ws2_32.dll => /usr/lib32/wine/i386-windows/ws2_32.dll
        libgcc_s_sjlj-1.dll => **not found**
        libssp-0.dll => libssp-0.dll
`

Win32 builds need to pick up two functions from libgcc (__udivdi3, __umoddi3).
Statically link it so that we do not need to ship an additional DLL.

Blocks: 1723981
Attachment #9235596 - Attachment description: Bug 1724914 - Build libotr for win32 with -static-libgcc. r=freaktechnik → Bug 1724914 - Build libotr for win32 with -static-libgcc. r=clokep

Pushed by geoff@darktrojan.net:
https://hg.mozilla.org/comm-central/rev/a3337d3e850e
Build libotr for win32 with -static-libgcc. r=clokep

Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → 93 Branch

Is this causing the linux bustages?

I dunno, it shouldn't affect Linux but it still looks suspicious. I started a Linux build on the Try run to see what happens.

It builds on Try, so no, I don't think this is causing the bustage.

Comment on attachment 9235596 [details]
Bug 1724914 - Build libotr for win32 with -static-libgcc. r=clokep

[Approval Request Comment]
Regression caused by (bug #): 1700240
User impact if declined: OTR chat encryption does not work on Windows x86 builds
Testing completed (on c-c, etc.): I verified it works now off nightly
Risk to taking this patch (and alternatives if risky): Low risk, just added a flag to the linker command to pick up the missing functions.

Attachment #9235596 - Flags: approval-comm-esr91?
Attachment #9235596 - Flags: approval-comm-beta?

Comment on attachment 9235596 [details]
Bug 1724914 - Build libotr for win32 with -static-libgcc. r=clokep

[Triage Comment]
Approved for 92.0b1

Attachment #9235596 - Flags: approval-comm-beta? → approval-comm-beta+

Comment on attachment 9235596 [details]
Bug 1724914 - Build libotr for win32 with -static-libgcc. r=clokep

[Triage Comment]
Approved for esr91 per chat discussion

Attachment #9235596 - Flags: approval-comm-esr91? → approval-comm-esr91+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: