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