개발할 때, 제일 싫은 것은 바로 "빌드 에러"다.
새해 첫날 우분투를 업데이트하고, 사실 이번 업데이트는 오래전부터 망설였는데, 지난 번 cairo업데이트 한 후, gtk+로 개발된 애플리케이션이 동작하지 않아 낭패를 본 경험때문이다. 이번 업데이트는 커널 부터 파이어폭스2.0, firefox-dev, apache까지 포함되어 있었다.
업데이트 한 후, 우려했던 것 처럼 문제가 발생하기 시작했다.
파이어폭스가 실행되지 않는 것이다.
joone@R2D2:~/mozilla/mozilla/obj_debuglog/dist/bin$ firefox
The program 'firefox-bin' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadWindow (invalid Window parameter)'.
(Details: serial 2377 error_code 3 request_code 20 minor_code 0)
(Note to programmers: normally, X errors are reported asynchronously;
that is, you will receive the error a while after causing it.
To debug your program, run it with the --sync command line
option to change this behavior. You can then get a meaningful
backtrace from your debugger if you break on the gdk_x_error() function.)
다행히 firefox --sync 하니까 실행은 되지만 온갖 디버그 정보가 터미널에 주르륵 나타났다.
더 시급한 문제는 Firefox trunk 빌드가 안되는 부분이다. 간만에 mainline으로 부터 소스를 업데이트하고 빌드하려고 하니 에러가 발생했다.
../../../config/./nsinstall -R -m 444
/scratch/chen/X/mozilla/nsprpub/pr/include/md/
/scratch/chen/X/mozilla/build/dist/include/nspr
../../../config/./nsinstall: cannot make symbolic link
/scratch/chen/X/mozilla/build/dist/include/nspr/md: File exists
gmake[7]: *** [export] Error 1
gmake[7]: Leaving directory
경로는 다르겠지만 /dist/include/nspr/md 심볼릭 링크를 만들지 못해 발생한 에러였다.
이 문제는 크로스 컴파일할 때, 타겟을 못찾는 경우 발생한다고 한다. 그래서
ac_add_options --target=i686-linux-uclibc
위 옵션을 추가했더니 컴파일이 잘된다.
갑자기 멀쩡한 우분트가 업데이트 하나로 뭔가 이상하게 동작하기 시작했다.
새해 부터 삽질은 시작되는 듯 싶다.
댓글 없음:
댓글 쓰기