[Bug target/37121] g++ create global symbol for inline function, which make link failed with multiple definitions
--- Comment #18 from ktietz at gcc dot gnu dot org 2009-08-18 11:03 --- This bug is fixed by a recent change to our runtime headers. We support now the NO_INLINE feature for platform headers, too. So, even intrinsic functions aren't emitted anymore, when __NO_INLINE__ is defined. -- ktietz at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37121
[Bug target/37121] g++ create global symbol for inline function, which make link failed with multiple definitions
--- Comment #16 from ktietz at gcc dot gnu dot org 2009-04-21 08:27 --- (In reply to comment #15) (In reply to comment #14) or remove the ordinary C library function in lib64_libmingwex_a-wininterlocked.o and just keep the inline function ? That would be my first experiment. What depends on lib64_libmingwex_a-wininterlocked.o Danny we implemented int wininterlocked.c file the common interlocked symbols, because some of them should be inlined for performance reasons. To remove the inline version seems to be the best solution for me here. Because otherwise we would disallow a function pointer reference to it. Possibly we could make als define those symbols in wininterlocked.c as weak, does this help? Kai -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37121
[Bug target/37121] g++ create global symbol for inline function, which make link failed with multiple definitions
--- Comment #14 from drangon dot mail at gmail dot com 2009-04-21 05:35 --- how to fix this multiple definition issue ? adjust the linker to allow this ? or remove the ordinary C library function in lib64_libmingwex_a-wininterlocked.o and just keep the inline function ? or remove the inline function, replace by a function declaration which use the implementation from lib64_libmingwex_a-wininterlocked.o ? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37121