Commit Graph

741 Commits

Author SHA1 Message Date
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 4a77863bce Fix a stray 'dnl' that my editor line-wrapped into this comment. Thanks
to filcab on IRC for spotting.

llvm-svn: 171573
2013-01-05 00:34:40 +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
Dmitri Gribenko a6c2729ccc AutoRegen.sh: update reference to documentation
llvm-svn: 171037
2012-12-24 15:01:59 +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
Sylvestre Ledru 91ce36c986 Revert 'Fix a typo 'iff' => 'if''. iff is an abreviation of if and only if. See: http://en.wikipedia.org/wiki/If_and_only_if Commit 164767
llvm-svn: 164768
2012-09-27 10:14:43 +00:00
Sylvestre Ledru 721cffd53a Fix a typo 'iff' => 'if'
llvm-svn: 164767
2012-09-27 09:59:43 +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 c9e4ff6cca [configure] Add a --enable-keep-symbols configure flag.
llvm-svn: 161880
2012-08-14 18:14:20 +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
Eric Christopher 84864018c2 Add a configure flag for enabling -Werror on the command line
while building as requested by Lang.

llvm-svn: 161253
2012-08-03 19:58:20 +00:00
Eric Christopher c807c53ef6 Add support for detecting libxml for Dmitri's work. He'll
commit code in clang that uses this shortly.

llvm-svn: 161252
2012-08-03 19:47:19 +00:00
Eric Christopher 04e35970f5 Add a configure option to pass -std=c++11 on the command line.
rdar://11366674

llvm-svn: 161251
2012-08-03 19:47:14 +00:00
Eric Christopher 46342fecd0 Revert previous patch here, we should instead configure in specific
packages for particular uses.

llvm-svn: 161246
2012-08-03 17:45:31 +00:00
Eric Christopher caa3e7a0ef Add a BUILD_FLAGS variable so that autoconf checks have a place
to store additional flag options since too many things can
and do override CPPFLAGS. Also, this is exported, unlike CPPFLAGS
so it can be actually used elsewhere. This should enable us
to remove the AC_SUBSTs in the intel checks, but I have no way
of testing it.

llvm-svn: 161233
2012-08-03 05:18:00 +00:00
Sylvestre Ledru 35521e2310 Fix a typo (the the => the)
llvm-svn: 160621
2012-07-23 08:51:15 +00:00
NAKAMURA Takumi 43652ae0de autoconf: Re-introduce LLVM_HOSTTRIPLE since r143500, as rework of PR11060.
cmake: Add LLVM_HOSTTRIPLE. For now, it is same as TARGET_TRIPLE.
llvm-svn: 160609
2012-07-22 03:04:52 +00:00
Tom Stellard 95bd0be903 Revert "Build script changes for R600/SI Codegen v6"
This reverts commit e3013202259ed1e006c21817c63cf25d75982721.

llvm-svn: 160301
2012-07-16 18:19:46 +00:00
Tom Stellard 812e652b43 Build script changes for R600/SI Codegen v6
llvm-svn: 160272
2012-07-16 14:17:16 +00:00
Gabor Greif 1e71896bb4 fix typo in generated comment
llvm-svn: 160127
2012-07-12 13:05:12 +00:00
Chandler Carruth 9c394e3f89 Remove autoconf support for runtest and tclsh, some of the last vestigal
bits of DejaGNU.

Eric, you may want to remove the TCLSH bits from aclocal.m4 and
regenerate... I didn't want to touch the m4 file lest something
exploded.

llvm-svn: 159308
2012-06-27 23:53:41 +00:00
Justin Holewinski 907f7606f2 Remove the PTX back-end and all of its artifacts (triple, etc.)
This back-end was deprecated in favor of the NVPTX back-end.

NV_CONTRIB

