Thanks, Matz. Sadly, this was reported to me by a Solaris guru. He
suggested that we ask a Ruby guru 
I misstated the Ruby release. This is Ruby 1.8.0preview2. I believe the -P
and -dn flags are being added by the Solaris gcc linker driver. (Note that
this is gcc 3.3.) The -dn option is for static linking only. The -G option
is for shared linking only. Is it possible that this is the result some
confusion between building static and shared modules?
For reference I am appending the entire Makefile.
SHELL = /bin/sh
Start of system configuration section.
srcdir = /home/bfriesen/src/lang/RMagick-1.2.2beta1/ext/RMagick
topdir = $(rubylibdir)/$(arch)
hdrdir = $(rubylibdir)/$(arch)
VPATH = $(srcdir)
prefix = $(DESTDIR)/usr/local
exec_prefix = $(prefix)
sitedir = $(prefix)/lib/ruby/site_ruby
rubylibdir = $(libdir)/ruby/$(ruby_version)
builddir = $(ac_builddir)
archdir = $(rubylibdir)/$(arch)
sbindir = $(exec_prefix)/sbin
compile_dir = $(DESTDIR)/home/bfriesen/src/lang/ruby-1.8.0
datadir = $(prefix)/share
includedir = $(prefix)/include
infodir = $(prefix)/info
top_builddir = $(ac_top_builddir)
sysconfdir = $(prefix)/etc
mandir = $(prefix)/man
libdir = $(exec_prefix)/lib
sharedstatedir = $(prefix)/com
oldincludedir = $(DESTDIR)/usr/include
sitearchdir = $(sitelibdir)/$(sitearch)
bindir = $(exec_prefix)/bin
localstatedir = $(prefix)/var
sitelibdir = $(sitedir)/$(ruby_version)
libexecdir = $(exec_prefix)/libexec
CC = gcc -V 3.3
LIBRUBY = $(LIBRUBY_A)
LIBRUBY_A = lib$(RUBY_SO_NAME)-static.a
LIBRUBYARG_SHARED =
LIBRUBYARG_STATIC = -l$(RUBY_SO_NAME)-static
CFLAGS = -fPIC -Wall -O2 -g -Wall -I/usr/local/include -I/usr/local/include/freetype2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_REENTRANT -I/usr/openwin/include -I/usr/openwin/include/X11 -I/usr/local/include/libxml2 -DRUBY_VERSION=0x180
CPPFLAGS = -I. -I$(topdir) -I$(hdrdir) -I$(srcdir)
CXXFLAGS = $(CFLAGS)
DLDFLAGS = -Wl,-rpath,/usr/local/lib -L/usr/local/lib -L/usr/local/lib -R/usr/local/lib -L/usr/openwin/lib -R/usr/openwin/lib -L/usr/local/lib -L/usr/local/lib
LDSHARED = $(CC) -Wl,-G
AR = ar
EXEEXT =
RUBY_INSTALL_NAME = ruby
RUBY_SO_NAME = $(RUBY_INSTALL_NAME)
arch = sparc-solaris2.9
sitearch = sparc-solaris2.9
ruby_version = 1.8
RUBY = ruby
RM = $(RUBY) -rftools -e “File::rm_f(*ARGV.map do|x|Dirend.flatten.uniq)”
MAKEDIRS = $(RUBY) -r ftools -e ‘File::makedirs(*ARGV)’
INSTALL_PROG = $(RUBY) -r ftools -e ‘File::install(ARGV[0], ARGV[1], 0755, true)’
INSTALL_DATA = $(RUBY) -r ftools -e ‘File::install(ARGV[0], ARGV[1], 0644, true)’
End of system configuration section.
LIBPATH = -L"$(libdir)"
DEFFILE =
CLEANFILES =
DISTCLEANFILES =
target_prefix =
LOCAL_LIBS =
LIBS = -ldl -lcrypt -lm -lMagick -ljbig -llcms -ltiff -lfreetype -ljasper -ljpeg -lpng -lfpx -lwmflite -ldpstk -ldps -lXext -lSM -lICE -lX11 -lsocket -lnsl -lbz2 -lxml2 -lz -lpthread -lm -lc
OBJS = rmfill.o rmilist.o rmimage.o rminfo.o rmmain.o rmutil.o
TARGET = RMagick
DLLIB = $(TARGET).so
RUBYCOMMONDIR = $(sitedir)$(target_prefix)
RUBYLIBDIR = $(sitelibdir)$(target_prefix)
RUBYARCHDIR = $(sitearchdir)$(target_prefix)
CLEANLIBS = “$(TARGET).{lib,exp,il?,tds,map}” $(DLLIB)
CLEANOBJS = “*.{o,a,s[ol],pdb,bak}”
all: $(DLLIB)
clean:
@$(RM) $(CLEANLIBS) $(CLEANOBJS) $(CLEANFILES)
distclean: clean
@$(RM) Makefile extconf.h conftest.* mkmf.log
@$(RM) core ruby$(EXEEXT) *~ $(DISTCLEANFILES)
realclean: distclean
install: $(RUBYARCHDIR)
install: $(RUBYARCHDIR)/$(DLLIB)
$(RUBYARCHDIR)/$(DLLIB): $(DLLIB) $(RUBYARCHDIR)
@$(INSTALL_PROG) $(DLLIB) $(RUBYARCHDIR)
$(RUBYARCHDIR):
@$(MAKEDIRS) $(RUBYARCHDIR)
site-install: install
…SUFFIXES: .c .cc .m .cxx .cpp .C .o
…cc.o:
$(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $<
…cpp.o:
$(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $<
…cxx.o:
$(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $<
…C.o:
$(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $<
…c.o:
$(CC) $(CFLAGS) $(CPPFLAGS) -c $<
$(DLLIB): $(OBJS)
@-$(RM) $@
$(LDSHARED) $(DLDFLAGS) $(LIBPATH) -o $(DLLIB) $(OBJS) $(LOCAL_LIBS) $(LIBS)
···
On Mon, 26 May 2003 17:25:48 +0900, Yukihiro Matsumoto wrote:
Hi,
In message “Problem compiling extension on Solaris” > on 03/05/26, “Tim Hunter” cyclists@nc.rr.com writes:
I have an user who is trying to build RMagick on Solaris with Ruby
1.6.8. The Makefile is generated by extconf.rb. The link fails with
these messages:
Sorry, I have no clue. We don’t use -P nor -dn, at least explicitly. We
need Solaris guru to solve this question.
matz.