Backed out 4 changesets (bug 1417646) for Webdriver missing geckodriver binary, at least on Linux x64 asan
authorSebastian Hengst <archaeopteryx@coole-files.de>
Thu, 30 Aug 2018 12:54:45 +0300
changeset 434068 5b7d48d3b1437b49093a18887640c83ca0b68f3a
parent 434067 9b452b8c8d137f8f030f31351be89887a82ffca7
child 434069 fa3847f7be7cde3353d2b84b98a272f79a59d699
push id34537
push usernbeleuzu@mozilla.com
push dateThu, 30 Aug 2018 16:59:14 +0000
treeherdermozilla-central@c317d6b31d9c [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
bugs1417646
milestone63.0a1
backs out1c7e3f8af2e33ed2321a715f6381bac48ca678d9
42ea09d91d7e0889c831b4c1b4dda4ffc877616c
1a3c374710452a9be747a52d684925b8c28c253c
7179a078b7b43a0caa846aac9b36ebff74c0c72a
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
Backed out 4 changesets (bug 1417646) for Webdriver missing geckodriver binary, at least on Linux x64 asan Backed out changeset 1c7e3f8af2e3 (bug 1417646) Backed out changeset 42ea09d91d7e (bug 1417646) Backed out changeset 1a3c37471045 (bug 1417646) Backed out changeset 7179a078b7b4 (bug 1417646)
build/macosx/cross-mozconfig.common
build/unix/mozconfig.linux32
taskcluster/scripts/misc/build-llvm-dsymutil.sh
toolkit/moz.configure
toolkit/toolkit.mozbuild
--- a/build/macosx/cross-mozconfig.common
+++ b/build/macosx/cross-mozconfig.common
@@ -5,19 +5,16 @@
 MOZ_AUTOMATION_L10N_CHECK=0
 
 if [ "x$IS_NIGHTLY" = "xyes" ]; then
   # Some nightlies (eg: Mulet) don't want these set.
   MOZ_AUTOMATION_UPDATE_PACKAGING=${MOZ_AUTOMATION_UPDATE_PACKAGING-1}
 fi
 . "$topsrcdir/build/mozconfig.common"
 
-# Rust requires dsymutil into PATH
-mk_add_options "export PATH=$topsrcdir/llvm-dsymutil/bin:$PATH"
-
 # ld needs libLTO.so from llvm
 mk_add_options "export LD_LIBRARY_PATH=$topsrcdir/clang/lib"
 
 CROSS_CCTOOLS_PATH=$topsrcdir/cctools
 # This SDK was copied from a local XCode install and uploaded to tooltool.
 # Generate the tarball by running this command with the proper SDK version:
 #   sdk_path=$(xcrun --sdk macosx10.12 --show-sdk-path)
 #   tar -C $(dirname ${sdk_path}) -cHjf /tmp/$(basename ${sdk_path}).tar.bz2 $(basename ${sdk_path})
--- a/build/unix/mozconfig.linux32
+++ b/build/unix/mozconfig.linux32
@@ -1,8 +1,15 @@
 . "$topsrcdir/build/unix/mozconfig.linux"
 
 export MOZ_LINUX_32_SSE2_STARTUP_ERROR=1
 
 CFLAGS="$CFLAGS -march=pentium-m -msse -msse2 -mfpmath=sse"
 CXXFLAGS="$CXXFLAGS -march=pentium-m -msse -msse2 -mfpmath=sse"
 
 ac_add_options --target=i686-pc-linux
+
+# The linux32 builds are effectively cross-compilations, and geckodriver
+# is not enabled by default on cross-compilations, because in most cases,
+# the target is not something we can run binaries of, and geckodriver
+# is a target binary instead of a host binary. But for linux32, we actually
+# can run the target binaries, so we can manually enable geckodriver.
+ac_add_options --enable-geckodriver
--- a/taskcluster/scripts/misc/build-llvm-dsymutil.sh
+++ b/taskcluster/scripts/misc/build-llvm-dsymutil.sh
@@ -57,16 +57,12 @@ cmake \
   -DLLVM_TARGETS_TO_BUILD=X86 \
   -DCMAKE_C_COMPILER=$HOME_DIR/src/gcc/bin/gcc \
   ..
 
 export LD_LIBRARY_PATH=$HOME_DIR/src/gcc/lib64
 
 ninja llvm-dsymutil llvm-symbolizer
 
-# Create a symbolic link since rust doesn't allow to specify a custom dsymutil.
-# This should be dropped once https://github.com/rust-lang/rust/issues/52728 fixed.
-ln -s llvm-dsymutil bin/dsymutil
-tar --xform='s,^,llvm-dsymutil/,S' -Jcf llvm-dsymutil.tar.xz \
-  bin/llvm-dsymutil bin/llvm-symbolizer bin/dsymutil
+tar --xform='s,^,llvm-dsymutil/,' -Jcf llvm-dsymutil.tar.xz bin/llvm-dsymutil bin/llvm-symbolizer
 
 mkdir -p $UPLOAD_DIR
 cp llvm-dsymutil.tar.xz $UPLOAD_DIR
--- a/toolkit/moz.configure
+++ b/toolkit/moz.configure
@@ -902,19 +902,19 @@ set_config('ENABLE_MARIONETTE', marionet
 
 # geckodriver WebDriver implementation
 # ==============================================================
 option('--enable-geckodriver', help='Enable WebDriver implementation')
 
 @depends('--enable-geckodriver',
          'MOZ_AUTOMATION',
          compile_environment,
-         target,
+         cross_compiling,
          hazard_analysis)
-def geckodriver(enable, automation, compile_env, target, hazard):
+def geckodriver(enable, automation, compile_env, cross_compile, hazard):
     """
     geckodriver is implied on supported platforms when MOZ_AUTOMATION
     is set, but we also provide the --enable-geckodriver option for
     developers to use.
 
     At the present time, we want individual developers to be able to
     opt-in to building geckodriver locally, and for it to be enabled by
     default on supported CI build platforms.
@@ -922,18 +922,17 @@ def geckodriver(enable, automation, comp
     if enable:
         if not compile_env:
             die("--enable-geckodriver is not available without a compile "
                 "environment. A geckodriver binary will be downloaded during "
                 "an artifact build by default where available.")
         return True
 
     if enable.origin == 'default':
-        # Bug 1441656 for Android.
-        broken_platforms = hazard or target.os == 'Android'
+        broken_platforms = cross_compile or hazard
 
         if automation and compile_env and not broken_platforms:
             return True
 
 set_config('ENABLE_GECKODRIVER', geckodriver)
 
 # WebRTC
 # ========================================================
--- a/toolkit/toolkit.mozbuild
+++ b/toolkit/toolkit.mozbuild
@@ -160,17 +160,17 @@ if 'gtk' in CONFIG['MOZ_WIDGET_TOOLKIT']
     DIRS += ['/toolkit/system/gnome']
 
 if CONFIG['ENABLE_MARIONETTE']:
     DIRS += [
         '/testing/firefox-ui',
         '/testing/marionette',
     ]
 
-if CONFIG['ENABLE_GECKODRIVER'] and not (CONFIG['MOZ_ASAN'] or CONFIG['MOZ_TSAN']):
+if CONFIG['ENABLE_GECKODRIVER']:
     DIRS += ['/testing/geckodriver']
 
 DIRS += [
     '/tools/quitter',
     '/media/gmp-clearkey/0.1',
 ]
 
 if CONFIG['ENABLE_TESTS']: