FreeBSD Developer Summit: Toolchain Working Group
June 8, 2016 (Wednesday), 13:00-14:30, 15:00-16:00
DMS (Room TBD)
Overview
We will discuss ongoing work, and ideas for improvements to, the tool chain in the FreeBSD base system.
If you would like to participate, contact the working group chairs below and CC devsummit@. You will be then added to this page. Please include a list of things you want to talk about or the areas you are interested in. This helps us in planning the session and to bring people together with common interests.
It may be possible to bring in people who cannot attend in person via video conference or chat tools. Notes during the session will be published later on for the whole community to see what we discussed.
Goals
In general, there are two areas we would like to cover:
- Discussions of ongoing work that is complex enough, requires coordination, or requires architectural decisions that would benefit from face-to-face discussion among a larger group.
- Exchange of ideas for upcoming work to gauge community interest, solicit feedback, look for conflicts/overlap, and generally keep everyone informed.
In particular, we would like to cover the following topics. This is not an exhaustive list and if you feel there is something missing that you want to talk about, contact one of the session chairs and we will include your topic here. Note that the numbering of the topics does not represent an ordering or importance indication of any kind, but rather a reference to the second table with the "topic of interest" column.
Topics
# |
Topic Description |
1 |
Architecture Support |
1.1 |
MIPS |
1.2 |
PowerPC |
1.3 |
Sparc |
1.4 |
RISC-V |
2 |
Tools |
2.1 |
lld |
2.2 |
external toolchain |
2.3 |
GDB / LLDB |
3 |
LTO |
4 |
Build-ID |
Architecture Support
Clang/llvm, lld, and lldb are at different levels of maturity on platforms supported by FreeBSD. They are generally speaking well supported on 32- and 64-bit x86 and arm, somewhat less so on ppc, mips, sparc, riscv.
MIPS -> Sean Bruno did a fair amount of work on this but there are still blockers. Warner Losh has concerns about the viability of LLVM IAS (for MIPS) in FreeBSD, it will be nice to identify possible blockers, report bugs, maybe fixing them at BSDCan.
PowerPC -> Investigation needed to see where things stand.
Sparc -> Apparently NetBSD’s getting close to being able to build with Clang, but not aware of a broad interest.
Tools LLD -> Davide and many others have been working upstream, Ed is currently experimenting and reported an almost working buildworld. The kernel doesn't link yet but many people are working on it so it's very likely it's gonna be ready for BSDCan. The goal of this session is to analyze missing pieces, and explore future directions.
Ed has a document on the state of buildworld-with-lld here: https://docs.google.com/document/d/1GcTY7kDKmvSYFAkJdUjLbHwoMHZlpbGG49wdWuaEnrg/edit?usp=sharing
External toolchain -> Clang is the default compiler in FreeBSD but still there have been many complaints by others who want to build with GCC/Open64/TCC/TenDRA/${your_favourite_compiler}. This is an increasing concern because LLVM support for some archs FreeBSD might care about is behind (e.g. Sparc64). Adrian talked about this a lot in the past but still there's no concrete plan yet.
GDB/LLDB -> John Baldwin worked on updating kgdb to 7.9 which currently lives in ports. There's a patch floating around for kLLDB but it's not commit-ready. Do we need to ship a debugger in base?
Other LTO -> Linux has tried building the kernel with LTO for quite a while, http://www.halobates.de/kernel-lto.pdf . With a modern linker in-tree, this is possible and probably it's worth a try.
Build-id -> A modern linker will allow us to make use of build-id for automatic core file to crashing binary matching, locating debug files, etc. How do we deploy this?
Attending
In order to attend you need register for the developer summit as well as by email for the session and be confirmed by the working group organizer. Follow the guidelines described on the main page or what you received by email. For questions or if in doubt ask the session chairs.
Please do NOT add yourself here. Your name will appear automatically once you received the confirmation email. You need to put your name on the general developer summit attendees list though.
# |
Name |
Username / Affiliation |
Topics of Interest |
Notes |
1 |
davide@ |
|
Session chair |
|
2 |
emaste@ |
|
Session chair |
|
3 |
bdrewery@ |
|
|
|
4 |
Rafael Espindola |
Sony |
|
|
5 |
jhibbits@ |
LLVM* on PowerPC*, external GPlv3 toolchain |
|
|
6 |
andrew@ |
|
|
|
7 |
brooks@ |
MIPS, External toolchain, lld |
|
|
8 |
DavidABright |
Dell |
lldb, gdb to lldb transition |
|
9 |
wma@, Semihalf |
kgdb form arm/armv8 |
|