On Wed, 2 Sep 2020 14:44:36 -0000 (UTC) Christian Weisgerber <na...@mips.inka.de> wrote:
> On 2020-08-22, Dimitry Andric <d...@freebsd.org> wrote: > > > It can be worked around by adding -fcommon to the compilation > > flags, but in most cases it should not be too difficult to get rid > > of the multiply defined symbols. > > Right. > In C, a global is _defined_ in one object file and _declared_ when > it is referenced from elsewhere. See Kernighan & Ritchie. Commons > are a linker artifact that was never part of the C language, as far > as I can tell. > > Most instances turned up by -fno-common are accidental double > definitions of the same global, so you only need to turn the extra > definitions into declarations. However, in some cases they were > actually intended as separate variables and have been merged by > accident. In those cases, they should be renamed or made local > with "static". In some cases, it is deliberate. An initialised, but declared, global is used as a 'weak' global that can be overridden by checking its value. I maintain one port that does this! _______________________________________________ freebsd-ports@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"