[FP5-2743] Add patch for Aug Mainline upgrade

Change-Id: I21a7c72f81c5373733fed84b2a650a235b6cfe85
diff --git a/JavaLibrary.bp b/JavaLibrary.bp
index f070571..d844307 100644
--- a/JavaLibrary.bp
+++ b/JavaLibrary.bp
@@ -185,7 +185,6 @@
         // framework-api-annotations contain API annotations, e.g. @SystemApi.
         ":framework-api-annotations",
         ":openjdk_lambda_stub_files",
-        ":openjdk_generated_annotation_stub_files",
         ":app-compat-annotations-source",
 
         // Use the okhttp source too to allow libcore code to reference it
@@ -439,10 +438,11 @@
     include_srcs: true,
 }
 
-// Creates a jar that exists to satisfy javac when compiling source code that
-// contains @Generated annotations, which are produced by some code generation
-// tools (notably dagger) but aren't part of the Android API.
-// See http://b/123891440.
+// This is an empty jar that exists for backwards compatibility with T (and below).
+// Historically, it existed to satisfy javac when compiling source code that
+// contains @Generated annotations.
+// This is no longer necessary since @Generated was added to ART's Public API
+// surface in U.
 java_library {
     name: "core-generated-annotation-stubs",
     visibility: [
@@ -451,7 +451,6 @@
     ],
     defaults: ["libcore_java_defaults"],
     srcs: [
-        ":openjdk_generated_annotation_stub_files",
     ],
     hostdex: true,
     sdk_version: "none",
@@ -934,7 +933,6 @@
         // in openjdk_java_files.bp for more details.
         ":openjdk_mmodule_extra_files",
         ":okhttp_api_files",
-
     ],
     libs: [
         // Put framework-api-annotations into libs to avoid exposing the definition of framework's
@@ -1014,11 +1012,6 @@
         // This one is not on device but it's needed when javac compiles code
         // containing lambdas.
         "core-lambda-stubs-for-system-modules",
-        // This one is not on device but it's needed when javac compiles code
-        // containing @Generated annotations produced by some code generation
-        // tools.
-        // See http://b/123891440.
-        "core-generated-annotation-stubs",
 
         // Ensure that core libraries that depend on the public API can access
         // the UnsupportedAppUsage, CorePlatformApi and IntraCoreApi
diff --git a/api/current.txt b/api/current.txt
index fb751ea..20f1448 100755
--- a/api/current.txt
+++ b/api/current.txt
@@ -17782,6 +17782,16 @@
 
 }
 
