28 Jul 2024 |
artemist | Is there a reason we build compiler-rt twice on FreeBSD? Upstream clang hardcodes `-lgcc --as-needed -lgcc_s --no-as-needed` link arguments so the `libclang_rt.builtins` library should never be used | 17:52:02 |
artemist | We provide both libgcc.a and libgcc_s.so in freebsd.libc and they're better on some architectures because they're built with FreeBSD headers, e.g. they're required unless we patch out CPU feature detection on aarch64-freebsd | 18:03:30 |
30 Jul 2024 |
John Ericson | @artemist:mildlyfunctional.gay: oops I thought I added a thing so we only built it once? | 17:30:01 |
John Ericson | Before I merged the PR? | 17:30:31 |
John Ericson | Also
```
/build/compiler-rt-src-18.1.8/compiler-rt/lib/builtins/cpu_model/x86.c:900:3: error: call to undeclared function 'static_assert'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
900 | static_assert(sizeof(Features) / sizeof(Features[0]) == 4, "");
| ^
/build/compiler-rt-src-18.1.8/compiler-rt/lib/builtins/cpu_model/x86.c:939:3: error: call to undeclared function '__assert'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
939 | assert(__cpu_model.__cpu_vendor < VENDOR_MAX);
| ^
/build/compiler-rt-src-18.1.8/compiler-rt/lib/builtins/cpu_model/x86.c:24:32: note: expanded from macro 'assert'
24 | #define assert(e) ((e)?(void)0:__assert(__FUNCTION__,__FILE__,__LINE__,#e))
|
``` | 17:30:43 |
John Ericson | I noticed this failure building freebsd static, I think it's new because got almost the same failure with OpenBSD and that was working a few weeks ago | 17:32:01 |
John Ericson | (also with LLVM 18) | 17:32:09 |
artemist | We might just want to add FreeBSD headers to compiler-rt, then remove it from freebsd.libc | 18:36:56 |
artemist | We'd need to add another link to libcompiler_rt.a , but that's not a huge problem | 18:37:16 |
John Ericson | artemist: well with the current tricks we might already be using the LLD cyclic linking? | 18:48:41 |
John Ericson | I will try to see what changed in recently | 18:48:48 |
John Ericson | It is not good to rely on undefined symbols, but I am curious | 18:49:05 |
artemist | static_assert is defined in FreeBSD headers to _Static_assert , which is a clang keyword, so it shouldn't mean anything for linking | 18:53:31 |
artemist | I've mostly been messing with compiler-rt becuase libc on aarch64-freebsd needs compiler-rt, but compiler-rt doesn't require libc | 18:54:16 |
John Ericson | artemist: will I see your compiler-rt work if I go look at open PRs? | 18:58:04 |
John Ericson | ...I guess that ' | 18:58:13 |
John Ericson | * ...I guess that's something I can swner myself ;) | 18:58:19 |
John Ericson | * ...I guess that's something I can answer myself :) | 18:58:26 |
artemist | No, it's part of aarch64 stuff that needs cleanup | 18:58:31 |
artemist | I can try to split it into its own PR today though | 18:59:11 |
John Ericson | OK | 18:59:57 |
John Ericson | I just saw your 1 open PR and merged it, btw | 19:00:04 |
artemist | Thanks, that's a dependency for aarch64 | 19:08:09 |
artemist | hm... We can't entirely remove compiler-rt from FreeBSD libc because libgcc_s uses some files from compiler_rt and some files from outside it. We could remove llvmPackages.compiler-rt but I don''t know if the llvm maintainers want that | 20:28:58 |
artemist | Optimally we'd figure out how to use llvmPackages.compiler_rt for sanitizers but not builtins, though I'm not sure if all the FreeBSD sanitizer stuff is properly upstream | 20:36:03 |
1 Aug 2024 |
hexa | https://lwn.net/ml/all/2831c5a6-cfbf-4fe0-b51c-0396e5b0aeb7@app.fastmail.com/ | 01:54:12 |
hexa |
[RFC} arm architecture board/feature deprecation timeline
| 01:54:18 |
hexa | *
[RFC} arm architecture board/feature deprecation timeline
| 01:54:22 |
| leoisverycool joined the room. | 06:18:21 |
leoisverycool | have we gotten it run on a toaster yet | 06:19:22 |