今天上某堂我很不願意聽到那種方式來傳頌某種道義的課的時候,繼續下午沒有做完的事。昨天晚上,鹿小滑說他把他那的某台 FreeBSD 6.0 Current (我比較好奇現在 Current 應該是 7.0 吧?,6.0 應該是 RELEASE branch 現在在 RC1)升上去並順便開 SCHED_ULE + PREEMPTION + SMP + HTT 之後,重編完 kernel reboot 便再起不能、失去聯絡。然後慫恿我去開來測看看會不會爆炸,我說我到機器旁邊再測,結果沒想到原來我 9/15 的時候就很勇敢的開下去了啊,一直跑到現在好像蠻穩的嘛。

編譯的時候有開始惡搞 make.conf (反正想說我又不趕時間,慢慢 try),上一次編的時候是用

CFLAGS= -O2 -march=athlon64 -pipe -msse3 (without -m64)

結果這次一不小心又開了 -m64 連暴了兩次,後來回去看自己的 note 才想到。於是很好奇的去查 -m64 到底是啥鬼玩意。在 gcc 官方網頁的 4.0.2 Manual當中可以看到:

 

-m32 -m64 Generate code for a 32-bit or 64-bit environment. The 32-bit environment sets int, long and pointer to 32 bits and generates code that runs on any i386 system. The 64-bit environment sets int to 32 bits and long and pointer to 64 bits and generates code for AMD’s x86-64 architecture.

拿掉之後這次很嗨的換成了:

CFLAGS= -O2 -march=athlon64 -pipe -fexpensive-optimizations -mfpmath=sse,387 -msse -m3dnow -msse2 -msse3

 

於是我就在想,只是 long 跟 pointer 變成 64bits 嘛,有差那麼多嗎?又不會因為這樣而 Overflow。於是我又想到上個禮拜的科技英文閱讀,看到老師的打分數方式之後有點「忽然明白」為什麼強者跑去第二組了。因為反面換下一篇文章後超過 100 lines,算行數的同學不曉得,所以 Overflow 了 Orz…。

被打斷大久,不知道要寫什麼了……..

歷史上的今天