Home | History | Annotate | Download | only in platform
      1 # These are the functions which clang needs when it is targetting a previous
      2 # version of the OS. The issue is that the backend may use functions which were
      3 # not present in the libgcc that shipped on the platform. In such cases, we link
      4 # with a version of the library which contains private_extern definitions of all
      5 # the extra functions which might be referenced.
      6 
      7 Description := Static runtime libraries for clang/Darwin.
      8 
      9 Configs :=
     10 UniversalArchs :=
     11 
     12 # Configuration for targetting 10.4. We need a few functions missing from
     13 # libgcc_s.10.4.dylib. We only build x86 slices since clang doesn't really
     14 # support targetting PowerPC.
     15 Configs += 10.4
     16 UniversalArchs.10.4 := i386 x86_64
     17 
     18 # Configuration for targetting armv6. We need a few additional functions which
     19 # must be in the same linkage unit.
     20 Configs += armv6
     21 UniversalArchs.armv6 := armv6
     22 
     23 CC := gcc
     24 
     25 # Forcibly strip off any -arch, as that totally breaks our universal support.
     26 override CC := $(subst -arch ,-arch_,$(CC))
     27 override CC := $(patsubst -arch_%,,$(CC))
     28 
     29 CFLAGS := -Wall -Werror -O3 -fomit-frame-pointer
     30 
     31 FUNCTIONS.10.4 := eprintf floatundidf floatundisf floatundixf
     32 FUNCTIONS.armv6 := switch16 switch32 switch8 switchu8 \
     33                    save_vfp_d8_d15_regs restore_vfp_d8_d15_regs
     34 
     35 VISIBILITY_HIDDEN := 1
     36