On Fri, 2020-08-07 at 07:19 +0200, Julian Sikorski wrote:
> Hi list,
>
> mame has failed to build with lto enabled due to violation of C++ one
> definition rule apparently:
>
https://koji.fedoraproject.org/koji/taskinfo?taskID=48829086
> I don't really know how to fix it. I am going to disable lto for now as,
> according to upstream comment from 2017, mame is likely too big for LTO
> to work anyway [1].
> If anybody would like to help re-enabling the lto, support is
> appreciated. Thanks!
In simplest terms you're not allowed to have a type with global scope with
different definitions. Look at how BREGS is defined in necpriv.h and v25priv.h.
THe enum type has the same name (BREGS), but the values in the enum are
different.
Similarly you've got some structures with the same name and external scope, but
with differences in their members (extFloat80M)
Jeff
Thanks! I will attempt a patch once I fix unrelated non-x86 build failures.
Best regards,
Julian