Skip to content
This repository has been archived by the owner on May 4, 2022. It is now read-only.

Commit

Permalink
waifulib: xcompile: we need to disable builtins even on armeabi with …
Browse files Browse the repository at this point in the history
…host compiler and NDK r10e
  • Loading branch information
a1batross committed Nov 7, 2019
1 parent e068ebf commit f9b361c
Showing 1 changed file with 19 additions and 10 deletions.
29 changes: 19 additions & 10 deletions scripts/waifulib/xcompile.py
Original file line number Diff line number Diff line change
Expand Up @@ -248,6 +248,19 @@ def cflags(self, cxx = False):
if cxx and not self.is_clang() and self.toolchain not in ['4.8','4.9']:
cflags += ['-fno-sized-deallocation']

def fixup_host_clang_with_old_ndk():
cflags = []
# Clang builtin redefine w/ different calling convention bug
# NOTE: I did not added complex.h functions here, despite
# that NDK devs forgot to put __NDK_FPABI_MATH__ for complex
# math functions
# I personally don't need complex numbers support, but if you want it
# just run sed to patch header
for f in ['strtod', 'strtof', 'strtold']:
cflags += ['-fno-builtin-%s' % f]
return cflags


if self.is_arm():
if self.arch == 'armeabi-v7a':
# ARMv7 support
Expand All @@ -256,21 +269,17 @@ def cflags(self, cxx = False):
if not self.is_clang() and not self.is_host():
cflags += [ '-mvectorize-with-neon-quad' ]

if self.is_host() and self.ndk_rev <= ANDROID_NDK_HARDFP_MAX:
cflags += fixup_host_clang_with_old_ndk()

if self.is_hardfp():
cflags += ['-D_NDK_MATH_NO_SOFTFP=1', '-mfloat-abi=hard', '-DLOAD_HARDFP', '-DSOFTFP_LINK']

if self.is_host():
# Clang builtin redefine w/ different calling convention bug
# NOTE: I did not added complex.h functions here, despite
# that NDK devs forgot to put __NDK_FPABI_MATH__ for complex
# math functions
# I personally don't need complex numbers support, but if you want it
# just run sed to patch header
for f in ['strtod', 'strtof', 'strtold']:
cflags += ['-fno-builtin-%s' % f]
else:
cflags += ['-mfloat-abi=softfp']
else:
if self.is_host() and self.ndk_rev <= ANDROID_NDK_HARDFP_MAX:
cflags += fixup_host_clang_with_old_ndk()

# ARMv5 support
cflags += ['-march=armv5te', '-mtune=xscale', '-msoft-float']
elif self.is_x86():
Expand Down

0 comments on commit f9b361c

Please sign in to comment.