From: ts Date: 2003-11-03T01:21:43+09:00 Subject: Re: 64-bit Ruby on Solaris? >>>>> "B" == Berger, Daniel writes: B> Also, for the build you did above can you show me your environment B> settings and the Makefile perhaps? For the environment I've just made export PATH=/opt/gcc332/bin:$PATH Makefile (generated by ruby) ------------------------------------------------------------ SHELL = /bin/sh #### Start of system configuration section. #### srcdir = . VPATH = $(srcdir)/missing CC = gcc -m64 -mcpu=ultrasparc YACC = bison -y PURIFY = AUTOCONF = autoconf prefix = /home/msys/decoux/local/r181 exec_prefix = ${prefix} bindir = ${exec_prefix}/bin sbindir = ${exec_prefix}/sbin libdir = ${exec_prefix}/lib libexecdir = ${exec_prefix}/libexec arch = sparc-solaris2.8 sitearch = sparc-solaris2.8 sitedir = ${prefix}/lib/ruby/site_ruby CFLAGS = -g -O2 CPPFLAGS = -I. -I$(srcdir) LDFLAGS = $(CFLAGS) EXTLDFLAGS = XLDFLAGS = -L. $(EXTLDFLAGS) EXTLIBS = LIBS = -ldl -lm $(EXTLIBS) MISSING = flock$U.o isinf$U.o LDSHARED = $(CC) -Wl,-G DLDFLAGS = $(EXTLDFLAGS) SOLIBS = MAINLIBS = RUBY_INSTALL_NAME=ruby RUBY_SO_NAME=$(RUBY_INSTALL_NAME) EXEEXT = PROGRAM=$(RUBY_INSTALL_NAME)$(EXEEXT) RUBY = $(RUBY_INSTALL_NAME) MINIRUBY = ./miniruby$(EXEEXT) #### End of system configuration section. #### MAJOR= 1 MINOR= 8 TEENY= 1 LIBRUBY_A = lib$(RUBY_SO_NAME)-static.a LIBRUBY_SO = lib$(RUBY_SO_NAME).so.$(MAJOR).$(MINOR).$(TEENY) LIBRUBY_ALIASES= lib$(RUBY_SO_NAME).so LIBRUBY = $(LIBRUBY_A) LIBRUBYARG = $(LIBRUBYARG_STATIC) LIBRUBYARG_STATIC = -l$(RUBY_SO_NAME)-static LIBRUBYARG_SHARED = PREP = SETUP = EXTSTATIC = EXTOBJS = DLDOBJS = $(DMYEXT) DMYEXT = dmyext.o MAINOBJ = main.o OBJS = array.o \ bignum.o \ class.o \ compar.o \ dir.o \ dln.o \ enum.o \ error.o \ eval.o \ file.o \ gc.o \ hash.o \ inits.o \ io.o \ marshal.o \ math.o \ numeric.o \ object.o \ pack.o \ parse.o \ process.o \ prec.o \ random.o \ range.o \ re.o \ regex.o \ ruby.o \ signal.o \ sprintf.o \ st.o \ string.o \ struct.o \ time.o \ util.o \ variable.o \ version.o \ $(MISSING) MANTYPE = man SCRIPT_ARGS = --dest-dir="$(DESTDIR)" \ --make="$(MAKE)" \ --mflags="$(MFLAGS)" \ --make-flags="$(MAKEFLAGS)" all: Makefile miniruby$(EXEEXT) rbconfig.rb $(LIBRUBY) @$(MINIRUBY) $(srcdir)/ext/extmk.rb --extstatic="$(EXTSTATIC)" $(SCRIPT_ARGS) miniruby$(EXEEXT): config.status $(LIBRUBY_A) $(MAINOBJ) $(DMYEXT) @rm -f $@ $(PURIFY) $(CC) $(LDFLAGS) $(MAINOBJ) $(DMYEXT) $(LIBRUBY_A) $(LIBS) -o $@ $(PROGRAM): $(LIBRUBY) $(MAINOBJ) $(EXTOBJS) $(SETUP) miniruby$(EXEEXT) @rm -f $@ $(PURIFY) $(CC) $(LDFLAGS) $(XLDFLAGS) $(MAINLIBS) $(MAINOBJ) $(EXTOBJS) $(LIBRUBYARG) $(LIBS) -o $@ $(LIBRUBY_A): $(OBJS) $(DMYEXT) ar rcu $@ $(OBJS) $(DMYEXT) @-ranlib $@ 2> /dev/null || true $(LIBRUBY_SO): $(OBJS) $(DLDOBJS) miniruby$(EXEEXT) $(PREP) $(LDSHARED) $(DLDFLAGS) $(OBJS) $(DLDOBJS) $(SOLIBS) -o $@ @-$(MINIRUBY) -e 'ARGV.each{|link| File.delete link if File.exist? link; \ File.symlink "$(LIBRUBY_SO)", link}' \ $(LIBRUBY_ALIASES) || true ruby.imp: $(LIBRUBY_A) @ -Pgp $(LIBRUBY_A) | awk 'BEGIN{print "#!"}; $$2~/^[BD]$$/{print $$1}' | sort -u -o $@ # $(MINIRUBY) $< $@ install: rbconfig.rb $(MINIRUBY) $(srcdir)/instruby.rb $(SCRIPT_ARGS) --mantype="$(MANTYPE)" $(MINIRUBY) $(srcdir)/ext/extmk.rb $(SCRIPT_ARGS) install what-where no-install: rbconfig.rb $(MINIRUBY) $(srcdir)/instruby.rb -n $(SCRIPT_ARGS) --mantype="$(MANTYPE)" $(MINIRUBY) $(srcdir)/ext/extmk.rb -n $(SCRIPT_ARGS) install clean-ext: @-$(MINIRUBY) $(srcdir)/ext/extmk.rb $(SCRIPT_ARGS) clean 2> /dev/null || true clean-local: @rm -f $(OBJS) $(MAINOBJ) $(LIBRUBY_A) $(LIBRUBY_SO) $(LIBRUBY_ALIASES) @rm -f ext/extinit.c ext/extinit.o dmyext.o @rm -f $(PROGRAM) miniruby$(EXEEXT) clean: clean-ext clean-local distclean-ext: @-$(MINIRUBY) $(srcdir)/ext/extmk.rb $(SCRIPT_ARGS) distclean 2> /dev/null || true distclean-local: clean-local @rm -f Makefile config.h rbconfig.rb @rm -f ext/config.cache config.cache config.log config.status @rm -f *~ core *.core gmon.out y.tab.c y.output ruby.imp distclean: distclean-ext distclean-local realclean: distclean @rm -f parse.c @rm -f lex.c test: miniruby$(EXEEXT) rbconfig.rb $(PROGRAM) PHONY @./miniruby$(EXEEXT) $(srcdir)/rubytest.rb rbconfig.rb: miniruby$(EXEEXT) $(srcdir)/mkconfig.rb config.status $(PREP) @$(MINIRUBY) $(srcdir)/mkconfig.rb rbconfig.rb fake.rb: miniruby$(EXEEXT) Makefile @echo ' \ class Object; \ CROSS_COMPILING = RUBY_PLATFORM; \ remove_const :RUBY_PLATFORM; \ remove_const :RUBY_VERSION; \ RUBY_PLATFORM = "sparc-solaris2.8"; \ RUBY_VERSION = "1.8.1"; \ end; \ if RUBY_PLATFORM =~ /mswin|bccwin|mingw/; \ class File; \ remove_const :ALT_SEPARATOR; \ ALT_SEPARATOR = "\\"; \ end; \ end; \ ' > $@ Makefile: $(srcdir)/Makefile.in .PRECIOUS: Makefile .PHONY: test PHONY: Makefile: config.status MAKE=$(MAKE) $(SHELL) ./config.status @{ \ echo "all:; -@rm -f conftest.mk"; \ echo "conftest.mk: .force; @echo AUTO_REMAKE"; \ echo ".force:"; \ } > conftest.mk || exit 1; \ $(MAKE) -f conftest.mk | grep '^AUTO_REMAKE$$' >/dev/null 2>&1 || \ { echo "Makefile updated, restart."; exit 1; } config.status: $(srcdir)/configure MINIRUBY="$(MINIRUBY)" $(SHELL) ./config.status --recheck $(srcdir)/configure: $(srcdir)/configure.in cd $(srcdir) && $(AUTOCONF) .c.o: $(CC) $(CFLAGS) $(CPPFLAGS) -c $< lex.c: keywords if test "$(srcdir)" = "."; then \ gperf -p -j1 -i 1 -g -o -t -N rb_reserved_word -k1,3,$$ $> > $@; \ else \ cp $(srcdir)/lex.c .; \ fi .y.c: $(YACC) $< sed '/^#/s|y\.tab\.c|$@|' y.tab.c > $@ rm -f y.tab.c ext/extinit.o: ext/extinit.c $(SETUP) $(CC) $(CFLAGS) $(CPPFLAGS) -o $@ -c ext/extinit.c acosh.o: $(srcdir)/missing/acosh.c $(CC) -I. $(CFLAGS) $(CPPFLAGS) -c $(srcdir)/missing/acosh.c alloca.o: $(srcdir)/missing/alloca.c $(CC) -I. $(CFLAGS) $(CPPFLAGS) -c $(srcdir)/missing/alloca.c crypt.o: $(srcdir)/missing/crypt.c $(CC) -I. $(CFLAGS) $(CPPFLAGS) -c $(srcdir)/missing/crypt.c dup2.o: $(srcdir)/missing/dup2.c $(CC) -I. $(CFLAGS) $(CPPFLAGS) -c $(srcdir)/missing/dup2.c fileblocks.o: $(srcdir)/missing/fileblocks.c $(CC) -I. $(CFLAGS) $(CPPFLAGS) -c $(srcdir)/missing/fileblocks.c finite.o: $(srcdir)/missing/finite.c $(CC) -I. $(CFLAGS) $(CPPFLAGS) -c $(srcdir)/missing/finite.c flock.o: $(srcdir)/missing/flock.c $(CC) -I. $(CFLAGS) $(CPPFLAGS) -c $(srcdir)/missing/flock.c isinf.o: $(srcdir)/missing/isinf.c $(CC) -I. $(CFLAGS) $(CPPFLAGS) -c $(srcdir)/missing/isinf.c isnan.o: $(srcdir)/missing/isnan.c $(CC) -I. $(CFLAGS) $(CPPFLAGS) -c $(srcdir)/missing/isnan.c fnmatch.o: $(srcdir)/missing/fnmatch.c $(CC) -I. $(CFLAGS) $(CPPFLAGS) -c $(srcdir)/missing/fnmatch.c memcmp.o: $(srcdir)/missing/memcmp.c $(CC) $(CFLAGS) $(CPPFLAGS) -c $(srcdir)/missing/memcmp.c memmove.o: $(srcdir)/missing/memmove.c $(CC) $(CFLAGS) $(CPPFLAGS) -c $(srcdir)/missing/memmove.c mkdir.o: $(srcdir)/missing/mkdir.c $(CC) $(CFLAGS) $(CPPFLAGS) -c $(srcdir)/missing/mkdir.c vsnprintf.o: $(srcdir)/missing/vsnprintf.c $(CC) $(CFLAGS) $(CPPFLAGS) -c $(srcdir)/missing/vsnprintf.c strcasecmp.o: $(srcdir)/missing/strcasecmp.c $(CC) $(CFLAGS) $(CPPFLAGS) -c $(srcdir)/missing/strcasecmp.c strncasecmp.o: $(srcdir)/missing/strncasecmp.c $(CC) $(CFLAGS) $(CPPFLAGS) -c $(srcdir)/missing/strncasecmp.c strchr.o: $(srcdir)/missing/strchr.c $(CC) $(CFLAGS) $(CPPFLAGS) -c $(srcdir)/missing/strchr.c strerror.o: $(srcdir)/missing/strerror.c $(CC) $(CFLAGS) $(CPPFLAGS) -c $(srcdir)/missing/strerror.c strftime.o: $(srcdir)/missing/strftime.c $(CC) -I. $(CFLAGS) $(CPPFLAGS) -c $(srcdir)/missing/strftime.c strstr.o: $(srcdir)/missing/strstr.c $(CC) $(CFLAGS) $(CPPFLAGS) -c $(srcdir)/missing/strstr.c strtol.o: $(srcdir)/missing/strtol.c $(CC) $(CFLAGS) $(CPPFLAGS) -c $(srcdir)/missing/strtol.c strtoul.o: $(srcdir)/missing/strtoul.c $(CC) $(CFLAGS) $(CPPFLAGS) -c $(srcdir)/missing/strtoul.c x68.o: $(srcdir)/missing/x68.c $(CC) $(CFLAGS) $(CPPFLAGS) -c $(srcdir)/missing/x68.c os2.o: $(srcdir)/missing/os2.c $(CC) $(CFLAGS) $(CPPFLAGS) -c $(srcdir)/missing/os2.c dl_os2.o: $(srcdir)/missing/dl_os2.c $(CC) $(CFLAGS) $(CPPFLAGS) -c $(srcdir)/missing/dl_os2.c win32.o: $(srcdir)/win32/win32.c $(CC) $(CFLAGS) $(CPPFLAGS) -I$(srcdir)/win32 -c $(srcdir)/win32/win32.c # Prevent GNU make v3 from overflowing arg limit on SysV. .NOEXPORT: ### array.o: array.c ruby.h config.h defines.h intern.h missing.h \ util.h st.h bignum.o: bignum.c ruby.h config.h defines.h intern.h missing.h class.o: class.c ruby.h config.h defines.h intern.h missing.h \ rubysig.h node.h st.h version.h compar.o: compar.c ruby.h config.h defines.h intern.h missing.h dir.o: dir.c ruby.h config.h defines.h intern.h missing.h util.h dln.o: dln.c ruby.h config.h defines.h intern.h missing.h dln.h dmyext.o: dmyext.c enum.o: enum.c ruby.h config.h defines.h intern.h missing.h node.h \ util.h error.o: error.c ruby.h config.h defines.h intern.h missing.h \ env.h version.h st.h eval.o: eval.c ruby.h config.h defines.h intern.h missing.h node.h \ env.h util.h rubysig.h st.h dln.h file.o: file.c ruby.h config.h defines.h intern.h missing.h \ rubyio.h rubysig.h util.h dln.h gc.o: gc.c ruby.h config.h defines.h intern.h missing.h rubysig.h \ st.h node.h env.h re.h regex.h hash.o: hash.c ruby.h config.h defines.h intern.h missing.h st.h \ util.h rubysig.h version.h inits.o: inits.c ruby.h config.h defines.h intern.h missing.h io.o: io.c ruby.h config.h defines.h intern.h missing.h rubyio.h \ rubysig.h env.h util.h main.o: main.c ruby.h config.h defines.h intern.h missing.h marshal.o: marshal.c ruby.h config.h defines.h intern.h missing.h \ rubyio.h st.h util.h math.o: math.c ruby.h config.h defines.h intern.h missing.h numeric.o: numeric.c ruby.h config.h defines.h intern.h missing.h object.o: object.c ruby.h config.h defines.h intern.h missing.h \ st.h util.h pack.o: pack.c ruby.h config.h defines.h intern.h missing.h parse.o: parse.c ruby.h config.h defines.h intern.h missing.h \ env.h node.h st.h regex.h util.h lex.c prec.o: prec.c ruby.h config.h defines.h intern.h missing.h process.o: process.c ruby.h config.h defines.h intern.h missing.h \ rubysig.h st.h random.o: random.c ruby.h config.h defines.h intern.h missing.h range.o: range.c ruby.h config.h defines.h intern.h missing.h re.o: re.c ruby.h config.h defines.h intern.h missing.h re.h \ regex.h regex.o: regex.c config.h regex.h ruby.o: ruby.c ruby.h config.h defines.h intern.h missing.h dln.h \ node.h util.h signal.o: signal.c ruby.h config.h defines.h intern.h missing.h \ rubysig.h sprintf.o: sprintf.c ruby.h config.h defines.h intern.h missing.h st.o: st.c config.h st.h string.o: string.c ruby.h config.h defines.h intern.h missing.h \ re.h regex.h version.h struct.o: struct.c ruby.h config.h defines.h intern.h missing.h time.o: time.c ruby.h config.h defines.h intern.h missing.h util.o: util.c ruby.h config.h defines.h intern.h missing.h util.h variable.o: variable.c ruby.h config.h defines.h intern.h \ missing.h env.h node.h st.h util.h version.o: version.c ruby.h config.h defines.h intern.h missing.h \ version.h ------------------------------------------------------------ Guy Decoux