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.

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

Reply via email to