64-bit Ruby on Solaris?

Hi all,

Solaris 9
gcc 3.3.1
Ruby 1.8.1 p2
Sunblade 100, UltraSparc IIe

As usual, I’m playing with things I don’t truly understand. Anyway, I
thought I’d try building 1.8.1 p2 as 64 bit since I’ve upgraded my
compiler since last time.

After running configure, I manually added “-m64 -mcpu=ultrasparc” into
the CC line of the Makefile. I seemed to get further this time, and
died with a different error:

gcc -m64 -mcpu=ultrasparc -g -O2 -I. -I. -c io.c
io.c: In function rb_read_pending': io.c:259: error: structure has no member named_cnt’
io.c: In function rb_read_check': io.c:266: error: structure has no member named_cnt’
io.c: In function rb_io_eof': io.c:564: error: structure has no member named_cnt’
io.c:565: error: structure has no member named _cnt' io.c: In functionrb_io_fread’:
io.c:683: error: structure has no member named _cnt' io.c:686: error: structure has no member named_cnt’
io.c: In function read_all': io.c:780: error: structure has no member named_cnt’
io.c: In function io_read': io.c:842: error: structure has no member named_cnt’
io.c: In function appendline': io.c:873: error: structure has no member named_cnt’
io.c:875: error: structure has no member named _ptr' io.c: In functionswallow’:
io.c:963: error: structure has no member named _cnt' io.c:965: error: structure has no member named_ptr’
io.c: In function rb_io_each_byte': io.c:1222: error: structure has no member named_cnt’
io.c: In function rb_io_getc': io.c:1254: error: structure has no member named_cnt’
io.c: In function rb_getc': io.c:1277: error: structure has no member named_cnt’
io.c: In function rb_io_sysseek': io.c:1515: error: structure has no member named_cnt’
io.c: In function rb_io_sysread': io.c:1572: error: structure has no member named_cnt’
io.c: In function rb_f_select': io.c:3256: error: structure has no member named_cnt’
make: *** [io.o] Error 1

