Commit graph

43 commits

Author SHA1 Message Date
John Ericson
4651407654 darwin stdenv: Make stdenv.cc, not stdenv, bring in libcxx
stdenvNoCC should not inject any C++ standard library, just as it
doesn't inject any C standard library. stdenv still does, but only
indirectly through stdenv.cc. Wrapped clangs can be simplified now that
they don't need to worry about clobbering CoreFoundation when replacing
the C++ standard library implementation.

This generally-good cleanup should assist with debugging some C++
failures in #26805.
2017-12-25 19:32:07 -05:00
John Ericson
2bba929062 bintools-wrapper: Import separately from cc-wrapper 2017-12-13 16:08:18 -05:00
John Ericson
e65259f00c LLVM: Get binutils plugin header from libbfd 2017-11-13 08:46:13 -05:00
aszlig
44cb95a234
llvmPackages/libc++: Fix build against glibc 2.26
This is very similar to what we had in bb0b0822ef.

The xlocale.h header is no longer existing in glibc version 2.26, so we
need to avoid including it.

I've tested building against all of the libcxx attributes of LLVM 3.5,
3.7, 3.8, 3.9, 4 and 5.

All of them succeeded except version 3.5, which failed because of an
unrelated issue (build of libc++abi has failed, one of its
dependencies), so I only verified whether the patch applies cleanly.

Signed-off-by: aszlig <aszlig@nix.build>
Cc: @vcunat
2017-11-08 22:08:11 +01:00
Vladimír Čunát
e0a36522a7
llvm 3.7--4: fixup build with glibc-2.26 2017-11-07 09:17:00 +01: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
bf7b521500 treewide: Fix some references to binutils
- Compiler's shouldn't use `binutils.dev` as that doesn't yet exist
   with a cross binutils.

 - Last two `binutils.binutils` which weren't reverted
2017-09-14 18:12:54 -04:00
Daiderd Jordan
ad486c48a6
llvm-packages: apply cc-wrapper/stdenv changes to older versions 2017-09-13 20:51:52 +02:00
Jörg Thalheim
b6bacc4bb2 llvmPackage_{3.4,3.5,3.7,3.8,3.9}: fix output of llvm-config
llvm-config is a tool to output compile and linker flags, when compiling against llvm.

The tool however outputs static library names despite libllvm is build
as shared library on nixos. This was fixed for llvm 3.4, 3.5 and 3.7.

For llvm 3.8 and 3.9 it printed the library extension twice (.so.so).
This was fixed in 4.0 and the patch is backported to 3.8 and 3.9 in
this pull request.

```
$ for i in 34 35 37 38 39; do echo "\nllvm-$i"; nix-shell -p llvmPackages_$i.llvm --run 'llvm-config --libnames'; done

llvm-34
libLLVMInstrumentation.so libLLVMIRReader.so libLLVMAsmParser.so
...

llvm-35
libLLVMLTO.so libLLVMObjCARCOpts.so libLLVMLinker.so libLLVMipo.so
...

llvm-37
libLLVMLTO.so libLLVMObjCARCOpts.so libLLVMLinker.so libLLVMBitWriter.so
...

llvm-38
libLLVM-3.8.1.so

llvm-39
libLLVM-3.9.so
```

fixes #26713
2017-06-20 10:22:06 +01:00
Jörg Thalheim
7d12608069 llvmPackages_3.7: fix libnames output of llvm-config
see also 4c4f50ce76
2017-06-16 16:23:42 +01:00
Vladimír Čunát
c1a9dc3d37
Merge branch 'master' into staging 2017-03-23 13:31:28 +01:00
Dan Peebles
3263d02626 xcbuild: assorted fixes and cleanups
This is in preparation for the LLVM 4 upgrade (which gets more strict
about e.g., return false in xcbuild itself) and also for using xcbuild
more extensively in the Darwin stdenv bootstrap process, which is why I
killed the unnecessary gcc dependency in the toolchain. llvm-cov pretends
to be gcov anyway, so we're fine.
2017-03-21 23:22:15 -04:00
Dan Peebles
972f51a2da llvmPackages_37.libcxxabi: fix with more recent versions of libc++
The build breaks on libc++ 3.8 and above, which hinders our upgrade to
LLVM 4 for the Darwin stdenv.
2017-03-19 20:51:58 -04:00
Will Dietz
947c26972b LLVM: Fix licensing metadata, closes #22679. (#22681)
* All projects are available under NCSA license,
  other than dragonegg.
* "Runtime" projects are dual-licensed under
  both NCSA and MIT:
  libc++, libc++abi, compiler-rt
* I don't mention MIT for compiler-rt as
  we only build it as part of LLVM.
2017-02-11 23:13:29 +01:00
Daiderd Jordan
27660cfdc0
Merge branch 'master' into staging 2017-01-04 01:42:26 +01:00
Daiderd Jordan
538d1b688a stdenv: bootstrap cmake and python on darwin 2017-01-03 18:01:47 +01:00
Dmitry Kalinkin
e9d60c5636
libc++3.7: fix to use with modern compilers
Modern compiler will issue a following error whenever '#include <string>'
is done:

/nix/store/yxpwamjdapjcp53mmsdh1j2c9bc26h4k-libc++-3.7.1/include/c++/v1/string:1938:44:
error: 'basic_string<_CharT, _Traits, _Allocator>' is missing exception specification 'noexcept(is_nothrow_copy_constructible<allocator_type>::value)'
basic_string<_CharT, _Traits, _Allocator>::basic_string(const allocator_type& __a)
                                           ^
