[#4076] Ruby/DL — Jamis Buck <jamis_buck@...>

I recently used Ruby/DL to create bindings to the SQLite3 embedded

40 messages 2005/01/03
[#4096] Re: Ruby/DL — Paul Brannan <pbrannan@...> 2005/01/04

On Tue, Jan 04, 2005 at 02:53:49AM +0900, Jamis Buck wrote:

[#4099] Re: Ruby/DL — ts <decoux@...> 2005/01/04

>>>>> "P" == Paul Brannan <pbrannan@atdesk.com> writes:

[#4119] Re: Ruby/DL — Paul Brannan <pbrannan@...> 2005/01/05

On Wed, Jan 05, 2005 at 03:05:48AM +0900, ts wrote:

[#4120] Re: Ruby/DL — ts <decoux@...> 2005/01/05

>>>>> "P" == Paul Brannan <pbrannan@atdesk.com> writes:

[#4125] Re: Ruby/DL — Paul Brannan <pbrannan@...> 2005/01/05

On Thu, Jan 06, 2005 at 01:10:34AM +0900, ts wrote:

[#4116] Test::Unit::Collector::Dir won't work with code that modifies $LOAD_PATH — Eric Hodel <drbrain@...7.net>

Any test code that depends upon modifications of $: fails when used

10 messages 2005/01/05

[#4146] The face of Unicode support in the future — Charles O Nutter <headius@...>

Hello Rubyists!

47 messages 2005/01/06
[#4152] Re: The face of Unicode support in the future — Yukihiro Matsumoto <matz@...> 2005/01/07

Hi,

[#4167] Re: The face of Unicode support in the future — Christian Neukirchen <chneukirchen@...> 2005/01/09

Yukihiro Matsumoto <matz@ruby-lang.org> writes:

[#4175] Re: The face of Unicode support in the future — Yukihiro Matsumoto <matz@...> 2005/01/10

Hi,

[#4186] Re: The face of Unicode support in the future — Paul Brannan <pbrannan@...> 2005/01/11

On Mon, Jan 10, 2005 at 11:53:48PM +0900, Yukihiro Matsumoto wrote:

[#4192] Re: The face of Unicode support in the future — Yukihiro Matsumoto <matz@...> 2005/01/12

Hi,

[#4269] Re: The face of Unicode support in the future — Wes Nakamura <wknaka@...>

19 messages 2005/01/18
[#4270] Re: The face of Unicode support in the future — Yukihiro Matsumoto <matz@...> 2005/01/18

Hi,

[#4275] Re: The face of Unicode support in the future — Wes Nakamura <wknaka@...> 2005/01/19

[#4323] test/unit doesn't rescue a Exception — Tanaka Akira <akr@...17n.org>

test/unit doesn't rescue a Exception in a test method, as follows.

14 messages 2005/01/27
[#8773] Re: test/unit doesn't rescue a Exception — Tanaka Akira <akr@...> 2006/09/02

In article <87is5jb46q.fsf@serein.a02.aist.go.jp>,

[#8776] Re: test/unit doesn't rescue a Exception — "Nathaniel Talbott" <ntalbott@...> 2006/09/03

On 9/1/06, Tanaka Akira <akr@fsij.org> wrote:

[#8777] Re: test/unit doesn't rescue a Exception — Eric Hodel <drbrain@...7.net> 2006/09/03

On Sep 2, 2006, at 6:34 PM, Nathaniel Talbott wrote:

What do when when T_DATA is redefined?

From: "Berger, Daniel" <Daniel.Berger@...>
Date: 2005-01-17 17:27:39 UTC
List: ruby-core #4261
Hi all,

Ruby 1.8.2
Solaris 9
gcc 3.4.2

I'm having a T_DATA conflict with a Solaris extension that I'm trying to
write.  The problem stems from the nfs/nfs.h, which is in turn doing an
include on tiuser.h which in turn does an include on sys/tiuser.h.  It's
this last file, sys/tiuser.h, that does a "#define T_DATA 0x004" and is
causing the problem.

I have no choice but to include nfs/nfs.h, otherwise I can't see struct
mntinfo, which I need for this particular extension that I'm writing.
Moving the '#include "ruby.h"' to the bottom of the #include's is not an
ideal solution either, since that means I'm redefining a value that
nfs.h may be using.

Below are the rkstat.c, extconf.rb and test.rb files that demonstrate
the problem.  Below I have included two sample outputs, one from test.rb
and one from the 'make' command results.

/* rkstat.c */
#include "ruby.h" /* Try putting this later, too */
#include <kstat.h>
#include <nfs/nfs.h>
#include <nfs/nfs_clnt.h>

struct kstruct{
   kstat_ctl_t* kc;
   kstat_t* ksp;
};

typedef struct kstruct KS;

static void ks_free(KS* kptr){
   if(kptr->kc != NULL){
      kstat_close(kptr->kc);
   }
   free(kptr);
}

/* Class Methods */
static VALUE ks_allocate(VALUE klass){
   KS* kptr;
   return Data_Make_Struct(klass,KS,0,ks_free,kptr);
}

/* Instance Methods */
static VALUE ks_init(int argc, VALUE* argv, VALUE self){
   KS* kptr;
   VALUE rbModule,rbInstance,rbName;

   Data_Get_Struct(self,KS,kptr);

   rb_scan_args(argc,argv,"03",&rbModule,&rbInstance,&rbName);

   return self;
}

void Init_kstat(){
   VALUE mSolaris, cKstat;

   /* Modules and Classes */
   mSolaris = rb_define_module("Solaris");
   cKstat   = rb_define_class_under(mSolaris,"Kstat",rb_cObject);

   /* Class Methods */
   rb_define_alloc_func(cKstat,ks_allocate);

   /* Instance Methods */
   rb_define_method(cKstat,"initialize",ks_init,-1);
}

# extconf.rb
require "mkmf"
have_library("kstat")
create_makefile("solaris/kstat")

# test.rb
require "solaris/kstat"
include Solaris

k = Kstat.new
p k


# Output from test.rb with ruby.h as first include
# Note that there were no warnings during 'make', even with -Wall:

'initialize': wrong argument type Solaris::Kstat (expected iClass)
(TypeError)


# Output during make phase with ruby.h as last include
# Note that test.rb will run as expected, but this warning makes me very
nervous:
djberge@sp5wd-b1-/home/djberge/local/modules/ruby/solaris-kstat-0.2.0-61
0>make
gcc -Wall -mcpu=ultrasparc -fno-strict-aliasing -fPIC -g -O2 -I.
-I/opt/lib/ruby/1.8/sparc-solaris2.9
-I/opt/lib/ruby/1.8/sparc-solaris2.9 -I. -c rkstat.c
In file included from rkstat.c:4:
/opt/lib/ruby/1.8/sparc-solaris2.9/ruby.h:198:1: warning: "T_DATA"
redefined
In file included from /usr/include/tiuser.h:17,
                 from /usr/include/rpc/rpc.h:22,
                 from /usr/include/rpc/rpc_sztypes.h:9,
                 from /usr/include/nfs/nfs.h:49,
                 from rkstat.c:2:
/usr/include/sys/tiuser.h:30:1: warning: this is the location of the
previous definition
gcc -Wall -mcpu=ultrasparc -fno-strict-aliasing -Wl,-G  -L"/opt/lib" -o
kstat.so rkstat.o  -lkstat  -ldl -lm   -lc


What is the ideal solution here?

Regards,

Dan


In This Thread

Prev Next