Here’s my config.h file:
#define PACKAGE_NAME “”
#define PACKAGE_TARNAME “”
#define PACKAGE_VERSION “”
#define PACKAGE_STRING “”
#define PACKAGE_BUGREPORT “”
#define STDC_HEADERS 1
#define HAVE_SYS_TYPES_H 1
#define HAVE_SYS_STAT_H 1
#define HAVE_STDLIB_H 1
#define HAVE_STRING_H 1
#define HAVE_MEMORY_H 1
#define HAVE_STRINGS_H 1
#define HAVE_INTTYPES_H 1
#define HAVE_UNISTD_H 1
#define _FILE_OFFSET_BITS 64
#define HAVE_LONG_LONG 1
#define HAVE_OFF_T 1
#define SIZEOF_INT 4
#define SIZEOF_SHORT 2
#define SIZEOF_LONG 4
#define SIZEOF_LONG_LONG 8
#define SIZEOF___INT64 0
#define SIZEOF_OFF_T 8
#define SIZEOF_VOIDP 4
#define SIZEOF_FLOAT 4
#define SIZEOF_DOUBLE 8
#define HAVE_PROTOTYPES 1
#define TOKEN_PASTE(x,y) x##y
#define HAVE_STDARG_PROTOTYPES 1
#define NORETURN(x) x attribute ((noreturn))
#define HAVE_DECL_SYS_NERR 0
#define HAVE_LIBCRYPT 1
#define HAVE_LIBDL 1
#define HAVE_DIRENT_H 1
#define STDC_HEADERS 1
#define HAVE_SYS_WAIT_H 1
#define HAVE_STDLIB_H 1
#define HAVE_STRING_H 1
#define HAVE_UNISTD_H 1
#define HAVE_LIMITS_H 1
#define HAVE_SYS_FILE_H 1
#define HAVE_SYS_IOCTL_H 1
#define HAVE_FCNTL_H 1
#define HAVE_SYS_FCNTL_H 1
#define HAVE_SYS_SELECT_H 1
#define HAVE_SYS_TIME_H 1
#define HAVE_SYS_TIMES_H 1
#define HAVE_SYS_PARAM_H 1
#define HAVE_PWD_H 1
#define HAVE_GRP_H 1
#define HAVE_UTIME_H 1
#define HAVE_MEMORY_H 1
#define HAVE_SYS_RESOURCE_H 1
#define HAVE_SYS_MKDEV_H 1
#define HAVE_SYS_UTIME_H 1
#define HAVE_FLOAT_H 1
#define HAVE_STRUCT_STAT_ST_BLKSIZE 1
#define HAVE_ST_BLKSIZE 1
#define HAVE_STRUCT_STAT_ST_BLOCKS 1
#define HAVE_ST_BLOCKS 1
#define HAVE_STRUCT_STAT_ST_RDEV 1
#define HAVE_ST_RDEV 1
#define GETGROUPS_T gid_t
#define RETSIGTYPE void
#define HAVE_ALLOCA_H 1
#define HAVE_ALLOCA 1
#define HAVE_FSEEKO 1
#define HAVE_FTELLO 1
#define HAVE_DUP2 1
#define HAVE_MEMMOVE 1
#define HAVE_MKDIR 1
#define HAVE_STRCASECMP 1
#define HAVE_STRNCASECMP 1
#define HAVE_STRERROR 1
#define HAVE_STRFTIME 1
#define HAVE_STRCHR 1
#define HAVE_STRSTR 1
#define HAVE_STRTOUL 1
#define HAVE_CRYPT 1
#define HAVE_VSNPRINTF 1
#define HAVE_ISNAN 1
#define HAVE_FINITE 1
#define HAVE_HYPOT 1
#define HAVE_ACOSH 1
#define HAVE_ERF 1
#define HAVE_FMOD 1
#define HAVE_KILLPG 1
#define HAVE_WAIT4 1
#define HAVE_WAITPID 1
#define HAVE_SYSCALL 1
#define HAVE_CHROOT 1
#define HAVE_FSYNC 1
#define HAVE_TRUNCATE 1
#define HAVE_TIMES 1
#define HAVE_UTIMES 1
#define HAVE_FCNTL 1
#define HAVE_LOCKF 1
#define HAVE_LSTAT 1
#define HAVE_SYMLINK 1
#define HAVE_READLINK 1
#define HAVE_SETITIMER 1
#define HAVE_SETEUID 1
#define HAVE_SETREUID 1
#define HAVE_SETEGID 1
#define HAVE_SETREGID 1
#define HAVE_ISSETUGID 1
#define HAVE_PAUSE 1
#define HAVE_LCHOWN 1
#define HAVE_GETPGRP 1
#define HAVE_SETPGRP 1
#define HAVE_GETPGID 1
#define HAVE_SETPGID 1
#define HAVE_INITGROUPS 1
#define HAVE_GETGROUPS 1
#define HAVE_SETGROUPS 1
#define HAVE_GETPRIORITY 1
#define HAVE_GETRLIMIT 1
#define HAVE_DLOPEN 1
#define HAVE_SIGPROCMASK 1
#define HAVE_SIGACTION 1
#define HAVE__SETJMP 1
#define HAVE_SETSID 1
#define HAVE_TELLDIR 1
#define HAVE_SEEKDIR 1
#define HAVE_FCHMOD 1
#define HAVE_MKTIME 1
#define HAVE_COSH 1
#define HAVE_SINH 1
#define HAVE_TANH 1
#define HAVE_SETUID 1
#define HAVE_SETGID 1
#define HAVE_TZNAME 1
#define HAVE_DAYLIGHT 1
#define NEGATIVE_TIME_T 1
#define POSIX_SIGNAL 1
#define GETPGRP_VOID 1
#define SETPGRP_VOID 1
#define WORDS_BIGENDIAN 1
#define RSHIFT(x,y) ((x)>>(int)y)
#define FILE_COUNT _cnt
#define FILE_READPTR _ptr
#define NEED_IO_SEEK_BETWEEN_RW 1
#define HUGE_ST_INO 1
#define STACK_GROW_DIRECTION -1
#define DEFAULT_KCODE KCODE_NONE
#define USE_ELF 1
#define DLEXT “.so”
#define RUBY_LIB “/opt/lib/ruby/1.8”
#define RUBY_SITE_LIB “/opt/lib/ruby/site_ruby”
#define RUBY_SITE_LIB2 “/opt/lib/ruby/site_ruby/1.8”
#define RUBY_PLATFORM “sparc-solaris2.9”
#define RUBY_ARCHLIB “/opt/lib/ruby/1.8/sparc-solaris2.9”
#define RUBY_SITE_ARCHLIB “/opt/lib/ruby/site_ruby/1.8/sparc-solaris2.9”

