2009/11/01

boa web server porting問題

  今天在練習將 boa 這個 web server 編譯成 arm 平台時發生以下問題:

make 時:
[root@localhost src]# make
arm-linux-gcc -g -O2 -pipe -Wall -I. -c -o util.o util.c
util.c:100:1: pasting "t" and "->" does not give a valid preprocessing token
make: *** [util.o] Error 1
找到 util.c 的第100行程式碼:
time_offset = TIMEZONE_OFFSET(t);

改成 : time_offset = 0;
重新 make 就可以了。為什麼要這樣改,Linux 的 time_t 中沒有 tm_gmtoff 這個 field. 而 compat.h 中的定義卻是這樣寫的:

#define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff