[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Below is a list of machines that people have attempted to compile GNUstep on. GNUstep compiles with little or no trouble on many of the more popular operating systems. Some machines marked with Unstable may have some trouble or may not work at all.
A recommended compiler is listed for each machine, if known. You should try to use the recommended compiler for compiling GNUstep, as GNUstep is quite complex and tends provoke a lot of errors in some compilers. Even versions newer than the listed compiler may not work, so don't just get the latest version of a compiler expecting it to be better than previous versions.
If you have compiled GNUstep on a specific machine, please send information about what you needed and any special instructions needed to the GNUstep maintainer gnustep-maintainers@gnu.org.
If your having mysterious trouble with a machine, try compiling GNUstep without optimization. Particularly in the newer GCC compilers, optimization can break some code. The easiest way to do this is when configuring, `CFLAGS="" ./configure'. Or when building, `make OPTFLAG=""'.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
GNUstep is being ported to Darwin. The current Darwin compiler doesn't handle __builtin functions, so these are diabled, which may cause problems with invocations and DO. Other than that it mostly compiles. Expect some other irritations that haven't been found yet. You need to use the ObjC runtime that comes with Darwin. To do this configure (gnustep-make) like this:
./configure --with-library-combo=nx-gnu-gnu |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Compiles "out of the box" on FreeBSD 3.4.
You need to use gmake not make to compile the GNUstep packages. A special port of gdb can be used with the Objective-C patches from ftp://ftp.pcnet.com/users/eischen/FreeBSD/gdb-4.17-port.tar.gz
The best compiler for GNUstep is the latest release of the GNU Compiler Collection (GCC). You can find it at http://egcs.cygnus.com/.
If you want to use the native POSIX threads support from `libc_r' pass
--enable-threads=posix
to configure. This is the recommended option as
this is the FreeBSD threads package that gives the best results --with others
you may be unable to run some examples like `diningPhilosophers'.
The whole compilation process can fail if you have another threads library installed so watch out for installed packages like `pth' and such. Besides the support for libc_r, GNUstep will also look for `pth' and `pcthreads', so if you have installed them and they aren't detected prepare to write a nice bug report.
This can be done more much easily by using the port version. Just cd
to `/usr/ports/lang/egcs' and do a "make WANT_THREADS=yes install"
.
Easy.
If configure cannot find tiff.h or the tiff library and you have it installed
in a non-standard place (even `/usr/local'), you may need to pass these
flags to configure: CFLAGS="-I/usr/local/include"
and
LDFLAGS="-L/usr/local/lib"
.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
gmake (GNU make) gcc 2.8.x |
Seems to compile ok, but some tests crash. Possibly due to a performace 'hack' in base. Might be a good idea to upgrade to FreeBSD 3.x. You need to use gmake not make to compile the GNUstep packages.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
export CC=egcs configure .... |
Since RedHat 5.x also comes standard with an old version of gcc.
On RedHat 7.0, configure like this
CC=egcs LDFLAGS="-u shmctl@GLIBC_2.2 -L/lib -lc -u getpwuid_r@GLIBC_2.1.2 -L/lib -lc -u getpwnam_r@GLIBC_2.1.2 -L/lib -lc" ./configure |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Invocations (and DO) do not work well. The major problem is sending data with data sizes less than 4 bytes (chars, shorts, etc). To fix this, we recommend using the ffcall libraries (Read the instructions on this in the configuration section).
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
If you want threads, you'll probably have to get the latest gcc compiler and glibc library (which has the threads library) and install both.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Information is for Version 3.2C
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
To avoid using the tiff library in /usr/openwin, configure like this:
LIBS=-L/usr/local/lib ./configure |
Even with the above patch, invocations (and DO) still don't work well. The major problem is sending messages with more than four arguments. We recommend using the ffcall libraries when configuring (Read the instructions on this in the configuration section).
If you are using threads, make sure the Objective-C runtime (libobjc that comes with gcc) is compiled with threads enabled (This is true by default) AND that it is compiled with the _REENTRANT flag defined (This does not seem to be true by default). Or use the gnustep-objc package. Also make sure THREADS is set to 'posix' not 'solaris'.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
GNUstep has been tested on version 6.2-6.4 of Suse
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
GNUstep has been tested on version 7.0 of Suse
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Special Instructions for GNUstep installation on Unixware 2.1 systems
gzip (you need this to unpack other stuff) make (to build everything) m4 (for autoconf etc) autoconf (if you need to change anything) bison flex binutils (required by gcc if you want to debug) gcc-2.8.1 (configure --with-gnu-as --with-gnu-ld --with-stabs) NB. gcc-2.8.1 needs a fix to __do_global_dtors_aux() in crtstuff.c on Unixware 2.1.3 (and possibly other unixware versions) The fix is already in recent versions of egcs. |
================================== static void __do_global_dtors_aux () { static func_ptr *p = __DTOR_LIST__ + 1; static int completed = 0; if (completed) return; while (*p) { p++; (*(p-1)) (); } #ifdef EH_FRAME_SECTION_ASM_OP __deregister_frame_info (__EH_FRAME_BEGIN__); #endif completed = 1; } ====================================== |
So I have added a '-a' flag to gdomap to give it the name of a file containing IP address and netmask information for the network interfaces on the system.
You need to set up a file (I suggest '/etc/gdomap_addresses') containing the information for your machine and modify your system startup files in /etc/rc?.d to run gdomap, telling it to use that file.
eg. If your machine has an IP address of '193.111.111.2' and is on a class-C network, your /etc/gdomap_addresses file would contain the line
193.111.111.2 255.255.255.0 |
and your startup file would contain the lines
. /usr/local/GNUstep/Makefiles/GNUstep.sh gdomap -a /etc/gdomap_addresses |
If you don't set gdomap up correctly, Distributed Objects will not work.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
CPPFLAGS=-I/usr/include/win32api ./configure |
For shared libs, make sure to specify shared=yes explicitly when building:
make shared=yes |
For static libs, use shared=no
, Make sure files and compilation
done in Unix mode (no ^M in files, export CYGWIN=binmode usually
works if cygwin is not buggy). Gdomap services not set up
correctly. Must add services lines to `C:\WINDOWS\services' (on
Windows 98) or xxx (on Windows NT). Base library only. No native GUI
backend.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
[ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |