Skip to content

Commit

Permalink
Make remoting_me2me_host build properly for official Mac 64-bit builds.
Browse files Browse the repository at this point in the history
remoting's symbol dumper was hard-coded to work on 32-bit x86 only. Similar to
r184545 for Chrome, it is now updated to check the built product for what
architectures are present. It will dump Breakpad symbols for 32-bit x86,
x86_64, or both, as present.

The symbol dumper is moved from an action in a distinct 'none'-type target to
a postbuild in the correct target. There was no guarantee that the 'none'
target would ever be built (and thus that symbols would be dumped), since
nothing actually depended on this target. It is likely that whatever required
symbols, if anything, was just building the 'All' target. This is not good
practice. A postbuild on the correct target is the right way to dump these
symbols.

Review URL: https://chromiumcodereview.appspot.com/17003003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@206360 0039d316-1c4b-4281-b951-d872f2087c98
  • Loading branch information
mark@chromium.org committed Jun 14, 2013
1 parent 35c4956 commit db45562
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 43 deletions.
48 changes: 16 additions & 32 deletions remoting/remoting.gyp
Original file line number Diff line number Diff line change
Expand Up @@ -897,6 +897,22 @@
],
},
],
'dependencies': [
'../breakpad/breakpad.gyp:dump_syms',
],
'postbuilds': [
{
'action_name': 'Dump Symbols',
'variables': {
'dump_product_syms_path':
'scripts/mac/dump_product_syms',
},
'action': [
'<(dump_product_syms_path)',
'<(version_full)',
],
}, # end of postbuild 'dump_symbols'
], # end of 'postbuilds'
}], # mac_breakpad==1
], # conditions
}], # OS=mac
Expand Down Expand Up @@ -1171,38 +1187,6 @@
], # conditions
}, # end of target 'remoting_host_prefpane'
], # end of 'targets'
'conditions': [
['mac_breakpad==1', {
'targets': [
{
'target_name': 'remoting_mac_symbols',
'type': 'none',
'dependencies': [
'../breakpad/breakpad.gyp:dump_syms',
'remoting_me2me_host',
],
'actions': [
{
'action_name': 'dump_symbols',
'inputs': [
'<(DEPTH)/remoting/scripts/mac/dump_product_syms',
'<(PRODUCT_DIR)/dump_syms',
'<(PRODUCT_DIR)/remoting_me2me_host.app',
],
'outputs': [
'<(PRODUCT_DIR)/remoting_me2me_host.app-<(version_full)-<(target_arch).breakpad',
],
'action': [
'<@(_inputs)',
'<@(_outputs)',
],
'message': 'Dumping breakpad symbols to <(_outputs)',
}, # end of action 'dump_symbols'
], # end of 'actions'
}, # end of target 'remoting_mac_symbols'
], # end of 'targets'
}], # 'mac_breakpad==1'
], # end of 'conditions'
}], # 'OS=="mac"'

['OS=="win"', {
Expand Down
30 changes: 19 additions & 11 deletions remoting/scripts/mac/dump_product_syms
Original file line number Diff line number Diff line change
Expand Up @@ -6,22 +6,30 @@

set -eu

if [[ "$#" -ne 3 ]]; then
echo "$0 <dump_syms_tool> <mac_bundle> <breakpad_symbols>" >&2
if [[ "$#" -ne 1 ]]; then
echo "usage: $0 <version>" >&2
echo "(BUILT_PRODUCTS_DIR and FULL_PRODUCT_NAME must be set)" >& 2
exit 1
fi

DUMP_SYMS_TOOL="$1"
SOURCE_BUNDLE="$2"
BREAKPAD_SYMBOLS="$3"

ARCH="i386"
VERSION="$1"
DUMP_SYMS_TOOL="${BUILT_PRODUCTS_DIR}/dump_syms"
SOURCE_BUNDLE="${BUILT_PRODUCTS_DIR}/${FULL_PRODUCT_NAME}"

# Filename of bundle, minus the file extension.
STEM="$(basename "${SOURCE_BUNDLE%.*}")"
DWARF_PATH="${SOURCE_BUNDLE}.dSYM/Contents/Resources/DWARF/${STEM}"

# Use -c to avoid dumping CFI, because the Breakpad stackwalk is incompatible
# with CFI produced by clang.
# http://code.google.com/p/google-breakpad/issues/detail?id=443
"${DUMP_SYMS_TOOL}" -a "${ARCH}" -c "${DWARF_PATH}" > "${BREAKPAD_SYMBOLS}"
ARCHS=$(file "${DWARF_PATH}" | sed -Ene 's/^.*(i386|x86_64)$/\1/p')
if [[ -z "${ARCHS}" ]]; then
echo "$0: expected something dumpable in ${DWARF_PATH}" >& 2
exit 1
fi

for ARCH in ${ARCHS}; do
# Use -c to avoid dumping CFI, because the Breakpad stackwalk is incompatible
# with CFI produced by clang.
# http://code.google.com/p/google-breakpad/issues/detail?id=443
"${DUMP_SYMS_TOOL}" -a "${ARCH}" -c "${DWARF_PATH}" > \
"${SOURCE_BUNDLE}-${VERSION}-${ARCH}.breakpad"
done

0 comments on commit db45562

Please sign in to comment.