| 24 Oct 2024 |
| jopejoe1 (4094@epvpn) set a profile picture. | 07:34:53 |
| 25 Oct 2024 |
| @lholh:matrix.org joined the room. | 03:54:54 |
| @lholh:matrix.org left the room. | 22:42:19 |
| 27 Oct 2024 |
Artturin | emily: Wrt impure path filtering | 18:46:24 |
Artturin | meson> Command line: `gcc '/build/source/b 1783ea7834/meson-private/tmpy4oyt501/testfile.c' -o '/build/source/b 1783ea7834/meson-private/tmpy4oyt501/output.exe' -D_FILE_OFFSET_BITS=64 -O0 -Wl,--fatal-warnings -Wl,-L/usr` -> 1
meson> stderr:
meson> skipping impure path /usr
meson> collect2: error: ld returned 1 exit status
meson> -----------
meson> Compiler for C supports link arguments -Wl,-L/usr: NO
| 18:46:27 |
Artturin | lol | 18:46:29 |
Artturin | meson build fails | 18:46:33 |
emily | so | 18:46:50 |
Artturin | Had this open in a another workspace | 18:46:51 |
Artturin | * Had this open in a another workspace so missed it | 18:46:54 |
emily | Randy Eckenrode had a nice idea to have wrappers add an -isysroot to compiler commands that would contain an empty /usr/lib, /usr/local/lib, etc. etc., all the common impure global paths | 18:47:17 |
emily | at least on macOS toolchains that would apparently stack on top of any other -isysroot and mean -L/usr/lib etc. would be harmless nops | 18:47:46 |
emily | I'm not sure if it behaves the same way on Linux, but if it does, we could get most of the same purity benefits without the gross CLI filtering. | 18:48:04 |
emily | it would also let us drop the -nostdlibinc patch we use for Clang. | 18:48:18 |
emily | in particular it seems kind of bad that in this case it's not even testing what it thinks it is… | 19:52:22 |
Artturin | In reply to @emilazy:matrix.org Randy Eckenrode had a nice idea to have wrappers add an -isysroot to compiler commands that would contain an empty /usr/lib, /usr/local/lib, etc. etc., all the common impure global paths We need tests first | 21:43:28 |
emily | sure | 21:45:08 |
emily | though our current purity filters have a bunch of holes so they're not exactly exhaustively-tested either :) | 21:45:32 |
emily | and on Linux of course it only applies to dev shells since there's the sandbox, so it's not quite as critical. | 21:45:53 |
emily | (and on Darwin the purity hacks are causing us more problems than they solve, so I'd personally be happy to gamble with a cleaner approach that seems like it ought to work.) | 21:46:11 |
@trofi:matrix.org | At least on linux the attempt to use non-standard sysroot broke DT_RUNPATH lookups for libraries not explicitly mentioned in the linking process: https://github.com/NixOS/nixpkgs/pull/213185. Transitive libraries are searched in sysroot only and things break. | 21:55:38 |
@trofi:matrix.org | -isysroot might not be as devastating, but AFAIU it only affect include search prefix while you probably want library search change as well. | 21:58:07 |
Artturin |
This option is like the --sysroot option, but applies only to header files (except for Darwin targets, where it applies to both header files and libraries). See the --sysroot option for more information.
| 21:58:55 |
Artturin | * isysroot
This option is like the --sysroot option, but applies only to header files (except for Darwin targets, where it applies to both header files and libraries). See the --sysroot option for more information.
| 21:59:04 |
@trofi:matrix.org | TIL | 22:00:03 |
@trofi:matrix.org | I wonder how transitive library dependencies are handled there. | 22:00:29 |
emily | I didn't know Darwin handled it differently but that makes sense… | 22:00:54 |
emily | in a messed up kind of way | 22:00:59 |
emily | In reply to @trofi:matrix.org At least on linux the attempt to use non-standard sysroot broke DT_RUNPATH lookups for libraries not explicitly mentioned in the linking process: https://github.com/NixOS/nixpkgs/pull/213185. Transitive libraries are searched in sysroot only and things break. what kind of changes do you think we might need to make something like this work for us? we could patch in a semantics change, but that's kinda gross. | 22:01:58 |
@trofi:matrix.org | I don't know :) | 22:03:18 |