2024/05/02

Newest at the top

2024-05-02 18:52:20 +0200 <hseg> Right. I'm testing using a statically linked cabal-install and a ghcup-versioned ghc
2024-05-02 18:51:19 +0200 <int-e> hseg: I remember using Arch's ghc to build my own, then uninstalling the Arch one. So it was good enough for bootstrapping.
2024-05-02 18:50:23 +0200euphores(~SASL_euph@user/euphores)
2024-05-02 18:47:25 +0200califax(~califax@user/califx)
2024-05-02 18:46:53 +0200califax(~califax@user/califx) (Remote host closed the connection)
2024-05-02 18:46:42 +0200philopsos(~caecilius@user/philopsos)
2024-05-02 18:43:11 +0200euphores(~SASL_euph@user/euphores) (Quit: Leaving.)
2024-05-02 18:41:40 +0200califax(~califax@user/califx)
2024-05-02 18:39:41 +0200 <tomsmeding> I concede there is something to be won here
2024-05-02 18:39:31 +0200 <tomsmeding> unless you want to either make your life very difficult, or do the same and also evangelise in the haskell community, I'd recommend skipping PIE :p
2024-05-02 18:39:08 +0200 <tomsmeding> right
2024-05-02 18:39:02 +0200 <hseg> (eg am depending on cabal/stack for dependency resolution)
2024-05-02 18:38:50 +0200 <hseg> but not for much else
2024-05-02 18:38:45 +0200 <hseg> yeah, so I integrate my haskell-related stuff *slightly* in arch so pacman can track the files
2024-05-02 18:38:17 +0200 <hseg> just missed your last three messages
2024-05-02 18:36:35 +0200 <tomsmeding> logs link in topic if necessary
2024-05-02 18:36:21 +0200 <tomsmeding> O.o
2024-05-02 18:36:16 +0200 <hseg> Apologies, computer crashed
2024-05-02 18:36:06 +0200hseg(~gesh@77.137.75.224)
2024-05-02 18:35:59 +0200 <tomsmeding> bye :p
2024-05-02 18:35:45 +0200hseg(~gesh@77.137.75.224) (Read error: Connection reset by peer)
2024-05-02 18:34:19 +0200 <tomsmeding> "cabal install cabal-fmt"
2024-05-02 18:34:16 +0200 <tomsmeding> hseg: that's what everyone here does, ignore anything haskell-related in the arch package repository and just use cabal/stack/whatever
2024-05-02 18:33:24 +0200 <int-e> But I imagine you can still build GHC such that it builds the base libraries with -fPIE. So that's the tangent I'm on right now... but it will take a while to try.
2024-05-02 18:33:18 +0200 <hseg> int-e: indeed, which is why I've been building all my haskell programs statically on Arch, sidestepping their entire haskell ecosystem
2024-05-02 18:32:48 +0200 <tomsmeding> the answer seems to be, nothing is set up for that so you're on your own?
2024-05-02 18:32:24 +0200 <tomsmeding> hseg's question now is "even if I link statically, can I at least get the security benefits of PIE"
2024-05-02 18:32:19 +0200 <int-e> <s>Ask me about Arch</s>
2024-05-02 18:32:10 +0200 <tomsmeding> we've gone over that :)
2024-05-02 18:31:59 +0200 <int-e> The reason why Haskell libraries are generally linked statically is that there's no ABI compatibility between recompiled versions of the same library.
2024-05-02 18:31:55 +0200 <tomsmeding> but yeah sorry, I thought I knew enough to help but I don't
2024-05-02 18:31:14 +0200 <int-e> hseg: I'm on my own tangent which may or may not intersect with yours, sorry.
2024-05-02 18:31:06 +0200 <hseg> ah
2024-05-02 18:30:51 +0200 <tomsmeding> int-e was referring to the -fPIE note
2024-05-02 18:30:34 +0200 <hseg> I'm confused -- why is it linking statically?
2024-05-02 18:30:31 +0200tomsmedinggives up
2024-05-02 18:30:19 +0200califax(~califax@user/califx) (Remote host closed the connection)
2024-05-02 18:29:56 +0200 <tomsmeding> I see
2024-05-02 18:29:40 +0200 <int-e> That's when trying to link statically; with -dynamic -pie I get a PIE executable that's dynamically linked. (Just a simple hello world, no `cabal` involved)
2024-05-02 18:28:43 +0200euleritian(~euleritia@dynamic-176-001-008-240.176.1.pool.telefonica.de)
2024-05-02 18:28:30 +0200noumenon(~noumenon@113.51-175-156.customer.lyse.net) (Read error: Connection reset by peer)
2024-05-02 18:27:41 +0200 <hseg> https://0x0.st/XX23.txt
2024-05-02 18:27:17 +0200euleritian(~euleritia@dynamic-176-001-008-240.176.1.pool.telefonica.de) (Read error: Connection reset by peer)
2024-05-02 18:27:17 +0200 <int-e> And the trouble you'll run into is that the base libraries won't be compiled with the requisite -fPIE flag.
2024-05-02 18:25:15 +0200euleritian(~euleritia@dynamic-176-001-008-240.176.1.pool.telefonica.de)
2024-05-02 18:25:14 +0200 <tomsmeding> I added a non-boot dependency to be sure that that works too, in principle
2024-05-02 18:25:01 +0200 <tomsmeding> I can compile an executable that gives the aforementioned string in file(1) output with just `-pie -dynamic`, nothing else
2024-05-02 18:24:54 +0200 <hseg> tried --ghc-options='-pie -fPIE', didn't work
2024-05-02 18:24:31 +0200 <int-e> s/--enable-shared/-fPIE/ I think (different from -pie, you need that for linking)
2024-05-02 18:24:29 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds)