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

Reply via email to