Commit Graph

545 Commits

Author SHA1 Message Date
Mikhail Glushenkov 72f3f7eb56 Make dynamic LLVMC plugins work on Windows (finally!).
Implemented by making lib/CompilerDriver a shared library that holds all the
global static data (CommandLine options, plugin registry) that we unfortunately
have to live with.

llvm-svn: 74417
2009-06-29 03:09:15 +00:00
Mikhail Glushenkov 73da626340 Remove duplication.
Factor out common preprocessor-related bits to Makefile.rules.

llvm-svn: 74153
2009-06-25 01:07:00 +00:00
Mikhail Glushenkov 248c414024 Make llvmc work again.
Chris recently broke llvmc with his Makefile changes (r75379). That patch made
the global change .o -> .a, which caused built-in llvmc plugins to stop working
since plugin initialization in llvmc is based on static variables not referenced
from the main executable. This patch implements auto-generated forced references
to the plugin libraries.

llvm-svn: 74000
2009-06-23 20:46:48 +00:00
Duncan Sands e532b557c4 Since -Wno-long-long is ignored without -pedantic,
place it with -pedantic.  Remove -Wunused since it
is implied by -Wall.  Group -Wno-unused-parameter
with -Wall -W since it is the combination of these
two that turns on -Wunused-parameter.

llvm-svn: 73765
2009-06-19 12:40:30 +00:00
Chris Lattner eaae8d0cdc Remove support for building LLVM libraries into "relinked"
object files.  Now we always build LLVM libraries into archives (.a files).

This makes the 'make' build work more like the cmake build, among other
things.  Doing this exposed some latent circular library dependencies, so
I think that llvm-config wasn't quite right for .o files anyway.

llvm-svn: 73579
2009-06-16 23:00:42 +00:00
Duncan Sands 8b9524eede On platforms like Sparc64 you need to pass -r to
gcc rather than directly to the linker: gcc will
then modify the linker options it generates (it
will not use --relax for example, incompatible
with -r, as it otherwise would).  This fixes the
sparc build.

llvm-svn: 72943
2009-06-05 15:05:19 +00:00
Torok Edwin 49db738833 For the new ar --plugin libLLVMgold.so to work we need libLTO linked with
pthreads, otherwise ar complains of unresolved references to pthread_mutex_*.
LTO doesn't actually use pthreads, but ManagedStatic does.

Fix this by linking in LIBS (that contains pthreads) for LTO and gold.
For now this links in more libs than needed (libffi for example), we can figure
out later how to link in those libs per-tool later.

llvm-svn: 72430
2009-05-26 19:11:47 +00:00
Jay Foad e609ab00a5 Work around the fact that GNU libstdc++'s debug mode uses RTTI.
llvm-svn: 71871
2009-05-15 18:13:31 +00:00
Daniel Dunbar 310511d429 Allow client Makefiles control over whether they want -pedantic by
defining NO_PEDANTIC.
  - Pedantic C89 is a painful language...

llvm-svn: 71545
2009-05-12 07:26:49 +00:00
Daniel Dunbar 8a28e011f4 Refactor dependency generation for .ll files.
- This matches the normal dependency generation code.

 - This also fixes the problem that when building a normal and bitcode
   archive from the same source, the dependency files would overwrite
   one another. Which was bad.

llvm-svn: 71542
2009-05-12 06:35:50 +00:00
Daniel Dunbar 583c5dcd76 Remove obsolete Makefile magic for calling llvm-upgrade
llvm-svn: 71540
2009-05-12 05:49:22 +00:00
Daniel Dunbar c25ba426bd Install bytecode libraries with a .bca suffix, otherwise it isn't
possible to build both a .a and a .bca.
 - My understanding is no one else is using this stuff, please let me
   know if I am wrong.

llvm-svn: 71539
2009-05-12 05:35:40 +00:00
Mike Stump d1b4636717 In non-pic builds, we can use -mdynamic-no-pic for a little more speed.
llvm-svn: 71281
2009-05-08 23:08:58 +00:00
Anton Korobeynikov 0a0cc2d7b7 Workaround libstdc++ bug when crosscompiling to mingw.
Patch by Jay Foad!

