<m3a>
fyi, it seems that both the wiki and forums are back online.
vdamewood has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
the_lanetly_052_ has joined #osdev
the_lanetly_052 has quit [Ping timeout: 256 seconds]
Oli has quit [Quit: leaving]
CaCode has joined #osdev
bradd has quit [Read error: Connection reset by peer]
bradd has joined #osdev
the_lanetly_052_ has quit [*.net *.split]
kingoffrance has quit [*.net *.split]
sdfgsdfg has quit [*.net *.split]
elderK has quit [*.net *.split]
bgs has quit [*.net *.split]
m3a has quit [*.net *.split]
doppler has quit [*.net *.split]
hbag has quit [*.net *.split]
zaquest has quit [*.net *.split]
radens has quit [*.net *.split]
Bonstra has quit [*.net *.split]
mavhq has quit [*.net *.split]
Oshawott has quit [*.net *.split]
ThinkT510 has quit [*.net *.split]
exec64 has quit [*.net *.split]
gdd has quit [*.net *.split]
elastic_dog has quit [*.net *.split]
xenos1984 has quit [*.net *.split]
m5zs7k has quit [*.net *.split]
arahael has quit [*.net *.split]
immibis has quit [*.net *.split]
tom5760 has quit [*.net *.split]
Dreg has quit [*.net *.split]
LittleFox has quit [*.net *.split]
V has quit [*.net *.split]
lanodan has quit [*.net *.split]
bradd has quit [*.net *.split]
smeso has quit [*.net *.split]
j00ru_ has quit [*.net *.split]
Mikaku has quit [*.net *.split]
bauen1 has quit [*.net *.split]
Matt|home has quit [*.net *.split]
dormito has quit [*.net *.split]
jjuran has quit [*.net *.split]
Ameisen has quit [*.net *.split]
scoobydoo has quit [*.net *.split]
moon-child has quit [*.net *.split]
eryjus has quit [*.net *.split]
Belxjander has quit [*.net *.split]
janemba has quit [*.net *.split]
z_is_stimky_ has quit [*.net *.split]
gmodena has quit [*.net *.split]
rorx has quit [*.net *.split]
particleflux has quit [*.net *.split]
lg has quit [*.net *.split]
Bitweasil has quit [*.net *.split]
j`ey has quit [*.net *.split]
rb has quit [*.net *.split]
PyR3X has quit [*.net *.split]
terrorjack has quit [*.net *.split]
heat has quit [*.net *.split]
DanDan has quit [*.net *.split]
thinkpol has quit [*.net *.split]
air has quit [*.net *.split]
k0valski18 has quit [*.net *.split]
AmyMalik has quit [*.net *.split]
sauce has quit [*.net *.split]
sm2n has quit [*.net *.split]
riverdc has quit [*.net *.split]
zhiayang has quit [*.net *.split]
MrBonkers has quit [*.net *.split]
wille has quit [*.net *.split]
thaumavorio has quit [*.net *.split]
sortie has quit [*.net *.split]
jeaye has quit [*.net *.split]
nanovad has quit [*.net *.split]
darkstardevx has quit [*.net *.split]
tomaw has quit [*.net *.split]
Affliction has quit [*.net *.split]
dragestil has quit [*.net *.split]
ornxka has quit [*.net *.split]
alexander has quit [*.net *.split]
ecs has quit [*.net *.split]
koolazer has quit [*.net *.split]
LambdaComplex has quit [*.net *.split]
pounce has quit [*.net *.split]
geist2 has quit [*.net *.split]
kernelspace has quit [*.net *.split]
energizer has quit [*.net *.split]
Arsen has quit [*.net *.split]
buffet has quit [*.net *.split]
hl has quit [*.net *.split]
myon98 has quit [*.net *.split]
Mikaku has joined #osdev
radens has joined #osdev
bauen1 has joined #osdev
the_lanetly_052_ has joined #osdev
kingoffrance has joined #osdev
terrorjack has joined #osdev
sdfgsdfg has joined #osdev
bgs has joined #osdev
doppler has joined #osdev
hbag has joined #osdev
m3a has joined #osdev
AmyMalik has joined #osdev
Ameisen has joined #osdev
zaquest has joined #osdev
m5zs7k has joined #osdev
heat has joined #osdev
arahael has joined #osdev
moon-child has joined #osdev
immibis has joined #osdev
tom5760 has joined #osdev
eryjus has joined #osdev
Dreg has joined #osdev
Belxjander has joined #osdev
LittleFox has joined #osdev
sauce has joined #osdev
sm2n has joined #osdev
scoobydoo has joined #osdev
riverdc has joined #osdev
janemba has joined #osdev
zhiayang has joined #osdev
MrBonkers has joined #osdev
gmodena has joined #osdev
rorx has joined #osdev
z_is_stimky_ has joined #osdev
particleflux has joined #osdev
lanodan has joined #osdev
V has joined #osdev
wille has joined #osdev
lg has joined #osdev
thaumavorio has joined #osdev
sortie has joined #osdev
ornxka has joined #osdev
jeaye has joined #osdev
Bitweasil has joined #osdev
energizer has joined #osdev
j`ey has joined #osdev
rb has joined #osdev
PyR3X has joined #osdev
darkstardevx has joined #osdev
nanovad has joined #osdev
tomaw has joined #osdev
Affliction has joined #osdev
dragestil has joined #osdev
myon98 has joined #osdev
alexander has joined #osdev
thinkpol has joined #osdev
smeso has joined #osdev
Bonstra has joined #osdev
bradd has joined #osdev
j00ru_ has joined #osdev
ThinkT510 has joined #osdev
exec64 has joined #osdev
Oshawott has joined #osdev
dormito has joined #osdev
air has joined #osdev
jjuran has joined #osdev
xenos1984 has joined #osdev
gdd has joined #osdev
elastic_dog has joined #osdev
Matt|home has joined #osdev
mavhq has joined #osdev
LambdaComplex has joined #osdev
koolazer has joined #osdev
kernelspace has joined #osdev
pounce has joined #osdev
geist2 has joined #osdev
Arsen has joined #osdev
ecs has joined #osdev
buffet has joined #osdev
hl has joined #osdev
elderK has joined #osdev
DanDan has joined #osdev
k0valski18 has joined #osdev
wolfshappen has quit [Max SendQ exceeded]
koolazer has quit [Max SendQ exceeded]
koolazer has joined #osdev
wolfshappen has joined #osdev
the_lanetly_052 has joined #osdev
stux|away has quit [Ping timeout: 256 seconds]
the_lanetly_052_ has quit [Ping timeout: 252 seconds]
jstoker has quit [*.net *.split]
PapaFrog has quit [*.net *.split]
Geertiebear has quit [*.net *.split]
HeTo has quit [*.net *.split]
brenns10 has quit [*.net *.split]
asmwfi[m] has quit [*.net *.split]
chibill[m] has quit [*.net *.split]
divine has quit [*.net *.split]
shan has quit [*.net *.split]
manawyrm has quit [*.net *.split]
klys_ has quit [*.net *.split]
riv has quit [*.net *.split]
amj has quit [*.net *.split]
HeTo has joined #osdev
divine has joined #osdev
klys has joined #osdev
brenns10 has joined #osdev
shan has joined #osdev
PapaFrog has joined #osdev
riv has joined #osdev
manawyrm has joined #osdev
jstoker has joined #osdev
_xor has joined #osdev
asmwfi[m] has joined #osdev
_whitelogger has joined #osdev
seds has joined #osdev
XgF has joined #osdev
acidx has joined #osdev
ebb has joined #osdev
Patater has joined #osdev
basil has joined #osdev
ZipCPU has joined #osdev
paulusASol has joined #osdev
ebb has quit [Max SendQ exceeded]
ebb has joined #osdev
someonejv[m] has joined #osdev
ebb has quit [Max SendQ exceeded]
ebb has joined #osdev
ebb has quit [Max SendQ exceeded]
sdfgsdfg has quit [Quit: ZzzZ]
ebb has joined #osdev
<heat>
does anyone have a gcc 10/11 cross build working?
<heat>
the usual autoconf --host does not work
ebb has quit [Max SendQ exceeded]
ebb has joined #osdev
ebb has quit [Max SendQ exceeded]
ebb has joined #osdev
ElectronApps has joined #osdev
ebb has quit [Max SendQ exceeded]
ebb has joined #osdev
ebb has quit [Max SendQ exceeded]
ebb has joined #osdev
ebb has quit [Max SendQ exceeded]
bauen1 has quit [Ping timeout: 256 seconds]
ebb has joined #osdev
ebb has quit [Max SendQ exceeded]
ebb has joined #osdev
ebb has quit [Max SendQ exceeded]
ebb has joined #osdev
radens has quit [Quit: Connection closed for inactivity]
ebb has quit [Max SendQ exceeded]
ebb has joined #osdev
heat_ has joined #osdev
ebb has quit [Max SendQ exceeded]
heat has quit [Read error: Connection reset by peer]
ebb has joined #osdev
ebb has quit [Max SendQ exceeded]
ebb has joined #osdev
ebb has quit [Max SendQ exceeded]
ebb has joined #osdev
ebb has quit [Max SendQ exceeded]
ebb has joined #osdev
ebb has quit [Max SendQ exceeded]
ebb has joined #osdev
ebb has quit [Max SendQ exceeded]
ebb has joined #osdev
<geist>
i have the usual cross build for a plain target
<geist>
dunno what you want though
heat_ is now known as heat
<heat>
i want to build gcc with host=myos
ebb has quit [Max SendQ exceeded]
<heat>
from what I'm looking at, it seems to be $undefined
<heat>
undocumented even
ebb has joined #osdev
<heat>
doing --host=$target eventually fails when building the host libraries (libgcc, libsanitizer, libstdc++, etc) because it picks up the build system's compiler
CaCode_ has joined #osdev
<heat>
right now I'm giving it a try with aarch64-linux-gnu to weed out any possible problems that my port may bring
<klange>
and then presumably the same things I did for the ^ script above
<klange>
though probably with an added DESTDIR
<klange>
unfortunately it seems I did it manually so beyond the config.log I don't know what I did after that
<heat>
hmmm, the only difference between mine and yours is that I don't pass --target
<klange>
I think you need both or that configure script gets confused about what it's targeting or can't guess it
<klange>
I think it guesses target=build rather than target=host?
<heat>
no, it's building the current target
ebb has quit [Max SendQ exceeded]
<heat>
the thing is, if you look under Makefile.in, if you dig through the configure libgcc/libstdc++ targets, you'll find a variable that specifies a bunch of build config for those subdirs
ebb has joined #osdev
<heat>
that build config for some reason redirects CC_FOR_TARGET to CC_FOR_BUILD
<heat>
(or HOST, i can't remember rn)
<heat>
libgcc tries to configure, has a CC of literally 'cc'
<heat>
and everything blows up
<heat>
in the sense that even if my arch is the same as the build triplet's, it picks up linux's 32-bit multilib and tries to build for that, and the build blows up when -m32 with 64-bit headers
<heat>
the only bug I can find in the bugzilla is a "hey, we really don't document cross toolchains or canadian crosses!" bug open since 2002
ebb has quit [Max SendQ exceeded]
ebb has joined #osdev
ebb has quit [Max SendQ exceeded]
ebb has joined #osdev
bauen1 has joined #osdev
vdamewood has joined #osdev
ebb has quit [Max SendQ exceeded]
ebb has joined #osdev
ebb has quit [Max SendQ exceeded]
ebb has joined #osdev
vinleod has joined #osdev
ebb has quit [Max SendQ exceeded]
ebb has joined #osdev
vdamewood has quit [Killed (zinc.libera.chat (Nickname regained by services))]
vinleod is now known as vdamewood
the_lanetly_052_ has joined #osdev
ebb has quit [Max SendQ exceeded]
ebb has joined #osdev
the_lanetly_052 has quit [Ping timeout: 256 seconds]
ebb has quit [Max SendQ exceeded]
ebb has joined #osdev
<heat>
well I think they broke it
ebb has quit [Max SendQ exceeded]
ebb has joined #osdev
<klange>
Have you tried a very heavy dose of CC=your-cross-gcc?
<klange>
I'm not sure if... even built libgcc in this, or if I just copied the one from the cross build.
<klange>
Er, from the host build.
ebb has quit [Max SendQ exceeded]
ebb has joined #osdev
the_lanetly_052 has joined #osdev
<heat>
doing --host = --target seemed to work, but it died at the same step where the libstdc++ build picks up the OG standard C++ lib headers and dies
the_lanetly_052_ has quit [Ping timeout: 240 seconds]
ebb has quit [Max SendQ exceeded]
the_lanetly_052_ has joined #osdev
ebb has joined #osdev
the_lanetly_052 has quit [Ping timeout: 252 seconds]
ebb has quit [Max SendQ exceeded]
<heat>
actually, building libstdc++ with any pre-existing compiler seems broken
ebb has joined #osdev
<klange>
heat: is your cross compiler properly sysrooted?
the_lanetly_052 has joined #osdev
<heat>
yes
<heat>
when I mean OG standard C++ lib headers, I mean the ones that are built with the toolchain
the_lanetly_052_ has quit [Ping timeout: 252 seconds]
<heat>
I've just tried doing a standard libstdc++/configure && make with linux, fails for the same reason
<klange>
Is your existing gcc older?
<heat>
no
ebb has quit [Max SendQ exceeded]
<heat>
you don't hit this error with normal gcc builds because they always use the newly built gcc, without a C++ stdlib installed
ebb has joined #osdev
ebb has quit [Max SendQ exceeded]
ebb has joined #osdev
Brnocrist has quit [Ping timeout: 256 seconds]
ebb has quit [Max SendQ exceeded]
ebb has joined #osdev
ebb has quit [Max SendQ exceeded]
the_lanetly_052_ has joined #osdev
ebb has joined #osdev
xenos1984 has quit [Quit: Leaving.]
the_lanetly_052 has quit [Ping timeout: 252 seconds]
ebb has quit [Max SendQ exceeded]
ebb has joined #osdev
the_lanetly_052 has joined #osdev
the_lanetly_052_ has quit [Ping timeout: 265 seconds]
heat has quit [Ping timeout: 265 seconds]
xenos1984 has joined #osdev
the_lanetly_052_ has joined #osdev
the_lanetly_052 has quit [Ping timeout: 240 seconds]
GeDaMo has joined #osdev
xenos1984 has quit [Quit: Leaving.]
bauen1 has quit [Quit: leaving]
pretty_dumm_guy has joined #osdev
sdfgsdfg has quit [Quit: ZzzZ]
bauen1 has joined #osdev
xenos1984 has joined #osdev
Brnocrist has joined #osdev
Vercas6 has quit [Remote host closed the connection]
Vercas has joined #osdev
Dreg has quit [Read error: Connection reset by peer]
<j`ey>
added (terrible) device tree support, so now a single build supports qemu/kvmtool, rather than having to rebuild :3
<zid>
nice
<heat>
why did you add (terrible) device tree support when you could've added (outstanding) device tree support?
<heat>
smh my head
<zid>
I wonder what the smallest thing you could do would be to detect qemu over kvm
<j`ey>
I didnt think of that 🤦
<zid>
some random bios byte maybe?
<heat>
zid, a csgo anticheat searched the firmware for QEMU strings lol
<zid>
nice
dutch has quit [Quit: WeeChat 3.3]
dutch has joined #osdev
dutch has quit [Quit: WeeChat 3.3]
CryptoDavid has quit [Quit: Connection closed for inactivity]
nyah has joined #osdev
kanton has joined #osdev
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
sprock has quit [Ping timeout: 256 seconds]
heat has quit [Read error: Connection reset by peer]
heat has joined #osdev
gog has quit []
kspalaiologos has quit [Quit: Leaving]
ckie has quit [Ping timeout: 250 seconds]
cookie has joined #osdev
x88x88x- has joined #osdev
dormito has quit [Ping timeout: 265 seconds]
gog has joined #osdev
dormito has joined #osdev
xenos1984 has quit [Quit: Leaving.]
bauen1 has quit [Ping timeout: 252 seconds]
nyah has quit [Ping timeout: 252 seconds]
<heat>
hah you can't canadian cross build gcc with clang because the build system needs to peek into multilib and gcc specs
Burgundy has joined #osdev
<heat>
i should really try to become self hosting
<heat>
i could dodge most build system issues
<heat>
it turns out most people compile software for their configuration and cross-everything isn't well supported
mahmutov has joined #osdev
sprock has joined #osdev
x88x88x- has quit [Ping timeout: 265 seconds]
xenos1984 has joined #osdev
<j`ey>
heat: you didnt want to try that patch from the bugzilla?
<heat>
j`ey: I tried it and it works
<j`ey>
oh good
<heat>
then I tried compiling every port I have with clang, gcc is the only package that fails
<j`ey>
oof
<gog>
defeat your competitor by not being buildable by it
<heat>
which is /OK/ but stupid since I want identical GCC and LLVM builds in CI
<heat>
it's buildable but not when doing a canadian cross lol
<heat>
the build system needs gcc spec and multilib info and instead of passing that information on through the build system, they need to invoke the compiler
<heat>
if you do a regular build, it invokes the compiler you've just built
<gog>
but in a canadian cross it has to invoke the "host" compiler
<heat>
if you do a canadian cross, it invokes the compiler you're using to compile stuff
<gog>
yeah
<heat>
exactly
<heat>
clang doesn't have GCC specs nor GCC multilib
<gog>
computers were a mistake
<heat>
toolchain bad
<heat>
rock good
<heat>
me like rock
<gog>
when you think about it computers are made from rocks
<j`ey>
heat: implement it in clang!
<gog>
and we burn combustible rocks or react fissile rocks to power them
<gog>
it's rocks all the way down
<gog>
we've never left the paleolithic
<heat>
j`ey: the solution would be to fix gcc's build system
<heat>
clang can't have specs nor gcc multilib (well, maybe you could make some sort of arrangement with multilib but that would be awkward)
<gog>
still can't build libsupc++ freestanding in-tree
<gog>
has to be carefully excised and built with kludges
xing_song1 has joined #osdev
xing_song has quit [Ping timeout: 265 seconds]
xing_song1 is now known as xing_song
dennis95 has quit [Quit: Leaving]
<zid>
okay fuck I am never doing that without gloves again
<zid>
I used a glass bottle with built in pipette to add some chili extract to my saucepan
<j`ey>
( ͡° ͜ʖ ͡°)
<zid>
my face is now burning from where I touched it afterwards
<j`ey>
damn too slow
<zid>
I washed my face with milk and that helped, until I got some in my eye..
bauen1 has joined #osdev
dutch has joined #osdev
<gog>
ol' milk eye
<eryjus>
zid, that sucks.
<junon>
zid: you need high fat soluable stuff. So full-fat milk, creams, oils somewhat help (probably not chili oil...) butter etc.
<junon>
just mix it and drown yourself in it
<junon>
I did that cutting up food for my parrot once. I should have read the label: "Magma Peppers"
<junon>
I figured "meh it's not going to hurt my hands will it? I don't need gloves"
<junon>
I learned a lesson that day
<gog>
spicy foods have taught me many lessons about life
<gog>
such as wash your hands and brush your teeth before retiring to bed with your dinner partner :|
<junon>
"it doesn't matter how alpha male, macho, beefcake-ey or a man's man you are, there is always a pepper hot enough to make you cry"
<zid>
junon: literally telling me to do what I already did, here
<junon>
zid: I know, I figured
<zid>
The part where I got milk-chili in my eye should possibly have been the tip-off
<junon>
I like to pile on unsolicited advice at every given moment
<junon>
:D
<junon>
zid: apply the stick of butter directly to your eye
<junon>
just like lip balm, but for the eye
<junon>
or like french cooking.
<zid>
might have helped
<zid>
harder to get butter in your eye
<gog>
if you don't have butter, foie gras will do
<zid>
no I only use that for washing my hands
sprock has quit [Ping timeout: 265 seconds]
sprock has joined #osdev
gog has quit []
<kingoffrance>
"Can you buy snack sized refill packs" that was one of the marketing things, ceo or someone ate the wax to show it was non-toxic
<kingoffrance>
xerox phaser or some such ( i never had one, just remember reading years ago)
<junon>
I might open up the build system today. Haven't decided yet.
<junon>
For my kernel.
<zid>
Is IRC really the place to announce your masochistic fetishes
<junon>
Actually I'm rather proud of it.
<Bitweasil>
If you've sworn off YouTwitFace, where else is there? :p
<junon>
It still needs a license and a bit of documentation as there is currently none.
<zid>
"Please send licencing enquiries in the form of massive bank transfers"
<junon>
I have an MIT variant with an added clause under legal review at the moment. But ultimately something I want to have OSI approved.
<junon>
To prevent someone from selling it without notifying them before the sale that they can obtain it freely.
<zid>
I prefer my clause
<j`ey>
junon: well they can onky obtain the unmodified version, right
<heat>
that sounds like it will turn into a GPL
<heat>
where vendors don't really comply
<heat>
oh, you want the source code? sure, just speak to this guy here, he's in charge of that, shame he only speaks mandarin :/
<junon>
Right. That only applies if the unmodified version is being sold verbatim. If you substantially change it, or include it in a larger body of work where the primary function isn't the software (e.g. you can't just wrap it in an HTTP server and call it a 'derivative work') then you must notify the users they can obtain it free of charge from its source location.
<junon>
Sorry, I worded that wrong. If you substantially change it/include it in a larger body of work, you do NOT have to notify.
dude12312414 has joined #osdev
<junon>
heat: doesn't need to be a copy of the source code, just instructs the users on how to obtain the source if you're selling it verbatim or without much added value.
<junon>
E.g. MIT as it stands use the same verbiage.
<heat>
Oracle v junon
<junon>
uses*
gog has joined #osdev
<junon>
OSS license cases rarely end up in court FWIW.
<junon>
They're most often settled.
<heat>
yes
<heat>
generally nobody cares
<junon>
Generally yes. Neither would I. I'm trying to prevent users getting scammed.
<zid>
mplayer had a huge wall of shame page for decades
<junon>
That's the spirit of the added clause. Nothing else about the license is modified from MIT.
<zid>
people using mplayer in embedded devices to play videos
<zid>
like portable dvd players
<j`ey>
junon: if theyre going to try 'scam' why would they follow the license?
<junon>
Because if they don't, they can be taken to court.
<junon>
Or taken offline, at least.
<junon>
Just because you obtained a gun illegally doesn't make murdering someone anything less than murder .
<heat>
if to get the GPL source code of your android phone you need to go to yulin, guangxi, china, ask Ben (who lives inside a volcano and speaks 15th century Chinese) for the source code that he will deliver to you under morse-code-encoded ASCII, people generally give up
<junon>
heat: that's a different clause
<junon>
You're comparing two different things.
<zid>
it's about oss licence enforcement
<zid>
it's nothing to do with the specific clause
<junon>
People abuse the GPL in such a way because they want to use GPL code in proprietary codebases without having to also disclose their own sources
<heat>
the point is that if the FSF and the software freedom conservancy can't enforce the GPL, neither can you
<junon>
And the GPL is way too lenient about how long they're allowed to do this.
<junon>
Sure they can
<zid>
>mplayer had a huge wall of shame page for decades
<zid>
hundreds of companies
<junon>
how long they're allowed to wait* I mean
jjuran has quit [Ping timeout: 256 seconds]
jjuran has joined #osdev
jjuran has quit [Remote host closed the connection]
jjuran has joined #osdev
Oli has joined #osdev
rustyy has quit [Quit: leaving]
rustyy has joined #osdev
xing_song has quit [Read error: Connection reset by peer]
xing_song has joined #osdev
sprock has quit [Ping timeout: 265 seconds]
sprock has joined #osdev
knebulae has joined #osdev
knebulae has quit [Client Quit]
knebulae has joined #osdev
GeDaMo has quit [Remote host closed the connection]
cookie is now known as ckie
dormito has quit [Quit: WeeChat 3.3]
<junon>
The site refuses to go back up :( was up a bit earlier but now it's completely down again
<junon>
I might do a wget and mirror the whole thing when it's back up.
<zid>
you can do that from archive.org already
<junon>
it mirrors an entire site?
<zid>
yea it just spiders t'internet all day making snapshots
<junon>
Not unless you ask it to.
<zid>
anything with static pages like a wookie is on it
<junon>
Oh yeah I guess it is pretty frequently saved
<zid>
it's not a subscription service, they just do it
<junon>
I know
<junon>
I didn't realize they'd automatically crawl the entire site by default though
<zid>
they follow robots.txt though
<junon>
I thought you had to submit a site through the archivebot
<zid>
You can do but I think it'll happily follow links to other domains
<zid>
else weird early 2000s blog posts nobody cares about wouldn't be there :p
sprock has quit [Ping timeout: 265 seconds]
<kazinsal>
chase made a brief post saying "I fixed it by giving the VPS more RAM" and then lo and behold, the VPS seems to have run out of RAM again...
<kazinsal>
I considered replying to it at the time saying "please give one or more of the active mods the keys to the castle so the site can actually be fixed" but I figure that's not my place
ahalaney has quit [Quit: Leaving]
<junon>
Suggesting it in a friendly manner might be a good idea. Remind Chase of the bus factor.
<zid>
sounds like a threat :P
<zid>
"Be a shame if you got hit by a bus, capishe?"
<junon>
"Chase I know you take the 207 line every morning at appx 8:31am. It'd suck if it swerved tomorrow, wouldn't it?"
Burgundy has quit [Ping timeout: 265 seconds]
<junon>
"The good thing with the LDT is that each task can have its own LDT and that the processor will automatically switch to the right LDT when you use hardware task switching."
<junon>
But hardware task switching is slow, is it not?
<junon>
because it saves all task state instead of the stuff that is actually necessary, correct?
<zid>
plus the microcode is just slow
<junon>
right so it's unclear when to use GDT vs LDT these days. GDT for the entire system, right? Just a single null entry at the beginning plus a single system-wide entry after that is what I've gathered
<junon>
but the ring3 descriptors changes per-task, right?
<junon>
change*
<zid>
which is the stack pointer loaded for an IRQ taken in ring3
<zid>
no need for them to
<zid>
they're only really used for the ring bits
<zid>
so you load 'the null selector that's got the cpl3 bits in it' or 'the null selector with the cpl0 bits in it' and that's about all you use the GDT for
<junon>
Still having trouble wrapping my head around this.
<zid>
You just throw that, and change CPL 00 to CPL 11 and you're done
<zid>
user programs use the cs where cpl=3, kernel uses cs where cpl=0
<zid>
the rest is all "this is code, code is not writeable"
<zid>
or "this is data, this is writeable"
<zid>
Nobody uses the segmentation bits in pmode typically, and long mode ignores them
<zid>
all the segment bases are 0, all the segment limits are FFFF so every program uses the same selectors
<junon>
Oh so the GDT stuff isn't to do virtual memory mapping at all?
<zid>
nope
<junon>
nor the LDT?
<zid>
that's paging, cr0.pg and cr3
<zid>
LDT I've never even used, I think it's more important in pmode
<junon>
Huh, okay.
<junon>
Thanks :D
<zid>
oh threading
<zid>
that's what LDT is for
<kazinsal>
I could maybe see the LDT being used for thread-local storage stuff in 32-bit protected mode
<zid>
lets you load a bunch of descriptors up for 'fs' to use for TLS
<zid>
yea exactly kaz
<kazinsal>
but in the far far future of x86-64 there's GSBASE
<zid>
gsbase isn't stock amd64 is it
<zid>
it's an extension that came later that I don't have, unless I'm confusing it for something else
<kazinsal>
I think they're amd64, one sec
<zid>
fsgsbase
<zid>
ivy bridge +
<kazinsal>
ah, that's when they added specific instructions
<kazinsal>
the MSRs have been there for longer
<zid>
STAR_MSR and crap is just normal syscall stuff you can use on any intel
sprock has joined #osdev
<kazinsal>
intel manual says the MSRs are available on all 64-bit platforms
<kazinsal>
MSR presence is dependent on CPUID 80000001:EDX[29], which is the flag for 64-bit support
<zid>
yea
<zid>
>STAR_MSR and crap is just normal syscall stuff you can use on any intel
<zid>
any idea why they're all called star something actually?
<kazinsal>
STAR is SYSCALL Target Address iirc
<zid>
STAR, LSTAR, CSTAR, FMASK
<zid>
FMASK makes sense at least..
<kazinsal>
LSTAR is Long (mode) STAR
<zid>
yea but why STAR
<zid>
silly target arress
<kazinsal>
CSTAR is Compatibility (mode) STAR, but interestingly it's not used because SYSCALL generates #UD in compatibility mode
<kazinsal>
SYSCALL
<zid>
oh TARget
<zid>
fuck me
<kazinsal>
yeah
<zid>
I got blindsided by sTAR spelling star :p
dormito has joined #osdev
mahmutov has quit [Ping timeout: 265 seconds]
<gog>
STAR_TREK
gog has quit [Quit: byee]
gog has joined #osdev
<klange>
< kazinsal> I considered replying to it at the time saying "please give one or more of the active mods the keys to the castle so the site can actually be fixed" but I figure that's not my place
<klange>
I sent an email much to the same effect.
<CompanionCube>
so you mean you actually said iot? :p
Alpha2023 has joined #osdev
<junon>
Yes
Alpha2023 has quit [Client Quit]
<junon>
I see
<junon>
so the GDT was this useless thing that Intel developed
<junon>
or, well, segmented memory in general
<junon>
and the president at the time threw a fit when AMD was like "meh yeah we don't need all that tbh"
<junon>
same goes for FS and GS.
<junon>
basically annoyed that his engineers spent his money designing something nobody ended up using
<bslsk05>
stackoverflow.com: assembly - What is the "FS"/"GS" register intended for? - Stack Overflow
<zid>
You can use it, and really simple stuff does use it
<zid>
but nothing major does
<junon>
yeah
<zid>
They're actually really good if what you wanna do is run 4 programs or so in a round robin sched, and link them all to address 0
<zid>
then use segments to spread them out without having to go full paging
<zid>
most things are complicated enough to need 'full paging'
<junon>
Oh so they share the same address space, they're just segmented differently
<junon>
?
<zid>
It does solve the problem it sets out to solve though, how do you run 'n' programs on a CPU without them all needing to organize in advance who links to which address
<zid>
virtual memory is 'multiple address spaces'
<zid>
that's paging
<zid>
segmentation is not virtual addressing, nor paging, segment calcs produce linear addresses
<zid>
not virtual addresses
Alpha2023 has quit [Client Quit]
lanodan has quit [Ping timeout: 264 seconds]
lanodan has joined #osdev
<junon>
Ahh okay. Can you even make segmented tasks memory isolated in such a case, though?
<junon>
I thought you could only isolate memory via paging
<zid>
yes, there's a base and a *limit*
<zid>
if you exceed it, you get a.. segfault
<zid>
rather than a page fault
<junon>
aha
<junon>
Makes sense
<kazinsal>
in the year of our lord two thousand twenty one though you generally set and forget your selectors
<junon>
So in paging mode, cs and ds are the only things that matter? es/fs/gs don't?
<gog>
the ronco global descriptor rotisserie
Alpha2023 has joined #osdev
<kazinsal>
ES matters as it's implicitly used in some instructions
<gog>
you set it.... AND FORGET IT
<gog>
only real late night kids will get this joke
<kazinsal>
FS and GS in long mode have different uses -- you set them with a flat selector but write a base address to an MSR to sort of implement a kind of quasi-segmentation
<Bitweasil>
And there's the whole SWAPGS way of interacting with them too.
<gog>
yes
<kazinsal>
additionally the SysV ABI uses GS in 32-bit mode and FS in 64-bit mode for thread-local storage
<junon>
but they're ultimately OS-defined from what I read.
<junon>
right?
<Bitweasil>
Yeah.
<Bitweasil>
You can use them for anything the hardware will let you, if you want.
<Bitweasil>
You can use them to store your leftover digits of Pi, if you want.
<junon>
Right so it boils down to your compiler needing to agree on what they're used for for the ABI your OS uses.
<junon>
To do the proper codegen.
<Bitweasil>
Yeah. Or just having the functions to use them.
<junon>
Gotcha
<junon>
"It is traditional and generally good to have your kernel mapped in every user process" why?
<junon>
The entire kernel? And all of its memory? I don't see the point.
<zid>
well you might need to call any function
<zid>
Effectively, when a program is 'running' and does a syscall, it's temporarily running portions of the kernel with full ring0 privledges :o
<bslsk05>
en.wikipedia.org: Kernel page-table isolation - Wikipedia
<zid>
But yea, modern side channel attacks have made it a thing to map a few, then remap the rest from the few as needed and other nonsense
sdfgsdfg has joined #osdev
rustyy has quit [Quit: leaving]
<junon>
Ahhhh
<junon>
So a syscall isn't actually calling some opaque subroutine in the kernel
rustyy has joined #osdev
<junon>
it's literally a temporary priv escalation and a call?
<zid>
yup
<zid>
the idea being HOPEFULLY you carefully wrote your kernel code such that it can't do thigns you weren't expecting
<zid>
that's called a kernel exploit
<j`ey>
junon: usually (always?) it's via an interrupt/exception
<zid>
except the exact case we're talking about where it isn't
<j`ey>
int 0x80 / syscall_enter / svc or whateevr
<junon>
call gates are the other exception, right? but nobody those
<junon>
nobody uses those*
<zid>
Hopefully you wrote it so it can only modify some list in a known way (sys_close), or modify some list of running tasks (execve) blah blah
<zid>
and not so that it can keep its ring0 status without returning :p
<junon>
Interesting, I had syscalls all wrong in my head for some reason
<zid>
It's a cute way to look at it, at least
<zid>
you could also think of it as the kernel is running, and temporarily runs the user code in a sandbox, until the sandbox does a 'ret' which is actually a 'syscall' and you inspect its arguments at the time it did the 'ret' to determine what to do *for* the sandbox before you then call back into it
<zid>
but that's less interesting and more confusing
<junon>
If there's no use of syscalls, though, then is the mapping necessary?
<zid>
IRQs
<j`ey>
a program cant do much without a syscall
<zid>
You can set up a polled shared memory page another thread checks on
<zid>
if you don't wanna do syscalls
<junon>
right yeah
<zid>
but you still need to deal with IRQs somehow, and if you don't allow them when programs are running you'll probably wanna dedicate an entire cpu core to IRQs that stays in the kernel context
<zid>
but this is all.. really weird stuff
<junon>
Ah okay so IRQs are the same thing
<junon>
but instead of a syscall triggering the jump, it's the CPU
<zid>
yup
<junon>
and a gate or whatever, the two IRQ chips in the case of the x86, right?