在Ubuntu 11.10上编译OpenJDK会遇到两个特殊的问题,下面给出相应解决方案。
1. "This OS is not supported"
hotspot的makefile检查Linux kernel的版本号在其列表中。而Kernel 3.0不在其中,或者绕过版本检查(DISABLE_HOTSPOT_OS_VERSION_CHECK=ok);或者把3.0加入列表,即
diff -r 9b0ca45cd756 make/linux/Makefile --- a/make/linux/Makefile Tue Jun 28 10:57:38 2011 -0700 +++ b/make/linux/Makefile Fri Oct 21 15:15:20 2011 +0100 @@ -230,7 +230,7 @@ # Solaris 2.5.1, 2.6). # Disable this check by setting DISABLE_HOTSPOT_OS_VERSION_CHECK=ok. -SUPPORTED_OS_VERSION = 2.4% 2.5% 2.6% 2.7% +SUPPORTED_OS_VERSION = 2.4% 2.5% 2.6% 2.7% 3.0% OS_VERSION := $(shell uname -r) EMPTY_IF_NOT_SUPPORTED = $(filter $(SUPPORTED_OS_VERSION),$(OS_VERSION))
2. Can't find asound lib
需要libsound.so来做link,但这个文件已不存在于/usr/lib。因此得手工指定,"EXTRA_LIBS=/usr/lib/i386-linux-gnu/libasound.so" 或 "EXTRA_LIBS=/usr/lib/x86_64-linux-gnu/libasound.so"(该文件来自pkg libasound2-dev)