Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: Bugs on SourceForge



>} I'll have to try this out when I get a moment.  But given the headers are
>} screwy for Solaris 8 (see below), I rather suspect I won't be able to
>} reproduce it.  Certainly works OK on 8 with zsh compiled under 6.
> Note that it was Solaris 6 where Jason is having `rlimit64' problems, so
> the fact that you're able to compile on Solaris 6 but he is not may be
> indicative of ... something ...

Probably largefile support if I had to make a guess...  See below.

>}> On to the datasize tests.
>} These worked, right?  Else I'm missing something.
> They worked.  I closed out the bug report on SourceForge.

Quite correct... I wasn't very clear.
 
>>> In file included from /usr/include/sys/wait.h:24, from configure:2638:
>>> /usr/include/sys/resource.h:148: warning: `struct rlimit64' declared
>>> inside parameter list

>> This looks like another header problem, but this time it's more than
>> just configure complaining.  struct rlimit64 should be defined:
>> [...]
>> 5.8 system.  The complaints are presumbably from the lines
 
>>   extern int setrlimit64(int, const struct rlimit64 *);
>>   extern int getrlimit64(int, struct rlimit64 *);

> Your header certainly makes it appear that it shouldn't be possible to
> compile the above two lines without also having rlimit64 defined.  I've
> already sent mail to Jason asking what his resource.h looks like (and
> he's Cc'd on this message).

Line 148 is:

extern int setrlimit(int, const struct rlimit *);

Here is the relevant portion of resource.h on solaris 2.6:

/*************************************************************************/
#if defined(__STDC__)

extern int setrlimit(int, const struct rlimit *);    /* ** line 148 ** */
extern int getrlimit(int, struct rlimit *);

/* transitional large file interfaces */
#if     defined(_LARGEFILE64_SOURCE) && !((_FILE_OFFSET_BITS == 64) && \
            !defined(__PRAGMA_REDEFINE_EXTNAME))
extern int setrlimit64(int, const struct rlimit64 *);
extern int getrlimit64(int, struct rlimit64 *);
#endif  /* _LARGEFILE64_SOURCE... */

extern int getpriority(int, id_t);
extern int setpriority(int, id_t, int);
extern int getrusage(int, struct rusage *);

#else   /* __STDC__ */

extern int getrlimit();
extern int setrlimit();

/* transitional large file interfaces */
#if     defined(_LARGEFILE64_SOURCE) && !((_FILE_OFFSET_BITS == 64) && \
            !defined(__PRAGMA_REDEFINE_EXTNAME))
extern int setrlimit64();
extern int getrlimit64();
#endif  /* _LARGEFILE64_SOURCE... */

extern int getpriority();
extern int setpriority();
extern int getrusage();

#endif  /* __STDC__ */
/*************************************************************************/

And here's what it looks like in Solaris 8:

/*************************************************************************/
#if defined(__STDC__)

extern int setrlimit(int, const struct rlimit *);
extern int getrlimit(int, struct rlimit *);

/* transitional large file interfaces */
#if     defined(_LARGEFILE64_SOURCE) && !((_FILE_OFFSET_BITS == 64) && \
            !defined(__PRAGMA_REDEFINE_EXTNAME))
extern int setrlimit64(int, const struct rlimit64 *);
extern int getrlimit64(int, struct rlimit64 *);
#endif  /* _LARGEFILE64_SOURCE... */

extern int getpriority(int, id_t);
extern int setpriority(int, id_t, int);
extern int getrusage(int, struct rusage *);

#else   /* __STDC__ */

extern int getrlimit();
extern int setrlimit();

/* transitional large file interfaces */
#if     defined(_LARGEFILE64_SOURCE) && !((_FILE_OFFSET_BITS == 64) && \
            !defined(__PRAGMA_REDEFINE_EXTNAME))
extern int setrlimit64();
extern int getrlimit64();
#endif  /* _LARGEFILE64_SOURCE... */

extern  int getpriority();
extern  int setpriority();
extern  int getrusage();

#endif  /* __STDC__ */
/*************************************************************************/

(I can get solaris 7's version too)

If I had to shoot into the dark about what's causing this, it'd be the
migration path Sun took from 32 bit to 64 bit.  2.6 was the first,
partially 64 bit OS sun made (IIRC).  It only did a 64 bit file system,
leaving the rest of the kernel relativly unharmed.  Solaris 7 was fully 64
bit.

If I can help with things, let me know.  

Jason

-- 
"Friendship is the bridge between lonely and loved, between a glance and a
gaze. It stretches from the fog into sunshine, hopelessness into faith, 
between despair and joy. It crosses the chasm from hell and to heaven, from 
God to man, and from you to me." --Unknown   Jason Price  jprice@xxxxxxxxxx



Messages sorted by: Reverse Date, Date, Thread, Author