No RPATH support on Fuchsia (?) |
|||
Issue descriptionRefs: 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 '.'?
,
Jun 13 2017
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
,
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
,
Jul 15 2017
,
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
,
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 |
|||
Comment 1 by kulakowski@chromium.org
, Jun 13 2017