mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	* eval_intern.h: Add support to Haiku. see [ruby-core:18110]
* include/ruby/defines.h: ditto. * configure.in: ditto. * thread_pthread.c: ditto. * io.c: ditto. * lib/mkmf.rb: ditto. * ext/socket/getaddrinfo.c: ditto. * ext/socket/extconf.rb: ditto. * ext/socket/socket.c: ditto. * ext/socket/addrinfo.h: ditto. * ext/socket/getnameinfo.c: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18402 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
		
							parent
							
								
									403d0334c1
								
							
						
					
					
						commit
						48e21d2051
					
				
					 12 changed files with 77 additions and 12 deletions
				
			
		
							
								
								
									
										24
									
								
								ChangeLog
									
										
									
									
									
								
							
							
						
						
									
										24
									
								
								ChangeLog
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -1,3 +1,27 @@
 | 
			
		|||
Thu Aug  7 05:51:05 2008  NARUSE, Yui  <naruse@ruby-lang.org>
 | 
			
		||||
 | 
			
		||||
	* eval_intern.h: Add support to Haiku. see [ruby-core:18110]
 | 
			
		||||
 | 
			
		||||
	* include/ruby/defines.h: ditto.
 | 
			
		||||
 | 
			
		||||
	* configure.in: ditto.
 | 
			
		||||
 | 
			
		||||
	* thread_pthread.c: ditto.
 | 
			
		||||
 | 
			
		||||
	* io.c: ditto.
 | 
			
		||||
 | 
			
		||||
	* lib/mkmf.rb: ditto.
 | 
			
		||||
 | 
			
		||||
	* ext/socket/getaddrinfo.c: ditto.
 | 
			
		||||
 | 
			
		||||
	* ext/socket/extconf.rb: ditto.
 | 
			
		||||
 | 
			
		||||
	* ext/socket/socket.c: ditto.
 | 
			
		||||
 | 
			
		||||
	* ext/socket/addrinfo.h: ditto.
 | 
			
		||||
 | 
			
		||||
	* ext/socket/getnameinfo.c: ditto.
 | 
			
		||||
 | 
			
		||||
Thu Aug  7 05:43:32 2008  NARUSE, Yui  <naruse@ruby-lang.org>
 | 
			
		||||
 | 
			
		||||
	* common.mk: mkdir enc/trans before build tables.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										27
									
								
								configure.in
									
										
									
									
									
								
							
							
						
						
									
										27
									
								
								configure.in
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -512,7 +512,12 @@ hpux*)		LIBS="-lm $LIBS"
 | 
			
		|||
human*)		ac_cv_func_getpgrp_void=yes
 | 
			
		||||
		ac_cv_func_setitimer=no
 | 
			
		||||
		;;
 | 
			
		||||
beos*)		ac_cv_func_link=no;;
 | 
			
		||||
beos*)	ac_cv_func_link=no
 | 
			
		||||
		LIBS="$LIBS" # m lib is include in root under BeOS
 | 
			
		||||
		;;
 | 
			
		||||
haiku*)	ac_cv_func_link=no
 | 
			
		||||
		LIBS="$LIBS" # m lib is include in root under Haiku
 | 
			
		||||
		;;
 | 
			
		||||
cygwin*)	;;
 | 
			
		||||
mingw*)		LIBS="-lshell32 -lws2_32 $LIBS"
 | 
			
		||||
		ac_cv_header_a_out_h=no
 | 
			
		||||
| 
						 | 
				
			
			@ -1098,7 +1103,7 @@ int main()
 | 
			
		|||
AC_DEFINE_UNQUOTED(STACK_GROW_DIRECTION, $rb_cv_stack_grow_dir)
 | 
			
		||||
 | 
			
		||||
if test x"$enable_pthread" = xyes; then
 | 
			
		||||
    for pthread_lib in thr pthread pthreads c c_r; do
 | 
			
		||||
    for pthread_lib in thr pthread pthreads c c_r root; do
 | 
			
		||||
 	AC_CHECK_LIB($pthread_lib, pthread_kill,
 | 
			
		||||
		     rb_with_pthread=yes, rb_with_pthread=no)
 | 
			
		||||
	if test "$rb_with_pthread" = "yes"; then break; fi
 | 
			
		||||