I tried messing with the LDFLAGS and CFLAGS settings as well but no
luck. Any ideas?

Regards,

Dan

Hi,

···

In message “64-bit Ruby on Solaris?” on 03/10/31, Daniel Berger djberge@qwest.com writes:

Solaris 9
gcc 3.3.1
Ruby 1.8.1 p2
Sunblade 100, UltraSparc IIe

As usual, I’m playing with things I don’t truly understand. Anyway, I
thought I’d try building 1.8.1 p2 as 64 bit since I’ve upgraded my
compiler since last time.

After running configure, I manually added “-m64 -mcpu=ultrasparc” into
the CC line of the Makefile. I seemed to get further this time, and
died with a different error:

Seems like configure failed to detect platform stdio information. I
hope you (or others) can help me to support newer Solaris.

						matz.

Yukihiro Matsumoto wrote:

Hi,

Solaris 9
gcc 3.3.1
Ruby 1.8.1 p2
Sunblade 100, UltraSparc IIe

As usual, I’m playing with things I don’t truly understand. Anyway, I
thought I’d try building 1.8.1 p2 as 64 bit since I’ve upgraded my
compiler since last time.

After running configure, I manually added “-m64 -mcpu=ultrasparc” into
the CC line of the Makefile. I seemed to get further this time, and
died with a different error:

Seems like configure failed to detect platform stdio information. I
hope you (or others) can help me to support newer Solaris.

                                                    matz.

Ok - below is the stdio.h file. Please let me know what else you need.
If I could, I would give you an account on a Solaris box here at work,
but that’s not possible unfortunately. There is, however, a
Sparc/Solaris box on SourceForge’s compile farm if you’re interested.

Regards,

Dan

/* stdio.h from Solaris 9 /
/
Copyright (c) 1988 AT&T /
/
All Rights Reserved */

/* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T /
/
The copyright notice above does not evidence any /
/
actual or intended publication of such source code. */

/*

  • Copyright (c) 1993-2001, by Sun Microsystems, Inc.
  • All rights reserved.
    */

/*

  • User-visible pieces of the ANSI C standard I/O package.
    */

#ifndef _STDIO_H
#define _STDIO_H

#pragma ident “@(#)stdio.h 1.79 01/04/16 SMI” /* SVr4.0 2.34.1.2 */

#include <iso/stdio_iso.h>

/*

  • If feature test macros are set that enable interfaces that use types
  • defined in <sys/types.h>, get those types by doing the include.
···

In message “64-bit Ruby on Solaris?” > on 03/10/31, Daniel Berger djberge@qwest.com writes:

  • Note that in asking for the interfaces associated with this feature
    test
  • macro one also asks for definitions of the POSIX types.
    */

/*

  • Allow global visibility for symbols defined in
  • C++ “std” namespace in <iso/stdio_iso.h>.
    */
    #if __cplusplus >= 199711L
    using std::FILE;
    using std::size_t;
    using std::fpos_t;
    using std::remove;
    using std::rename;
    using std::tmpfile;
    using std::tmpnam;
    using std::fclose;
    using std::fflush;
    using std::fopen;
    using std::freopen;
    using std::setbuf;
    using std::setvbuf;
    using std::fprintf;
    using std::fscanf;
    using std::printf;
    using std::scanf;
    using std::sprintf;
    using std::sscanf;
    using std::vfprintf;
    using std::vprintf;
    using std::vsprintf;
    using std::fgetc;
    using std::fgets;
    using std::fputc;
    using std::fputs;
    using std::getc;
    using std::getchar;
    using std::gets;
    using std::putc;
    using std::putchar;
    using std::puts;
    using std::ungetc;
    using std::fread;
    using std::fwrite;
    using std::fgetpos;
    using std::fseek;
    using std::fsetpos;
    using std::ftell;
    using std::rewind;
    using std::clearerr;
    using std::feof;
    using std::ferror;
    using std::perror;
    #endif

