harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sebb <seb...@gmail.com>
Subject Re: [build] Ensuring consistent build environment for releases
Date Thu, 23 Sep 2010 16:24:18 GMT
On 23 September 2010 13:51, Mark Hindess <mark.hindess@googlemail.com> wrote:
>
> In message <AANLkTik=rScQQgo7c88XRLshYsnxPr=a8V=VpEMeXU0H@mail.gmail.com>,
> sebb writes:
>>
>> On 23 September 2010 12:17, Mark Hindess <mark.hindess@googlemail.com>
>> wrote:
>> >
>> > I've been looking at:
>> >
>> >  https://issues.apache.org/jira/browse/HARMONY-6535
>> >
>> > and wondering about build processes particularly for releases.
>> >
>> > Some of you might have noticed (as I checked in my scripts
>> > recently[0]), that I try quite hard to ensure that the linux builds
>> > are built with a known environment.  In particular, these scripts
>> > do:
>> >
>> >  cat /tmp/build/*/common_resources/depends/jars/ecj_*/ecj-*.jar \
>> >      >/usr/share/ant/lib/ecj-harmony.jar
>> >
>> > to ensure that the version of ecj used during the build is the one
>> > defined by the harmony dependency downloads.
>> >
>> > I don't really have an equivalent clean process for windows and it
>> > looks like the version of ecj.jar on my windows build machine was a
>> > little older than the 3.5.1 that I used on Linux.  So this accounts
>> > for the differences described in the above JIRA.
>> >
>> > Obviously I've fixed my machine now and will try to make sure I
>> > check this before building release binaries in future. =A0However,
>> > I'd prefer a more robust solution.
>> >
>> > I'd be tempted to add a build time check to look at the ecj jar
>> > version that is available but there doesn't seem to be enough
>> > information in the ecj.jar manifests to do this.
>> >
>> > Anyone got any bright ideas?
>>
>> I must be missing something here.
>
> Perhaps (or perhaps I am).
>
>> Can you not give the ecj jar a version-specific path name, and use
>> that in the classpath?
>
> The problem is you need to pass that classpath to the ant invocation
> so you have a bootstrapping problem.

Two possible solutions here:
- remove the need for ECJ to be on the Ant classpath; it can then be
added by the build file(s).
- provide the ECJ location when starting Ant. This would require
running fetch-depends first.

I don't know how easy these would be, but it does not seem right to me
to mess with the Ant installation.

By the way, the ecj-3.5.1.jar contains the following file:

org/eclipse/jdt/internal/compiler/batch/messages.properties

which contains:

compiler.version = 0.972_R35x, 3.5.1 release

Might be useful in checking the file version.
> Regards,
>  Mark.
>
>
>

Mime
View raw message