HOME / コンピュータTips / Solaris / コンパイル / Perl 5.8.8

Date: 2017/07/28 |  このエントリーをはてなブックマークに追加  |  Tags: Perl 5.8.8 Solaris コンパイル Out of memory!

Solaris 10で、Perl 5.8.8のコンパイル

Soalris10に入っている標準のPerlには、どういうワケか、伝統的に正規表現系が怪しい動きをする。

このパッチは、「Out of memory!」を治すパッチ。

添付のファイルを実行して、下記のようになると、インストールされているPerlにはバグがある。

filebugcode.pl

47
0.
1.
Out of memory!

どうやらSolarisで動かすときに発現するPerlの問題なのかわからないが、いずれにしても、パッチを見れば分かるとおり、変数の初期化問題である。

とりあえずお友達が作ったパッチを当ててみると再現はしないような気がする。

--- regcomp.c.orig      Tue Jun  5 00:52:28 2007
+++ regcomp.c   Tue Jun  5 00:53:31 2007
@@ -1810,6 +1810,8 @@
     r->subbeg = NULL;
     r->reganch = pm->op_pmflags & PMf_COMPILETIME;
     r->nparens = RExC_npar - 1;        /* set early to validate backrefs */
+    r->lastparen = 0;
+    r->lastcloseparen = 0;

     r->substrs = 0;                    /* Useful during FAIL. */
     r->startp = 0;                     /* Useful during FAIL. */

fileregcomp.c.patch

下記のスクリプトはconfigureだけを行うので、エラーがないことを確認して、make && make test && make installすると良い。

なお、64bitコンパイルが必要ない場合は、下を見て、適当に編集するとよいでしょう。コメントアウトされている方が、32bit版ね。

#!/bin/sh

rm -f config.sh Policy.sh
# for 32bit
#./Configure -des  -Dlibs='-lsocket -lnsl -ldl -lm -lc' \
#-Dperllibs='-lsocket  -lnsl -ldl -lm -lc' \
#-Doptimize='-xO3 -xspace -xildoff'

# for 64bit
rm -f config.sh Policy.sh
./Configure -des  -Dlibs='-lsocket -lnsl -ldl -lm -lc' \
-Dperllibs='-lsocket -lnsl -ldl -lm -lc' \
-Doptimize='-xO3 -xspace -xildoff' \
-Dccflags='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TS_ERRNO' \
-Duse64bitint=define \
-Duse64bitall=undef \
-Duselongdouble=undef \
-Dd_longlong=define \
-Dd_longdbl=define \
-Divtype='long long' \
-Dnvtype='double' \
-DOff_t='off_t' \
-Dprototype=define \
-Ddlsrc=dl_dlopen.xs \
-Ddlext=so \
-Dd_dlsymun=undef

コンピュータTips/Solaris/コンパイル

Recent Updates

ディスクの不良を確認する(iostat -EnのError等)

ディスク関係のスタックをざっくり書くと次の様になっています 例、SAS Expanderを使う場合、 例、AHCIなどを使う場合、 これらのエラーは、次の様なコマンドで知ることができます。 出力結果例 このなかで、 たとえば、SATAディスクを利用している際に負荷が上がってしまい、ディスクの応答が間に合わないシチュエーションでは、Transport Errorが一気に …
»続きを読む

2017年、新年明けまして、おめでとうございます。

日記/2017年、新年明けまして、おめでとうございます。

新年明けまして、おめでとうございます。今年もよろしくお願いします。 昨年中は、皆様にお世話になりました。 昨年は、コツコツと3年程前から行ってきた改革がある程度完成された年で、この先5年、10年を見据えて、次のフェーズへと進む為の土台が完成した年でもありました。 それにキャッチアップする形で、個々の従業員一同が、役割を自覚し、明確に動けた年であったかと考えています。 …
»続きを読む

RSA鍵認証のみにし、Password認証を無効化する

意外に覚えきれなくて、いつも忘れるので、メモついでに残しておきます。 古いOpenSSHや、SunSSHの場合は、これも無効にします。 ユーザ目線でのザックリとした説明を。OpenSSHではなく別のSSH実装も含めて考えているので、OpenSSHのソースをじっくり読んだわけではないため、間違ってたらすみません。 まず、Password認証を無効にする場合、 PasswordAut …
»続きを読む

Nexus7 2013をMarshmallow(Android 6.0)化

OTAでない方法で。 だいたい ここに書いてある方法 なんだけど、adbなどが一式使えている状態で。 まずは自分の機種のものをダウンロードする。僕のは、 Android 6.0 Marshmallow for Nexus 7 2013 Wi-Fi 。tgzを展開し、zipも解いておく。 まずはboot loaderへ。 bootloader自体のアップデート。一式、updat …
»続きを読む

OS X 10.11 El Capitanで、phpのモジュールインストール

Yosemiteからのアップデートは割と簡単です。なぜならYosemite時に、すでにapache 2.4になり、php 5.5になっているから(笑 アップデート前に、まずはphp.iniとhttpd.confをバックアップしておきましょう きになるなら、hostsとかapache以下全てをバックアップしておいてもいいかも。 後はEl Capitanにアップデートする。 アッ …
»続きを読む

EasyAcc Powerbank PB4000CB

スマフォTips/モバイルバッテリー/モバイルバッテリー製品レビュー/EasyAcc Powerbank PB4000CB

薄型のモバイルバッテリーEasyAcc Powerbank PB4000CBです。 今や、モバイルバッテリーは大型のものが好まれるのか、隙間無く商品があります。20,000mAh越えで、「でけえ!」とか言ってますけど、大きいのを探せば、100Wh(27,000mAh)、200Wh当たり前、探せば500Wh(135,000mAh)とか、もっともっとあるのです。用途がどんどん異なっていくので …
»続きを読む

EC Technology Sports Headsets S10-JWH07B

デバイスTips/Bluetooth/EC Technology Sports Headsets S10-JWH07B

Bluetoothのスポーツヘッドセット、 S10-JWH07B について。 今までブログに記載することはなかったのですが、実は割とBluetoothと言うか無線型のヘッドフォンを沢山持っています。赤外線や独自物、Bluetoothなどいくつもストックを持っていたりします。普通の人からするとマニアです。でも、マニアからみるとそうでもないレベルです。 ただ「ヘッドフォンの音質」というの …
»続きを読む

静岡県内をVPNでつなぐ(割と特殊な例)

静岡というのはある意味特殊な土地で、ほとんどのインターネットプロバイダのPOIは静岡でつながれておらず、NTT西圏内のどこかで繋がっているので、大抵大阪折り返しになる。仮に静岡県内にPOIがあっても、だいたい静岡でルーティングしてないので、やっぱり東京折り返しになってたりする。例え 同じプロバイダを使っていたとしても 。 だから静岡←→静岡のVPNは、静岡←→東京や、静岡←→大阪よりも遅 …
»続きを読む

最新  |  << 前ページ  |  次ページ >>  |  最初