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