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 302949 0f7edd43d27ecc27622c08c03d1229cdef729339
parent 302948 4f40699e76a94c93a3fe0e69ed5b9d6274a06efc
child 302950 7c3a439aee1c9e5a35fe96d9864c0f741ccb6207
push id78931
push usernfroyd@mozilla.com
push dateTue, 28 Jun 2016 19:50:16 +0000
treeherdermozilla-inbound@7c3a439aee1c [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersglandium
bugs1195477
milestone50.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
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',
+        ]
+