New issue
Advanced search Search tips

Issue 910653 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Nov 30
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Fuchsia
Pri: 1
Type: Bug-Regression



Sign in to add a comment

Fuchsia/Debug/component build broken by missing TtsPlatformImpl::GetInstance symbol

Project Member Reported by w...@chromium.org, Nov 30

Issue description

It looks like https://chromium-review.googlesource.com/c/chromium/src/+/1352055 broke the Fuchsia/Debug/component FYI bot's compile step, which is now failing with:

FAILED: libcontent.so libcontent.so.TOC lib.unstripped/libcontent.so 
python "../../build/toolchain/gcc_solink_wrapper.py" --readelf="readelf" --nm="nm" --strip=../../third_party/eu-strip/bin/eu-strip --sofile="./lib.unstripped/libcontent.so" --tocfile="./libcontent.so.TOC" --output="./libcontent.so" -- ../../third_party/llvm-build/Release+Asserts/bin/clang++ -shared -Wl,--fatal-warnings -fPIC -Wl,-z,noexecstack -Wl,-z,now -Wl,-z,relro -Wl,-z,defs -Wl,--as-needed -fuse-ld=lld -Wl,--icf=all -Wl,--color-diagnostics --target=x86_64-fuchsia -Wl,-z,stack-size=0x800000 -Wl,--no-as-needed -lfdio -Wl,--as-needed -m64 -Werror -nostdlib++ --sysroot=../../third_party/fuchsia-sdk/sdk/arch/x64/sysroot -L../../third_party/fuchsia-sdk/sdk/arch/x64/lib -o "./lib.unstripped/libcontent.so" -Wl,-soname="libcontent.so" @"./libcontent.so.rsp"
ld.lld: error: undefined symbol: content::TtsPlatformImpl::GetInstance()
>>> referenced by tts_platform_impl.cc:19 (../../content/browser/speech/tts_platform_impl.cc:19)
>>>               obj/content/browser/browser/tts_platform_impl.o:(content::TtsPlatform::GetInstance())
clang: error: ld.lld command failed with exit code 1 (use -v to see invocation)

Looking at the BUILD.gn it seems that the required symbol is provided by tts_platform_impl.cc, which is included in the sources for all platforms, so it's not immediately obvious why this broke Fuchsia - unless the TtsPlatformImpl class needs to be "exported", perhaps, for component builds to work?
 
Cc: jam@chromium.org
@jam, do you have any ideas why the Fuchsia/Debug FYI bot compile started failing? No other Fuchsia bots seem to have started to fail besides this one.

Bot: https://ci.chromium.org/p/chromium/builders/luci.chromium.ci/fuchsia-fyi-x64-dbg

Example failure: https://logs.chromium.org/logs/chromium/buildbucket/cr-buildbucket.appspot.com/8928412104851228784/+/steps/compile/0/stdout


@wez, I can roll back the change until we figure this out?
Maybe it's because I didn't have a TtsPlatformImpl for Fuchsia, although I'm surprised it wasn't failing before because TtsPlatform::GetInstance was also not defined for Fuchsia? Maybe it was using TtsChromeOs before.
@katie: no need to revert, i think it's fine to fix async since this isn't on CQ.

I think the reason is that fuschia only builds content and not chrome. If chrome was built on fuschia before, it would have failed like this. so yeah you'll need a tts_fuschia.cc file with a TtsPlatformImpl::GetInstance .
Project Member

Comment 5 by bugdroid1@chromium.org, Nov 30

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/15ea3c471bba13b530aaabcb9c4ffaf3164e3435

commit 15ea3c471bba13b530aaabcb9c4ffaf3164e3435
Author: Katie D <katie@chromium.org>
Date: Fri Nov 30 20:08:55 2018

Fix Fuchsia compile bug with TtsPlatform.

Bug:  910653 
Change-Id: Id6009d4789c560e54c450377c16f1013e57a914c
Reviewed-on: https://chromium-review.googlesource.com/c/1356886
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Katie Dektar <katie@chromium.org>
Cr-Commit-Position: refs/heads/master@{#612744}
[modify] https://crrev.com/15ea3c471bba13b530aaabcb9c4ffaf3164e3435/content/browser/speech/tts_platform_impl.cc

Status: Fixed (was: Started)

Sign in to add a comment