Commit Graph
100 Commits
Author SHA1 Message Date
John Ericson 2295533f43 Merge pull request #29424 from obsidiansystems/slight-haskell-cleanup
haskell infra, ghc: Slight cleanup
2017-09-15 12:12:47 -04:00
John Ericson 0d12d040e7 Merge pull request #29402 from obsidiansystems/binutils-output-ref
treewide: Fix some references to binutils
2017-09-14 18:51:12 -04:00
John Ericson 12452178e8 Merge pull request #29381 from obsidiansystems/autoreconf-hook
autoreconfHook: Simplify by avoiding `findInputs`
2017-09-14 13:16:53 -04:00
John Ericson d2f4084eb9 Merge pull request #29380 from obsidiansystems/eval-fix
bcachefs-tools: Make eval more robust
2017-09-14 12:54:18 -04:00
John Ericson d94c7f5d3b Merge pull request #29349 from Ericson2314/harden-bootstrap
treewide: Do not limit hardenging because gcc 4.9 in bootstrap
2017-09-14 10:31:08 -04:00
John Ericson 349a09228e Merge pull request #29246 from LnL7/clang-stdenv
clang-stdenv: move libstdcxxHook to cc-wrapper
2017-09-13 16:21:41 -04:00
John Ericson 8fccaa284d Merge pull request #29282 from obsidiansystems/soext
lib, treewide: Add `*Platform.extensions` and use it where possible
2017-09-13 11:20:06 -04:00
John Ericson 40e917d35d Merge pull request #29023 from obsidiansystems/deps-reorg
misc pkgs: Reorganize dependencies ahead of #26805
2017-09-05 18:10:32 -04:00
John Ericson 5b6d78194c Merge pull request #29028 from obsidiansystems/cross-cleanup
misc pkgs: Clean up cross
2017-09-05 13:59:50 -04:00
John Ericson 252b36a28d misc pkgs: Recategorize some dependencies 2017-09-05 11:37:10 -04:00
John Ericson 7483832263 Merge pull request #28978 from obsidiansystems/fix-eval
Fix eval
2017-09-04 11:38:28 -04:00
John Ericson 0a944b345e Merge pull request #28557 from obsidiansystems/binutils-wrapper
Binutils-wrapper: Init by refactoring out of cc-wrapper
2017-09-03 10:37:27 -04:00
John Ericson b891d75e69 Merge pull request #28799 from orivej/stdenv-setup
stdenv-setup: fix substituteAll with set -eu
2017-09-03 10:26:39 -04:00
John Ericson 0cdbd2d662 Merge pull request #28806 from orivej/mkDerivation
mkDerivation: fix hardening flags check
2017-08-31 21:35:38 -04:00
John Ericson 46d6fecf78 Merge pull request #28770 from obsidiansystems/remove-wrapper-hooks
cc-wrapper: Remove deprecated parameters
2017-08-31 20:03:57 -04:00
John Ericson 29c4294f85 Merge pull request #28798 from obsidiansystems/darwin-no-nativeTools
darwin-stdenv: Don't use `nativeTools`
2017-08-31 19:33:27 -04:00
John Ericson 22cd889a28 Merge pull request #28766 from obsidiansystems/gettext
gettext: libiconv should be a buildInput
2017-08-30 17:11:35 -04:00
John Ericson 5790ae3ce0 Merge pull request #28646 from obsidiansystems/apple-native-build-inputs
apple misc pkgs: `buildInputs` -> `nativeBuildInputs`
2017-08-28 20:06:31 -04:00
John Ericson 42e639066b Merge pull request #28556 from obsidiansystems/cc-wrapper-nix-cleanup
cc-wrapper: Cleanup of Nix
2017-08-26 17:48:34 -04:00
John Ericson 2e7a390212 Merge pull request #28057 from obsidiansystems/stdenv-set-u
stdenv-setup: use `set -u`
2017-08-25 11:19:58 -04:00
John Ericson 3964990a3f Merge pull request #28519 from obsidiansystems/linux-headers-improve
linux-headers: Improve derivation, removing cross arg
2017-08-24 11:35:04 -04:00
John Ericson 46930ef3e6 Merge pull request #28391 from obsidiansystems/gcc-configure-platforms
gcc: Use `configurePlatforms` to control --build, --host, and --target
2017-08-23 15:47:24 -04:00
John Ericson 9884a3b17a Merge pull request #28374 from obsidiansystems/binutils-arm
binutils: Pass --build --host on non-arm
2017-08-23 14:24:04 -04:00
John Ericson 19de1f537e haskell infra: Make sure packages get custom stdenv
One of the goals of 74f5fe5 was to allow passing in a custom stdenv,
which would be used for genericBuilder's `mkDerivation` call. That does
work, but if packages takes `stdenv` as an parameter for any reason,
they'll get the default one instead. This change remedies it.
2017-08-22 16:00:21 -04:00
John Ericson b6014cc463 Merge pull request #28415 from bnikolic/fix/ld-wrapper-set-u
cc-wrapper: Empy array workaround for native stdenv
2017-08-21 11:58:24 -04:00
John Ericson 1bd2b32ff8 Merge pull request #28381 from obsidiansystems/cc-wrapper-docs
doc: Describe CC Wrapper in more detail
2017-08-20 15:50:59 -04:00
John Ericson 5baea8f0eb Merge pull request #28373 from obsidiansystems/stdenv-extra-inputs
stdenvs: Distinguish between `extraBuildInputs` and `extraNativeBuildInputs`
2017-08-20 12:06:38 -04:00
John Ericson 2bbd1d877b perl-ExtUtils-LibBuilder: Use the C compiler to link 2017-08-18 15:08:26 -04:00
John Ericson b190c06e32 Merge pull request #28322 from Ericson2314/darwin-boot
darwin stdenv: Float `persistentN` bindings into per-stage `let`s
2017-08-18 09:04:41 -04:00
John Ericson 9289365627 Merge pull request #28304 from obsidiansystems/stdenv-extra-inputs
stdenvs: Distinguish between `extraBuildInputs` and `extraNativeBuildInputs`
2017-08-16 16:52:40 -04:00
John Ericson 63439f8a11 Merge pull request #28269 from obsidiansystems/cc-wrapper-set-u
cc-wrapper: Improve `set -u` compliance
2017-08-15 15:14:56 -04:00
John Ericson d119385b2e Merge pull request #28079 from lheckemann/setup-typo-fix
stdenv: fix typo in setup.sh
2017-08-09 18:21:31 -04:00
John Ericson b949f30858 Merge pull request #27672 from obsidiansystems/cc-wrapper-elegant
cc-wrapper: Hygiene and `set -u`
2017-08-07 03:09:10 -04:00
John Ericson 609ed492e2 Merge pull request #27942 from obsidiansystems/breaking-changelog
17.09 release-notes: New breaking change: cc-wrapper exports more env vars
2017-08-04 15:01:52 -04:00
John Ericson fdd07f62e8 Merge pull request #27879 from obsidiansystems/cc-wrapper-shellcheck
cc-wrapper: Pass shellcheck and other cleanups
2017-08-04 14:19:56 -04:00
John Ericson e84c717df6 Merge pull request #27921 from mdorman/emacs-wrapper-fix
Fix emacs wrapper expression to honor bash array use
2017-08-04 10:07:06 -04:00
John Ericson f1d48ca6ba Merge pull request #27859 from adisbladis/revert_27427
Revert "buildenv: read propagated-user-env-packages line-by-line"
2017-08-03 11:17:34 -04:00
John Ericson 9b10fcce2f Add myself to CODEOWNERS, and use tab consistently 2017-07-31 19:38:16 -04:00
John Ericson eeed1814dc cc-wrapper-test: Use $CXX else the C++ std lib won't be on the include path 2017-07-31 17:02:56 -04:00
John Ericson a9dd855894 cc-wrapper-test: Don't use assert 2017-07-31 17:02:56 -04:00
John Ericson 539dcb8e27 cc-wrapper-test: Forgot to extern "C" now that main is C++ 2017-07-31 17:02:56 -04:00
John Ericson f671b85fb2 cc-wrapper: Beef up sierra tests to actually use functions 2017-07-31 17:02:56 -04:00
John Ericson 1cd74ac70a cc-wrapper: Make sure symbol tables of child delegators is not empty
As described in https://github.com/NixOS/nixpkgs/issues/18461, MacOS no
longer accepts dylibs which only reexport other dylibs, because their
symbol tables are empty. To get around this, we define an object file
with a single "private extern" symbol, which hopefully won't clobber
anything.
2017-07-31 17:02:56 -04:00
John Ericson 8ce4780eff Merge pull request #27650 from obsidiansystems/unbreak-stdenv
Unbreak stdenv
2017-07-26 13:23:12 -04:00
John Ericson 21136311c4 Merge pull request #27415 from obsidiansystems/cc-wrapper-prefix-binutils
cc-wrapper: Always export environment variables for binutils
2017-07-16 11:21:39 -04:00
John Ericson 3739858571 cc-wrapper: Use new bash uppercase subsitution syntax in setup hook
While this requires newer bash, stdenv's setup.sh now does across the
board anyways. This way is more concise.
2017-07-15 20:33:10 -04:00
John Ericson 7d95391f6a Merge pull request #27407 from obsidiansystems/null-configure-flags
mkDerivation: Fix errors from #27365
2017-07-15 15:56:29 -04:00
John Ericson 9e28e56f20 Merge pull request #27368 from obsidiansystems/cc-wrapper-interpreter
cc-wrapper: Unify and improve dynamic linker flag logic
2017-07-14 17:26:35 -04:00
John Ericson 1ebb059932 Merge pull request #27365 from obsidiansystems/smaller-stdenv-cross-adaptor
stdenv: Move some logic from cross adapter to stdenv proper
2017-07-13 19:29:38 -04:00
John Ericson ea9af6e3bd Merge pull request #27336 from obsidiansystems/stdenv-setup-cleanup
Stdenv setup misc cleanups
2017-07-13 18:41:33 -04:00
John Ericson a889454869 Merge pull request #27284 from obsidiansystems/prop-lines
stdenv: Store one package per line in nix-support/propagated-*
2017-07-11 14:33:23 -04:00
John Ericson 5059b6307a Merge pull request #27281 from obsidiansystems/lib-powerpc
lib: Add isPowerPC predicate, and fix family name
2017-07-10 11:16:41 -04:00
John Ericson 89fcb63326 Merge pull request #27179 from obsidiansystems/platforms-from-stdenv
Define {build,host,target}Platform in stdenv
2017-07-07 14:49:55 -04:00
John Ericson f5364122b5 Merge pull request #27215 from obsidiansystems/stdenv-harden
Harden stdenv in two misc ways
2017-07-07 12:48:51 -04:00
John Ericson f2f50aa985 Merge pull request #27045 from vcunat/meta-refactor-2-rebased
stdenv: Refactor meta checks
2017-07-07 12:35:50 -04:00
John Ericson e57a220f81 stdenv, swift: Use local fd in is* bash functions for hygiene 2017-07-07 11:40:07 -04:00
John Ericson c53449ce57 Merge pull request #26881 from obsidiansystems/cross-hashbreak
Make hash-breaking cleanups avoided in #26007
2017-06-30 10:12:05 -04:00
John Ericson dc9f69c260 Merge pull request #26948 from obsidiansystems/stdenv-map
stdenv: Simplify dependency code
2017-06-29 18:02:21 -04:00
John Ericson ad8d8fb2f5 stdenv: Simplify dependency code
This is a bit simpler now, but more importantly it scales better when I
double the number of sorts of dependencies as part of my cross
compilation work.
2017-06-29 17:45:08 -04:00
John Ericson eb052edd6f Merge pull request #26946 from obsidiansystems/wxmsw-fix
wxMSW: Fix syntax --- travis eval did not catch
2017-06-28 22:39:36 -04:00
John Ericson e1faeb574a Merge pull request #26884 from obsidiansystems/purge-stdenv-cross
Purge stdenv cross
2017-06-28 21:39:16 -04:00
John Ericson 099b83f90d libxslt: Don't use stdenv.cross 2017-06-28 00:55:21 -04:00
John Ericson 8ca8293dbc libxml2: Don't use stdenv.cross 2017-06-28 00:51:59 -04:00
John Ericson b686fd1570 Merge pull request #26021 from corngood/cygwin-wip
Cygwin fixes
2017-06-26 15:04:40 -04:00
John Ericson a24031317a Merge pull request #26798 from obsidiansystems/ios-cross-stdenv
ios-cross: Just properly use the cc-wrapper
2017-06-23 15:00:19 -04:00
John Ericson afd2bdbad2 Merge pull request #26007 from obsidiansystems/cc-wrapper-prefix
Get rid of gcc-cross-wrapper
2017-06-23 11:22:34 -04:00
John Ericson f43ae985a6 ios-cross: Just properly use the cc-wrapper
No other downstream derivations are needed anymore.
2017-06-22 17:56:12 -04:00
John Ericson 7c754b1e3b mpg123: Modernize and fix for cross
Do not even think about configureFlags unless in cross, to avoid hash
breaking when not in cross.
2017-06-22 17:53:55 -04:00
John Ericson 502902f1c6 lynx: Fix for cross
Needed C toolchain targeting build platform
2017-06-22 17:53:55 -04:00
John Ericson bef622a4e8 unzip: Fix for cross 2017-06-22 17:53:54 -04:00
John Ericson 54089620f5 libpmc: Fix for cross by disabling check
Check phase is now only disabled *by default* for cross, but this
package was forcing it unconditionally.
2017-06-22 17:53:54 -04:00
John Ericson ff6ab1b3c4 pcre: Modernize and fix cross 2017-06-22 17:53:54 -04:00
John Ericson b93e6034d5 libsigsegv: Fix for cross by disabling check
Check phase is now only disabled *by default* for cross, but this
package was forcing it unconditionally.
2017-06-22 17:53:54 -04:00
John Ericson af8d1a4ace binutils: Fix build != host == target 2017-06-22 17:53:54 -04:00
John Ericson 2e337fe969 libelf: Modernize and fix for cross 2017-06-22 17:53:53 -04:00
John Ericson c54c3cb5ce mpfs: Fix for cross by disabling check
check phase is now only disabled by *default* for cross, but mpfr
was forcing it always.
2017-06-22 17:53:53 -04:00
John Ericson f75ad79375 bash: Modernize derivation, hopefully fixing cross compilation 2017-06-22 17:53:53 -04:00
John Ericson ef0b07e94a gnu patch: Fix for cross 2017-06-22 17:53:53 -04:00
John Ericson 7bdacad8b3 ed: Modernize and fix for cross 2017-06-22 17:53:53 -04:00
John Ericson 05b3c87d9d busybox: Modernize and fix cross 2017-06-22 17:53:53 -04:00
John Ericson 8b22e497f2 vim: Modernize derivation, hopefully fixing cross 2017-06-22 17:53:53 -04:00
John Ericson 38b2bd2f28 dropbear: Remove now-unneeded crossAttrs 2017-06-22 17:53:52 -04:00
John Ericson 12795a7068 misc: Remove almost all uses of stdenv.{ccCross,binutils} 2017-06-22 17:53:52 -04:00
John Ericson 29c4d7f505 podofo: Simplify derivation
Bunch of junk for linux and cross compilation that's no longer needed
2017-06-22 17:53:52 -04:00
John Ericson f55ccbb60f xbursttools: Fix eval at least so tests pass 2017-06-22 17:53:52 -04:00
John Ericson fc42ec0a5c mingw-w64: Depend on own headers derivation
Without this, a `#include <float.h>` resolves incorrectly. Either the
headers weren't on the include path at all, or they only were for
local, not system, imports.