#ifdef __cplusplus
extern “C” {
#endif

#if defined(_LARGEFILE_SOURCE) || defined(_XPG5)
#ifndef _OFF_T
#define _OFF_T
#if defined(_LP64) || _FILE_OFFSET_BITS == 32
typedef long off_t;
#else
typedef __longlong_t off_t;
#endif
#ifdef _LARGEFILE64_SOURCE
#ifdef _LP64
typedef off_t off64_t;
#else
typedef __longlong_t off64_t;
#endif
#endif /* _LARGEFILE64_SOURCE /
#endif /
_OFF_T /
#endif /
_LARGEFILE_SOURCE */

#ifdef _LARGEFILE64_SOURCE
#ifdef _LP64
typedef fpos_t fpos64_t;
#else
typedef __longlong_t fpos64_t;
#endif
#endif /* _LARGEFILE64_SOURCE */

/*

  • XPG4 requires that va_list be defined in <stdio.h> "as described in
  • <stdarg.h>". ANSI-C and POSIX require that the namespace of
    <stdio.h>
  • not be polluted with this name.
    /
    #if defined(_XOPEN_SOURCE) && (_XOPEN_VERSION - 0 >= 4) &&
    !defined(_VA_LIST)
    #define _VA_LIST
    typedef __va_list va_list;
    #endif /
    defined(_XOPEN_SOURCE) && (_XOPEN_VERSION - 0 >= 4) && … */

#if defined(EXTENSIONS) || STDC - 0 == 0 ||
defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE)

#define L_ctermid 9
#define L_cuserid 9
#endif

#if defined(EXTENSIONS) || ((STDC - 0 == 0 &&
!defined(_POSIX_C_SOURCE))) || defined(_XOPEN_SOURCE)

#define P_tmpdir “/var/tmp/”
#endif /* defined(EXTENSIONS) || ((STDC - 0 == 0 && … */

#ifndef _STDIO_ALLOCATE
extern unsigned char _sibuf, _sobuf;
#endif

/* large file compilation environment setup /
#if !defined(_LP64) && _FILE_OFFSET_BITS == 64
#ifdef __PRAGMA_REDEFINE_EXTNAME
#pragma redefine_extname fopen fopen64
#pragma redefine_extname freopen freopen64
#pragma redefine_extname tmpfile tmpfile64
#pragma redefine_extname fgetpos fgetpos64
#pragma redefine_extname fsetpos fsetpos64
#ifdef _LARGEFILE_SOURCE
#pragma redefine_extname fseeko fseeko64
#pragma redefine_extname ftello ftello64
#endif
#else /
__PRAGMA_REDEFINE_EXTNAME */
#if defined(STDC)
extern FILE *fopen64(const char *, const char *);
extern FILE *freopen64(const char *, const char *, FILE *);
extern FILE *tmpfile64(void);
extern int fgetpos64(FILE *, fpos_t *);
extern int fsetpos64(FILE *, const fpos_t );
#else /
defined(STDC) */
extern FILE *fopen64();
extern FILE *freopen64();
extern FILE tmpfile64();
extern int fgetpos64();
extern int fsetpos64();
#endif /
defined(STDC) /
#define fopen fopen64
#define freopen freopen64
#define tmpfile tmpfile64
#define fgetpos fgetpos64
#define fsetpos fsetpos64
#ifdef _LARGEFILE_SOURCE
#define fseeko fseeko64
#define ftello ftello64
#endif
#endif /
__PRAGMA_REDEFINE_EXTNAME /
#endif /
!_LP64 && _FILE_OFFSET_BITS == 64 */

#ifndef _LP64
extern unsigned char *_bufendtab;
extern FILE *_lastbuf;
#endif