llvm-svn: 70849
2009-05-04 10:25:30 +00:00
Mikhail Glushenkov 2c332fec97 Support --with-llvmgccdir and friends in llvmc, take 2.
Should now work when building with objdir != srcdir and when llvm-gcc is not
available.

Thanks to Duncan Sands for testing and advice!

llvm-svn: 69700
2009-04-21 19:46:10 +00:00
Evan Cheng 5770950dbb No, we are not avoiding -O3, just -fstrict-aliasing.
llvm-svn: 69633
2009-04-20 22:49:59 +00:00
Evan Cheng 40c52322a7 One Mac OS X, just build with -O3 but without -fstrict-aliasing (which is kinda broken).
llvm-svn: 69630
2009-04-20 22:16:40 +00:00
David Greene 80f48bd13f Add a --enable-profiling option to configure to build Debug+Profile and
Opt+Profile tools.  Now we can profile any kind of flavor we build.

llvm-svn: 69351
2009-04-17 14:49:22 +00:00
Chris Lattner b4494eb887 move clang-specific makefile goop to clang makefile.
llvm-svn: 69206
2009-04-15 19:57:42 +00:00
Bill Wendling e8b48b49c9 Don't install the libLLVMHello.dylib example.
llvm-svn: 68807
2009-04-10 18:48:38 +00:00
Bill Wendling cd1e037c50 Add compatibility_version and current_version flags when creating dylibs.
llvm-svn: 68801
2009-04-10 18:20:41 +00:00
Bill Wendling f704f90f6e Revert r68708. It was causing this failure in the self-hosting buildbot:
llvm[2]: Compiling lto.cpp for Debug build  (PIC)
make[2]: *** No rule to make target `/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.sh.build/Debug/lib/libLLVMBitWriter.a', needed by `/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.sh.build/Release/lib/libLTO.dylib'.  Stop.
make[1]: *** [all] Error 1
make: *** [all] Error 1

llvm-svn: 68721
2009-04-09 18:26:57 +00:00
Misha Brukman a04ede8d5b Make sure to rebuild dependencies for the `check' and `unittests' targets so
we're not testing out-of-date code.  This also makes "make check" and
"make unittests" work out-of-the box right after the configure step, without
requiring the user to run "make tools-only" or "make libs-only".

Tested on Linux/x86_64 and Darwin/x86.

llvm-svn: 68708
2009-04-09 14:57:00 +00:00
Mike Stump 82d7cfda21 Avoid -O3 on Darwin for now.
llvm-svn: 68455
2009-04-06 19:58:11 +00:00
Julien Lerouge 15833b93cf Fix build on MacOS 10.4 systems (suggested by Mike Smith).
llvm-svn: 67855
2009-03-27 18:18:00 +00:00
Duncan Sands 99d0b2353e Revert previous change in favour of an explanatory
comment.

llvm-svn: 67833
2009-03-27 11:35:00 +00:00
Duncan Sands af7ae6ce3c A Release-Asserts build makes it sound like assertions
are turned on, while in fact they are turned off.  Name
this Release-NoAsserts instead.

llvm-svn: 67831
2009-03-27 09:41:56 +00:00
Evan Cheng 3138f7a781 Missed this as part of r67451.
llvm-svn: 67500
2009-03-23 03:45:56 +00:00
Bill Wendling a443ab4bcd Really should pass -dylib to the linker...
llvm-svn: 67469
2009-03-22 08:56:15 +00:00
Bill Wendling f3ef2c758f A dylib should be built as a dylib and not a bundle.
llvm-svn: 67468
2009-03-22 08:28:45 +00:00
Nick Lewycky 18ca80cdda Revert r67334 and r37349 which break "make check" on Linux.
llvm-svn: 67368
2009-03-20 07:56:31 +00:00
Evan Cheng 05799db963 More makefile changes to allow dejagnu tests to pass when system tools default to a different target from the llvm configuration (e.g. 64-bit gcc and 32-bit llvm).
llvm-svn: 67334
2009-03-19 20:27:23 +00:00
Sebastian Redl 6c2d55922f Fix Clang build for srcdir != objdir
llvm-svn: 67008
2009-03-14 14:42:51 +00:00
Sebastian Redl f2e58d6694 Add support for generating Clang diagnostic defs to Makefile.rules.
llvm-svn: 67006
2009-03-14 11:59:18 +00:00
Daniel Dunbar 5b86bf527e Add ENABLE_COVERAGE, for building a +Coverage (gcov) configuration.
- Required some extra makefile tweaks to introduce a new flag var
   which only goes to compile/link tools but not the relink step,
   otherwise we get a copy of libgcov in the relinked .o files.

 - No configure magic for this.

