The Mozilla
Organization
At A Glance
Feedback
Get Involved
Newsgroups
License Terms
Newsbot
Developer Docs
Roadmap
Projects
Ports
Module Owners
Hacking
Get the Source
Build It
Testing
Download
Bugzilla
Bug Writing
Tools
View Source
Tree Status
New Checkins
Submit A Bug
FAQ
Search

Mozilla on Solaris FAQ

Questions or comments to news://news.mozilla.org/netscape.public.mozilla.unix.

Authors: Chris Mcafee <mcafee@netscape.com> and Dan Mosedale <dmose@mozilla.org>


  1. Patches needed for Solaris 2.6
  2. What compiler should I use?
  3. How do I switch between two compilers?
  4. "Gdk-WARNING **:shmat failed!" error message
  5. Cross-compiler plugin/module compatibility, vtables, and name-mangling

  1. Patches needed for Solaris 2.6
    • Fix for undefined symbol _XlcCompileResourceList at runtime:"
      ([Thanks to mhw@mft.co.uk]
      This looks like SunSolve bug report #4239074, no patch, suggested workaround:
      Edit the file : /usr/openwin/lib/locale/iso8859-1/XI18N_OBJS
        Remove the line 
        < XOM     xomEuro            _XomGenericOpenOM # XOM_open
        Add the line 
        > XOM     common/xomLTRTTB   _XomGenericOpenOM # XOM_open
      
      See 17221 for more discussion.


    • Get a recent version of the 2.6 recommended patch cluster. Mozilla is unlikely to function well (if at all) without this patch cluster. Among other things, this will fix the problem where Mozilla fails at startup time with a "Wrong Architecture" error.

  2. What compiler should I use?
    There are 4 compilers that are known to work: gcc-2.7.2.3, egcs, WS4.2, WS5.0. They all have trade-offs and there is no clear leader right now. Tinderbox is currently running a gcc-2.7.2.3 build, some Solaris contributors are using the Workshop 4.2 compiler with some success.
    Compiler Good Bad Notes
    gcc 2.7.2.3
  3. Classic compiler, lots of support on many platforms.
  4. Purify support
  5. Weak C++ support, defines LCD for tinderbox right now. More-recent versions not rock solid yet.
    egcs
  6. Benefits from linux coverage.
  7. No purify
  8. Can't step in debugger
  9. WS4.2
  10. dbx has better threading support and is more reliable than gdb, as well as purify-like memory checking.
  11. Purify support
  12. $$ Picky compiler, some bugs, mostly worked-around with autoconf.
    WS5.0
  13. dbx has better threading support and is more reliable than gdb, as well as purify-like memory checking.
  14. Purify support
  15. Built-in performance tools
  16. $$
  17. Builds are painfully slow
  18. Some 4.2 bugs fixed, some new ones.

  19. When using the WorkShop 5.0 compilers, be sure to get a recent copy of the compiler patches from Sun. At the time of this writing, for 32-bit machines, this means at least the following patches:
    107289-03
    107295-01
    107311-07
    107357-05
    107740-01
    107742-01
    
    On (at least) Solaris 2.6 with WorkShop 5.0, the C++ runtime library patch (105591, rev -07 or later) is also required. Anyone who wants to run the code you've compiled will need this patch as well.

  20. How do I switch between two compilers?

    If both a gnu compiler and non-gnu compiler are in your path, the gnu compiler wins the config test. To override this, or to pick from among several compilers you have in your path, set the environment variables CC and CXX to point to the compiler you want to use:

      # Example to override gcc install with WS5.0 using the WS 4.x
      # compatibility flag
      setenv CC  /usr/local/workshop/SUNWspro/bin/cc
      setenv CXX "/usr/local/workshop/SUNWspro/bin/CC -compat=4"
      ./configure
    
    Additionally, if you are using one of the WorkShop compilers and have your LD_LIBRARY_PATH environment variable set, be sure that the location of the SUNWspro libraries is closer to the front of LD_LIBRARY_PATH than the location of any GNU g++ libraries. Otherwise the build may fail trying to pull in the wrong libiostream.

  21. "Gdk-WARNING **:shmat failed!" error message

    If you've built with the --enable-x11-shm option to configure in order to speed up performance, you may see the above-mentioned error message. In some (all?) versions of Solaris, the default per-process limit of the number shared-memory segments can be allocated is 6. When this error occurs, GDK gives up and decides not to use shared-memory at all (meaning that Mozilla will still function just fine, but it won't see any speedup). Work around this problem by adding the line:

     set shmsys:shminfo_shmseg = 10
    
    to /etc/system and then rebooting your machine. See bug 10498 for more details.

  22. Cross-compiler plugin/module compatibility, vtables, and name-mangling issues

    These issues are still being fleshed out. See bug 20297 for some discussion.

Copyright © 1998-2000 The Mozilla Organization.
Last modified February 16, 2000.