/* In the LP64 compilation environment, all APIs are already large file
/
#if defined(_LP64) && defined(_LARGEFILE64_SOURCE)
#ifdef __PRAGMA_REDEFINE_EXTNAME
#pragma redefine_extname fopen64 fopen
#pragma redefine_extname freopen64 freopen
#pragma redefine_extname tmpfile64 tmpfile
#pragma redefine_extname fgetpos64 fgetpos
#pragma redefine_extname fsetpos64 fsetpos
#ifdef _LARGEFILE_SOURCE
#pragma redefine_extname fseeko64 fseeko
#pragma redefine_extname ftello64 ftello
#endif
#else /
__PRAGMA_REDEFINE_EXTNAME /
#define fopen64 fopen
#define freopen64 freopen
#define tmpfile64 tmpfile
#define fgetpos64 fgetpos
#define fsetpos64 fsetpos
#ifdef _LARGEFILE_SOURCE
#define fseeko64 fseeko
#define ftello64 ftello
#endif
#endif /
__PRAGMA_REDEFINE_EXTNAME /
#endif /
_LP64 && _LARGEFILE64_SOURCE */

#if defined(STDC)

#if defined(EXTENSIONS) || defined(_REENTRANT)
extern char *tmpnam_r(char );
#endif /
defined(EXTENSIONS) || defined(_REENTRANT) */
#if defined(EXTENSIONS) || (STDC == 0 &&
!defined(_XOPEN_SOURCE) && !defined(_POSIX_C_SOURCE))
extern void setbuffer(FILE *, char *, size_t);
extern int setlinebuf(FILE );
/

  • These v*scanf functions are part of the C99 standard. At such
  • time that the standard is fully implemented, these functions
  • will be moved to iso/stdio_iso.h.
    */
    extern int vfscanf(FILE *, const char *, __va_list);
    extern int vscanf(const char *, __va_list);
    extern int vsscanf(const char *, const char , __va_list);
    #endif
    #if defined(EXTENSIONS) || (STDC == 0 &&
    !defined(_XOPEN_SOURCE) && !defined(_POSIX_C_SOURCE)) ||
    defined(_XPG5)
    /
    PRINTFLIKE3 */
    extern int snprintf(char *, size_t, const char *, …);
    #endif
    #if defined(EXTENSIONS) || (STDC == 0 &&
    !defined(_XOPEN_SOURCE) && !defined(_POSIX_C_SOURCE)) ||
    defined(_XPG5)
    extern int vsnprintf(char *, size_t, const char , __va_list);
    #endif /
    defined(EXTENSIONS) || STDC == 0 … */

/*

  • The following are known to POSIX and XOPEN, but not to ANSI-C.
    */
    #if defined(EXTENSIONS) || STDC == 0 ||
    defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE)

extern FILE *fdopen(int, const char *);
extern char *ctermid(char *);
extern int fileno(FILE *);

#endif /* defined(EXTENSIONS) || STDC == 0 … */

/*

  • The following are known to POSIX.1c, but not to ANSI-C or XOPEN.
    */
    #if defined(EXTENSIONS) || defined(_REENTRANT) ||
    (_POSIX_C_SOURCE - 0 >= 199506L)
    extern void flockfile(FILE *);
    extern int ftrylockfile(FILE *);
    extern void funlockfile(FILE *);
    extern int getc_unlocked(FILE *);
    extern int getchar_unlocked(void);
    extern int putc_unlocked(int, FILE *);
    extern int putchar_unlocked(int);

#endif /* defined(EXTENSIONS) || defined(_REENTRANT)… */

/*

  • The following are known to XOPEN, but not to ANSI-C or POSIX.
    */
    #if defined(EXTENSIONS) || STDC == 0 || defined(_XOPEN_SOURCE)

extern FILE *popen(const char *, const char *);
extern char *cuserid(char *);
extern char *tempnam(const char *, const char *);
extern int getopt(int, char *const *, const char *);
#if !defined(_XOPEN_SOURCE)
extern int getsubopt(char **, char *const *, char *);
#endif /
!defined(_XOPEN_SOURCE) */
extern char *optarg;
extern int optind, opterr, optopt;
extern int getw(FILE *);
extern int putw(int, FILE *);
extern int pclose(FILE *);

#endif /* defined(EXTENSIONS) || STDC == 0 … */

/*

  • The following are defined as part of the Large File Summit
    interfaces.
    */
    #if defined(_LARGEFILE_SOURCE) || defined(_XPG5)
    extern int fseeko(FILE *, off_t, int);
    extern off_t ftello(FILE *);
    #endif