| 
						 | 
				
			
			@ -1110,6 +1115,8 @@ if test x"$enable_pthread" = xyes; then
 | 
			
		|||
	case $pthread_lib in
 | 
			
		||||
	c)
 | 
			
		||||
	    ;;
 | 
			
		||||
	root)
 | 
			
		||||
		;;
 | 
			
		||||
	c_r)
 | 
			
		||||
	    MAINLIBS="-pthread $MAINLIBS"
 | 
			
		||||
	    ;;
 | 
			
		||||
| 
						 | 
				
			
			@ -1271,7 +1278,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*|bsdi*|beos*|haiku*|cygwin*|mingw*|aix*|interix*) ;;
 | 
			
		||||
    *) CCDLFLAGS="$CCDLFLAGS -fPIC";;
 | 
			
		||||
    esac
 | 
			
		||||
  else
 | 
			
		||||
| 
						 | 
				
			
			@ -1393,6 +1400,18 @@ if test "$with_dln_a_out" != yes; then
 | 
			
		|||
			esac
 | 
			
		||||
			: ${LIBPATHENV=LIBRARY_PATH}
 | 
			
		||||
			rb_cv_dlopen=yes ;;
 | 
			
		||||
	haiku*) 		case "$target_cpu" in
 | 
			
		||||
			  powerpc*)
 | 
			
		||||
			    : ${LDSHARED="ld -xms"}
 | 
			
		||||
			    DLDFLAGS="$DLDFLAGS "'-export Init_$(TARGET) -lbe -lroot glue-noinit.a init_term_dyn.o start_dyn.o'
 | 
			
		||||
                            ;;
 | 
			
		||||
			  i586*)
 | 
			
		||||
			    : ${LDSHARED="ld -shared"}
 | 
			
		||||
			    DLDFLAGS="$DLDFLAGS -L/boot/develop/lib/x86 -lbe -lroot"
 | 
			
		||||
			    ;;
 | 
			
		||||
			esac
 | 
			
		||||
			: ${LIBPATHENV=LIBRARY_PATH}
 | 
			
		||||
			rb_cv_dlopen=yes ;;
 | 
			
		||||
	nto-qnx*)	DLDFLAGS="$DLDFLAGS -L/lib -L/usr/lib -L/usr/local/lib"
 | 
			
		||||
			: ${LDSHARED='ld -Bshareable -x'}
 | 
			
		||||
			LDFLAGS="$LDFLAGS -L/lib -L/usr/lib -L/usr/local/lib"
 | 
			
		||||
| 
						 | 
				
			
			@ -1605,7 +1624,7 @@ LIBRUBYARG='$(LIBRUBYARG_STATIC)'
 | 
			
		|||
SOLIBS=
 | 
			
		||||
 | 
			
		||||
case "$target_os" in
 | 
			
		||||
  cygwin*|mingw*|beos*|openstep*|nextstep*|rhapsody*|darwin*|os2-emx*)
 | 
			
		||||
  cygwin*|mingw*|beos*|haiku*|openstep*|nextstep*|rhapsody*|darwin*|os2-emx*)
 | 
			
		||||
    : ${DLDLIBS=""}
 | 
			
		||||
    ;;
 | 
			
		||||
  *)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -75,7 +75,7 @@ char *strrchr(const char *, const char);
 | 
			
		|||
#include <unistd.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef __BEOS__
 | 
			
		||||
#if defined(__BEOS__) && !defined(__HAIKU__)
 | 
			
		||||
#include <net/socket.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -108,7 +108,9 @@
 | 
			
		|||
#define	AI_CANONNAME	0x00000002 /* fill ai_canonname */
 | 
			
		||||
#define	AI_NUMERICHOST	0x00000004 /* prevent name resolution */
 | 
			
		||||
/* valid flags for addrinfo */
 | 
			
		||||
#ifndef __HAIKU__
 | 
			
		||||
