2009年7月28日 星期二

cross-compile 密技 - 閃避 libtool eval '|' 的 BUG

Standard
這幾天手邊同時在做 ARM 和 MIPS Architecture 的工作,當然免不了一直重覆 cross-compile 的忙錄,這性感又危險的工作,常伴隨著無盡的 Error 和 Failed,讓人既有成就感又有挫折感,需要去一一排除萬難才能順利達成 Make 的任務。說著說著,又碰上了一個莫明奇妙的 bug:

libtool: eval: line 964: syntax error near unexpected token `|'

這是在編譯 glib2.0-2.20.3(在 Debian Sid 上使用 apt-get source 抓下來的 sourcecode)時所遇上的錯誤,目標是要 cross-compile 給 mipsel 所使用(尚未實驗 arm 是否也有同樣問題),Debug 的過程也不多說,因為可直接使用 Tricky 的方法閃過這個錯誤:

USE_ARCH=32 NM=nm CC="mipsel-linux-gnu-gcc ${BUILD32}" ./configure \
--with-gnu-ld \
--target=mipsel-linux \
--host=mipsel-linux \
CC=mipsel-linux-gnu-gcc \
--prefix=/usr