/*

  • The following are defined as part of the transitional Large File
    Summit
  • interfaces.
    */
    #if defined(_LARGEFILE64_SOURCE) && !((_FILE_OFFSET_BITS == 64) &&
    !defined(__PRAGMA_REDEFINE_EXTNAME))
    extern FILE *fopen64(const char *, const char *);
    extern FILE *freopen64(const char *, const char *, FILE *);
    extern FILE *tmpfile64(void);
    extern int fgetpos64(FILE *, fpos64_t *);
    extern int fsetpos64(FILE *, const fpos64_t *);
    extern int fseeko64(FILE *, off64_t, int);
    extern off64_t ftello64(FILE *);
    #endif

#else /* !defined STDC */

#ifndef _LP64
#define _bufend(p) ((fileno(p) < _NFILE) ? _bufendtab[fileno(p)] :
(unsigned char )_realbufend(p))
#define _bufsiz(p) (_bufend(p) - (p)->_base)
#endif /
_LP64 */

#if defined(EXTENSIONS) || defined(_REENTRANT)
extern char tmpnam_r();
#endif /
defined(EXTENSIONS) || defined(_REENTRANT) */
#if defined(EXTENSIONS) ||
(!defined(_XOPEN_SOURCE) && !defined(_POSIX_C_SOURCE))
extern void setbuffer();
extern int setlinebuf();
extern int vfscanf();
extern int vscanf();
extern int vsscanf();
#endif

#if defined(EXTENSIONS) ||
defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE)
extern FILE *fdopen();
extern char ctermid();
extern int fileno();
#endif /
defined(EXTENSIONS) || defined(_POSIX_C_SOURCE… */

#if defined(EXTENSIONS) || defined(_REENTRANT) ||
(_POSIX_C_SOURCE - 0 >= 199506L)
extern void flockfile();
extern int ftrylockfile();
extern void funlockfile();
extern int getc_unlocked();
extern int getchar_unlocked();
extern int putc_unlocked();
extern int putchar_unlocked();
#endif /* defined(EXTENSIONS) || defined(_REENTRANT)… */

#if defined(EXTENSIONS) || defined(_XOPEN_SOURCE)
extern FILE *popen();
extern char *cuserid();
extern char tempnam();
extern int getopt();
#if !defined(_XOPEN_SOURCE)
extern int getsubopt();
#endif /
!defined(_XOPEN_SOURCE) */
extern char optarg;
extern int optind, opterr, optopt;
extern int getw();
extern int putw();
extern int pclose();
#endif /
defined(EXTENSIONS) || defined(_XOPEN_SOURCE) */

#if defined(_LARGEFILE_SOURCE) || defined(_XPG5)
extern int fseeko();
extern off_t ftello();
#endif

#if defined(_LARGEFILE64_SOURCE) && !((_FILE_OFFSET_BITS == 64) &&
!defined(__PRAGMA_REDEFINE_EXTNAME))
extern FILE *fopen64();
extern FILE *freopen64();
extern FILE *tmpfile64();
extern int fgetpos64();
extern int fsetpos64();
extern int fseeko64();
extern off64_t ftello64();
#endif

#endif /* STDC */

#if !defined(__lint)

#if defined(EXTENSIONS) || defined(_REENTRANT) ||
(_POSIX_C_SOURCE - 0 >= 199506L)
#ifndef _LP64
#ifdef STDC
#define getc_unlocked(p) (–(p)->_cnt < 0
? __filbuf(p)
: (int)(p)->_ptr++)
#define putc_unlocked(x, p) (–(p)->_cnt < 0
? __flsbuf((x), (p))
: (int)(
(p)->_ptr++ =
(unsigned char) (x)))
#else
#define getc_unlocked(p) (–(p)->_cnt < 0
? _filbuf(p)
: (int)(p)->_ptr++)
#define putc_unlocked(x, p) (–(p)->_cnt < 0
? _flsbuf((x), (p))
: (int)(
(p)->_ptr++ =
(unsigned char) (x)))
#endif /* STDC /
#endif /
_LP64 /
#define getchar_unlocked() getc_unlocked(stdin)
#define putchar_unlocked(x) putc_unlocked((x), stdout)
#endif /
defined(EXTENSIONS) || defined(_REENTRANT)… */

