1\input texinfo   @c -*-texinfo-*-
2@settitle Platform Compatibility
3
4@ifclear HOWTO
5@c Machine Specific, Compilers, , (DIR)
6@node Machine Specific, Compilers, , (DIR)
7@chapter Machines
8@end ifclear
9
10This list is out-of-date.  Use the Platform_compatibility guide on the
11GNUstep Wiki for better information.
12
13Below is a list of machines that people have attempted to compile
14GNUstep on. GNUstep compiles with little or no trouble on many of the
15more popular operating systems. Some machines marked with
16@emph{Unstable} may have some trouble or may not work at all.
17Platforms marked @emph{Needs Testing} are not actively tested by developers
18and need someone to help with reporting problems and fixes.
19Platforms marked @emph{Obsolete} are very old distributions. No one really
20knows if GNUstep works on these although they may.
21
22If you have compiled GNUstep on a specific machine, please send information
23about what you needed and any special instructions needed to
24GNUstep @email{bug-gnustep@@gnu.org}.
25
26@menu
27* Compilers::
28* CentOS/i386::
29* Darwin/ix86::
30* Darwin/PowerPC::
31* Debian/Alpha::
32* Debian/i386::
33* Debian/em64t::
34* Debian/PowerPC::
35* Debian/SPARC::
36* FedoraCore/i386::
37* FreeBSD 5.x::
38* FreeBSD 4.x::
39* FreeBSD 3.x::
40* FreeBSD 2.x::
41* Gentoo/i686::
42* Gentoo/PPC::
43* Gentoo/amd64::
44* Gentoo/alpha::
45* Gentoo/sparc::
46* Irix 6.5/MIPS::
47* MacOSX/PowerPC::
48* MkLinux/PowerPC::
49* NetBSD/i386::
50* NetBSD/Sparc64::
51* Netwinder::
52* OpenBSD 3.x::
53* OSF/Alpha::
54* RedHat/i386::
55* Slackware/Intel::
56* Slackware/Sparc::
57* Solaris 2.5.1/Sparc::
58* Solaris/Sparc::
59* Solaris 2.7/Intel::
60* Suse 6.x/Intel::
61* Suse/Intel::
62* Suse 7.x/PPC::
63* Unixware-2.1.3/Intel::
64* Windows with CYGWIN::
65* Windows with MinGW::
66* Yellowdog/PowerPC::
67@end menu
68
69@c -----------------------------------------
70@node Compilers, CentOS/i386, Machine Specific, Machine Specific
71@section Compilers
72
73A recommended compiler is listed for each machine, if known. You should try
74to use the recommended compiler for compiling GNUstep, as GNUstep is quite
75complex and tends provoke a lot of errors in some compilers. Even versions
76newer than the listed compiler may not work, so don't just get the latest
77version of a compiler expecting it to be better than previous versions.
78
79Compiler notes: If a recommended compiler is not listed, take note of the
80following information before choosing the compiler you use.
81@table @var
82@item egcs or gcc < 2.95
83Most likely will not work and is not supported.
84@item gcc 2.95.x
85Support for this compiler is deprecated as of Aug 2006. Mostly likely
86it will work in the near future and bug fixes will be accepted, but any
87bugs are considered non-critical.
88@item gcc 2.96
89Not an official gcc release. Some versions (Redhat, Mandrake) have problems
90that prevent GNUstep from being compiled correctly and cause
91mysterious errors. Not supported.
92@item gcc 3.0.x
93A fairly good compiler.
94@item gcc 3.1
95Several bugs where introduced in the version. It's probably better to
96avoid this one, although it might work fine.
97@item gcc 3.2.x
98Pretty good.
99@item gcc 3.3.x
100Recommended. Fixes some bugs relating to protocols as well as other
101improvements.
102@item gcc 3.4.x
103Recommended. The #import directive is no longer deprecated as of this
104version of the compiler.
105@item gcc 4.0
106Probably OK. Did start triggering compiler errors on parts of base, but
107there has been a workaround in base for that. Does not work on MacOSX.
108@item gcc 4.0.1
109Probably OK. This version should work on MacOSX.
110@item gcc 4.1.x
1114.1.0 and 4.1.1 don't work if you use precompiled headers.
112@end table
113
114If your having mysterious trouble with a machine, try compiling GNUstep
115without optimization. Particularly in the newer GCC compilers,
116optimization can break some code. The easiest way to do this is when
117configuring, @kbd{CFLAGS="" ./configure}. Or when building,
118@kbd{make OPTFLAG=""}.
119
120Also if you manually upgraded gcc and/or make, we recommend reading the
121documentation at @url{http://www.LinuxFromScratch.org} for tips on compiling
122and installing gcc and make. If you had GNUstep previously installed, make sure
123you completely remove all of it, including installed init scripts.
124
125Support Notes:
126@table @var
127@item Supported
128Regularly used and tested by developers
129@item Release
130Tested before a release
131@item Unsupported
132Not regularly used or tested
133@item Unstable
134Has problems either building or running GNUstep or requires special
135setp procedures to run correctly.
136@end table
137
138@c -----------------------------------------
139@node CentOS/i386, Darwin/ix86, Compilers, Machine Specific
140@section CentOS/ix86 (@emph{Supported})
141
142This RedHat variant is well-tested and well-supported (tested at least
143up to CentOS release 4.4).  For more information, please check the
144section on RedHat/i386 below.
145
146@c -----------------------------------------
147@node Darwin/ix86, Darwin/PowerPC, CentOS/i386, Machine Specific
148@section Darwin/ix86 (@emph{Unsupported})
149
150Currently tested on Darwin 7.x
151
152@table @var
153@item Recommended compiler
154gcc 3.3.2 or greater 3.3.* versions.
155Older versions will not compile on Darwin and 3.4.* versions don't
156support GNU runtime compilation on Darwin currently (The GCC bug report
157is http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11572).
158
159Default compiler (Apple GCC) has unknown problems.
160Download the FSF GCC compiler and configure it with
161-enable-threads=posix. You don't need binutils or anything else.
162Use the GNU runtime. Make sure to add
163@example
164export CC=/usr/local/bin/gcc (use the correct path to FSF gcc)
165@end example
166so that the correct compiler is found
167
168@item Extra libs needed
169
170Use ffcall because libffi hasn't been ported to Darwin x86.
171
172@item Special Instructions
173
174Read the @url{README.Darwin} file in the gnustep-make/Documentation
175directory for complete instructions.
176
177@end table
178
179@c -----------------------------------------
180@node Darwin/PowerPC, Debian/Alpha, Darwin/ix86, Machine Specific
181@section Darwin/PowerPC (@emph{Supported})
182
183This section is for building the complete GNUstep system.
184This system will not interact at all with Mac OS X/Cocoa. It uses different
185complilers, different display systems, etc. For building GNUstep extensions
186to be used with Mac OS X (for instance, if you want to build something based
187on GNUstep, such as GSWeb or GNUMail), see the MacOSX/PowerPC section.
188
189Currently tested on Darwin 6.x, 7.x, 8.x
190
191@table @var
192@item Recommended compiler
193FSF gcc 4.x, gcc 3.3.2 or greater 3.3.* versions.
194Older versions will not compile on Darwin and 3.4.* versions don't
195support GNU runtime compilation on Darwin currently (The GCC bug report
196is http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11572).
197
198Apple gcc with Mac OS X 10.4 or later and XCode 2.5 or later
199
200@item Extra libs needed
201Use libffi (not ffcall). This should be enabled by default in gnustep-base
202so you don't have to type --enable-libffi. For 6.x, you need the dlcompat
203library (from @url{www.opendarwin.org}) to load bundles (not needed for 7.x
204or later). libjpeg that comes with fink conflicts with the Apple libraries
205and screw up other apps on Mac OSX (like X11).
206
207@item Special Instructions
208
209Read the @url{README.Darwin} file in the gnustep-make/Documentation
210directory for complete instructions. If you compiled FSF gcc by hand,
211make sure to rename to GNU libobjc library to libobjc-gnu.dylib
212
213@end table
214
215See also the MacOSX/PowerPC section
216
217@c -----------------------------------------
218@node Debian/Alpha, Debian/i386, Darwin/PowerPC, Machine Specific
219@section Debian/Alpha (@emph{Unsupported})
220
221@c -----------------------------------------
222@node Debian/i386, Debian/em64t, Debian/Alpha, Machine Specific
223@section Debian/i386 (@emph{Supported})
224
225Tested on sid.
226
227@c -----------------------------------------
228@node Debian/em64t, Debian/PowerPC, Debian/i386, Machine Specific
229@section Debian/em64t (@emph{Supported})
230
231Tested on 'unstable'.
232
233@c -----------------------------------------
234@node Debian/PowerPC, Debian/SPARC, Debian/em64t, Machine Specific
235@section Debian/PowerPC (@emph{Supported})
236
237Tested on sid.
238
239@c -----------------------------------------
240@node Debian/SPARC, FedoraCore/i386, Debian/PowerPC, Machine Specific
241@section Debian/SPARC (@emph{Release})
242
243Tested on sid.
244
245@c -----------------------------------------
246@node FedoraCore/i386, FreeBSD 5.x, Debian/SPARC, Machine Specific
247@section FedoraCore/ix86 (@emph{Supported})
248
249This RedHat variant is well-tested and well-supported (tested at least
250up to Fedora Core release 6).  For more information, please check the
251section on RedHat/i386 below.
252
253@c -----------------------------------------
254@node FreeBSD 5.x, FreeBSD 4.x, FedoraCore/i386, Machine Specific
255@section FreeBSD 5.x (@emph{Supported})
256
257Tested on 5.0, 5.1, 5.3
258@table @var
259@item Special Instructions
260Can install via /usr/ports/devel/gnustep, but not all required dependancies
261are installed. See the GNUstep-HOWTO for list of libraries.
262
263For 5.3, there is a bug in libkvm that requires that /proc be mounted. Use
264'mount_procfs proc /proc' or see the procfs man page.
265@end table
266
267@c -----------------------------------------
268@node FreeBSD 4.x, FreeBSD 3.x, FreeBSD 5.x, Machine Specific
269@section FreeBSD 4.x (@emph{Unsupported})
270
271@table @var
272@item Special Instructions
273For gcc 3.0.4, make WANT_THREADS_SUPPORT=YES
274
275For libxml2 2.4.24, make WITHOUT_PYTHON=YES
276
277@end table
278
279@c -----------------------------------------
280@node FreeBSD 3.x, FreeBSD 2.x, FreeBSD 4.x, Machine Specific
281@section FreeBSD 3.x  (@emph{Obsolete})
282
283Compiles "out of the box" on FreeBSD 3.4.
284
285@table @var
286@item Special Instructions
287You need to use gmake not make to compile the GNUstep packages. A special
288port of gdb can be used with the Objective-C patches from
289@url{ftp://ftp.pcnet.com/users/eischen/FreeBSD/gdb-4.17-port.tar.gz}
290
291The best compiler for GNUstep is the latest release of the GNU Compiler
292Collection (GCC).  You can find it at @url{http://egcs.cygnus.com/}.
293
294If you want to use the native POSIX threads support from @file{libc_r} pass
295@code{--enable-threads=posix} to configure.  This is the recommended option as
296this is the FreeBSD threads package that gives the best results --with others
297you may be unable to run some examples like @file{diningPhilosophers}.
298
299The whole compilation process can fail if you have another threads library
300installed so watch out for installed packages like @file{pth} and such.
301Besides the support for libc_r, GNUstep will also look for @file{pth} and
302@file{pcthreads}, so if you have installed them and they aren't detected
303prepare to write a nice bug report.
304
305This can be done more much easily by using the port version.  Just @code{cd}
306to @file{/usr/ports/lang/egcs} and do a @code{"make WANT_THREADS=yes install"}.
307Easy.
308
309If configure cannot find tiff.h or the tiff library and you have it installed
310in a non-standard place (even @file{/usr/local}), you may need to pass these
311flags to configure: @code{CFLAGS="-I/usr/local/include"} and
312@code{LDFLAGS="-L/usr/local/lib"}.
313
314@end table
315
316@c -----------------------------------------
317@node FreeBSD 2.x, Gentoo/i686, FreeBSD 3.x, Machine Specific
318@section FreeBSD 2.x (@emph{Obsolete,Unstable})
319
320@table @var
321@item Special Instructions
322Only static libraries work on this system.
323Use /stand/sysinstall to install these packages if you have not
324already done so:
325
326@format
327gmake           (GNU make)
328gcc 2.8.x
329@end format
330
331Seems to compile ok, but some tests crash. Possibly due to a
332performace 'hack' in base. Might be a good idea to upgrade to FreeBSD 3.x.
333You need to use gmake not make to compile the GNUstep packages.
334
335@end table
336
337@c -----------------------------------------
338@node Gentoo/i686, Gentoo/PPC, FreeBSD 2.x, Machine Specific
339@section Gentoo/i686 (@emph{Supported})
340
341@table @var
342@item Special Instructions
343libffi sometimes causes odd problems. Try to use ffcall.
344@end table
345
346@c -----------------------------------------
347@node Gentoo/PPC, Gentoo/amd64, Gentoo/i686, Machine Specific
348@section Gentoo/PPC (@emph{Supported})
349
350@c -----------------------------------------
351@node Gentoo/amd64, Gentoo/alpha, Gentoo/PPC, Machine Specific
352@section Gentoo/amd64 (@emph{Unsupported})
353
35432-bit mode only?
355
356@c -----------------------------------------
357@node Gentoo/alpha, Gentoo/sparc, Gentoo/amd64, Machine Specific
358@section Gentoo/alpha (@emph{Unsupported})
359
360@c -----------------------------------------
361@node Gentoo/sparc, Irix 6.5/MIPS, Gentoo/alpha, Machine Specific
362@section Gentoo/sparc (@emph{Unsupported})
363
364@c -----------------------------------------
365@node Irix 6.5/MIPS, MacOSX/PowerPC, Gentoo/sparc, Machine Specific
366@section Irix 6.5/MIPS (@emph{Unsupported})
367
368@table @var
369@item Recommended compiler
370gcc 3.2.1
371
372To use threads, it's necessary to bootstrap a compiler yourself:
373configure with --enable-threads=posix, that will work as long as you
374link EVERY objective C executable with -lpthread, no matter what
375warnings the irix linker produces!
376
377@item Extra libs needed
378Unknown
379
380@item Special Instructions
381If you cannot link the library because of the very low default limit
382(20480) for the command line length, then you should either use systune
383ncargs to increase the value (maximum is 262144) or link the library by
384hand.
385No libffi-support: Use ffcall
386
387
388@end table
389
390@c -----------------------------------------
391@node MacOSX/PowerPC, MkLinux/PowerPC, Irix 6.5/MIPS, Machine Specific
392@section MacOSX/PowerPC (@emph{Release})
393
394This section is for building the GNUstep extensions only.
395Use this if, for instance, if you want to build something based
396on GNUstep, such as GSWeb or GNUMail. If you want to build the complete
397GNUstep system independant of Mac OS X, see the Darwin/PowerPC section.
398
399Currently tested on MacOSX 10.1.5, 10.2, 10.3
400
401@table @var
402@item Recommended compiler
403Default. For 10.1.5, you need to add -no-cpp-precomp to CFLAGS
404(For instance, ./configure CFLAGS="-no-cpp-precomp" ...)
405
406@item Extra libs needed
407None.
408
409@item Special Instructions
410Warning ! To know how to install a complete GNUstep system on Mac OS X,
411read the Darwin/PowerPC section.
412By default, on Mac OS X, only the GNUstep extensions are built. Read the @url{README.Darwin} file in the gnustep-make/Documentation directory for
413complete instructions.
414
415To build the GNUstep extensions only is useful, when you want to build
416on Mac OS X, GNUstep related projects like gdl2, etc linked to Cocoa.
417Xcode project files exist, but they may not be up-to-date. Make sure
418/usr/sbin is in your path:
419
420@example
421PATH=$PATH:/usr/sbin
422@end example
423
424Then type:
425
426@example
427cd make
428./configure --with-library-combo=apple-apple-apple
429make install
430. /usr/GNUstep/System/Library/Makefiles/GNUstep.sh
431cd ../base
432./configure --with-xml-prefix=/usr --disable-xmltest
433make debug=yes install
434@end example
435
436On Mac OS X 10.1.5, there is no libxml. Either install libxml2
437or configure base with --disable-xml.
438@end table
439
440See also the Darwin/PowerPC section.
441
442@c -----------------------------------------
443@node MkLinux/PowerPC, NetBSD/i386, MacOSX/PowerPC, Machine Specific
444@section MkLinux/PowerPC (@emph{Unsupported})
445
446Tested with R2 RC2 (2004/03/04).
447
448@c -----------------------------------------
449@node NetBSD/i386, NetBSD/Sparc64, MkLinux/PowerPC, Machine Specific
450@section NetBSD/i386 (@emph{Release})
451
452Tested on NetBSD 2.0.2 (2005/04/15)
453
454@table @var
455@item Recommended compiler
456Standard
457
458@item Extra libs needed
459libiconv(?), libffi
460
461@item Special Instructions
462Use NetBSD packages to install needed libraries. libffi either comes
463automatically with gcc or can be installed separately and works fine
464(over ffcall).
465
466@end table
467
468@c -----------------------------------------
469@node NetBSD/Sparc64, Netwinder, NetBSD/i386, Machine Specific
470@section NetBSD/Sparc64  (@emph{Unstable})
471
472Tested on NetBSD 2.0.2 (2005/04/15)
473
474@table @var
475@item Recommended compiler
476Standard
477
478@item Extra libs needed
479libiconv(?), libffi
480
481@item Special Instructions
482Use NetBSD packages to install needed libraries. libffi either comes
483automatically with gcc or can be installed separately and is prefered
484over ffcall which does not work on Sparc64 machines.
485
486@end table
487
488gdomap crashes. Perhaps other things do not work as well.
489
490@c -----------------------------------------
491@node Netwinder, OpenBSD 3.x, NetBSD/Sparc64, Machine Specific
492@section Netwinder (@emph{Unstable})
493
494@table @var
495@item Recommended compiler
496Build #12 of the system.
497
498@item Extra libs needed
499Unknown
500
501@item Special Instructions
502See @url{http://www.netwinder.org/~patrix}
503@end table
504
505@c -----------------------------------------
506@node OpenBSD 3.x, OSF/Alpha, Netwinder, Machine Specific
507@section OpenBSD 3.9  (@emph{Unsupported})
508
509Information for version 3.9 (2006/08/13)
510
511Ports at
512@url{http://mail.rochester.edu/~asveikau/gnustep-openbsd/}
513
514@c -----------------------------------------
515@node OSF/Alpha, RedHat/i386, OpenBSD 3.x, Machine Specific
516@section OSF/Alpha  (@emph{Needs Testing, Unstable})
517@c Contact: suzukis@file.phys.tohoku.ac.jp
518
519Information is for Version 3.2C
520
521@table @var
522@item Recommended compiler
523Unknown
524
525@item Extra libs needed
526Unknown
527
528@item Special Instructions
529Can only compile with static libraries. Compiler may fail when
530linking executables (e.g. gdnc). Standard ranlib and ar programs are
531to feable to create libraries. Should use GNU binutils versions. Linker
532sometimes fails to find symbols, in which case you may need to link with
533a library twice. For instance, add an extra -lgnustep-gui in
534ADDTIONAL_TOOL_LIBS in the GNUmakefile(.preamble).
535
536@end table
537
538@c -----------------------------------------
539@node RedHat/i386, Slackware/Intel, OSF/Alpha, Machine Specific
540@section RedHat/i386 (@emph{Supported})
541
542RedHat and variants/clones such as Fedora Core and CentOS are all very
543well supported and are regularly tested with all GNUstep releases.
544
545@table @var
546@item Recommended compiler
547The default compiler works very well.
548
549@item Extra libs needed
550All extra libs needed are easily available from standard packages; the
551only tricky one is ffcall.  If you don't find an RPM for that one,
552download it directly from the GNUstep web site
553(http://www.gnustep.org).
554
555@item Special Instructions
556None.
557
558@end table
559
560@c -----------------------------------------
561@node Slackware/Intel, Slackware/Sparc, RedHat/i386, Machine Specific
562@section Slackware/Intel (@emph{Unsupported})
563
564@c -----------------------------------------
565@node Slackware/Sparc, Solaris 2.5.1/Sparc, Slackware/Intel, Machine Specific
566@section Slackware/Sparc (Splack) (@emph{Unsupported})
567
568Tested with Spalck 8.0 (2005/03/01)
569
570@table @var
571@item Recommended compiler
572gcc 3.2, no extra options.
573
574@item Extra libs needed
575Unknown.
576
577@item Special Instructions
578Tested on an ultra sparc server, kernel 2.4.27, XF86-4.0.3
579
580@end table
581
582@c -----------------------------------------
583@node Solaris 2.5.1/Sparc, Solaris/Sparc, Slackware/Sparc, Machine Specific
584@section Solaris 2.5.1/Sparc (@emph{Obsolete})
585
586This configuration is no longer being tested, but it may still work.
587
588@table @var
589@item Recommended compiler
590Unknown
591
592@item Extra libs needed
593tiff, Don't use the one in /usr/openwin
594
595@item Special Instructions
596See the Solaris 2.6 section for more instructions.
597@end table
598
599@c -----------------------------------------
600@node Solaris/Sparc, Solaris 2.7/Intel, Solaris 2.5.1/Sparc, Machine Specific
601@section Solaris 2.[678]/Sparc (@emph{Supported})
602
603Tested on Solaris version 6, 7, 8 and 9
604
605@table @var
606@item Recommended compiler
607gcc 3.2.1 or greater
608gcc 3.04. Not 3.1 - does not compile parts of GNUstep.
609
610@item Extra libs needed
611tiff, Don't use the one in /usr/openwin
612
613@item Special Instructions
614
615Using a POSIX shell (zsh or bash, which should come with Solaris) is
616highly recommended. In fact, some functions, such as compiling frameworks,
617will not work without it.
618
619@end table
620
621Some people have reported problems when using binutils assembler and linker.
622Using the native Solaris assmebler and linker should work fine.
623
624Older Instructions:
625If you are using threads, make sure the Objective-C runtime (libobjc that comes
626with gcc) is compiled with threads enabled (This is true by default) AND that
627it is compiled with the _REENTRANT flag defined (This does not seem to be
628true by default). Or use the gnustep-objc package. Also make sure THREADS is
629set to 'posix' not 'solaris'.
630
631@c -----------------------------------------
632@node Solaris 2.7/Intel, Suse 6.x/Intel, Solaris/Sparc, Machine Specific
633@section Solaris 2.7/Intel (@emph{Unsupported})
634@c Contact?: Sebastian Niesen <sniesen@niesen.net>
635
636@table @var
637@item Recommended compiler
638Unknown.
639
640@item Extra libs needed
641Unknown
642
643@item Special Instructions
644Make sure there are no -g compiler flags (i.e. compiling with debug=yes
645might be a problem). Unsure of correct bundle flags - You might need
646to use the alternate flags listed in target.make, line 989. Also,
647configuring gnustep-make with @option{--disable-backend-bundle} might be
648necessary if you can't get bundles to work.
649You will probable get a lot of text relocation
650warnings, which probably can be ignored. See the other Solaris
651instructions above for more information.
652
653@end table
654
655@c -----------------------------------------
656@node Suse 6.x/Intel, Suse/Intel, Solaris 2.7/Intel, Machine Specific
657@section Suse 6.x/Intel (@emph{Obsolete})
658
659GNUstep has been tested on version 6.2-6.4 of Suse
660
661@table @var
662@item Recommended compiler
663Standard
664
665@item Extra libs needed
666None
667
668@item Special Instructions
669It seems that there is a problem with the default kernel build
670distributed with Suse  which means that the socket binding used by
671gdnc doesn't work.  If you recompile the kernel then it starts working.
672
673@end table
674
675@c -----------------------------------------
676@node Suse/Intel, Suse 7.x/PPC, Suse 6.x/Intel, Machine Specific
677@section Suse/Intel (@emph{Supported})
678
679GNUstep has been tested on version 7.0, 8.0, 8.1, 8.2, 9.0, 9.1, 9.3,
68010.1, 11.0
681
682@table @var
683@item Recommended compiler
684The default compiler that comes with Susu is fine.
685Compile with --threads-enabled (non-standard).
686
687@item Extra libs needed
688None
689
690@item Special Instructions
691Suse 10.1 does not work with the x11 backend.
692
693@end table
694
695@c -----------------------------------------
696@node Suse 7.x/PPC, Unixware-2.1.3/Intel, Suse/Intel, Machine Specific
697@section Suse 7.x/PPC (@emph{Unsupported})
698
699GNUstep has been tested on version 7.0 of Suse/PPC
700
701@table @var
702@item Recommended compiler
703Standard. gcc2.95.x, gcc3.0.x and gc3.1 work, but 2.95 is faster.
704Compile with --threads-enabled (non-standard).
705
706@item Extra libs needed
707None
708
709@item Special Instructions
710
711@end table
712
713@c -----------------------------------------
714@node Unixware-2.1.3/Intel, Windows with CYGWIN, Suse 7.x/PPC, Machine Specific
715@section Unixware-2.1.3/Intel (@emph{Unsupported})
716@c Contact?: Richard Frith-Macdonald <richard@brainstorm.co.uk>
717
718@table @var
719@item Recommended compiler
720Unknown
721
722@item Extra libs needed
723Unknown
724
725@end table
726
727Special Instructions for GNUstep installation on Unixware 2.1 systems
728
729@table @asis
730
731@item   1
732Tune the kernel to increase the argument space so that we can pass long
733command-line argument strings to processes (which the makefiles do)
734(/etc/conf/bin/idtune ARG_MAX 102400)
735
736@item   2
737Install raft of the latest GNU software
738
739@format
740gzip            (you need this to unpack other stuff)
741make            (to build everything)
742m4              (for autoconf etc)
743autoconf        (if you need to change anything)
744bison
745flex
746binutils        (required by gcc if you want to debug)
747gcc-2.8.1
748                (configure --with-gnu-as --with-gnu-ld --with-stabs)
749                NB. gcc-2.8.1 needs a fix to __do_global_dtors_aux()
750                in crtstuff.c on Unixware 2.1.3
751                (and possibly other unixware versions)
752                The fix is already in recent versions of egcs.
753
754@end format
755
756@example
757==================================
758static void
759__do_global_dtors_aux ()
760@{
761  static func_ptr *p = __DTOR_LIST__ + 1;
762  static int completed = 0;
763
764  if (completed)
765    return;
766
767  while (*p)
768    @{
769      p++;
770      (*(p-1)) ();
771    @}
772
773#ifdef EH_FRAME_SECTION_ASM_OP
774  __deregister_frame_info (__EH_FRAME_BEGIN__);
775#endif
776  completed = 1;
777@}
778======================================
779@end example
780
781@item   3
782Having got gcc working - it's probably a good idea to rebuild
783all your GNU software using it!
784
785@item   4
786Build gstep as normal.
787
788@item   5
789The SIOCGIFCONF ioctl sometimes doesn't work on unixware after applying
790some of the OS patches.
791
792So I have added a '-a' flag to gdomap to give it the name of a file
793containing IP address and netmask information for the network interfaces
794on the system.
795
796You need to set up a file (I suggest '/etc/gdomap_addresses') containing
797the information for your machine and modify your system startup files in
798/etc/rc?.d to run gdomap, telling it to use that file.
799
800eg. If your machine has an IP address of '193.111.111.2' and is on a
801class-C network, your /etc/gdomap_addresses file would contain the line
802
803@example
804193.111.111.2 255.255.255.0
805@end example
806
807and your startup file would contain the lines
808
809@example
810. /usr/local/GNUstep/Library/Makefiles/GNUstep.sh
811gdomap -a /etc/gdomap_addresses
812@end example
813
814@end table
815
816If you don't set gdomap up correctly, Distributed Objects will not
817work.
818
819@c -----------------------------------------
820@node Windows with CYGWIN, Windows with MinGW, Unixware-2.1.3/Intel, Machine Specific
821@section Windows with CYGWIN (@emph{Unsupported})
822
823@table @var
824@item Recommended compiler
825gcc 3.3.1 or later (with libobjc and libjava (if using libffi))
826
827@item Extra libs needed
828Objective-C library DLL (@url{ftp://ftp.gnustep.org/pub/gnustep/windows/cygwin})
829for shared libs. It's a good idea to remove the libobjc.a that comes with gcc
830(gcc -v for location) so that it isn't accidentally found.
831For ffcall, you should get version 1.8b or above (the earlier ones don't
832compile). There are still some problems with structure passing, but that is
833generally not supported on any architecture.  libffi also works.
834
835@item Special Instructions
836
837Make sure you have good shared libraries for everthing. Sometimes a bad
838shared library (like libtiff) will cause odd and untraceable problems.
839See @url{README.Cygwin} for information on compiling.
840
841@end table
842
843@c -----------------------------------------
844@node Windows with MinGW, Yellowdog/PowerPC, Windows with CYGWIN, Machine Specific
845@section Windows with MinGW (@emph{Supported})
846
847@table @var
848@item Recommended compiler
849See below.
850
851@item Extra libs needed
852See below.
853
854@item Special Instructions
855See the @url{README.MinGW} file located in the gnustep-make Documentation
856directory for instructions. Windows NT/2000/XP only. Win98 machines and
857earlier are very buggy and are not supported.
858Native GUI backend is alpha version.
859@end table
860
861@c -----------------------------------------
862@node Yellowdog/PowerPC,  , Windows with MinGW, Machine Specific
863@section Yellowdog/PowerPC (@emph{Unsupported})
864
865@ifclear HOWTO
866@include end.texi
867@end ifclear
868