BUILD_JOBJC woes on Mac

Erik Joelsson erik.joelsson at oracle.com
Wed May 22 08:05:17 UTC 2013



On 2013-05-22 06:20, David Holmes wrote:
> On 21/05/2013 9:50 PM, Erik Joelsson wrote:
>> Looks good to me.
>
> So has a bug been filed yet? :)
>
> I think some further investigation is still needed because 
> gensrc_jobjc is being used in some places and not others and I'd want 
> to verify they are all supposed to be the same thing.
>
I was too fast looking at this. After more careful investigation, this 
is what happens. The source generator for jobjc classes is directed to 
generate the sources to a separate directory (gensrc_jobjc/src) and the 
files are then copied into the general gensrc directory. The reason for 
this is that the generator does a full delete of all files in the target 
directory before generating sources.

If you point the SetupJavaCompilation macro to gensrc_jobjc/src and skip 
the other changes, it will all work out fine. The copy of the generated 
sources will not be needed but I would rather keep it for now until we 
clear up the whole mess.

/Erik
> David
>
>> /Erik
>>
>> On 2013-05-21 13:30, Alan Bateman wrote:
>>> On 21/05/2013 10:53, Erik Joelsson wrote:
>>>> In the old build, JObjC.jar was built completely differently from all
>>>> other java classes, by an ant script. We kept the source/target 1.5
>>>> when converting to the new build to keep the builds equal. I very
>>>> much doubt there is a reason for it now though. It looks like left
>>>> over legacy to me.
>>>>
>>>> The simplest fix for you would be to change the outputdir of the
>>>> generated sources for jobjc to something like gensrc_jobjc.
>>>>
>>>> I would really like to see the whole special handling of jobjc
>>>> compilation removed.
>>>>
>>>> /Erik
>>> It would be good to get this cleaned up or removed.
>>>
>>> For now I'm using the attached patch to ensure that the classes are
>>> generated to gensrc_jobjc.
>>>
>>> -Alan.
>>>
>>>
>>> diff -r b9b26b424bfc makefiles/CompileJavaClasses.gmk
>>> --- a/makefiles/CompileJavaClasses.gmk    Sat May 18 18:55:56 2013 
>>> -0700
>>> +++ b/makefiles/CompileJavaClasses.gmk    Tue May 21 12:05:43 2013 
>>> +0100
>>> @@ -342,7 +342,7 @@
>>>          DISABLE_SJAVAC:=true,\
>>>          SRC:=$(JDK_TOPDIR)/src/macosx/native/jobjc/src/core/java \
>>> $(JDK_TOPDIR)/src/macosx/native/jobjc/src/runtime-additions/java \
>>> -             $(JDK_OUTPUTDIR)/gensrc, \
>>> +             $(JDK_OUTPUTDIR)/gensrc_jobjc, \
>>>          INCLUDES := com/apple/jobjc,\
>>>                  EXCLUDES := tests/java/com/apple/jobjc,\
>>>          BIN:=$(JDK_OUTPUTDIR)/jobjc_classes,\
>>> @@ -355,7 +355,7 @@
>>>          SETUP:=GENERATE_JDKBYTECODE,\
>>>          SRC:=$(JDK_TOPDIR)/src/macosx/native/jobjc/src/core/java \
>>> $(JDK_TOPDIR)/src/macosx/native/jobjc/src/runtime-additions/java \
>>> -             $(JDK_OUTPUTDIR)/gensrc, \
>>> +             $(JDK_OUTPUTDIR)/gensrc_jobjc, \
>>>          INCLUDES := com/apple/jobjc,\
>>>                  EXCLUDES := tests/java/com/apple/jobjc,\
>>>          BIN:=$(JDK_OUTPUTDIR)/jobjc_classes_headers,\
>>> dhcp-uk-twvpn-2-vpnpool-10-175-60-135:makefiles ab23780$
>>> dhcp-uk-twvpn-2-vpnpool-10-175-60-135:makefiles ab23780$
>>> dhcp-uk-twvpn-2-vpnpool-10-175-60-135:makefiles ab23780$ hg diff 
>>> GensrcJ
>>> GensrcJDWP.gmk   GensrcJObjC.gmk
>>> dhcp-uk-twvpn-2-vpnpool-10-175-60-135:makefiles ab23780$ hg diff
>>> GensrcJObjC.gmk
>>> diff -r b9b26b424bfc makefiles/GensrcJObjC.gmk
>>> --- a/makefiles/GensrcJObjC.gmk    Sat May 18 18:55:56 2013 -0700
>>> +++ b/makefiles/GensrcJObjC.gmk    Tue May 21 12:05:52 2013 +0100
>>> @@ -104,9 +104,9 @@
>>>
>>>  # The generator delets all files in the target dir so it has to work
>>> in its
>>>  # own dir and have the files copied over to gensrc aftewards.
>>> -$(JDK_OUTPUTDIR)/gensrc/_the.jobjc.files : $(JOBJC_TMP)/_the.generator
>>> +$(JDK_OUTPUTDIR)/gensrc_jobjc/_the.jobjc.files :
>>> $(JOBJC_TMP)/_the.generator
>>>      $(MKDIR) -p $(@D)
>>>      $(CP) -rp $(JOBJC_DST)/* $(@D)
>>>      $(TOUCH) $@
>>>
>>> -GENSRC_JOBJC += $(JDK_OUTPUTDIR)/gensrc/_the.jobjc.files
>>> +GENSRC_JOBJC += $(JDK_OUTPUTDIR)/gensrc_jobjc/_the.jobjc.files



More information about the build-dev mailing list