#define	AI_MASK		(AI_PASSIVE | AI_CANONNAME | AI_NUMERICHOST)
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define	AI_ALL		0x00000100 /* IPv6 and IPv4-mapped (with AI_V4MAPPED) */
 | 
			
		||||
#define	AI_V4MAPPED_CFG	0x00000200 /* accept IPv4-mapped if kernel supports */
 | 
			
		||||
| 
						 | 
				
			
			@ -164,7 +166,9 @@ extern void freeaddrinfo __P((struct addrinfo *));
 | 
			
		|||
#if defined __UCLIBC__
 | 
			
		||||
const
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef __HAIKU__
 | 
			
		||||
extern char *gai_strerror __P((int));
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* In case there is no definition of offsetof() provided - though any proper
 | 
			
		||||
Standard C system should have one. */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -9,6 +9,9 @@ when /cygwin/
 | 
			
		|||
when /beos/
 | 
			
		||||
  test_func = "socket"
 | 
			
		||||
  have_library("net", "socket")
 | 
			
		||||
when /haiku/
 | 
			
		||||
  test_func = "socket"
 | 
			
		||||
  have_library("network", "socket")
 | 
			
		||||
when /i386-os2_emx/
 | 
			
		||||
  test_func = "socket"
 | 
			
		||||
  have_library("socket", "socket")
 | 
			
		||||
| 
						 | 
				
			
			@ -30,7 +33,7 @@ if have_header("arpa/inet.h")
 | 
			
		|||
end
 | 
			
		||||
 | 
			
		||||
ipv6 = false
 | 
			
		||||
default_ipv6 = /cygwin/ !~ RUBY_PLATFORM
 | 
			
		||||
default_ipv6 = /cygwin|beos|haiku/ !~ RUBY_PLATFORM
 | 
			
		||||
if enable_config("ipv6", default_ipv6)
 | 
			
		||||
  if checking_for("ipv6") {try_link(<<EOF)}
 | 
			
		||||
#include <sys/types.h>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -42,7 +42,7 @@
 | 
			
		|||
#include <sys/types.h>
 | 
			
		||||
#ifndef _WIN32
 | 
			
		||||
#include <sys/param.h>
 | 
			
		||||
#if defined(__BEOS__)
 | 
			
		||||
#if defined(__BEOS__) && !defined(__HAIKU__) 
 | 
			
		||||
# include <net/socket.h>
 | 
			
		||||
#else
 | 
			
		||||
# include <sys/socket.h>
 | 
			
		||||
| 
						 | 
				
			
			@ -194,6 +194,7 @@ if (pai->ai_flags & AI_CANONNAME) {\
 | 
			
		|||
 | 
			
		||||
#define ERR(err) { error = (err); goto bad; }
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
#if defined __UCLIBC__
 | 
			
		||||
const
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			@ -204,6 +205,7 @@ gai_strerror(int ecode)
 | 
			
		|||
		ecode = EAI_MAX;
 | 
			
		||||
	return (char *)ai_errlist[ecode];
 | 
			
		||||
}
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
freeaddrinfo(struct addrinfo *ai)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -38,7 +38,7 @@
 | 
			
		|||
#include <stdio.h>
 | 
			
		||||
#include <sys/types.h>
 | 
			
		||||
#ifndef _WIN32
 | 
			
		||||
#if defined(__BEOS__)
 | 
			
		||||
#if defined(__BEOS__) && !defined(__HAIKU__)  
 | 
			
		||||
# include <net/socket.h>
 | 
			
		||||
#else
 | 
			
		||||
# include <sys/socket.h>
 | 
			
		||||
