Bugs item #1243, was opened at 2004-12-21 19:23 You can respond by visiting: http://rubyforge.org/tracker/?func=detail&atid=1698&aid=1243&group_id=426 Category: None Group: None Status: Open Resolution: None Priority: 5 Submitted By: Art Lazanoff (lazanoff) Assigned to: Nobody (None) Summary: ruby 1.8.1 installation problems on ia64/altix Initial Comment: ruby defaults to using gcc c89 syntax. Use of -pedantic reveals ruby is using 'long long' and 'inline'. Compiling with gcc -std=gnu99 solves a stack management problem in the code since gnu99 treats 'long long' as 64-bit. In gc.c the following " /* ruby crashes on IA64 if compiled with optimizer on */ /* when if STACK_LEVEL_MAX is greater than this magic number */ /* I know this is a kludge. I suspect optimizer bug */ " seems to be unnecessary when -std=gnu99 is used. There are several warnings still with -std=gnu99 that should also be addressed: gcc -std=gnu99 -pedantic -D__ia64__ -I. -I. -c process.c process.c: In function `proc_detach': process.c:522: warning: type of `obj' defaults to `int' process.c: In function `proc_getpgid': process.c:1139: warning: implicit declaration of function `getpgid' process.c: In function `p_sys_setresuid': process.c:1319: warning: implicit declaration of function `setresuid' process.c: In function `p_sys_setresgid': process.c:1562: warning: implicit declaration of function `setresgid' process.c: In function `proc_setmaxgroups': process.c:1724: warning: type of `val' defaults to `int' gcc -std=gnu99 -pedantic -D__ia64__ -I. -I. -c re.c re.c: In function `rb_memsearch': re.c:121: warning: pointer targets in passing arg 1 of `rb_memcicmp' differ in signedness re.c:121: warning: pointer targets in passing arg 2 of `rb_memcicmp' differ in signedness re.c:129: warning: pointer targets in passing arg 1 of `rb_memcicmp' differ in signedness re.c:129: warning: pointer targets in passing arg 2 of `rb_memcicmp' differ in signedness This version passes make test and also runs the following test case to much deeper levels (after increasing the default stacksize): def helloLevel level puts "hello world! "+level.to_s helloLevel(level+1) end ... hello world! 314336 hello world! 314337 hello world! 314338 ../helloLevel.rb:3:in `puts': stack level too deep (SystemStackError) from ../helloLevel.rb:3:in `helloLevel' from ../helloLevel.rb:4:in `helloLevel' from ../helloLevel.rb:4:in `helloLevel' from ../helloLevel.rb:4:in `helloLevel' from ../helloLevel.rb:4:in `helloLevel' from ../helloLevel.rb:4:in `helloLevel' from ../helloLevel.rb:4:in `helloLevel' from ../helloLevel.rb:4:in `helloLevel' ... 314329 levels... from ../helloLevel.rb:4:in `helloLevel' from ../helloLevel.rb:4:in `helloLevel' from ../helloLevel.rb:4:in `helloLevel' from ../helloLevel.rb:7 hello world! Platform is ia-64/altix. ./configure couldn't identify the platform: checking build system type... ia64-unknown-linux checking host system type... ia64-unknown-linux checking target system type... ia64-unknown-linux ---------------------------------------------------------------------- You can respond by visiting: http://rubyforge.org/tracker/?func=detail&atid=1698&aid=1243&group_id=426