chromium build fails with incl "undefined symbol: blink::CssPropertyID"

635 views
Skip to first unread message

Calvin

unread,
May 8, 2023, 1:27:33 PM5/8/23
to Chromium-dev
Hi

total noob to building any c++ projects, and hence also to building Chromium. 

I'm on RHEL8 which has made things a bit difficult (ubuntu looks much better supported).

I've been following the guides:

and also this:

my gn file looks like: 
enable_nacl=false
blink_symbol_level=0
v8_symbol_level=0

so when i run this everything else is fine but it gets stuck on these last 2500-ish blink files

ninja: Entering directory `out/Default'
[0/1] Regenerating ninja files
[2849/5010] SOLINK ./libblink_core.so
FAILED: libblink_core.so libblink_core.so.TOC
"python3" "../../build/toolchain/gcc_solink_wrapper.py" --readelf="../../third_party/llvm-build/Release+Asserts/bin/llvm-readelf" --nm="../../third_party/llvm-build/Release+Asserts/bin/llvm-nm" --sofile="./libblink_core.so" --tocfile="./libblink_core.so.TOC" --output="./libblink_core.so" -- ../../third_party/llvm-build/Release+Asserts/bin/clang++ -shared -Wl,-soname="libblink_core.so" -Werror -fuse-ld=lld -Wl,--fatal-warnings -Wl,--build-id -fPIC -Wl,-z,noexecstack -Wl,-z,relro -Wl,--color-diagnostics -Wl,--undefined-version -Wl,--no-call-graph-profile-sort -m64 -no-canonical-prefixes -rdynamic -Wl,-z,defs -Wl,--as-needed -nostdlib++ --sysroot=../../build/linux/debian_bullseye_amd64-sysroot -Wl,-rpath=\$ORIGIN -L../../build/linux/debian_bullseye_amd64-sysroot/usr/lib/x86_64-linux-gnu -o "./libblink_core.so" @"./libblink_core.so.rsp"
ld.lld: error: undefined symbol: blink::CssPropertyID(blink::ExecutionContext const*, WTF::String const&)
>>> referenced by web_element.cc
>>> obj/third_party/blink/renderer/core/exported/exported/web_element.o:(blink::WebElement::GetComputedValue(blink::WebString const&))
>>> referenced by animation_input_helpers.cc
>>> obj/third_party/blink/renderer/core/animation/animation/animation_input_helpers.o:(blink::AnimationInputHelpers::KeyframeAttributeToCSSProperty(WTF::String const&, blink::Document const&))
>>> referenced by animation_input_helpers.cc
>>> obj/third_party/blink/renderer/core/animation/animation/animation_input_helpers.o:(blink::AnimationInputHelpers::KeyframeAttributeToPresentationAttribute(WTF::String const&, blink::Element const*))
>>> referenced 23 more times

ld.lld: error: undefined symbol: blink::GetCSSSampleId(blink::CSSPropertyID)
>>> referenced by use_counter_impl.cc
>>> obj/third_party/blink/renderer/core/core/use_counter_impl.o:(blink::UseCounterImpl::IsCounted(blink::CSSPropertyID, blink::UseCounterImpl::CSSPropertyType) const)
>>> referenced by use_counter_impl.cc
>>> obj/third_party/blink/renderer/core/core/use_counter_impl.o:(blink::UseCounterImpl::Count(blink::CSSPropertyID, blink::UseCounterImpl::CSSPropertyType, blink::LocalFrame const*))

ld.lld: error: undefined symbol: blink::CSSPropertyIDAsAtRuleDescriptor(blink::CSSPropertyID)
>>> referenced by css_property_parser.cc
>>> obj/third_party/blink/renderer/core/core/css_property_parser.o:(blink::CSSPropertyParser::ParseFontFaceDescriptor(blink::CSSPropertyID))

ld.lld: error: undefined symbol: blink::FindProperty(char const*, unsigned int)
>>> referenced by css_property_parser.cc
>>> obj/third_party/blink/renderer/core/core/css_property_parser.o:(blink::CSSPropertyID blink::UnresolvedCSSPropertyID<unsigned char>(blink::ExecutionContext const*, unsigned char const*, unsigned int, blink::CSSParserMode))
>>> referenced by css_property_parser.cc
>>> obj/third_party/blink/renderer/core/core/css_property_parser.o:(blink::CSSPropertyID blink::UnresolvedCSSPropertyID<unsigned char>(blink::ExecutionContext const*, unsigned char const*, unsigned int, blink::CSSParserMode))
>>> referenced by css_property_parser.cc
>>> obj/third_party/blink/renderer/core/core/css_property_parser.o:(blink::CSSPropertyID blink::UnresolvedCSSPropertyID<char16_t>(blink::ExecutionContext const*, char16_t const*, unsigned int, blink::CSSParserMode))
>>> referenced 1 more times

ld.lld: error: undefined symbol: blink::AsAtRuleDescriptorID(WTF::StringView)
>>> referenced by css_parser_token.cc
>>> obj/third_party/blink/renderer/core/core/css_parser_token.o:(blink::CSSParserToken::ParseAsAtRuleDescriptorID() const)

ld.lld: error: undefined symbol: blink::AtRuleDescriptorIDAsCSSPropertyID(blink::AtRuleDescriptorID)
>>> referenced by at_rule_descriptor_parser.cc
>>> obj/third_party/blink/renderer/core/core/at_rule_descriptor_parser.o:(blink::AtRuleDescriptorParser::ParseAtRule(blink::StyleRuleBase::RuleType, blink::AtRuleDescriptorID, blink::CSSTokenizedValue const&, blink::CSSParserContext const&, blink::HeapVector<blink::CSSPropertyValue, 64u>&))
>>> referenced by css_property_value_set.cc
>>> obj/third_party/blink/renderer/core/core/css_property_value_set.o:(blink::GetConvertedCSSPropertyID(blink::AtRuleDescriptorID))
>>> referenced by css_property_value_set.cc
>>> obj/third_party/blink/renderer/core/core/css_property_value_set.o:(blink::IsPropertyMatch(blink::CSSPropertyValueMetadata const&, unsigned short, blink::AtRuleDescriptorID))

ld.lld: error: undefined symbol: blink::ResolveCSSPropertyAlias(int)
>>> referenced by abstract_property_set_css_style_declaration.cc
>>> obj/third_party/blink/renderer/core/core/abstract_property_set_css_style_declaration.o:(blink::ResolveCSSPropertyID(blink::CSSPropertyID))
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.


i can only assume that the blink stuff is _included_ when i do "fetch chrome". There is some old documentation saying that you can do a "fetch blink" as well (which does blink + chrome) but that option doesnt exist any more. 

I also ran an extra "gclient sync" just in case the correct version Blink libraries had not been downloaded..

and now i'm quite out of ideas and would _really_ appreciate any help 

thanks!

K. Moon

unread,
May 8, 2023, 1:50:03 PM5/8/23
to calvin...@gmail.com, Chromium-dev
CssPropertyID() is defined in a generated file; Ninja should be making sure any dependencies get built, but perhaps you have a problem related to a missing or corrupted file?

The generated file should be in your out directory, under gen/third_party/blink/renderer/core/css/css_property_names.cc.

--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/29e82474-f6e8-419f-b289-d59705e7a171n%40chromium.org.

K. Moon

unread,
May 9, 2023, 11:42:59 AM5/9/23
to Calvin, Chromium-dev
Thanks for circling back! Sounds like you happened to have checked out a bad commit.

On Tue, May 9, 2023, 3:51 AM Calvin <calvin...@gmail.com> wrote:
thanks!
what i ended up doing was git-checking out the last-known-good (LKGR) config for this. 

the build worked first time and didnt get any of the blink errors. 

I only needed to get a build with symbols so i could debug some client-side kerberos stuff.. .but that's still a bit of a nightmare.

Calvin

unread,
May 9, 2023, 1:29:38 PM5/9/23
to Chromium-dev, K. Moon, Chromium-dev, calvin...@gmail.com
thanks!
what i ended up doing was git-checking out the last-known-good (LKGR) config for this. 

the build worked first time and didnt get any of the blink errors. 

I only needed to get a build with symbols so i could debug some client-side kerberos stuff.. .but that's still a bit of a nightmare.

On Monday, May 8, 2023 at 7:50:03 PM UTC+2 K. Moon wrote:
Reply all
Reply to author
Forward
0 new messages