NOTE: 2nd part changeset for cfe trunk to follow.
*** PRE-PATCH ISSUES ADDRESSED
- clang api docs fail build from objdir
- clang/llvm api docs collide in install PREFIX/
- clang/llvm main docs collide in install
- clang/llvm main docs have full of hard coded destination
assumptions and make use of absolute root in static html files;
namely CommandGuide tools hard codes a website destination
for cross references and some html cross references assume
website root paths
*** IMPROVEMENTS
- bumped Doxygen from 1.4.x -> 1.6.3
- splits llvm/clang docs into 'main' and 'api' (doxygen) build trees
- provide consistent, reliable doc builds for both main+api docs
- support buid vs. install vs. website intentions
- support objdir builds
- document targets with 'make help'
- correct clean and uninstall operations
- use recursive dir delete only where absolutely necessary
- added call function fn.RMRF which safeguards against botched 'rm -rf';
if any target (or any variable is evaluated) which attempts
to remove any dirs which match a hard-coded 'safelist', a verbose
error will be printed and make will error-stop.
llvm-svn: 103213
gets placed inside a main function, and should not itself be a main
function. This is silently hidden in GCC-hosted builds because the
inner main looks like a nested function declaration, which GCC supports.
In builds with compilers which do not support nested functions (by default),
this was causing an error, which caused these autoconf checks to fail,
leaving their options disabled.
This fixes test/Feature/load_module.ll on x86_64-unknown-linux-gnu
llvm-gcc selfhost builds, among other things.
This also includes a regenerated configure, as the diff is small and telling.
llvm-svn: 102288
in r86005 and unintentionally changed the default from -O3 to -O2.
- It's odd the things automated perf testing turns up! :)
- Also, the configure diff is messed up slightly. It looks like someone either
didn't regenerate configure correctly (or I didn't), or autoconf has some
funnyness in it. Eric, any ideas?
This has been at -O2 for so long, that I am slightly nervous that this change
will uncover miscompiles of LLVM on other systems. If that is the case, I think
we should just set the default universally at -O3, and let developers/vendors
use -O3 if they want it and have tested it.
llvm-svn: 100941
now configures prerequisite projects individually but also ignores them in the
big project switch statement to avoid the incorrect warning.
llvm-svn: 99506
projects rely upon llvm-gcc, the LLVM test suite, and poolalloc. This ensures
that the aforementioned projects have their object trees created first so that
other projects can find their object trees when they themselves are configured.
llvm-svn: 98998
The MicroBlaze is a highly configurable 32-bit soft-microprocessor for
use on Xilinx FPGAs. For more information see:
http://www.xilinx.com/tools/microblaze.htmhttp://en.wikipedia.org/wiki/MicroBlaze
The current LLVM MicroBlaze backend generates assembly which can be
compiled using the an appropriate binutils assembler.
llvm-svn: 96969
Comes in two parts:
1. Use --with-clang=path/to/clang/compiler to select an installed clang, or
--with-built-clang to have the makefiles use the clang which will be built
as the LLVM capable compiler. If neither is given, --with-built-clang will
be used if the Clang sources are checked out into the standard location
(tools/clang).
2. Use --with-llvmcc={llvm-gcc,clang,none} to specify which LLVM capable
compiler to use. If not given, then llvm-gcc will be used if available,
otherwise Clang.
Makefile support still to come.
Eric, Doug, Chris, seem reasonable?
llvm-svn: 96934
--enable-shared configure flag to have the tools linked shared. (2.7svn is just
$(LLVMVersion) so it'll change to "2.7" in the release.) Always link the
example programs shared to test that the shared library keeps working.
On my mac laptop, Debug libLLVM2.7svn.dylib is 39MB, and opt (for example) is
16M static vs 440K shared.
Two things are less than ideal here:
1) The library doesn't include any version information. Since we expect to break
the ABI with every release, this shouldn't be much of a problem. If we do
release a compatible 2.7.1, we may be able to hack its library to work with
binaries compiled against 2.7.0, or we can just ask them to recompile. I'm
hoping to get a real packaging expert to look at this for the 2.8 release.
2) llvm-config doesn't yet have an option to print link options for the shared
library. I'll add this as a subsequent patch.
llvm-svn: 96559
HAVE_{BI,STD,FWD}_ITERATOR and HAVE_NAMESPACES were not used in the code.
bison and flex are no longer used.
CAN_DLOPEN_SELF was never used either.
AC_PROG_LIBTOOL is not needed since we don't use libtool, we only need the
libltdl checks for dlopen.
Add check for AR, it used to be done by AC_PROG_LIBTOOL.
AC_TYPE_SIGNAL is deprecated, follow autoupdate's suggestion and replace with
void.
Remove unused m4 files.
Configure can now be generated using autoconf 2.65 too, without any warnings!
llvm-svn: 94534
same effect that "host-only" used to have, but can be combined with other
targets. host-only is still available as a synonym but no longer documented.
llvm-svn: 82634
A include/llvm/ADT/iterator.cmake
U autoconf/configure.ac
--- Reverse-merging r80161 into '.':
U cmake/config-ix.cmake
--- Reverse-merging r80171 into '.':
U Makefile
--- Reverse-merging r80173 into '.':
U configure
U include/llvm/Config/config.h.in
--- Reverse-merging r80180 into '.':
A include/llvm/ADT/iterator.h.in
Despite common miscomceptions, iterator.h is alive and well. It broke the build
bots for several hours. And yet no one bothered to look at them.
Gabor and Doug, please review your changes and make sure that they actually
build before resubmitting them.
llvm-svn: 80197
so get rid of this monstrosity. iterator.h.in is scheduled for deletion in my working copy,
but I wait till I see that configure gets regenerated, as it depends on it. I'll commit
then.
There are still some AC_* tests in the configure.ac dealing with iterators, those can
be zapped probably too.
llvm-svn: 80147
- I did not actually remove the configure test itself, someone who can
regenerate configure should do this (see FIXME in autoconf/configure.ac)
llvm-svn: 79881
try to use i686-darwin to build for arm-eabi, you'll quickly run into
several false assumptions that the target OS must be the same as the
host OS. These patches split $(OS) into $(HOST_OS) and $(TARGET_OS) to
help builds like "make check" and the test-suite able to cross
compile. Along the way a target of *-unknown-eabi is defined as
"Freestanding" so that TARGET_OS checks have something to work with.
Patch by Sandeep Patel!
llvm-svn: 79296
by defining a LLVM_COMPACT_SENTINELS symbol to 0 or 1 in config.h.
I'm asking for 3 favors:
- may an autofoo expert look at this and suggest improvements?
- may a cmake expert suggest analogous functionality for config.h?
- may somebody with the right autofoo mix regenerate configure? (mine is too new)
Thanks!
--This line, and those below, will be ignored--
M configure.ac
llvm-svn: 78628
library to tell it the addresses of JITted functions. For a
particular program, this changes the opreport -l output from:
samples % image name symbol name
48182 98.9729 anon (tgid:19412 range:0x7f12ccaab000-0x7f12cdaab000) anon (tgid:19412 range:0x7f12ccaab000-0x7f12cdaab000)
11 0.0226 libstdc++.so.6.0.9 /usr/lib/libstdc++.so.6.0.9
to:
samples % image name symbol name
24565 60.7308 19814.jo fib_left
15365 37.9861 19814.jo fib_right
22 0.0544 ld-2.7.so do_lookup_x
llvm-svn: 75279
Controls whether libCompilerDriver should be loaded dynamically. By default this
is needed only on Win32, to make dynamic plugins work.
llvm-svn: 74759
initialization of all targets (InitializeAllTargets.h) or assembler
printers (InitializeAllAsmPrinters.h). This is a step toward the
elimination of relinked object files, so that we can build normal
archives.
llvm-svn: 73543
mutex support. LLVM_MULTITHREADED indicates (or will indicate) the ability to run LLVM itself across multiple threads, and requires atomics support.
llvm-svn: 72140
Configure was not actually regenerated, but the change last time only touched
this one line, so I'm being lazy and cheating by fixing it manually.
llvm-svn: 69453
there.
This changes the interpreter to use libffi. After this patch, the interpreter
will barely be able to call any external functions if built on a system without
libffi installed (just enough to pass 'make check' really). But with libffi,
we can now call any function that isn't variadic or taking a struct or vector
parameter (but pointer to struct is fine). Patch by Alexei Svitkine!
llvm-svn: 63723
This requires a rebuild of 'configure' itself. I will be committing that next, but
built with the wrong version of autoconf. Somebody who has the right one, please update
it.
As a side-note, because of the way autoconf works, all built tools will link against
libffi, not just lli. If you know how to fix this, please let me know ...
llvm-svn: 62553
runnable on the build machine.
There are a few bits that need built for the build environment (TableGen).
This patch builds those bits, and the associated libraries, for the build
environment as well as the (usual) host environment.
Thanks to Eric C. and Devang P. for pre-commit review.
llvm-svn: 56975
We will keep the old projects/llvm-test working for existing installs.
The changes to configure are made manually, since I lack autoconf-2.6. Someone
might want to run AutoGen.sh to see if that changes anything.
llvm-svn: 52675
using the minimum possible number of bytes. For little
endian targets run on little endian machines, apints are
stored in memory from LSB to MSB as before. For big endian
targets on big endian machines they are stored from MSB to
LSB which wasn't always the case before (if the target and
host endianness doesn't match values are stored according
to the host's endianness). Doing this requires knowing the
endianness of the host, which is determined when configuring -
thanks go to Anton for this. Only having access to little
endian machines I was unable to properly test the big endian
part, which is also the most complicated...
llvm-svn: 44796
stdlib if it's beneath --prefix, and is libdir/ocaml otherwise.
If someone has a better way than this to test whether $B is a path
within $A, I'd love to hear it:
if test "$A" \< "$B" -a "$B" \< "${A}~"
llvm-svn: 42532
The AC_CHECK_HEADER macro was used instead of AC_CHECK_HEADERS. The former does
not automatically add a #define to the configure variables while the latter
does. Consequently, the HAVE_PTHREAD_H symbol was not defined which caused the
Mutex.cpp file to compile to an empty implementation.
llvm-svn: 41137
JITer (short path is added for darwin). This is needed to properly JIT llvm-gcc-4.2-built
binaries, since cxa_atexit is enabled by default on much more targets.
llvm-svn: 40600
* autoconf/AutoRegen.sh: use variables for autofoo versions
* autoconf/configure.ac: test for some more functions
that are not guaranteed on solaris
Note: the svn:mime-type of autoconf/AutoRegen.sh
should be set to something that allows for
text compares using svn diff
llvm-svn: 39800
--enable-expensive-checks allows the developer to enable runtime
checking that can greatly increase compile time. Currently it only
turns on _GLIBCXX_DEBUG. Other expensive debugging checks added later
should be controlled by this configure option.
This patch also updates llvm-config with a --cppflags option to inform
llvm-gcc how to build itself so that it is compatible with an llvm that
was built with _GLIBCXX_DEBUG.
llvm-svn: 37777
Change the llvm-gcc sanity check to look for "target datalayout" instead
of "implementation". The implementation keyword is no longer generated
by llvm or llvm-gcc.
llvm-svn: 35451
Add HAVE_PTHREAD to makefiles with support from configure and use it to
determine whether to build examples/ParallelJIT.
Patch by Anton Korobeynikov.
llvm-svn: 32054
premature, these libraries will be going away for the 2.0 release. Other
arrangements for profiling, gc, etc. should be made in the next few months.
llvm-svn: 31807
stands a chance of being compiled with a non C99 C compiler. The default
is enabled so you must specifically disable this feature if you want the
CBE output compiled with an older C compiler.
llvm-svn: 31461
Fix problem setting the USE_{program} variable. It should be set to a
Makefile variable definition line, not just "1". Problem noted by
Kenneth Hoste.
llvm-svn: 29682
Fix problem noticed by Kenneth Hoste. The wrong name for a variable was
being set and subsequently uses of the correct name were empty.
llvm-svn: 29681
Update ltld.[ch] to version 1.5.22.
Correct the notes about updating these tools (autoconf/README.TXT)
Add configure options for getting the correct option for including a whole
archive when linking.
llvm-svn: 29529
1. Get the path to the pwd binary (/bin/pwd usually) from configure.
2. Use that path to run pwd in all path variables set in Makefile.config.in
The hope is that these changes will resolve symlinks to physical paths. This
should work on all platforms where the binary pwd defaults to printing
physical paths. The shell version of pwd generally doesn't (it will print
the symlink path).
llvm-svn: 29381
have a compile-host version of "nm", not build-host. In order to effect this
we must use autoconf to determine the correct "nm" to use and propagate that
through the makefiles, through llvm-config and finally to GenLibDeps.pl as
an optional argument.
Patch contributed by Anton Korobeynikov. Thanks!
llvm-svn: 29368
Add configure checks for setjmp/longjmp for Chris. I can't believe this easy
PR has been outstanding for so long. If I don't get to something, please
remind me! :)
llvm-svn: 28686
are available. These libraries are used in lib/System and should be
included on the link line or if not available generate an error when
building lib/System.
llvm-svn: 28628
and is unlikely to change in future releases. This also simplifies the
parsing of the full and major llvm-gcc version numbers in the script.
llvm-svn: 28180
If we fail to find a required program, simply set that program to echo
out something that tells the user the situation. That is, instead of just
"true runtest" we now get "echo 'Skipped: runtest not found'".
llvm-svn: 27990
1. Assertions now default to on for all builds
2. If you want them disabled you must (a) --disable-assertions to configure
or DISABLE_ASSERTIONS=1 to make.
llvm-svn: 27548
Support detection of a "CVS" directory at configure time to distinguish
whether this is a release build or a "from tree" build. This knowledge is
used to set the defaults for --enable-optimzied and --enable-assertions
options.
llvm-svn: 27487
1. Check for Perl and only build llvm-config if its available.
2. Add some virtual components
3. Don't depend on "standard" location for Perl, but configured location
4. Document the tool with a POD file.
This version is now ready for testing by users.
llvm-svn: 27005
is a handy tool for users of LLVM who want to be able to quickly get
information about LLVM's configuration. It is intended to be used in the
command line of other tools. Documentation will be forthcoming in a
subsequent patch.
llvm-svn: 26952
go through, but we do want to know if we're using GCC/ICC since they
share certain funky command line options (for dependency generation
stuff)
llvm-svn: 26198
* Make it possible to pass a fourth argument to the CHECK_PROGRAM_SANITY
macro that controls whether a non-sane program generates an error or
a warning.
llvm-svn: 24931
* Add --enable-debug-runtime option, defaults to disabled
* Pass the new config var, DEBUG_RUNTIME, to Makefiles
* Don't use -Wa,-strip-debug if debug-runtime is enabled
llvm-svn: 24891