On 23 September 2010 13:51, Mark Hindess <mark.hind...@googlemail.com> wrote: > > In message <aanlktik=rscqqgo7c88xrlshysnxpr=a8v=vpemex...@mail.gmail.com>, > sebb writes: >> >> On 23 September 2010 12:17, Mark Hindess <mark.hind...@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. > > >