| 
						 | 
				
			
			@ -110,6 +110,9 @@ static struct afd {
 | 
			
		|||
#define ENI_FAMILY	5
 | 
			
		||||
#define ENI_SALEN	6
 | 
			
		||||
 | 
			
		||||
#ifdef __HAIKU__
 | 
			
		||||
#define HAVE_INET_NTOP
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef HAVE_INET_NTOP
 | 
			
		||||
static const char *
 | 
			
		||||
inet_ntop(int af, const void *addr, char *numaddr, size_t numaddr_len)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -29,7 +29,7 @@
 | 
			
		|||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef _WIN32
 | 
			
		||||
#if defined(__BEOS__)
 | 
			
		||||
#if defined(__BEOS__) && !defined(__HAIKU__)  
 | 
			
		||||
# include <net/socket.h>
 | 
			
		||||
#else
 | 
			
		||||
# include <sys/socket.h>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -198,7 +198,7 @@ void xfree(void*);
 | 
			
		|||
#include "vms/vms.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(__BEOS__)
 | 
			
		||||
#if defined(__BEOS__) && !defined(__HAIKU__)
 | 
			
		||||
#include <net/socket.h> /* intern.h needs fd_set definition */
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										7
									
								
								io.c
									
										
									
									
									
								
							
							
						
						
									
										7
									
								
								io.c
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -26,7 +26,7 @@
 | 
			
		|||
 | 
			
		||||
#include <sys/types.h>
 | 
			
		||||
#if !defined(_WIN32) && !defined(__DJGPP__)
 | 
			
		||||
# if defined(__BEOS__)
 | 
			
		||||
#if defined(__BEOS__) && !defined(__HAIKU__)
 | 
			
		||||
#  include <net/socket.h>
 | 
			
		||||
# else
 | 
			
		||||
#  include <sys/socket.h>
 | 
			
		||||
| 
						 | 
				
			
			@ -90,7 +90,6 @@ extern void Init_File(void);
 | 
			
		|||
# ifndef NOFILE
 | 
			
		||||
#  define NOFILE (OPEN_MAX)
 | 
			
		||||
# endif
 | 
			
		||||
#include <net/socket.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include "ruby/util.h"
 | 
			
		||||
| 
						 | 
				
			
			@ -202,6 +201,10 @@ static int max_file_descriptor = NOFILE;
 | 
			
		|||
#  endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(__HAIKU__)
 | 
			
		||||
#define shutdown(a,b)	0
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(_WIN32)
 | 
			
		||||
#define is_socket(fd, path)	rb_w32_is_socket(fd)
 | 
			
		||||
#elif !defined(S_ISSOCK)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -63,6 +63,7 @@ $human = /human/ =~ RUBY_PLATFORM
 | 
			
		|||
$netbsd = /netbsd/ =~ RUBY_PLATFORM
 | 
			
		||||
$os2 = /os2/ =~ RUBY_PLATFORM
 | 
			
		||||
$beos = /beos/ =~ RUBY_PLATFORM
 | 
			
		||||
$haiku = /haiku/ =~ RUBY_PLATFORM
 | 
			
		||||
$solaris = /solaris/ =~ RUBY_PLATFORM
 | 
			
		||||
$dest_prefix_pattern = (File::PATH_SEPARATOR == ';' ? /\A([[:alpha:]]:)?/ : /\A/)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -119,7 +119,11 @@ native_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex)
 | 
			
		|||
 | 
			
		||||
#define native_cleanup_push pthread_cleanup_push
 | 
			
		||||
#define native_cleanup_pop  pthread_cleanup_pop
 | 
			
		||||
#ifdef __HAIKU__
 | 
			
		||||
#define native_thread_yield() /* not available under Haiku */
 | 
			
		||||
#else
 | 
			
		||||
#define native_thread_yield() sched_yield()
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef __CYGWIN__
 | 
			
		||||
static void add_signal_thread_list(rb_thread_t *th);
 | 
			
		||||
| 
						 | 
				
			
			@ -409,7 +413,9 @@ native_thread_create(rb_thread_t *th)
 | 
			
		|||
	CHECK_ERR(pthread_attr_setstacksize(&attr, stack_size));
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef __HAIKU__  /* not yet available under Haiku */
 | 
			
		||||
	CHECK_ERR(pthread_attr_setinheritsched(&attr, PTHREAD_INHERIT_SCHED));
 | 
			
		||||
#endif
 | 
			
		||||
	CHECK_ERR(pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED));
 | 
			
		||||
 | 
			
		||||
	err = pthread_create(&th->thread_id, &attr, thread_start_func_1, th);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue