天泣記

2013-02-04 (Mon)

#1

cygwin: bind(sock, addr, addrlen) doesn't respect addrelen

2013-02-05 (Tue)

#1

cygwin: non-blocking accept() can hang.

2013-02-07 (Thu)

#1

socket-test のために MirOS BSD をインストールしてみたのだが、ついでに ruby も動かしてみたところ、以下の対応が必要であった。

% uname -mrsv
MirBSD 10 GENERIC#1382 i386
  1. gcc コマンドがない。また、mgcc が note: someone does not honour COPTS correctly, passed 0 times というメッセージを stderr に吐く。

    メッセージを除去するラッパーを ~/bin/gcc に作る。少なくとも config.h にちゃんと PRI_LL_PREFIX を定義させるために必要になる。stderr にメッセージが出ると、configure で ll の検出に失敗する。

    miros% cat ~/bin/gcc
    #!/bin/sh
    
    fifo=/tmp/gccw.$$
    mkfifo $fifo
    sed '/note: someone does not honour COPTS correctly, passed 0 times/d' >&2 < $fifo &
    mgcc "$@" 2> $fifo
    status="$?"
    wait
    rm $fifo
    
    exit $status
  2. AUTOCONF_VERSION を設定しておかないと、autoconf がエラーになる。

    export AUTOCONF_VERSION=2.61 とする。

    autoconf-2.62 も入っているが、AUTOCONF_VERSION=2.62 とすると、SIZEOF_VOIDP のかわりに SIZEOF_VOID_ になってしまって変。

  3. process.c で _SC_GETGR_R_SIZE_MAX が定義されていない

    process.c に #undef HAVE_GETGRNAM_R を追加。

  4. ./miniruby -v で [FATAL] failed to allocate memory

    posix_memalign(memptr, 16384, 16384) は EINVAL になってしまう。

    gc.c に #undef HAVE_POSIX_MEMALIGN を追加

  5. ld: unrecognised emulation mode: arch=i486 となってしまう。

    configure.in の ARCH_FLAG="-march=i486" を : #ARCH_FLAG="-march=i486" というようにコメントアウト。

  6. ld: -f may not be used without -shared となってしまう。

    configure.in の LDSHARED の定義する分岐条件で、[openbsd*] を [openbsd*|mirbsd*] にする。

  7. gdbm と libffi のパッケージは入れてあるのに、ext/gdbm と ext/fiddle が作られない。

    configure に --with-opt-dir=/usr/mpkg を追加。結局、

    ./configure --prefix=/home/akr/ruby/o0 --with-opt-dir=/usr/mpkg CPPFLAGS=-DRUBY_DEBUG_ENV optflags=-O0 debugflags=-g3 warnflags='-W -Wall'

    となる。

さて、どっちを直すべきか明らかなのもあるが、そうでないのもあるな。

2013-02-08 (Fri)

#1

posix_memalign はリポジトリでは治っているようだ。 <URL:https://www.mirbsd.org/cvs.cgi/src/lib/libc/stdlib/malloc.c.diff?r1=1.8;r2=1.9>

#2

MirOS BSD の話で、ruby 側で対処してもいいかな、と思えるものは対処して、~/bin/gcc を作れば、trunk は以下で build できるところまでは持っていった。

./configure --prefix=dir \
  --with-opt-dir=/usr/mpkg \
  CPPFLAGS=-DRUBY_DEBUG_ENV \
  optflags=-O0 \
  debugflags=-g3 \
  warnflags='-W -Wall' \
  ac_cv_func_posix_memalign=no

追記: ac_cv_func_posix_memalign=no も指定しなくてもいいようにした。

2013-02-24 (Sun)

#1

minix3: Unix domain socket problem?

2013-02-25 (Mon)

#1

NetBSD Problem Report #47591 : Unix domain accept() returns the server socket name if client socket is closed before accept() call.

2013-02-27 (Wed)

#1

bug-hurd: connect() access bytes after socket address

2013-02-28 (Thu)

#1

miros-discuss: kernel panic by long Unix domain socket name.


[latest]


田中哲