1) The last parameter of getGetElementPtr() has type bool. In some instances, a 2 is used as parameter. This is converted to true.
2) Several loops use int instead of unsigned. This causes warning about signed/unsigned mismatch.
Curiously, only Visual C++ complains about this. Nevertheless I think that the warnings should be fixed.
Several functions regarding file handling are deprecated. This commit replaces these functions with the new one from llvm::sys::fs and llvm::sys::path. It also removes some warnings about signed/unsigned mismatches.
Previously, std.internal.processinit was missing, leading to linker errors on OS X. All platform-specific stuff is wrapped in version() blocks, so we should be fine.
This enables us to remove the whole ugly config file parsing hack.
Also includes some minor CMake beautifications (nobody should really be at 2.4 anymore, 2.6 is more than three years old now).
This solves the problem of LDC picking up a pre-existing system-wide config when druntime and Phobos are compiled as part of the build process.
This order was intended by Christian in 919f8d6, but then backed out again in eb3cd887 with no comment as to why – I hope this doesn't have any unwanted implications.
This commit flips the order of the import paths so that the directories we install our stuff to are searched first. This avoids problems if DMD's has been installed to the same directory.
In detail, this commit:
- Changes the default version that is built to D2, use D_VERSION to override.
- Reverts back to building static libs by default until we are certain shared libs work fine everywhere.
- Fixes installation pathes so that CMAKE_INSTALL_PREFIX is respected; /etc as sysconf dir for /usr prefix is special-cased.
- Fixes out-of-source builds again, and causes temporary files (idgen, …) not to be written to the source directory anymore.
This is a slightly cleaned up version of the changes from https://github.com/ldc-developers/ldc/pull/12.