#endif /* !defined(__lint) */

#ifdef __cplusplus
}
#endif

#endif /* _STDIO_H */

Ok - below is the stdio.h file. Please let me know what else you need.

It's best if you give also stdio_impl.h (if it exist)

Guy Decoux

ts wrote:

Ok - below is the stdio.h file. Please let me know what else you need.

It’s best if you give also stdio_impl.h (if it exist)

Guy Decoux

Ok - I’ve attached 3 stdio files, including stdio_impl.h, in case it’s
best to have them all handy.

Regards,

Dan

/*

  • Copyright (c) 1998, by Sun Microsystems, Inc.
  • All rights reserved.
    */

/*

  • Extensions to the stdio package
    */

#ifndef _STDIO_EXT_H
#define _STDIO_EXT_H

#pragma ident “@(#)stdio_ext.h 1.2 99/06/10 SMI”

#include <stdio.h>

#ifdef __cplusplus
extern “C” {
#endif

/*

  • Even though the contents of the stdio FILE structure have always been
  • private to the stdio implementation, over the years some programs have
  • needed to get information about a stdio stream that was not accessible
  • through a supported interface. These programs have resorted to accessing
  • fields of the FILE structure directly, rendering them possibly non-portable
  • to new implementations of stdio, or more likely, preventing enhancements
  • to stdio because those programs will break.
···
  • In the 64-bit world, the FILE structure is opaque. The routines here
  • are provided as a way to get the information that used to be retrieved
  • directly from the FILE structure. They are based on the needs of
  • existing programs (such as ‘mh’ and ‘emacs’), so they may be extended
  • as other programs are ported. Though they may still be non-portable to
  • other operating systems, they will work from each Solaris release to
  • the next. More portable interfaces are being developed.
    */

#define FSETLOCKING_QUERY 0
#define FSETLOCKING_INTERNAL 1
#define FSETLOCKING_BYCALLER 2

extern size_t __fbufsize(FILE *stream);
extern int __freading(FILE *stream);
extern int __fwriting(FILE *stream);
extern int __freadable(FILE *stream);
extern int __fwritable(FILE *stream);
extern int __flbf(FILE *stream);
extern void __fpurge(FILE *stream);
extern size_t __fpending(FILE *stream);
extern void _flushlbf(void);
extern int __fsetlocking(FILE *stream, int type);

#ifdef __cplusplus
}
#endif

#endif /* _STDIO_EXT_H */

/*

  • Copyright (c) 1998-2001 by Sun Microsystems, Inc.
  • All rights reserved.
    */

#ifndef _STDIO_IMPL_H
#define _STDIO_IMPL_H

#pragma ident “@(#)stdio_impl.h 1.13 01/11/16 SMI”

#include <sys/isa_defs.h>

#ifdef __cplusplus
extern “C” {
#endif

#ifndef _SSIZE_T
#define _SSIZE_T
#if defined(_LP64) || defined(_I32LPx)
typedef long ssize_t; /* size of something in bytes or -1 /
#else
typedef int ssize_t; /
(historical version) /
#endif
#endif /
!_SSIZE_T */

#ifdef _LP64

#ifndef _FILE64_H

struct __FILE_TAG {
long __pad[16];
};

#endif /* _FILE64_H */

#else

struct __FILE_TAG /* needs to be binary-compatible with old versions */
{
#ifdef _STDIO_REVERSE
unsigned char _ptr; / next character from/to here in buffer /
ssize_t _cnt; /
number of available characters in buffer /
#else
ssize_t _cnt; /
number of available characters in buffer */
unsigned char _ptr; / next character from/to here in buffer */
#endif
unsigned char _base; / the buffer /
unsigned char _flag; /
the state of the stream /
unsigned char _file; /
UNIX System file descriptor /
unsigned __orientation:2; /
the orientation of the stream /
unsigned __ionolock:1; /
turn off implicit locking /
unsigned __seekable:1; /
is file seekable? */
unsigned __filler:4;
};

#endif /* _LP64 */

#ifdef __cplusplus
}
#endif

