John Ericson
6979a72840
Merge pull request #112449 from angerman/angerman/response-files
...
Add response file support when compiling with clang
2021-03-06 11:24:32 -05:00
Moritz Angermann
60c5cf9cea
Update pkgs/build-support/cc-wrapper/cc-wrapper.sh
...
Co-authored-by: Matthew Bauer <mjbauer95@gmail.com>
2021-02-26 10:07:27 +08:00
Moritz Angermann
11b4d6c633
responsie file logic
2021-02-09 09:46:47 +08:00
Jörg Thalheim
61bbbcd1af
bintools-wrapper: skip dynamic linker for static binaries
2020-12-27 16:42:11 +01:00
Vladimír Čunát
363175cd99
Revert "bintools-wrapper: skip dynamic linker for static binaries"
...
This reverts commit ccfd26ef14
.
These toolchain changes are too problematic, so reverting for now; see
https://github.com/NixOS/nixpkgs/pull/107086#issuecomment-749196366
2020-12-21 22:27:48 +01:00
Jörg Thalheim
ccfd26ef14
bintools-wrapper: skip dynamic linker for static binaries
...
Currently we set dynamic-linker unconditionally. This breaks
however some static binaries i.e. rust binaries linked against musl.
There is no reason we should set an elf interpreter for static binaries
hence this is skipped if `-static` or `-static-pie` is either passed to
our cc or ld wrapper.
2020-12-14 15:42:54 +00:00
Jörg Thalheim
96092dc936
stdenv: make -nostdinc work as intended
...
Right now we add glibc to search path also -nostdinc was provided,
which breaks projects providing their own gcc.
2020-07-23 08:39:46 +01:00
John Ericson
f3f7612a40
C++ Compilers: Systematize handling of standard libraries
2020-06-22 04:24:44 +00:00
John Ericson
1ac5398589
*-wrapper; Switch from infixSalt
to suffixSalt
...
I hate the thing too even though I made it, and rather just get rid of
it. But we can't do that yet. In the meantime, this brings us more
inline with autoconf and will make it slightly easier for me to write a
pkg-config wrapper, which we need.
2020-05-12 00:44:44 -04:00
Craig Hall
0b7494ed2b
cc-wrapper: add (partial) support for clang -cc1
...
We need this for intel-compute-runtime, see #63705
2019-09-01 16:53:06 +01:00
Matthew Bauer
d180cb9850
cc-wrapper: make machine configuration configurable
...
It is useful to make these dynamic and not bake them into gcc. This
means we don’t have to rebuild gcc to change these values. Instead, we
will pass cflags to gcc based on platform values. This was already
done hackily for android gcc (which is multi-target), but not for our
own gccs which are single target.
To accomplish this, we need to add a few things:
- add ‘arch’ to cpu
- add NIX_CFLAGS_COMPILE_BEFORE flag (goes before args)
- set -march everywhere
- set mcpu, mfpu, mmode, and mtune based on targetPlatform.gcc flags
cc-wrapper: only set -march when it is in the cpu type
Some architectures don’t have a good mapping of -march. For instance
POWER architecture doesn’t support the -march flag at all!
https://gcc.gnu.org/onlinedocs/gcc/RS_002f6000-and-PowerPC-Options.html#RS_002f6000-and-PowerPC-Options
2019-04-20 20:05:51 -04:00
Vladimír Čunát
73959b68c2
Re-Revert "Merge #44221 : default for NIX_CXXSTDLIB_COMPILE"
...
This reverts commit fd81a2ecb6
.
Moved from master to staging.
2018-07-31 09:48:16 +02:00
John Ericson
4f7cdd35d5
Merge pull request #40139 from obsidiansystems/modular-setup-hooks
...
treewide: Modular setup hooks
2018-05-07 15:32:10 -04:00
John Ericson
8b0fce8cb1
{bintools,cc}-wrapper: Factor out role accumulation logic
2018-05-07 15:10:45 -04:00
John Ericson
0884027ef5
Revert "Revert "Merge pull request #28029 from cstrahan/hardening-fix""
...
This reverts commit 6c064e6b1f
, reapplying
PR #28029 which was supposed to have gone to staging all along.
2018-04-11 14:00:13 -04:00
Matthew Bauer
6c064e6b1f
Revert "Merge pull request #28029 from cstrahan/hardening-fix"
...
This reverts commit 0dbc006760
, reversing
changes made to cb7f774265
.
Should go into staging.
2018-04-10 19:07:27 -05:00
Charles Strahan
806edaa0a2
hardening: ld wrapper changes, setup-hook, etc
2018-03-06 19:21:10 -05:00
Charles Strahan
634c748050
hardening: initial cross support
2018-03-06 18:03:13 -05:00
Charles Strahan
fc46895e86
hardening: allow user supplied flags to override
...
Put hardening flags before user supplied flags.
2018-03-06 00:30:09 -05:00
John Ericson
8e557ed2c5
bintools-wrapper: Init
...
Factor a bintools (i.e. binutils / cctools) wrapper out of cc-wrapper. While
only LD is wrapped, the setup hook defines environment variables on behalf of
other utilites.
2017-12-13 16:08:18 -05:00
John Ericson
4f869bccc1
cc-wrapper: Don't treat "-" alone as a flag
...
It means stdin, and is morally equivalent to passing a file. e.g.
$ echo 'int main(void) { return 0; }' | gcc -x c -
will compile and link a binary.
2017-12-13 16:08:17 -05:00
John Ericson
fc7ed86915
cc-wrapper: Pull variable mangler into utils.sh
...
In preparation for splitting out bintools-wrapper
2017-12-13 16:08:13 -05:00
Nikolay Amiantov
5f3b84e979
cc-wrapper: disable POSIX compatibility
2017-11-05 12:19:37 +02:00
John Ericson
fdbda216b1
cc-wrapper: Clean up dynamic linking with x86 multilib
...
It's better layering to do everything in ld-wrapper. Also, use numeric
comparisons for `relocatable`.
2017-09-28 20:05:26 -04:00
John Ericson
0d3d2a01d2
cc-wrapper: Add set -x
tracing for NIX_DEBUG >= 7
2017-09-26 11:24:19 -04:00
John Ericson
127a5f3357
treewide: Use (( "${NIX_DEBUG:-0}" >= 1) ))
consistently
2017-09-26 11:24:19 -04:00
Eelco Dolstra
ec8d41f08c
Revert "Merge pull request #28557 from obsidiansystems/binutils-wrapper"
...
This reverts commit 0a944b345e
, reversing
changes made to 61733ed6cc
.
I dislike these massive stdenv changes with unclear motivation,
especially when they involve gratuitous mass renames like NIX_CC ->
NIX_BINUTILS. The previous such rename (NIX_GCC -> NIX_CC) caused
months of pain, so let's not do that again.
2017-09-07 12:51:21 +02:00
John Ericson
40e9b2a7e6
binutils-wrapper: Init
...
Factor a binutils wrapper out of cc-wrapper. While only LD is wrapped,
the setup hook defines environment variables on behalf of other
utilites.
2017-09-01 11:44:55 -04:00
John Ericson
1f5807d760
cc-wrapper: Pull variable mangler into utils.sh
...
In preparation for splitting out binutils-wrapper
2017-09-01 11:44:54 -04:00
John Ericson
94c0267fc1
cc-wrapper: Clean up dynamic linking with x86 multilib
...
It's better layering to do everything in ld-wrapper.
2017-09-01 11:44:54 -04:00
John Ericson
46fd4bcb14
cc-wrapper: Remove {START,EXEC}_HOOK
...
These are no longer used by anything
2017-08-31 13:54:07 -04:00
John Ericson
822a8d0148
cc-wrapper: Remove redundant hardening
...
GCC just passes `-z ...` flags to ld unaltered, and they are already
passed to LD anyways. On the other hand, `-pie` affects gcc behavior
too.
2017-08-30 17:53:42 +02:00
John Ericson
3c9cf282bb
cc-wrapper: Improve set -u
compliance
2017-08-14 14:44:32 -04:00
John Ericson
2493454e13
cc-wrapper: Use set -u
throughout
...
Now is an opportune time to do this, as the infixSalt conversion in
`add-flags.sh` ensures that all the relevant `NIX_*` vars will be
defined even if empty.
2017-08-07 03:05:51 -04:00
John Ericson
9f1e009975
cc-wrapper: Unconditionally use @infixSalt@ accross the board
...
This is basically a sed job, in preparation of the next commit. The
rules are more or less:
- s"NIX_(.._WRAPPER_)?([a-zA-Z0-9@]*)"NIX_\1@infixSalt@_\2"g
- except for non-cc-wrapper-specific vars like `NIX_DEBUG`
2017-08-07 03:05:50 -04:00
John Ericson
6463fd3d7e
cc-wrapper: Pass shellcheck and other cleanups
...
In many cases, this involved taking @orivej's and @edolstra's recent
ld-wrapper improvements, and applying then elsewhere.
2017-08-04 12:47:29 -04:00
Eelco Dolstra
aa4a92d2df
cc-wrapper/ld-wrapper: Minor speedup in string concatenation
...
There is still a O(n) pattern match in ld-wrapper, so we should
probably rewrite that code to use associative arrays.
2017-07-24 14:48:26 +02:00
Shea Levy
225602d9f2
Merge branch 'response-files' of git://github.com/corngood/nixpkgs into staging
2016-10-31 10:07:30 -04:00
David McFarland
1ad1edbb32
cc-wrapper: expand response files
...
Fixes #11762
2016-10-31 01:12:07 -03:00
obadz
24a9183f90
Merge branch 'hardened-stdenv' into staging
...
Closes #12895
Amazing work by @globin & @fpletz getting hardened compiler flags by
enabled default on the whole package set
2016-08-22 01:19:35 +01:00
Nikolay Amiantov
24f695ffaa
cc-wrapper: handle -nostdinc{++,}
2016-08-17 13:19:46 +03:00
Robin Gloster
d020caa5b2
Merge remote-tracking branch 'upstream/master' into hardened-stdenv
2016-04-18 13:49:22 +00:00
Robin Gloster
3e68106afd
Merge remote-tracking branch 'upstream/master' into hardened-stdenv
2016-04-07 21:52:26 +00:00
Vladimír Čunát
d1df28f8e5
Merge 'staging' into closure-size
...
This is mainly to get the update of bootstrap tools.
Otherwise there were mysterious segfaults:
https://github.com/NixOS/nixpkgs/pull/7701#issuecomment-203389817
2016-04-07 14:40:51 +02:00
Tomasz Kontusz
6c9ce23c00
cc-wrapper: Fix a typo in param parsing ( close #14401 )
2016-04-02 20:51:48 +02:00
Vladimír Čunát
ab15a62c68
Merge branch 'master' into closure-size
...
Beware that stdenv doesn't build. It seems something more will be needed
than just resolution of merge conflicts.
2016-04-01 10:06:01 +02:00
Robin Gloster
f60c9df0ba
Merge remote-tracking branch 'upstream/master' into hardened-stdenv
2016-03-28 15:16:29 +00:00
Nikolay Amiantov
119c287c71
cc-wrapper: use Bash arrays properly
2016-03-24 21:13:11 +03:00
Nikolay Amiantov
0c6db0ca48
cc-wrapper: add option to skip flags for native optimizations
2016-03-24 20:16:17 +03:00
Nikolay Amiantov
87607af7a1
cc-wrapper: add C++-specific paths if -x c++
is passed
2016-03-14 06:58:18 +03:00