# Copyright (c) 2009 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# This .order file defines the order that symbols should be laid out in the
# Mac framework.  The framework does not contain many global text symbols, and
# in release mode, does not contain any non-global text symbols after being
# stripped.  In order to avoid symbolization of stripped binaries from showing
# confusing offsets from the few public symbols that are available, an
# easily-recognized symbol, _ChromeMain, is placed last among global text
# symbols.
#
# Not all symbols will appear in all build types.  Varying optimizations may
# result in differences between the set of symbols present in debug and
# release modes.  When Breakpad is in use, _catch_exception_raise will be
# present, but it will not appear in non-Breakpad-enabled builds.  It is not
# an error to list symbols in this file that will not be present in each
# output variant.

_NP_GetEntryPoints
_NP_GetMIMEDescription
_NP_GetValue
_NP_Initialize
_NP_Shutdown
__CTFontManagerUnregisterFontForData
__ZN7WebCore22narrowPrecisionToFloatIdEEfT_
__ZN7WebCore24narrowPrecisionToCGFloatIdEEfT_
__ZnwmPv
__ZdlPvS_
_catch_exception_raise

# List the gcov symbols so the code coverage bot doesn't trip up in
# the verify_order post build step.
___gcov_init
___gcov_seek
___gcov_write_tag_length
___gcov_write_counter
___gcov_write_unsigned
___gcov_write_summary
___gcov_read_counter
___gcov_read_unsigned
___gcov_read_summary
___gcov_close
___gcov_open
___gcov_flush
___gcov_merge_add
___gcov_fork

# Provided by build/sanitizers/sanitizer_options.cc in ASan builds.
___asan_default_options

# Written in asm as a .globl.  (Is that necessary?)
_NaClSwitch
_NaClSyscallSeg

# Entry point from the app mode loader.
_ChromeAppModeStart

# _ChromeMain must be listed last.  That's the whole point of this file.
_ChromeMain
