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=osdev&y=18&m=5&d=21

Monday, 21 May 2018

00:00:00 --- log: started osdev/18.05.21
00:00:16 <quul> the rdx/edx destructor thing
00:00:38 <izabera> objdumping doesn't really strike me as some super advanced functionality
00:02:30 <aalm> yep, it wasn't super advanced, but the point was that i got it fixed to produce almost/mostly copypasteable output:)
00:03:10 <geist> trouble with gdb is it tends to et pretty confused when the state of the cpu is not in pretty 'normal' situation
00:03:19 <geist> so trying to debug the first instruction of a process may fall into that too
00:03:36 <geist> and it definitely comes into play when trying to debug a kernel or whatnot
00:04:27 <geist> it works a fair amount of time but sometimes it just doesnt and you have to resort to doing things more manually
00:19:04 --- join: Asu (~sdelang@24.17.136.77.rev.sfr.net) joined #osdev
00:27:47 --- join: AverageJ0e (~joe@ip98-167-200-207.ph.ph.cox.net) joined #osdev
00:31:47 --- join: sixand (~Thunderbi@219.145.113.142) joined #osdev
00:39:45 --- quit: CrystalMath (Quit: Support Free Software - https://www.fsf.org/)
00:39:49 --- join: NaNkeen (~nankeen@123.136.106.79) joined #osdev
00:40:07 --- join: Amaan (uid4967@gateway/web/irccloud.com/x-tofchwgmuthuorom) joined #osdev
00:51:01 --- join: Griwes (~griwes@znc.reaver-project.org) joined #osdev
00:51:56 --- join: Kimundi_ (~Kimundi@i577A916A.versanet.de) joined #osdev
00:55:04 --- quit: JonRob (Quit: Lost terminal)
00:58:14 --- join: bemeurer (~bemeurer@185.236.200.248) joined #osdev
01:10:18 <quul> what a mess, who knows where linux exactly hands over DT_FINI pointer to edx/rdx ?
01:12:49 --- quit: Kimundi_ (Ping timeout: 240 seconds)
01:13:10 --- join: bauen1 (~bauen1@ANancy-655-1-10-116.w86-223.abo.wanadoo.fr) joined #osdev
01:15:39 --- quit: AverageJ0e (Ping timeout: 260 seconds)
01:16:42 --- join: sixand1 (~Thunderbi@219.145.113.142) joined #osdev
01:18:04 --- quit: sixand (Ping timeout: 245 seconds)
01:18:04 --- nick: sixand1 -> sixand
01:20:28 <izabera> i'm not sure exactly but it's definitely not linux
01:21:24 <quul> there are comments in the exec code about setting up DT_FINI, but theres all these ifdefs and crap
01:21:47 <quul> so it looks like all regs for exec are getting set to 0, but that can't be???
01:21:58 * quul is so lost and giving up now
01:23:10 --- join: mra90 (~Martin@host-85-202-159-241.sta.tvknaszapraca.pl) joined #osdev
01:25:46 <quul> i see where it gets _start from the elf (e_entry in load_elf_binary fs/binfmt_elf.c), and then it runs start_thread which iret's back to user space?
01:28:06 <quul> or maybe that's not actually _start
01:28:26 <quul> too lazy to do this properly
01:32:53 --- join: variable (~variable@freebsd/developer/variable) joined #osdev
01:36:14 <quul> it has to be ld-linux.so
01:47:29 --- join: vaibhav (~vnagare@125.16.97.117) joined #osdev
01:57:06 --- quit: hmmmm (Remote host closed the connection)
02:02:45 --- quit: tux3 (Changing host)
02:02:45 --- join: tux3 (~tux@unaffiliated/tux3) joined #osdev
02:02:49 --- quit: Goplat (Remote host closed the connection)
02:05:09 --- quit: quul (Quit: WeeChat 2.0.1)
02:13:49 --- join: sixand1 (~Thunderbi@219.145.113.142) joined #osdev
02:14:44 --- quit: sixand (Ping timeout: 245 seconds)
02:14:44 --- nick: sixand1 -> sixand
02:21:19 --- quit: bcos_ (Ping timeout: 240 seconds)
02:26:47 --- quit: Asu (Ping timeout: 248 seconds)
02:26:47 --- quit: sixand (Remote host closed the connection)
02:26:52 --- join: Asu` (~sdelang@AMarseille-658-1-107-29.w86-219.abo.wanadoo.fr) joined #osdev
02:27:27 --- join: sixand (~Thunderbi@219.145.113.142) joined #osdev
02:28:26 --- join: spare (~user@unaffiliated/spareproject) joined #osdev
02:28:27 --- join: Arcaelyx_ (~Arcaelyx@2604:2000:f14a:2500:1078:33a:4bd6:f0a1) joined #osdev
02:31:43 --- quit: Arcaelyx (Ping timeout: 260 seconds)
02:32:02 --- join: bcos_ (~bcos@101.103.149.216) joined #osdev
03:04:10 --- join: ljc (~ljc@unaffiliated/ljc) joined #osdev
03:06:02 --- quit: NaNkeen (Ping timeout: 245 seconds)
03:10:05 --- join: quc (~quc@87.116.237.92) joined #osdev
03:15:40 --- join: janemba_ (~janemba@unaffiliated/janemba) joined #osdev
03:16:29 --- quit: janemba (Read error: Connection reset by peer)
03:20:02 --- quit: latentprion (Quit: Lost terminal)
03:20:26 --- join: latentprion (~latentpri@sel4/latentprion) joined #osdev
03:33:37 --- join: sortie (~sortie@static-5-186-55-44.ip.fibianet.dk) joined #osdev
03:36:45 --- quit: sixand (Remote host closed the connection)
03:37:52 --- join: sixand (~Thunderbi@219.145.113.142) joined #osdev
03:51:24 --- quit: sixand (Ping timeout: 252 seconds)
03:57:03 --- quit: spare (Quit: leaving)
04:17:40 --- quit: pikhq (Ping timeout: 256 seconds)
04:18:29 --- join: pikhq (~pikhq@c-73-181-126-9.hsd1.co.comcast.net) joined #osdev
04:25:31 --- join: zeus1 (~zeus@197.239.32.33) joined #osdev
04:27:29 --- quit: tsurai (Quit: ZNC 1.6.6 - http://znc.in)
04:27:55 --- join: tsurai (~tsurai@mail.tsunix.de) joined #osdev
04:37:19 --- quit: bslsk05 (Quit: woops)
04:37:19 --- quit: puckipedia (Quit: *eh*)
04:39:03 --- join: bslsk05 (~bslsk@catgirl.tech) joined #osdev
04:39:33 --- join: puckipedia (~puck@catgirl.tech) joined #osdev
04:41:10 --- quit: mavhq (Read error: Connection reset by peer)
04:42:24 --- join: mavhq (~quassel@cpc77319-basf12-2-0-cust433.12-3.cable.virginm.net) joined #osdev
04:45:29 --- join: mardikene123 (~Amjadoni@81-230-60-77-no2390.tbcn.telia.com) joined #osdev
04:46:05 --- quit: newsham (Remote host closed the connection)
04:46:34 --- part: mardikene123 left #osdev
04:47:33 --- join: baschdel (~baschdel@2a01:5c0:10:3d11:bca2:7797:3876:4668) joined #osdev
04:49:22 --- quit: puckipedia (Ping timeout: 245 seconds)
04:50:04 --- quit: bslsk05 (Ping timeout: 252 seconds)
04:55:24 --- join: spare (~user@unaffiliated/spareproject) joined #osdev
04:55:25 --- join: bslsk05 (~bslsk@puckipedia.com) joined #osdev
04:55:46 --- join: puckipedia (~puck@puckipedia.com) joined #osdev
04:55:59 --- quit: bslsk05 (Client Quit)
04:55:59 --- quit: puckipedia (Remote host closed the connection)
05:04:10 --- join: tacco| (~tacco@i59F4A960.versanet.de) joined #osdev
05:05:09 --- quit: ljc (Quit: ayy)
05:05:39 --- join: ALowther (~alowther@68.200.236.134) joined #osdev
05:06:58 --- quit: behalebabo (Ping timeout: 256 seconds)
05:07:36 --- join: behalebabo (~behalebab@unaffiliated/behalebabo) joined #osdev
05:15:45 --- join: CheckDavid (uid14990@gateway/web/irccloud.com/x-nfdsstudpjcmwigf) joined #osdev
05:16:52 <sortie> Good day
05:17:21 <sortie> Today's a holiday so I get do a little bit more osdev this weekend
05:17:53 <izabera> now it's time to show your git branches
05:17:56 <izabera> https://arin.ga/ccPakW/raw
05:18:24 <sortie> I do have a bunch of branches, but these days I really only use two branches
05:18:37 <sortie> Stuff that's stable and merged, and all the WIP stuff I'm accumulated
05:20:01 <Mutabah> yay long weekend!
05:23:31 <izabera> guys it's not fun if i'm the only one
05:25:34 --- quit: immibis (Ping timeout: 245 seconds)
05:26:05 <Mutabah> eh, I just have master and dev
05:27:10 <aalm> $ git branch | wc -l
05:27:28 <aalm> 81 :(
05:28:21 <aalm> should clean out the branches i haven't kept rebasing even
05:29:18 --- join: JonRob (jon@gateway/vpn/privateinternetaccess/jonrob) joined #osdev
05:29:20 <sortie> I have a secret attic repository where I put branches I technically want to keep for sentimental reasons but don't actually want to keep
05:29:45 * klange looks at a branch called "minimize"
05:31:23 --- join: bslsk05 (~bslsk@puckipedia.com) joined #osdev
05:31:37 <bauen1> klange: git diff master..minimize | wc -c ?
05:31:54 --- join: puckipedia (~puck@catgirl.tech) joined #osdev
05:32:04 <bauen1> also, your homemade bootloader is quite nice :thumbs_up:
05:32:34 <klange> it has a different base commit as I rewrote history to remove work email address from commits in this repository, so that's a hilarious erroneous 24040
05:32:49 <klange> also it's "minimize" as in the window manager functionality
05:34:27 <klange> There's only one relevant commit, not sure why this isn't just a stash.
05:34:41 <klange> Probably figured I'd forget about it.
05:36:02 --- quit: puckipedia (Ping timeout: 245 seconds)
05:37:08 --- join: puckipedia (~puck@puckipedia.com) joined #osdev
05:40:01 --- join: vmlinuz (~vmlinuz@unaffiliated/vmlinuz) joined #osdev
05:40:55 --- quit: JonRob (Ping timeout: 248 seconds)
05:42:51 --- join: JonRob (~jon@host109-157-25-216.range109-157.btcentralplus.com) joined #osdev
05:43:29 --- join: sixand (~Thunderbi@219.145.113.142) joined #osdev
05:44:41 --- join: awang (~awang@rrcs-24-106-163-46.central.biz.rr.com) joined #osdev
05:47:45 --- quit: MindlessDrone (Ping timeout: 255 seconds)
06:01:52 --- quit: bslsk05 (Ping timeout: 245 seconds)
06:02:02 --- join: bslsk05 (~bslsk@catgirl.tech) joined #osdev
06:03:04 --- quit: puckipedia (Ping timeout: 245 seconds)
06:07:24 --- join: NaNkeen (~nankeen@115.164.203.138) joined #osdev
06:08:42 --- join: puckipedia (~puck@catgirl.tech) joined #osdev
06:12:04 --- join: S_Gautam (3bb6fd13@gateway/web/freenode/ip.59.182.253.19) joined #osdev
06:16:39 --- quit: NaNkeen (Ping timeout: 260 seconds)
06:19:22 --- quit: vmlinuz (Ping timeout: 245 seconds)
06:20:21 --- join: vmlinuz (~vmlinuz@201-43-91-174.dsl.telesp.net.br) joined #osdev
06:20:21 --- quit: vmlinuz (Changing host)
06:20:21 --- join: vmlinuz (~vmlinuz@unaffiliated/vmlinuz) joined #osdev
06:20:37 --- quit: puckipedia (Ping timeout: 245 seconds)
06:20:51 --- quit: bslsk05 (Ping timeout: 260 seconds)
06:26:27 --- join: puckipedia (~puck@puckipedia.com) joined #osdev
06:26:58 --- join: bslsk05 (~bslsk@puckipedia.com) joined #osdev
06:33:41 --- join: JusticeEX (~justiceex@pool-98-113-143-43.nycmny.fios.verizon.net) joined #osdev
06:34:14 <doug16k> izabera, what version of gdb do you use? what target? cross-compiled one or system one?
06:35:55 <izabera> 8.1, x64, native fedora's
06:37:38 <doug16k> if debugging a kernel you should use a cross compiled one that's assuming bare-metal
06:37:46 <izabera> not debugging a kernel
06:37:55 <doug16k> thought that might be the case
06:37:59 <izabera> and the problem was just that tui sucks
06:38:57 --- quit: vmlinuz (Ping timeout: 245 seconds)
06:39:17 <doug16k> I use qt-creator IDE's gdb frontend to debug my stuff (including my kernel), mostly, though I do use tui sometimes
06:39:51 <doug16k> it gets tedious to look at variables in TUI
06:42:14 --- quit: sixand (Ping timeout: 245 seconds)
06:43:12 <doug16k> I remember gdb being flaky but it's been a while since it screwed up on me
06:43:22 --- join: sixand (~Thunderbi@219.145.113.142) joined #osdev
06:47:17 <izabera> did you know that gdb couldn't print errno in single threaded programs until fairly recently?
06:50:13 <doug16k> should it be hardcoded to know things about libc though? it's arguable
06:54:08 --- join: NaNkeen (~nankeen@115.164.203.138) joined #osdev
06:54:14 --- quit: JonRob (Remote host closed the connection)
06:55:10 --- join: light2yellow (~l2y@217.30.64.102) joined #osdev
06:55:32 --- join: rain1 (~rain1@unaffiliated/rain1) joined #osdev
06:58:24 --- quit: sixand (Ping timeout: 252 seconds)
07:06:38 --- join: sixand (~Thunderbi@219.145.113.142) joined #osdev
07:11:31 --- quit: aalm (Ping timeout: 264 seconds)
07:14:55 --- join: Lowl3v3l (~Lowl3v3l@dslb-002-203-190-058.002.203.pools.vodafone-ip.de) joined #osdev
07:15:09 <izabera> gdb is very opinionated about what it's entitled to do
07:15:13 <izabera> and where it's entitled to poke
07:16:18 --- quit: S_Gautam (Quit: Page closed)
07:20:46 --- quit: sixand (Remote host closed the connection)
07:22:12 --- join: jmill (~textual@2605:6000:1019:3ff:d4be:646a:13e5:4b9b) joined #osdev
07:23:57 --- join: hmmmm (~sdfgsf@pool-72-79-162-68.sctnpa.east.verizon.net) joined #osdev
07:25:22 --- quit: CheckDavid (Quit: Connection closed for inactivity)
07:30:23 --- join: glauxosdever (~alex@ppp-94-65-237-175.home.otenet.gr) joined #osdev
07:33:06 --- join: CrystalMath (~coderain@reactos/developer/theflash) joined #osdev
07:33:17 --- join: sixand (~Thunderbi@219.145.113.142) joined #osdev
07:37:40 --- quit: xenos1984 (Quit: Leaving.)
07:39:23 --- join: cirno_ (~cirno_@gateway/tor-sasl/cirno/x-25801483) joined #osdev
07:40:11 --- quit: sixand (Remote host closed the connection)
07:42:55 --- join: sixand (~Thunderbi@219.145.113.142) joined #osdev
07:44:00 --- quit: spare (Quit: leaving)
07:46:58 --- quit: bemeurer (Quit: WeeChat 2.2-dev)
07:48:11 --- join: lachlan_s (uid265665@gateway/web/irccloud.com/x-fkkvmttqtlhfjmnh) joined #osdev
07:48:27 <lachlan_s> geist: Do you know if the RefPtr in fuchsia is intrusive?
07:58:50 --- join: xenos1984 (~xenos1984@22-164-191-90.dyn.estpak.ee) joined #osdev
08:00:49 --- quit: cirno_ (Remote host closed the connection)
08:01:30 --- join: cirno_ (~cirno_@gateway/tor-sasl/cirno/x-25801483) joined #osdev
08:02:56 --- join: lf94 (~lf94@mtrlpq4806w-lp140-03-76-64-242-104.dsl.bell.ca) joined #osdev
08:22:07 --- join: aalm (~aalm@37-219-237-30.nat.bb.dnainternet.fi) joined #osdev
08:26:32 --- nick: hussein__ -> nur
08:27:46 --- join: freakazoid0223 (~IceChat9@pool-108-52-244-197.phlapa.fios.verizon.net) joined #osdev
08:30:51 --- quit: cirno_ (Remote host closed the connection)
08:31:32 --- join: cirno_ (~cirno_@gateway/tor-sasl/cirno/x-25801483) joined #osdev
08:34:44 --- part: Lowl3v3l left #osdev
08:41:02 --- join: drakonis (~drakonis@unaffiliated/drakonis) joined #osdev
08:44:44 --- quit: zeus1 (Ping timeout: 245 seconds)
08:46:34 --- quit: NaNkeen (Ping timeout: 252 seconds)
08:50:11 --- join: promach__ (~promach@bb219-74-174-136.singnet.com.sg) joined #osdev
08:52:37 --- nick: promach__ -> promach2
09:01:12 --- join: cirno__ (~cirno_@gateway/tor-sasl/cirno/x-25801483) joined #osdev
09:01:16 --- quit: cirno_ (Remote host closed the connection)
09:02:28 --- quit: cirno__ (Client Quit)
09:03:54 --- join: Barrett (~barrett@unaffiliated/barrett) joined #osdev
09:06:16 --- join: vmlinuz (~vmlinuz@177.9.71.72) joined #osdev
09:06:16 --- quit: vmlinuz (Changing host)
09:06:16 --- join: vmlinuz (~vmlinuz@unaffiliated/vmlinuz) joined #osdev
09:11:27 --- join: AverageJ0e (~joe@ip98-167-200-207.ph.ph.cox.net) joined #osdev
09:17:57 --- join: stephennnn (~stephen@142.134.91.153) joined #osdev
09:18:10 <stephennnn> Hi all
09:18:28 <stephennnn> I'm trying to set up a cross compiler for i386-elf on Linux Miny 18.3, 64 bit
09:18:39 <stephennnn> However I'm getting stuck when I run binutils
09:18:40 --- join: SwiftMatt (~Objective@2601:282:4300:3e:f0a5:aa60:de30:630e) joined #osdev
09:18:49 <stephennnn> configure: error: in `/home/stephen/src/binutils-build':
09:18:49 <stephennnn> configure: error: C compiler cannot create executables
09:22:53 <bauen1> how are you calling ./configure ?
09:23:17 <bauen1> (seems like you're missing one of the --target --host --build arguments or mixed them)
09:23:25 <stephennnn> ../binutils-2.24/configure --target=$TARGET --prefix="$PREFIX" --with-sysroot --disable-nls --disable-werror --enable-interwork --enable-multilib
09:23:45 <stephennnn> $TARGET is i386-elf
09:25:07 <bauen1> can you try with TARGET=i686-elf ? (iirc i486 or something is the minimum for some of the GNU toolchain)
09:25:52 <stephennnn> bauen1: Exact same error
09:26:14 --- quit: drakonis (Remote host closed the connection)
09:27:21 --- quit: variable (Quit: /dev/null is full)
09:27:28 --- join: pounce (~pounce@c-24-11-27-195.hsd1.ut.comcast.net) joined #osdev
09:27:35 <bauen1> and without the --enable-multilib flag ? (but I guess you need it)
09:27:42 --- quit: awang (Ping timeout: 245 seconds)
09:27:48 <stephennnn> Still doesn't work
09:28:30 --- join: zeus1 (~zeus@197.239.32.33) joined #osdev
09:30:33 <stephennnn> Could it have something to do with the fact the system is 64 bit?
09:32:00 <olsner> shouldn't matter what the system is when building a cross compiler ... check config.log to see what it was trying to build and what the error was
09:32:18 <bauen1> maybe, it works for me (git checkout binutils-2_24 && mkdir build && cd build && ../configure --target=i386-elf --prefix=/opt --with-sysroot --disable-nls --disable-werror --enable-interwork --enable-multilib)
09:32:30 <bauen1> but I have a 64 bit multilib system
09:32:59 <stephennnn> ./binutils-2.24/configure: line 4229: /usr/local/bin/gcc-4.9: No such file or directory
09:33:07 --- quit: zeus1 (Ping timeout: 264 seconds)
09:33:15 <stephennnn> gcc-4.9 is at /usr/bin/gcc-4.9
09:33:20 --- quit: Amaan (Quit: Connection closed for inactivity)
09:33:29 --- join: drakonis (~drakonis@unaffiliated/drakonis) joined #osdev
09:33:39 <stephennnn> How would I go about mending that?
09:34:10 --- join: ACE_Recliner (~ACE_Recli@c-73-18-225-48.hsd1.mi.comcast.net) joined #osdev
09:34:18 <bauen1> You could compile gcc for your host system if gcc really is the issue, but I don't really know how to go about that
09:34:34 <bauen1> what does `gcc -v` say ?
09:34:53 <stephennnn> Do you want me to C&P the whole thing here?
09:34:54 <stephennnn> From gcc -v
09:35:02 <bauen1> no
09:35:04 <bauen1> pastebin
09:35:29 --- join: lldd_ (~atrapado@unaffiliated/atrapado) joined #osdev
09:35:33 <stephennnn> https://paste.scd31.com/view/16e372e5
09:35:34 <bslsk05> ​paste.scd31.com: Untitled - SCD Paste
09:36:43 <bauen1> gcc should work
09:37:42 <bauen1> can you upload the config.log ?
09:37:48 <stephennnn> Sure
09:38:40 <stephennnn> https://paste.scd31.com/view/6dbf347d
09:38:42 <bslsk05> ​paste.scd31.com: Untitled - SCD Paste
09:38:47 <sortie> bauen1: i386-elf will also work -- but i686-elf can take advantage by default of more instructions
09:38:59 <sortie> bauen1: No you don't need the multilib flg
09:39:09 <sortie> stephennnn: 64-bit is fine, no difference
09:39:57 <bauen1> stephennnn: I would guess that /usr/local/bin/gcc-4.9 is a broken symlink
09:40:21 <sortie> stephennnn: Okay I'll help you
09:40:48 <stephennnn> bauen1: There's no /usr/local/bin/gcc-4.9 symlink, I checked
09:40:53 <stephennnn> Unless you mean somewhere else
09:40:56 <sortie> stephennnn: You have problems when building the cross gcc?
09:40:56 <stephennnn> sortie: thank you
09:40:59 <stephennnn> Yes
09:41:18 <bauen1> stephennnn: you have a broken symlink in /usr/local/bin named either cc or gcc
09:41:19 <sortie> stephennnn: I need you to pastebin the exact shell commands you are running, with all the environment variables expanded.
09:41:25 <bauen1> it points to gcc-4.9
09:41:45 <sortie> stephennnn: Please start over from fresh. Delete your gcc build directory and start over so I fully know what is happening.
09:41:56 --- join: dbittman_ (~dbittman@2601:647:ca00:1651:b26e:bfff:fe31:5ba2) joined #osdev
09:41:58 <sortie> stephennnn: What is this about gcc-4.9? Have you set the CC environment variable or such?
09:42:14 <sortie> stephennnn: I assume you are following https://wiki.osdev.org/GCC_Cross-Compiler
09:42:15 <bauen1> probably a package manger messing up /usr/local/bin and that being first in the path ?
09:42:16 <bslsk05> ​wiki.osdev.org: GCC Cross-Compiler - OSDev Wiki
09:42:24 <stephennnn> I'm following https://github.com/cfenollosa/os-tutorial/tree/master/11-kernel-crosscompiler
09:42:25 <bslsk05> ​github.com: os-tutorial/11-kernel-crosscompiler at master · cfenollosa/os-tutorial · GitHub
09:42:29 <stephennnn> I think I found the problem, just a moment
09:42:36 <sortie> stephennnn: Do not do that.
09:42:45 <sortie> stephennnn: Follow https://wiki.osdev.org/GCC_Cross-Compiler
09:42:48 <bauen1> ^
09:43:13 <bauen1> oh god, you don't want a freestanding gcc in your path
09:43:17 <sortie> stephennnn: A lot of people writing tutorials are inexperienced amateurs that don't know what they are doing.
09:43:53 <stephennnn> Okay, nuking and starting from scratch
09:43:57 <bauen1> you don't need to export LD or CC at the start
09:44:00 <sortie> stephennnn: Including bintuils
09:44:05 <bauen1> and follow the wiki
09:44:15 <sortie> stephennnn: Don't follow tutorials that can't be edited by the community. Don't follow tutorials that haven't been peer reviewed. The scientific method is important at the University of Osdev. Don't follow tutorials made by the inexperienced. Don't follow tutorials without obviously consulting #osdev whether the tutorials are bad and whether there are errata. Don't blindly follow tutorials: Some tutorials give very bad advise. Some
09:44:15 <sortie> are buggy. The best ones have bugs only experts notice and you won't until things explode.
09:44:17 <bauen1> it gives you the same setup but it shouldn't break
09:44:39 <sortie> stephennnn: GCC 4.9.1 is also very old
09:44:39 <bauen1> that last sentence is so true ._.
09:45:07 <stephennnn> sortie: Noted, thanks
09:45:25 <sortie> stephennnn: If you want to make a basic operating, start with <http://wiki.osdev.org/Bare_Bones>. I've personally edited it a lot based on my 7 years of osdev experience.
09:45:26 <bslsk05> ​wiki.osdev.org: Bare Bones - OSDev Wiki
09:46:21 * sortie reads recent edits to bare bones
09:47:20 --- quit: jmill (Quit: My MacBook has gone to sleep. ZZZzzz…)
09:51:40 <rain1> is there a way to avoid having to use linker scripts?
09:52:37 <stephennnn> woo, binutils compiled
09:52:49 --- quit: Salek (Ping timeout: 240 seconds)
09:54:17 --- join: bcos (~bcos@1.123.137.206) joined #osdev
09:55:05 <bauen1> rain1: technically yes, but if you're using multiboot you need to pass a starting address to the linker and carefully order the object files you supply (the one with the multiboot header has to come first)
09:55:13 <sortie> stephennnn: Yay
09:55:25 --- join: variable (~variable@freebsd/developer/variable) joined #osdev
09:55:38 --- quit: variable (Client Quit)
09:56:31 <bauen1> I would advice you to use linker scripts (the are quite handy) unless you want to use an excotic linker that doesn't support them
09:56:36 <bauen1> *they
09:57:14 --- quit: bcos_ (Ping timeout: 245 seconds)
09:57:16 <doug16k> rain1, yes, you might get away with a bunch of cryptic linker command line options. it's not a good idea. linker scripts give you control, why would you not want that?
09:57:54 <rain1> i don't trust linker scripts because when I tried them before it seemed to ignore some of the options i put in it without giving any warnings or errors
09:58:09 <bauen1> doug16k: the only linker option I need is `-Ttext=0x100000` boot.o needs to come first and thats it
10:00:35 --- join: Salek (~salek@91-155-9-229.elisa-laajakaista.fi) joined #osdev
10:01:35 --- quit: dbittman_ (Ping timeout: 260 seconds)
10:05:02 --- join: DeepIO (~DeepIO@dyndsl-085-016-235-168.ewe-ip-backbone.de) joined #osdev
10:05:03 --- quit: DeepIO (Max SendQ exceeded)
10:08:14 <doug16k> when you need to have virtual address not equal to physical address, or you have non-contiguous output sections, or you need to control layout or alignment of things, or place everything from a certain input section contiguously, with symbols delimiting the start and end of those things, then you can't do it with just command line
10:08:59 <doug16k> at least, you can't do it with anywhere near the clarity of a linker script
10:10:12 --- join: awang (~awang@rrcs-24-106-163-46.central.biz.rr.com) joined #osdev
10:11:11 --- join: MindlessDrone (~MindlessD@unaffiliated/mindlessdrone) joined #osdev
10:11:26 --- quit: promach2 (Quit: WeeChat 2.1)
10:15:07 <sortie> stephennnn: Making progress? I'll head to dinner now :)
10:15:14 <sortie> bbiab
10:15:37 <stephennnn> sortie: On youtube while I wait for gcc to finish compiling
10:15:41 <stephennnn> Thank you for the help!
10:15:44 <stephennnn> Same for you bauen1
10:18:38 --- quit: SwiftMatt (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
10:22:17 --- quit: lachlan_s (Quit: Connection closed for inactivity)
10:29:17 --- join: jmill (~textual@2605:6000:1019:3ff:d4be:646a:13e5:4b9b) joined #osdev
10:30:34 --- quit: baschdel (Ping timeout: 245 seconds)
10:35:53 --- quit: vaibhav (Quit: Leaving)
10:38:20 --- join: baschdel (~baschdel@2a01:5c0:10:3d11:bca2:7797:3876:4668) joined #osdev
10:42:43 --- join: Goplat (~Goplat@reactos/developer/Goplat) joined #osdev
10:44:07 <sortie> stephennnn: Alright :)
10:44:29 <sortie> Note that Youtube osdev tutorials can be some of the worst (made by the inexperienced, they can't be fixed)
10:44:34 <stephennnn> sortie: Up and running, got the bare bones system on! Currently implementing scrolling by myself
10:44:42 <stephennnn> Thanks, noted
10:44:45 <sortie> Woot
10:44:50 <sortie> You're doing great, stephennnn
10:44:52 <sortie> Welcome to osdev
10:45:02 <stephennnn> Thanks :)
10:45:15 --- join: m3nt4L (~asvos@2a02:587:a023:f000:3285:a9ff:fe8f:665d) joined #osdev
10:52:06 --- join: xerpi (~xerpi@14.red-83-45-192.dynamicip.rima-tde.net) joined #osdev
10:53:20 --- quit: baschdel (Ping timeout: 256 seconds)
10:59:26 <stephennnn> Is there any way to sleep for 1 second?
11:00:41 --- join: variable (~variable@freebsd/developer/variable) joined #osdev
11:03:03 --- quit: variable (Client Quit)
11:04:47 --- quit: drakonis (Read error: Connection reset by peer)
11:05:03 <sortie> stephennnn: The normal way is to implement interrupts and then program the timer interrupt
11:05:18 <stephennnn> Okay, thanks
11:05:30 <stephennnn> Not quite there yet but that'll be helpful at some point
11:05:34 <sortie> stephennnn: You can also read the real time clock, by polling until it changes, fairly doable without any dependencies, but not that good a solution
11:06:06 <sortie> stephennnn: I take it that you want to animate something, so you can just do a for loop on some volatile variable so it can't be optimized away, and then pick the number of rounds so it matched the speed you want
11:06:20 --- quit: epony (Read error: Connection reset by peer)
11:06:47 <stephennnn> sortie: Thank you
11:06:59 <sortie> :)
11:07:24 <pounce> What's the real time clock? I've always been using the PIT
11:07:38 <sortie> pounce: https://wiki.osdev.org/RTC
11:07:39 <bslsk05> ​wiki.osdev.org: RTC - OSDev Wiki
11:07:48 <sortie> It's a hardware device that tell you the date and time
11:08:04 <sortie> It's how the OS figures out the current time when it boots since the CMOS is battery powered
11:08:23 <pounce> ah
11:08:28 <sortie> It's not to be used as a timer, but more like a clock that tells you what time it is
11:09:03 <sortie> The PIT and better x86 timers are better for giving you regular interrupts that can be used for increasing the time after the system has gotten the initial time from the RTC
11:09:32 <sortie> Though the right solution is to use the RTC initially, then connect to the internet and get the current time using NTP
11:10:05 <sortie> Huh I totally forgot about my ntpd port
11:10:34 --- quit: sixand (Ping timeout: 245 seconds)
11:14:24 <stephennnn> sortie: I'm super rusty on my C/C++. How do I convert an int to a char pointer?
11:14:33 <stephennnn> I know I can do i + '0' to get it to a char
11:14:34 <doug16k> pounce, RTC keeps track of time and date actually, and as is usual for IBM, so other stuff stuffed in there like holding CMOS settings and telling the BIOS what to do at reset
11:15:45 <sortie> stephennnn: You mean a cast.
11:15:48 --- quit: bauen1 (Ping timeout: 252 seconds)
11:16:21 <sortie> stephennnn: Note that you never want to cast a 'int' to a pointer because pointers may be larger than a pointer. The safe pointer representation as an integer os uintptr_t from <stdint.h>:
11:16:36 <sortie> stephennnn: But if you mean an integer constant, yes, that's fine since you know it hasn't already been truncated.
11:16:37 <doug16k> stephennnn, i + '0' just adds 48 to i. it's still an int, but it then happens to be the ASCII of "0" plus i
11:16:45 <stephennnn> doug16k: I know
11:16:45 <sortie> stephennnn: (char*) 0x1234
11:16:57 <stephennnn> sortie: Okay, thanks
11:17:22 --- join: w41 (~w41@unaffiliated/w41) joined #osdev
11:17:47 <sortie> stephennnn: I also recommend reading https://blog.regehr.org/archives/213 and http://blog.llvm.org/2011/05/what-every-c-programmer-should-know.html if you're not familiar with the topic (this can be quite essential in systems programming)
11:17:48 <bslsk05> ​blog.regehr.org: A Guide to Undefined Behavior in C and C++, Part 1 – Embedded in Academia
11:17:49 <bslsk05> ​blog.llvm.org: LLVM Project Blog: What Every C Programmer Should Know About Undefined Behavior #1/3
11:19:53 --- join: sixand (~Thunderbi@219.145.113.142) joined #osdev
11:21:24 <stephennnn> Thanks
11:21:54 <pounce> (rust doesn't have a lot of this UB)
11:23:01 <pounce> (actually Rust has a lot more UB... it's just hidden)
11:24:58 --- join: SwiftMatt (~Objective@2601:282:4300:3e:5d02:64a:6f8:224a) joined #osdev
11:26:42 --- quit: m3nt4L (Remote host closed the connection)
11:35:27 --- join: Tazmain (~Tazmain@unaffiliated/tazmain) joined #osdev
11:44:44 --- quit: sixand (Ping timeout: 245 seconds)
11:45:24 --- join: unixpickle (~alex@c-24-5-86-101.hsd1.ca.comcast.net) joined #osdev
11:46:03 <stephennnn> That took way too long, but I have scrolling now
11:46:35 --- join: hppavilion[1] (~dosgmowdo@74-114-87-80.dynamic.asdk12.org) joined #osdev
11:48:17 <stephennnn> And now I just implemented newlines :)
11:56:26 --- quit: unixpickle (Quit: My MacBook has gone to sleep. ZZZzzz…)
11:58:26 --- quit: SwiftMatt (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
12:02:25 --- quit: jmill (Quit: My MacBook has gone to sleep. ZZZzzz…)
12:04:47 --- quit: hppavilion[1] (Ping timeout: 245 seconds)
12:05:05 --- join: jmill (~textual@2605:6000:1019:3ff:d4be:646a:13e5:4b9b) joined #osdev
12:06:30 --- quit: jmill (Client Quit)
12:06:35 --- join: banisterfiend (~banister@ruby/staff/banisterfiend) joined #osdev
12:07:19 --- join: hppavilion[1] (~dosgmowdo@74-114-87-80.dynamic.asdk12.org) joined #osdev
12:10:32 --- join: lachlan_s (uid265665@gateway/web/irccloud.com/x-ftaymqbnblbjfkbp) joined #osdev
12:17:32 <doug16k> yay! kernel is now PIE and loader relocates it to an arbitrary address
12:18:07 <izabera> can it relocate to 0x11111111?
12:18:16 <doug16k> yes
12:18:26 <izabera> can it relocate to 0x99999999999999999999999?
12:18:32 <doug16k> well, to 4GB boundary actually
12:18:33 <clever> id expect it to have alignment requirements
12:18:36 <doug16k> 4KB*
12:18:38 <izabera> BOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO YOU SUCK BOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
12:18:59 --- join: dbittman_ (~dbittman@2601:647:ca00:1651:b26e:bfff:fe31:5ba2) joined #osdev
12:19:00 <doug16k> I could make that work but it would suck more than I suck right now
12:20:17 <doug16k> plan is to relocate it to a random 4KB boundary in the top 512GB... but how do I generate a truly random number that early on?
12:20:59 <doug16k> rdrand comes to mind, but it won't always be available
12:25:58 <izabera> obligatory xkcd?
12:26:31 <doug16k> https://www.xkcd.com/221/
12:26:32 <bslsk05> ​xkcd - Random Number
12:27:31 --- join: quul (~weechat@unaffiliated/icetooth) joined #osdev
12:28:53 --- join: baschdel (~baschdel@2a01:5c0:10:3d11:bca2:7797:3876:4668) joined #osdev
12:36:46 --- join: epony (~nym@77-85-143-102.ip.btc-net.bg) joined #osdev
12:40:22 --- join: jmill (~textual@2605:6000:1019:3ff:d4be:646a:13e5:4b9b) joined #osdev
12:40:25 --- join: spare (~user@unaffiliated/spareproject) joined #osdev
12:40:42 <booyah> obligatory Dilbert
12:40:43 <booyah> http://dilbert.com/strip/2001-10-25
12:40:44 <bslsk05> ​dilbert.com: Dilbert Comic Strip on 2001-10-25 | Dilbert by Scott Adams
12:44:10 <clever> doug16k: how many lava lamps do you have? https://www.youtube.com/watch?v=1cUUfMeOijg
12:44:12 <bslsk05> ​'The Lava Lamps That Help Keep The Internet Secure' by Tom Scott (00:03:59)
12:46:02 --- quit: JusticeEX (Ping timeout: 245 seconds)
12:48:24 --- join: t3hn3rd (~Logic_Bom@cpc91206-cmbg18-2-0-cust67.5-4.cable.virginm.net) joined #osdev
12:52:08 <graphitemaster> I just realized that LD_PRELOAD is not really all that powerful compared to the Windows technique
12:52:36 <graphitemaster> I want to actually _replace_ the dynamic linker functions dlopen/dlsym/dlclose with a LD_PRELOAD, and well my system does not like that
12:55:59 --- join: allight_ (~allight@104.132.1.70) joined #osdev
12:56:09 --- join: daniele_athome (~daniele_a@5.170.128.238) joined #osdev
12:56:52 --- join: zeus1 (~zeus@197.239.32.33) joined #osdev
12:58:04 --- quit: elevated (Quit: bye)
12:59:03 --- quit: allight (Ping timeout: 276 seconds)
13:00:16 --- join: elevated (~elevated@unaffiliated/elevated) joined #osdev
13:00:23 <doug16k> what windows technique? IAT patching?
13:06:52 --- quit: daniele_athome (Ping timeout: 245 seconds)
13:07:17 --- quit: hppavilion[1] (Ping timeout: 245 seconds)
13:11:10 --- quit: lldd_ (Quit: Leaving)
13:21:36 --- join: Kimundi_ (~Kimundi@2a02:908:e471:9a80:2e1d:ef2a:e7cf:3fd1) joined #osdev
13:27:36 --- join: bauen1 (~bauen1@ANancy-655-1-39-134.w90-48.abo.wanadoo.fr) joined #osdev
13:31:01 <catern> readiness notification vs completion notification
13:31:02 <catern> who wins?
13:35:59 --- quit: aalm (Ping timeout: 245 seconds)
13:37:27 --- join: aalm (~aalm@37-219-237-30.nat.bb.dnainternet.fi) joined #osdev
13:38:03 --- join: JusticeEX (~justiceex@pool-98-113-143-43.nycmny.fios.verizon.net) joined #osdev
13:41:04 <sortie> Ah cool, init(8) dependency handling works now
13:41:40 <sortie> default -> depending on base -> base depending on network -> network depending on dhclient -> dhclient depending on dhclient.lo0 and dhclient.em0
13:55:51 --- join: allight (~allight@104.132.0.85) joined #osdev
13:56:45 --- join: hppavilion[1] (~dosgmowdo@74-114-87-80.dynamic.asdk12.org) joined #osdev
13:57:15 --- quit: allight_ (Ping timeout: 260 seconds)
13:58:05 --- join: bemeurer (~bemeurer@stdcognition.static.monkeybrains.net) joined #osdev
14:00:57 --- quit: hmmmm (Read error: Connection reset by peer)
14:01:31 --- join: SwiftMatt (~Objective@2601:282:4300:3e:5d02:64a:6f8:224a) joined #osdev
14:02:58 --- quit: SwiftMatt (Client Quit)
14:05:42 <geist> graphitemaster: yeah presumably those point back to ld.so
14:05:50 <geist> figure you probably can't actually replace those calls
14:07:13 <Brnocrist> https://bugs.chromium.org/p/project-zero/issues/detail?id=1528
14:07:15 <bslsk05> ​bugs.chromium.org: 1528 - speculative execution, variant 4: speculative store bypass - project-zero - Monorail
14:08:23 --- join: hmmmm (~sdfgsf@pool-72-79-160-158.sctnpa.east.verizon.net) joined #osdev
14:09:21 --- quit: vmlinuz (Quit: Leaving)
14:12:59 <Brnocrist> why you want replace dl* functions?
14:21:02 --- quit: `Guest00000 (Ping timeout: 245 seconds)
14:23:09 --- quit: glauxosdever (Quit: leaving)
14:25:26 <lachlan_s> geist: You here?
14:25:54 <geist> sure
14:26:30 <lachlan_s> Trying to decide whether to go for a single handle table or process specific tables.
14:27:09 <lachlan_s> Process specific tables would allow handing out raw indices to usermode, but moving handles around could be more complex
14:27:50 --- quit: Barrett (Quit: Capeesh? Na vota tu dissi, I told you many times this is my businissi.)
14:28:01 <geist> i'd start with process specific
14:28:09 <geist> the fact that we have a singleone is an optimization (and adds some complexity)
14:28:27 <geist> go for what logically closer to reality, which is that each process has its own handle table
14:28:37 <geist> and of course hide the implementation behind an api so you can change it later
14:28:41 --- join: immibis (~chatzilla@222-155-160-32-fibre.bb.spark.co.nz) joined #osdev
14:29:08 <lachlan_s> Is having a single one faster?
14:29:15 --- join: robert_ (~hellspawn@24.96.111.33) joined #osdev
14:29:15 --- quit: robert_ (Changing host)
14:29:15 --- join: robert_ (~hellspawn@objectx/robert) joined #osdev
14:29:31 <geist> i thought we went through this a bunch the other day
14:29:39 <lachlan_s> We did, yeah
14:29:44 <geist> it's a specific design that specifically solves our problems fairly well, right now
14:29:46 <lachlan_s> I'm just clearing a few things up
14:29:49 <lachlan_s> I see, alright
14:30:03 <geist> i'm not particularly married to it, but its fairly straightforward
14:30:17 <lachlan_s> Cool
14:30:19 <lachlan_s> Thanks
14:30:25 --- part: lachlan_s left #osdev
14:30:29 <geist> really, dont look at reasons to do any one given design first, look at your constraints, including simplicity...
14:30:32 <geist> okay, they're gone
14:30:41 --- quit: elevated (Ping timeout: 260 seconds)
14:30:58 --- quit: Kimundi_ (Ping timeout: 245 seconds)
14:33:29 <graphitemaster> geist, shameful because I'm trying to inject some custom functions to trace some thing, but the process in question may not link against the library that way but rather it may dlopen it, so my idea was to basically replace dlopen/dlsym, catch when that happens, forward to the trace stuff and then for anything else let it go through plain dlopen, but this is not possible I guess
14:34:23 <graphitemaster> I wanted to basically synthesize my own fake handle on the way out of dlopen, that dlsym and dlclose would look at and know not to go through the real one by that handle
14:34:38 <graphitemaster> but this is apparently not possible
14:35:43 <graphitemaster> windows on the other hand, you can literally replace the export and import tables themselves and setup import/export trampolines that get called always, provided your stuff is loaded through such an injector, so even if the process in quesiton decides to LoadLibrary something, it still has to travel through the trampoline
14:36:02 --- quit: bauen1 (Ping timeout: 245 seconds)
14:36:08 <clever> ive even replaced the IAT tables after a program has started
14:36:12 <graphitemaster> I actually see no easy way of doing this on linux apart from writing your own dynamic linker
14:36:22 <graphitemaster> which is a lot of work
14:36:27 --- quit: zeus1 (Ping timeout: 245 seconds)
14:36:34 <clever> why not just patch libdl.so?
14:36:44 <graphitemaster> not something I want to "ship" per-se
14:37:03 <clever> patch the thing thats doing dlopen?
14:37:23 <graphitemaster> hard to tell if it's doing dlopen
14:37:32 <graphitemaster> also, would need to inprocess JIT patch
14:37:40 <graphitemaster> lots of work still
14:40:01 --- join: elevated (~elevated@unaffiliated/elevated) joined #osdev
14:47:45 <graphitemaster> by the way, anyone feel like a nice laugh
14:48:20 <graphitemaster> so, glXGetProcAddress returns a pointer to a function taking nothing, i.e void (*)(void), however I want to "replace" this function with an LD_PRELOAD on Linux, for debug reasons, so I write my own which has a whacky syntax of void(*glxGetProcAddress(const GLubyte* procName))(void), however I need to eventually call the original one, so now things get interesting because to create a function pointer to a function which takes a
14:48:20 <graphitemaster> pointer to a const GLubyte returning a pointer to a function taking nothing and returning void I need a void (*(*glXGetProcAddress)(const GLubyte *procName))(void)
14:48:50 <graphitemaster> C/C++ declarations not even once.
14:49:42 --- join: daniele_athome (~daniele_a@5.170.120.201) joined #osdev
14:49:51 <Brnocrist> graphitemaster: https://stackoverflow.com/a/37795834
14:49:54 <bslsk05> ​stackoverflow.com: c - LD_PRELOAD doesn't affect dlopen() with RTLD_NOW - Stack Overflow
14:50:00 --- quit: spare (Remote host closed the connection)
14:51:04 <Brnocrist> you should use same soname when you link your preloaded lib
14:53:50 <graphitemaster> Brnocrist, that's a hack and I also don't want to replace the system library's functionality across the board, beside my library acts more like several libraries introspecting several functions across different .sos that the app may load
14:53:57 <graphitemaster> and I don't want to make 4 different sos and have people preload them all
14:55:27 --- quit: xerpi (Remote host closed the connection)
14:56:31 --- quit: immibis (Ping timeout: 264 seconds)
14:57:58 <Brnocrist> yeah, it is an hack, I don't thing there is a not dirty way to do it
14:58:42 <graphitemaster> it would be nice if the way symbol resolution worked had a blocking flag
14:58:48 <sortie> https://users-cs.au.dk/~sortie/sortix/screenshots/sortix-init-daemon-prototype.png ← This long weekend I made a prototype of daemon support in init(8).
14:58:51 <sortie> https://users-cs.au.dk/~sortie/sortix/screenshots/sortix-init-daemon-prototype.png ← This long weekend I made a prototype of daemon support in init(8).
14:59:01 <sortie> (oops paste error)
14:59:16 <Brnocrist> blocking flag?
14:59:25 <Sonicbit> Hi, guys. I've never done any kind of OS dev, nor I know anyone who does such thing. Any recommendations, books, on how to start?
14:59:41 --- quit: hppavilion[1] (Quit: HRII'FHALMA MNAHN'K'YARNAK NGAH NILGH'RI'BTHNKNYTH)
14:59:49 <graphitemaster> so you could provide your library and it's symbols get added to the global table, with a flag that says "hold up, if you encounter any other libraries that provide these symbols, do not load them into the global symbol table, but rather if they're part of a request through a dlopen, then load them into a symbol table controlled only by the dlopen handle and not the global namespace"
15:00:09 <graphitemaster> so then nothing can override you by virtue, but you can still load libraries yourself that may provide them and implement them yourselves
15:00:45 <graphitemaster> the real problem here is how there's no symbol namespace other than the global one
15:01:07 <Brnocrist> ld is already so complex, probably it is not really needed :)
15:02:09 --- join: regreg (~regreg@85.121.54.224) joined #osdev
15:02:38 <graphitemaster> if I ever get around to adding dynamic library support to my OS I'm taking the approach where all functions are just a trampoline to their real functions which can be replaced at any time sort of like how Windows does it, but with proper namespacing, (i.e the symbols exposed via a loading of the library explicitly are only visible through that handle and not globally)
15:03:18 <graphitemaster> names don't matter
15:03:22 <graphitemaster> like for the library itself
15:04:14 <izabera> not sure if you just invented dynamic linking or python
15:05:42 <graphitemaster> problem is that's not at all how actual dynamic linking works
15:05:53 <graphitemaster> dynamic linking in POSIX land is a global free for all
15:06:04 <graphitemaster> and no way to replace symbols at runtime
15:07:09 --- quit: sortie (Quit: Leaving)
15:08:36 --- quit: Asu` (Quit: Konversation terminated!)
15:11:20 --- join: matlock__ (~matlock@2600-6c5a-6e7f-e7d2-4968-48f1-04c9-b32b.dhcp6.chtrptr.net) joined #osdev
15:14:56 --- join: `Guest00000 (~user@37.113.160.53) joined #osdev
15:15:01 --- quit: matlock__ (Read error: Connection reset by peer)
15:18:33 <graphitemaster> geist, ah the joys of em shielding https://www.youtube.com/watch?v=-7X7LWpt0VY
15:18:34 <bslsk05> ​'Samsung S9+ interfering with my MacBook Pro's display' by Michael Wasylyk (00:00:09)
15:19:03 <graphitemaster> can't even shield their lvms cable
15:19:09 <graphitemaster> god apple products are so trash
15:19:57 --- join: zeus1 (~zeus@197.239.32.33) joined #osdev
15:20:12 --- quit: w41 (Ping timeout: 245 seconds)
15:27:57 --- quit: oaken-source (Quit: Lost terminal)
15:32:51 --- quit: Tazmain (Remote host closed the connection)
15:35:06 --- join: matlock (~matlock@2600-6c5a-6e7f-e7d2-91d4-10c8-5a07-cf30.dhcp6.chtrptr.net) joined #osdev
15:38:42 --- quit: zeus1 (Ping timeout: 252 seconds)
15:39:23 --- quit: xenos1984 (Quit: Leaving.)
15:40:49 --- join: regreg_ (~regreg@85.121.54.224) joined #osdev
15:43:54 --- quit: regreg (Ping timeout: 245 seconds)
15:47:00 --- quit: jmill (Quit: My MacBook has gone to sleep. ZZZzzz…)
15:50:36 --- quit: daniele_athome (Ping timeout: 260 seconds)
15:50:49 <quul> you cannot LD_PRELOAD your own modified dlopen ?
15:51:50 --- quit: umpc (Ping timeout: 256 seconds)
15:58:16 --- join: umpc (~umpc@unaffiliated/umpc) joined #osdev
15:58:53 --- quit: transistor (Ping timeout: 256 seconds)
15:59:07 --- join: transistor (~trans@S01060018f8f95df7.vc.shawcable.net) joined #osdev
16:04:13 --- quit: epony (Read error: Connection reset by peer)
16:04:33 --- join: epony (~nym@77-85-143-102.ip.btc-net.bg) joined #osdev
16:06:50 --- quit: atk (Quit: Well this is unexpected.)
16:12:05 --- join: atk (~Arch-TK@ircpuzzles/staff/Arch-TK) joined #osdev
16:12:27 --- quit: atk (Remote host closed the connection)
16:13:03 --- quit: Lucretia (Remote host closed the connection)
16:13:24 --- join: Lucretia (~laguest@pdpc/supporter/active/lucretia) joined #osdev
16:13:59 --- join: atk (~Arch-TK@ircpuzzles/staff/Arch-TK) joined #osdev
16:19:56 --- join: isd (~isd@pool-71-174-32-198.bstnma.east.verizon.net) joined #osdev
16:20:48 --- join: vdamewood (~vdamewood@unaffiliated/vdamewood) joined #osdev
16:22:30 --- join: zeus1 (~zeus@197.239.32.33) joined #osdev
16:24:44 --- quit: baschdel (Ping timeout: 245 seconds)
16:27:17 --- quit: `Guest00000 (Ping timeout: 245 seconds)
16:28:26 --- join: jmill (~textual@2605:6000:1019:3ff:a525:7b28:4149:babe) joined #osdev
16:36:22 <doug16k> graphitemaster, I'm going to try that on my laptop right now...
16:37:10 <doug16k> absolutely no effect whatsoever
16:38:01 <doug16k> samsung A7 sitting in same place on acer laptop
16:38:54 --- quit: isd (Quit: Leaving.)
16:39:15 <quul> if global vars are the concern, can't you link them in from the real .so as an extern?
16:39:27 <quul> i've never tried just speculating about possibilities here
16:40:22 <ALowther> Am I on the right track in thinking that a server running, like http or ssh or ftp, is just an infinite loop waiting for input. BUT when it starts, it tells the OS which port it will be listening on and the OS is smart enough to keep the server "asleep" until times when something is addressed to the port it is listening on, so as not to waste resources?
16:41:04 <doug16k> I started a call to voicemail and put phone in same place on my laptop. no effect
16:41:26 <klange> I did some ugly thing where my ld.so has a table of provided symbols, which includes dlopen and friends. There's a fake dlfcn.so that "provides" those functions so they can be linked properly by gcc/ld, but it doesn't actually provide the symbols in the running binary.
16:42:36 <doug16k> ALowther, the server program calls something to block, the OS doesn't mindread when to do that
16:42:52 <klange> ALowther: From a high level, yes. The functionality that keeps the server "asleep" while it waits for a connection is called blocking. Most servers block until they receive a connection request and then hand that request off to a thread so they can go back to blocking for another connection.
16:44:03 <geist> well, damn, sat down to try to hack some code on this hifive1 board
16:44:10 <geist> damn thing only has 16KB flash
16:44:14 <klange> RIP
16:44:31 <doug16k> ??? brochure said megabits didn't it?
16:44:35 <geist> 128 Mbits
16:44:42 <geist> oh... thats' 16MB.
16:44:47 <geist> MAF IS HARD!
16:44:50 <ALowther> So then even if a server is sleeping, some CPU cycles may be wasted checking the process, seeing that it is blocking and then moving onto the next process?
16:44:57 <klange> RIP geist's brain
16:44:57 <geist> dont juge me!
16:45:06 <geist> never mind,. 16MB is nice
16:45:27 <doug16k> ALowther, if the scheduler is implemented terribly, yes, it would be "checking". a proper scheduler won't spend any cycles on blocked threads
16:45:35 <_mjg_> gnu, not even once
16:45:41 <klange> ALowther: No, while the process is blocked it is removed from the queue of running processes. The thing that "unblocks" it will put it back. This is a fundamental part of scheduling.
16:47:27 <ALowther> doug16k, klange: Okay, so does that kind of go along with my train of thought then? A server is blocking, but listening on a certain port. Incoming network traffic is directed to the port the server is listening on, the OS directs the data to the server and adds the process back to the scheduler for the data to be consumed?
16:47:58 <geist> at a very high level, yes
16:48:21 <geist> the gist being that the process doesn't run at all until data comes in
16:48:22 <doug16k> ALowther, if the server program called something that makes it block and something is set up to make that happen, yes
16:48:53 <doug16k> ALowther, a server could be terrible and spin and burn cpu time, but a decent one will yield and do nothing while waiting
16:49:32 --- quit: matlock (Read error: Connection reset by peer)
16:49:39 <clever> i once discovered a perl process running as root, using 100% cpu, and claiming to be httpd
16:49:50 <clever> my apache showed up as apache2, under the www-data user
16:49:52 <geist> kill it with fire
16:49:53 <graphitemaster> rip, u ded
16:50:00 <graphitemaster> check u bank acc
16:50:05 <geist> time to defenestrate a computer
16:50:06 <_mjg_> 8)
16:50:14 <clever> yeah, you guessed what it was :P
16:50:28 <_mjg_> one of the admins left a backdoor
16:50:36 <clever> there was an exploit in exim
16:50:46 <_mjg_> iptables startup script was executing something very weirdly named
16:51:00 <_mjg_> inside you could find rules granting him access
16:51:01 <_mjg_> :d
16:51:07 <clever> :D
16:51:51 <ALowther> Okay :). Thank you.
16:52:10 <graphitemaster> fun fact, when you work for cisco you don't even have to write in a backdoor, they provide it for you.
16:53:07 <doug16k> geist, so, do you know if the code cache is really a cache yet? as in, it stalls to fetch code from flash on code cache miss, or is it really a 16KB code scratchpad and you can read code/data from flash manually?
16:53:09 <_mjg_> i like to think all the terrible php sites i have seen were in fact just backdoored on purpose
16:53:27 <_mjg_> which could then by explained away by cluelessness
16:53:30 <geist> doug16k: according to the data sheet it's a 2 way set associative instruction cache
16:53:39 <geist> and the block diagram shows that it can directly fetch from QSPI
16:53:54 <geist> unclear what data fetches do when reading from QSPI
16:53:55 <doug16k> wow. can't wait to hear how that performs :)
16:54:01 <geist> it's directly memory mapped though, for sure
16:54:31 <geist> i've seen direct mapped QSPI on other microcontrollers too, and my experience was the performance was predictably not so hot, but i dont think it had a large icache in front of it
16:54:41 <geist> it was mostly for reading data assets out of it, like bitmaps and whatnot
16:55:09 <doug16k> still has a blazing fast clock speed compared to an atmel driven similar device
16:55:18 <geist> yeah 320Mhz. thouygh it says 'up to'
16:55:28 <geist> i wonder if that means 'technically you could but it'd probably overheat'
16:56:29 <geist> so seems like if you can keep your codes pretty small, it'll probably end up in the icache, though it's only 2 way set associative
16:56:44 <geist> so you basically should slam all of your code in a linear 16KB aligned run on the QSPI
16:57:36 <geist> that's a little tight for LK. a simple LK build with the command line and pritnf and whatnot generally clocks in around 20KB, though it'll probably be a bit more here because the ISA isn't compact. this isn't the riscv32M variant
16:58:12 <doug16k> it's the 16 register version right?
17:01:04 <geist> this is i think the full deal
17:01:10 <geist> there's a M version of the ISA that this is not
17:01:26 <geist> that's why this is a bit odd. it's an overpowered core for a MCU, really. it's all out of balance
17:02:03 <geist> rv32E is what it's called. that's the i guess embedded version of the machine
17:03:32 --- quit: zeus1 (Ping timeout: 245 seconds)
17:03:34 <aalm> MMU?
17:03:35 <geist> this is a rs32I
17:03:37 <geist> no
17:03:41 <aalm> k
17:05:14 --- quit: quc (Ping timeout: 252 seconds)
17:06:16 --- quit: Guest5068 (Remote host closed the connection)
17:07:47 --- join: [X-Scale] (~ARM@31.22.201.44) joined #osdev
17:08:02 <doug16k> geist, but it does have 3-address instructions. that must reduce the instruction count at least
17:08:42 <geist> ah i see. this core actually supports more precisely rv32imac extensions
17:08:54 <geist> so integer, multiply, atomics, and compressed ISA
17:09:03 <doug16k> how much is the question. would be interesting to see how often the destination is the same as a source in a real piece of code
17:09:19 <geist> so i do think it is the 16 register version
17:09:22 --- quit: X-Scale (Ping timeout: 245 seconds)
17:09:22 --- nick: [X-Scale] -> X-Scale
17:10:17 --- quit: mra90 (Read error: Connection reset by peer)
17:11:13 <doug16k> compressed format "mostly" only supports 8 registers
17:12:23 <graphitemaster> I think cpus are not allowed to be secure anymore
17:12:33 <graphitemaster> too many design flaws these days
17:12:55 <graphitemaster> the illusion of security is an odd one
17:13:18 <graphitemaster> now there's a spectre/torment like side channel that lets applications WRITE into memory
17:13:20 <graphitemaster> anywhere
17:13:30 <graphitemaster> so basically paging is fucking useless
17:13:54 <doug16k> graphitemaster, I find that hard to believe
17:14:34 <chrisf> graphitemaster: link
17:15:13 <rain1> write?? O_O
17:15:16 <rain1> that is terrifying
17:15:29 <graphitemaster> https://blog.can.ac/2018/05/11/arbitrary-code-execution-at-ring-0-using-cve-2018-8897/
17:15:30 <bslsk05> ​blog.can.ac: Arbitrary Code Execution at Ring 0 using CVE-2018-8897 – Can.ac
17:15:31 <quul> noooo please don't say this
17:15:54 <rain1> btw even if paging can be bypassed, it still helps a lot - remember how crashy computers were without it
17:17:17 <graphitemaster> well it gives you full ring0, you can do what ever the hell you want :P
17:17:33 <geist> you need more rings mang
17:17:48 <rain1> it seems fishy how they put an entire fucking SECRET OS in our CPUs
17:17:48 <graphitemaster> I learnt about this weeks ago, I thought it could actually be mitigated at the OS level
17:17:51 <graphitemaster> turns out it can't
17:17:58 <graphitemaster> since there's another fun one
17:17:59 <rain1> but maybe im just a crazy conspiracy theorist!
17:18:04 <graphitemaster> vm8086
17:18:22 <graphitemaster> depends on this behavior
17:18:40 <Drakonis[m]> AMT my man
17:18:42 <chrisf> vm8086 can go in the dustbin of history.
17:18:59 <Drakonis[m]> intel wants openbmc now
17:19:07 <grange_c> rain1: You forgot to mention that it has access to internet and main memory
17:19:21 <grange_c> Makes it soo funnier
17:19:33 <Drakonis[m]> at least we're having linux inside a chip
17:19:52 <Mutabah> Damn...
17:20:03 <Mutabah> that `mov ss` bug is gonna get SOOO milked
17:21:01 <graphitemaster> it's funny, you can start up the vm8086 logical processor from long mode in x86_64 using unrestricted guest (if your kernel is setup with extended page tables) if it exists (westmere+ has them), then use vm8086 to trigger the mov ss bug (even if the OS mitigated it), then gain ring0 by dropping down to real mode, and replacing GDT/IDT/etc
17:21:57 <graphitemaster> you still need access to guest extensions tho
17:22:04 <graphitemaster> so I guess one way to mitigate this is to just disable those
17:22:25 <graphitemaster> VT-x is basically dangerous now
17:22:33 <graphitemaster> I wonder what cloud providers are doing
17:23:07 <klys> vps providers are making kernel upgrades mandatory, ofc.
17:24:32 <geist> ah that's kind of clever, just read how the 'c' instructions fit into riscv
17:24:42 <doug16k> graphitemaster, so, disabling fsgsbase fixes it then?
17:24:46 <geist> it's not a mode switch like ARM, it's properly reserved in the opcode space
17:24:58 <geist> so basically you can just intermix 32 and 16 bit registers as you see fit
17:25:49 <geist> the regular rv32i opcode space has a 7 bit opcode, but in the case where the bottom two bits are 00, 01, 10 it selects the 16bit compress space. hence all the 32bit instructions have 11 in the bottom two bits
17:26:20 <graphitemaster> doug16k, you need to make the vmx instructions privlidged basically, because you can literally just vmlaunch directly into a real mode, use vm8086 to issue the triggering bug that gives ring0 and escapes the vm
17:26:24 <doug16k> geist, yeah I love how simple instruction length detection is... basically it's the UTF-8 of instruction encoding :D
17:26:34 <geist> the compressed space and whatnot has nothign to do with 16 bit reduced registers
17:26:51 <geist> that's rv32e which seems to be somewhat independent of the ISA
17:26:57 <klange> computers were a mistake
17:27:11 <doug16k> 16 bit instructions can't fit 3 5-bit register fields
17:27:26 <clever> would it be feasible to audit a page for the vmx instructions when its being made executable?
17:27:36 <clever> and require that executable pages are never writable, obviously
17:27:46 <klys> klange, why would you say that about 32-bit, tho
17:27:51 <quul> graphitemaster: so these +w exploits don't work without hardware virtualization?
17:27:54 <geist> yah this partially explains the fairly wonky ABI layout for registers. in the 16bit instructions you basically can access reg 8 through 15, which is where they map the arg regs and some scratch
17:28:32 <geist> enough to do generally simple codes
17:28:43 <klange> klys: all computers were mistakes
17:29:18 <doug16k> geist, yeah, I bet a good compiler will use 16 bit instructions often
17:29:27 <geist> this also probably explains why the isntruction layout is a bit strange and puts the opcodes int he lower part of the instruction, little endian
17:29:32 <graphitemaster> quul, well the mov ss one does work without vm, but that's wasy to mitigate, patches already exist for this, but the more sinister one is one that can't be mitigated by patches because it exposes ring0 of the host through an "unrestricted guest" which gives you a virtualized vm8086 running in real mode from vmlaunch
17:29:50 <geist> that means the byte lowest in memory can be examined to determine the size of the rest of the instruction
17:29:59 <doug16k> graphitemaster, you saying you can launch a vm in ring 3? get out
17:30:54 <klys> ergo voluntas mea culpa.
17:31:03 <graphitemaster> doug16k, you can in non-root mode
17:31:30 --- join: promach__ (~promach@bb219-74-174-136.singnet.com.sg) joined #osdev
17:31:34 <promach__> just want to share: https://bugs.chromium.org/p/project-zero/issues/detail?id=1528
17:31:35 <bslsk05> ​bugs.chromium.org: 1528 - speculative execution, variant 4: speculative store bypass - project-zero - Monorail
17:31:36 <geist> sounds like you just need to nest more hypervisors
17:31:39 <geist> hypervisors all the way down
17:31:40 --- nick: promach__ -> promach2
17:31:43 <doug16k> vmlaunch says "ELSIF CPL > 0 then #GP(0)"
17:32:01 <geist> like, multiple layers of hypervisors, all distributed across one monster shared cluster of machines
17:32:13 <quul> all i can find are windows PoC's :(
17:32:22 <geist> run your os on a hypervisor that gets migrated, but then sometimes your hypervisor gets migrated without you knowing it
17:32:30 <geist> then that cluster migrates
17:32:34 <geist> it never ends!
17:32:35 --- quit: behalebabo (Max SendQ exceeded)
17:33:07 <doug16k> graphitemaster, yeah but the nested VM is jailed by the nested paging right? how can it escape that?
17:33:16 --- join: behalebabo (~behalebab@unaffiliated/behalebabo) joined #osdev
17:36:53 <graphitemaster> doug16k, because you can start the VM in unrestricted guest via page table overlay
17:37:02 <graphitemaster> this is why it requires the EPT stuff
17:37:34 <graphitemaster> so the you can basically expose an entire vm8086 to the host
17:37:38 <graphitemaster> s/the//
17:37:44 <graphitemaster> through vmx
17:37:54 <doug16k> svm is unaffected then?
17:38:06 <graphitemaster> and then from vm8086 encode the mov ss triggering bug
17:38:14 <graphitemaster> gaining eventual ring0 on host
17:39:00 <graphitemaster> svm is unaffected
17:39:10 <graphitemaster> because vm8086 does not exist there
17:39:39 <geist> vm8086 is the debil.
17:41:57 <klys> .theo
17:41:58 <glenda> Please state your case very carefully and clearly.
17:42:47 --- quit: Dreg (Quit: Dreg)
17:42:48 <graphitemaster> now, granted this requires some stuff, a westmere+ intel CPU with VM-x on and the kernel configured with Extended Page Tables, and a mechanism to actually launch a VM from user-space, which is somewhat difficult to do, if something else already is running on there in VMX root mode you can exploit that, the other trick is to have the user install virtual box or something that puts any VM in ring1, doesn't matter which, then you can
17:42:49 <graphitemaster> issue a non-root VMX from user-space on that, escape it by triggering the same bug, then do this whole thing again to escape the nest to get back to the host and trigger the bug from the nestees-vm8086, you now own the whole system
17:43:28 --- join: Dreg (~Dreg@fr33project.org) joined #osdev
17:43:43 <geist> ah yes i'm reading it now. variant 3a some of the ARM cores are susceptible too
17:43:59 <geist> thats an interesting one, because you figure the core should know immediately what mode its in and just not start the instruction
17:45:16 <doug16k> graphitemaster, hypothetically? or has someone done a proof of concept escape from a VM?
17:45:24 <graphitemaster> all hypothetical
17:45:28 <quul> i think that only works on x86_64 linux
17:45:32 * quul stops sweating
17:45:50 <doug16k> quul, you mean only windows right?
17:46:04 <quul> i mean this one http://seclists.org/oss-sec/2018/q2/94
17:46:05 <bslsk05> ​seclists.org: oss-sec: CVE-2018-8897: #DB exceptions that are deferred by MOV SS or POP SS may cause unexpected behavior
17:46:10 <geist> side note, the LLC topology computation thing i was thinking about last night: https://software.intel.com/en-us/articles/intel-64-architecture-processor-topology-enumeration
17:46:12 <bslsk05> ​software.intel.com: Intel® 64 Architecture Processor Topology Enumeration | Intel® Software
17:46:44 <geist> intel basically seems to indicate here that they always have a single LLC per package, so if you compute the topology of the package, you basically know the LLC
17:49:00 <graphitemaster> 2892g43uyfr7iwqeovhc3w0
17:49:15 --- join: SwiftMatt (~Objective@2601:282:4300:3e:3c50:a733:7ae1:7c38) joined #osdev
17:49:17 <graphitemaster> welp, time to change that password
17:49:20 --- join: zeus1 (~zeus@197.239.32.33) joined #osdev
17:49:20 <graphitemaster> fucking focus
17:49:41 * graphitemaster changes it to hunter12
17:49:42 <geist> oh, all i saw was ********
17:49:51 <graphitemaster> REALLY!?
17:49:55 <graphitemaster> AMAZING!?
17:50:02 <quul> ************ woah cool!
17:50:03 <graphitemaster> what sort of new fangled technology is this
17:50:33 <klys> if u type ur pw on irc all we see is ********
17:51:05 <_mjg_> /nick CrashOverride
17:51:06 <graphitemaster> no wai
17:51:12 <Mutabah> What the hunter2 is going on here?
17:51:20 <doug16k> I used this password for live mail account once: frotNafow3ferWeortAj7bitsOtdaft6frotNafow3ferWeortAj7bitsOtdaft7
17:51:38 <graphitemaster> remember when badh.org and qdb.us were the shit and actually updated and people actually read them
17:51:42 <Mutabah> That seems a bit[s] daft
17:51:47 <doug16k> two days later they canceled my account, claiming that it was hijacked. ya, sure it was. they just want to extort your phone number
17:51:48 <graphitemaster> pepperridge farms remembers.
17:52:19 <geist> somewhere wayyyy back in about 2001 or 2002 here we had the infamous 'i'll give you the root password of my machine if you'll fix it' incident here
17:52:28 <geist> can probably be found in the logs, but it was pretty harsh
17:53:38 <graphitemaster> one of the channels I was on had two regulars, and one of them was haviong problem with their linux install, something about having difficulty deleting files on his drive (turns out he mounted it read only), and the other regular told them to dd if=/dev/zero of=/dev/sda and that would delete his files
17:53:46 <graphitemaster> it was an epic day
17:53:56 <geist> that was pretty much the root login incident
17:53:57 <graphitemaster> ten whole hours of fighting and laughs
17:55:57 --- join: ryoshu (~kamil@netbsd/developer/kamil) joined #osdev
17:55:58 <ryoshu> hi
17:56:23 <ryoshu> under what circumstances we can reset mask/ignore flags of a delivered signal in a posix system?
17:56:34 <graphitemaster> sounds like a homework question
17:56:44 <ryoshu> with trap signals in particular
17:57:07 <ryoshu> yeah, I need to do the resarch in order to fix the kernel
17:57:33 <graphitemaster> ryoshu, take this moment as a learning exercise in how to reword questions and hide the fact they are homework questions, it'll help you get far in life if you can actually fake it till you make it, it's too obvious right now
17:57:36 <graphitemaster> :D
17:57:49 <Mutabah> ryoshu: Try looking into the documentation for the relevant library calls?
17:58:24 <ryoshu> Mutabah I want to fix the NetBSD kernel so I need to some other authority
17:59:45 <ryoshu> http://pubs.opengroup.org/onlinepubs/9699919799/functions/sigaction.html#
17:59:45 <klys> info libc -> signals
17:59:46 <bslsk05> ​pubs.opengroup.org: sigaction
17:59:54 <ryoshu> "SIGILL and SIGTRAP cannot be automatically reset when delivered; the system silently enforces this restriction."
18:00:04 <ryoshu> I need some rationale behind this
18:00:40 * geist 's eyes gloss over with mention of posix signals
18:00:53 <ryoshu> klys do you mean Linux man pages? nothing there in particular
18:01:14 <klys> ryoshu, apt-get install texinfo glibc-doc-reference
18:01:23 <ryoshu> I don't use linux
18:01:27 <graphitemaster> geist, I hope fuschia killed signals
18:01:34 <graphitemaster> what an awful mistake
18:01:56 <klange> a handful of them make sense
18:02:04 <klange> the whole system behind them maybe not so much
18:02:16 <graphitemaster> async-signal safety and how they interact with threads *shudder*
18:02:21 <graphitemaster> kill them with fire
18:02:24 <ryoshu> https://nxr.netbsd.org/xref/src/sys/kern/kern_sig.c#937
18:02:26 <bslsk05> ​nxr.netbsd.org: Cross Reference: /src/sys/kern/kern_sig.c
18:03:43 --- quit: jmill (Quit: My MacBook has gone to sleep. ZZZzzz…)
18:03:43 <graphitemaster> speaking of bash.org, this is still my favorite quote http://www.qdb.us/93358
18:03:45 <bslsk05> ​www.qdb.us: QDB: Quote #93358
18:04:06 <geist> graphitemaster: yeah no where in sight
18:04:13 <klys> https://www.gnu.org/software/libc/manual/html_node/Standard-Signals.html
18:04:14 <bslsk05> ​www.gnu.org: Standard Signals (The GNU C Library)
18:04:19 --- quit: quul (Quit: WeeChat 2.0.1)
18:06:40 <ryoshu> https://www.gnu.org/software/libc/manual/html_node/Program-Error-Signals.html#Program-Error-Signals
18:06:40 <bslsk05> ​www.gnu.org: Program Error Signals (The GNU C Library)
18:06:43 <ryoshu> nothing here
18:06:47 <ryoshu> here*
18:07:09 <ryoshu> about rules of unmasking masked or unignoring ignored signals
18:10:19 --- quit: ACE_Recliner (Ping timeout: 240 seconds)
18:10:37 --- quit: zeus1 (Ping timeout: 245 seconds)
18:17:03 --- join: NaNkeen (~nankeen@115.164.203.138) joined #osdev
18:18:06 --- join: giraffe (skarn@gateway/shell/firrre/x-mntjnoacxijjnzwj) joined #osdev
18:18:30 --- nick: giraffe -> Guest29863
18:18:35 --- quit: epony (Ping timeout: 260 seconds)
18:22:58 --- quit: SwiftMatt (Quit: Textual IRC Client: www.textualapp.com)
18:28:23 --- quit: tacco| ()
18:31:35 <lkurusa> graphitemaster: wow when was that quote made
18:32:15 <graphitemaster> 2014 iirc
18:32:44 --- quit: promach2 (Quit: WeeChat 2.1)
18:33:00 <Mutabah> (unrelated) Oof, pun damage - This toolchain has a flag `-no-legacy-libc`, without which it has the folder `include/lega-c` in the include path
18:34:01 <klange> I think by 2014 that's gotta just be a troll. 2002 I might accept it as someone who legitimately was not aware. 2014... 1WTC opened that year.
18:34:08 --- join: SwiftMatt (~Objective@2601:282:4300:3e:90fe:25d4:937e:3ced) joined #osdev
18:34:25 --- join: MaryJaneInChain (~user@223.255.127.32) joined #osdev
18:36:55 --- quit: NaNkeen (Ping timeout: 248 seconds)
18:38:56 <geist> I dont buy it. people on the internet are inheriently kind and truthful and non duplicitious
18:39:39 <klange> https://www.youtube.com/watch?v=YWdD206eSv0
18:39:40 <bslsk05> ​'Lies on the Internet' by baines0 (00:00:06)
18:40:41 <geist> see, Arthur speaks with wisdom
18:40:49 --- quit: SwiftMatt (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
18:45:30 --- join: NaNkeen (~nankeen@115.164.203.138) joined #osdev
18:47:16 <graphitemaster> geist, you mean to tell me that people are _wrong_ on the internet?
18:47:22 <graphitemaster> but it's a bastion of knowledge
18:47:27 <graphitemaster> how could there be lies?
18:47:39 <graphitemaster> just doesn't make sense
18:47:45 --- join: quul (~weechat@unaffiliated/icetooth) joined #osdev
18:47:57 <graphitemaster> if the internet can't be trusted, then who or what can?
18:48:06 <geist> i dont know!
18:48:24 --- join: lachlan_s (uid265665@gateway/web/irccloud.com/x-ftaymqbnblbjfkbp) joined #osdev
18:54:48 --- join: zeus1 (~zeus@197.239.32.33) joined #osdev
18:56:19 --- quit: NaNkeen (Ping timeout: 240 seconds)
18:59:59 --- join: variable (~variable@freebsd/developer/variable) joined #osdev
19:06:00 --- join: SwiftMatt (~Objective@2601:282:4300:3e:90fe:25d4:937e:3ced) joined #osdev
19:11:19 --- quit: zeus1 (Ping timeout: 260 seconds)
19:11:28 --- join: sixand (~Thunderbi@219.145.113.142) joined #osdev
19:16:19 --- quit: ZipCPU (Ping timeout: 264 seconds)
19:17:43 --- quit: bemeurer (Quit: WeeChat 2.2-dev)
19:18:39 <klys> the worst trouble with the internet is its reliance on open access / lack of private intranets. it confuses the matter of trust because no one trusts barriers to entry.
19:19:56 <klys> the next worst trouble with the internet is all the sites that house creativity which won't be there next year / general waste of content.
19:21:26 --- join: ZipCPU (~ZipCPU@pool-72-73-37-177.clppva.east.verizon.net) joined #osdev
19:23:01 --- join: hppavilion[1] (~dosgmowdo@10-36-178-69.gci.net) joined #osdev
19:26:15 --- join: epony (~nym@77-85-143-102.ip.btc-net.bg) joined #osdev
19:27:25 --- join: NaNkeen (~nankeen@115.164.203.138) joined #osdev
19:27:43 --- quit: SwiftMatt (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
19:30:26 --- quit: sixand (Ping timeout: 252 seconds)
19:30:42 --- join: drakonis (~drakonis@unaffiliated/drakonis) joined #osdev
19:32:50 <doug16k> graphitemaster, hey I just noticed something interesting in vmlaunch instruction docs: ELSIF events are being blocked by MOV SS then VMfailValid(VM entry with events blocked by MOV SS);
19:35:34 <geist> _mjg_: finally got around to running the getuid test on my skylake desktop
19:35:43 <geist> interesting to see the PTI vs noPTI difference. about 4:1
19:36:21 <geist> and sure enough nopti it's almost exactly as fast as the threadripper at the same clock rate
19:37:18 <geist> rougly 200ns vs 50ns
19:37:36 <geist> on a 4Ghz machine
19:39:14 <geist> so that's probably the ideal hit you get from PTI, since the skylake should have all of the PCID optimizations known applied
19:39:19 --- quit: JusticeEX (Ping timeout: 240 seconds)
19:39:22 <geist> though it is a slightly older kernel (4.13)
19:40:20 --- join: unixpickle (~alex@c-24-5-86-101.hsd1.ca.comcast.net) joined #osdev
19:49:40 --- join: SwiftMatt (~Objective@2601:282:4300:3e:90fe:25d4:937e:3ced) joined #osdev
19:52:48 --- quit: NaNkeen (Ping timeout: 252 seconds)
19:54:30 <graphitemaster> doug16k, I can't parse that
19:54:38 --- join: ACE_Recliner (~ACE_Recli@c-73-18-225-48.hsd1.mi.comcast.net) joined #osdev
19:54:45 --- join: zeus1 (~zeus@197.239.32.33) joined #osdev
20:01:52 --- quit: zeus1 (Ping timeout: 245 seconds)
20:12:46 <ryoshu> is it legal to mask and ignore signal in the same time?
20:12:49 --- quit: SwiftMatt (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
20:13:13 <Mutabah> as in have it masked off while the handler is set to SIG_IGN?
20:13:42 <ryoshu> SIG_IGN + SIG_BLOCK
20:15:14 <Mutabah> if they're both set via the `signal` call, I'd assume one overrides the other
20:15:49 <ryoshu> sigprocmask(SIG_BLOCK, ..
20:16:08 <ryoshu> sigaction(SIGSEGV, &sa /* SIG_BLOCK */, ...
20:16:09 <Mutabah> Find the relevant entry in the standards?
20:16:27 <ryoshu> nothing mentioned
20:17:07 <Mutabah> Something is mentioned, the mere existence of those values is mentioned in some specification somewhere
20:18:06 <ryoshu> http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/signal.h.html I can read both here, but nothing about their mixing
20:18:07 <bslsk05> ​pubs.opengroup.org: <signal.h>
20:20:13 <Mutabah> It might be implementation defined? Or maybe it's specified in a different document (that specifies the officialy signal handling process, possibly the documentation for kill?)
20:20:27 <Mutabah> Or maybe you can take a guess at the sane behavior?
20:20:30 <Mutabah> or test
20:20:41 --- join: SwiftMatt (~Objective@2601:282:4300:3e:90fe:25d4:937e:3ced) joined #osdev
20:22:38 <ryoshu> I can test, but I need to know whether to change it or not in case of unexpected behavior
20:24:40 --- join: pclj (~user@183.62.141.106) joined #osdev
20:24:54 --- quit: ACE_Recliner (Read error: Connection reset by peer)
20:27:01 --- quit: SwiftMatt (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
20:41:55 --- join: raphaelsc (~raphaelsc@187.114.36.169) joined #osdev
20:51:20 --- quit: t3hn3rd (Quit: Leaving)
20:52:17 --- quit: lachlan_s (Quit: Connection closed for inactivity)
20:57:51 --- join: mardikene123 (~Amjadoni@148.251.34.35) joined #osdev
20:59:22 --- quit: nj0rd (Ping timeout: 245 seconds)
21:01:18 <mardikene123> i've gone through over 10trials of kafka proccess which i call this way, cause both court and doctors have failed to compose a single logical sentence in the process, and if such work at so important job, there is no doubt why the country will sink alltogether
21:01:43 <mardikene123> *jobs
21:02:17 <latentprion> When was the last time you slew some poon friend
21:03:07 --- mode: ChanServ set +o klange
21:04:56 <mardikene123> latentprion: some braindeficient dude threattens with a biscuit here, so you see i can not have conversation due to his cockblocking
21:05:30 --- quit: mardikene123 (Quit: Leaving)
21:05:39 --- mode: ChanServ set -o klange
21:06:21 <klange> Threatening with a biscuit? https://ogiuemaniax.files.wordpress.com/2015/11/hoshinosamidare-biscuithammer.png
21:06:51 --- quit: MaryJaneInChain (Remote host closed the connection)
21:07:07 --- join: MaryJaneInChain (~user@223.255.127.32) joined #osdev
21:14:37 --- join: nj0rd (~nj0rd@mue-88-130-48-116.dsl.tropolys.de) joined #osdev
21:14:43 <jjuran> wat
21:17:55 <latentprion> I'm going to have to assume "buscuit hammer" was a typo ???
21:19:41 <ryoshu> any pinebook users?
21:25:33 --- quit: quul (Quit: WeeChat 2.0.1)
21:26:18 --- quit: CrystalMath (Quit: Support Free Software - https://www.fsf.org/)
21:29:17 --- join: rafaeldelucena (~rafaeldel@2804:14d:ba83:2709:5c07:9510:ca45:cc2e) joined #osdev
21:29:40 --- quit: drakonis (Read error: Connection reset by peer)
21:30:19 --- quit: bork (Ping timeout: 240 seconds)
21:32:53 --- join: bork (ayy@cpe-76-173-133-37.hawaii.res.rr.com) joined #osdev
21:37:40 --- quit: light2yellow (Quit: sleep)
21:41:05 --- quit: brynet (Quit: leaving)
21:44:05 --- join: brynet (~brynet@brynet6.biz.tm) joined #osdev
21:44:49 <klange> "biscuit hammer" is in fact the name of the giant hammer in the sky in 「惑星のさみだれ」, or as it is known in English "Lucifer and the Biscuit Hammer". I don't think this name is ever sufficiently explained.
21:45:16 <klange> I haven't read all of the manga, though. Hm, it's on Kindle...
21:48:17 <klange> (And if you're thinking this was a mistranslation, it's ビスケットハンマー in the original Japanese)
21:49:05 <graphitemaster> does linux have some opengl demo program that actually uses shaders
21:49:13 <graphitemaster> glxgears is all fixed function garbage
21:49:28 <klange> I don't believe any of the glx stuff actually bothers packaging one.
21:50:20 <klange> if you're looking for one, I've got a shader teapot demo somewhere...
21:50:32 <klange> I actually shipped it in ToaruOS for a while after the mesa port.
21:50:49 <klange> Glorious 1fps
21:51:11 <klange> https://github.com/klange/cs418/tree/master/mp4
21:51:12 <bslsk05> ​github.com: cs418/mp4 at master · klange/cs418 · GitHub
21:51:34 <klange> lol makefile specifies clang
21:54:57 --- join: xenos1984 (~xenos1984@2001:bb8:2002:200:6651:6ff:fe53:a120) joined #osdev
21:55:03 <klange> hm, that's not the teapot demo, and this makefile is missing libraries for glx... *shrug*
21:56:52 --- quit: dbittman_ (Ping timeout: 245 seconds)
21:57:12 --- join: sixand (~Thunderbi@171.110.246.141) joined #osdev
21:57:48 --- nick: Kazinsal_ -> Kazinsal
22:02:47 --- quit: X-Scale (Ping timeout: 248 seconds)
22:03:35 --- join: NaNkeen (~nankeen@203.188.234.181) joined #osdev
22:07:19 <geist> hrm, this hifive1 board does not seem to have anything on it
22:07:30 <geist> the getting started guide says it would do stuff. it does not do stuff
22:07:49 --- join: BartAdv (uid90451@gateway/web/irccloud.com/x-emhyitcprpzjjfsc) joined #osdev
22:08:15 --- join: oaken-source (~oaken-sou@p5DDB5171.dip0.t-ipconnect.de) joined #osdev
22:11:53 --- quit: freakazoid0223 (Quit: Always try to be modest, and be proud about it!)
22:15:29 <geist> guess i'll build the sdk and see what i get
22:16:09 --- quit: unixpickle (Quit: My MacBook has gone to sleep. ZZZzzz…)
22:18:32 --- join: Love4Boobies (~L4B@unaffiliated/l4b) joined #osdev
22:18:43 --- quit: azonenberg (Ping timeout: 240 seconds)
22:21:25 --- join: cirno_ (~cirno_@gateway/tor-sasl/cirno/x-25801483) joined #osdev
22:22:49 <Love4Boobies> In case anyone plays Minecraft and likes to mess with the snapshots: https://www.reddit.com/r/Minecraft/comments/8kmoyg/beta_textures_for_latest_snapshots/
22:22:51 <bslsk05> ​www.reddit.com: Beta Textures for Latest Snapshots : Minecraft
22:23:18 <Love4Boobies> (Mojang is updating the textures and the new ones, designed for the stable version, are in beta.)
22:23:31 --- join: azonenberg (~azonenber@chat.dmz.bainbridge.antikernel.net) joined #osdev
22:27:20 --- quit: smeso (Remote host closed the connection)
22:30:46 --- join: smeso (~smeso@unaffiliated/smeso) joined #osdev
22:30:51 --- quit: cirno_ (Remote host closed the connection)
22:31:34 --- join: cirno_ (~cirno_@gateway/tor-sasl/cirno/x-25801483) joined #osdev
22:40:44 --- quit: sixand (Ping timeout: 252 seconds)
22:46:20 --- quit: pounce (Quit: WeeChat 2.1)
22:50:44 --- join: newsham (~chat@udp217044uds.hawaiiantel.net) joined #osdev
23:00:52 --- quit: cirno_ (Remote host closed the connection)
23:01:20 --- join: cirno_ (~cirno_@gateway/tor-sasl/cirno/x-25801483) joined #osdev
23:02:50 --- join: unixpickle (~alex@c-24-5-86-101.hsd1.ca.comcast.net) joined #osdev
23:03:29 --- quit: AverageJ0e (Ping timeout: 245 seconds)
23:08:52 --- part: ryoshu left #osdev
23:11:32 --- join: CheckDavid (uid14990@gateway/web/irccloud.com/x-zvznmcoldvwjqeyp) joined #osdev
23:12:21 --- quit: unixpickle (Quit: My MacBook has gone to sleep. ZZZzzz…)
23:13:52 --- join: S_Gautam (3bb6f5dd@gateway/web/freenode/ip.59.182.245.221) joined #osdev
23:17:25 <Love4Boobies> Wow, the Reddit editor is super duper buggy.
23:17:38 --- join: `Guest00000 (~user@37.113.160.53) joined #osdev
23:17:58 <klange> New reddit?
23:18:02 <klange> The whole thing is crap.
23:18:11 <S_Gautam> Love4Boobies: The new reddit is the biggest failure in modern website design.
23:18:17 <_mjg_> :)
23:18:30 <_mjg_> and old reddit is the biggest failure in terms of content
23:18:45 <Love4Boobies> I've had an account for ages but I never really used it.
23:18:56 <Love4Boobies> I think I went there once or twice before.
23:19:11 --- quit: NaNkeen (Quit: leaving)
23:19:23 <S_Gautam> It's more Facebook-friendly now.
23:19:39 --- join: NaNkeen (~nankeen@203.188.234.181) joined #osdev
23:21:25 <geist> kay, i think i grok this thing. just slammed together a quickie 'print abc' binary for the hifive machine
23:21:51 <Love4Boobies> But if I try to write in italic or bold, it automatically italic's or bold's the wrong thing.
23:22:17 <Love4Boobies> Unless I go to the simple markdown editor but there you can't inline images in your post; it transforms them into links.
23:22:42 <klange> Solution: Ditch it, go to old.reddit.com, and learn how to markdown
23:22:45 <Love4Boobies> Because the markdown is the same but apparently it's decided based on how you posted---markdown or fancy editor.
23:23:06 <klange> Also you can't inline images on reddit anyway.
23:23:14 <Love4Boobies> Well I just did.
23:23:29 <klange> Those don't show up as inline images.
23:23:35 <Love4Boobies> They do
23:23:45 <klange> They do not in: 1) the mobile apps. 2) old reddit, 3) the API
23:25:07 <Love4Boobies> But I don't really understand how the fuck they managed to design their code if the markdown and fancy editors post differently.
23:25:34 <klange> It's all markdown on the backend.
23:25:42 <klange> Can you link this post?
23:25:49 <Love4Boobies> https://www.reddit.com/r/Minecraft/comments/8kmoyg/beta_textures_for_latest_snapshots/
23:25:52 <bslsk05> ​www.reddit.com: Beta Textures for Latest Snapshots : Minecraft
23:26:02 <Love4Boobies> Then explain this weird behavior.
23:26:20 <klange> Yeah you just got a bunch of links to images hosted on i.redd.it
23:26:47 <klange> Heh, and the markdown for your post has redundant escapes for all the bare parens.
23:27:06 <Love4Boobies> Yes, it added that automatically when I switched into the fancy editor.
23:27:16 <Love4Boobies> But I get inlined images whether I am logged in or not.
23:28:06 <Love4Boobies> Only in Firefox, though.
23:28:23 <Love4Boobies> Man, this site is horrid.
23:28:50 <S_Gautam> Switch to Voat if you can handle some toxicity.
23:28:59 <S_Gautam> I mean.. no lol.
23:29:15 --- join: ALowther_ (~alowther@68.200.236.134) joined #osdev
23:29:23 --- join: zeus1 (~zeus@197.239.7.105) joined #osdev
23:29:35 --- join: immibis (~chatzilla@222-155-160-32-fibre.bb.spark.co.nz) joined #osdev
23:29:41 <Love4Boobies> On Firefox, I get an entirely different interface than I do on Chrome.
23:29:51 <klange> old.reddit.com
23:30:18 <Love4Boobies> Yeah, I guess.
23:30:52 --- quit: cirno_ (Remote host closed the connection)
23:31:02 --- quit: ALowther (Ping timeout: 245 seconds)
23:31:32 --- join: cirno_ (~cirno_@gateway/tor-sasl/cirno/x-25801483) joined #osdev
23:31:57 <Love4Boobies> When was the new one introduced?
23:32:02 <Love4Boobies> Is it very recent?
23:32:12 <Love4Boobies> Perhaps they'll fix their shit soon.
23:32:22 <klange> I don't actually know because I was never moved onto it, only just started seeing complaints about it here and there.
23:33:03 <S_Gautam> Love4Boobies: Not really, I think they called it "Beta" for a while, and just about 2-3 weeks ago they made it default.
23:33:29 <Love4Boobies> I just started going there recently for some Minecraft-related things. I was never into Reddit.
23:33:59 --- join: mardikene123 (~Amjadoni@81-230-60-77-no2390.tbcn.telia.com) joined #osdev
23:34:04 <klange> Reddit is a strange place. Lots of people like to think it's some singular community, but it's really just a platform with a lot of different groups.
23:34:05 <Mutabah> Love4Boobies: I have my reddit preverence set to the old theme
23:34:11 --- mode: ChanServ set +o klange
23:34:12 <Mutabah> Tried the new one for 30s, switched back
23:34:17 <mardikene123> graphitemaster: fetch the piglit testing suite
23:34:21 <klange> I think they screw themselves with their default front page.
23:35:07 <S_Gautam> The suckish thing about the new interface is I've slow internet, and whenever a page is loaded I always have the side bar pop up stay for at least 5-6s.
23:35:09 <Love4Boobies> Well, old reddit looks like shit too. It needed a redesign but not this one.
23:35:25 <Mutabah> Old reddit was functional and static
23:35:32 <klange> Old reddit looks great on the right subreddits.
23:35:37 <klange> They just needed better default CSS.
23:35:41 <klange> Some subreddit themes look amazing.
23:35:50 <Love4Boobies> Can I have a like to one?
23:36:01 <Love4Boobies> The Minecraft one is very bad, with misplaced buttons and stuff.
23:36:09 <klange> https://www.reddit.com/r/photography/
23:36:10 <bslsk05> ​www.reddit.com: Photography
23:36:42 <Love4Boobies> s/www/old/
23:37:05 <mardikene123> klange: get a brain, you have not realised that you need an a star to have sane thoughts around the code to be written, nor some sort of quasi cockblocker like you, who gets soon handled with a machete anyways
23:37:16 <Love4Boobies> So the interface is subreddit-dependend, huh.
23:37:22 --- quit: mardikene123 (Client Quit)
23:37:28 <klange> Subreddits can provide CSS.
23:37:39 <Love4Boobies> Seems like a bad idea.
23:37:43 <klange> Some subreddit moderators put a lot of effort into it.
23:37:57 <Mutabah> I like the /r/rust one, nice and simple
23:38:19 <Mutabah> The only thing that would improve it is a large sign saying "this isn't /r/playrust"
23:38:20 <klange> oh wow that color scheme is so... rust.
23:38:34 <Kazinsal> I'm a bit disappointed /r/rust isn't actually about oxidation
23:38:40 <klange> Some of the game-specific subreddits have really fantastic themes.
23:38:41 <Love4Boobies> Because if I'm a random guy and go random browsing on reddit for interesting stuff and someone provides crap RSS, I'll think Reddit is broken and a bad platform.
23:38:56 <Kazinsal> I appreciate that /r/trees is about dope and /r/marijuanaenthusiasts is about tree
23:39:01 <Kazinsal> trees*
23:39:26 --- join: DeepIO (~DeepIO@dyndsl-085-016-234-254.ewe-ip-backbone.de) joined #osdev
23:41:26 <S_Gautam> wow lol
23:42:00 <klange> That is one of the best and longest-running reddit jokes.
23:42:25 <S_Gautam> Agree, possible second to reddit itself.
23:43:39 --- join: sixand (~Thunderbi@113.201.117.110) joined #osdev
23:43:50 <_mjg_> i browsed through random corners over there
23:43:54 --- join: w41 (~w41@unaffiliated/w41) joined #osdev
23:44:01 <_mjg_> the IT-related stuff is of course terrible (who knew?)
23:44:18 <_mjg_> the non-it stuff is self contridctory
23:44:40 <_mjg_> what's reddit demographic anyway, is that mostly high schoolers?
23:44:45 <klange> "literally anyone"
23:44:46 <_mjg_> .. which owuld explain a lot
23:46:56 --- quit: variable (Quit: /dev/null is full)
23:47:55 <klange> Reddit serves primarily Americans, has a reasonable but slightly male-tilted gender distribution. Largest age group seems to be 18-25, but there's a wide spread.
23:49:40 --- join: variable (~variable@freebsd/developer/variable) joined #osdev
23:50:23 --- quit: sixand (Ping timeout: 260 seconds)
23:51:20 <S_Gautam> https://www.reddit.com/r/MapPorn/comments/61vzin/popularity_of_reddit_by_country_4500_x_2234/
23:51:23 <bslsk05> ​www.reddit.com: Popularity of Reddit by country [4,500 x 2,234] : MapPorn
23:51:39 --- quit: variable (Client Quit)
23:52:09 <geist> kapow
23:57:32 --- join: sixand (~Thunderbi@113.201.117.110) joined #osdev
23:59:59 --- log: ended osdev/18.05.21