What's weird is this used to not be a problem. Not sure what other
change in e.g. cc-wrapper would affect this.
2017-06-22 17:53:51 -04:00
John Ericson bb7067f882 mingw-w64: Clean up, especially clarifying staging 2017-06-22 17:53:51 -04:00
John Ericson c2e2152afc cc-wrapper: Port over finding of dynamic linker from gcc-cross-wrapper
At the next break, we can deduplicate and go for the best of both
worlds.
2017-06-22 17:53:36 -04:00
John Ericson 0aee847858 cc-wrapper: Make the cross compiler use a crossEnvHook
This is a hack until stdenv's setup.hs gets overhauled
2017-06-22 17:52:29 -04:00
John Ericson e0492d58a6 cross stdenv adaptor: Disable checkPhase by default
Before gcc-cross-wrapper did this unconditionally
2017-06-22 17:52:28 -04:00
John Ericson 594d264205 cross stdenv adaptor: Support --host --build --target across the board
Packages get --host and --target by default, but can explicitly request
any subset to be passed as needed. See docs for more info.

rustc: Avoid hash breakage by using the old (ignored)
dontSetConfigureCross when not cross building
2017-06-22 17:52:28 -04:00
John Ericson 9bfd03eff7 cross stdenv adaptor: Remove ccCross binutils attrs and binutils extra buildDepends
It now has the correct wrapped tools and nothing else is needed.
2017-06-22 17:52:28 -04:00
John Ericson 121e7d9335 gcc-cross-wrapper: Remove in favor of newly-cross-supporting cc-wrapper 2017-06-22 17:52:28 -04:00
John Ericson 8a7433fca4 cc-wrapper: Temporarily got to great lengths to avoid mass-rebuild
Eventually we should avoid this "pre-wrapping" and just update those
files in nixpkgs. This mass-rebuild change is best done along with
those needed to reduce the disparity between native and cross (i.e.
making native the "identity cross").
2017-06-22 17:52:28 -04:00
John Ericson 0f0383394d cc-wrapper: Salt environment variables with LLVM triples
We now (on cross) require per-target flag interposition by putting the
triple in the names of the relevant environment variables, e.g:

