New issue
Advanced search Search tips

Issue 690155 link

Starred by 2 users

Issue metadata

Status: Assigned
Owner:
Cc:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 3
Type: Bug

Blocked on:
issue 690145
issue 640116
issue 690147



Sign in to add a comment

Turn on -Werror for java compilations in android builds

Project Member Reported by thakis@chromium.org, Feb 8 2017

Issue description

We try to have a silent build -- things are either important enough that they should be an error, or are noise and shouldn't be printed. Non-fatal warnings are fairly useless.

We build with -Werror for C++ compilations for that reason. Apparently javac does accept -Werror (javacs newer than ours accept _and document_ -werror with a lower-case W, but ours does accept -Werror with upper-case W).

Output will look like so:

[775/2276] ACTION //components/location/android:location_java__compile_java__javac(//build/toolchain/android:android_clang_arm)
FAILED: gen/components/location/android/location_java__compile_java.javac.jar gen/components/location/android/location_java__compile_java.javac.jar.md5.stamp 
python ../../build/android/gyp/javac.py --depfile=gen/components/location/android/location_java__compile_java__javac.d --jar-path=gen/components/location/android/location_java__compile_java.javac.jar --java-srcjars=\[\] --java-srcjars=@FileArg\(gen/components/location/android/location_java.build_config:javac:srcjars\) --classpath=@FileArg\(gen/components/location/android/location_java.build_config:javac:interface_classpath\) --bootclasspath=lib.java/android.interface.jar --java-version=1.7 --chromium-code=1 @gen/components/location/android/location_java.sources
Traceback (most recent call last):
  File "../../build/android/gyp/javac.py", line 504, in <module>
    sys.exit(main(sys.argv[1:]))
  File "../../build/android/gyp/javac.py", line 500, in main
    pass_changes=True)
  File "/usr/local/google/home/thakis/src/chrome/src/build/android/gyp/util/build_utils.py", line 578, in CallAndWriteDepfileIfStale
    pass_changes=True)
  File "/usr/local/google/home/thakis/src/chrome/src/build/android/gyp/util/md5_check.py", line 87, in CallAndRecordIfStale
    function(*args)
  File "/usr/local/google/home/thakis/src/chrome/src/build/android/gyp/util/build_utils.py", line 561, in on_stale_md5
    function(*args)
  File "../../build/android/gyp/javac.py", line 494, in <lambda>
    classpath_inputs),
  File "../../build/android/gyp/javac.py", line 260, in _OnStaleMd5
    attempt_build()
  File "../../build/android/gyp/javac.py", line 258, in <lambda>
    stderr_filter=ColorJavacOutput)
  File "/usr/local/google/home/thakis/src/chrome/src/build/android/gyp/util/build_utils.py", line 170, in CheckOutput
    raise CalledProcessError(cwd, args, stdout + stderr)
util.build_utils.CalledProcessError: Command failed: ( cd /usr/local/google/home/thakis/src/chrome/src/out/gn; javac -g -encoding UTF-8 -classpath lib.java/base/base_java.interface.jar -sourcepath : -bootclasspath lib.java/android.interface.jar -source 1.7 -target 1.7 -Xlint:unchecked -Xlint:deprecation -Werror -d /tmp/tmpLFFJPc/classes ../../components/location/android/java/src/org/chromium/components/location/LocationUtils.java )
../../components/location/android/java/src/org/chromium/components/location/LocationUtils.java:81: warning: [deprecation] LOCATION_PROVIDERS_ALLOWED in Secure has been deprecated
                    context.getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED));
                                                                 ^
error: warnings found and -Werror specified
1 error
1 warning


thakis@thakis:~/src/chrome/src$ git diff
diff --git a/build/android/gyp/javac.py b/build/android/gyp/javac.py
index 1f8064fb9f09..5d6bd3f77992 100755
--- a/build/android/gyp/javac.py
+++ b/build/android/gyp/javac.py
@@ -448,7 +448,7 @@ def main(argv):
     ])
 
   if options.chromium_code:
-    javac_cmd.extend(['-Xlint:unchecked', '-Xlint:deprecation', '-werror'])
+    javac_cmd.extend(['-Xlint:unchecked', '-Xlint:deprecation', '-Werror'])
   else:
     # XDignore.symbol.file makes javac compile against rt.jar instead of
     # ct.sym. This means that using a java internal package/class will not

 
err make that

thakis@thakis:~/src/chrome/src$ git diff master
diff --git a/build/android/gyp/javac.py b/build/android/gyp/javac.py
index df5325f7f058..5d6bd3f77992 100755
--- a/build/android/gyp/javac.py
+++ b/build/android/gyp/javac.py
@@ -448,7 +448,7 @@ def main(argv):
     ])
 
   if options.chromium_code:
-    javac_cmd.extend(['-Xlint:unchecked', '-Xlint:deprecation'])
+    javac_cmd.extend(['-Xlint:unchecked', '-Xlint:deprecation', '-Werror'])
   else:
     # XDignore.symbol.file makes javac compile against rt.jar instead of
     # ct.sym. This means that using a java internal package/class will not


:-)

Comment 2 by thakis@chromium.org, Feb 28 2017

Blockedon: 640116
Status: Assigned (was: Untriaged)

Sign in to add a comment