#endif /* _STDIO_IMPL_H */

/*

  • Copyright (c) 1998 by Sun Microsystems, Inc.
  • All rights reserved.
    */

#ifndef _STDIO_TAG_H
#define _STDIO_TAG_H

#pragma ident “@(#)stdio_tag.h 1.3 98/04/20 SMI”

#ifdef __cplusplus
extern “C” {
#endif

#ifndef __FILE_TAG
#if defined(__cplusplus) && (__cplusplus < 54321L)
#define __FILE_TAG FILE
#else
#define __FILE_TAG __FILE
#endif
typedef struct __FILE_TAG __FILE;
#endif

#ifdef __cplusplus
}
#endif

#endif /* _STDIO_TAG_H */

Here the reason, why it don't find _cnt and _ptr

#ifdef _LP64
#ifndef _FILE64_H
struct __FILE_TAG {
  long __pad[16];
};
#endif /* _FILE64_H */

Guy Decoux

ts wrote:

Here the reason, why it don’t find _cnt and _ptr

#ifdef _LP64
#ifndef _FILE64_H
struct __FILE_TAG {
long __pad[16];
};
#endif /* _FILE64_H */

Guy Decoux

As an experiment, I commented out the offending lines in config.h and
switched back to Sun’s ld. It seems that GNU’s ld makes it cranky.

Surprisingly, it survived the build phase. However, a “make test”
resulted in this:

make test
/usr/local/src/ruby-1.8.1/sample/test.rb:1269:in modulo': divided by 0 (ZeroDivisionError) from /usr/local/src/ruby-1.8.1/sample/test.rb:1269 not ok bignum 5 -- /usr/local/src/ruby-1.8.1/sample/test.rb:1225 not ok bignum 7 -- /usr/local/src/ruby-1.8.1/sample/test.rb:1227 not ok bignum 8 -- /usr/local/src/ruby-1.8.1/sample/test.rb:1228 not ok bignum 9 -- /usr/local/src/ruby-1.8.1/sample/test.rb:1230 not ok bignum 12 -- /usr/local/src/ruby-1.8.1/sample/test.rb:1238 test failed *** Error code 1 make: Fatal error: Command failed for target test’

Any ideas? config.log attached (gzip’d) although I added the “-m64
-mcpu=ultrasparc” to the CC line after I ran configure (was that
wrong?).

Regards,

Dan

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

ts wrote:

Here the reason, why it don’t find _cnt and _ptr

#ifdef _LP64
#ifndef _FILE64_H
struct __FILE_TAG {
long __pad[16];
};
#endif /* _FILE64_H */

Guy Decoux

Sorry if the attachment on that last post didn’t come through properly -
ack.

In any case, I tried setting CFLAGS to ‘-m64 -mcpu=ultrasparc’ (which I
thought I had done but apparently not) and then re-running configure.
The good news is that configure seems to work properly, i.e. I got past
io.c without incident. However, it died when I got here:

gcc -fPIC -m64 -mcpu=ultrasparc -I. -I/usr/local/src/ruby-1.8.1
-I/usr/local/src/ruby-1.8.1 -I/usr/local/src/ruby-1.8.1/ext/bigdecimal
-c bigdecimal.c
gcc -Wl,-G -L"/usr/local/src/ruby-1.8.1" -L"/opt/lib" -o bigdecimal.so
bigdecimal.o -ldl -lcrypt -lm -lc
ld: fatal: file bigdecimal.o: wrong ELF class: ELFCLASS64
ld: fatal: File processing errors. No output written to bigdecimal.so
collect2: ld returned 1 exit status
make[1]: *** [bigdecimal.so] Error 1
make[1]: Leaving directory `/usr/local/src/ruby-1.8.1/ext/bigdecimal’
make: *** [all] Error 1

I tried setting LDFLAGS to ‘-m64’ but that didn’t seem to help. Is
there some other env variable I need to set?

Regards,

Dan

ld: fatal: file bigdecimal.o: wrong ELF class: ELFCLASS64

What say file bigdecimal.o and what loader do you use (/usr/ccs/bin/ld
or ? )

Guy Decoux