export NIX_arm_unknown_linux_gnu_CFLAGS_COMPILE=...

The wrapper also has a `infixSalt` attribute (and "_" prefixed and
suffixed variants) to assist downstream packages.

Note how that the dashes are replaced to keep the identifier valid.
Using names like this allows us to keep the settings for different
compilers seperate.

I think it might be even better to use names like `NIX_{BUILD,HOST}...`
using the platform's role rather than the platform itself, but this
would be more work as the previous stages' tools would have to be re-
wrapped to take on their new role. I therefore didn't do this for now,
but that route should be thoroughly explored in the future.
2017-06-22 17:52:28 -04:00
John Ericson 04a3cad968 cc-wrapper: Add support for no libc whatsoever 2017-06-22 17:52:27 -04:00
John Ericson d70e7263f4 cc-wrapper: Simplify and correct logic to chose dynamic linker library 2017-06-22 17:52:27 -04:00
John Ericson 459f1c60f5 cc-wrapper: Learn about target prefixes
This is first step towards getting rid of gcc-wrapper-cross
2017-06-22 17:52:27 -04:00
John Ericson c4ba2e3ef6 cc-wrapper: Remove stdenv.is* for targetPlatform.is*
Modify bootstrapping stdenvs to make sure `targetPlatform` also passed.
2017-06-22 17:52:27 -04:00
John Ericson f571ad4595 Merge pull request #26775 from obsidiansystems/ghc-head-docs
ghcHEAD: Actually split docs into their own output
2017-06-22 17:11:46 -04:00