+package javax.annotation.processing {
+
+  @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.PACKAGE, java.lang.annotation.ElementType.TYPE, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.CONSTRUCTOR, java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.LOCAL_VARIABLE, java.lang.annotation.ElementType.PARAMETER}) public @interface Generated {
+    method public abstract String comments() default "";
+    method public abstract String date() default "";
+    method public abstract String[] value();
+  }
+
+}
+
 package javax.crypto {
 
   public class AEADBadTagException extends javax.crypto.BadPaddingException {
diff --git a/api/module-lib-current.txt b/api/module-lib-current.txt
index c85cffb..34583c3 100644
--- a/api/module-lib-current.txt
+++ b/api/module-lib-current.txt
@@ -273,15 +273,15 @@
     method public static void dumpHprofDataDdms();
     method public static void dumpReferenceTables();
     method public static int getAllocCount(int);
-    method @dalvik.annotation.optimization.FastNative public static int getLoadedClassCount();
+    method public static int getLoadedClassCount();
     method public static int getMethodTracingMode();
     method public static String getRuntimeStat(String);
     method public static java.util.Map<java.lang.String,java.lang.String> getRuntimeStats();
     method public static String[] getVmFeatureList();
-    method @dalvik.annotation.optimization.FastNative public static boolean isDebuggerConnected();
-    method @dalvik.annotation.optimization.FastNative public static boolean isDebuggingEnabled();
-    method @dalvik.annotation.optimization.FastNative public static long lastDebuggerActivity();
-    method @dalvik.annotation.optimization.FastNative public static void printLoadedClasses(int);
+    method public static boolean isDebuggerConnected();
+    method public static boolean isDebuggingEnabled();
+    method public static long lastDebuggerActivity();
+    method public static void printLoadedClasses(int);
     method public static void resetAllocCount(int);
     method public static void setAllocTrackerStackDepth(int);
     method public static void startAllocCounting();
@@ -290,7 +290,7 @@
     method public static void startMethodTracingDdms(int, int, boolean, int);
     method public static void stopAllocCounting();
     method public static void stopMethodTracing();
-    method @dalvik.annotation.optimization.FastNative public static long threadCpuTimeNanos();
+    method public static long threadCpuTimeNanos();
     field public static final int KIND_ALL_COUNTS = -1; // 0xffffffff
     field public static final int KIND_GLOBAL_ALLOCATED_BYTES = 2; // 0x2
     field public static final int KIND_GLOBAL_ALLOCATED_OBJECTS = 1; // 0x1
@@ -306,7 +306,7 @@
   }
 
   public final class VMRuntime {
-    method @dalvik.annotation.optimization.FastNative public long addressOf(Object);
+    method public long addressOf(Object);
     method public static void bootCompleted();
     method public void clampGrowthLimit();
     method public void clearGrowthLimit();
@@ -314,14 +314,14 @@
     method public static String getInstructionSet(String);
     method public static dalvik.system.VMRuntime getRuntime();
     method public int getTargetSdkVersion();
-    method @dalvik.annotation.optimization.FastNative public boolean is64Bit();
+    method public boolean is64Bit();
     method public static boolean is64BitAbi(String);
     method public static boolean is64BitInstructionSet(String);
-    method @dalvik.annotation.optimization.FastNative public boolean isCheckJniEnabled();
-    method @dalvik.annotation.optimization.FastNative public boolean isNativeDebuggable();
+    method public boolean isCheckJniEnabled();
+    method public boolean isNativeDebuggable();
     method public static boolean isValidClassLoaderContext(String);
-    method @dalvik.annotation.optimization.FastNative public Object newNonMovableArray(Class<?>, int);
-    method @dalvik.annotation.optimization.FastNative public Object newUnpaddedArray(Class<?>, int);
+    method public Object newNonMovableArray(Class<?>, int);
+    method public Object newUnpaddedArray(Class<?>, int);
     method public void notifyStartupCompleted();
     method public void preloadDexCaches();
     method public static void registerAppInfo(String, String, String, String[], int);
@@ -359,7 +359,7 @@
   }
 
   public final class VMStack {
-    method @Nullable @dalvik.annotation.optimization.FastNative public static dalvik.system.AnnotatedStackTraceElement[] getAnnotatedThreadStackTrace(Thread);
+    method @Nullable public static dalvik.system.AnnotatedStackTraceElement[] getAnnotatedThreadStackTrace(Thread);
   }
 
   public final class ZygoteHooks {
@@ -784,33 +784,33 @@
   public final class Unsafe {
     method public int arrayBaseOffset(Class);
     method public int arrayIndexScale(Class);
-    method @dalvik.annotation.optimization.FastNative public void copyMemory(long, long, long);
-    method @dalvik.annotation.optimization.FastNative public boolean getBoolean(Object, long);
-    method @dalvik.annotation.optimization.FastNative public byte getByte(Object, long);
-    method @dalvik.annotation.optimization.FastNative public byte getByte(long);
-    method @dalvik.annotation.optimization.FastNative public double getDouble(Object, long);
-    method @dalvik.annotation.optimization.FastNative public double getDouble(long);
-    method @dalvik.annotation.optimization.FastNative public float getFloat(Object, long);
-    method @dalvik.annotation.optimization.FastNative public float getFloat(long);
-    method @dalvik.annotation.optimization.FastNative public int getInt(Object, long);
-    method @dalvik.annotation.optimization.FastNative public int getInt(long);
-    method @dalvik.annotation.optimization.FastNative public long getLong(Object, long);
-    method @dalvik.annotation.optimization.FastNative public long getLong(long);
-    method @dalvik.annotation.optimization.FastNative public Object getObject(Object, long);
+    method public void copyMemory(long, long, long);
+    method public boolean getBoolean(Object, long);
+    method public byte getByte(Object, long);
+    method public byte getByte(long);
+    method public double getDouble(Object, long);
+    method public double getDouble(long);
+    method public float getFloat(Object, long);
+    method public float getFloat(long);
+    method public int getInt(Object, long);
+    method public int getInt(long);
+    method public long getLong(Object, long);
+    method public long getLong(long);
+    method public Object getObject(Object, long);
     method public static sun.misc.Unsafe getUnsafe();
     method public long objectFieldOffset(java.lang.reflect.Field);
-    method @dalvik.annotation.optimization.FastNative public void putBoolean(Object, long, boolean);
-    method @dalvik.annotation.optimization.FastNative public void putByte(Object, long, byte);
-    method @dalvik.annotation.optimization.FastNative public void putByte(long, byte);
-    method @dalvik.annotation.optimization.FastNative public void putDouble(Object, long, double);
-    method @dalvik.annotation.optimization.FastNative public void putDouble(long, double);
-    method @dalvik.annotation.optimization.FastNative public void putFloat(Object, long, float);
-    method @dalvik.annotation.optimization.FastNative public void putFloat(long, float);
-    method @dalvik.annotation.optimization.FastNative public void putInt(Object, long, int);
-    method @dalvik.annotation.optimization.FastNative public void putInt(long, int);
-    method @dalvik.annotation.optimization.FastNative public void putLong(Object, long, long);
-    method @dalvik.annotation.optimization.FastNative public void putLong(long, long);
-    method @dalvik.annotation.optimization.FastNative public void putObject(Object, long, Object);
+    method public void putBoolean(Object, long, boolean);
+    method public void putByte(Object, long, byte);
+    method public void putByte(long, byte);
+    method public void putDouble(Object, long, double);
+    method public void putDouble(long, double);
+    method public void putFloat(Object, long, float);
+    method public void putFloat(long, float);
+    method public void putInt(Object, long, int);
+    method public void putInt(long, int);
+    method public void putLong(Object, long, long);
+    method public void putLong(long, long);
+    method public void putObject(Object, long, Object);
   }
 
 }
diff --git a/mmodules/intracoreapi/Android.bp b/mmodules/intracoreapi/Android.bp
index 34c6f1c..f2ebef2 100644
--- a/mmodules/intracoreapi/Android.bp
+++ b/mmodules/intracoreapi/Android.bp
@@ -96,7 +96,6 @@
     name: "art-module-intra-core-api-stubs-system-modules-lib",
     srcs: [
         ":openjdk_lambda_stub_files",
-        ":openjdk_generated_annotation_stub_files",
     ],
     libs: [
         "art.module.intra.core.api",
diff --git a/mmodules/intracoreapi/api/intra/current.txt b/mmodules/intracoreapi/api/intra/current.txt
index e58fb13..8dba756 100644
--- a/mmodules/intracoreapi/api/intra/current.txt
+++ b/mmodules/intracoreapi/api/intra/current.txt
@@ -70,9 +70,9 @@
   }
 
   @libcore.api.IntraCoreApi public final class VMRuntime {
-    method @dalvik.annotation.optimization.FastNative @libcore.api.IntraCoreApi public long addressOf(Object);
+    method @libcore.api.IntraCoreApi public long addressOf(Object);
     method @libcore.api.IntraCoreApi public static dalvik.system.VMRuntime getRuntime();
-    method @dalvik.annotation.optimization.FastNative @libcore.api.IntraCoreApi public Object newNonMovableArray(Class<?>, int);
+    method @libcore.api.IntraCoreApi public Object newNonMovableArray(Class<?>, int);
   }
 
 }
