April 22, 2010

PlanAhead 11.4 on Linux x86_64

PlanAhead [xilinx.com] (11.4) を Linux (x86_64, CentOS 5.4) で使うと、Java の Swing や AWT が NullPointerException で落ちる。以前の ChipScope Pro や Core Generator は Xilinx が独自にインストールした JRE を Sun からダウンロードした新しいバージョンに入れ替えたら少しはましになったので、今回も最新の JRE (1.6.0_20 for x86_64) に入れ替えてみたものの、PlanAhead が JRE のバージョンが自分のインストールしたものかどうかチェックしているらしく起動できない。
というわけで、起動スクリプトを少し修正したら、何とか表示はできるようになった(依然として再描画がうまくいかないが…)。起動スクリプト内のコメントは Java 周りはいじるなと書かれているが、動かないものはしょうがないよなぁ。しかもバグまで発見してしまった…。Linux で x86_64 のユーザって少ないのだろうなぁ。
しかし、x86 32bit は "i386"、x86 64bit は "x86_84" または "amd64" というディレクトリや名前で管理しているソフトウェアが多いけど、Linux x86_64 を "lnx64" はまだ許せるとして、Linux i386 を "lnx24" とするのは許せないなぁ。単なる間違え以上に裏があるのだろうか。32bit を 24bit と間違える人は「今時は」少ないと思う。
~/Xilinx/11.1/PlanAhead/tps/lnx64/j2re1.6.0_11/bin$ ./java -version # original (installed version)
java version "1.6.0_11"
Java(TM) SE Runtime Environment (build 1.6.0_11-b03)
Java HotSpot(TM) 64-Bit Server VM (build 11.0-b16, mixed mode)
~/Xilinx/11.1/PlanAhead/tps/lnx64/jre1.6.0_20/bin$ ./java -version # new
java version "1.6.0_20"
Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
Java HotSpot(TM) 64-Bit Server VM (build 16.3-b01, mixed mode)
~/Xilinx/11.1/PlanAhead/bin$ diff -u planAhead.orig planAhead
--- planAhead.orig      2010-04-22 22:08:53.000000000 +0900
+++ planAhead   2010-04-22 22:28:48.000000000 +0900
@@ -11,7 +11,8 @@
 #       any of the following statements:
 #
 # HDI_APPROOT=<installPath>/hdi/<toolAndVersion>
-# HDI_OSTYPE=<"lnx24" or "lnx64" or "sun58">
+HDI_OSTYPE="lnx64"
+HDI_JAVA_PLATFORM=amd64
 
 #
 # *************************************
@@ -123,9 +124,9 @@
     
 
 # configure HDI_JAVAROOT - we use a PA-shipped JVM, no need to tinker with it, please...
-HDI_JRE_RELEASE=1.6.0_11
-HDI_JRE_FULLVERSION=$HDI_JRE_RELEASE-b03
-HDI_JAVAROOT=$HDI_APPROOT/tps/$HDI_OSTYPE/j2re$HDI_JRE_RELEASE
+HDI_JRE_RELEASE=1.6.0_20
+HDI_JRE_FULLVERSION=$HDI_JRE_RELEASE-b02
+HDI_JAVAROOT=$HDI_APPROOT/tps/$HDI_OSTYPE/jre$HDI_JRE_RELEASE
 HDI_JAVAPROG=$HDI_JAVAROOT/bin/java
 
 # these last few variables really shouldn't be tinkered with either!

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.