でもbdiffみたいにWRESLIBの使用が前提になってる(使用しない場合は<windows.h>の刑)というのもあるな…
OpenBSD(uaa@), Ham(JG1UAA), Ingress(Lv14, RES), Japanese(Sagamihara-city, Kanagawa)
Another side: https://social.tchncs.de/@uaa
npub1rarr265r9f9j6ewp960hcm7cvz9zskc7l2ykwul57e7xa60r8css7uf890
Messages from this Mastodon account can read via mostr.pub with npub1j3un8843rpuk4rvwnd7plaknf2lce58yl6qmpkqrwt3tr5k60vfqxmlq0w
でもbdiffみたいにWRESLIBの使用が前提になってる(使用しない場合は<windows.h>の刑)というのもあるな…
uaa@framboise:~/z/open-watcom-v2/bld/wasm$ cc -I ../watcom/h mkopcod1.c
ld: warning: mkopcod1.c(/tmp/mkopcod1-75d04f.o:(main)): warning: strcpy() is almost always misused, please use strlcpy()
uaa@framboise:~/z/open-watcom-v2/bld/wasm$ ./a.out a.txt
uaa@framboise:~/z/open-watcom-v2/bld/wasm$ cat a.txt
typedef enum asm_token {
T_NULL,
T_OP_TIMES,
T_OP_DIVIDE,
} asm_token;
#define MAX_KEYWORD_LEN 0
uaa@framboise:~/z/open-watcom-v2/bld/wasm$
ここが腐ってるのは何故だろう
=========== 20:13:32 /home/uaa/z/open-watcom-v2/bld/cc/i86/binbuild ===========
どうもここのビルドがコケてる
リソースが参照できない云々は諦めるしかないのかも。
cmnvars.sh:export PATH="$OWROOT/build/$OWOBJDIR:$OWROOT/build:$OWDEFPATH"
/build.sh: /home/uaa/z/open-watcom-v2/cmnvars.sh[47]: gcc: not found
Open Watcom build environment (GCC version=0)
OWROOT /home/uaa/z/open-watcom-v2 OWOBJDIR binbuild
uaa@framboise:~/z/open-watcom-v2$
OWROOT, OWOBJDIRの両方が設定されていたらこれ、WATCOMが設定されていたらそっち、そうでなかったらどうする…?
uaa@rouge:/usr/bin/watcom$ ls -ld bin*
drwxr-xr-x 2 uaa uaa 4096 11月 2 11:59 binl
drwxr-xr-x 2 uaa uaa 4096 11月 2 11:59 binl64
drwxr-xr-x 3 uaa uaa 12288 11月 2 11:59 binnt
drwxr-xr-x 2 uaa uaa 4096 11月 2 11:59 binnt64
drwxr-xr-x 4 uaa uaa 4096 11月 2 11:59 binp
drwxr-xr-x 2 uaa uaa 12288 11月 2 11:59 binw
uaa@rouge:/usr/bin/watcom$
#!/bin/sh
echo Open Watcom Build Environment
export PATH=/usr/bin/watcom/binl64:/usr/bin/watcom/binl:$PATH
export INCLUDE=/usr/bin/watcom/lh:$INCLUDE
export WATCOM=/usr/bin/watcom
export EDPATH=/usr/bin/watcom/eddat
export WWINHELP=/usr/bin/watcom/binw
export WIPFC=/usr/bin/watcom/wipfc
owsetenv.sh (END)
OpenWatcom-v2、DragonFlyBSDとNetBSD対応はこれで良いはずなんだけど…自分が一番必要としているOpenBSD対応、どうしよう?
https://github.com/open-watcom/open-watcom-v2/pull/1390/files
FreeBSDはprocfsのマウントが要る
root@freebsd-vm:/home/uaa/open-watcom-v2 # ls -l /proc/self/exe
ls: /proc/self/exe: No such file or directory
root@freebsd-vm:/home/uaa/open-watcom-v2 # ls -l /proc/curproc/file
lr--r--r-- 1 root wheel 0 Feb 2 15:05 /proc/curproc/file -> /bin/ls
root@freebsd-vm:/home/uaa/open-watcom-v2 # ls -l /proc/curproc/exe
ls: /proc/curproc/exe: No such file or directory
root@freebsd-vm:/home/uaa/open-watcom-v2 #
netbsd
netbsd-vm$ ls -l /proc/self/exe
lr-xr-xr-x 1 root wheel 7 Feb 2 15:02 /proc/self/exe -> /bin/ls
netbsd-vm$ ls -l /proc/curproc/file
-r-xr-xr-x 1 root wheel 37824 Dec 31 19:07 /proc/curproc/file
netbsd-vm$ ls -l /proc/curproc/exe
lr-xr-xr-x 1 root wheel 7 Feb 2 15:02 /proc/curproc/exe -> /bin/ls
netbsd-vm$
dfly
uaa@dragonfly-vm:~/open-watcom-v2/bld/wmake/binbuild % ls -l /proc/self/exe
lr-xr-xr-x 1 uaa uaa 7 Feb 2 15:01 /proc/self/exe -> /bin/ls
uaa@dragonfly-vm:~/open-watcom-v2/bld/wmake/binbuild % ls -l /proc/curproc/file
lr-xr-xr-x 1 uaa uaa 7 Feb 2 15:01 /proc/curproc/file -> /bin/ls
uaa@dragonfly-vm:~/open-watcom-v2/bld/wmake/binbuild % ls -l /proc/curproc/exe
lr-xr-xr-x 1 uaa uaa 7 Feb 2 15:01 /proc/curproc/exe -> /bin/ls
uaa@dragonfly-vm:~/open-watcom-v2/bld/wmake/binbuild %
なるほど、_POSIX_C_SOURCE=200112にしているので__BSD_VISIBLE=0、これによりsys/types.hのu_intが未定義になるのでsysctl()がどーにもならなくなる。
んあー、unameでFreeBSDじゃないからLinux扱いでビルドがある程度進むとかそういう動きになってる…BSD扱いにしちゃうと逆に変なエラー出るんですけど…
#if defined( __LINUX__ ) && !defined( __FreeBSD__ )
(略)
if( ioctl( 0, TIOCLINUX, &ioctl_shift_state ) >= 0 ) {
これは流石にLinux方言じゃないのかー?
cc ctkeyb.obj
../c/ctkeyb.c: In function 'ck_shift_state':
../c/ctkeyb.c:575:19: error: 'TIOCLINUX' undeclared (first use in this function); did you mean 'TIOCGWINSZ'?
if( ioctl( 0, TIOCLINUX, &ioctl_shift_state ) >= 0 ) {
^~~~~~~~~
TIOCGWINSZ
だめかー
chromiumだと/usr/local/chromeに決め打ち(CHROME_EXE_PATHが無い場合) https://chromium.googlesource.com/chromium/src/+/master/base/base_paths_posix.cc#49
"There is currently no way to get the executable path on OpenBSD" だそうで。
ってNetBSDはどうしてるんだろう、DragonFlyなんかも…
KERN_PROC_PATHNAMEを持ってるのはDとFのみ。NとOは別の手段を考えないといけない。
とりあえずNetBSDは一旦置いといてOpenBSD上でのビルドができるようにいじってくか…
clibext.cの__BSD__の中身はFreeBSD方言かあああああああ(NetBSDでのビルドに失敗してムキーってなってる)
ここしばらく大人しかったのって実はこの件について随分悩んでいたからだったりしますw
ていうかmmsなのに中身rtspって、そりゃねーっすよ。5年以上これで困ってたのになんつーか…
mms://122.29.249.8/fmsagami_simulじゃなくrtsp://122.29.249.8/fmsagami_simulとすればmsdl抜きでいけるだけでなく、VLC Media Playerでも再生可能。同じmmsスキームでも中身がMMSなのかRTSPなのかって、そんなの知らんすよ…
なんとなくだけど、VLCよりもWindows版mplayer/ffplayの方が音切れが少ない(というか転送エラー発生後のリカバリが早い?)という印象があるんだけど、気のせいかなあ。
setvars.shにOWDOSBOXを設定してなかったのが原因かなあ。ついでにOWTOOLS=CLANGに修正して再試行っと。
=========== 09:41:06 /usr/home/uaa/open-watcom-v2/bld/browser/nt386 ===========
/usr/home/uaa/open-watcom-v2/build/mif/wgmlcmd.mif(59): Error(E33): !!! Missing DOSBOX configuration or unsupported building platform !!!
Error(E02): Make execution terminated
ありゃ
Open Watcom v2-FreeBSD https://qiita.com/yamori813/items/61885b8cb97d6d0a9ff0 (2021/6/19)
「DOSのプログラムを開発できるOpen Watcom v2はFreeBSDでビルドできるものの、FreeBSDのコマンドはビルドされません。ブートストラップのコマンドは用意され、それを使えばある程度の事はできますが、あまりお勧めできる使い方ではないと思います。」
だろうけど、何もできないよりかははるかにマシ、だろうし。
OpenWatcom-v2、とりあえず
bld/cc/c/cmdlnx86.c
bld/nwlib/c/cmdline.c
bld/plusplus/c/cmdlnx86.c
bld/wasm/c/main.c
bld/watcom/c/clibext.c
bld/watcom/h/clibext.h
bld/watcom/h/wendian.h
bld/wl/c/cmdline.c
bld/wmake/c/mglob.c
の__BSD__な処理を確認してみれば良いのかな。とりあえずFreeBSD/gccでのビルドは進んでる(まだビルド中なので終わっているところまで確認できていない)し。
bld/cc/c/cmdlnx86.c:#elif defined( __BSD__ )
bld/nwlib/c/cmdline.c:#elif defined( __BSD__ )
bld/plusplus/c/cmdlnx86.c:#elif defined( __BSD__ )
bld/wasm/c/main.c:#elif defined(__BSD__)
bld/watcom/c/clibext.c:#elif defined( __BSD__ )
bld/watcom/h/clibext.h:#ifdef __BSD__
bld/watcom/h/wendian.h:#ifdef __BSD__
bld/wl/c/cmdline.c:#elif defined( __BSD__ )
bld/wmake/c/mglob.c:#elif defined( __BSD__ ) || defined( __FreeBSD__ )
bld/wmake/c/mglob.c: "__BSD__=\n"