Default DCC to LWTOOLS#25
Open
DrPitre wants to merge 8 commits into
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This updates DCC so the modern native build and default target workflow use LWTOOLS (
lwasm/lwlink) instead of the legacyrma/rlinktoolchain, while retaining a compatibility switch for the old flow.The main behavioral change is that
dcc file.cnow emits LWTOOLS-compatible objects and links throughlwlinkby default. Existing-Lusage remains accepted, and-Rselects the legacy RMA/RLINK path.What Changed
Make LWTOOLS the default DCC backend
lwasm/lwlinkdriver support indcc.-Lthrough todcc68when generating LWTOOLS-compatible assembly..oinputs as already-built LWTOOLS objects instead of assuming.rintermediates.lwlinkso package makefiles can calldccend-to-end.-Roption.Improve native macOS buildability
system()status handling so failed child commands are reported correctly.Add a localized macOS install script
install-dcc-macos.shbuilds and installs into$HOME/dccby default./usr/localunless the caller overridesPREFIX.Build target libraries for the LWTOOLS path
lwasm/lwar.chmod/chownassembly issues exposed by LWTOOLS.qsort()tolibc.afor packages that expect it.Compatibility Notes
dcc file.cnow defaults to LWTOOLS output and linking.dcc -L file.cstill works and is effectively explicit-default mode.dcc -R file.crequests the old RMA/RLINK flow..rassumptions are intentionally removed from the default path;.ois the default object suffix for LWTOOLS builds.Validation Performed
$HOME/dccusing the new install script.dccto build NitrOS-9 third-party packages includinged,uemacs, anduucpbbthrough the new default LWTOOLS flow.Review Focus
The biggest area to review is the default backend flip in
Source/Compiler/DCC/dcc.c: argument handling, suffix handling, and the link command construction. The KLibc build changes are intended to support that flow without requiring package makefiles to know aboutlwasm/lwlinkdirectly.