llvm-svn: 157417
2012-05-24 21:38:21 +00:00
Danil Malyshev 7c5db45350 - Added ExecutionEngine/MCJIT tests
- Added HOST_ARCH to Makefile.config.in
The HOST_ARCH will be used by MCJIT tests filter, because MCJIT supported only x86 and ARM architectures now.

llvm-svn: 157015
2012-05-17 21:07:47 +00:00
Daniel Dunbar d18888242e Revert r156393, "[tests] Remove some remaining DejaGNU related cruft.", this
patch wasn't ready yet.

llvm-svn: 156395
2012-05-08 18:26:07 +00:00
Daniel Dunbar 898f02a613 [tests] Remove some remaining DejaGNU related cruft.
llvm-svn: 156393
2012-05-08 18:11:49 +00:00
Daniel Dunbar 3d92154e60 [docs] Remove POD based man page docs (and build system support).
- Currently this leaves us with less build system support (e.g., installing man pages) for the docs than is desired. I'm working on fixing this, but it may take a while. If someone finds this particularly egregious let me know and I will prioritize it.

llvm-svn: 156389
2012-05-08 17:48:21 +00:00
Daniel Dunbar 407a85e7a6 [build] Add build check for ::arc4random().
llvm-svn: 156236
2012-05-05 16:36:16 +00:00
Justin Holewinski ae556d3ef7 This patch adds a new NVPTX back-end to LLVM which supports code generation for NVIDIA PTX 3.0. This back-end will (eventually) replace the current PTX back-end, while maintaining compatibility with it.
The new target machines are:

nvptx (old ptx32) => 32-bit PTX
nvptx64 (old ptx64) => 64-bit PTX

The sources are based on the internal NVIDIA NVPTX back-end, and
contain more functionality than the current PTX back-end currently
provides.

NV_CONTRIB

llvm-svn: 156196
2012-05-04 20:18:50 +00:00
Sebastian Pop e29a6c72ff fix typo
Thanks to "Gabor Greif" <ggreif@gmail.com> for reporting this problem.

The configure flag should be --with-default-sysroot as documented, and
not --with-sysroot.  The reason we don't want to define --with-sysroot
is that GCC has a configure flag by that name and it has a different
semantics.

llvm-svn: 155844
2012-04-30 20:06:58 +00:00
Benjamin Kramer fbb9f485f8 Kick off 3.2 cycle for LLVM trunk.
llvm-svn: 155211
2012-04-20 18:15:07 +00:00
Sebastian Pop 5c9e18443d add configure flag --with-default-sysroot
llvm-svn: 154791
2012-04-16 04:11:45 +00:00
Jean-Daniel Dupas 1332038a8f Remove a remaining reference to the obsolete C backend in configure
llvm-svn: 154587
2012-04-12 12:02:39 +00:00
Sylvestre Ledru e8235fef31 Fix a problem in the target detection for Debian GNU/HURD
llvm-svn: 154117
2012-04-05 19:34:15 +00:00
Sylvestre Ledru 4cf7dae516 Fix a problem in the target detection for Debian GNU/kFreeBSD
llvm-svn: 154114
2012-04-05 18:53:09 +00:00
Eric Christopher 8e52bdce7b Fix CXXFLAGS for huge_val.m4.
Patch by Jeremy Huddleston!

llvm-svn: 153862
2012-04-02 06:54:01 +00:00
Eric Christopher 56079c1e72 Add InitializeNativeTargetDisassembler function.
Patch by Ojab.

llvm-svn: 153476
2012-03-26 21:56:56 +00:00
Eric Christopher eb75cc26af Add some fixes to the configure script for isInf and add
--enable-libcpp to projects/sample.

Patch by Dmitri Shubin with additional fixes by me.

llvm-svn: 153425
2012-03-26 02:09:01 +00:00
Eric Christopher 64a232343a Remove the C backend.
llvm-svn: 153307
2012-03-23 05:50:46 +00:00
Eli Bendersky 5262ad2afa Add profiling support for Intel Parallel Amplifier XE (VTune) for JITted code in LLVM.
Also refactor the existing OProfile profiling code to reuse the same interfaces with the VTune profiling code.
In addition, unit tests for the profiling interfaces were added.

