Go to the first, previous, next, last section, table of contents.
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=""'.
- `Recommended compiler'
-
Unknown
- `Extra libs needed'
-
Don't use gnustep-objc or ffcall.
- `Special Instructions'
-
GNUstep has not been ported to Darwin. Expect some minor irritations and
possibly one or two major ones if your trying to do this. Darwin doesn't
have a GCC ObjC Compiler, so 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
- `Recommended compiler'
-
Unknown
- `Extra libs needed'
-
Unknown
- `Special Instructions'
-
Unknown
Compiles "out of the box" on FreeBSD 3.4.
- `Recommended compiler'
-
gcc 2.95.2
- `Extra libs needed'
-
Unknown
- `Special Instructions'
-
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"
.
- `Recommended compiler'
-
gcc 2.8.x
- `Extra libs needed'
-
Unknown
- `Special Instructions'
-
Only static libraries work on this system.
Use /stand/sysinstall to install these packages if you have not
already done so:
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.
- `Recommended compiler'
-
With 5.x, the egcs compiler that comes with RedHat. Later versions may
have gcc installed, although 7.0 comes with a snapshot of gcc (called
2.96) which is unsuitable for compiling Objective-C code. For 7.0 you
should install the egcs compatibility packages (or an official gcc release).
- `Extra libs needed'
-
Unknown
- `Special Instructions'
-
Make sure you have a decent version of the compiler. Try `cc -v'
or `gcc -v' to get the version of the compiler.
With 5.x, make sure you set CC=egcs before configuring, as
in:
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
- `Recommended compiler'
-
egcs-1.1.2 (default compiler), or
gcc-2.95
- `Extra libs needed'
-
None.
- `Special Instructions'
-
You need to compile without optimization or the compiler will not be
able to compile several files (CFLAGS="" ./configure). Compiling with
CFLAGS="-O" also works. The gcc-2.95 compiler fixes this problem. There
may be a problem with the X server that causes programs to crash with a
X_QueryColors error. If so, get a newer X server at
ftp://ftp.linuxppc.org/linuxppc/contrib/linuxppc-1999/software/XFree86-FBDev-3.3.3.1-49b.ppc.rpm.
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).
- `Recommended compiler'
-
Unknown
- `Extra libs needed'
-
Unknown
- `Special Instructions'
-
Not ported at all to this machine. Might be better now, but no current
testing. Some files don't compile - get internal compiler
errors using gcc 2.8.1.
- `Recommended compiler'
-
egcs-2.90.25 980302 (egcs-1.0.2 prerelease) which comes standard with
DR 3.
- `Extra libs needed'
-
None.
- `Special Instructions'
-
Comes with a good version of gcc.
Seems to compile and install ok, althouth DR3 has an old version of
glibc, which requires some workarounds which should be taken care of in
the configuration. Not completely tested, so some aspects, particular
object invocations and DO may not work properly.
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.
- `Recommended compiler'
-
Unknown
- `Extra libs needed'
-
libiconv
- `Special Instructions'
-
See the README.NetBSD file located in the gnustep-make package.
- `Recommended compiler'
-
Build #12 of the system.
- `Extra libs needed'
-
Unknown
- `Special Instructions'
-
See http://www.netwinder.org/~patrix
- `Recommended compiler'
-
Unknown
- `Extra libs needed'
-
Unknown
- `Special Instructions'
-
Can only compile with static libraries. Gives a lot of warnings
Information is for Version 3.2C
- `Recommended compiler'
-
egcs-1.1.1/1.1.2, gcc-2.95
- `Extra libs needed'
-
Unknown
- `Special Instructions'
-
Can only compile with static libraries. Compiler may fail when
linking executables (e.g. gdnc). Standard ranlib and ar programs are
to feable to create libraries. Should use GNU binutils versions. Linker
sometimes fails to find symbols, in which case you may need to link with
a library twice. For instance, add an extra -lgnustep-xgps in
ADDTIONAL_TOOL_LIBS in the GNUmakefile(.preamble).
- `Recommended compiler'
-
Unknown
- `Extra libs needed'
-
tiff, Don't use the one in /usr/openwin
- `Special Instructions'
-
See the Solaris 2.6 section for more instructions.
- `Recommended compiler'
-
gcc 2.95.3. Version 2.95.2 has several bugs that GNUstep tickles.
- `Extra libs needed'
-
tiff, Don't use the one in /usr/openwin
- `Special Instructions'
-
There is no need to patch the compiler for the builtin_apply problem unless
you are not using the ffcall libraries.
There is a patch to fix this in the contrib directory
on the ftp sites (This is also true for all versions of gcc/egcs up
through 2.95.2 (possibly fixed in later versions)).
To avoid using the tiff library in /usr/openwin, configure like this:
LIBS=-L/usr/local/lib ./configure
if, for instance, you have put a newer tiff library in /usr/local/lib
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.
- `Recommended compiler'
-
egcs 1.1.2
- `Extra libs needed'
-
Unknown
- `Special Instructions'
-
Make sure there are no -g compiler flags (specify `CFLAGS=
./configure', when configuring) or remove it from `OPTFLAG'
make/config.make. You will probable get a lot of text relocation
warnings, which probably can be ignored. See the other Solaris
instructions above for more information.
GNUstep has been tested on version 6.2-6.4 of Suse
- `Recommended compiler'
-
Standard
- `Extra libs needed'
-
None
- `Special Instructions'
-
It seems that there is a problem with the default kernel build
distributed with Suse which means that the socket binding used by
gdnc doesn't work. If you recompile the kernel then it starts working.
GNUstep has been tested on version 7.0 of Suse
- `Recommended compiler'
-
Standard
- `Extra libs needed'
-
None
- `Special Instructions'
-
See the instructions for Suse 6.x
- `Recommended compiler'
-
Unknown
- `Extra libs needed'
-
Unknown
Special Instructions for GNUstep installation on Unixware 2.1 systems
- 1
-
Tune the kernel to increase the argument space so that we can pass long
command-line argument strings to processes (which the makefiles do)
(/etc/conf/bin/idtune ARG_MAX 102400)
- 2
-
Install raft of the latest GNU software
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;
}
======================================
- 3
-
Having got gcc working - it's probably a good idea to rebuild
all your GNU software using it!
- 4
-
Build gstep as normal.
- 5
-
The SIOCGIFCONF ioctl sometimes doesn't work on unixware after applying
some of the OS patches.
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.
- `Recommended compiler'
-
gcc 2.95.3 (Cygwin release 1.1.8)
- `Extra libs needed'
-
Objective-C library DLL (ftp://ftp.gnustep.org/pub/gnustep/libs)
for shared libs. It's a good idea to remove the libobjc.a that comes with gcc
(gcc -v for location) so that it isn't accidentally found.
Ffcall is not ported to cygwin so don't try to use it (some
invocation and DO stuff will not work).
- `Special Instructions'
-
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.
- `Recommended compiler'
-
gcc 2.95.2 (MingW release 1999-11-07)
- `Extra libs needed'
-
Objective-C library DLL (ftp://ftp.gnustep.org/pub/gnustep/libs)
for shared libs. ffcall is not ported to Mingw32 so don't try to use it.
- `Special Instructions'
-
See the `README.MinGW' file located in the gnustep-make Documentation
directory for instructions.
Base library only. No native GUI backend.
Go to the first, previous, next, last section, table of contents.