Commit Graph

691 Commits

Author SHA1 Message Date
theraven
65e3dc736c Added test of forwarding mechanisms. 2013-01-12 15:49:39 +00:00
theraven
b757ea9ffb Tidied up tests, made them work with make as well as ninja generators for
CMake.
2013-01-12 13:24:21 +00:00
theraven
6317b79a10 Implemented the new exception ABI, and a load of tests for it. This is used by
clang trunk if -fobjc-runtime-1.7 is specified and provides significantly
better interoperability with foreign exceptions.

Note: Most of the exception tests will not pass with gcc or clang < 3.3.  They
test things that are impossible to implement quite correctly with the
GCC-compatible exception ABI.

Also updated the release notes to reflect recent improvements.
2013-01-12 13:17:36 +00:00
qmathe
7e5d437065 Restored r35794 changes (that were removed in r35893) but applied them to the
GNUMakefile rather than the Makefile.

This fixes segfaults in programs compiled with Clang using -fobjc-nonfragile-abi 
on Linux x86-32, for a GNUmakefile-based build with GNUstep Make active.
2013-01-11 13:35:42 +00:00
theraven
0dcb0885bf Update opts to work with LLVM trunk (3.3). 2013-01-10 09:22:25 +00:00
theraven
aeb0c913b9 Enabled property attribute test, fixed failure. 2013-01-09 21:50:11 +00:00
theraven
ef5f8b744d Added more test cases. 2013-01-09 21:42:16 +00:00
theraven
bcf6e32311 Make it possible to disable building the tests. 2013-01-09 19:02:00 +00:00
theraven
d1336543d8 Build with exceptions (fixes the issue with crashes where +initialize throws)
Start adding the tests to CMake.
2013-01-09 19:00:17 +00:00
theraven
d1f3463ac7 Make sure that there is always a comma between T and V in property attributes. 2013-01-09 18:56:05 +00:00
theraven
95aef24803 Fix crash in ARC assignment.
Reported by Banlu Name-of-the-week!
2013-01-05 16:13:23 +00:00
theraven
c6614a218c Install libobjcxx if we're building it. 2013-01-02 14:30:02 +00:00
theraven
86d07fa024 Install libobjcxx, if it's built. 2012-12-23 11:47:07 +00:00
theraven
ee927d20a5 Remove definitions that don't appear to be needed anymore. 2012-12-23 10:53:38 +00:00
theraven
c98014b667 Actually commit the disabling of the llvm opts, and not the output from cmake
help...
2012-12-23 10:31:16 +00:00
theraven
be2ee54190 Default building the LLVM optimisations to off if the LLVM CMake module is not
found.
2012-12-23 10:15:10 +00:00
theraven
150aa4ef19 Fix linkage in libobjc. 2012-12-22 16:43:17 +00:00
theraven
db3cbec65a Make sure that the asm files are built. Add a configuration option for the include headers so OpenBSD can put them in include/gnustep/objc/ 2012-12-22 11:35:29 +00:00
theraven
a5cc173310 Correctly handle the case of GNUstep config not existing. 2012-12-22 11:12:42 +00:00
theraven
651962702a Add uninstall target to CMake. 2012-12-22 11:04:20 +00:00
theraven
5cd0a37e27 Change how we do GOT-relative relocations in objc_msgSend on i386 to make gas
happier.
2012-12-22 09:31:41 +00:00
theraven
bfc1a2ed11 Add a flag for setting the library name. 2012-12-22 09:22:12 +00:00
theraven
501d5b9828 Set the C++ runtime to nothing if it is not found. 2012-12-22 09:18:18 +00:00
theraven
2841400e0c Add CPack configuration to CMakeLists.txt. RPMs, DEBs and tarballs can now be built directly from the build system. 2012-12-18 11:57:55 +00:00
theraven
080107e2db Correctly pass the LLVM version in to the LLVM passes as they are built. 2012-12-17 19:29:39 +00:00
theraven
a5b4ab9937 Specify the current runtime version to target if the compiler supports this
flag.  This means that the .m files in the runtime will take advantage of
features of this runtime when compiled with a recent clang.
2012-12-17 16:11:56 +00:00
theraven
d0562d2127 Added helper function for C++ non-POD type atomic properties.
Fixed prototypes of specialised property functions.
2012-12-17 15:51:19 +00:00
theraven
a9be008911 Add optimised special-case property function. 2012-12-17 12:52:16 +00:00
theraven
3c7d6f8fd9 Fix merging CFLAGS. 2012-12-14 09:40:39 +00:00
theraven
77591f9956 Handle the case where the compiler generates the exception table entries in the wrong order. 2012-12-14 09:40:16 +00:00
theraven
7bff0ba7e6 Revert r35794, which broke the Makefile by introducing GNUisms. 2012-12-13 16:51:25 +00:00
theraven
01bf761766 Target i586 on i686 with clang. 2012-12-13 16:45:30 +00:00
theraven
7afed09286 Change how installation location is detected, as per Quentin's suggestion. 2012-12-13 16:30:50 +00:00
theraven
94570d9895 Actually fix header install locations... 2012-12-13 14:44:52 +00:00
theraven
6c131e2eb7 Fix header installation location. 2012-12-13 14:43:33 +00:00
theraven
1d2e5f7a2d Remove non-functional script for doing in-place builds of the LLVM optimisations. 2012-12-13 14:22:08 +00:00
theraven
1002b5fd86 Remove the non-functional Makefile.clang 2012-12-13 14:04:54 +00:00
theraven
4c6f6dbdcf Updated WIP announcement for 1.7. 2012-12-13 13:44:12 +00:00
theraven
3081618c47 Add CMake build system for libobjc2. This will replace the existing build
systems after some further testing.

Currently, we have three build systems for libobjc2:

- GNUmakefile, which provides a number of options but not very cleanly (i.e.
  the only way of knowing what they are is to read the source) and doesn't
  correctly build the Objective-C++ runtime.
- Makefile, which works correctly for a single configuration, but requires
  tweaking by hand to build others.
- Makefile.clang, which is experimental, doesn't really work, and confuses
  people.

The new CMake system:

- Correctly installs in a GNUstep location if one exists, or in a system
  location otherwise.  This is configurable at build time.
- Provides inspectable options for all of the configuration choices (run ccmake
  to see them all)
- Easily supports cross-compilation and out-of-tree builds
- Is easy to extend and inspect
- Automatically builds the LLVM optimisations (which already use CMake, as it's
  the only clean way of building LLVM optimisations out of tree) and can be
  easily configured not to if they are not required.
- Will build a single libobjc.so for platforms that provide a separate C++
  runtime and a separate libobjcxx for ones that don't.
- Can generate build files for make, ninja, XCode, Eclipse, and Visual Studio

For those unfamiliar with CMake, the best way of building is an out-of-tree
build.  For the simplest case, it's just a matter of:

$ mkdir build
$ cd build
$ cmake ..
$ make
$ sudo -E make install

If you wish to edit any of the configuration options, the easiest way is to run
ccmake instead of cmake.  You can also run ccmake . from the build directory to
edit the options after initial configuration.

For faster builds , try using ninja instead of make.  Add -G Ninja to the
[c]cmake command line and then run ninja instead of make.
2012-12-13 11:08:07 +00:00
theraven
713957f9d2 Fix lookup of properties after getting their attributes. 2012-12-11 17:30:04 +00:00
theraven
85fd42dd5a Fix an infinite loop when first sending a message to a class that has a hidden class. 2012-12-11 17:12:08 +00:00
theraven
c7419155d5 Add some explicit NULL checks in property introspection code. 2012-12-10 16:38:15 +00:00
qmathe
e8c14d95b9 Fixed segfaults in programs compiled with Clang using -fobjc-nonfragile-abi on
Linux x86-32. 

If both -03 and -fobjc-nonfragile-abi are used, -march=i586 is required (at 
least on my Linux machine). This flag was lost during the recent GNUmakefile 
rewrite (see r35690).

In addition, I also added MinGW32 and pthread flags used previously in the 
GNUmakefile but missing in the Makefile.
2012-11-15 13:31:00 +00:00
rfm
aa98226a0c add diagnostics and warnings to cope better if in a partially set up gnustep 2012-11-02 20:27:38 +00:00
rfm
0d6f7bfdfa dd help on end of installation 2012-11-02 19:34:06 +00:00
rfm
9230241327 add a little informatrion/diagnostic 2012-11-02 19:11:51 +00:00
theraven
3649fe37ec Fix while -> if bug introduced when refactoring ARC code which caused infinite
loop.

Reported by Tom Davie.
2012-10-23 08:27:42 +00:00
theraven
abc1d44c9c Fix handling of properties that refer to an instance variable other than the
default.
2012-10-17 09:02:45 +00:00
rfm
17b8ff43c9 added distclean targer ... calls clean 2012-10-15 10:37:50 +00:00
rfm
25962bc45e Update support for installation in correct location for GNUstep 2012-10-15 09:31:34 +00:00