This patch was prepared by Andrew Kaylor and Daniel Malea, and reviewed in the llvm-commits list by Jim Grosbach

llvm-svn: 152620
2012-03-13 08:33:15 +00:00
Benjamin Kramer e815db6140 configure: Don't require a perl interpreter to be present, LLVM's buildsystem doesn't depend on perl anymore.
llvm-svn: 152234
2012-03-07 17:07:20 +00:00
Daniel Dunbar 9370ecff74 autoconf: Set LLVM_CONFIGTIME to a stable value when using --disable-timestamps.
llvm-svn: 151921
2012-03-02 16:24:21 +00:00
Rafael Espindola 42e94d11a1 Enable -Wcovered-switch-default again, but add -Werror to the checks to make
sure we don't use it with compilers that don't support it.

llvm-svn: 151665
2012-02-28 23:32:06 +00:00
Chandler Carruth 0bd3913d96 Temporarily revert r151609, which enabled a new warning for LLVM and
Clang builds. The detection logic for compilers that support the warning
isn't working. Rafael is going to investigate it, but didn't want people
to have to wade through build spam until then.

llvm-svn: 151649
2012-02-28 19:26:56 +00:00
Charles Davis e56294dbc6 Strip extraneous information, if present, from the linker version string on
Mac OS X. Patch by Fabian Groffen, with a slight tweak by me.

llvm-svn: 151612
2012-02-28 02:55:41 +00:00
Rafael Espindola 334eaeae8e Enable -Wcovered-switch-default as it matches the switch style used in llvm.
llvm-svn: 151609
2012-02-28 02:01:55 +00:00
NAKAMURA Takumi 652e0139da autoconf/m4/visibility_inlines_hidden.m4: Tweak for cygwin-g++-4.5.3. It folded conftest regardress of attributge((noinline)) with >=O1 .
llvm-svn: 150920
2012-02-19 12:05:12 +00:00
Dylan Noblesmith c6c7a5819d add LLVM_VERSION_MAJOR and _MINOR defines
This is useful for clients that want to maintain compatibility
across multiple releases of LLVM. Currently users like Klee and
Mesa all have to roll their own 'parse llvm-config --version
output and generate defines' solution.

Also reuse the new macros so that version information is less
redundant/likely to fall out of sync again in the future.

llvm-svn: 150405
2012-02-13 18:48:10 +00:00
Dylan Noblesmith a7a29c17e0 autoconf: put generated clang files in build dir
It was writing generated files to the clang srcdir when
'--with-clang-srcdir' was specified.

llvm-svn: 149756
2012-02-04 03:00:50 +00:00
Dylan Noblesmith e21a3b20e5 autoconf: fix clang detection
Now this works with and without --with-clang-srcdir, with and
without an out-of-tree build.

llvm-svn: 149749
2012-02-04 02:41:36 +00:00
Rafael Espindola ec217f6ad6 Replace the old --with-cxx-* configure options with a single --with-gcc-toolchain
that just uses the new toolchain probing logic. This fixes linking with -m32 on
64 bit systems (the /32 dir was not being added to the search).

llvm-svn: 149651
2012-02-03 00:59:30 +00:00
Dylan Noblesmith a367022ce7 autoconf: fix build/src dir confusion
This was the cause of the silent failure to generate
clang's config.h. My bad.

Fix on r149563 / r149568.

llvm-svn: 149574
2012-02-02 00:54:18 +00:00
Dylan Noblesmith b5190ab264 autoconf: restore old clang-srcdir behavior
Keep the string empty when unspecified. Undoes
part of r149563.

