p5-Encode-Detect problem

p5-Mail-Spamassassin 升級到 3.2 需要 p5-Encode-Detect , 但是我在 FreeBSD 4.11 (gcc 2.95) 以及之後將 gcc 升級到 3.4.6 都會發生

syntax error before `__attribute__’

的錯誤.

參考 這篇, 解決問題.
修改 lib/Encode/Detect/Detector.xs 檔案

*** Detector.xs.orig Sat Oct 28 04:48:59 2006
— Detector.xs Fri Jun 29 15:07:18 2007
***************
*** 38,43 ****
— 38,44 —-
#define PERL_NO_GET_CONTEXT /* we want efficiency */
#include “EXTERN.h”
#include “perl.h”
+ #undef HASATTRIBUTE_UNUSED
#include “XSUB.h”
}

再繼續編譯即可成功.

詳細的錯誤訊息:

pctao@pcsh [/usr/ports/converters/p5-Encode-Detect] [14:51/W6] sudo make all
(..skip..)
cc -Isrc -I/usr/local/lib/perl5/5.8.8/mach/CORE -DPIC -fPIC -x c++ -Iinclude -c -DAPPLLIB_EXP=/usr/local/lib/perl5/5.8.8/BSDPAN -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict-aliasing -pipe -I/usr/local/include -O0 -pipe -fexpensive-optimizations -s -march=pentiumpro -o src/LangThaiModel.o src/LangThaiModel.cpp
Copying Detect.pm -> blib/lib/Encode/Detect.pm
Copying Detector.pm -> blib/lib/Encode/Detect/Detector.pm
Copying Detector.xs -> lib/Encode/Detect/Detector.xs
lib/Encode/Detect/Detector.xs -> lib/Encode/Detect/Detector.c
Use of uninitialized value in concatenation (.) or string at /usr/local/lib/perl5/site_perl/5.8.8/ExtUtils/ParseXS.pm line 508, line 65.
cc -Isrc -I/usr/local/lib/perl5/5.8.8/mach/CORE -DXS_VERSION=”1.00″ -DVERSION=”1.00″ -DPIC -fPIC -x c++ -Iinclude -c -DAPPLLIB_EXP=/usr/local/lib/perl5/5.8.8/BSDPAN -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict-aliasing -pipe -I/usr/local/include -O0 -pipe -fexpensive-optimizations -s -march=pentiumpro -o lib/Encode/Detect/Detector.o lib/Encode/Detect/Detector.c
lib/Encode/Detect/Detector.c:73: syntax error before `__attribute__’
lib/Encode/Detect/Detector.c:74: syntax error before `__attribute__’
lib/Encode/Detect/Detector.c:79: register name not specified for `struct SV ** mark’
lib/Encode/Detect/Detector.c:79: `sp’ was not declared in this scope
lib/Encode/Detect/Detector.c:81: syntax error before `if’
error building lib/Encode/Detect/Detector.o from ‘lib/Encode/Detect/Detector.c’ at /usr/local/lib/perl5/site_perl/5.8.8/ExtUtils/CBuilder/Base.pm line 108.
*** Error code 2

Stop in /usr/ports/converters/p5-Encode-Detect.
pctao@pcsh [/usr/ports/converters/p5-Encode-Detect] [14:52/W6]

This entry was posted in FreeBSD and tagged , . Bookmark the permalink. Post a comment or leave a trackback: Trackback URL.

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*
  • Google Friend Connect

  • Just for you

    Powered by MyBlogLog
  • Meta