--disable-tls does not limit functionality, it only determines how std::call_once works

Eric Gallager egall at gwmail.gwu.edu
Sat Nov 13 16:47:48 UTC 2021

On Mon, Mar 16, 2020 at 4:49 PM Jeffrey Walton <noloader at gmail.com> wrote:
> Hi Everyone/Ken,
> I was looking through
> https://github.com/kencu/LeopardPorts/blob/master/lang/gcc7/Portfile,
> and noticed this comment:
> # see https://lists.macports.org/pipermail/macports-dev/2017-August/036209.html
> # --disable-tls does not limit functionality
> # it only determines how std::call_once works
> Based on my testing of i686, x86_64, ARM-32, Aarch64 and PowerPC,
> std::call_once is completely broken everywhere except x86_64. When I
> tired to use std::call_once in my programs I had truckloads of
> unexplained crashes everywhere except x86_64. There's GCC bug report
> that details the same.

Hi, could you link to the GCC bug report in question? Thanks.

> If possible, GCC should be built without std::call_once. Or
> std::call_once should throw std::runtime_error("Not implemented!"). I
> don't know if GCC ever fixed std::call_once on non-Intel platforms,
> but you should avoid std::call_once. Treat it like the coronavirus.
> Off topic, here's some interesting reading on coronavirus and its
> origins in horseshoe bats in southern asia:
> https://www.scientificamerican.com/article/how-chinas-bat-woman-hunted-down-viruses-from-sars-to-the-new-coronavirus1/
> Jeff

More information about the macports-users mailing list