Kai Nacke
e55823fd09
Merge remote-tracking branch 'origin/ltsmaster'
2016-04-23 11:19:20 +02:00
Rainer Schuetze
eaa9e8130c
create our own global context, it's been removed from LLVM
...
(cherry picked from commit 26a4e2bd13
)
2016-04-21 22:34:08 +02:00
Joakim
ee8a832c49
Add a handful of fixes for Android
2016-04-19 22:09:14 +05:30
Rainer Schuetze
26a4e2bd13
create our own global context, it's been removed from LLVM
2016-04-16 10:02:13 +02:00
Dan Olson
cd216538f9
Merge branch 'master' into objc-wip
2016-04-08 22:38:39 -07:00
Martin
c02f4e7d08
Merge branch 'master' into merge-2.070
...
Conflicts:
CMakeLists.txt
runtime/druntime
runtime/phobos
tests/d2/dmd-testsuite
2016-03-28 22:28:01 +02:00
Johan Engelen
72b5ab7642
Instead of using the C++-linker, use the D compiler to link LDC2 and LDMD.
...
This removes the need for the CMake logic to figure out what linker flags to pass the C++linker to link D code (50 lines of flaky cmake script).
2016-03-25 12:31:01 +01:00
Kai Nacke
763b196a72
Merge remote-tracking branch 'origin/master' into merge-2.070
2016-03-24 22:40:31 +01:00
Kai Nacke
a2b74aad0b
Merge branch 'ltsmaster'
2016-03-21 18:09:17 +01:00
Johan Engelen
febfcad3a2
Add "built with D compiler version" to --version output.
2016-03-21 14:13:30 +01:00
Kai Nacke
3cb4a1dff1
Cleanup initialization of LLVM.
...
Some passes were initialized two times, some were missing.
2016-03-15 21:03:59 +01:00
Dan Olson
8ee456e224
Objective-C support based on target triple
...
Currently supports major Darwin triples except for PPC. New
global.params.hasObjectiveC is set based on decision.
2016-03-07 23:59:21 -08:00
Dan Olson
98a608e925
First proof -of-concept for objc support
...
This at least shows a path forward. Pretty much a kludge to at this
point, but passes the tests.
2016-03-02 00:30:58 -08:00
David Nadlinger
e4d39181a4
driver: initTraitsStringTable() is gone, too
2016-02-14 19:35:40 +01:00
David Nadlinger
c15df303d2
Lexer.initLexer no longer exists
2016-02-14 19:35:40 +01:00
David Nadlinger
dff1e8bfad
driver: Call objc_tryMain_init()
...
Not sure whether this actually does anything for us at this point,
but missing initialization has bitten us severely in the past.
2016-02-06 19:41:48 +01:00
David Nadlinger
71a507ac08
driver: Disable D GC
2016-02-03 20:32:58 +01:00
David Nadlinger
d531614a34
driver: Initialize D druntime
2016-01-29 21:56:49 +01:00
Johan Engelen
29ce4012af
dmd2 --> ddmd. Merge (almost all of) our changes to dmd source into the new D source of dmd 2.069.2.
...
Also adds the CMake infrastructure to compile and link the D source files.
The build is partially broken:
- A few files in Phobos and druntime do not build
- MSVC build is broken because of unresolved symbols involving reals
2016-01-28 19:03:58 +01:00
Kai Nacke
d072bdf7b6
Do not use global.params.is<OS>
...
This PR replaces the few uses of global.params.is<OS> with
global.params.targetTriple.isOS<OS>(). This avoids adding a new
boolean for each supported OS.
It also defines all xBSD-type OS as using the dso-registry.
2016-01-12 09:15:05 +01:00
Johan Engelen
4399271762
Fix a few compiler warnings.
2015-12-22 12:36:28 +01:00
David Nadlinger
57546e1723
driver: Add -static option for creating fully static binaries
2015-11-29 20:16:19 +01:00
Johan Engelen
70a6e73188
Cleanup runtime fwd decls and use ABI functiontype rewriting
2015-11-22 01:27:26 +01:00
Dan Olson
49ba2910b0
OS X - default OS to macosx instead of darwin
...
On OS X, the OS in Triple should be macosx, not darwin. This is not
comprehensive like clang which has a bunch of darwin to other OS
translation rules, but since only Darwin target currently supported is
OS X, this does the job.
2015-11-12 10:52:05 -08:00
David Nadlinger
cf8b6eec3e
driver: Do not disable FP elim by default when -g is given
...
This brings us in line with what GCC and Clang do, and as soon
as proper libunwind/DWARF-based backtraces are implemented, it
will be obsolete (right now they are broken anyway).
2015-11-02 17:04:26 +02:00
David Nadlinger
51afced357
Also clang-tidy driver/
2015-11-02 11:30:40 +02:00
David Nadlinger
44b0f7b615
driver/gen/ir: clang-format the world
...
This uses the LLVM style, which makes sense for sharing code
with other LLVM projects. The DMD code we use will soon all
be in D anyway.
2015-11-02 00:28:01 +02:00
Martin
2d959ea540
Make use of C++11 range-based for
...
Should be available now that support for LLVM < 3.5 has been dropped.
2015-11-01 14:49:04 +01:00
David Nadlinger
aa0dd1ba05
driver: Hide some more LLVM-internal options
...
(from LLVM 3.6.1 on OS X)
2015-10-31 20:34:35 +02:00
Martin
60d676e2a1
Drop support for LLVM < 3.5
...
This allows to clean up the code a little.
2015-10-30 22:24:05 +01:00
Kai Nacke
a73cf5ed22
Merge branch 'master' into merge-2.068
2015-10-27 22:12:19 +01:00
Kai Nacke
cddbe70909
Merge pull request #1164 from rainers/build_llvm38
...
fix build against llvm master (llvm 3.8)
2015-10-24 19:30:52 +02:00
Martin
54c9661b30
Merge branch 'master' into merge-2.068
2015-10-18 13:57:30 +02:00
kinke
86f151d0f3
Merge pull request #1162 from rainers/fix_lib_error
...
issue #1161 : return status if lib invocation failed
2015-10-18 00:00:36 +02:00
Rainer Schuetze
7413f1a8f5
fix build against llvm master (llvm 3.8)
2015-10-17 16:07:17 +02:00
Rainer Schuetze
8b5cee7a7c
issue #1161 : return status if lib invocation
2015-10-17 15:27:37 +02:00
Kai Nacke
c06e2ad7ea
Handle command line option color.
...
There is a LLVM 3.7 command line option named color. This option is
only available if ldc is linked against shared LLVM libraries.
Because the LDC color option uses a FlagParser simple renaming does
not work. The solution is now:
- Rename LLVM option `color` to `llvm-color` and hide this option
- Dynamically create the LDC option `color`
This finally enables building with shared LLVM libraries.
2015-10-11 17:24:29 +02:00
David Nadlinger
d85d256776
Fix setting D_NoBoundsChecks for -boundscheck=off builds
2015-10-10 13:03:42 +02:00
Martin
2d597ac1f0
Merge branch 'master' into merge-2.068
...
And update dmd-testsuite.
2015-10-08 23:01:51 +02:00
Martin
9956d326f0
Implement -conf command-line switch for LDC2 and LDMD2
2015-10-07 02:27:49 +02:00
Martin
8ee0e250c7
Merge branch 'master' into merge-2.068
2015-10-02 15:38:02 +02:00
Martin
1670323ebb
Refactor argv[0] management, related path searches etc.
2015-09-27 20:47:14 +02:00
Martin
d45170464e
Merge branch 'master' into merge-2.068
...
Conflicts:
runtime/druntime
2015-09-26 14:21:43 +02:00
David Nadlinger
bd47ea49e6
Merge branch 'master' into merge-2.068
2015-09-24 17:57:25 +02:00
David Nadlinger
8c428e66a5
driver: Only use slow -debuglib libraries if explicitly asked to
...
Causing a painfully slow version of the standard library (there are
some contracts in druntime that cause O(1) hash table operations to
become O(N)!) to be linked is definitely not what people expect -g
to do. Having a debug version of teh standard library with all the
assertions available is still valuable, but is used infrequently
enough that hiding it behind an extra command line option is
adequate.
I thought long and hard about approaches that avoid having to add
yet another command line flag, but except for ditching -debuglib
altogether and having people manually override -defaultlib, there
is no way of figuring out the user's intent from the other flags.
GitHub: Closes #417 .
2015-09-23 13:43:56 +02:00
Martin
9166f34657
Windows: replace forward slashes in cmdline source files by backslashes
...
This fixes fail_compilation\diag4479.d on Win64.
2015-09-21 22:48:41 +02:00
Kai Nacke
06cfb9f06d
Merge pull request #1095 from redstar/versions
...
Add missing version identifiers for C runtimes.
2015-09-19 18:11:36 +02:00
Kai Nacke
15137db01d
Add missing version identifiers for C runtimes.
...
Define CRuntime_Glibc for Linux and CRuntime_Bionic for Android.
2015-09-19 15:51:43 +02:00
Kai Nacke
a449635d4c
Add predefined version for S390.
2015-09-19 15:36:18 +02:00
David Nadlinger
12aa09ed32
Define CRuntime_{Bionic, Glibc}
2015-08-29 15:23:17 +02:00