[ale] compiler error re:Open Office

Jeff Hubbs hbbs at comcast.net
Sat Jul 9 11:58:32 EDT 2005


Under Gentoo, "how to compile it" is encoded into the ebuild script and
therefore tends to Just Work - unless you're on AMD64, in which case
emerge openoffice-bin is your only option.

Jeff

On Fri, 2005-07-08 at 16:24 -0500, Courtney Thomas wrote:
> -----Forwarded Message-----
> From: Courtney Thomas <cc.thomas at earthlink.net>
> To: ale at ale.org
> Subject: compiler error re:Open Office
> Date: Fri, 08 Jul 2005 15:48:59 -0500
> 
> 
> I've been compiling [gcc323] Open Office 1.1.2 for a couple of days :-)
> and have hit a wall.
> 
> When finally arriving at....Building Project jurt
> 
> ~/openoffice1.1/work/oo_1.1.2.src/jurt/source/pipe
> 
> Making PipeConnections.obj
> 
> the compiler reports:
> 
> com_sun_star_lib_connections_pipe_PipeConnection.c:558
> 
> 	syntax error before "void"
> 
> Anyone been down this road ?
> 
> Appreciatively,
> 
> Courtney
> 
> PS - Please find following, below the asterisk line, 
> the source code to the file producing the syntax error.
> 
> ________________________________________________________________________
> /*************************************************************************
>  *
>  *  $RCSfile: com_sun_star_lib_connections_pipe_PipeConnection.c,v $
>  *
>  *  $Revision: 1.2.38.1 $
>  *
>  *  last change: $Author: vg $ $Date: 2004/03/18 11:52:44 $
>  *
>  *  The Contents of this file are made available subject to the terms of
>  *  either of the following licenses
>  *
>  *         - GNU Lesser General Public License Version 2.1
>  *         - Sun Industry Standards Source License Version 1.1
>  *
>  *  Sun Microsystems Inc., October, 2000
>  *
>  *  GNU Lesser General Public License Version 2.1
>  *  =============================================
>  *  Copyright 2000 by Sun Microsystems, Inc.
>  *  901 San Antonio Road, Palo Alto, CA 94303, USA
>  *
>  *  This library is free software; you can redistribute it and/or
>  *  modify it under the terms of the GNU Lesser General Public
>  *  License version 2.1, as published by the Free Software Foundation.
>  *
>  *  This library is distributed in the hope that it will be useful,
>  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
>  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
>  *  Lesser General Public License for more details.
>  *
>  *  You should have received a copy of the GNU Lesser General Public
>  *  License along with this library; if not, write to the Free Software
>  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
>  *  MA  02111-1307  USA
>  *
>  *
>  *  Sun Industry Standards Source License Version 1.1
>  *  =================================================
>  *  The contents of this file are subject to the Sun Industry Standards
>  *  Source License Version 1.1 (the "License"); You may not use this file
>  *  except in compliance with the License. You may obtain a copy of the
>  *  License at http://www.openoffice.org/license.html.
>  *
>  *  Software provided under this License is provided on an "AS IS" basis,
>  *  WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
>  *  WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
>  *  MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
>  *  See the License for the specific provisions governing your rights and
>  *  obligations concerning the Software.
>  *
>  *  The Initial Developer of the Original Code is: Sun Microsystems, Inc.
>  *
>  *  Copyright: 2000 by Sun Microsystems, Inc.
>  *
>  *  All Rights Reserved.
>  *
>  *  Contributor(s): _______________________________________
>  *
>  *
>  ************************************************************************/
> 
> #if HAVE_CONFIG_H
> #include <config.h>
> #endif
> 
> #include "osl/security.h"
> #include <osl/pipe.h>
> 
> #include "com_sun_star_lib_connections_pipe_PipeConnection.h"
> 
> /*****************************************************************************/
> /* exception macros */
> 
> #define ThrowException(env, type, msg) { \
> 	(*env)->ThrowNew(env, (*env)->FindClass(env, type), msg); }
> 
> /*****************************************************************************/
> /* helper functions prototypes */
> 
> static oslPipe getPipe(JNIEnv * env, jobject obj_this);
> static rtl_uString * jstring2ustring(JNIEnv * env, jstring jstr);
> 
> /*****************************************************************************/
> /* get pipe */
> 
> static oslPipe getPipe(JNIEnv * env, jobject obj_this)
> {
> 	jclass		tclass;
> 	jfieldID	fid;
> 	while (1)
> 	{
> 		tclass	= (*env)->GetObjectClass(env, obj_this);
>         if (tclass == NULL)
>         {
>             ThrowException(env,
>                            "java/lang/RuntimeException",
>                            "native pipe cannot find class");
>             break;
>         }
> 
> 		fid		= (*env)->GetFieldID(env, tclass, "_nPipeHandle", "J");
>         if (fid == NULL)
>         {
>             ThrowException(env,
>                            "java/lang/RuntimeException",
>                            "native pipe cannot find field");
>             break;
>         }
> 		return ((oslPipe)((*env)->GetLongField(env, obj_this, fid)));
> 	}
> 	return NULL;
> }
> 
> /*****************************************************************************/
> /* convert jstring to rtl_uString */
> 
> static rtl_uString * jstring2ustring(JNIEnv * env, jstring jstr)
> {
> 	const char *	cstr;
> 	rtl_uString *	ustr	= NULL;
> 	cstr	= (*env)->GetStringUTFChars(env, jstr, NULL);
> 	rtl_uString_newFromAscii(&ustr, cstr);
> 	(*env)->ReleaseStringUTFChars(env, jstr, cstr);
> 	return ustr;
> }
> 
> /*****************************************************************************/
> /*
>  * Class:     com_sun_star_lib_connections_pipe_PipeConnection
>  * Method:    connect
>  * Signature: (Lcom/sun/star/beans/NativeService;)V
>  */
> JNIEXPORT void JNICALL Java_com_sun_star_lib_connections_pipe_PipeConnection_createJNI
>   (JNIEnv * env, jobject obj_this, jstring name)
> {
> 	enum {
> 		START	= 0,
> 		INMONITOR,
> 		GOTNAME,
> 		CREATED
> 	};
> 
> 	short		state	= START;
> 
> 	jclass		tclass;
> 	jfieldID	fid;
> 
>     oslSecurity     psec    = osl_getCurrentSecurity();
> 	oslPipe			npipe	= NULL;
> 	rtl_uString *	pname	= NULL;
> 	while (1)
> 	{
>         if ((*env)->MonitorEnter(env, obj_this) != 0)
>         {
>             ThrowException(env,
>                            "java/lang/RuntimeException",
>                            "native pipe cannot synchronize on the object");
>             break;
>         }
> 		state	= INMONITOR;
> 
> 		/* check connection state */
> 		npipe	= getPipe(env, obj_this);
>         if ((*env)->ExceptionOccurred(env) != NULL)
>             break;
>         if (npipe != NULL)
>         {
>             ThrowException(env,
>                            "com/sun/star/io/IOException",
>                            "native pipe is already connected");
>             break;
>         }
> 
> 		/* save the pipe name */
> 		tclass	= (*env)->GetObjectClass(env, obj_this);
>         if (tclass == NULL)
>         {
>             ThrowException(env,
>                            "java/lang/RuntimeException",
>                            "native pipe cannot find class");
>             break;
>         }
> 
> 		fid		= (*env)->GetFieldID(env, tclass,
> 			"_aDescription", "Ljava/lang/String;");
>         if (fid == NULL)
>         {
>             ThrowException(env,
>                            "java/lang/RuntimeException",
>                            "native pipe cannot find field");
>             break;
>         }
> 
> 		(*env)->SetObjectField(env, obj_this, fid, (jobject)name);
> 
> 		/* convert pipe name to rtl_uString */
> 		pname	= jstring2ustring(env, name);
>         if (pname == NULL)
>         {
>             ThrowException(env,
>                            "java/lang/RuntimeException",
>                            "native pipe cannot convert name");
>             break;
>         }
> 		state	= GOTNAME;
> 
> 		/* try to connect */
> 		npipe	= osl_createPipe(pname, osl_Pipe_OPEN, psec);
>         if (npipe == NULL)
>         {
>             ThrowException(env,
>                            "java/lang/RuntimeException",
>                            "cannot create native pipe");
>             break;
>         }
> 		state	= CREATED;
> 
> 		/* save the pipe */
> 		tclass	= (*env)->GetObjectClass(env, obj_this);
>         if (tclass == NULL)
>         {
>             ThrowException(env,
>                            "java/lang/RuntimeException",
>                            "native pipe cannot find class");
>             break;
>         }
> 
> 		fid		= (*env)->GetFieldID(env, tclass, "_nPipeHandle", "J");
>         if (fid == NULL)
>         {
>             ThrowException(env,
>                            "java/lang/RuntimeException",
>                            "native pipe cannot find field");
>             break;
>         }
> 		(*env)->SetLongField(env, obj_this, fid, (jlong)npipe);
> 
> 		/* done */
> 		rtl_uString_release(pname);
> 		(*env)->MonitorExit(env, obj_this);
>         osl_freeSecurityHandle(psec);
> 		return;
> 	}
> 	switch (state)
> 	{
> 		case CREATED:
> 			osl_closePipe(npipe);
> 			osl_releasePipe(npipe);
> 		case GOTNAME:
> 			rtl_uString_release(pname);
> 		case INMONITOR:
> 			(*env)->MonitorExit(env, obj_this);
> 		case START:
>             osl_freeSecurityHandle(psec);
> 		default:
> 			break;
> 	}
> 	return;
> }
> 
> /*****************************************************************************/
> /*
>  * Class:     com_sun_star_lib_connections_pipe_PipeConnection
>  * Method:    closeJNI
>  * Signature: ()V
>  */
> JNIEXPORT void JNICALL Java_com_sun_star_lib_connections_pipe_PipeConnection_closeJNI
>   (JNIEnv * env, jobject obj_this)
> {
> 	enum {
> 		START	= 0,
> 		INMONITOR
> 	};
> 
> 	short		state	= START;
> 	oslPipe		npipe;		/* native pipe */
> 	jclass		tclass;		/* this class */
> 	jfieldID	fid;		/* a field identifier */
> 
> 	while (1)
> 	{
>         if ((*env)->MonitorEnter(env, obj_this) != 0)
>         {
>             ThrowException(env,
>                            "java/lang/RuntimeException",
>                            "native pipe cannot synchronize on the object");
>             break;
>         }
> 		state	= INMONITOR;
> 
> 		/* check connection state */
> 		npipe	= getPipe(env, obj_this);
>         if ((*env)->ExceptionOccurred(env) != NULL)
>             break;
>         if (npipe == NULL)
>         {
>             ThrowException(env,
>                            "com/sun/star/io/IOException",
>                            "native pipe is not connected");
>             break;
>         }
> 
> 		/* remove the reference to the pipe */
> 		tclass	= (*env)->GetObjectClass(env, obj_this);
>         if (tclass == NULL)
>         {
>             ThrowException(env,
>                            "java/lang/RuntimeException",
>                            "native pipe cannot find class");
>             break;
>         }
> 
> 		fid		= (*env)->GetFieldID(env, tclass, "_nPipeHandle", "J");
>         if (fid == NULL)
>         {
>             ThrowException(env,
>                            "java/lang/RuntimeException",
>                            "native pipe cannot find field");
>             break;
>         }
> 
> 		(*env)->SetLongField(env, obj_this, fid, (jlong)0);
> 
> 		/* release the pipe */
> 		osl_closePipe(npipe);
> 		osl_releasePipe(npipe);
> 
> 		/* done */
> 		(*env)->MonitorExit(env, obj_this);
> 		return;
> 	}
> 	switch (state)
> 	{
> 		case INMONITOR:
> 			(*env)->MonitorExit(env, obj_this);
> 		case START:
> 		default:
> 			break;
> 	}
> 	return;
> }
> 
> /*****************************************************************************/
> /*
>  * Class:     com_sun_star_lib_connections_pipe_PipeConnection
>  * Method:    readJNI
>  * Signature: ([[BI)I
>  */
> JNIEXPORT jint JNICALL Java_com_sun_star_lib_connections_pipe_PipeConnection_readJNI
>   (JNIEnv * env, jobject obj_this, jobjectArray buffer, jint len)
> {
> 	enum {
> 		START	= 0,
> 		INMONITOR,
> 		AQUIRED,
> 		GOTBUFFER
> 	};
> 
> 	short		state	= START;
> 	oslPipe		npipe;		/* native pipe */
> 	void *		nbuff;		/* native read buffer */
> 	jbyteArray	bytes;		/* java read buffer */
> 	jint		nread;		/* number of bytes has been read */
> 
> 	while (1)
> 	{
> 		/* enter monitor */
>         if ((*env)->MonitorEnter(env, obj_this) != 0)
>         {
>             ThrowException(env,
>                            "java/lang/RuntimeException",
>                            "native pipe cannot synchronize on the object");
>             break;
>         }
> 		state = INMONITOR;
> 
> 		/* check connection state */
> 		npipe	= getPipe(env, obj_this);
>         if ((*env)->ExceptionOccurred(env) != NULL)
>             break;
>         if (npipe == NULL)
>         {
>             ThrowException(env,
>                            "com/sun/star/io/IOException",
>                            "native pipe is not connected");
>             break;
>         }
> 
> 		/* aquire pipe */
> 		osl_acquirePipe( npipe );
> 		state = AQUIRED;
> 
> 		/* allocate a buffer */
>         if ((nbuff = malloc(len)) == NULL)
>         {
>             ThrowException(env,
>                            "java/lang/RuntimeException",
>                            "native pipe out of memory");
>             break;
>         }
> 
> 		state = GOTBUFFER;
> 
> 		/* exit monitor */
> 		(*env)->MonitorExit(env, obj_this);
> 
> 		/* reading */
> 		nread = osl_readPipe(npipe, nbuff, len);
> 
> 		/* enter monitor again */
>         if ((*env)->MonitorEnter(env, obj_this) != 0)
>         {
>             ThrowException(env,
>                            "java/lang/RuntimeException",
>                            "native pipe cannot synchronize on the object");
>             break;
>         }
> 
> 		/* copy buffer */
> 		if (nread >= 0)
> 		{
> 			bytes	= (*env)->NewByteArray(env, len);
>             if (bytes == NULL)
>             {
>                 ThrowException(env,
>                                "java/lang/RuntimeException",
>                                "native pipe out of memory");
>                 break;
>             }
> 
> 			/* save the data */
> 			(*env)->SetByteArrayRegion(env, bytes, 0, len, nbuff);
> 			(*env)->SetObjectArrayElement(env, buffer, 0, bytes);
> 			(*env)->DeleteLocalRef(env, bytes);
> 		}
> 
> 		/* done */
> 		free(nbuff);
> 		if ( state >= AQUIRED )
> 			osl_releasePipe( npipe );
> 
> 		/* exit monitor */
> 		(*env)->MonitorExit(env, obj_this);
> 		return nread;
> 	}
> 	switch (state)
> 	{
> 		case GOTBUFFER:
> 			free(nbuff);
> 		case INMONITOR:
> 			(*env)->MonitorExit(env, obj_this);
> 		case START:
> 		default:
> 			break;
> 	}
> 	return -1;
> }
> 
> /*****************************************************************************/
> /*
>  * Class:     com_sun_star_lib_connections_pipe_PipeConnection
>  * Method:    writeJNI
>  * Signature: ([B)V
>  */
> JNIEXPORT void JNICALL Java_com_sun_star_lib_connections_pipe_PipeConnection_writeJNI
>   (JNIEnv * env, jobject obj_this, jbyteArray buffer)
> {
> 	enum {
> 		START	= 0,
> 		INMONITOR,
> 		GOTBUFFER
> 	};
> 
> 	short	state	= START;
> 	oslPipe	npipe;		/* native pipe */
> 	long	count;		/* number of bytes has been written */
> 	jsize	nwrite;		/* number of bytes to write */
> 	jbyte *	nbuff;		/* native buffer */
> 
> 	while (1)
> 	{
>         if ((*env)->MonitorEnter(env, obj_this) != 0)
>         {
>             ThrowException(env,
>                            "java/lang/RuntimeException",
>                            "native pipe cannot synchronize on the object");
>             break;
>         }
> 		state	= INMONITOR;
> 
> 		/* check connection state */
> 		npipe	= getPipe(env, obj_this);
>         if ((*env)->ExceptionOccurred(env) != NULL)
>             break;
>         if (npipe == NULL)
>         {
>             ThrowException(env,
>                            "com/sun/star/io/IOException",
>                            "native pipe is not connected");
>             break;
>         }
> 
> 		nwrite	= (*env)->GetArrayLength(env, buffer);
> 		if (nwrite > 0)
> 		{
> 			nbuff	= (*env)->GetByteArrayElements(env, buffer, NULL);
>             if (nbuff == NULL)
>             {
>                 ThrowException(env,
>                                "java/lang/RuntimeException",
>                                "native pipe out of memory");
>                 break;
>             }
> 			state	= GOTBUFFER;
> 
> 			(*env)->MonitorExit(env, obj_this);
> 			/* writing */
> 			count	= osl_writePipe(npipe, nbuff, nwrite);
>             if ((*env)->MonitorEnter(env, obj_this) != 0)
>             {
>                 ThrowException(env,
>                                "java/lang/RuntimeException",
>                                "native pipe cannot synchronize on the object");
>                 break;
>             }
>             if (count != nwrite)
>             {
>                 ThrowException(env,
>                                "com/sun/star/io/IOException",
>                                "native pipe is failed to write");
>                 break;
>             }
> 		}
> 		/* done */
> 		(*env)->ReleaseByteArrayElements(env, buffer, nbuff, JNI_ABORT);
> 		(*env)->MonitorExit(env, obj_this);
> 		return;
> 	}
> 	switch (state)
> 	{
> 		case GOTBUFFER:
> 			(*env)->ReleaseByteArrayElements(env, buffer, nbuff, JNI_ABORT);
> 		case INMONITOR:
> 			(*env)->MonitorExit(env, obj_this);
> 		case START:
> 		default:
> 			break;
> 	}
> 	return;
> }
> 
> /*****************************************************************************/
> /*
>  * Class:     com_sun_star_lib_connections_pipe_PipeConnection
>  * Method:    flushJNI
>  * Signature: ()V
>  */
> JNIEXPORT void JNICALL Java_com_sun_star_lib_connections_pipe_PipeConnection_flushJNI
>   (JNIEnv * env, jobject obj_this)
> {
>     return;
> }
> 
> _______________________________________________
> Ale mailing list
> Ale at ale.org
> http://www.ale.org/mailman/listinfo/ale




More information about the Ale mailing list