diff --git a/ojluni/src/generated-annotation/java/javax/annotation/processing/Generated.java b/ojluni/src/main/java/javax/annotation/processing/Generated.java
similarity index 100%
rename from ojluni/src/generated-annotation/java/javax/annotation/processing/Generated.java
rename to ojluni/src/main/java/javax/annotation/processing/Generated.java
diff --git a/openjdk_java_files.bp b/openjdk_java_files.bp
index 8547fcb..80728f4 100644
--- a/openjdk_java_files.bp
+++ b/openjdk_java_files.bp
@@ -1236,6 +1236,7 @@
         "ojluni/src/main/java/java/util/zip/ZipOutputStream.java",
         "ojluni/src/main/java/java/util/zip/ZipUtils.java",
         "ojluni/src/main/java/java/util/zip/ZStreamRef.java",
+        "ojluni/src/main/java/javax/annotation/processing/Generated.java",
         "ojluni/src/main/java/javax/crypto/AEADBadTagException.java",
         "ojluni/src/main/java/javax/crypto/BadPaddingException.java",
         "ojluni/src/main/java/javax/crypto/CipherInputStream.java",
@@ -1405,21 +1406,6 @@
     ],
 }
 
-// Stubs needed to satisfy javac when compiling source code that contains
-// @Generated annotations, which are produced by some code generation tools.
-// TODO: Remove this source file, this target, and all its dependencies, if
-// the code generation tools (notably dagger) can be fixed.
-// See http://b/123891440.
-filegroup {
-    name: "openjdk_generated_annotation_stub_files",
-    visibility: [
-        "//libcore:__subpackages__",
-    ],
-    srcs: [
-        "ojluni/src/generated-annotation/java/javax/annotation/processing/Generated.java",
-    ],
-}
-
 // Classes which are exposed in the intra-core or core-platform APIs but not in
 // the public APIs. Unless they are annotated, these classes and all their
 // members will be exposed in all such APIs. To avoid patching the main ojluni
@@ -1864,7 +1850,6 @@
         ":openjdk_mmodule_extra_files",
         ":openjdk_internal_files",
         ":openjdk_lambda_stub_files",
-        ":openjdk_generated_annotation_stub_files",
     ],
 }