New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 739340 link

Starred by 2 users

Issue metadata

Status: Untriaged
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 3
Type: Bug



Sign in to add a comment

Mixing MODULES_EXPORT and CORE_EXPORT in the same compilation unit for the same base class fails in Windows

Project Member Reported by brat...@opera.com, Jul 5 2017

Issue description

If a compilation unit has a class A:

MODULES_EXPORT class A : public Base<int> {};

and a class B through a header:

CORE_EXPORT class B : public Base<int> {};

there will be link errors in Windows because there will be strongly defined symbols for Base<int> that will collide with the exported symbols in blinkcore.dll.

I don't know if this is a compiler bug in Visual Studio or something else, but it triggers if jumbo compiling modules/webaudio because the class WindowAudioWorklet inherits from Supplement<LocalDOMWindow> in the way described above.



 
Hmm. WindowPaintWorklet also has the same pattern. Doesn't it affect this issue as well?

https://cs.chromium.org/chromium/src/third_party/WebKit/Source/modules/csspaint/WindowPaintWorklet.h

Comment 2 by brat...@opera.com, Jul 7 2017

I haven't seen that one fail to compile, but maybe it's very new? Otherwise it may be ok if no "jumbo-friend" cpp file includes any Source/core header with CORE_EXPORT on a Supplement<LocalDOMWindow> based class.

Comment 3 by brat...@opera.com, Mar 2 2018

Cc: j...@opera.com
Components: Build

Sign in to add a comment