WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
NEW
143782
[Mac] TestWebKitAPI contains unit tests for WebCore features, but does not link to WebCore
https://bugs.webkit.org/show_bug.cgi?id=143782
Summary
[Mac] TestWebKitAPI contains unit tests for WebCore features, but does not li...
Brent Fulgham
Reported
2015-04-15 10:19:41 PDT
TestWebKitAPI has been instantiating and using WebCore objects without actually linking to the WebCore framework. This is causing build failures when using certain build settings that attempt to minimize symbol export. We should explicitly link to WebCore so that the linker can do the right thing.
Attachments
Add attachment
proposed patch, testcase, etc.
Simon Fraser (smfr)
Comment 1
2015-04-15 10:48:33 PDT
Or we should not link with WebCore, and expose testing functionality through SPI. It is, after all, Test*WebKitAPI*.
Alex Christensen
Comment 2
2015-04-15 10:51:31 PDT
If this is a problem, why does it ever work?
Brent Fulgham
Comment 3
2015-04-15 11:07:09 PDT
(In reply to
comment #1
)
> Or we should not link with WebCore, and expose testing functionality through > SPI. It is, after all, Test*WebKitAPI*.
Actually, we can't link against WebCore, that generates an error: "ld: cannot link directly with WebCore.framework. Link against the umbrella framework 'WebKit.framework' instead. for architecture x86_64" It looks like certain symbols are not getting exported via WebKit.framework. They appear to have WEBCORE_EXPORT declarations, and if those don't work properly I would expect many more linker errors than I am getting. Undefined symbols for architecture x86_64: "__ZN7WebCore17ContentExtensions15URLFilterParser10addPatternERKN3WTF6StringEby", referenced from: __ZN13TestWebKitAPI68ContentExtensionTest_StrictPrefixSeparatedMachines1Partitioning_Test8TestBodyEv in libTestWebKitAPI.a(ContentExtensions.o) __ZN13TestWebKitAPI68ContentExtensionTest_StrictPrefixSeparatedMachines2Partitioning_Test8TestBodyEv in libTestWebKitAPI.a(ContentExtensions.o) __ZN13TestWebKitAPIL17testPatternStatusEN3WTF6StringEN7WebCore17ContentExtensions15URLFilterParser11ParseStatusE in libTestWebKitAPI.a(ContentExtensions.o) __ZN13TestWebKitAPI20buildDFAFromPatternsEN3WTF6VectorIPKcLm0ENS0_15CrashOnOverflowEEE in DFAMinimizer.o "__ZN7WebCore17ContentExtensions15URLFilterParserC1ERNS0_18CombinedURLFiltersE", referenced from: __ZN13TestWebKitAPI68ContentExtensionTest_StrictPrefixSeparatedMachines1Partitioning_Test8TestBodyEv in libTestWebKitAPI.a(ContentExtensions.o) __ZN13TestWebKitAPI68ContentExtensionTest_StrictPrefixSeparatedMachines2Partitioning_Test8TestBodyEv in libTestWebKitAPI.a(ContentExtensions.o) __ZN13TestWebKitAPIL17testPatternStatusEN3WTF6StringEN7WebCore17ContentExtensions15URLFilterParser11ParseStatusE in libTestWebKitAPI.a(ContentExtensions.o) __ZN13TestWebKitAPI20buildDFAFromPatternsEN3WTF6VectorIPKcLm0ENS0_15CrashOnOverflowEEE in DFAMinimizer.o "__ZN7WebCore17ContentExtensions15URLFilterParserD1Ev", referenced from: __ZN13TestWebKitAPI68ContentExtensionTest_StrictPrefixSeparatedMachines1Partitioning_Test8TestBodyEv in libTestWebKitAPI.a(ContentExtensions.o) __ZN13TestWebKitAPI68ContentExtensionTest_StrictPrefixSeparatedMachines2Partitioning_Test8TestBodyEv in libTestWebKitAPI.a(ContentExtensions.o) __ZN13TestWebKitAPIL17testPatternStatusEN3WTF6StringEN7WebCore17ContentExtensions15URLFilterParser11ParseStatusE in libTestWebKitAPI.a(ContentExtensions.o) __ZN13TestWebKitAPI20buildDFAFromPatternsEN3WTF6VectorIPKcLm0ENS0_15CrashOnOverflowEEE in DFAMinimizer.o "__ZN7WebCore17ContentExtensions15compileRuleListERNS0_33ContentExtensionCompilationClientERKN3WTF6StringE", referenced from: __ZN13TestWebKitAPI18checkCompilerErrorEPKcN7WebCore17ContentExtensions21ContentExtensionErrorE in libTestWebKitAPI.a(ContentExtensions.o) __ZN13TestWebKitAPI32InMemoryCompiledContentExtension16createFromFilterERKN3WTF6StringE in libTestWebKitAPI.a(ContentExtensions.o) "__ZN7WebCore17ContentExtensions18CombinedURLFiltersC1Ev", referenced from: __ZN13TestWebKitAPI68ContentExtensionTest_StrictPrefixSeparatedMachines1Partitioning_Test8TestBodyEv in libTestWebKitAPI.a(ContentExtensions.o) __ZN13TestWebKitAPI68ContentExtensionTest_StrictPrefixSeparatedMachines2Partitioning_Test8TestBodyEv in libTestWebKitAPI.a(ContentExtensions.o) __ZN13TestWebKitAPIL17testPatternStatusEN3WTF6StringEN7WebCore17ContentExtensions15URLFilterParser11ParseStatusE in libTestWebKitAPI.a(ContentExtensions.o) __ZN13TestWebKitAPI20buildDFAFromPatternsEN3WTF6VectorIPKcLm0ENS0_15CrashOnOverflowEEE in DFAMinimizer.o "__ZN7WebCore17ContentExtensions18CombinedURLFiltersD1Ev", referenced from: __ZN13TestWebKitAPI68ContentExtensionTest_StrictPrefixSeparatedMachines1Partitioning_Test8TestBodyEv in libTestWebKitAPI.a(ContentExtensions.o) __ZN13TestWebKitAPI68ContentExtensionTest_StrictPrefixSeparatedMachines2Partitioning_Test8TestBodyEv in libTestWebKitAPI.a(ContentExtensions.o) __ZN13TestWebKitAPIL17testPatternStatusEN3WTF6StringEN7WebCore17ContentExtensions15URLFilterParser11ParseStatusE in libTestWebKitAPI.a(ContentExtensions.o) __ZN13TestWebKitAPI20buildDFAFromPatternsEN3WTF6VectorIPKcLm0ENS0_15CrashOnOverflowEEE in DFAMinimizer.o "__ZN7WebCore17ContentExtensions24CompiledContentExtensionD2Ev", referenced from: __ZN13TestWebKitAPI32InMemoryCompiledContentExtensionD2Ev in libTestWebKitAPI.a(ContentExtensions.o) "__ZN7WebCore17ContentExtensions24ContentExtensionsBackend19addContentExtensionERKN3WTF6StringENS2_6RefPtrINS0_24CompiledContentExtensionEEE", referenced from: __ZN13TestWebKitAPI11makeBackendEPKc in libTestWebKitAPI.a(ContentExtensions.o) "__ZN7WebCore17ContentExtensions3DFA8minimizeEv", referenced from: __ZN13TestWebKitAPI33DFAMinimizerTest_BasicSearch_Test8TestBodyEv in DFAMinimizer.o __ZN13TestWebKitAPI70DFAMinimizerTest_FallbackTransitionsWithDifferentiatorDoNotMerge1_Test8TestBodyEv in DFAMinimizer.o __ZN13TestWebKitAPI70DFAMinimizerTest_FallbackTransitionsWithDifferentiatorDoNotMerge2_Test8TestBodyEv in DFAMinimizer.o __ZN13TestWebKitAPI70DFAMinimizerTest_FallbackTransitionsWithDifferentiatorDoNotMerge3_Test8TestBodyEv in DFAMinimizer.o __ZN13TestWebKitAPI70DFAMinimizerTest_FallbackTransitionsWithDifferentiatorDoNotMerge4_Test8TestBodyEv in DFAMinimizer.o __ZN13TestWebKitAPI88DFAMinimizerTest_FallbackTransitionsToOtherNodeInSameGroupDoesNotDifferentiateGroup_Test8TestBodyEv in DFAMinimizer.o __ZN13TestWebKitAPI61DFAMinimizerTest_SimpleFallBackTransitionDifferentiator1_Test8TestBodyEv in DFAMinimizer.o ... "__ZN7WebCore17ContentExtensions8NFAToDFA7convertERNS0_3NFAE", referenced from: __ZN13TestWebKitAPI20buildDFAFromPatternsEN3WTF6VectorIPKcLm0ENS0_15CrashOnOverflowEEE in DFAMinimizer.o "__ZN7WebCore6LengthC1EON3WTF3RefINS_16CalculationValueEEE", referenced from: __ZN13TestWebKitAPI40CalculationValue_LengthConstruction_Test8TestBodyEv in libTestWebKitAPI.a(CalculationValue.o) __ZN13TestWebKitAPI53CalculationValue_LengthConstructionReleasedValue_Test8TestBodyEv in libTestWebKitAPI.a(CalculationValue.o) __ZN13TestWebKitAPI38CalculationValue_LengthAssignment_Test8TestBodyEv in libTestWebKitAPI.a(CalculationValue.o) __ZN13TestWebKitAPI51CalculationValue_LengthAssignmentReleasedValue_Test8TestBodyEv in libTestWebKitAPI.a(CalculationValue.o) "__ZNK7WebCore17ContentExtensions18CombinedURLFilters10createNFAsEv", referenced from: __ZN13TestWebKitAPI68ContentExtensionTest_StrictPrefixSeparatedMachines1Partitioning_Test8TestBodyEv in libTestWebKitAPI.a(ContentExtensions.o) __ZN13TestWebKitAPI68ContentExtensionTest_StrictPrefixSeparatedMachines2Partitioning_Test8TestBodyEv in libTestWebKitAPI.a(ContentExtensions.o) __ZN13TestWebKitAPI20buildDFAFromPatternsEN3WTF6VectorIPKcLm0ENS0_15CrashOnOverflowEEE in DFAMinimizer.o "__ZNK7WebCore17ContentExtensions24ContentExtensionsBackend22actionsForResourceLoadERKNS_16ResourceLoadInfoE", referenced from: __ZN13TestWebKitAPIL11testRequestEN7WebCore17ContentExtensions24ContentExtensionsBackendERKNS0_16ResourceLoadInfoEN3WTF6VectorINS1_10ActionTypeELm0ENS6_15CrashOnOverflowEEEb in libTestWebKitAPI.a(ContentExtensions.o) "__ZTVN7WebCore17ContentExtensions24CompiledContentExtensionE", referenced from: __ZN7WebCore17ContentExtensions24CompiledContentExtensionC2Ev in libTestWebKitAPI.a(ContentExtensions.o) NOTE: a missing vtable usually means the first non-inline virtual member function has no definition. ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug