devsummit:201309:toolchainandbuild

  • Incremental builds with bmake and so on (BSDCam holdover) (punted to BSDCan)
  • Review GPL in base status (BSDCam holdover)
  • Brief comparison of NetBSD (build.sh) vs buildworld/installworld/release
  • External toolchain status
    • GCC Support

Review of GPLinBase

  • Recent changes for editorial intent (pro-permissive, not anti-GPL)
  • linker (mclinker)
    • Is it feature complete?
      • linker scripts supported, not sure of exact feature set?
      • include directive (hps)
  • diff
    • Recollection that the issue with OpenBSD's diff was wide char support
  • binutils
    • FreeBSD stuff has been upstreamed
    • Need a detailed breakout and to decide which pieces we should take from where
  • dtc
    • Done except for removing GPL version from tree
  • gcc (in tree)
    • esoteric architecture support needs to be upstreamed
    • format extensions patch needed for cross ports
  • libgcc
    • undwinder → libunwind
    • ~60% done
  • groff
    • roff papers → to doc repo
    • Some ports install things that mandoc won't render, but groff does
      • bapt@ to add hook to find ports that do not work with mandoc
  • gdb
    • gone by 11
    • Should be building lldb by default by 10.1

NetBSD build.sh, build

  • Some discussion about build.sh vs alternative approaches to bootstrapping build tools
    • Needs to be more organized with pre-prep by FreeBSD and NetBSD people to be highly useful
    • NO_ROOT needs to be better documented

External Toolchain

Mostly about status of Warner's work to support GCC.

  • 4.9 is target for patches. Estimate at ~1500 lines of relevant patches.
    • our tree (loc) :
      • modernize x86 bulk of patches not needed in newer versions (5000)
      • backported and relicensed gcc bugfixes (2500)
      • FreeBSD specific architecture changes (2000)
      • printf extensions (150)
  • make issues due to gcc differences
    • how gcc –sysroot support works still unclear
    • -B differs in meaning
  • make format extensions a COMPILER_FEATURE
  • Should have a way to include a .mk file to describe external toolchain: TOOLCHAIN= <foo>.mk
  • Need to document external toolchain
  • add ports impact (column), e.g. gperf, texinfo to GPLinBase (bapt)
  • Break out binutils in GPLinBase (brooks, emaste)
  • Follow up with DES re diff status (gavin)
  • Move roff papers to doc repo (???)
  • Add ports infrastructure to detect invalid man pages for groff depend (bapt)
  • Have a kernel build session at BSDCan (brooks)
  • Merge architecture specific gcc patches upstream (imp, etc)
  • make WITH(OUT)_FORMAT_EXTENSIONS a COMPILER_FEATURE (brooks)
  • Need to document external toolchain support (brooks, imp)
  • Need cross gcc ports (imp)
  • Should figure out a standardizable way to implemnt format extensions as #pragmas (theraven)
  • devsummit/201309/toolchainandbuild.txt
  • Last modified: 2021/04/25 10:00
  • by JethroNederhof