diff options
author | mark@chromium.org <mark@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-06-14 07:39:54 +0000 |
---|---|---|
committer | mark@chromium.org <mark@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-06-14 07:39:54 +0000 |
commit | db4556247aa1180f9bc28befa8f8e95d30c4eb7e (patch) | |
tree | 49e842e5213c187826ebf786f31a514070ef6b5d /remoting/scripts/mac | |
parent | 35c495690d20c8bc624429af1b160e0ec1b7b2c7 (diff) | |
download | chromium_src-db4556247aa1180f9bc28befa8f8e95d30c4eb7e.zip chromium_src-db4556247aa1180f9bc28befa8f8e95d30c4eb7e.tar.gz chromium_src-db4556247aa1180f9bc28befa8f8e95d30c4eb7e.tar.bz2 |
Make remoting_me2me_host build properly for official Mac 64-bit builds.
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
Diffstat (limited to 'remoting/scripts/mac')
-rwxr-xr-x | remoting/scripts/mac/dump_product_syms | 30 |
1 files changed, 19 insertions, 11 deletions
diff --git a/remoting/scripts/mac/dump_product_syms b/remoting/scripts/mac/dump_product_syms index cc54a97..7c53948 100755 --- a/remoting/scripts/mac/dump_product_syms +++ b/remoting/scripts/mac/dump_product_syms @@ -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 |