New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 732897 link

Starred by 3 users

Issue metadata

Status: Untriaged
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Fuchsia
Pri: 3
Type: Bug



Sign in to add a comment

No RPATH support on Fuchsia (?)

Project Member Reported by scottmg@chromium.org, Jun 13 2017

Issue description

Refs:

https://chromium-review.googlesource.com/c/531877/
https://chromium-review.googlesource.com/c/533817/

Primiarily for is_component_build=true, but also for https://cs.chromium.org/chromium/src/base/native_library_unittest.cc?type=cs&q=test_shared_library+package:%5Echromium$&l=94 which is a simple .so load test, the .so fails to load.

Putting all .so into (/system/)lib/ seems to work, but that seems a bit icky.

Adding RPATH to the executable didn't seem to change anything.

https://fuchsia.googlesource.com/magenta/+/master/system/ulib/mxio/loader-service.c#63 looks as if it's only looking in /system/lib and /boot/lib but I'm not really sure if that's the only paths for finding .so's.


Should we expect RPATH support sometime? Or is the design that the .so will always have to be at a particular hardcoded path that doesn't include '.'?
 
Cc: mcgrathr@chromium.org
Cc: -cpu@chromium.org abarth@chromium.org
So, no, no RPATH support.

Fuchsia does [*] not have a global "the filesystem". The services and files that are visible to a given process are composed out of various namespaces. Rather than have your process directly load things specified by filesystem paths, you ask a service to do so for you. Eventually, the things your process is able to ask to load should be exactly the things whoever started you arranged for you to see. This makes the ickiness go away, since that collection isn't global. In the short term, I think putting them all into /system/lib is fine. Adam and Roland can probably correct me on details, but this is the flavor of things.

[*] does, or shortly will, for various bits of this. abarth@ and others are actively working on reducing the visibility of various parts of the system
Project Member

Comment 3 by bugdroid1@chromium.org, Jun 13 2017

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

commit dd777afa856f55dc8fa734e856f508fe7724fe7b
Author: Scott Graham <scottmg@chromium.org>
Date: Tue Jun 13 20:32:49 2017

fuchsia: put .so files (for is_component_build=true) in lib/

Without this, the loader complains about things like:

[00000.438] 01699.02331> dlsvc: could not open 'libbase.so'
[00000.438] 01699.02331> dlsvc: debug: Error loading shared library libbase.so: ERR_NOT_FOUND (needed by 
[00000.438] 01699.02331> dlsvc: debug: /system/base_unittests
[00000.438] 01699.02331> dlsvc: debug: )
[00000.438] 01699.02331> dlsvc: could not open 'libbase_i18n.so'
[00000.438] 01699.02331> dlsvc: debug: Error loading shared library libbase_i18n.so: ERR_NOT_FOUND (needed by 
[00000.438] 01699.02331> dlsvc: debug: /system/base_unittests
[00000.438] 01699.02331> dlsvc: debug: )
[00000.438] 01699.02331> dlsvc: could not open 'libicui18n.so'
[00000.438] 01699.02331> dlsvc: debug: Error loading shared library libicui18n.so: ERR_NOT_FOUND (needed by 
[00000.438] 01699.02331> dlsvc: debug: /system/base_unittests
[00000.438] 01699.02331> dlsvc: debug: )
[00000.439] 01699.02331> dlsvc: could not open 'libicuuc.so'
[00000.439] 01699.02331> dlsvc: debug: Error loading shared library libicuuc.so: ERR_NOT_FOUND (needed by 
[00000.439] 01699.02331> dlsvc: debug: /system/base_unittests
[00000.439] 01699.02331> dlsvc: debug: )
[00000.442] 01699.02331> dlsvc: debug: Error relocating /system/base_unittests: 
[00000.442] 01699.02331> dlsvc: debug: _ZN4base13AtExitManager16RegisterCallbackEPFvPvES1_
[00000.442] 01699.02331> dlsvc: debug: : symbol not found
[00000.442] 01699.02331> dlsvc: debug: Error relocating /system/base_unittests: 
[00000.442] 01699.02331> dlsvc: debug: _ZN4base13AtExitManager19ProcessCallbacksNowEv
[00000.442] 01699.02331> dlsvc: debug: : symbol not found

