https://github.com/chriskohlhoff/asio 自体のビルドはできてるんだがなあ…
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
https://github.com/chriskohlhoff/asio 自体のビルドはできてるんだがなあ…
/home/uaa/socket.io-client-cpp/lib/asio/asio/include/asio/ssl/impl/context.ipp:347:32: error: member access into incomplete type 'SSL_CTX' (aka 'ssl_ctx_st')
void* cb_userdata = handle_->default_passwd_callback_userdata;
^
/usr/include/openssl/ossl_typ.h:151:16: note: forward declaration of 'ssl_ctx_st'
typedef struct ssl_ctx_st SSL_CTX;
In file included from /home/uaa/socket.io-client-cpp/lib/websocketpp/websocketpp/common/asio_ssl.hpp:34:
In file included from /home/uaa/socket.io-client-cpp/lib/asio/asio/include/asio/ssl.hpp:18:
In file included from /home/uaa/socket.io-client-cpp/lib/asio/asio/include/asio/ssl/context.hpp:755:
sio_client.cpp
In file included from /home/uaa/socket.io-client-cpp/src/sio_client.cpp:8:
In file included from /home/uaa/socket.io-client-cpp/src/internal/sio_client_impl.h:25:
In file included from /home/uaa/socket.io-client-cpp/lib/websocketpp/websocketpp/config/asio_client.hpp:33:
In file included from /home/uaa/socket.io-client-cpp/lib/websocketpp/websocketpp/transport/asio/security/tls.hpp:35:
https://github.com/socketio/socket.io-client-cpp のビルドがうまくいかんな。OpenSSLじゃなくLibreSSLの影響な気がするんだけど、SSL_CTXの定義がどーのこーのとかでエラーになってしまう。
/usr/include/openssl/ossl_typ.h:151:16: note: forward declaration of 'ssl_ctx_st'
typedef struct ssl_ctx_st SSL_CTX;
^
ちょっと詳細を追うにしても、なんか入り組んでそう…
git --recursiveを忘れて面倒なことになってるとは
-- Installing: /usr/local/lib/cmake/websocketpp
-- Installing: /usr/local/include//websocketpp
用が済んだら消しとかないと。
安直にこれでやってみた https://github.com/drowe67/LPCNet/pull/65/commits/a7ebeeb87d1c037d716400bb1596d680573ea2fa
dmidecodeは要rootですねー。
dmesg (/var/run/dmesg.boot)見る方法で逃げることにします
あー、逆にNetBSDはdmesgにCPUのfeature flagの内容出ないんだ…
NetBSDに関してはLinux同様/proc/cpuinfoを見るとして、それ以外のF, D, Oへの対応なんだよね。
sysctl kern.msgbufが見えるのはF, DのみでN, Oはこの手が使えない。
sysctl machdep.cpufeatureはOのみだけど、hexからfeature setを判別しないといけない。
適当に決め打ちとするか、dmesgの内容を見てがんばるか…どうしたもんかな。
@teobot sysctlを使わない、別の方法はありますか?dmesgが使えそうですが、それ以外の候補があれば教えてください。
@teobot NetBSD, Linuxには/proc/cpuinfoがあります。FreeBSD, OpenBSD, DragonflyBSDで、これに代わる物はありますか?
QEMU full virtualization – CPU emulations (enable/disable CPU flags/instruction sets) of QEMU 2.0.0 (2018/Apr/3) https://ahelpme.com/howto/qemu-full-virtualization-cpu-emulations-enable-disable-cpu-flags-instruction-sets/
-cpu hostを付けとくと良いのかな?
/proc/cpuinfoにあるCPU feature…Linux方言っぽいと思いきや、NetBSDも持ってる。
多分シンボルもLinuxと合わせてるんだろうけど…QEMU上だとAVX/AVX2, SSE4_1, NEONのエミュレーションが効いてないな(設定の問題かな?)。
m68kいじりするなら、qemu-system-m68kで適当なカーネルを食わせるのが一番、ってことで良いんだろうなあ。 https://wiki.qemu.org/Documentation/Platforms/m68k
X68000ZでNetBSD/x68k動いたら良いなって思っていたんですが、こういう事情があるとなると…厳しいかな?
今更知ったのですが(ってNetBSD/x68kな方が見ておられる前でこれをpostするのはちょっと怖い)、NetBSD/x68kを動かすためにはCPU交換等色々やらないといけなかったとは…そのままですんなり動くと思っておりました。すみません。
とりあえずhwzipの実行バイナリを作るだけならOpenBSD上でmake hwzipで得られることが分かったから、それでいいや。
んぁー、
--
objcopy: サポートされているターゲット: elf64-x86-64 elf32-i386 elf32-iamcu elf32-x86-64 pei-i386 pe-x86-64 pei-x86-64 elf64-little elf64-big elf32-little elf32-big pe-bigobj-x86-64 pe-i386 pdb srec symbolsrec verilog tekhex binary ihex plugin
--
実行しているマシンがどのターゲットなのか、を判別しないとダメか。elf32/elf64か、さらにbigなのかlittleなのか。
https://www.hanshq.net/zip.html のhwzip-2.4、単にhwzipが欲しいならmake hwzipだけで十分みたい。テストケースでhamlet.txtをC言語のuint8_t hamlet[]に変換する際にxxdが要るって作りなので…
ん?objdumpで変換しちゃえばいいのか?
od -A n -b hamlet.txt | sed 's/^ *//'|sed 's/ *$//'|awk '{printf("0%s,\n", $0)}' |sed 's/ /, 0/g'
辺りが代替手段になりそうと思ったけど、これをMakefileに含めると$が悪さをするので使えない…
xxdが無い状況で代わりになりそうなもの…odはOpenBSD/Linuxで出力結果(空白の数)が違うし、hexdumpもうーにゅ、となると…どうしたもんかな
webサイトの広告に、サポート詐欺な広告が仕込まれて「ウイルス云々」とか警告が出たからといって、「ウイルスに感染しそうになった」なんて大声で言うとか、そのサイトがウイルスに感染しているなんて断言するのがイマドキのスタンダードなの?
このアカウントは、notestockで公開設定になっていません。
このアカウントは、notestockで公開設定になっていません。
Handspring VisorにW-SIM入れれば確かにスマホっぽくなるか… #何かを受信
W-ZERO3を「早すぎたスマホ」と評するのは「不見識」らしいです。
このアカウントは、notestockで公開設定になっていません。
18歳で式典やっちゃうと、大学受験の時期にぶつかるので迷惑だって話をどこかで聞いたことがある。なので20歳のままなんだとか…?
lib/libc/string/memcpy.c
if ((dst < src && dst + length > src) ||
(src < dst && src + length > dst)) {
(途中省略)
sendsyslog(buf, strlen(buf), LOG_CONS);
abort();
}
printf("%n")にしろsrc/dstが重なるmemcpy()にしろ、abort()で止まるってことはSIGABRT出してるはずだよね。core dumpなし…?
lib/libc/stdio/vfprintf.c
case 'n': {
static const char n_msg[] = ": *printf used %n, aborting: ";
char buf[1024], *p;
(途中省略)
sendsyslog(buf, strlen(buf), LOG_CONS);
abort();
break;
}
うーん、xxdが無いとか、-fsanitize=addressが使えないとか、hwzip-2.4のビルドは面倒そう。
Zip Files: History, Explanation and Implementation (26/Feb/2020) https://www.hanshq.net/zip.html
Shrink, Reduce, and Implode: The Legacy Zip Compression Methods (12/March/2021) https://www.hanshq.net/zip2.html
源暎ラテゴ/ラテミン、欧文部分はLinux Biolinum使ってるけどこれがmonospace持ってないのか…
とりあえず然るべきところにパッチは投げた。あとは裁定を待とう。これが解決しなければ次へ進めないのだし。
振り返ってみるに、
問題の解決に8時間、解決方法はオプション一つ付けるだけ、って…どんだけ時間かけてるのあんた無能?
って言われてもおかしくないよなあ、これ。とはいえ今までこれを誰も言及してないってことは、そういう(展開できない)アーカイブに誰もぶち当たっていないか当たっていたとしてもスルーされていたかのどっちかなのかな。
memmove()
real 0m0.359s
user 0m0.340s
sys 0m0.010s
-DNOMEMCPY
real 0m0.321s
user 0m0.290s
sys 0m0.000s
ふむ、オプション一つ付ければ解決できそうだな。
やっぱ/var/log/messagesに出てるじゃんよ…(確かprintf("%n");辺りもOpenBSDでは禁忌なんだけど、こっちはSIGABRT吐くのでまだ分かりやすい)
Jan 12 20:59:35 framboise unzip: backwards memcpy
])@#@#@#$^&&([0xdfbba234238 21557 55994 4
])@#@#$^&&([0xdfbba234238 21562 21570 9
あー、これ、アレだ。memcpy()の領域が重なるとダメってやつに掛かってる。
#ifndef NOMEMCPY
if ((unsigned)w - d >= e)
/* (this test assumes unsigned comparison) */
{
putchar('[');fflush(stdout);
memcpy(redirSlide + (unsigned)w, redirSlide + d, e);
putchar(']');fflush(stdout);
w += e;
d += e;
}
else /* do it slowly to avoid memcpy() overlap */
#endif /* !NOMEMCPY */
ここのmemcpy()で落ちてる(けどcore吐いてない)
そうすると、clangで-Wdeprecated-non-prototypeについても関係ないって話にならんか…?
FreeBSD-14.2/amd64(clang-18.1.6)でmake -f unix/Makefile genericでunzip60を野良ビルドしてみたけど問題無し。portsでclang-16.0.6もmake -f unix/Makefile bsd(genericはビルドエラーがでた)を試しているけどこちらも問題無し。
unix/unix.c:1346:5: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype]
-Wdeprecated-non-prototypeの出る箇所は150箇所。これ全部直すのはきついんだけど、場合によってはやるしかないんだろうなあ。
ALL_TARGET、デフォルトはbsdだけどgeneric, generic1, generic2, generic3でもだめ。
linux_noasm, freebsdはgcc縛りになるのでビルド以前の問題。
ん?freebsdがgcc縛り…?
FLAVORなし
cc -c -O2 -pipe -I. -DLARGE_FILE_SUPPORT -DNO_LCHMOD -DUSE_UNSHRINK -DBSD -DSFX -o unix_.o unix/unix.c
FLAVOR=iconv
cc -c -O2 -pipe -I/usr/local/include -I. -DLARGE_FILE_SUPPORT -DNO_LCHMOD -DUSE_UNSHRINK -DUNICODE_SUPPORT -DUNICODE_WCHAR -DUTF8_MAYBE_NATIVE -DNO_WORKING_ISPRINT -DBSD -DSFX -o unix_.o unix/unix.
OpenBSD portsだと、こう。
cc -c -I. -Ibzip2 -DUNIX -O3 -DLARGE_FILE_SUPPORT -DUNICODE_SUPPORT -DUNICODE_WCHAR -DUNICODE_SUPPORT -DUTF8_MAYBE_NATIVE -DHAVE_DIRENT_H -DHAVE_TERMIOS_H -D_MBCS -DSFX -o unix_.o unix/unix.c
Linux上で野良ビルドしたものは問題無し
- OpenBSDのバージョン(7.6/current)は関係ない
- 32bit(i386)/64bit(amd64)も関係ない
- コンパイラ(egcc/clang-16/clang-17)も関係ない
となると、元のロジックの問題という気もするが…Linuxのバイナリパッケージじゃなく野良ビルドでは問題ないのかというのは気にかかるか。
-bash-5.2$ unzip -t GenEiLatin_v2.1.zip
Archive: GenEiLatin_v2.1.zip
testing: GenEiLatin_v2.1/ OK
testing: GenEiLatin_v2.1/GenEiLateGo_v2.ttc OK
testing: GenEiLatin_v2.1/GenEiLateMin_v2.ttc OK
testing: GenEiLatin_v2.1/LICENSE.txt OK
testing: GenEiLatin_v2.1/readme_??????.txt OK
No errors detected in compressed data of GenEiLatin_v2.1.zip.
-bash-5.2$
こっちは問題ないんだけど。
-bash-5.2$ unzip -t GenEiLatin-Separate_v2.1.zip
Archive: GenEiLatin-Separate_v2.1.zip
testing: GenEiLatin-Separate_v2.1/ OK
testing: GenEiLatin-Separate_v2.1/GenEiLateGoN_v2.ttf -bash-5.2$
こんな風に打ち切られてしまう
ん-、OpenBSD-7.6/i386でもGenEiLatin-Separate_v2.1.zipの展開に失敗する。
それにしても、VirtualBox上の32bitゲストってこんなに遅かったっけ?
sftp> get GenEiLatin-Separate_v2.1.zip
Fetching /home/uaa/Downloads/GenEiLatin-Separate_v2.1.zip to GenEiLatin-Separate_v2.1.zip
GenEiLatin-Separate_v2.1.zip 100% 19MB 195.2KB/s 01:39
sftp>
ふむ、GenEiLatin-Separate_v2.1.zip、OpenBSD-current/amd64でも展開に失敗する。
egcc(gcc-8.4.0), clang-17でもダメ。
最初の時点に立ち返らないといけない。distfilesにあるunzip60.tar.gz(オリジナルのアーカイブ)のunix/unxcfg.hを手直しすればmake genericでビルドが通るけど…これでもGenEiLatin-Separate_v2.1.zipの展開ができない。
OpenBSD-7.6/amd64, clang-16での話。
ん?patch-unix_unxcfg_h patch-unzip_cを適当するだけの状態でもまともに動かないんだけど…
うーん、Linuxのinfo-zip(unzip-6.0)が問題無いとすると、OpenBSD版はパッチがあれこれ入ってるのでこれのどれかが悪さをしている、と考えるのが妥当そう。
OpenBSDのunzip-6.0は展開に失敗するけどDebian-12.9のは問題なかった。何故だ。
源暎ラテゴ/ラテミン、TTC版のportsでも良いんだろうけど…Emacsで源暎ラテゴの詰じゃない方!という時にTTC版だと調整が効かないので、TTF版にしたい。
源暎ラテゴ/ラテミンのTTC版は問題無いんだけど、TTF版、UnZip 6.0だと展開に失敗するんだけど自分とこだけかなあ? https://okoneya.jp/font/download.html
このアカウントは、notestockで公開設定になっていません。
Debian -- News -- Updated Debian 12: 12.9 released
https://www.debian.org/News/2025/20250111
🎉