Hello from an old year 1997 Machine!
This snac server is now running on a Micronics Spitfire with 2x Pentium II @ 233MHz and 512MB SD-RAM. Operating System is NetBSD 10.1, installed on a 120GB SSD (SATA->IDE converter)

OpenBSD wasn't able to run snac stable on this machine, it crashed after a few requests with "illegal instruction".

#snac #snac2 #fediverse #activitypub #NetBSD #OpenBSD #retrocomputing #retroserver #retrohardware #pentiumii #pentium2 #oldhardware
Funfact: you can use exactly the same hardware in 86Box, as I have here in real 🤯

Mainboard: Micronics Spitfire
CPU: Pentium II 233 MHz
Graphics card: S3 Trio64
Network card: RTL8139

#86box #retrohardware #retrocomputing #oldhardware #emulation #snac #snac2 #netbsd #openbsd
@amilatled Wasn‘t 512MB RAM too much for a Pentium II? I remember having 512 megs of RAM in my 1.5GHz Centrino laptop back in 2003 running Windows XP. It sounds a bit anachronistic for a 233MHz system?
The documentation of the mainboard says it can take up to 1GB EDO RAM or 512MB SD-RAM.
But indeed, for the time, 512MB were a massive amount and crazy expensive. I dont know what's typical for a server back then, but for desktops from the time I guess the range was between 32MB - 128MB RAM.
@amilatled What is snac ?
snac is a lightweight activitypub fediverse server, written in portable C by @[email protected] . It works just with files and needs no database for the backend or javascript for the frontend :)
https://comam.es/what-is-snac
snac2

A simple, minimalistic ActivityPub instance written in portable C

Codeberg.org
Fascinating that you encountered a snac bug on OpenBSD on that hardware though! I wonder there the problem is and what might fix it?

CC: @[email protected] @[email protected]
Tim Chase (@[email protected])

@[email protected] Curious if setting it to include --target=pentium2 would resolve the issue for @[email protected] $ CFLAGS="-pipe -O2 --target=pentium2" make

BSD.cafe Mastodon Portal

@amilatled

Looking forward to hearing how it goes
(I love seeing useful life breathed into antiquated hardware 🥰 )

@amilatled Amazing! Although, with two actively-cooled Pentium IIs, I hope you have some ear defenders handy
what? 🙉 😅
@amilatled might want to let @grunfink know about the snac-crashing-on-OpenBSD issue…it might be a matter of compiler build-time arguments inaccurately choosing the target architecture.
@[email protected] @[email protected] it is defently something what would need deeper investigation. I wasnt able to really figure Out whats going on, but on a PIII platform with OpenBsd, snac ran Just fine.
I Hope i find time to reproduce It with 86Box.

@amilatled

Are you building from source or installing pre-built binary packages?

@grunfink

from source as described in the README.md :)

CC: @[email protected]
I guess it can be some resource outage, like memory or file descriptors.

CC: @[email protected] @[email protected]

@grunfink @amilatled

An "illegal instruction" usually is the result of the compiler targeting a CPU architecture with instructions that don't exist on the CPU where it gets run, such as MMX instructions on old Pentium hardware. And ancient Pentium II hardware is certainly antiquated enough to be missing more modern CPU instructions. I'd be curious what the OpenBSD make(1) uses for the default CPU flags, and whether you'd need to override them to specify PII support. On GCC¹, that'd be specifying "pentium2"; I'm not sure if Clang gives such granularity.

⸻
¹ https://gcc.gnu.org/onlinedocs/gcc/x86-Options.html

x86 Options (Using the GNU Compiler Collection (GCC))

x86 Options (Using the GNU Compiler Collection (GCC))

My wild guess would be SSE, that is the main difference between Pentium III and Pentium II.
Everything else on OpenBSD worked fine with the Pentium II, only snac was crashing. Doing curl https:// or ssh stuff - no problem at all so far.

CC: @[email protected]
If I recall correctly, OpenBSD's make uses by default a -pipe -O2 CFLAGS. I don't know if O2 includes some arch-dependent code.

CC: @[email protected]

@grunfink

Curious if setting it to include --target=pentium2 would resolve the issue for @amilatled

$ CFLAGS="-pipe -O2 --target=pentium2" make

@amilatled seems like something @tsutsuii would appreciate