emacs-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-bug-tracker] bug#9306: closed (Java build errors due to trailing


From: GNU bug Tracking System
Subject: [Emacs-bug-tracker] bug#9306: closed (Java build errors due to trailing colon in CLASSPATH)
Date: Thu, 18 Aug 2011 19:31:02 +0000

Your message dated Thu, 18 Aug 2011 21:27:39 +0200
with message-id <address@hidden>
and subject line Re: bug#9306: Java build errors due to trailing colon in 
CLASSPATH
has caused the GNU bug report #9306,
regarding Java build errors due to trailing colon in CLASSPATH
to be marked as done.

(If you believe you have received this mail in error, please contact
address@hidden)


-- 
9306: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9306
GNU Bug Tracking System
Contact address@hidden with problems
--- Begin Message --- Subject: Java build errors due to trailing colon in CLASSPATH Date: Mon, 15 Aug 2011 15:54:36 -0400
I am using Automake 1.11.1, and have recently encountered a subtle issue
that causes compilation of some Java programs to fail.

Here is a typical build failure, produced from a minimal test case I've
assembled, using OpenJDK on Ubuntu's Natty release:

make[3]: Entering directory `/tmp/automake-java-bug/org/gnu/bug'
CLASSPATH=../../..:./../../..:$CLASSPATH javac -d ../../..    Library.java 
Application.java
./Library.java:5: duplicate class: org.gnu.bug.Library
public class Library
       ^
Application.java:9: cannot access Library
bad class file: RegularFileObject[./Library.java]
file does not contain class Library
Please remove or make sure it appears in the correct subdirectory of the 
classpath.
                Library lib = new Library();
                ^
2 errors
make[3]: *** [classdist_noinst.stamp] Error 1


If I copy-and-paste the javac invocation, edit it slightly, and run
it...

    env CLASSPATH=../../..:./../../..: javac -d ../../.. Library.java 
Application.java

...I get the same error. However, if I remove that trailing colon from
CLASSPATH, and try it again...

    env CLASSPATH=../../..:./../../.. javac -d ../../.. Library.java 
Application.java

...compilation succeeds. If I invoke the above build with

    env CLASSPATH=/does-not-exist make

then compilation likewise succeeds.

Note that I do not have CLASSPATH set in my environment. It would appear
that a trailing colon in the CLASSPATH environment variable has a
special meaning attached to it, which makes Automake's use of
CLASSPATH=mumblemumble:$$CLASSPATH in makefiles problematic.

(The straightforward solution would be to replace that construct with
CLASSPATH=mumblemumble$${CLASSPATH:+:$$CLASSPATH}, but whether all
shells can handle that is an open question.)

Attached is a tarball containing the minimal test case.


--Daniel


P.S.: Please Cc: any replies to me, as I am not subscribed to this list.


-- 
NAME = Daniel Richard G.     _\|/_    Remember, skunks
MAIL = address@hidden     (/o|o\) _- don't smell bad---
MAIL+= address@hidden   < (^),>     it's the people who
WWW  = (not there yet!)      /   \      annoy us that do!

Attachment: automake-java-bug.tar.gz
Description: GNU Zip compressed data


--- End Message ---
--- Begin Message --- Subject: Re: bug#9306: Java build errors due to trailing colon in CLASSPATH Date: Thu, 18 Aug 2011 21:27:39 +0200 User-agent: KMail/1.13.3 (Linux/2.6.30-2-686; KDE/4.4.4; i686; ; )
On Wednesday 17 August 2011, Stefano Lattarini wrote:
> On Tuesday 16 August 2011, Daniel Richard wrote:
> > On Tue, 2011 Aug 16 15:30+0200, Stefano Lattarini wrote:
> > > BTW, are you the same "Daniel Richard G." listed in THANKS with the
> > > address "address@hidden"?  If yes, should I update your
> > > address there?
> > 
> > The same! That's my work address, and while it remains active, my
> > personal address (@iskunk.org) is the one I usually go by in this realm.
> > Please feel free to update the entry.
> > 
> OK, will do with the attached trivial patch.
> 
I've pushed both the patches now, and I'm closing the bug report.

Thanks,
  Stefano


--- End Message ---

reply via email to

[Prev in Thread] Current Thread [Next in Thread]