llvm-svn: 149568
2012-02-02 00:17:33 +00:00
Dylan Noblesmith 2badba5f27 autoconf: honor --with-clang-srcdir
configure was silently failing to produce anything in the case
where clang wasn't at tools/clang/, resulting in compilation
errors much later in the build when config.h didn't exist.

llvm-svn: 149563
2012-02-02 00:11:14 +00:00
Dylan Noblesmith 57f439cb9e autoconf: generate clang's private config.h header
The CMake build already generated one. Follows clang r149497.

This brings us one step closer to compiling and configuring clang
separately from LLVM using the autoconf build, too.

(I lack the right version of autoconf et al. to regen, but it
was a simple change, so I just updated configure manually.)

llvm-svn: 149498
2012-02-01 14:06:21 +00:00
Gabor Greif e0d58d36b2 comment tweaks
llvm-svn: 149060
2012-01-26 10:28:58 +00:00
Dylan Noblesmith c120957339 Makefile: add missing files to FilesToConfig
And fix the comment about where the FilesToConfig variable
is.

llvm-svn: 148282
2012-01-17 02:56:49 +00:00
Sebastian Pop 99ab273a77 revert r147542 after comments from Joerg Sonnenberger
llvm-svn: 147608
2012-01-05 18:28:46 +00:00
Sebastian Pop 0f357d6c22 use getHostTriple instead of getDefaultTargetTriple in getClosestTargetForJIT
Get back getHostTriple.

For JIT compilation, use the host triple instead of the default
target: this fixes some JIT testcases that used to fail when the
compiler has been configured as a cross compiler.

llvm-svn: 147542
2012-01-04 19:47:22 +00:00
NAKAMURA Takumi e9d3d21988 Happy new year 2012!
llvm-svn: 147395
2012-01-01 08:16:56 +00:00
Rafael Espindola e46f096a16 Add support for mipsel in configure. Fixes PR11669. Patch by Sylvestre Ledru.
llvm-svn: 147312
2011-12-28 17:08:00 +00:00
Benjamin Kramer 54671a787c Attempt #2 to fix mingw crossbuild. This time with more ugly hacks!
llvm-svn: 147196
2011-12-22 22:50:44 +00:00
Benjamin Kramer 942b28759d Make the -fvisibility-inlines-hidden check more thorough in a hopeless attempt to fix mingw cross-compiles.
llvm-svn: 147191
2011-12-22 22:25:26 +00:00
Rafael Espindola 4977edd33d Add configure support for kfreebsd and hurd. Patch by Sylvestre Ledru.
Fixes pr11620.

llvm-svn: 147143
2011-12-22 14:01:18 +00:00
Dylan Noblesmith 67c4970b59 capitalize project name, reference bugzilla
And fix the double-[]. It was including the [] as part of
the project name somehow, resulting in PACKAGE_TARNAME "-llvm-"
and a strange docdir default:

./configure --help | grep docdir
  --docdir=DIR           documentation root [DATAROOTDIR/doc/-llvm-]

llvm-svn: 146849
2011-12-18 18:50:16 +00:00
Tony Linthicum 1213a7a57f Hexagon backend support
llvm-svn: 146412
2011-12-12 21:14:40 +00:00
Daniel Dunbar 7ce849d495 configure: Don't warn about compiler-rt checked out into projects/.
llvm-svn: 146084
2011-12-07 22:07:03 +00:00
Daniel Dunbar ab0ad4ed1e llvm-config: Replace with C++ version (was llvm-config-2).
- Another reapply of r144300, with hopefully one last fix.

llvm-svn: 145623
2011-12-01 20:18:09 +00:00
Duncan Sands b8e6cee9ca Revert commit 145449 (ddunbar) since it is breaking the dragonegg buildbots.
Original commit message:
llvm-config: Replace with C++ version (was llvm-config-2).
 - Reapply of r144300, with lots of fixes/migration easement in between.

llvm-svn: 145582
2011-12-01 10:50:19 +00:00
Daniel Dunbar 8d5cc33ad8 llvm-config: Replace with C++ version (was llvm-config-2).
- Reapply of r144300, with lots of fixes/migration easement in between.

