aboutsummaryrefslogtreecommitdiff
path: root/build2/cc/link-rule.cxx
AgeCommit message (Collapse)AuthorFilesLines
2018-11-19Finalize workaround for backwards modification time issueBoris Kolpackov1-12/+13
2018-11-16Test workaround theory for backwards mtime issueBoris Kolpackov1-5/+4
2018-11-15Instrument cc:link_rule with backwards mtime detection/diagnosticsBoris Kolpackov1-0/+20
2018-11-02Use rule-specific variables for backlink valueBoris Kolpackov1-4/+4
2018-11-01Add support for rule-specific variables, use to fix cc.type data raceBoris Kolpackov1-2/+2
2018-10-25Redesign cc::compiler_id to make variant customizableBoris Kolpackov1-2/+4
2018-10-25Fix race in rule synthesis logicBoris Kolpackov1-6/+35
2018-10-18Fix bug in binless library linking logicBoris Kolpackov1-11/+5
2018-09-07Fix binless logic some moreBoris Kolpackov1-2/+2
2018-09-06Fix issues with interaction between binless logic and Windows DLLsBoris Kolpackov1-10/+16
2018-09-04Check for binless-ness after seeing through to import library memberBoris Kolpackov1-11/+16
This makes a difference for installed libraries since the DLL location might be unknown (empty path).
2018-09-04Initial work on binless (binary-less aka header-only) library supportBoris Kolpackov1-259/+361
2018-08-25Implement missing pieces in utility libraries supportBoris Kolpackov1-48/+197
In particular, we can now build static libraries out of utility libraries.
2018-08-22Rework code to sidestep Clang 3.8 on FreeBSD 11.0 mis-compilationBoris Kolpackov1-2/+1
2018-08-21Print 'ar' instead of 'ld' when building static librariesBoris Kolpackov1-1/+1
2018-08-14Use thin archives if available for utility librariesBoris Kolpackov1-10/+44
Thin archives are supported by GNU ar since binutils 2.19.1 and LLVM ar since LLVM 3.8.0.
2018-06-28Implement support for excluded and ad hoc prerequisitesBoris Kolpackov1-13/+37
The inclusion/exclusion is controlled via the 'include' prerequisite-specific variable. Valid values are: false - exclude true - include adhoc - include but treat as an ad hoc input For example: lib{foo}: cxx{win32-utility}: include = ($cxx.targe.class == 'windows') exe{bar}: libs{plugin}: include = adhoc
2018-06-14Fix typoBoris Kolpackov1-1/+1
2018-06-13Open depdb earlier to detect and diagnose missing output directoryBoris Kolpackov1-2/+5
2018-06-12Add built-in support for Windows module definition files (.def)Boris Kolpackov1-5/+47
2018-06-12Remove output if ld failsBoris Kolpackov1-5/+7
This helps link.exe which leaves broken the output around.
2018-06-09Minor diagnostics improvementBoris Kolpackov1-1/+6
2018-05-25Fix link rule to synthesize identical dependency for clean and updateBoris Kolpackov1-11/+44
2018-05-19Update copyright yearKaren Arutyunov1-1/+1
2018-05-18Pass ignore_dangling flag to dir_iterator() ctorKaren Arutyunov1-1/+4
2018-05-02Add support for different backlinking modes, use for Windows DLL assemblyBoris Kolpackov1-0/+14
2018-04-26Implement forwarded configurations and backlinkingBoris Kolpackov1-9/+33
2018-03-21Strip out_root when hashing linker input pathsBoris Kolpackov1-7/+8
This allows moving out_root of simple projects (no rpath, -I$out_root, or similar) without causing a re-link which we use for testing.
2018-02-16Fix group link-up race in cc::link_rule::match()Boris Kolpackov1-5/+14
2018-02-16Fix group link-up raceBoris Kolpackov1-9/+8
2018-02-14Don't ignore objX{} and bmiX{} prerequisites in cc::link_ruleBoris Kolpackov1-16/+14
2018-02-08Update/cleanup comment documentation for inner/outer operation semanticsBoris Kolpackov1-2/+2
2018-02-07Initial work for default update outer operationBoris Kolpackov1-2/+31
While update still uses the old "all update rules update all their prerequisites" assumption, test and install have been fixed not to rely on this.
2018-02-03Get rid of action rule override semanticsBoris Kolpackov1-0/+2104
Instead we now have two more or less separate match states for outer and inner parts of an action.