mule 1.1 を NetBSD/i386 6.1.5 でビルドして動かした

1993年にリリースされた mule 1.1 PL04 (emacs 18.59 ベースの多言語化版)を NetBSD/i386 6.1.5 でビルドして動くようになるまでの流れです
2
Izumi Tsutsui @tsutsuii

しかし unexec 出来るだけでも驚異的という話もあるが ELF なら難しい話でもないという説もある(gentoo のパッチは新しい(?) emacs 21.3 から unexelf.c を持ってきている)

2015-02-26 02:42:59
Izumi Tsutsui @tsutsuii

-O だとそれなりに動いて -O2 だと微妙に動きが変だったりするのでまだいろいろ修正が足りていない

2015-02-26 02:43:41
Izumi Tsutsui @tsutsuii

perror ("Fatal X-windows I/O error"); kill (0, SIGILL); なぜ SIGILL なのか

2015-02-26 03:38:59
Izumi Tsutsui @tsutsuii

mule をいじっていると榎並さんの名前があちこちに出てくる件

2015-02-27 02:45:36
Izumi Tsutsui @tsutsuii

mule-1.1 on NetBSD/i386 6.1.5 は X上起動だと Xflush() で read() で待ったままになる。なお s-linux.h のコメントにある SYSV_STREAM は定義済み。 gentooだと動いているのだろうか

2015-02-27 12:55:54
Izumi Tsutsui @tsutsuii

mule1.1-PL04 on NetBSD/i386 6.1.5 github.com/tsutsui/mule1.… いろいろ試しましたが -nw のX無し版でしか動きません('A`)

2015-02-28 05:15:51
Izumi Tsutsui @tsutsuii

助けて えなみさーん(関係ない)

2015-02-28 05:16:15
enami tsugutomo @_enami

@tsutsuii とりあえず teokure liveimage いれた。

2015-02-28 09:11:30
enami tsugutomo @_enami

@tsutsuii これ、c->fd が nonblock な想定なんだけど、実際にはそうなってないとかじゃなかろうか?

2015-02-28 09:39:09
enami tsugutomo @_enami

_xcb_in_read で EAGAIN みてるし、set_fd_flags で O_NONBLOCK たててるしなあ。

2015-02-28 09:53:00
enami tsugutomo @_enami

CALL fcntl(3,3,0) RET fcntl 2 CALL fcntl(3,4,6) RET fcntl 0 CALL fcntl(3,2,1) RET fcntl 0

2015-02-28 09:56:14
enami tsugutomo @_enami

read でブロックしてた fd は 3, で、F_GETFL, F_SETFL, F_SETFD がそれぞれ 3, 4, 2

2015-02-28 09:58:42
enami tsugutomo @_enami

O_NONBLOCK が 4 。ここまではあってるっぽい。

2015-02-28 09:59:52
enami tsugutomo @_enami

で、x11term.c で dup2(3, 0) してるのがなにか関係あるのかな。

2015-02-28 10:12:50
enami tsugutomo @_enami

CALL fcntl(0,4,0) これかな。

2015-02-28 10:13:27
enami tsugutomo @_enami

unrequest_sigio か、この fcntl 呼んでるの。

2015-02-28 10:16:51
enami tsugutomo @_enami

linux とは使われる unrequest_sigio が違うのねん。

2015-02-28 10:19:48
enami tsugutomo @_enami

linux は FASYNC がなくて FIOASYNC 使う方になってるのかな。

2015-02-28 10:24:37
enami tsugutomo @_enami

x11term.c で dup したあと old_fcntl_flags に O_NONBLOCK 立てちゃうか、n 6.1.5 も FIOASYNC あるみたいなのでそっちに倒すか…

2015-02-28 10:26:09
enami tsugutomo @_enami

とりあえず前者でやってみる

2015-02-28 10:31:00
enami tsugutomo @_enami

動くようになるみたい。

2015-02-28 10:32:17
Izumi Tsutsui @tsutsuii

寝てる間に解決するシステムが発動していた

2015-02-28 10:52:48