Bug 1195477 - part 1 - use -no-integrated-as for clang builds on ARM, moz.build changes; r=glandium
authorNathan Froyd <froydnj@gmail.com>
Tue, 28 Jun 2016 23:48:49 -0400
changeset 333059 0f7edd43d27ecc27622c08c03d1229cdef729339
parent 333058 4f40699e76a94c93a3fe0e69ed5b9d6274a06efc
child 333060 7c3a439aee1c9e5a35fe96d9864c0f741ccb6207
push idunknown
push userunknown
push dateunknown
reviewersglandium
bugs1195477
milestone50.0a1
Bug 1195477 - part 1 - use -no-integrated-as for clang builds on ARM, moz.build changes; r=glandium We have a lot of assembly written assuming gas's conventions, which clang's integrated assembler doesn't support. Disable the integrated assembler for those pieces of code.
gfx/cairo/libpixman/src/moz.build
media/libtheora/moz.build
media/libvpx/moz.build
media/openmax_dl/dl/moz.build
--- a/gfx/cairo/libpixman/src/moz.build
+++ b/gfx/cairo/libpixman/src/moz.build
@@ -19,16 +19,20 @@ if CONFIG['OS_ARCH'] != 'Darwin' and CON
             'pixman-arm-neon-asm-bilinear.S',
             'pixman-arm-neon-asm.S',
         ]
     if CONFIG['HAVE_ARM_SIMD']:
         SOURCES += [
             'pixman-arm-simd-asm-scaled.S',
             'pixman-arm-simd-asm.S',
         ]
+    if CONFIG['CLANG_CXX']:
+        ASFLAGS += [
+            '-no-integrated-as',
+        ]
 
 SOURCES += [
     'pixman-access-accessors.c',
     'pixman-access.c',
     'pixman-arm.c',
     'pixman-bits-image.c',
     'pixman-combine-float.c',
     'pixman-combine16.c',
--- a/media/libtheora/moz.build
+++ b/media/libtheora/moz.build
@@ -99,8 +99,13 @@ if CONFIG['GNU_AS']:
         ]]
 
         # These flags are a lie; they're just used to enable the requisite
         # opcodes; actual arch detection is done at runtime.
         ASFLAGS += [
             '-march=armv7-a',
             '-mfpu=neon',
         ]
+
+        if CONFIG['CLANG_CXX']:
+            ASFLAGS += [
+                '-no-integrated-as',
+            ]
--- a/media/libvpx/moz.build
+++ b/media/libvpx/moz.build
@@ -46,16 +46,20 @@ if CONFIG['VPX_ARM_ASM']:
         if f.endswith('.c') and 'neon' in f:
             SOURCES[f].flags += CONFIG['VPX_ASFLAGS']
 
     if CONFIG['OS_TARGET'] == 'Android':
         # For cpu-features.h
         LOCAL_INCLUDES += [
             '%%%s/sources/android/cpufeatures' % CONFIG['ANDROID_NDK'],
         ]
+    if CONFIG['CLANG_CXX']:
+        ASFLAGS += [
+            '-no-integrated-as',
+        ]
 
 # boolhuff_armv5te.asm defines the same functions as boolhuff.c instead of
 # using RTCD, so we have to make sure we only add one of the two.
 if 'vp8/encoder/arm/armv5te/boolhuff_armv5te.asm' not in arm_asm_files:
     SOURCES += [
         'vp8/encoder/boolhuff.c',
     ]
 
--- a/media/openmax_dl/dl/moz.build
+++ b/media/openmax_dl/dl/moz.build
@@ -79,8 +79,14 @@ if CONFIG['CPU_ARCH'] == 'arm' and CONFI
     LOCAL_INCLUDES += [
         '..',
         'api'
     ]
 
     DEFINES['BIG_FFT_TABLE'] = True
 
     FINAL_LIBRARY = 'xul'
+
+    if CONFIG['CLANG_CXX']:
+        ASFLAGS += [
+            '-no-integrated-as',
+        ]
+