Search logs:

channel logs for 2004 - 2010 are archived at http://tunes.org/~nef/logs/old/ ·· can't be searched

#osdev2 = #osdev @ Libera from 23may2021 to present

#osdev @ OPN/FreeNode from 3apr2001 to 23may2021

all other channels are on OPN/FreeNode from 2004 to present


http://bespin.org/~qz/search/?view=1&c=osdev2&y=22&m=5&d=15

Sunday, 15 May 2022

00:05:00 <klange> bauen1: scattered around my github; there are a particular package you want to rebuild?
00:06:00 <klange> is there a*
00:06:00 <klange> how am I that tired, it's 9am...
03:28:00 <sonny> https://unix4lyfe.org//syscalls/ -- On the bottom of the page near "The buffer it passes to the write syscall is the next byte on the stack, but it doesn't set it to anything." it seems like the issue would be with the file descriptor if rdi is clobbered. What would it mean that the buffer is not set? This is for write(3).
03:28:00 <bslsk05> ​unix4lyfe.org: Syscalls
03:58:00 <graphitemaster> Anyone here know Windows PE / COFF format well?
03:58:00 <sonny> are you looking for a resource?
03:58:00 <graphitemaster> Looking for wisdom
03:59:00 <sonny> ok, that's not me but I found a nice visual document
03:59:00 <graphitemaster> I understand the format, I need to understand how something is _plaussible_ in a corrupted one
07:51:00 <bauen1> klange: no, just generally curious if you needed to patch things, mostly concerning gcc, binutils
07:53:00 <klange> gcc and binutils are probably the most extensively patched, mostly just to teach them targets, but my configs aren't too special for them; those are under the `toaruos` org
10:02:00 <ddevault> whoever wrote the error handling code for GNU binutils should be shot
10:03:00 <kingoffrance> explain, so we know what not to do
10:04:00 <ddevault> objdump -t /tmp/hare/temp..22.o | grep main # exists
10:04:00 <ddevault> ld -T rt/hare.sc -o helios /tmp/hare/temp..22.o [...]
10:04:00 <ddevault> /tmp/hare/temp.rt.1.s:446: undefined reference to `main'
10:05:00 <ddevault> it works if I comment out a function some assembly code which calls a function unrelated to main
10:05:00 <ddevault> I eventually figured out it was something entirely unrelated by dumb luck
10:05:00 <ddevault> at no point was ld even a little bit helpful
10:09:00 <ddevault> not the first time binutils has handed me a pile of nonsense instead of something useful when it fucks up
10:12:00 <zid> yea binutils' error messages are not the best
10:15:00 <zid> I'm not sure how much of it is it not understanding your intent so it can't
10:15:00 <zid> and how much of it is it just being bad
16:25:00 <ddevault> triple faults trying to jump to userspace :(
16:40:00 <j`ey> bloody users!
16:46:00 <jimbzy> They're the worst part of computing, j`ey.
17:28:00 <heat> why do the "users" need "space"
17:30:00 <mrvn> ddevault: great. A chance to test and fix your double fault handler.
17:31:00 <kingoffrance> where else you gonna store their blood? i thought bloody users was the best part, i feel like i am doing it all wrong now
17:31:00 <mrvn> kingoffrance: Don't forget to feed them (cat videos) to keep the blood fresh.
17:33:00 <heat> kingoffrance, in struct page along with everything else
17:34:00 <kingoffrance> speaking of summon i saw a doug16k nick but he didnt reply. he might live
17:34:00 <kingoffrance> could be a stalker, who knows
17:39:00 <ddevault> mrvn: one way of looking at it
17:43:00 <heat> ddevault, writing an OS in your new language?
17:44:00 <ddevault> yeah
17:44:00 <ddevault> https://sr.ht/~sircmpwn/helios
17:44:00 <bslsk05> ​sr.ht: helios: An experimental microkernel
17:45:00 <jimbzy> Nice
19:20:00 <geist> cool
19:21:00 <GeDaMo> geist: https://www.youtube.com/watch?v=0Qguo6Y0IQ0
19:21:00 <bslsk05> ​'Fish Heads' by Barnes & Barnes - Topic (00:02:26)
19:22:00 <geist> haha i know that one too
19:22:00 <GeDaMo> I've never heard Dr Demento but that's the song I associate with the name :P
19:22:00 <geist> i remember years ago i used t have some cassette tape of a Dr Demento show off the radio that i used to listen to
19:23:00 <geist> it was I think a weekly radio show with silly and joke songs
19:23:00 <geist> i think weird al got started on it
19:24:00 <geist> looksl ike he ran the show from 74 to 92. syndicated, so a local station must have picked it up at the time
19:24:00 <GeDaMo> Apparently it's still running https://en.wikipedia.org/wiki/Dr._Demento
19:24:00 <bslsk05> ​en.wikipedia.org: Dr. Demento - Wikipedia
19:29:00 <GeDaMo> One half of Barnes & Barnes is Bill Mumy, the actor who played Will Robinson in Lost in Space and Lenier in Babylon 5
19:29:00 <zid> The other half is the barn he grew up in
19:30:00 <mrvn> Hmm, this interesting with c++23: https://stackoverflow.com/questions/72251345/address-ordering-of-members-of-a-class-struct
19:30:00 <bslsk05> ​stackoverflow.com: c++ - Address-ordering of members of a class / struct - Stack Overflow
19:31:00 <mrvn> Finally we can use public/private/protected and still arrange data for cacheline usage.
20:02:00 <geist> yah thats one of those surprising things (reordering of member fields)
20:02:00 <geist> i'm not sure i've ever seen a compiler actually do it though
20:03:00 <mrvn> I guess if you had some form of hardware protection for private data so only the code of the class can access it then you would.
20:03:00 <geist> yah unclear exactly why that older carveout exists
20:03:00 <geist> acts like it was a rule to work around some previous feature of a compiler somewhere
20:04:00 <geist> maybe something to do with multiple inheiritance and some way to merge bits from various subclasses
20:04:00 <mrvn> Or the private parts can be tucked into the padding holes of a base class.
20:04:00 <geist> yah something like that
20:04:00 <mrvn> gcc puts data into the padding at the end of a base class if it's not POD.
20:05:00 <geist> yah i was actually just thinking that: how are subclasses padded out relative to the base class
20:05:00 <geist> especially if each class/struct thats inheriting has different alignment constraints
20:06:00 <mrvn> let me correct that: Win ABI add it after the padding, SYSV ABI adds it in the padding.
20:06:00 <mrvn> I guess in c++23 adding adding to the padding at the end is still ok but using holes would not.
23:10:00 <mrvn> https://godbolt.org/z/fGbjc3czd Why does this not report heap corruption with glibc?
23:10:00 <bslsk05> ​godbolt.org: Compiler Explorer
23:27:00 <zid> rounding
23:33:00 <mrvn> zid: say what?
23:38:00 <mrvn> I'm assuming 64 bytes is large enough that there is no extra padding. Increasing to 1024 byte doesn't change anything. I would expect to have the canary/prev/next/canary values following right before/after the allocation
23:40:00 <heat> the canary might be a part of the allocation, so it rounds up
23:40:00 <mrvn> x = 14: output.s: malloc.c:2379: sysmalloc: Assertion `(old_top == initial_top (av) && old_size == 0) || ((unsigned long) (old_size) >= MINSIZE && prev_inuse (old_top) && ((unsigned long) old_end & (pagesize - 1)) == 0)' failed.
23:41:00 <mrvn> heat: spot on
23:42:00 <mrvn> I always have the canary as part of the metadata block because then it's easy to align everything to 16byte boundaries.
23:47:00 <heat> what's the point of nvme namespaces?
23:47:00 <heat> i don't really get it
23:47:00 <heat> you're like creating a new disk inside the nvme drive, but why
23:48:00 <mrvn> So OEM vendors can put an install medium on the nvme?
23:48:00 <heat> hm?
23:48:00 <heat> what do you mean
23:49:00 <mrvn> so you have a (virtual) cdrom drive and the rest of the nvme to install to.
23:49:00 <mrvn> just a guess but OEMs used to do that with harddisks.
23:49:00 <heat> that sounds useless to me
23:50:00 <heat> and you could make a sort of partitioning hack for that I would say
23:50:00 <mrvn> means the OEM can just dump the same install medium on every system and the user does the work of actually installing windows.
23:50:00 <heat> it's not like resizing a namespace is done just like that, you'll need to adjust partitions, the GPT, etc
23:51:00 <mrvn> isn't the namesapce outside the partitions? Wouldn't the namespaces show up as separate drives in the bios?
23:51:00 <heat> a namespace is pretty much a drive
23:52:00 <mrvn> So the user can partition the first "drive" and the install medium is the second "drive"