New issue
Advanced search Search tips

Issue 627224 link

Starred by 2 users

Issue metadata

Status: Duplicate
Merged: issue 622282
Owner: ----
Closed: Jul 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 3
Type: Bug-Regression



Sign in to add a comment

Mac: Widevine Release build error with GYP and mac_strip_release=1

Project Member Reported by marshall@chromium.org, Jul 11 2016

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
 
Cc: ddorwin@chromium.org
Components: -Internals>Media>Codecs Internals>Media>Encrypted
Status: Available (was: Untriaged)
error is in libwidevinecdm.dylib.TOC 
David, can you take a look?
Issue 626436 has been merged into this issue.
Note that with GYP the Debug build currently succeeds (only Release build failing) whereas with GN it does not.
Is this the same as  issue 622282 ?
Cc: rkuroiwa@chromium.org
I take it this is the build of the stub CDM which is failing?
@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.
See #4. A fix for that was just CQ'd.
Labels: Needs-Feedback
 Issue 622282  is now fixed. Does that resolve your issue?
Labels: -Needs-Feedback
Mergedinto: 622282
Status: Duplicate (was: Available)
@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