How does ct.sym get created under the new build?
Joe Darcy
joe.darcy at oracle.com
Mon Feb 18 21:44:21 PST 2013
David,
Thank you!!
The following patch to that file achieved exactly the effect I wanted:
hg diff common/makefiles/javadoc/NON_CORE_PKGS.gmk
diff -r 76808fb4194a common/makefiles/javadoc/NON_CORE_PKGS.gmk
--- a/common/makefiles/javadoc/NON_CORE_PKGS.gmk Wed Feb 13 11:21:14
2013 -0800
+++ b/common/makefiles/javadoc/NON_CORE_PKGS.gmk Mon Feb 18 21:39:49
2013 -0800
@@ -80,7 +80,8 @@
TREEAPI_PKGS = com.sun.source.doctree \
com.sun.source.tree \
- com.sun.source.util
+ com.sun.source.util \
+ jdk
SMARTCARDIO_PKGS = javax.smartcardio
@@ -93,6 +94,8 @@
com.apple.eio
endif
+JDK_PKGS = jdk
+
# non-core packages in rt.jar
NON_CORE_PKGS = $(DOMAPI_PKGS) \
$(MGMT_PKGS) \
@@ -103,5 +106,5 @@
$(HTTPSERVER_PKGS) \
$(SMARTCARDIO_PKGS) \
$(SCTPAPI_PKGS) \
- $(APPLE_EXT_PKGS)
-
+ $(APPLE_EXT_PKGS) \
+ $(JDK_PKGS)
(The jdk package may merit its own javadoc separate from the
javac-related API, but that can be addressed as future work.)
build-infra folk: please review the patch above. (It would be really
helpful to retire the old build system; it is like an abandoned mine
luring people in.)
Thanks,
-Joe
On 02/18/2013 07:37 PM, David Holmes wrote:
> Hi Joe,
>
> Not sure of the full details but see jdk/makefiles/CreateJars.gmk. The
> files you want seem to be:
>
> include javadoc/CORE_PKGS.gmk
> include javadoc/NON_CORE_PKGS.gmk
>
> which are in the top-level repo:
>
> ./common/makefiles/javadoc/
>
> David
>
>
> On 19/02/2013 1:09 PM, Joe Darcy wrote:
>> Hello,
>>
>> Previously, I added a new "jdk.Supported" annotation type to the
>> platform [1] With some effort, this file was included in rt.jar under
>> both new and old builds.
>>
>> I've been working on applying this annotation to the langtools repo to
>> document that the javac tree API (com.sun.source.*) is JDK-supported.
>> That all went fine until I did a build of a repo with the annotation
>> and, just to be extra cautious, I ran the langtools regression tests.
>> Several tests failed because while jdk.Supported is in rt.jar, it is not
>> currently in ct.sym (and thus not visible by default during
>> compilation).
>>
>> No problem, I just need to get "jdk" added to the list of packages used
>> to construct ct.sym. I took a stab at doing this:
>>
>> $ hg diff
>> diff -r bcde0486261e make/docs/Makefile
>> --- a/make/docs/Makefile Mon Feb 18 08:14:18 2013 +0000
>> +++ b/make/docs/Makefile Mon Feb 18 19:02:16 2013 -0800
>> @@ -1008,7 +1008,7 @@
>> TREEAPI_HEADER := <strong>Compiler Tree API</strong>
>> TREEAPI_BOTTOM := $(call
>> CommonBottom,$(TREEAPI_FIRST_COPYRIGHT_YEAR))
>> TREEAPI_GROUPNAME := Packages
>> -TREEAPI_REGEXP := com.sun.source.*
>> +TREEAPI_REGEXP := com.sun.source.*:jdk
>> # TREEAPI_PKGS is located in NON_CORE_PKGS.gmk
>>
>> TREEAPI_INDEX_HTML = $(TREEAPI_DOCDIR)/index.html
>> diff -r bcde0486261e make/docs/NON_CORE_PKGS.gmk
>> --- a/make/docs/NON_CORE_PKGS.gmk Mon Feb 18 08:14:18 2013 +0000
>> +++ b/make/docs/NON_CORE_PKGS.gmk Mon Feb 18 19:02:16 2013 -0800
>> @@ -78,7 +78,8 @@
>>
>> TREEAPI_PKGS = com.sun.source.doctree \
>> com.sun.source.tree \
>> - com.sun.source.util
>> + com.sun.source.util \
>> + jdk
>>
>> SMARTCARDIO_PKGS = javax.smartcardio
>>
>> @@ -91,6 +92,8 @@
>> com.apple.eio
>> endif
>>
>> +JDK_PKGS = jdk
>> +
>> # non-core packages in rt.jar
>> NON_CORE_PKGS = $(DOMAPI_PKGS) \
>> $(MGMT_PKGS) \
>> @@ -101,5 +104,6 @@
>> $(HTTPSERVER_PKGS) \
>> $(SMARTCARDIO_PKGS) \
>> $(SCTPAPI_PKGS) \
>> - $(APPLE_EXT_PKGS)
>> + $(APPLE_EXT_PKGS)\
>> + $(JDK_PKGS)
>>
>> but to no avail. The modifications above do *not* seem to influence the
>> construction of ct.sym under the new build. After making these changes,
>> I've rerun configure, done a make clean, then a make, etc.
>>
>> Turning on logging during an images build,
>>
>> [...]
>> /bin/mkdir -p
>> /home/darcy/Sun/OpenJDK/8/hg/tl/build/linux-x86_64-normal-server-release/images/symbols/META-INF/sym
>>
>>
>> /home/darcy/Sun/OpenJDK/jdk1.7.0_02/bin/java -Xms64M -Xmx1100M
>> -XX:PermSize=32m -XX:MaxPermSize=160m -XX:ThreadStackSize=1536
>> "-Xbootclasspath/p:/home/darcy/Sun/OpenJDK/8/hg/tl/build/linux-x86_64-normal-server-release/langtools/dist/bootstrap/lib/javac.jar"
>>
>> -cp
>> /home/darcy/Sun/OpenJDK/8/hg/tl/build/linux-x86_64-normal-server-release/langtools/dist/bootstrap/lib/javac.jar
>>
>> com.sun.tools.javac.Main \
>> -bootclasspath
>> /home/darcy/Sun/OpenJDK/8/hg/tl/build/linux-x86_64-normal-server-release/jdk/classes
>>
>> \
>> -XDprocess.packages -proc:only \
>> [... long list of packages]
>>
>> The packages do not seem to be passed in the order indicated by the
>> command in jdk/make/common/Release.gmk.
>>
>> As an experiment, I went in and hacked in "add("jdk")" to the
>> CreateSymbols program in langtools which constructs ct.sym; if the jdk
>> package is included manually, all works fine. This rules out problem in
>> langtools in processing the jdk package.
>>
>> How can I get the "jdk" package included in ct.sym in the new build?
>>
>> Thanks,
>>
>> -Joe
>>
>> [1] 8001614: Include annotation type to documented supported-ness,
>> http://hg.openjdk.java.net/jdk8/tl/langtools/rev/55cca2f38ee6
More information about the build-infra-dev
mailing list