Commit graph

253 commits

Author SHA1 Message Date
David Nadlinger
f68ebbf1ec Merge pull request #1469 from rainers/multi_config
Allow different configurations in the ldc2.conf
2016-05-23 00:02:34 +01:00
Kai Nacke
de296b90ec LLVM 3.9: llvm::Reloc::Default was removed.
The value is now optional as there is nothing like a default relocation.
2016-05-20 21:17:20 +02:00
David Nadlinger
219758756c Merge branch 'merge-2.071' 2016-05-06 19:24:48 +01:00
Rainer Schuetze
8a563e9d20 update tryGetExplicitTriple to better mimmick command line behaviour 2016-05-01 09:51:55 +02:00
Rainer Schuetze
e92bb482a2 select configuration group by target triple extracted from the command line 2016-04-30 12:28:02 +02:00
Rainer Schuetze
bc1a1b1f9e fix runnable/cppa.d for Windows: C++ interface functions are implemented without thunks, the this pointer is adjusted in the function itself 2016-04-28 23:43:50 +02:00
Kai Nacke
ee8c6b106b Fix merge errors 2016-04-23 14:58:39 +02:00
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
Rainer Schuetze
a2c5f15955 implement -transition=* 2016-04-20 23:03:20 +02:00
Joakim
ee8a832c49 Add a handful of fixes for Android 2016-04-19 22:09:14 +05:30
Rainer Schuetze
c74d4c2231 Merge remote-tracking branch 'remotes/origin/master' into merge-2.071
# Conflicts:
#	runtime/druntime
#	tests/d2/dmd-testsuite
2016-04-17 21:24:56 +02:00
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
David Nadlinger
9f998a398d Initial merge of upstream v2.071.0-b2
Notably, the glue layer side of the changed multiple interface
inheritance layout (DMD a54e89d) has not been implemented yet.

This corresponds to DMD commit 3f6a763c0589dd03c1c206eafd434b593702564e.
2016-04-03 15:15:14 +01: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