發表文章

目前顯示的是有「MIPS」標籤的文章

mips 和 mipsel 的差異

之前『 arm 和 armel 的差異 』一文有提過,ARM 的支援分成了『arm』和『armel』,其實,MIPS 也分成了『mips』和『mipsel』,只不過意義上和 ARM 有所不同,而 MIPS 的兩種支援指的是 big-endian 和 little-endian,mis"el" 指的就是『little-endian』之意。 MIPS 使用的 Endianness 因 Processor 而異,有 big-endian 也有 little-endian,甚至是可以同時兩種模式並行。舉例來說,SGI 的機器(SGI O2 with R5000, R5200 and RM7000 CPU)是運作於 big-endian mode;Cobalt RaQ/Qube2/RaQ2 是運作於 little-endian mode;雙模式並行的有 Broadcom BCM91250A(SWARM)/BCM91480B(BigSur) evaluation board。

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

這幾天手邊同時在做 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