This is the mail archive of the
java-prs@gcc.gnu.org
mailing list for the Java project.
libgcj/9652: libjava bootstrap failure on irix6.5.1[78]
- From: David dot Billinghurst at riotinto dot com
- To: gcc-gnats at gcc dot gnu dot org
- Cc: ro at TechFak dot Uni-Bielefeld dot DE
- Date: 11 Feb 2003 00:38:29 -0000
- Subject: libgcj/9652: libjava bootstrap failure on irix6.5.1[78]
- Reply-to: David dot Billinghurst at riotinto dot com
>Number: 9652
>Category: libgcj
>Synopsis: libjava bootstrap failure on irix6.5.1[78]
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: unassigned
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Tue Feb 11 00:46:00 UTC 2003
>Closed-Date:
>Last-Modified:
>Originator: David Billinghurst
>Release: 3.2.2/3.3/3.4
>Organization:
>Environment:
irix6.5.18m
>Description:
libgcj build fails on irix6.5.1[78]
/exd4/billingd/obj/gcc/gcc/xgcc -shared-libgcc -B/exd4/billingd/obj/gcc/gcc/ -nostdinc++ -L/exd4/billingd/obj/gcc/mips-sgi-irix6.5/mabi=64/libstdc++-v3/src -L/exd4/billingd/obj/gcc/mips-sgi-irix6.5/mabi=64/libstdc++-v3/src/.libs -B/exd4/billingd/tmp/gcc/mips-sgi-irix6.5/bin/ -B/exd4/billingd/tmp/gcc/mips-sgi-irix6.5/lib/ -isystem /exd4/billingd/tmp/gcc/mips-sgi-irix6.5/include -mabi=64 -DHAVE_CONFIG_H -I. -I/exd4/billingd/src/gcc/libjava -I./include -I./gcj -I/exd4/billingd/src/gcc/libjava -Iinclude -I/exd4/billingd/src/gcc/libjava/include -I/exd4/billingd/src/gcc/libjava/../boehm-gc/include -DNO_EXECUTE_PERMISSION=1 -DSILENT=1 -DNO_SIGNALS=1 -DNO_EXECUTE_PERMISSION=1 -DALL_INTERIOR_POINTERS=1 -DJAVA_FINALIZATION=1 -DGC_GCJ_SUPPORT=1 -DATOMIC_UNCOLLECTABLE=1 -I/exd4/billingd/src/gcc/libjava/libltdl -I/exd4/billingd/src/gcc/libjava/libltdl -I/exd4/billingd/src/gcc/libjava/.././libjava/../gcc -I/exd4/billingd/src/gcc/libjava/../zlib -I/exd4/billingd/src/gcc/libjava/../libffi!
/include -I../libffi/include -fno-rtti -fnon-call-exceptions -fdollars-in-identifiers -Wswitch-enum -W -Wall -D_GNU_SOURCE -DPREFIX=\"/exd4/billingd/tmp/gcc\" -g -O2 -mabi=64 -Wp,-MD,.deps/prims.pp -c /exd4/billingd/src/gcc/libjava/prims.cc -DPIC -o .libs/prims.o
In file included from /exd4/billingd/src/gcc/libjava/prims.cc:12:
include/platform.h: In function `int _Jv_accept(int, sockaddr*, socklen_t*)':
include/platform.h:107: error: invalid conversion from `socklen_t*' to `int*'
Rainer Orth http://gcc.gnu.org/ml/java/2003-02/msg00038.html wrote:
I've tripped over the same problem some time ago, but didn't have time to
report or provide a fix. The problem is that IRIX 6.5.17 and 6.5.18
introduced a definition of socklen_t in <sys/socket.h>. libjava assumes
that if socklen_t is defined, it can be used e.g. as the type of accept's
last arg. This is wrong here, since IRIX provides several different
definitions of accept, with differing types:
#if _NO_XOPEN4 && _NO_XOPEN5
/* Std BSD4.3/SGI */
extern int accept(int, void *, int *);
#if _ABIAPI
/* BB3.0 is XPG compliant but can't use hidden names */
extern int accept(int, struct sockaddr *, size_t *);
#else
/* this is normal XPG */
extern int __xpg4_accept(int, struct sockaddr *, size_t *);
So socklen_t should match those, but doesn't, leading to the compilation
failure observed. This is a known bug (Bug Id 864477), to be fixed in the
upcoming 6.5.19, but not for 6.5.1[78].
I meant to fix the current definition via fixincludes to read like this:
/*
* socklen_t type definition
*/
#ifndef _SOCKLEN_T
#define _SOCKLEN_T
#if _NO_XOPEN4 && _NO_XOPEN5
typedef int socklen_t;
#else
typedef size_t socklen_t;
#endif /* _NO_XOPEN4 && _NO_XOPEN5 */
#endif /*_SOCKLEN_T */
Unfortunately, I haven't found any time to do so. I'll probably wait for
6.5.19 (to be released in a few days) to check their definition to make
sure I don't do anything incompatible for 6.5.1[78] and don't break 6.5.19
either.
Rainer
>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted: