Commit Graph

718 Commits

Author SHA1 Message Date
NAKAMURA Takumi a87e3e49ce [autoconf] Fixup s/3.5/3.6/. Clang's ident was 3.5.0svn in autoconf build.
llvm-svn: 214167
2014-07-29 08:35:03 +00:00
Hans Wennborg 831f05802e Update LLVM version: 3.5 => 3.6
We branched 3.5, it's now time to work on 3.6.

This is Sylvestre's patch from [1] plus regenerated configure
file by me, and minus the release notes reset, which Sean
pointed out [2] should happen later.

 1. http://reviews.llvm.org/D4660
 2. http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20140721/111137.html

llvm-svn: 214131
2014-07-28 22:10:52 +00:00
Eric Christopher 14b76d5694 Regenerate autoconf, previous updates to the configury haven't
been updating configure.

llvm-svn: 214129
2014-07-28 22:00:44 +00:00
Alp Toker c84c5c9ac1 Touch configure to force clang's config.h.in reconfiguration on the build servers
Gutted that this is needed, folks who care about keeping the legacy build
system alive should sort this out already.

llvm-svn: 210321
2014-06-06 10:36:38 +00:00
Joerg Sonnenberger e6aafbb242 Don't hard-code ld when extracting host linker version, use ${LD} if
it is set.

llvm-svn: 209742
2014-05-28 15:12:55 +00:00
Tim Northover 3b0846e8f7 AArch64/ARM64: move ARM64 into AArch64's place
This commit starts with a "git mv ARM64 AArch64" and continues out
from there, renaming the C++ classes, intrinsics, and other
target-local objects for consistency.

"ARM64" test directories are also moved, and tests that began their
life in ARM64 use an arm64 triple, those from AArch64 use an aarch64
triple. Both should be equivalent though.

This finishes the AArch64 merge, and everyone should feel free to
continue committing as normal now.

llvm-svn: 209577
2014-05-24 12:50:23 +00:00
Tim Northover cc08e1fe1b AArch64/ARM64: remove AArch64 from tree prior to renaming ARM64.
I'm doing this in two phases for a better "git blame" record. This
commit removes the previous AArch64 backend and redirects all
functionality to ARM64. It also deduplicates test-lines and removes
orphaned AArch64 tests.

The next step will be "git mv ARM64 AArch64" and rewire most of the
tests.

Hopefully LLVM is still functional, though it would be even better if
no-one ever had to care because the rename happens straight
afterwards.

llvm-svn: 209576
2014-05-24 12:42:26 +00:00
Tim Northover 00ed9964c6 ARM64: initial backend import
This adds a second implementation of the AArch64 architecture to LLVM,
accessible in parallel via the "arm64" triple. The plan over the
coming weeks & months is to merge the two into a single backend,
during which time thorough code review should naturally occur.

Everything will be easier with the target in-tree though, hence this
commit.

llvm-svn: 205090
2014-03-29 10:18:08 +00:00
Rafael Espindola 730df071c8 Remove projects/sample.
As an example that was not actually being used, it suffered from a slow bitrot.

The two main issues with it were that it had no cmake support and
included a copy of the autoconf directory. The reality is that
autoconf is not easily composable. The lack of composabilty is why we
have clang options in llvm's configure. Suggesting that users include
a copy of autoconf/ in their projects seems a bad idea.

We are also in the process of switching to cmake, so pushing autoconf
to new project is probably not what we want.

llvm-svn: 203728
2014-03-12 22:40:22 +00:00
Rafael Espindola e33f06c5ae Add a --enable-clang-plugin-support option to configure.
This will replace the now badly named CLANG_IS_PRODUCTION.

llvm-svn: 203471
2014-03-10 16:58:35 +00:00
Tom Stellard e6ba81dae9 Add patch level to llvm version in CMake and Autoconf
The shared library generated by autoconf will now be called
libLLVM-$(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_PATCH)$(VERSION_SUFFIX).so
and a symlink named
libLLVM-$(VERSION_MAJOR).$(VERSION_MINOR)$(VERSION_SUFFIX).so will
also be created in the install directory.

llvm-svn: 202720
2014-03-03 15:22:00 +00:00
Chandler Carruth bbae512cd2 [C++11] Replace autoconf --enable-cxx11 with --enable-cxx1y. The
baseline is now C++11, and we unconditionally add -std=c++11 to the
flags.

This has the dim potential to break some non-GNU-compatible compiler (in
terms of -std flags) using the makefiles, but those makefiles are
littered with GNU-style compile flags so it would be very surprising to
me for it to actually happen in practice. As always, do let me know if
there is a toolchain you're using where this doesn't work, and I'll be
watching the bots.

llvm-svn: 202569
2014-03-01 03:33:08 +00:00
Chandler Carruth f92205336d [C++11] Switch autoconf and make to use C++11 by default. Now both build
systems have the default as C++11, but retain the ability to build with
C++98.

Again, please restrain your enthusiasm a bit in case this needs to be
reverted. =]

llvm-svn: 202546
2014-02-28 21:47:41 +00:00
Rafael Espindola fd1355aedd Drop libtool from llvm.
We were only using it so find the shared library extension and nm. There are
simpler ways to do those things :-)

llvm-svn: 202524
2014-02-28 18:17:54 +00:00
Rafael Espindola 11ac853774 With rpaths being set correctly, SHLIBPATH_VAR is not needed anymore.
llvm-svn: 202510
2014-02-28 16:16:51 +00:00
NAKAMURA Takumi 84e853013f Add version, arch, system libs, and targets to Makefile.config
Teach autoconf/configure.ac to AC_SUBST several additional values in
Makefile.config to make them available to Makefile code.  These will
be useful to generate CMake package modules from the Makefile build.

Contributed by Brad King.

llvm-svn: 201052
2014-02-09 16:36:42 +00:00
Todd Fiala 4ccfe392ed Fix configure to find arc4random via header files.
ISSUE:

On Ubuntu 12.04 LTS, arc4random is provided by libbsd.so, which is a
transitive dependency of libedit. If a system had libedit on it that
was implemented in terms of libbsd.so, then the arc4random test,
previously implemented as a linker test, would succeed with -ledit.
However, on Ubuntu this would also require a #include <bsd/stdlib.h>.
This caused a build breakage on configure-based Ubuntu 12.04 with
libedit installed.

FIX:

This fix changes configure to test for arc4random by searching for it
in the standard header files. On Ubuntu 12.04, this test now properly
fails to find arc4random as it is not defined in the default header
locations. It also tweaks the #define names to match the output of the
header check command, which is slightly different than the linker
function check #defines.

I tested the following scenarios:

(1) Ubuntu 12.04 without the libedit package [did not find arc4random,
as expected]

(2) Ubuntu 12.04 with libedit package [properly did not find
arc4random, as expected]

(3) Ubuntu 12.04 with most recent libedit, custom built, and not
dependent on libbsd.so [properly did not find arc4random, as
expected].

(4) FreeBSD 10.0B1 [properly found arc4random, as expected]

llvm-svn: 200819
2014-02-05 05:04:36 +00:00
Peter Collingbourne c7d437c118 Introduce line editor library.
This library will be used by clang-query. I can imagine LLDB becoming another
client of this library, so I think LLVM is a sensible place for it to live.
It wraps libedit, and adds tab completion support.

The code is loosely based on the line editor bits in LLDB, with a few
improvements:

 - Polymorphism for retrieving the list of tab completions, based on
   the concept pattern from the new pass manager.

 - Tab completion doesn't corrupt terminal output if the input covers
   multiple lines. Unfortunately this can only be done in a truly horrible
   way, as far as I can tell. But since the alternative is to implement our
   own line editor (which I don't think LLVM should be in the business of
   doing, at least for now) I think it may be acceptable.

 - Includes a fallback for the case where the user doesn't have libedit
   installed.

Note that this uses C stdio, mainly because libedit also uses C stdio.

Differential Revision: http://llvm-reviews.chandlerc.com/D2200

llvm-svn: 200595
2014-01-31 23:46:14 +00:00
Chandler Carruth eba44ea533 Use a heavier hammer when --enable-libcpp is passed to bypass the tests
which catch buggy versions of libstdc++. While libc++ would pass them,
we don't actually update the state in the configure script to use libc++
when we pass --enable-libcpp, the logic for that is in the
Makefiles. So just completely skip the library test when that configure
flag is passed.

Hopefully this will be enough to fix the darwin bots at last, and thanks
to Duncan Smith for getting things set up so I can watch the bots myself
on lab.llvm.org and see any failures!

