[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