Bug 255953

Summary: www/firefox-esr: Fix compile error with clang/libc++ 12
Product: Ports & Packages Reporter: Dimitry Andric <dim>
Component: Individual Port(s)Assignee: Christoph Moench-Tegeder <cmt>
Status: Closed FIXED    
Severity: Affects Some People CC: cmt
Priority: --- Flags: bugzilla: maintainer-feedback? (gecko)
koobs: merge-quarterly+
koobs: exp-run?
Version: Latest   
Hardware: Any   
OS: Any   
See Also: https://bugzilla.mozilla.org/show_bug.cgi?id=1694575
Bug Depends on:    
Bug Blocks: 255570    
Attachments:
Description Flags
Apply upstream fix for building against libc++ 12 none

Description Dimitry Andric freebsd_committer freebsd_triage 2021-05-17 19:06:21 UTC
Created attachment 225036 [details]
Apply upstream fix for building against libc++ 12

During an exp-run for llvm 12 (see bug 255570), it turned out that www/firefox-esr does not build with clang 12.0.0 [1]:

In file included from /wrkdirs/usr/ports/www/firefox-esr/work/firefox-78.10.1/media/webrtc/trunk/webrtc/modules/audio_processing/beamformer/covariance_matrix_generator.cc:13:
In file included from /wrkdirs/usr/ports/www/firefox-esr/work/firefox-78.10.1/media/webrtc/trunk/webrtc/modules/audio_processing/beamformer/covariance_matrix_generator.h:14:
In file included from /wrkdirs/usr/ports/www/firefox-esr/work/firefox-78.10.1/media/webrtc/trunk/webrtc/modules/audio_processing/beamformer/complex_matrix.h:14:
In file included from /wrkdirs/usr/ports/www/firefox-esr/work/.build/dist/system_wrappers/complex:3:
In file included from /usr/include/c++/v1/complex:236:
In file included from /usr/include/c++/v1/stdexcept:46:
In file included from /wrkdirs/usr/ports/www/firefox-esr/work/.build/dist/system_wrappers/exception:3:
In file included from /usr/include/c++/v1/exception:81:
In file included from /usr/include/c++/v1/__memory/base.h:14:
In file included from /usr/include/c++/v1/__debug:14:
In file included from /wrkdirs/usr/ports/www/firefox-esr/work/.build/dist/stl_wrappers/iosfwd:58:
In file included from /wrkdirs/usr/ports/www/firefox-esr/work/.build/dist/include/mozilla/mozalloc.h:31:
In file included from /wrkdirs/usr/ports/www/firefox-esr/work/.build/dist/stl_wrappers/new:52:
In file included from /wrkdirs/usr/ports/www/firefox-esr/work/.build/dist/system_wrappers/new:3:
/usr/include/c++/v1/new:127:14: error: expected class name
    : public exception
             ^
1 error generated.

This is caused by firefox doing a lot of complex and fragile juggling with system headers, and was reported upstream as <https://bugzilla.mozilla.org/show_bug.cgi?id=1694575>, then fixed via <https://hg.mozilla.org/mozilla-central/rev/f875a4ffd653>. 

Hopefully the next esr drop will have this fix included, but for now I propose the attached patch.

[1] http://package22.nyi.freebsd.org/data/mainamd64PR255570-default/2021-05-08_16h02m24s/logs/firefox-esr-78.10.1,1.log
Comment 1 commit-hook freebsd_committer freebsd_triage 2021-05-18 08:37:39 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=d68bbde38e14ca3ac14b0c21b9f1a0c0a3928d2b

commit d68bbde38e14ca3ac14b0c21b9f1a0c0a3928d2b
Author:     Christoph Moench-Tegeder <cmt@FreeBSD.org>
AuthorDate: 2021-05-18 08:34:50 +0000
Commit:     Christoph Moench-Tegeder <cmt@FreeBSD.org>
CommitDate: 2021-05-18 08:34:50 +0000

    www/firefox-esr: fix build with clang/libc++12

    Reported by:    dim
    Obtained from:  https://bugzilla.mozilla.org/show_bug.cgi?id=1694575
    PR:             255953

 www/firefox-esr/files/patch-bug1694575 (new) | 33 ++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)
Comment 2 commit-hook freebsd_committer freebsd_triage 2021-05-18 08:40:41 UTC
A commit in branch 2021Q2 references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=8ed133d651cb393faed167f20e0facb0fb81d45d

commit 8ed133d651cb393faed167f20e0facb0fb81d45d
Author:     Christoph Moench-Tegeder <cmt@FreeBSD.org>
AuthorDate: 2021-05-18 08:34:50 +0000
Commit:     Christoph Moench-Tegeder <cmt@FreeBSD.org>
CommitDate: 2021-05-18 08:39:42 +0000

    www/firefox-esr: fix build with clang/libc++12

    Reported by:    dim
    Obtained from:  https://bugzilla.mozilla.org/show_bug.cgi?id=1694575
    PR:             255953

    (cherry picked from commit d68bbde38e14ca3ac14b0c21b9f1a0c0a3928d2b)

 www/firefox-esr/files/patch-bug1694575 (new) | 33 ++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)
Comment 3 Christoph Moench-Tegeder freebsd_committer freebsd_triage 2021-05-18 08:42:28 UTC
"works for me" and current gecko products, so here we go. Thanks.