From: Takahiro Kambe Date: 2005-09-19T08:38:25+09:00 Subject: [ruby-dev:27141] Interix3 (SFU)サポート おはようございます。 pkgsrcはNetBSDに限らず、 % cd /usr/pkgsrc/mk/platform % ls *.mk AIX.mk DragonFly.mk Interix.mk OSF1.mk UnixWare.mk BSDOS.mk FreeBSD.mk Linux.mk OpenBSD.mk Darwin.mk IRIX.mk NetBSD.mk SunOS.mk といった具合いに多くのOSをサポートしていますが、この中のInterixは Microsoft SFU(Services for UNIX)となります。 これに対応するためのパッチがありましたので、以下に紹介しておきます。 -- 神戸 隆博 / Takahiro Kambe --- configure.in.orig 2004-12-23 00:16:55.000000000 +0900 +++ configure.in @@ -321,6 +321,9 @@ msdosdjgpp*) LIBS="-lm $LIBS" ac_cv_func_getpgrp_void=yes ac_cv_func_setitimer=no ;; +interix3*) LIBS="-lm $LIBS" + ac_cv_func_getpgrp_void=yes + ;; freebsd*) LIBS="-lm $LIBS" AC_CACHE_CHECK([whether -lxpg4 has to be linked], rb_cv_lib_xpg4_needed, @@ -813,7 +816,7 @@ if test "$with_dln_a_out" != yes; then openstep*) CCDLFLAGS="$CCDLFLAGS -fno-common";; rhapsody*) CCDLFLAGS="$CCDLFLAGS -fno-common";; darwin*) CCDLFLAGS="$CCDLFLAGS -fno-common";; - human*|bsdi*|beos*|cygwin*|mingw*|aix*|interix*) ;; + human*|interix3*|bsdi*|beos*|cygwin*|mingw*|aix*|interix*) ;; *) CCDLFLAGS="$CCDLFLAGS -fPIC";; esac else @@ -875,6 +878,13 @@ if test "$with_dln_a_out" != yes; then test "$GCC" = yes && test "$rb_cv_prog_gnu_ld" = yes || LDSHARED="ld -Bshareable" fi rb_cv_dlopen=yes ;; + interix3*) : ${LDSHARED='${CC} -shared'} + LDFLAGS="$LDFLAGS -Wl,-E" + # use special random-slot linkage in 0x[56]XXXXXXX + DLDFLAGS="$DLDFLAGS "'-Wl,-h,$(.TARGET) -Wl,--image-base,$$(($$RANDOM %4096/2*262144+1342177280))' + LIBPATHFLAG=' -L%1$-s' + RPATHFLAG=' -Wl,-R%1$-s' + rb_cv_dlopen=yes ;; openbsd*) : ${LDSHARED="\$(CC) -shared ${CCDLFLAGS}"} if test "$rb_cv_binary_elf" = yes; then LDFLAGS="$LDFLAGS -Wl,-E" @@ -1172,6 +1182,14 @@ if test "$enable_shared" = 'yes'; then LIBRUBY_ALIASES="" fi ;; + interix3*) + SOLIBS='$(LIBS)' + LIBRUBY_SO='lib$(RUBY_SO_NAME).so.$(MAJOR)$(MINOR).$(TEENY)' + # link explicitly to 0x48000000 + LIBRUBY_DLDFLAGS='-Wl,-h,lib$(RUBY_SO_NAME).so.$(MAJOR)$(MINOR) -Wl,--image-base,1207959552' + LIBRUBYARG_SHARED='-Wl,-R -Wl,${libdir} -L${libdir} -L. -l$(RUBY_SO_NAME)' + LIBRUBY_ALIASES='lib$(RUBY_SO_NAME).so.$(MAJOR)$(MINOR) lib$(RUBY_SO_NAME).so' + ;; openbsd*) SOLIBS='$(LIBS)' LIBRUBY_SO='lib$(RUBY_INSTALL_NAME).so.$(MAJOR).'`expr ${MINOR} \* 10 + ${TEENY}`