Bug 255953 - www/firefox-esr: Fix compile error with clang/libc++ 12
Summary: www/firefox-esr: Fix compile error with clang/libc++ 12
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Some People
Assignee: Christoph Moench-Tegeder
URL:
Keywords:
Depends on:
Blocks: 255570
  Show dependency treegraph
 
Reported: 2021-05-17 19:06 UTC by Dimitry Andric
Modified: 2021-05-18 08:42 UTC (History)
1 user (show)

See Also:
bugzilla: maintainer-feedback? (gecko)
koobs: merge-quarterly+
koobs: exp-run?


Attachments
Apply upstream fix for building against libc++ 12 (1.49 KB, patch)
2021-05-17 19:06 UTC, Dimitry Andric
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
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.