Problem z kompilacja Encode_Detect dla Perla

problem:

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

Rozwiązanie:
W katalogu pakietu w work/Encode-Detect-xxx/Detector.xs
Należy dodać

*** 38,43 ****
#define PERL_NO_GET_CONTEXT /* we want efficiency */
#include .EXTERN.h.
#include .perl.h.
+ #undef HASATTRIBUTE_UNUSED
#include .XSUB.h.