Build problems on Ubuntu 8.04

Kelly O'Hair Kelly.Ohair at Sun.COM
Mon Apr 21 16:48:52 UTC 2008


For Linux and Solaris I could see such a thing, even with all the
different Linux variations. But Windows... :^(
You could restrict it to Windows&CYGWIN and starting from a cygwin shell,
but I suspect that would not be satisfying all the Windows users.
There are Windows&MKS and possibly Windows&OtherUnixToolSet, and
would you need a configure.bat ??? :^(

The fact that the JDK Makefiles want a fullpath to each tool makes life difficult,
see http://hg.openjdk.java.net/jdk7/build/jdk/file/tip/make/common/shared/Defs-utils.gmk
I understand why this was done, and maybe this also was part of the
sanity issue around tools (the path to the specific tool being exact
provided a minor sanity check?).
Maybe the configure script creates this file for the Makefile system?

In the long run I do think we need a configure step, just not sure
when it could be done, or how far you want to take it.

-kto

Keith McGuigan wrote:
> 
> How about a 'configure' step, which can perform a lot of the 
> system-specific probing.  Not sure we need to jump all the way into 
> automake or autoconf (but if we did, there's a lot of existing code out 
> there we could use).  But a 'configure; make; make install' sequence is 
> a very familiar concept.
> 
> -- 
> - Keith
> 
> Kelly O'Hair wrote:
>>
>>
>> Roman Kennke wrote:
>>> Hi there,
>>>
>>> I've just setup a box with the soon-to-be-released Ubuntu 8.04, and see
>>> a number of problems:
>>>
>>> Minor: make sanity does not check for gawk and c++, although the build
>>> requires them. Maybe there are some more of these, but this is what I
>>> found.
>>>
>>
>> We never have done sanity checks on all the unix command tools.
>> The sanity checks on the compilers usually involved finding the version
>> number and verifying it, but even then it might only result in a warning.
>> Over the past few years, most of the fatal sanity checks have been
>> relaxed to warnings to allow for maximum flexibility. Most compilers
>> and tools between Solaris, Windows, Linux, etc. are rather inconsistent
>> when it comes to getting their version string.
>> But I suppose we could always check for at least their existence.
>>
>> Verifying the Linux package list is very difficult to maintain for all 
>> the
>> variations of Linux.
>>
>> I'm open to solutions here.
>>
>> -kto
>>
>>> Major:
>>> Compilation of the NIO classes fails, it looks like the generation of a
>>> couple of source files does not work correctly. Probably this is also a
>>> problem with missing tools, but I can't figure out what it could be.
>>> Telling from the genCoder.sh script, this would be sed and awk, but both
>>> are installed. See javac error below. Any ideas on this one?
>>>
>>> Cheers, Roman
>>>
>>> # Running javac:
>>> /usr/lib/jvm/java-6-openjdk/bin/java -Xmx896m -Xms128m -XX:PermSize=32m
>>> -XX:MaxPermSize=160m
>>> -Xbootclasspath/p:/home/roman/src/OpenJDK/openjdk/build/linux-amd64/langtools/dist/bootstrap/lib/javac.jar 
>>> -jar 
>>> /home/roman/src/OpenJDK/openjdk/build/linux-amd64/langtools/dist/bootstrap/lib/javac.jar 
>>> -source 1.5 -target 5 -encoding ascii 
>>> -Xbootclasspath:/home/roman/src/OpenJDK/openjdk/build/linux-amd64/classes 
>>> -sourcepath 
>>> /home/roman/src/OpenJDK/openjdk/build/linux-amd64/gensrc:../../../src/solaris/classes:../../../src/share/classes 
>>> -d /home/roman/src/OpenJDK/openjdk/build/linux-amd64/classes 
>>> @/home/roman/src/OpenJDK/openjdk/build/linux-amd64/tmp/java/java.lang/java/.classes.list 
>>>
>>> /home/roman/src/OpenJDK/openjdk/build/linux-amd64/gensrc/java/nio/charset/CharsetEncoder.java:142: 
>>> cannot find symbol
>>> symbol  : class $replType$
>>> location: class java.nio.charset.CharsetEncoder
>>>     private $replType$ replacement;
>>>             ^
>>> /home/roman/src/OpenJDK/openjdk/build/linux-amd64/gensrc/java/nio/charset/CharsetEncoder.java:185: 
>>> cannot find symbol
>>> symbol  : class $replType$
>>> location: class java.nio.charset.CharsetEncoder
>>>                    $replType$ replacement)
>>>                    ^
>>> /home/roman/src/OpenJDK/openjdk/build/linux-amd64/gensrc/java/nio/charset/CharsetEncoder.java:246: 
>>> cannot find symbol
>>> symbol  : class $replType$
>>> location: class java.nio.charset.CharsetEncoder
>>>     public final $replType$ replacement() {
>>>                  ^
>>> /home/roman/src/OpenJDK/openjdk/build/linux-amd64/gensrc/java/nio/charset/CharsetEncoder.java:275: 
>>> cannot find symbol
>>> symbol  : class $replType$
>>> location: class java.nio.charset.CharsetEncoder
>>>     public final CharsetEncoder replaceWith($replType$ newReplacement) {
>>>                                             ^
>>> /home/roman/src/OpenJDK/openjdk/build/linux-amd64/gensrc/java/nio/charset/CharsetEncoder.java:301: 
>>> cannot find symbol
>>> symbol  : class $replType$
>>> location: class java.nio.charset.CharsetEncoder
>>>     protected void implReplaceWith($replType$ newReplacement) {
>>>                                    ^
>>> Note: Some input files use or override a deprecated API.
>>> Note: Recompile with -Xlint:deprecation for details.
>>> Note: Some input files use unchecked or unsafe operations.
>>> Note: Recompile with -Xlint:unchecked for details.
>>> 5 errors
>>> make[3]: *** [.compile.classlist] Error 1
>>> make[3]: Leaving directory
>>> `/home/roman/src/OpenJDK/openjdk/jdk/make/java/java'
>>> make[2]: *** [all] Error 1
>>> make[2]: Leaving directory
>>> `/home/roman/src/OpenJDK/openjdk/jdk/make/java'
>>> make[1]: *** [all] Error 1
>>> make[1]: Leaving directory `/home/roman/src/OpenJDK/openjdk/jdk/make'
>>>
>>>
> 



More information about the build-dev mailing list