14.11.2017, 14:54, "Salisbury, Mark" <[email protected]>: > Hello, > > I’m building on Windows (WPE platform, perhaps I’m the first to try this!) > and I’m seeing some compile errors that I believe are arising from previously > untested combinations of source files. > > If I understand unified sources build correctly, it uses a large list of > files and then arranges them into groups, 8 files at a time. If I have a > slightly different set of files than is standard, or if someone adds a new > source file, the combinations of files can change. If the same header file > is included twice (and forwarding header file is a copy of the original), > this causes duplicate definitions / compile errors.
Huh, this seems to be a consequence of our conversion to #pragma once > > My question is – is there a right / ideal way to fix these conflicts? > > d:\git\webkit-org\source\javascriptcore\runtime\ArrayBufferSharingMode.h is > included twice, the first time, via the real path, the second time, via a > JavaScriptCore forwarding header. Note that this forwarding header is a copy > of the header file, not a pointer/alias to the real header path. > > The code that creates the forwarding header version comes from > D:\git\webkit-org\Source\JavaScriptCore\PlatformWin.cmake (see xcopy around > line 40). > > Do non-windows ports use a more intelligent method (a pointer, not a file > copy) for creating forwarding headers for JavaScriptCore includes? > > Is the windows build the only one to use unified sources currently? > > Source/WebKit/Scripts/generate-forwarding-headers.pl scans .c|.cpp files for > forwarding headers that need to be created and creates a header ‘pointer’ to > the real path, so both paths could be included (forwarding header vs. real) > and there would be no conflict, because ultimately, only the real header is > included. > > So I guess I’m suggesting to use a forwarding header ‘pointer’ instead of > header file xcopy, which would mean running a script that recurses > directories in javascriptcore and creates forwarding headers. That would > mean no duplicate header file name would be allowed in JavaScriptCore – I > don’t think that’s a problem though. (I don’t really like the idea of > grep’ing all webcore to create forwarding headers where needed, grep’ing > webcore gets expensive) . Just wondering if there are other suggestions. > > Thanks, > > Mark > > (Personally I don’t like forwarding headers but that’s another topic… not > sure if the benefits outweigh associated problems) > > D:\git\webkit-org\WebKitBuild\Debug\DerivedSources\WebCore\unified-sources\UnifiedSource180.cpp > > Turned on ‘show includes’, you can see the two ways I get to the same header > file: > > First source file including ArrayBufferSharingMode.h: > > 1>Note: including file: D:\git\webkit-org\Source\WebCore\css/DOMMatrix.cpp > > 1>Note: including file: D:\git\webkit-org\Source\WebCore\config.h > > 1>Note: including file: d:\git\webkit-org\source\webcore\css\DOMMatrix.h > > 1>Note: including file: > d:\git\webkit-org\source\webcore\css\DOMMatrixReadOnly.h > > 1>Note: including file: > d:\git\webkit-org\source\webcore\css\DOMMatrixInit.h > > 1>Note: including file: > d:\git\webkit-org\source\webcore\css\DOMMatrix2DInit.h > > 1>Note: including file: > D:\git\webkit-org\Source\WebCore\bindings\js\ScriptWrappable.h > > 1>Note: including file: > D:\git\webkit-org\Source\JavaScriptCore\heap/Weak.h > > 1>Note: including file: > D:\git\webkit-org\Source\WebCore\platform\graphics\transforms\TransformationMatrix.h > > 1>Note: including file: > D:\git\webkit-org\Source\WebCore\platform\graphics\FloatPoint.h > > 1>Note: including file: > d:\git\webkit-org\source\webcore\platform\graphics\FloatSize.h > > 1>Note: including file: > d:\git\webkit-org\source\webcore\platform\graphics\IntPoint.h > > 1>Note: including file: > d:\git\webkit-org\source\webcore\platform\graphics\IntSize.h > > 1>Note: including file: > D:\git\webkit-org\Source\WebCore\platform\graphics\FloatPoint3D.h > > 1>Note: including file: > D:\git\webkit-org\Source\JavaScriptCore\runtime/Float32Array.h > > 1>Note: including file: > d:\git\webkit-org\source\javascriptcore\runtime\TypedArrays.h > > 1>Note: including file: > d:\git\webkit-org\source\javascriptcore\runtime\GenericTypedArrayView.h > > 1>Note: including file: > d:\git\webkit-org\source\javascriptcore\runtime\ArrayBuffer.h > > 1>Note: including file: > d:\git\webkit-org\source\javascriptcore\runtime\ArrayBufferSharingMode.h > > Second source file including ArrayBufferSharingMode.h: > > 1>Note: including file: > D:\git\webkit-org\Source\WebCore\css/DOMMatrixReadOnly.cpp > > 1>Note: including file: D:\git\webkit-org\Source\WebCore\config.h > > 1>Note: including file: > d:\git\webkit-org\source\webcore\css\CSSToLengthConversionData.h > > 1>Note: including file: D:\git\webkit-org\Source\WebCore\dom\DOMPoint.h > > 1>Note: including file: > d:\git\webkit-org\source\webcore\dom\DOMPointReadOnly.h > > 1>Note: including file: d:\git\webkit-org\source\webcore\dom\DOMPointInit.h > > 1>Note: including file: > d:\git\webkit-org\source\webcore\css\TransformFunctions.h > > 1>Note: including file: > D:\git\webkit-org\Source\WebCore\platform\graphics\transforms\TransformOperations.h > > 1>Note: including file: > D:\git\webkit-org\Source\WebCore\platform\graphics\LayoutSize.h > > 1>Note: including file: > d:\git\webkit-org\source\webcore\platform\graphics\transforms\TransformOperation.h > > 1>Note: including file: > D:\git\webkit-org\WebKitBuild\Debug\DerivedSources\ForwardingHeaders\JavaScriptCore/GenericTypedArrayViewInlines.h > > 1>Note: including file: > d:\git\webkit-org\webkitbuild\debug\derivedsources\forwardingheaders\javascriptcore\GenericTypedArrayView.h > > 1>Note: including file: > d:\git\webkit-org\webkitbuild\debug\derivedsources\forwardingheaders\javascriptcore\ArrayBuffer.h > > 1>Note: including file: > d:\git\webkit-org\webkitbuild\debug\derivedsources\forwardingheaders\javascriptcore\ArrayBufferSharingMode.h > > , > > _______________________________________________ > webkit-dev mailing list > [email protected] > https://lists.webkit.org/mailman/listinfo/webkit-dev -- Regards, Konstantin _______________________________________________ webkit-dev mailing list [email protected] https://lists.webkit.org/mailman/listinfo/webkit-dev

