diff options
| author | Ben Murdoch <benm@google.com> | 2012-04-11 18:30:58 +0100 |
|---|---|---|
| committer | Ben Murdoch <benm@google.com> | 2012-04-11 18:39:07 +0100 |
| commit | 85b71799222b55eb5dd74ea26efe0c64ab655c8c (patch) | |
| tree | 0d0fa6be365df4b76fe2985458b3a9b9afd80988 /build | |
| parent | 5d4cdbf7a67d3662fa0bee4efdb7edd8daec9b0b (diff) | |
| download | android_external_v8-85b71799222b55eb5dd74ea26efe0c64ab655c8c.tar.gz android_external_v8-85b71799222b55eb5dd74ea26efe0c64ab655c8c.tar.bz2 android_external_v8-85b71799222b55eb5dd74ea26efe0c64ab655c8c.zip | |
Roll V8 back to 3.6
Roll back to V8 3.6 to fix x86 build, we don't have ucontext.h.
This reverts commits:
5d4cdbf7a67d3662fa0bee4efdb7edd8daec9b0b
c7cc028aaeedbbfa11c11d0b7b243b3d9e837ed9
592a9fc1d8ea420377a2e7efd0600e20b058be2b
Bug: 5688872
Change-Id: Ic961bb5e65b778e98bbfb71cce71d99fa949e995
Diffstat (limited to 'build')
| -rw-r--r-- | build/android.gypi | 225 | ||||
| -rw-r--r-- | build/common.gypi | 136 | ||||
| -rwxr-xr-x | build/gyp_v8 | 5 | ||||
| -rw-r--r-- | build/mipsu.gypi | 33 | ||||
| -rw-r--r-- | build/standalone.gypi | 45 |
5 files changed, 35 insertions, 409 deletions
diff --git a/build/android.gypi b/build/android.gypi deleted file mode 100644 index ffd06484..00000000 --- a/build/android.gypi +++ /dev/null @@ -1,225 +0,0 @@ -# Copyright 2012 the V8 project authors. All rights reserved. -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following -# disclaimer in the documentation and/or other materials provided -# with the distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived -# from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -# Definitions for building standalone V8 binaries to run on Android. -# This is mostly excerpted from: -# http://src.chromium.org/viewvc/chrome/trunk/src/build/common.gypi - -{ - 'variables': { - # Location of Android NDK. - 'variables': { - 'variables': { - 'android_ndk_root%': '<!(/bin/echo -n $ANDROID_NDK_ROOT)', - 'android_target_arch%': 'arm', # target_arch in android terms. - - # Switch between different build types, currently only '0' is - # supported. - 'android_build_type%': 0, - }, - 'android_ndk_root%': '<(android_ndk_root)', - 'android_ndk_sysroot': '<(android_ndk_root)/platforms/android-9/arch-<(android_target_arch)', - 'android_build_type%': '<(android_build_type)', - }, - 'android_ndk_root%': '<(android_ndk_root)', - 'android_ndk_sysroot': '<(android_ndk_sysroot)', - 'android_ndk_include': '<(android_ndk_sysroot)/usr/include', - 'android_ndk_lib': '<(android_ndk_sysroot)/usr/lib', - # Enable to use the system stlport, otherwise statically - # link the NDK one? - 'use_system_stlport%': '<(android_build_type)', - 'android_stlport_library': 'stlport_static', - # Copy it out one scope. - 'android_build_type%': '<(android_build_type)', - - 'OS': 'android', - 'target_arch': 'arm', - 'v8_target_arch': 'arm', - 'armv7': 1, - 'arm_neon': 0, - 'arm_fpu': 'vfpv3', - }, # variables - 'target_defaults': { - 'defines': [ - 'ANDROID', - 'V8_ANDROID_LOG_STDOUT', - ], - 'configurations': { - 'Release': { - 'cflags!': [ - '-O2', - '-Os', - ], - 'cflags': [ - '-fdata-sections', - '-ffunction-sections', - '-fomit-frame-pointer', - '-O3', - ], - }, # Release - }, # configurations - 'cflags': [ '-Wno-abi', '-Wall', '-W', '-Wno-unused-parameter', - '-Wnon-virtual-dtor', '-fno-rtti', '-fno-exceptions', ], - 'target_conditions': [ - ['_toolset=="target"', { - 'cflags!': [ - '-pthread', # Not supported by Android toolchain. - ], - 'cflags': [ - '-U__linux__', # Don't allow toolchain to claim -D__linux__ - '-ffunction-sections', - '-funwind-tables', - '-fstack-protector', - '-fno-short-enums', - '-finline-limit=64', - '-Wa,--noexecstack', - '-Wno-error=non-virtual-dtor', # TODO(michaelbai): Fix warnings. - # Note: This include is in cflags to ensure that it comes after - # all of the includes. - '-I<(android_ndk_include)', - '-march=armv7-a', - '-mtune=cortex-a8', - '-mfpu=vfp3', - ], - 'defines': [ - 'ANDROID', - #'__GNU_SOURCE=1', # Necessary for clone() - 'USE_STLPORT=1', - '_STLP_USE_PTR_SPECIALIZATIONS=1', - 'HAVE_OFF64_T', - 'HAVE_SYS_UIO_H', - 'ANDROID_BINSIZE_HACK', # Enable temporary hacks to reduce binsize. - ], - 'ldflags!': [ - '-pthread', # Not supported by Android toolchain. - ], - 'ldflags': [ - '-nostdlib', - '-Wl,--no-undefined', - '-Wl,--icf=safe', # Enable identical code folding to reduce size - # Don't export symbols from statically linked libraries. - '-Wl,--exclude-libs=ALL', - ], - 'libraries!': [ - '-lrt', # librt is built into Bionic. - # Not supported by Android toolchain. - # Where do these come from? Can't find references in - # any Chromium gyp or gypi file. Maybe they come from - # gyp itself? - '-lpthread', '-lnss3', '-lnssutil3', '-lsmime3', '-lplds4', '-lplc4', '-lnspr4', - ], - 'libraries': [ - '-l<(android_stlport_library)', - # Manually link the libgcc.a that the cross compiler uses. - '<!($CC -print-libgcc-file-name)', - '-lc', - '-ldl', - '-lstdc++', - '-lm', - ], - 'conditions': [ - ['android_build_type==0', { - 'ldflags': [ - '-Wl,-rpath-link=<(android_ndk_lib)', - '-L<(android_ndk_lib)', - ], - }], - # NOTE: The stlport header include paths below are specified in - # cflags rather than include_dirs because they need to come - # after include_dirs. Think of them like system headers, but - # don't use '-isystem' because the arm-linux-androideabi-4.4.3 - # toolchain (circa Gingerbread) will exhibit strange errors. - # The include ordering here is important; change with caution. - ['use_system_stlport==0', { - 'cflags': [ - '-I<(android_ndk_root)/sources/cxx-stl/stlport/stlport', - ], - 'conditions': [ - ['target_arch=="arm" and armv7==1', { - 'ldflags': [ - '-L<(android_ndk_root)/sources/cxx-stl/stlport/libs/armeabi-v7a', - ], - }], - ['target_arch=="arm" and armv7==0', { - 'ldflags': [ - '-L<(android_ndk_root)/sources/cxx-stl/stlport/libs/armeabi', - ], - }], - ['target_arch=="ia32"', { - 'ldflags': [ - '-L<(android_ndk_root)/sources/cxx-stl/stlport/libs/x86', - ], - }], - ], - }], - ['target_arch=="ia32"', { - # The x86 toolchain currently has problems with stack-protector. - 'cflags!': [ - '-fstack-protector', - ], - 'cflags': [ - '-fno-stack-protector', - ], - }], - ], - 'target_conditions': [ - ['_type=="executable"', { - 'ldflags': [ - '-Bdynamic', - '-Wl,-dynamic-linker,/system/bin/linker', - '-Wl,--gc-sections', - '-Wl,-z,nocopyreloc', - # crtbegin_dynamic.o should be the last item in ldflags. - '<(android_ndk_lib)/crtbegin_dynamic.o', - ], - 'libraries': [ - # crtend_android.o needs to be the last item in libraries. - # Do not add any libraries after this! - '<(android_ndk_lib)/crtend_android.o', - ], - }], - ['_type=="shared_library"', { - 'ldflags': [ - '-Wl,-shared,-Bsymbolic', - ], - }], - ], - }], # _toolset=="target" - # Settings for building host targets using the system toolchain. - ['_toolset=="host"', { - 'cflags': [ '-m32', '-pthread' ], - 'ldflags': [ '-m32', '-pthread' ], - 'ldflags!': [ - '-Wl,-z,noexecstack', - '-Wl,--gc-sections', - '-Wl,-O1', - '-Wl,--as-needed', - ], - }], - ], # target_conditions - }, # target_defaults -}
\ No newline at end of file diff --git a/build/common.gypi b/build/common.gypi index 5c0c3234..4e896e01 100644 --- a/build/common.gypi +++ b/build/common.gypi @@ -1,4 +1,4 @@ -# Copyright 2012 the V8 project authors. All rights reserved. +# Copyright 2011 the V8 project authors. All rights reserved. # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are # met: @@ -50,35 +50,21 @@ # probing when running on the target. 'v8_can_use_vfp_instructions%': 'false', - # Similar to vfp but on MIPS. - 'v8_can_use_fpu_instructions%': 'true', - # Setting v8_use_arm_eabi_hardfloat to true will turn on V8 support for ARM # EABI calling convention where double arguments are passed in VFP # registers. Note that the GCC flag '-mfloat-abi=hard' should be used as # well when compiling for the ARM target. 'v8_use_arm_eabi_hardfloat%': 'false', - # Similar to the ARM hard float ABI but on MIPS. - 'v8_use_mips_abi_hardfloat%': 'true', - - # Default arch variant for MIPS. - 'mips_arch_variant%': 'mips32r2', - 'v8_enable_debugger_support%': 1, 'v8_enable_disassembler%': 0, - 'v8_object_print%': 0, - 'v8_enable_gdbjit%': 0, # Enable profiling support. Only required on Windows. 'v8_enable_prof%': 0, - # Some versions of GCC 4.5 seem to need -fno-strict-aliasing. - 'v8_no_strict_aliasing%': 0, - # Chrome needs this definition unconditionally. For standalone V8 builds, # it's handled in build/standalone.gypi. 'want_separate_host_toolset%': 1, @@ -86,12 +72,6 @@ 'v8_use_snapshot%': 'true', 'host_os%': '<(OS)', 'v8_use_liveobjectlist%': 'false', - 'werror%': '-Werror', - - # With post mortem support enabled, metadata is embedded into libv8 that - # describes various parameters of the VM for use by debuggers. See - # tools/gen-postmortem-metadata.py for details. - 'v8_postmortem_support%': 'false', # For a shared library build, results in "libv8-<(soname_version).so". 'soname_version%': '', @@ -104,9 +84,6 @@ ['v8_enable_disassembler==1', { 'defines': ['ENABLE_DISASSEMBLER',], }], - ['v8_object_print==1', { - 'defines': ['OBJECT_PRINT',], - }], ['v8_enable_gdbjit==1', { 'defines': ['ENABLE_GDB_JIT_INTERFACE',], }], @@ -152,7 +129,7 @@ }], # The ARM assembler assumes the host is 32 bits, # so force building 32-bit host tools. - ['host_arch=="x64" or OS=="android"', { + ['host_arch=="x64"', { 'target_conditions': [ ['_toolset=="host"', { 'cflags': ['-m32'], @@ -171,64 +148,6 @@ 'defines': [ 'V8_TARGET_ARCH_MIPS', ], - 'conditions': [ - [ 'target_arch=="mips"', { - 'target_conditions': [ - ['_toolset=="target"', { - 'cflags': ['-EL'], - 'ldflags': ['-EL'], - 'conditions': [ - [ 'v8_use_mips_abi_hardfloat=="true"', { - 'cflags': ['-mhard-float'], - 'ldflags': ['-mhard-float'], - }, { - 'cflags': ['-msoft-float'], - 'ldflags': ['-msoft-float'], - }], - ['mips_arch_variant=="mips32r2"', { - 'cflags': ['-mips32r2', '-Wa,-mips32r2'], - }], - ['mips_arch_variant=="loongson"', { - 'cflags': ['-mips3', '-Wa,-mips3'], - }, { - 'cflags': ['-mips32', '-Wa,-mips32'], - }], - ], - }], - ], - }], - [ 'v8_can_use_fpu_instructions=="true"', { - 'defines': [ - 'CAN_USE_FPU_INSTRUCTIONS', - ], - }], - [ 'v8_use_mips_abi_hardfloat=="true"', { - 'defines': [ - '__mips_hard_float=1', - 'CAN_USE_FPU_INSTRUCTIONS', - ], - }, { - 'defines': [ - '__mips_soft_float=1' - ], - }], - ['mips_arch_variant=="mips32r2"', { - 'defines': ['_MIPS_ARCH_MIPS32R2',], - }], - ['mips_arch_variant=="loongson"', { - 'defines': ['_MIPS_ARCH_LOONGSON',], - }], - # The MIPS assembler assumes the host is 32 bits, - # so force building 32-bit host tools. - ['host_arch=="x64"', { - 'target_conditions': [ - ['_toolset=="host"', { - 'cflags': ['-m32'], - 'ldflags': ['-m32'], - }], - ], - }], - ], }], ['v8_target_arch=="x64"', { 'defines': [ @@ -250,11 +169,6 @@ 'COMPRESS_STARTUP_DATA_BZ2', ], }], - ['OS=="win"', { - 'defines': [ - 'WIN32', - ], - }], ['OS=="win" and v8_enable_prof==1', { 'msvs_settings': { 'VCLinkerTool': { @@ -262,22 +176,15 @@ }, }, }], - ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris" \ - or OS=="netbsd"', { + ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris"', { 'conditions': [ [ 'target_arch=="ia32"', { 'cflags': [ '-m32' ], 'ldflags': [ '-m32' ], }], - [ 'v8_no_strict_aliasing==1', { - 'cflags': [ '-fno-strict-aliasing' ], - }], - ], # conditions - }], - ['OS=="solaris"', { - 'defines': [ '__C99FEATURES__=1' ], # isinf() etc. + ], }], - ], # conditions + ], 'configurations': { 'Debug': { 'defines': [ @@ -310,19 +217,15 @@ ['OS=="freebsd" or OS=="openbsd"', { 'cflags': [ '-I/usr/local/include' ], }], - ['OS=="netbsd"', { - 'cflags': [ '-I/usr/pkg/include' ], - }], - ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="netbsd"', { - 'cflags': [ '-Wall', '<(werror)', '-W', '-Wno-unused-parameter', - '-Wnon-virtual-dtor', '-Woverloaded-virtual' ], + ['OS=="linux" or OS=="freebsd" or OS=="openbsd"', { + 'cflags': [ '-Wall', '-Werror', '-W', '-Wno-unused-parameter', + '-Wnon-virtual-dtor' ], }], ], - }, # Debug + }, 'Release': { 'conditions': [ - ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="netbsd" \ - or OS=="android"', { + ['OS=="linux" or OS=="freebsd" or OS=="openbsd"', { 'cflags!': [ '-O2', '-Os', @@ -334,7 +237,7 @@ '-O3', ], 'conditions': [ - [ 'gcc_version==44 and clang==0', { + [ 'gcc_version==44', { 'cflags': [ # Avoid crashes with gcc 4.4 in the v8 test suite. '-fno-tree-vrp', @@ -345,9 +248,6 @@ ['OS=="freebsd" or OS=="openbsd"', { 'cflags': [ '-I/usr/local/include' ], }], - ['OS=="netbsd"', { - 'cflags': [ '-I/usr/pkg/include' ], - }], ['OS=="mac"', { 'xcode_settings': { 'GCC_OPTIMIZATION_LEVEL': '3', # -O3 @@ -358,10 +258,10 @@ # is specified explicitly. 'GCC_STRICT_ALIASING': 'YES', }, - }], # OS=="mac" + }], ['OS=="win"', { 'msvs_configuration_attributes': { - 'OutputDirectory': '<(DEPTH)\\build\\$(ConfigurationName)', + 'OutputDirectory': '$(SolutionDir)$(ConfigurationName)', 'IntermediateDirectory': '$(OutDir)\\obj\\$(ProjectName)', 'CharacterSet': '1', }, @@ -393,9 +293,9 @@ # 'StackReserveSize': '297152', }, }, - }], # OS=="win" - ], # conditions - }, # Release - }, # configurations - }, # target_defaults + }], + ], + }, + }, + }, } diff --git a/build/gyp_v8 b/build/gyp_v8 index 4293e763..dfdbe3f1 100755 --- a/build/gyp_v8 +++ b/build/gyp_v8 @@ -171,8 +171,3 @@ if __name__ == '__main__': gyp_args.append('-I' + v8_root + '/build/armu.gypi') gyp_args.append('-S-armu') run_gyp(gyp_args) - - gyp_args = list(args) - gyp_args.append('-I' + v8_root + '/build/mipsu.gypi') - gyp_args.append('-S-mipsu') - run_gyp(gyp_args) diff --git a/build/mipsu.gypi b/build/mipsu.gypi deleted file mode 100644 index 637ff841..00000000 --- a/build/mipsu.gypi +++ /dev/null @@ -1,33 +0,0 @@ -# Copyright 2012 the V8 project authors. All rights reserved. -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following -# disclaimer in the documentation and/or other materials provided -# with the distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived -# from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -{ - 'variables': { - 'target_arch': 'ia32', - 'v8_target_arch': 'mips', - }, -} diff --git a/build/standalone.gypi b/build/standalone.gypi index e9b05658..cb5e1330 100644 --- a/build/standalone.gypi +++ b/build/standalone.gypi @@ -1,4 +1,4 @@ -# Copyright 2012 the V8 project authors. All rights reserved. +# Copyright 2011 the V8 project authors. All rights reserved. # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are # met: @@ -35,36 +35,27 @@ 'msvs_multi_core_compile%': '1', 'variables': { 'variables': { - 'variables': { - 'conditions': [ - ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="netbsd"', { - # This handles the Linux platforms we generally deal with. - # Anything else gets passed through, which probably won't work - # very well; such hosts should pass an explicit target_arch - # to gyp. - 'host_arch%': - '<!(uname -m | sed -e "s/i.86/ia32/;\ - s/x86_64/x64/;s/amd64/x64/;s/arm.*/arm/;s/mips.*/mips/")', - }, { - # OS!="linux" and OS!="freebsd" and OS!="openbsd" and OS!="netbsd" - 'host_arch%': 'ia32', - }], - ], - }, - 'host_arch%': '<(host_arch)', - 'target_arch%': '<(host_arch)', + 'conditions': [ + [ 'OS=="linux" or OS=="freebsd" or OS=="openbsd"', { + # This handles the Linux platforms we generally deal with. Anything + # else gets passed through, which probably won't work very well; such + # hosts should pass an explicit target_arch to gyp. + 'host_arch%': + '<!(uname -m | sed -e "s/i.86/ia32/;s/x86_64/x64/;s/amd64/x64/;s/arm.*/arm/")', + }, { # OS!="linux" and OS!="freebsd" and OS!="openbsd" + 'host_arch%': 'ia32', + }], + ], }, 'host_arch%': '<(host_arch)', - 'target_arch%': '<(target_arch)', + 'target_arch%': '<(host_arch)', 'v8_target_arch%': '<(target_arch)', }, 'host_arch%': '<(host_arch)', 'target_arch%': '<(target_arch)', 'v8_target_arch%': '<(v8_target_arch)', - 'werror%': '-Werror', 'conditions': [ ['(v8_target_arch=="arm" and host_arch!="arm") or \ - (v8_target_arch=="mips" and host_arch!="mips") or \ (v8_target_arch=="x64" and host_arch!="x64")', { 'want_separate_host_toolset': 1, }, { @@ -81,10 +72,9 @@ }, }, 'conditions': [ - ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris" \ - or OS=="netbsd"', { + [ 'OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris"', { 'target_defaults': { - 'cflags': [ '-Wall', '<(werror)', '-W', '-Wno-unused-parameter', + 'cflags': [ '-Wall', '-Werror', '-W', '-Wno-unused-parameter', '-Wnon-virtual-dtor', '-pthread', '-fno-rtti', '-fno-exceptions', '-pedantic' ], 'ldflags': [ '-pthread', ], @@ -100,12 +90,11 @@ }], ], }, - }], - # 'OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris" - # or OS=="netbsd"' + }], # 'OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris"' ['OS=="win"', { 'target_defaults': { 'defines': [ + 'WIN32', '_CRT_SECURE_NO_DEPRECATE', '_CRT_NONSTDC_NO_DEPRECATE', ], |
