Issue metadata
Sign in to add a comment
|
Mac: Widevine Release build error with GYP and mac_strip_release=1 |
||||||||||||||||||||||||
Issue description
Version: Chromium master revision 68623971 (#403382)
OS: Mac OS X 10.11.5 (15F34)
What steps will reproduce the problem?
(1) Create a Release build of a Content API-based application using GYP with GYP_DEFINES=mac_strip_release=1
What is the expected output?
The build should succeed.
What do you see instead?
Instead it fails with the following errors:
[6662/16525] SOLINK WidevineCdm/_platform_specific/mac_x64/libwidevinecdm.dylib, POSTBUILDS
FAILED: WidevineCdm/_platform_specific/mac_x64/libwidevinecdm.dylib WidevineCdm/_platform_specific/mac_x64/libwidevinecdm.dylib.TOC
if [ ! -e WidevineCdm/_platform_specific/mac_x64/libwidevinecdm.dylib -o ! -e WidevineCdm/_platform_specific/mac_x64/libwidevinecdm.dylib.TOC ] || otool -l WidevineCdm/_platform_specific/mac_x64/libwidevinecdm.dylib | grep -q LC_REEXPORT_DYLIB ; then ../../third_party/llvm-build/Release+Asserts/bin/clang++ -shared -Wl,-search_paths_first -Wl,-dead_strip -mmacosx-version-min=10.7 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk -arch x86_64 -L./ -install_name @loader_path/libwidevinecdm.dylib -stdlib=libc++ -o WidevineCdm/_platform_specific/mac_x64/libwidevinecdm.dylib @WidevineCdm/_platform_specific/mac_x64/libwidevinecdm.dylib.rsp && (export BUILT_FRAMEWORKS_DIR=/Users/marshall/code/chromium_git/chromium/src/out/Release; export BUILT_PRODUCTS_DIR=/Users/marshall/code/chromium_git/chromium/src/out/Release; export CONFIGURATION=Release; export DYLIB_INSTALL_NAME_BASE=@loader_path; export EXECUTABLE_NAME=libwidevinecdm.dylib; export EXECUTABLE_PATH=libwidevinecdm.dylib; export FULL_PRODUCT_NAME=libwidevinecdm.dylib; export LD_DYLIB_INSTALL_NAME=@loader_path/libwidevinecdm.dylib; export MACH_O_TYPE=mh_dylib; export PRODUCT_NAME=widevinecdm; export PRODUCT_TYPE=com.apple.product-type.library.dynamic; export SDKROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk; export SRCROOT=/Users/marshall/code/chromium_git/chromium/src/out/Release/../../third_party/widevine/cdm; export SOURCE_ROOT="${SRCROOT}"; export TARGET_BUILD_DIR=/Users/marshall/code/chromium_git/chromium/src/out/Release; export TEMP_DIR="${TMPDIR}"; export XCODE_VERSION_ACTUAL=0731; (cd ../../third_party/widevine/cdm && ../../../build/mac/strip_from_xcode); G=$?; ((exit $G) || rm -rf WidevineCdm/_platform_specific/mac_x64/libwidevinecdm.dylib) && exit $G) && { otool -l WidevineCdm/_platform_specific/mac_x64/libwidevinecdm.dylib | grep LC_ID_DYLIB -A 5; nm -gP WidevineCdm/_platform_specific/mac_x64/libwidevinecdm.dylib | cut -f1-2 -d' ' | grep -v U$; true; } > WidevineCdm/_platform_specific/mac_x64/libwidevinecdm.dylib.TOC; else ../../third_party/llvm-build/Release+Asserts/bin/clang++ -shared -Wl,-search_paths_first -Wl,-dead_strip -mmacosx-version-min=10.7 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk -arch x86_64 -L./ -install_name @loader_path/libwidevinecdm.dylib -stdlib=libc++ -o WidevineCdm/_platform_specific/mac_x64/libwidevinecdm.dylib @WidevineCdm/_platform_specific/mac_x64/libwidevinecdm.dylib.rsp && (export BUILT_FRAMEWORKS_DIR=/Users/marshall/code/chromium_git/chromium/src/out/Release; export BUILT_PRODUCTS_DIR=/Users/marshall/code/chromium_git/chromium/src/out/Release; export CONFIGURATION=Release; export DYLIB_INSTALL_NAME_BASE=@loader_path; export EXECUTABLE_NAME=libwidevinecdm.dylib; export EXECUTABLE_PATH=libwidevinecdm.dylib; export FULL_PRODUCT_NAME=libwidevinecdm.dylib; export LD_DYLIB_INSTALL_NAME=@loader_path/libwidevinecdm.dylib; export MACH_O_TYPE=mh_dylib; export PRODUCT_NAME=widevinecdm; export PRODUCT_TYPE=com.apple.product-type.library.dynamic; export SDKROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk; export SRCROOT=/Users/marshall/code/chromium_git/chromium/src/out/Release/../../third_party/widevine/cdm; export SOURCE_ROOT="${SRCROOT}"; export TARGET_BUILD_DIR=/Users/marshall/code/chromium_git/chromium/src/out/Release; export TEMP_DIR="${TMPDIR}"; export XCODE_VERSION_ACTUAL=0731; (cd ../../third_party/widevine/cdm && ../../../build/mac/strip_from_xcode); G=$?; ((exit $G) || rm -rf WidevineCdm/_platform_specific/mac_x64/libwidevinecdm.dylib) && exit $G) && { otool -l WidevineCdm/_platform_specific/mac_x64/libwidevinecdm.dylib | grep LC_ID_DYLIB -A 5; nm -gP WidevineCdm/_platform_specific/mac_x64/libwidevinecdm.dylib | cut -f1-2 -d' ' | grep -v U$; true; } > WidevineCdm/_platform_specific/mac_x64/libwidevinecdm.dylib.tmp && if ! cmp -s WidevineCdm/_platform_specific/mac_x64/libwidevinecdm.dylib.tmp WidevineCdm/_platform_specific/mac_x64/libwidevinecdm.dylib.TOC; then mv WidevineCdm/_platform_specific/mac_x64/libwidevinecdm.dylib.tmp WidevineCdm/_platform_specific/mac_x64/libwidevinecdm.dylib.TOC ; fi; fi
Traceback (most recent call last):
File "/Users/marshall/code/chromium_git/chromium/src/third_party/widevine/cdm/../../../build/mac/strip_save_dsym", line 335, in <module>
sys.exit(main(sys.argv))
File "/Users/marshall/code/chromium_git/chromium/src/third_party/widevine/cdm/../../../build/mac/strip_save_dsym", line 329, in main
if not strip_and_make_fake_dsym(macho):
File "/Users/marshall/code/chromium_git/chromium/src/third_party/widevine/cdm/../../../build/mac/strip_save_dsym", line 263, in strip_and_make_fake_dsym
macho_stat = os.stat(macho)
OSError: [Errno 2] No such file or directory: '/Users/marshall/code/chromium_git/chromium/src/out/Release/libwidevinecdm.dylib'
Please use labels and text to provide additional information.
The command is building "WidevineCdm/_platform_specific/mac_x64/libwidevinecdm.dylib" and then immediately trying to execute strip_save_dsym on "libwidevinecdm.dylib". It's unclear how to insert a copy step between these two actions, or how to have strip_save_dsym look for libwidevinecdm.dylib at the correct path.
There's also this comment in widevine_cdm.gyp [1]:
# Put Widevine CDM adapter to the correct path directly except
# for mac. On mac strip_save_dsym doesn't work with product_dir
# so we rely on "widevinecdmadapter" target to copy it over.
# See http://crbug.com/611990
However, there is already a dependency on the `widevinecdmadapter` target and I can't view issue #611990 for further details.
[1] https://cs.chromium.org/chromium/src/third_party/widevine/cdm/widevine_cdm.gyp?rcl=0&l=130
,
Jul 11 2016
Issue 626436 has been merged into this issue.
,
Jul 11 2016
Note that with GYP the Debug build currently succeeds (only Release build failing) whereas with GN it does not.
,
Jul 12 2016
Is this the same as issue 622282 ?
,
Jul 13 2016
,
Jul 13 2016
I take it this is the build of the stub CDM which is failing?
,
Jul 13 2016
@comment#6: The goal is to build libwidevinecdmadapter.plugin ("//third_party/widevine/cdm:widevinecdmadapter" target?) for inclusion in the app bundle. The stub CDM generated by the build, if any, is not used.
,
Jul 14 2016
See #4. A fix for that was just CQ'd.
,
Jul 15 2016
,
Jul 15 2016
@comment#9: Marking this as a dup of issue #622282 for now. I'll re-open if I experience further Widevine-related build issues. |
|||||||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||||||
Comment 1 by yini...@chromium.org
, Jul 11 2016Components: -Internals>Media>Codecs Internals>Media>Encrypted
Status: Available (was: Untriaged)