Skip to content

Commit

Permalink
Pass -mstackrealign for x86 standalone toolchain
Browse files Browse the repository at this point in the history
Test: ./checkbuild.py && ./run_tests.py
Bug: android/ndk#635
Change-Id: I68e724453baf5b07a4e28ca5078e8fcb0c5ddcc3
(cherry picked from commit c87bf19428313bc21c3e0aeee4f773ad4e523129)
  • Loading branch information
rprichard committed Feb 14, 2018
1 parent 65bf1be commit fddc08b
Showing 1 changed file with 12 additions and 8 deletions.
20 changes: 12 additions & 8 deletions build/tools/make_standalone_toolchain.py
Original file line number Diff line number Diff line change
Expand Up @@ -207,8 +207,13 @@ def make_clang_scripts(install_dir, triple, api, windows):
arch = 'armv7a' # Target armv7, not armv5.

target = '-'.join([arch, 'none', os_name, env])
flags = '-target {} --sysroot `dirname $0`/../sysroot'.format(target)
flags += ' -D__ANDROID_API__={}'.format(api)
common_flags = '-target {}'.format(target)
common_flags += ' -D__ANDROID_API__={}'.format(api)
if arch == 'i686':
common_flags += ' -mstackrealign'

unix_flags = common_flags
unix_flags += ' --sysroot `dirname $0`/../sysroot'

clang_path = os.path.join(install_dir, 'bin/clang')
with open(clang_path, 'w') as clang:
Expand All @@ -220,7 +225,7 @@ def make_clang_scripts(install_dir, triple, api, windows):
# target/triple already spelled out.
`dirname $0`/clang{version} "$@"
fi
""".format(version=version_number, flags=flags)))
""".format(version=version_number, flags=unix_flags)))

mode = os.stat(clang_path).st_mode
os.chmod(clang_path, mode | stat.S_IXUSR | stat.S_IXGRP | stat.S_IXOTH)
Expand All @@ -235,7 +240,7 @@ def make_clang_scripts(install_dir, triple, api, windows):
# target/triple already spelled out.
`dirname $0`/clang{version}++ "$@"
fi
""".format(version=version_number, flags=flags)))
""".format(version=version_number, flags=unix_flags)))

mode = os.stat(clangpp_path).st_mode
os.chmod(clangpp_path, mode | stat.S_IXUSR | stat.S_IXGRP | stat.S_IXOTH)
Expand All @@ -246,9 +251,8 @@ def make_clang_scripts(install_dir, triple, api, windows):
os.path.join(install_dir, 'bin', triple + '-clang++'))

if windows:
flags = '-target {}'.format(target)
flags += ' --sysroot %_BIN_DIR%..\\sysroot'
flags += ' -D__ANDROID_API__={}'.format(api)
win_flags = common_flags
win_flags += ' --sysroot %_BIN_DIR%..\\sysroot'

for pp_suffix in ('', '++'):
exe_name = 'clang{}{}.exe'.format(version_number, pp_suffix)
Expand All @@ -275,7 +279,7 @@ def make_clang_scripts(install_dir, triple, api, windows):
exit /b
:done
""".format(exe=exe_name, flags=flags))
""".format(exe=exe_name, flags=win_flags))

for triple_prefix in ('', triple + '-'):
clangbat_path = os.path.join(
Expand Down

0 comments on commit fddc08b

Please sign in to comment.