and then a million more.

After this change, component builds pass about as much as
non-component builds.

Bug: 706592, 732897
Change-Id: I053ca4b70fbff153f47a182b75c2538e6c3794e3
Reviewed-on: https://chromium-review.googlesource.com/531877
Commit-Queue: Scott Graham <scottmg@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#479132}
[modify] https://crrev.com/dd777afa856f55dc8fa734e856f508fe7724fe7b/build/fuchsia/test_runner.py

Comment 4 by w...@chromium.org, Jul 15 2017

Components: Internals>PlatformIntegration
Project Member

Comment 5 by bugdroid1@chromium.org, Aug 14 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/deps/icu.git/+/08cb956852a5ccdba7f9c941728bb833529ba3c6

commit 08cb956852a5ccdba7f9c941728bb833529ba3c6
Author: Scott Graham <scottmg@chromium.org>
Date: Mon Aug 14 19:22:33 2017

fuchsia: Rename icuuc and icui18n for component mode

Because the Fuchsia system bootdata.bin puts libicuuc.so and
libicui18n.so in /system/lib already (and they don't match our build),
and we have same-named .sos in component build, rename our copy.

Bug: 732897,  743296 
Change-Id: Ia195230c14d515ed14f9d90eb35aa87301eab601
Reviewed-on: https://chromium-review.googlesource.com/613506
Reviewed-by: Nico Weber <thakis@chromium.org>

[modify] https://crrev.com/08cb956852a5ccdba7f9c941728bb833529ba3c6/BUILD.gn

Project Member

Comment 6 by bugdroid1@chromium.org, Aug 15 2017

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

commit b6864ab5f4e21dabb6bcffaafff76bc869c13b2d
Author: Jungshik Shin <jshin@chromium.org>
Date: Tue Aug 15 19:23:00 2017

Roll ICU to 08cb956 and update the layout tests

There are two CLs in the roll:
  https://chromium.googlesource.com/chromium/deps/icu/+log/98218d1..08cb956

  08cb956 fuchsia: Rename icuuc and icui18n for component mode
  af9ff77 Update a few items in the data

UTF-32 is not listed in the encoding list any more in Chrome's copy of
ICU so that there's no more need to filter it out.

A few encoding name aliases for GBK/GB18030 are also dropped in Chrome's
copy of ICU to match the WHATWG encoding spec and to pass
fast/encoding/supported-encodings.html.

BUG=544228,339862,732897, 743296 , v8:6031 
TEST=LayoutTests: fast/encoding/supported-encodings.html

Change-Id: Iba169ee7a40d3121bb687be1d62e3058a9998411
Reviewed-on: https://chromium-review.googlesource.com/612785
Commit-Queue: Jungshik Shin <jshin@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#494490}
[modify] https://crrev.com/b6864ab5f4e21dabb6bcffaafff76bc869c13b2d/DEPS
[modify] https://crrev.com/b6864ab5f4e21dabb6bcffaafff76bc869c13b2d/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
[delete] https://crrev.com/39e3e5d18e666ae2f3d0a384ffc12ab273d29b68/third_party/WebKit/LayoutTests/fast/encoding/GBK/EUC-CN-expected.txt
[delete] https://crrev.com/39e3e5d18e666ae2f3d0a384ffc12ab273d29b68/third_party/WebKit/LayoutTests/fast/encoding/GBK/EUC-CN.html
[modify] https://crrev.com/b6864ab5f4e21dabb6bcffaafff76bc869c13b2d/third_party/WebKit/LayoutTests/fast/encoding/char-decoding.html
[modify] https://crrev.com/b6864ab5f4e21dabb6bcffaafff76bc869c13b2d/third_party/WebKit/LayoutTests/fast/encoding/char-encoding.html
[modify] https://crrev.com/b6864ab5f4e21dabb6bcffaafff76bc869c13b2d/third_party/WebKit/LayoutTests/fast/encoding/supported-encodings-expected.txt
[modify] https://crrev.com/b6864ab5f4e21dabb6bcffaafff76bc869c13b2d/third_party/WebKit/Source/platform/wtf/text/TextCodecICU.cpp

Sign in to add a comment