llvm-svn: 145449
2011-11-29 22:56:31 +00:00
Bob Wilson 3f35470fc7 Add an optional separate install prefix for internal components. rdar://10217046
Some files installed by clang are not relevant for general users and we'd like
to be able to install them to a different location.  This adds a new
--with-internal-prefix configure option and a corresponding PROJ_internal_prefix
makefile variable, which defaults to the standard prefix.  A tool makefile
can specify that it should be installed to this internal prefix by defining
INTERNAL_TOOL.

llvm-svn: 145234
2011-11-28 07:59:52 +00:00
Dylan Noblesmith efddf20126 rename ENABLE_THREADS to LLVM_ENABLE_THREADS
Now that it needs to be exported in a public header (Valgrind.h)
it should be prefixed to avoid collision with other projects.
Add it to llvm-config.h as well.

This'll require regenerating the configure script after this
commit, but I don't have the required autoconf version.

llvm-svn: 145214
2011-11-28 00:48:58 +00:00
Benjamin Kramer e1effb0da2 Add configure checking for pread(2) and use it to save a syscall when reading files.
llvm-svn: 145061
2011-11-22 12:31:53 +00:00
Eric Christopher 1094ded6f3 Add an option '--enable-libcpp' that will have the compiler pass on
options to use libc++ as the default c++ library.

llvm-svn: 144413
2011-11-11 22:51:42 +00:00
Sebastian Pop ec2fb226d8 rename LLVM_HOSTTRIPLE into LLVM_DEFAULT_TARGET_TRIPLE
llvm-svn: 143501
2011-11-01 21:31:44 +00:00
Sebastian Pop f29a9b8c0b derive LLVM_HOSTTRIPLE from target
llvm-svn: 143500
2011-11-01 21:30:04 +00:00
Dan Gohman 4c9fca99c9 Remove the Alpha backend.
llvm-svn: 143164
2011-10-27 22:56:32 +00:00
Charles Davis bc47545073 Revert 142997. It doesn't work on Mac OS or the BSDs, which all use the BSD
version of the install program, which does not have the --strip-program
switch.

llvm-svn: 143009
2011-10-26 02:28:32 +00:00
Eric Christopher 0db256834d Search for and use the strip program and pass it to install for it
to use for stripping final executables.

Patch by Simon Atanasyan!

llvm-svn: 142997
2011-10-26 00:52:13 +00:00
Eric Christopher 49709ad6d0 Handle newer cases for freebsd which is approaching 10.0 and not 1.0.
Patch by Dimitry Andric!

llvm-svn: 142995
2011-10-26 00:42:12 +00:00
Dan Gohman b43c36f391 Remove the Blackfin backend.
llvm-svn: 142880
2011-10-25 00:05:42 +00:00
Dan Gohman dfc96aea90 Remove the SystemZ backend.
llvm-svn: 142878
2011-10-24 23:48:32 +00:00
NAKAMURA Takumi 914f1924e0 autoconf: Introduce --with-clang-srcdir, to build out-of-tree clang as tools/clang on tools/Makefile.
llvm-svn: 142102
2011-10-16 02:54:26 +00:00
Bill Wendling 3d19eefd4e ToT is now for 3.1.
llvm-svn: 142044
2011-10-15 02:09:17 +00:00
Torok Edwin 229f8d7a9f ocaml bindings: add findlib META support
This makes it easier to link against LLVM libs, especially if you are using
_oasis.

llvm-svn: 141992
2011-10-14 20:38:02 +00:00
NAKAMURA Takumi d5a9a3afaf configure: [cygming] Set --disable-embed-stdcxx by default on --enable-shared.
Many distros provide stdc++.dll recently. --enable-embed-stdcxx might confuse people.

llvm-svn: 141875
2011-10-13 18:04:52 +00:00