Forum: Ruby 1.8.7-p72 on AIX 5.3 with IBM compiler

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Albert Chin (Guest)
on 2008-10-16 20:05
(Received via mailing list)
$ gtar zxf ruby-1.8.7-p72.tar.gz
$ cd ruby-1.8.7-p72
$ ./configure CC=xlc_r CFLAGS="-g" --enable-shared --enable-pthread
$ gmake
...
xlc_r -g     -DRUBY_EXPORT  -I. -I.    -c eval.c
"eval.c", line 12093.12: 1506-343 (S) Redeclaration of thread_init
differs from previous declaration on line 920 of
"/usr/include/sys/thread.h".
"eval.c", line 12093.12: 1506-382 (I) The type "int" of identifier
thread_init differs from previous type "void(unsigned long long,unsigned
long long)".
gmake: *** [eval.o] Error 1
[fixed]

$ gmake
...
xlc_r -g     -DRUBY_EXPORT  -I. -I.    -c parse.c
"intern.h", line 28.7: 1506-166 (S) Definition of function rb_ary_new3
requires parentheses.
"intern.h", line 28.19: 1506-276 (S) Syntax error: possible missing '{'?
"node.h", line 21.5: 1506-045 (S) Undeclared identifier NODE_METHOD.
...
[fixed]

$ gmake
...
xlc_r -g     -DRUBY_EXPORT  -L.  -bE:ruby.imp -brtl   main.o
libruby-static.a -lpthread -ldl -lcrypt -lm   -o miniruby
gmake: *** [.rbconfig.time] IOT/Abort trap (core dumped)

$ dbx miniruby core
(/usr/ccs/bin/dbx) where
_p_raise(??) at 0xd01242a4
raise.raise(??) at 0xd0359c70
abort.abort() at 0xd03b7f78
rb_jump_context(env = 0x2ff20d30, val = 2), line 97 in "eval.c"
rb_iterate(it_proc = 0x2001bd28, data1 = 537241180, bl_proc =
0x2001d5f4, data2 = 804381664), line 5417 in "eval.c"
enum_each_with_index(obj = 537241180), line 1508 in "enum.c"
call_cfunc(func = 0x2001bca4, recv = 537241180, len = 0, argc = 0, argv
= (nil)), line 5752 in "eval.c"
unnamed block in rb_call0(klass = 537274880, recv = 537241180, id =
3929, oid = 3929, argc = 0, argv = (nil), body = 0x200686a8, flags = 0),
line 5904 in "eval.c"
unnamed block in rb_call0(klass = 537274880, recv = 537241180, id =
3929, oid = 3929, argc = 0, argv = (nil), body = 0x200686a8, flags = 0),
line 5904 in "eval.c"
unnamed block in rb_call0(klass = 537274880, recv = 537241180, id =
3929, oid = 3929, argc = 0, argv = (nil), body = 0x200686a8, flags = 0),
line 5904 in "eval.c"
rb_call0(klass = 537274880, recv = 537241180, id = 3929, oid = 3929,
argc = 0, argv = (nil), body = 0x200686a8, flags = 0), line 5904 in
"eval.c"
rb_call(klass = 537274880, recv = 537241180, mid = 3929, argc = 0, argv
= (nil), scope = 0, self = 537300680), line 6151 in "eval.c"
unnamed block in rb_eval(self = 537300680, n = 0x20058870), line 3492 in
"eval.c"
unnamed block in rb_eval(self = 537300680, n = 0x20058870), line 3492 in
"eval.c"
rb_eval(self = 537300680, n = 0x20058870), line 3492 in "eval.c"
unnamed block in rb_eval(self = 537300680, n = 0x20058618), line 3222 in
"eval.c"
unnamed block in rb_eval(self = 537300680, n = 0x20058618), line 3222 in
"eval.c"
unnamed block in rb_eval(self = 537300680, n = 0x20058618), line 3222 in
"eval.c"
rb_eval(self = 537300680, n = 0x20058618), line 3222 in "eval.c"
eval_node(self = 537300680, node = 0x20058618), line 1436 in "eval.c"
unnamed block in rb_load(fname = 537233720, wrap = 0), line 7032 in
"eval.c"
unnamed block in rb_load(fname = 537233720, wrap = 0), line 7032 in
"eval.c"
unnamed block in rb_load(fname = 537233720, wrap = 0), line 7032 in
"eval.c"
unnamed block in rb_load(fname = 537233720, wrap = 0), line 7032 in
"eval.c"
unnamed block in rb_load(fname = 537233720, wrap = 0), line 7032 in
"eval.c"
unnamed block in rb_load(fname = 537233720, wrap = 0), line 7032 in
"eval.c"
unnamed block in rb_load(fname = 537233720, wrap = 0), line 7032 in
"eval.c"
rb_load(fname = 537233720, wrap = 0), line 7032 in "eval.c"
unnamed block in rb_require_safe(fname = 537233880, safe = 0), line 7389
in "eval.c"
unnamed block in rb_require_safe(fname = 537233880, safe = 0), line 7389
in "eval.c"
rb_require_safe(fname = 537233880, safe = 0), line 7389 in "eval.c"
rb_require(fname = "./ext/purelib.rb"), line 7429 in "eval.c"
unnamed block in rb_protect(proc = 0x2001e3bc, data = 537575944, state =
0x2ff22424), line 5526 in "eval.c"
rb_protect(proc = 0x2001e3bc, data = 537575944, state = 0x2ff22424),
line 5526 in "eval.c"
unnamed block in require_libraries(), line 387 in "ruby.c"
require_libraries(), line 387 in "ruby.c"
unnamed block in load_file(fname = "./mkconfig.rb", script = 1), line
974 in "ruby.c"
load_file(fname = "./mkconfig.rb", script = 1), line 974 in "ruby.c"
proc_options(argc = 4, argv = 0x2ff229c8), line 853 in "ruby.c"
ruby_process_options(argc = 10, argv = 0x2ff229b0), line 1246 in
"ruby.c"
unnamed block in ruby_options(argc = 10, argv = 0x2ff229b0), line 1532
in "eval.c"
ruby_options(argc = 10, argv = 0x2ff229b0), line 1532 in "eval.c"
unnamed block in main(argc = 10, argv = 0x2ff229b0, envp = 0x2ff229dc),
line 47 in "main.c"
main(argc = 10, argv = 0x2ff229b0, envp = 0x2ff229dc), line 47 in
"main.c"

