[#7055] More on VC++ 2005 — Austin Ziegler <halostatue@...>

Okay. I've got Ruby compiling. I'm attempting to get everything in

17 messages 2006/01/05
[#7058] Re: More on VC++ 2005 — nobuyoshi nakada <nobuyoshi.nakada@...> 2006/01/06

Hi,

[#7084] mathn: ugly warnings — hadmut@... (Hadmut Danisch)

Hi,

22 messages 2006/01/10
[#7097] Re: mathn: ugly warnings — Daniel Berger <Daniel.Berger@...> 2006/01/10

Hadmut Danisch wrote:

[#7098] Design contracts and refactoring (was Re: mathn: ugly warnings) — mathew <meta@...> 2006/01/10

Daniel Berger wrote:

[#7118] Re: Design contracts and refactoring (was Re: mathn: ugly warnings) — mathew <meta@...> 2006/01/12

*Dean Wampler *<deanwampler gmail.com> writes:

[#7226] Fwd: Re: Question about massive API changes — "Sean E. Russell" <ser@...>

Hello,

23 messages 2006/01/28
[#7228] Re: Question about massive API changes — Caleb Tennis <caleb@...> 2006/01/28

>

[ ruby-Bugs-3317 ] trouble due ruby redefining posix function eaccess

From: noreply@...
Date: 2006-01-24 14:45:35 UTC
List: ruby-core #7195
Bugs item #3317, was opened at 2006-01-24 15:33
You can respond by visiting: 
http://rubyforge.org/tracker/?func=detail&atid=1698&aid=3317&group_id=426

Category: Core
Group: None
Status: Open
Resolution: None
Priority: 3
Submitted By: Marcus Rueckert (darix)
Assigned to: Nobody (None)
Summary: trouble due ruby redefining posix function eaccess

Initial Comment:
ruby redefines eaccess in intern.h
[[[
$ grep eaccess intern.h
int eaccess _((const char*, int));
]]]

that wasnt a problem as long the ruby definition matched  the glibc definition.
for the upcoming glibc 2.4 the definition of eaccess() was changed a bit.

the relevant snippet from the unistd.h [1]
[[[
/* Test for access to NAME using the effective UID and GID
   (as normal file operations use).  */
extern int euidaccess (__const char *__name, int __type)
     __THROW __nonnull ((1));

/* An alias for `euidaccess', used by some other systems.  */
extern int eaccess (__const char *__name, int __type)
     __THROW __nonnull ((1));
]]]


[1]
http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/posix/unistd.h?rev=1.143&content-type=text/x-cvsweb-markup&cvsroot=glibc

if a program now includes unistd and ruby.h you get the following error:
/usr/include/unistd.h:266: error: declaration of 'int eaccess(const char*, int) throw ()' throws different exceptions
/usr/lib/ruby/1.8/i586-linux/intern.h:223: error: from previous declaration 'int eaccess(const char*, int)'

from the code it seems the ruby version is not as strict as the glibc version.
would it be enough to rename the ruby internal function to rb_eaccess and refactor all calls from eaccess to rb_eaccess?


----------------------------------------------------------------------

You can respond by visiting: 
http://rubyforge.org/tracker/?func=detail&atid=1698&aid=3317&group_id=426

In This Thread

Prev Next