Solaris8付属のPerl5の罠

 Solaris8にはPerl5(5.005_03)が標準でついてくるので「ラッキー」と思った諸兄は多いことだろう。「ラッキー」と思った方、CPANからパッケージをいくつかGETして導入してみてください。懐かしの「アレ」が出てくることでしょう。

/usr/ucb/cc:  language optional software package not installed
gccも入れている、CCもgccにしている。なのに「なぜ?」と思われる方、perl -V を実行してみてください(以下の結果はsparc版の場合ですけど・・・)
$ perl -V
Summary of my perl5 (5.0 patchlevel 5 subversion 3) configuration:
  Platform:
    osname=solaris, osvers=2.8, archname=sun4-solaris
    uname='sunos localhost 5.8 sun4u sparc sunw,ultra-1 '
    hint=previous, useposix=true, d_sigaction=define
    usethreads=undef useperlio=undef d_sfio=undef
  Compiler:
    cc='cc', optimize='-xO3 -xdepend', gccversion=
    cppflags=''
    ccflags =''
    stdchar='char', d_stdstdio=define, usevfork=false
    intsize=4, longsize=4, ptrsize=4, doublesize=8
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
    alignbytes=8, usemymalloc=n, prototype=define
  Linker and Libraries:
    ld='cc', ldflags =''
    libpth=/lib /usr/lib /usr/ccs/lib
    libs=-lsocket -lnsl -ldl -lm -lc -lcrypt
    libc=/lib/libc.so, so=so, useshrplib=true, libperl=libperl.so
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-R /usr/perl5/5.00503/sun4-solaris/CORE'
    cccdlflags='-KPIC', lddlflags='-G'


Characteristics of this binary (from libperl):
  Built under solaris
  Compiled at Dec 22 1999 00:00:57
  @INC:
    /usr/perl5/5.00503/sun4-solaris
    /usr/perl5/5.00503
    /usr/perl5/site_perl/5.005/sun4-solaris
    /usr/perl5/site_perl/5.005
    .
 Solaris付属のPerlは赤太字で書いている通り、cc(Forte C)を使ってコンパイルされているのです(わざわざGNUgccを使ってコンパイルするはずもない)。PerlのModuleは、インストールするPerlを構築したときのコンパイラとCFLAGSを使ってコンパイルするため、そのまま使う場合SunのCコンパイラが必要となります。
 /usr/ucb/cc を /usr/local/bin/gcc に Symbolic-Linkする豪快な方もおられるようですが、どのみちCFLAGSも違う(GNUgccの場合の最適化は -O2 であるのに対し、SunのCコンパイラの場合 -xO2 というように・・・)ので、バージョンも古いということで、ここは一つ最新版をコンパイルしましょう。ただ、コンパイル前には
system      SUNWpl5m       Perl5 On-Line Manual Pages
system      SUNWpl5p       Perl 5.005_03 (POD Documentation)
system      SUNWpl5u       Perl 5.005_03
の3つを上から順番に pkgrm しておくことを忘れないようにしてください。
※依存関係に関する警告が出ても気にしない。
Solaris8(IA)構築のツボに戻る