llvm-svn: 66945
2009-03-13 20:59:41 +00:00
Scott Michel b1a830abf0 Darwin 10.4.x: "-rpath" is unnecessary when linking shared libraries.
llvm-svn: 66825
2009-03-12 21:03:53 +00:00
Bill Wendling 207495d8ea Revert r66765 and r66766. These were causing build failures on Darwin.
llvm-svn: 66770
2009-03-12 04:10:09 +00:00
Nick Lewycky ca433d8a84 Set ARCH to x86 on mixed 32/64-bit Linux systems.
Remove the explicit if OS = Darwin test around the setting of -m32/-m64.

llvm-svn: 66765
2009-03-12 03:34:19 +00:00
Rafael Espindola 59e371ac96 Fix rebuilding after a .td file is modified. This was broken since revision
65834.

llvm-svn: 66553
2009-03-10 17:58:54 +00:00
Chris Lattner 869b6bfd0b don't pass -Wl,-exported_symbol -Wl,_main to the linker when building on
Tiger.  PR3743

llvm-svn: 66550
2009-03-10 17:15:56 +00:00
Evan Cheng 3807bb77fa Re-apply 66315, but restrict it to Darwin only.
llvm-svn: 66427
2009-03-09 18:28:37 +00:00
Chris Lattner 3b935fbcf2 Fix PR3743 - -mmacosx-version-min inappropriate for Mac OS X 10.4.11,
by stripping off any versions past the "10.4".

llvm-svn: 66392
2009-03-09 04:45:03 +00:00
Nick Lewycky f653c2e18e Revert r66315. Fix the build on mixed 64/32 Linux systems.
llvm-svn: 66350
2009-03-07 22:17:05 +00:00
Evan Cheng 9153f08c74 If ARCH is x86_64, pass -m64 to the host compiler. -m32 for i386. This makes sure the JIT work correctly.
llvm-svn: 66315
2009-03-07 01:40:17 +00:00
Daniel Dunbar 3b3c3f02cc Rename my makefile debugging rule to prevent accidental collisions.
llvm-svn: 66294
2009-03-06 22:23:25 +00:00
Mikhail Glushenkov ab6f8ded33 LINK_COMPONENTS should be added to LLVMLibsOptions.
From the code: "There are "Proj" libs (defined by the user's project) and "LLVM"
libs (defined by the LLVM project)." LINK_COMPONENTS are clearly defined by the
LLVM project.

Additionally, this fixes an issue with llvmc's build process:-)

llvm-svn: 65940
2009-03-03 10:03:27 +00:00
Nick Lewycky 7d01e394ba Switch to using -Wl,-R on Solaris.
llvm-svn: 65927
2009-03-03 04:55:15 +00:00
Nick Lewycky 9c51e8f962 Fix build on Cygwin.
llvm-svn: 65922
2009-03-03 03:36:50 +00:00
Mikhail Glushenkov c6333bdc50 Remove duplication in Makefile.rules.
Merge common bits from the LLVMC and TABLEGEN sections.

llvm-svn: 65834
2009-03-02 09:42:59 +00:00
Mikhail Glushenkov 7cff81825f Move the rules for building plugins to Makefile.rules.
llvm-svn: 65827
2009-03-02 09:04:13 +00:00