FYI, I just filed this bug.

The rbconfig.rb file shipped with Nevada build 79 contains bogus paths that 
prevent gems that require use of a C compiler from working. e.g., 
ruby-postgres. On SPARC, the file 
/usr/ruby/1.8/lib/ruby/1.8/sparc-solaris2.11/rbconfig.rb, refers to the 
following paths which we shouldn't expect to exist on a user's system (even 
inside Sun.) The x86 version has the same problems.

  * /opt/onbld/bin/sparc/install -c
  * /opt/SUNWspro.40/SS11/bin/cc
  * /gates/sfwnv/builds/sfwnv-gate/proto/...

    These should be removed.

Having the -L/gates/... here prevents gem generated Makefiles from compiling 
anything.

After removing these paths from rbconfig.rb, I ran into another problem: the 
ruby-postgres gem build configuration adds the gcc compiler option -Wall which 
is illegal for Sun Studio. This is a bug with the ruby-postgres extconf.rb file 
and the following changes fixed it:

$ pwd
/var/ruby/1.8/gem_home/gems/ruby-postgres-0.7.1.2006.04.06

$ diff -c extconf.orig.rb extconf.rb
*** extconf.orig.rb     Wed Dec 19 17:41:14 2007
--- extconf.rb  Thu Dec 20 17:27:52 2007
***************
*** 27,33 ****
    required_libraries.each(&method(:have_library))
    desired_functions.each(&method(:have_func))
    $objs = ['postgres.o'] if compat_functions.all?(&method(:have_func))
!   $CFLAGS << ' -Wall '
    create_makefile("postgres")
  else
    puts 'Could not find PostgreSQL build environment (libraries & headers): 
Makefile not created'
--- 27,35 ----
    required_libraries.each(&method(:have_library))
    desired_functions.each(&method(:have_func))
    $objs = ['postgres.o'] if compat_functions.all?(&method(:have_func))
!   if !(CONFIG['configure_args'] && CONFIG['configure_args']['--without-gcc'])
!     $CFLAGS << ' -Wall '
!   end
    create_makefile("postgres")
  else
    puts 'Could not find PostgreSQL build environment (libraries & headers): 
Makefile not created'
This message posted from opensolaris.org


Reply via email to