mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
f59bd226b3
define __ia64__.) don't check libunwind stuff. check __libc_ia64_register_backing_store_base. * defines.h: declare rb_ia64_bsp and rb_ia64_flushrs. (flush_register_windows): call rb_ia64_flushrs on IA64. * ia64.s: new file for IA64. it is separated from C program files because Intel C++ Compiler for IA64 doesn't support inline assembly. * common.mk (ia64.$(OBJEXT)): new target. * ruby.h (RUBY_INIT_STACK): defined. (ruby_init_stack): declared for RUBY_INIT_STACK. * main.c (main): precedes RUBY_INIT_STACK before ruby_init. * gc.c (rb_gc_register_stack_start): new global variable on IA64. (garbage_collect): simplify register stack marking code. don't use libunwind. (Init_stack): initialize rb_gc_register_stack_start. (ruby_init_stack): new function for RUBY_INIT_STACK. * eval.c (struct thread): add bstr_pos member for original position of register stack. (rb_thread_save_context): simplify register stack saving code. don't use libunwind. (rb_thread_restore_context_0): new function. moved from rb_thread_restore_context except the stack position checking code. don't use libunwind for IA64 register stack. (register_stack_extend): new function. (stack_extend): make it self-recursive with the stack position checking code in old rb_thread_restore_context. (rb_thread_restore_context): just call stack_extend. (flush_register_windows): removed. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9745 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
46 lines
977 B
C
46 lines
977 B
C
/**********************************************************************
|
|
|
|
main.c -
|
|
|
|
$Author$
|
|
$Date$
|
|
created at: Fri Aug 19 13:19:58 JST 1994
|
|
|
|
Copyright (C) 1993-2003 Yukihiro Matsumoto
|
|
|
|
**********************************************************************/
|
|
|
|
#undef RUBY_EXPORT
|
|
#include "ruby.h"
|
|
|
|
#if defined(__MACOS__) && defined(__MWERKS__)
|
|
#include <console.h>
|
|
#endif
|
|
|
|
/* to link startup code with ObjC support */
|
|
#if (defined(__APPLE__) || defined(__NeXT__)) && defined(__MACH__)
|
|
static void objcdummyfunction( void ) { objc_msgSend(); }
|
|
#endif
|
|
|
|
int
|
|
main(int argc, char **argv, char **envp)
|
|
{
|
|
#ifdef RUBY_GC_DEBUG
|
|
RUBY_EXTERN int always_gc;
|
|
always_gc = getenv("RUBY_ALWAYS_GC") != NULL;
|
|
#endif
|
|
#ifdef _WIN32
|
|
NtInitialize(&argc, &argv);
|
|
#endif
|
|
#if defined(__MACOS__) && defined(__MWERKS__)
|
|
argc = ccommand(&argv);
|
|
#endif
|
|
|
|
{
|
|
RUBY_INIT_STACK
|
|
ruby_init();
|
|
ruby_options(argc, argv);
|
|
ruby_run();
|
|
}
|
|
return 0;
|
|
}
|