llvm-svn: 199334
2014-01-15 21:21:48 +00:00
Chandler Carruth 7206eaefef Sink the autoconf check for sufficiently modern host toolchain below the
enable flag that selects the C++ standard library to use with the host
toolchain. Otherwise we end up testing the wrong config.

I'm not really happy about this placement, but its pragmatic and should
unblock the Apple builders.

llvm-svn: 199325
2014-01-15 19:19:13 +00:00
Chandler Carruth 577322a0d3 Fix a bug in r199313 where I failed to restore CXXFLAGS. Doh! Not
*quite* ready to just slam C++11 on by default.

llvm-svn: 199314
2014-01-15 10:34:30 +00:00
Chandler Carruth f8c6ccf85d Add a check to configure that the libstdc++ selected by Clang isn't
libstdc++v4.6. This is quite hard to test directly, so we test for it by
checking a known missing feature in that version that was added in v4.7.

This should prevent users from upgrading Clang but not GCC and hosting
with a too-old GCC's libstdc++ and getting strange and hard to debug
errors when we switch to C++11 by default.

Also, switch several of the macros I introduced to use AC_LANG_SOURCE
rather than AC_LANG_PROGRAM as we don't need configure's help writing
our main function (and we don't need such a function at all for most of
the tests).

llvm-svn: 199313
2014-01-15 10:31:15 +00:00
Chandler Carruth 9384786b14 Remove the last weird subproject, 'privbracket'.
llvm-svn: 199183
2014-01-14 05:05:18 +00:00
Chandler Carruth 75a6545d0e Add checks to configure for sufficiently modern host compilers. This
requires Clang 3.1 or GCC 4.7. If the compiler isn't Clang or GCC, we
don't try to do any sanity checking, but this give us at least
a reasonable baseline of modern compilers.

Also, I'm not claiming that this is the best way to do compiler version
tests. I'm happy for anyone to suggest better ways of doing this test.

llvm-svn: 199182
2014-01-14 05:02:38 +00:00
Chandler Carruth af968eda27 Ok, really, for the last time, llvm-gcc is dead Jim.
Also, so is stacker, llvm-tv, etc. Wow.

But will someone please fess up to what projects/privbracket is and why
our autoconf build supports it?

llvm-svn: 199179
2014-01-14 04:01:01 +00:00
Chandler Carruth b4dd3c6840 llvm-gcc is dead. REALLY. IT'S DEAD JIM.
llvm-svn: 199178
2014-01-14 03:46:00 +00:00
Eric Christopher d7ed36b87c Remove the test for endianness in configure.ac and regenerate.
llvm-svn: 198825
2014-01-09 01:09:57 +00:00
NAKAMURA Takumi d40d387fb1 Update the copyright credits -- Happy new year 2014!
FIXME: Dragonegg may be updated at non-trivial changes.
llvm-svn: 198274
2014-01-01 08:27:31 +00:00
Bill Wendling 70d39e6fa3 Update to reflect the next release.
llvm-svn: 195235
2013-11-20 10:10:50 +00:00
NAKAMURA Takumi dee7160baf [autoconf] Prune "runtime" stuff in configure, corresponding to r191835.
config.status: executing runtime/Makefile commands
  autoconf/install-sh: runtime/Makefile does not exist.

llvm-svn: 194376
2013-11-11 13:53:52 +00:00
Bill Wendling 58463e4e83 Update so that it uses the `-V' command line option and supports Python 3.x.
llvm-svn: 192527
2013-10-12 08:42:59 +00:00
David Majnemer 61eae2e30c Revert "Revert "Windows: Add support for unicode command lines""
This reverts commit r192070 which reverted r192069, I forgot to
regenerate the configure scripts.

llvm-svn: 192079
2013-10-07 01:00:07 +00:00
Patrik Hagglund 9857847b34 Remove error output from configure if CFLAGS is set (r174313).
This fixes PR16724.

llvm-svn: 191289
2013-09-24 11:38:45 +00:00
Daniel Dunbar eb6c708d92 [conf] Add config variable to disable crash related overrides.
- We do some nasty things w.r.t. installing or overriding signal handlers in
   order to improve our crash recovery support or interaction with crash
   reporting software, and those things are not necessarily appropriate when
   LLVM is being linked into a client application that has its own ideas about
   how to do things. This gives those clients a way to disable that handling at
   build time.

 - Currently, the code this guards is all Apple specific, but other platforms
   might have the same concerns so I went for a more generic configure
   name. Someone who is more familiar with library embedding on Windows can
   handle choosing which of the Windows/Signals.inc behaviors might make sense
   to go under this flag.

 - This also fixes the proper autoconf'ing of ENABLE_BACKTRACES. The code
   expects it to be undefined when disabled, but the autoconf check was just
   defining it to 0.

llvm-svn: 189694
2013-08-30 20:39:21 +00:00
NAKAMURA Takumi 4cfe554601 configure: Regenerate corresponding to r189026.
llvm-svn: 189031
2013-08-22 16:31:34 +00:00
Jordan Rose 23fc6f34c3 Autoconf: The Clang ARC migrator now depends on the static analyzer.
I don't actually have a version of autoconf so I edited configure directly
as well. It's copy-pasted so I think there was little margin for error.

See also Clang-side dependency graph changes.

llvm-svn: 189026
2013-08-22 15:49:53 +00:00
Joerg Sonnenberger 4e5a399b60 Recognize NetBSD's terminfo implementation.
llvm-svn: 188606
2013-08-17 11:06:00 +00:00
Chandler Carruth 912198585d Remove all checking for the various terminfo headers (term.h and
curses.h). Finding these headers is next to impossible. For example, on
Debian systems libtinfo-dev provides the terminfo reading library we
want, but *not* term.h. For the header, you have to use libncurses-dev.
And libncursesw-dev provides a *different* term.h in a different
location!

These headers aren't worth it. We want two functions the signatures of
which are clearly spec'ed in sys-v and other documentation. Just declare
them ourselves and call them. This should fix some debian builders and
provide better support for "minimal" debian systems that do want color
autodetection.

llvm-svn: 188165
2013-08-12 10:40:11 +00:00
Chandler Carruth f11f1e43de Target a minimal terminfo library rather than necessarily a full curses
library for color support detection. This still will use a curses
library if that is all we have available on the system. This change
tries to use a smaller subset of the curses library, specifically the
subset that is on some systems split off into a separate library. For
example, if you install ncurses configured --with-tinfo, a 'libtinfo' is
install that provides just the terminfo querying functionality. That
library is now used instead of curses when it is available.

This happens to fix a build error on systems with that library because
when we tried to link ncurses into the binary, we didn't pull tinfo in
as well. =]

It should also provide an easy path for supporting the NetBSD
libterminfo library, but as I don't have access to a NetBSD system I'm
leaving adding that support to those folks.

llvm-svn: 188160
2013-08-12 09:49:17 +00:00
Chandler Carruth cad7e5e0b4 Add support for linking against a curses library when available and
using it to detect whether or not a terminal supports colors. This
replaces a particularly egregious hack that merely compared the TERM
environment variable to "dumb". That doesn't really translate to
a reasonable experience for users that have actually ensured their
terminal's capabilities are accurately reflected.

This makes testing a terminal for color support somewhat more expensive,
but it is called very rarely anyways. The important fast path when the
output is being piped somewhere is already in place.

The global lock may seem excessive, but the spec for calling into curses
is *terrible*. The whole library is terrible, and I spent quite a bit of
time looking for a better way of doing this before convincing myself
that this was the fundamentally correct way to behave. The damage of the
curses library is very narrowly confined, and we continue to use raw
escape codes for actually manipulating the colors which is a much sane
system than directly using curses here (IMO).

If this causes trouble for folks, please let me know. I've tested it on
Linux and will watch the bots carefully. I've also worked to account for
the variances of curses interfaces that I could finde documentation for,
but that may not have been sufficient.

llvm-svn: 187874
2013-08-07 08:47:36 +00:00
Bob Wilson 8d7e6906d1 Regenerate with changes for -rdynamic.
llvm-svn: 187687
2013-08-02 22:51:11 +00:00
Eric Christopher 3053638799 Regenerate.
llvm-svn: 187217
2013-07-26 17:13:47 +00:00
Rafael Espindola 729866670b Remove the mblaze backend from llvm.
Approval in here http://lists.cs.uiuc.edu/pipermail/llvmdev/2013-July/064169.html

llvm-svn: 187145
2013-07-25 18:55:05 +00:00
Eric Christopher 72ebead43f No ',' between programs.
llvm-svn: 185867
2013-07-08 21:18:54 +00:00
Matt Arsenault fe56cc67c5 Find xdot or xdot.py.
Ubuntu installs this as xdot, so finding xdot.py would fail.

llvm-svn: 185860
2013-07-08 20:24:54 +00:00
Eric Christopher a24dc7fa8c Reapply r185601 with a fix for the cmake build.
llvm-svn: 185605
2013-07-04 01:10:38 +00:00
Eric Christopher 3eb07a0963 Temporarily revert 185601 as it caused cmake build regressions.
llvm-svn: 185603
2013-07-04 00:51:26 +00:00
Eric Christopher aaf58cc3c4 Add support for futimens for platforms that don't support futimes.
Patch by pashev.igor.

llvm-svn: 185601
2013-07-04 00:47:09 +00:00
Sylvestre Ledru 93a491bbf4 The build system is currently miss-identifying GNU/kFreeBSD as FreeBSD.
This kind of simplification is sometimes useful, but in general it's not correct. 

As GNU/kFreeBSD is an hybrid system, for kernel-related issues we want to match the
build definitions used for FreeBSD, whereas for userland-related issues we want to
match the definitions used for other systems with Glibc.

The current modification adjusts the build system so that they can be distinguished,
and explicitly adds GNU/kFreeBSD to the build checks in which it belongs.

Fixes bug .

Patch by Robert Millan in the context of Debian.

llvm-svn: 185311
2013-07-01 08:07:52 +00:00
Eric Christopher f1bd7702bf Add an autoconf option for turning on -gsplit-dwarf by default
when building llvm. This saves quite a bit of time and space when
linking. Please report any problems via bugzilla.

Caveats:

a) This will only work on linux
b) This requires a fairly new binutils
c) This requires a fairly new gdb

llvm-svn: 184808
2013-06-25 01:12:25 +00:00
Rafael Espindola d45b9f15f9 Don't define LTDL_SHLIBPATH_VAR.
llvm-svn: 183771
2013-06-11 19:04:13 +00:00
Rafael Espindola b58973f918 Don't define LLVM_LIBDIR, it is not used anymore.
llvm-svn: 183769
2013-06-11 18:52:11 +00:00
Rafael Espindola f6474d2834 Make R600 non-experimental.
The r600 backend has been in tree for some time now. Marking it as
non-experimental to avoid accidental breakage.

llvm-svn: 182442
2013-05-22 00:35:47 +00:00
Rafael Espindola e5cf1ba5b9 Regenerate configure.
llvm-svn: 182401
2013-05-21 17:59:15 +00:00
Bill Wendling 37df82db8f We're in 3.4 land now.
llvm-svn: 181350
2013-05-07 20:31:28 +00:00
Ulrich Weigand 92b2085cd3 [SystemZ] Add to --enable-targets=all
This patch finally enables the SystemZ target in the default build
(with --enable-targets=all).

Patch by Richard Sandiford.

llvm-svn: 181209
2013-05-06 16:23:07 +00:00
Ulrich Weigand 1ceebf6ee0 [SystemZ] Add configure bits
This patch wires up the SystemZ target in configure, so that it can now be
built using --enable-targets=systemz.   It is not yet included in the default
build (--enable-targets=all); this will be done by a follow-up patch.

Patch by Richard Sandiford.

llvm-svn: 181208
2013-05-06 16:22:34 +00:00
Tim Northover fee13d1e11 Allow host triple to be correctly overridden in CMake builds
The intended semantics mirror autoconf, where the user is able to
specify a host triple, but if it's left to the build system then
"config.guess" is invoked for the default.

This also renames the LLVM_HOSTTRIPLE define to LLVM_HOST_TRIPLE to
fit in with the style of the surrounding defines.

llvm-svn: 181112
2013-05-04 07:36:23 +00:00
Benjamin Kramer 00622f7d26 Autoconf: Compile cxxabi.h in C++ mode.
Should fix PR15877.

llvm-svn: 181026
2013-05-03 15:55:06 +00:00
Eric Christopher 15a4e5e0d5 Regen.
llvm-svn: 180685
2013-04-27 22:23:16 +00:00
Joerg Sonnenberger 66241831dc Only use cxxabi.h's demangler, if it is actually available.
llvm-svn: 180684
2013-04-27 22:12:32 +00:00
Alexey Samsonov 2fb337e77a Add basic zlib support to LLVM. This would allow to use compression/uncompression in selected LLVM tools.
llvm-svn: 180083
2013-04-23 08:28:39 +00:00
Jia Liu 43eb48ebe4 Add AArch64 into $llvm_cv_target_arch in configure, reviewed by Tim Northover & Eric Christopher
llvm-svn: 180025
2013-04-22 16:26:15 +00:00
Joerg Sonnenberger 8a1177f2aa Refine fenv.h handling: check if the desired macros exist, before using
it. NetBSD/ARM and TILE-Gx are examples for platforms that have an
unusable fenv.h and this avoids the need for a blacklist.

llvm-svn: 177865
2013-03-25 13:13:33 +00:00
Eric Christopher 31f4354c75 Turn anonymous type in anonymous union warning back on after cleaning up
issues.

llvm-svn: 177136
2013-03-15 00:43:00 +00:00
Dmitri Gribenko b5e23ef425 configure: remove workaround for gcc's -Wno-maybe-uninitialized
Since r174770 gcc version check is not needed because CXX_FLAG_CHECK
implements the workaround itself.

llvm-svn: 175080
2013-02-13 21:19:39 +00:00
Richard Smith f89ffcd705 configure: when performing a compiler feature test for a -Wno-foo flag, attempt
to use -Wfoo instead of -Wno-foo. This works around a bug in some versions of
gcc, where it will silently accept an unknown -Wno-foo option, but will
generate an error for a compile which uses -Wno-foo if that compile also
triggers any warnings.

llvm-svn: 174770
2013-02-08 22:55:10 +00:00
Owen Anderson 132ae8b955 Conditionalize constant folding of math intrinsics on the availability of an implementation on the host. This is a little bit unfortunate, but until someone decides to implement a full libm for APFloat, we don't have a better way to get this functionality.
llvm-svn: 174561
2013-02-07 00:21:34 +00:00
Tim Northover 43852f20ef Enable AArch64 as a target built by default.
llvm-svn: 174322
2013-02-04 12:32:21 +00:00
Patrik Hagglund d91ae4d960 Pass CPPFLAGS/CFLAGS/CXXFLAGS from the environment of configure to
Makefile.config.

This is implied at the bottom of the help text of configure (besides
CC/CXX/LDFLAGS, already passed to Makefile.config).

For backward compatibility, the values of CFLAGS and CXXFLAGS defaults
to empty, overriding the default values provided by autoconf (for
example, '-g -O2' when CC=gcc').

$(CPP) is not used by our makefiles. Therefore, the value of CPP is
not passed to Makefile.config, despite beeing mentioned by 'configure
--help'.

llvm-svn: 174313
2013-02-04 08:15:53 +00:00
Joerg Sonnenberger 981e99d560 Recognize aarch64 for --enable-targets as advertised.
llvm-svn: 174288
2013-02-03 17:06:49 +00:00
Richard Smith f47dc0ba93 Regenerate configure to hopefully fix buildbot breakage. Oh how I love autoconf.
llvm-svn: 174108
2013-01-31 23:02:23 +00:00
Richard Smith 6c26e74781 Add -Wno-nested-anon-types to -pedantic builds of LLVM. This Clang warning
catches uses of an extremely minor and widely-available C++ extension (which
every C++ compiler I could find supports, but EDG and Clang reject in strict
mode).

The diagnosed code pattern looks like this:

struct X {
  union {
    struct {
      int a;
      int b;
    } S;
  };
};

llvm-svn: 174103
2013-01-31 22:19:12 +00:00
Tim Northover e0e3aefdd3 Add AArch64 as an experimental target.
This patch adds support for AArch64 (ARM's 64-bit architecture) to
LLVM in the "experimental" category. Currently, it won't be built
unless requested explicitly.

This initial commit should have support for:
    + Assembly of all scalar (i.e. non-NEON, non-Crypto) instructions
      (except the late addition CRC instructions).
    + CodeGen features required for C++03 and C99.
    + Compilation for the "small" memory model: code+static data <
      4GB.
    + Absolute and position-independent code.
    + GNU-style (i.e. "__thread") TLS.
    + Debugging information.

The principal omission, currently, is performance tuning.

This patch excludes the NEON support also reviewed due to an outbreak of
batshit insanity in our legal department. That will be committed soon bringing
the changes to precisely what has been approved.

Further reviews would be gratefully received.

llvm-svn: 174054
2013-01-31 12:12:40 +00:00
Saleem Abdulrasool a166574d81 build: regenerate configure
Regenerate configure script for new option to make the buildbots happy.

Signed-off-by: Saleem Abdulrasool <compnerd@compnerd.org>
llvm-svn: 173893
2013-01-30 04:44:17 +00:00
NAKAMURA Takumi e5bc87c3c4 [autoconf] Fix m4 quoting for newer autotools
This simply fixes up quoting of macro invocations to appease newer versions of autotools.

http://llvm-reviews.chandlerc.com/D332

Signed-off-by: Saleem Abdulrasool <compnerd@compnerd.org>
llvm-svn: 173878
2013-01-30 01:37:55 +00:00
NAKAMURA Takumi f7148bd2e0 [autoconf] Fix 80+ and quoting.
Additional quoting for safety and satisfying newer autotools.  Fix a couple of 80 column violations.

http://llvm-reviews.chandlerc.com/D333

Signed-off-by: Saleem Abdulrasool <compnerd@compnerd.org>
llvm-svn: 173877
2013-01-30 01:37:49 +00:00
David Greene 57ad4297a3 Disable Uninitialized Use Warnings for Broken gcc Versions
Some versions of gcc accept unsupported -W flags and run just fine if
there are no warnings, but die with an unsupported flag error if a
warning is encountered.  gcc 4.3 and gcc 4.4 both exhibit this
behavior for -Wno-maybe-uninitialized.  Therefore, if the flag check
for -Wno-maybe-uninitialized succeeds, only use
-Wno-maybe-uninitialized if we are using gcc version 4.7 or greater.
Use -Wno-uninitialized otherwise.

llvm-svn: 172543
2013-01-15 18:21:15 +00:00
David Greene 9ff8d471d6 Disable -Wuninitialized for gcc
If the compiler is gcc, disable variants of -Wuninitialized depending
on the gcc version.  This gets a lot of false positive warnings out of
the build.

Generate a new configure for the gcc -Wno-uninitialized fix.

Pick up -Wno-uninitialized from configure

Add the option -Wno[-maybe]-uninitialized as determined by configure.

llvm-svn: 172006
2013-01-09 22:11:13 +00:00
Dmitri Gribenko 06358bd078 Configure: if we compile with clang, check that it is not broken
Some linux distibutions (for example, Mageia 2, Fedora 17) ship Clang that is
essentially broken for the end user.  Clang can not find or compile libstdc++
headers.

The issue is that our configure prefers clang over gcc, thus selecting a broken
Clang when a working GCC is available.

Now we detect this issue by compiling a simple program.  If it does not
compile, configure stops with an error suggesting the user to select a
different compiler.

llvm-svn: 171975
2013-01-09 15:25:30 +00:00
Chandler Carruth d121a7b0c0 Finally, fix the autoconf setup to allow for a missing clock_gettime;
the source code should now be set up to handle this.

llvm-svn: 171570
2013-01-05 00:29:06 +00:00
Chandler Carruth ef7f968e09 Add time getters to the process interface for requesting the elapsed
wall time, user time, and system time since a process started.

For walltime, we currently use TimeValue's interface and a global
initializer to compute a close approximation of total process runtime.

For user time, this adds support for an somewhat more precise timing
mechanism -- clock_gettime with the CLOCK_PROCESS_CPUTIME_ID clock
selected.

For system time, we have to do a full getrusage call to extract the
system time from the OS. This is expensive but unavoidable.

In passing, clean up the implementation of the old APIs and fix some
latent bugs in the Windows code. This might have manifested on Windows
ARM systems or other systems with strange 64-bit integer behavior.

The old API for this both user time and system time simultaneously from
a single getrusage call. While this results in fewer system calls, it
also results in a lower precision user time and if only user time is
desired, it introduces a higher overhead. It may be worthwhile to switch
some of the pass timers to not track system time and directly track user
and wall time. The old API also tracked walltime in a confusing way --
it just set it to the current walltime rather than providing any measure
of wall time since the process started the way buth user and system time
are tracked. The new API is more consistent here.

The plan is to eventually implement these methods for a *child* process
by using the wait3(2) system call to populate an rusage struct
representing the whole subprocess execution. That way, after waiting on
a child process its stats will become accurate and cheap to query.

llvm-svn: 171551
2013-01-04 23:19:55 +00:00
Chandler Carruth fbdae1f0f6 Update the configure scripts as well as the makefiles for the move from
VMCore to IR.

llvm-svn: 171360
2013-01-02 09:22:59 +00:00
NAKAMURA Takumi 43632a26a5 Update the copyright coredits -- Happy new year 2013!
llvm-svn: 171342
2013-01-01 10:00:19 +00:00
Benjamin Kramer d14720dced Fix quoting in configure. Patch by Krzysztof Parzyszek!
llvm-svn: 171108
2012-12-26 10:48:49 +00:00
Roman Divacky f2bb66b718 Add options to disable building of ARCMT, Rewriter and Static Analyzer
in clang. The default remains to build those.

llvm-svn: 170134
2012-12-13 16:07:19 +00:00
Eric Christopher c6c2b9bfe8 Fix a pasto.
Noticed by Dimitri Andric!

llvm-svn: 168319
2012-11-19 19:31:02 +00:00
Benjamin Kramer 6900a4ad8c Kick off 3.3 cycle for LLVM trunk.
llvm-svn: 168272
2012-11-17 22:01:08 +00:00
Eric Christopher 950d8703b1 Remove the CellSPU port.
Approved by Chris Lattner.

llvm-svn: 167984
2012-11-14 22:09:20 +00:00
Simon Atanasyan c2cccd795f Add mips64-* and mips64el-* triples to configure scripts
as valid triples denote  Mips target.

llvm-svn: 166961
2012-10-29 19:49:45 +00:00
Jordan Rose 3c837abd2b Re-enable support for --program-prefix.
The Apple buildbots have been modified not to pass --target,
so they shouldn't choke on a default program prefix anymore.

Patch by Rick Foos!

llvm-svn: 164956
2012-10-01 18:40:32 +00:00
Andrew Kaylor 5808c7d828 Removing dependency on third party library for Intel JIT event support.
Patch committed on behalf of Kirill Uhanov

llvm-svn: 164831
2012-09-28 17:35:20 +00:00
Jordan Rose 2998d25a6e Revert "Add --program-prefix support to build"
The Apple buildbots are set up to pass --target to configure for both
cross- and non-cross-compile builds, and the standard autoconf response
to this is to set the program prefix to '<target>-'. Until we can figure
out the proper way to handle this (don't pass --target? pass an explicit
--program-prefix=""? don't auto-populate program_prefix with target_alias?)
it's more important to keep the buildbots running.

This reverts r164633 / ba48ceb1a3802e20e781ef04ea2573ffae2ac414.

llvm-svn: 164651
2012-09-26 00:01:00 +00:00
Sebastian Pop 17e118b79c Add --program-prefix support to build
llvm-svn: 164633
2012-09-25 21:15:08 +00:00
Eric Christopher 9fafe07da0 Add an --enable-backtraces option to configure to determine
whether or not we want to print out backtrace information. Useful
for libraries that don't need backtrace information on a crash.

rdar://11844710

llvm-svn: 164426
2012-09-21 23:03:29 +00:00
Eric Christopher 365be442c4 Temporarily revert this to bring back the bots.
llvm-svn: 162722
2012-08-28 01:17:46 +00:00
Sebastian Pop 4d55ff5e15 Add --program-prefix support to build.
llvm-svn: 162707
2012-08-27 23:05:06 +00:00
Daniel Dunbar 39c0462f3b Update configure.
llvm-svn: 161881
2012-08-14 18:14:22 +00:00
Victor Oliveira 9d4b8f5a7f Support for experimental targets
Added LLVM_EXPERIMENTAL_TARGETS_TO_BUILD in CMake and --enable-experimental-targets in configure.

llvm-svn: 161561
2012-08-09 01:13:59 +00:00
Eric Christopher 22738d00a3 Add support for the OpenBSD for Bitrig.
Patch by David Hill.

llvm-svn: 161344
2012-08-06 20:52:18 +00:00