pkgsrc: PHP7から8への移行
(主にpkgsrcで)apacheのphpモジュールを7系列から8系列に移行したときにひっかかる(ひっかかった)ところ。
具体的に起きる事象や対処法は、pkgのビルド環境などによって異なります。あと、PHPと直接関係ないものも混ざってます。
(主にpkgsrcで)apacheのphpモジュールを7系列から8系列に移行したときにひっかかる(ひっかかった)ところ。
具体的に起きる事象や対処法は、pkgのビルド環境などによって異なります。あと、PHPと直接関係ないものも混ざってます。
NetBSD/amd64 on ECS LIVA Z を書いてからしばらくして、TCSまわりの問題は改善していたが、NetBSD 10.0 にしてみたところ別のところでハマる。
…PCIバスのSPARC機にPC用のATAカードを挿す話は(昔)ありましたが……
SATAカードを挿したのは見かけなかったので残しておく。
…既に簡潔な解説があった:
LinuxとNetBSDのbridgeの違い――夜でもアッサム
http://assam-at-night.blogspot.com/2009/04/linuxnetbsdbridge.html
Linuxの方、「なんでブリッジにIPアドレス??」といったあたりから、概念がよくわからずに試行錯誤してしまったので、自分なりの解釈をまとめておく。(間違ってたらこっそり教えてください)
…追記
対処された模様。pkgsrc/databases/mysql57-client/hacks.mk:
pkgsrc/databases/mysql57-server/hacks.mk:
# [Tue Sep 22 21:38:02 CEST 2020 : he]
# On NetBSD/powerpc, use devel/libatomic to get 8-byte atomics.
.if ${MACHINE_ARCH} == "powerpc"
.include "../../devel/libatomic/buildlink3.mk"
.endif
なるほど、あれこれやっている間に devel/libatomic
というのができてたのね。
以下、過去の記録:
――――――――――――――――――――――――――――――――
どっかで見た話のようで別の話のような、そうでもないような。
NetBSD/macppc (9.0_STABLE) で pkgsrc/databases/mysql57-client が作れない問題もっと読む »
NetBSD 8.1(のまま放置されていた)から 9.0_STABLE にアップグレード:
すると、何故か NetBSD 8.1 が起動します(???)
(8.1 のカーネルを削除しても亡霊のように 8.1 が起動します)
$ strings /netbsd | grep 9.0_STABLE
とか実行すると、間違いなく /netbsd は 9.0_STABLE のものです。
いったい何が起きているのでしょうか?
…
わりとどうでもいいネタ。
uname -a
を実行すると、
$ uname -a
NetBSD xxx.ceres.ne.jp 9.0_STABLE NetBSD 9.0_STABLE (GENERIC) #0: Fri Apr 3
02:59:31 JST 2020 est@xxx.ceres.ne.jp:/xxx/amd64/obj/sys/arch/amd64/compile
/GENERIC amd64
NetBSD とか 9.0_STABLE とか、2回出てきて冗長な気がする。
NetBSD が悪いわけではなく、BSD 系全般(とか Darwin とか)こんな感じだったはずだが(※)。
とある(比較的広く使われている)C言語のプログラムをデバッグしていたのだけれど、なんか初期化されていない変数を使っていそうな感じの箇所が多い。
そこで、全体をgcc -Wmaybe-uninitialized
でチェックしてみると、結構出てきた。
(デバッグの話はこれで終わり。)
もっとも、maybeだけあって、必ず妥当な警告を出すわけではなくて、
特定のコードを特定のコンパイルオプションつきでコンパイルするとこんなのが出る
warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=]
例えば NetBSD の src/lib/libc/gen/asysctl.c を -O3 で(というか -O2 -fsplit-paths でも)コンパイルすると出る。
通常は -O2 なので出ない。
…
NetBSD/amd64 8.0_STABLE(以下 8.0)
NetBSD/amd64 8.1_STABLE(8.1)
NetBSD/amd64 9.0_BETA(9.0)
こんな感じの、中からの通信はプロトコルを問わないけれど、外からはsshだけ受け付ける npf.conf
:
$ext_if = "bge0" # or "re0" or ...
$ext_v4 = inet4($ext_if)
group "external" on $ext_if {
pass stateful out final all # rule (1)
pass in final proto tcp to $ext_v4 port ssh # rule (2)
}
default {
pass final on lo0 all
block all # rule (3)
}
だけど、8.1, 9.0 だと外から ssh で接続できない。
…