/nix/store/yxpwamjdapjcp53mmsdh1j2c9bc26h4k-libc++-3.7.1/include/c++/v1/string:1326:40:
note: previous declaration is here
    _LIBCPP_INLINE_VISIBILITY explicit basic_string(const allocator_type& __a)
                                       ^
1 error generated.

This happens because modern clang is more strict about checking
exception specification for forward declaration and definition.

http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/string?r1=242056&r2=242623&diff_format=h
2016-12-30 16:16:14 -05:00
Vladimír Čunát
b67ae8b33c
llvmPackages*.lldb: fixup input by disabling libedit
Fixes #20773.  https://llvm.org/bugs/show_bug.cgi?id=28898
Of course, feel free to find a better solution.

I love this copy&paste :-/
2016-11-28 19:02:15 +01:00
Frederik Rietdijk
7077a270bf Merge remote-tracking branch 'upstream/master' into HEAD 2016-10-26 13:06:43 +02:00
Shea Levy
be02229f06 Add libcxxStdenv attribute to recent llvm package sets 2016-10-25 10:29:40 -04:00
Frederik Rietdijk
284f22d19e lldb 3.7: use python2
just like llvm 3.7
2016-10-18 23:16:10 +02:00
Frederik Rietdijk
adbaed0815 llvm 3.7: use python2 2016-10-18 23:16:03 +02:00
Dan Peebles
d8a0307a5d [darwin.stdenv] Fix to work on Sierra
This reinstates the libSystem selective symbol export machinery we used
to have, but locks it to the symbols that were present in 10.11 and skips
the actual compiled code we put into that library in favor of the system
initialization code. That should make it more stable and less likely to
do weird stuff than the last time we did this.
2016-10-12 00:08:13 -04:00
Aneesh Agrawal
fcee1d0b28
Remove redundant -DCMAKE_BUILD_TYPE=Release flags
Since commit 183d05a0 in 2012, this is the default.

fixes #18000
2016-10-01 16:13:41 +02:00
Joachim Fasting
2fe8a98244
llvm: remove bogus paxmarks
Refers to non-existent files; see e.g.,
https://hydra.nixos.org/build/36359717/nixlog/1/raw

Likely a copy-paste error that has gone unnoticed because paxmark didn't
do anything, but breaks after 6648b04381
2016-05-28 19:44:03 +02:00
Tuomas Tynkkynen
9f8a22fae5 treewide: Make explicit that 'dev' output of binutils is used 2016-05-19 10:00:26 +02:00
Tuomas Tynkkynen
36c4c73575 clang: Add compat lib attribute to have stdenv.cc.cc.lib always work
Fixes tarball evaluation:

http://hydra.nixos.org/build/35042997/nixlog/1/raw
2016-05-02 00:57:28 +03:00
Vladimír Čunát
716aac2519 Merge branch 'staging' into closure-size 2016-01-19 09:55:31 +01:00
Robin Gloster
897fb98a96 llvm: 3.7.0 -> 3.7.1 (close #12200)
This obsoletes a backport for rust.
2016-01-07 11:12:54 +01:00
janus
f351aaaf85 FreeBSD: use own stdenv, do not run libtiff tests, use PIC for zlib 2016-01-01 17:01:13 +00:00
Vladimír Čunát
f9f6f41bff Merge branch 'master' into closure-size
TODO: there was more significant refactoring of qtbase and plasma 5.5
on master, and I'm deferring pointing to correct outputs to later.
2015-12-31 09:53:02 +01:00
Moritz Ulrich
b45161fbbe llvm: Add backported patch for Rust.
Rust runs into a bug with LLVM 3.7.0 that's fixed in the upcoming
release 3.7.1. This commit backports this fix.
2015-12-24 21:14:06 +01:00
Luca Bruno
5b0352a6a4 Merge branch 'master' into closure-size 2015-12-11 18:31:00 +01:00
Jude Taylor
c20b6846f2 rustc: build on darwin 2015-11-30 12:54:04 -08:00
Vladimír Čunát
333d69a5f0 Merge staging into closure-size
The most complex problems were from dealing with switches reverted in
the meantime (gcc5, gmp6, ncurses6).
It's likely that darwin is (still) broken nontrivially.
2015-11-20 14:32:58 +01:00
William A. Kennington III
4251612faa Merge branch 'master.upstream' into staging.upstream 2015-11-04 01:00:48 -08:00
Jude Taylor
f4f3df5f5d llvm-3.7: add libcxxabi as a buildInput on darwin 2015-11-02 14:33:51 -08:00
Vladimír Čunát
4917a4f8b3 Merge master into staging 2015-10-23 01:57:14 +02:00
Jude Taylor
0a32eab91e fix LLVM packages to work in darwin stdenv 2015-10-05 08:46:56 -07:00
Vladimír Čunát
1004d44d80 llvm-3.7: fix build by -lpthread
This is strange. Morover, 3.6 builds fine without modifications.
2015-10-04 10:16:34 +02:00
Nikolay Amiantov
e2e4e59975 llvm: add debug builds support 2015-10-03 14:18:57 +03:00
William A. Kennington III
2a0c18835a llvm: Install utilities for use with rustc 2015-09-21 14:38:49 -07:00
Benjamin Saunders
8613179f78 llvm: 3.6 -> 3.7 (close #9815)
Package changes from 3.6:
- CMake exports patch no longer necessary
- Cosmetic purity patch fix
- Build libc++ with private libc++abi headers visible from sources
- Work around bugs in lldb's configure scripts
2015-09-14 23:47:20 +02:00