--
albert chin (china @at@ thewrittenword .dot. com)

-- snip snip
--- eval.c.orig  2008-08-04 03:24:26.000000000 +0000
+++ eval.c  2008-10-16 15:52:27.000000000 +0000
@@ -12090,7 +12090,7 @@
     return th;
 }

-static int thread_init;
+static int rbthread_init;

 #if defined(_THREAD_SAFE)
 static void
@@ -12164,7 +12164,7 @@
 {
     struct itimerval tval;

-    if (!thread_init) return;
+    if (!rbthread_init) return;
     tval.it_interval.tv_sec = 0;
     tval.it_interval.tv_usec = 10000;
     tval.it_value = tval.it_interval;
@@ -12176,7 +12176,7 @@
 {
     struct itimerval tval;

-    if (!thread_init) return;
+    if (!rbthread_init) return;
     tval.it_interval.tv_sec = 0;
     tval.it_interval.tv_usec = 0;
     tval.it_value = tval.it_interval;
@@ -12203,8 +12203,8 @@
      "can't start a new thread (frozen ThreadGroup)");
     }

-    if (!thread_init) {
-  thread_init = 1;
+    if (!rbthread_init) {
+  rbthread_init = 1;
 #if defined(HAVE_SETITIMER) || defined(_THREAD_SAFE)
 #if defined(POSIX_SIGNAL)
   posix_signal(SIGVTALRM, catch_timer);
--- intern.h.orig  2008-07-07 03:29:28.000000000 +0000
+++ intern.h  2008-10-16 15:52:33.000000000 +0000
@@ -25,7 +25,7 @@
 VALUE rb_check_array_type _((VALUE));
 VALUE rb_ary_new _((void));
 VALUE rb_ary_new2 _((long));
-VALUE rb_ary_new3 __((long,...));
+VALUE rb_ary_new3 _((long,...));
 VALUE rb_ary_new4 _((long, const VALUE *));
 VALUE rb_ary_freeze _((VALUE));
 VALUE rb_ary_aref _((int, VALUE*, VALUE));
@@ -141,11 +141,11 @@
 VALUE rb_exc_new _((VALUE, const char*, long));
 VALUE rb_exc_new2 _((VALUE, const char*));
 VALUE rb_exc_new3 _((VALUE, VALUE));
-NORETURN(void rb_loaderror __((const char*, ...)));
-NORETURN(void rb_name_error __((ID, const char*, ...)));
+NORETURN(void rb_loaderror _((const char*, ...)));
+NORETURN(void rb_name_error _((ID, const char*, ...)));
 NORETURN(void rb_invalid_str _((const char*, const char*)));
-void rb_compile_error __((const char*, ...));
-void rb_compile_error_append __((const char*, ...));
+void rb_compile_error _((const char*, ...));
+void rb_compile_error_append _((const char*, ...));
 NORETURN(void rb_load_fail _((const char*)));
 NORETURN(void rb_error_frozen _((const char*)));
 void rb_check_frozen _((VALUE));
@@ -236,7 +236,7 @@
 VALUE rb_thread_local_aset _((VALUE, ID, VALUE));
 void rb_thread_atfork _((void));
 VALUE rb_exec_recursive _((VALUE(*)(VALUE, VALUE, int),VALUE,VALUE));
-VALUE rb_funcall_rescue __((VALUE, ID, int, ...));
+VALUE rb_funcall_rescue _((VALUE, ID, int, ...));
 /* file.c */
 VALUE rb_file_s_expand_path _((int, VALUE *));
 VALUE rb_file_expand_path _((VALUE, VALUE));
@@ -249,7 +249,7 @@
 char *rb_path_end _((const char *));
 VALUE rb_file_directory_p _((VALUE,VALUE));
 /* gc.c */
-NORETURN(void rb_memerror __((void)));
+NORETURN(void rb_memerror _((void)));
 int ruby_stack_check _((void));
 int ruby_stack_length _((VALUE**));
 int rb_during_gc _((void));
@@ -463,8 +463,8 @@
 void rb_str_setter _((VALUE, ID, VALUE*));
 VALUE rb_str_intern _((VALUE));
 /* struct.c */
-VALUE rb_struct_new __((VALUE, ...));
-VALUE rb_struct_define __((const char*, ...));
+VALUE rb_struct_new _((VALUE, ...));
+VALUE rb_struct_define _((const char*, ...));
 VALUE rb_struct_alloc _((VALUE, VALUE));
 VALUE rb_struct_aref _((VALUE, VALUE));
 VALUE rb_struct_aset _((VALUE, VALUE, VALUE));
This topic is locked and can not be replied to.