Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 15 Mar 2006 05:12:16 GMT
From:      Ron MacNeil <macro@hotmail.com>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   ports/94461: [patch] to build print/ghostscript-afpl with GCC41 (supersedes #93660)
Message-ID:  <200603150512.k2F5CGqL033893@www.freebsd.org>
Resent-Message-ID: <200603150520.k2F5KHMU038225@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         94461
>Category:       ports
>Synopsis:       [patch] to build print/ghostscript-afpl with GCC41 (supersedes #93660)
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Wed Mar 15 05:20:16 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator:     Ron MacNeil
>Release:        7-CURRENT
>Organization:
>Environment:
FreeBSD ... 7.0-CURRENT FreeBSD 7.0-CURRENT #1: Wed Mar  1 13:28:02 EST 2006     ...@...:/usr/obj/usr/src/sys/MYKERNEL  i386

>Description:
print/ghostscript-afpl is not currently buildable with GCC 4.1

>How-To-Repeat:

>Fix:
Add the following as a new patch file in print/ghostscript-afpl/files:


--- ../ghostscript-8.53.orig/src/cpca_mk_cmd.c	Wed Mar 15 15:00:26 2006
+++ src/cpca_mk_cmd.c	Wed Mar 15 15:33:26 2006
@@ -586,6 +586,7 @@
   Ptr             data ;
   short           size ;
   Ptr             work ;
+  short          *swork ;
   unsigned long   comSize = 0 ;
 
   if (p && str) {
@@ -594,7 +595,9 @@
     if (data) {
       work = data ;
 
-      *( ( short *)work )++ = id_val_code_set_Shift_JIS ;
+	  swork = (short *)work ;
+      *swork++ = id_val_code_set_Shift_JIS ;
+	  work = (Ptr)swork ;
       memcpy( work, str, (unsigned char)str[ 0 ] + 1 ) ;
       comSize = glue_cpcaSetJob( p,
                                  Attribute,
@@ -867,6 +870,7 @@
   short          size ;
   Ptr            data ;
   Ptr            work ;
+  unsigned short *uswork ;
   unsigned long  comSize = 0 ;
 
   if (p) {
@@ -877,8 +881,10 @@
 
       *work++ = id_val_resolution_type_dpi ;
 
-      *( ( unsigned short *)work )++ = resolutionX ;
-      *( ( unsigned short *)work )++ = resolutionY ;
+	  uswork = (unsigned short *)work ;
+      *uswork++ = resolutionX ;
+      *uswork++ = resolutionY ;
+      work = (Ptr)uswork ;
 
       comSize = glue_cpcaSetDocument ( p,
                                        id_att_resolution,
@@ -1597,6 +1603,8 @@
   short                paramSize ;
   unsigned long        userID ;
   unsigned long        password ;
+  cpcaHANDLE           *cpcaHANDLEp ;
+  cpcaUBYTE            *cpcaUBYTEp ;
 
 
   z_setUserInfo( userInfo, &userID, &password ) ;
@@ -1616,9 +1624,14 @@
   p += comSize ;
 
   /* 固有パラメータの設定 */
-  *( ( cpcaHANDLE *)p )++  = inParam->Object1 ;
-  *( ( cpcaUBYTE  *)p )++  = inParam->Mode ;
-  *( ( cpcaHANDLE *)p )++  = inParam->Object2 ;
+  cpcaHANDLEp = (cpcaHANDLE *)p ;
+  *cpcaHANDLEp++  = inParam->Object1 ;
+  cpcaUBYTEp = (cpcaUBYTE *)cpcaHANDLEp ;
+  *cpcaUBYTEp++  = inParam->Mode ;
+  cpcaHANDLEp = (cpcaHANDLE *)cpcaUBYTEp ;
+  *cpcaHANDLEp++  = inParam->Object2 ;
+  p = (Ptr)cpcaHANDLEp ;
+
   comSize += 9;
 
   return comSize ;
@@ -1644,7 +1657,7 @@
   short             paramSize ;
   unsigned long     userID ;
   unsigned long     password ;
-
+  cpcaATTRIB        *cpcaATTRIBp;
 	
   z_setUserInfo( userInfo, &userID, &password ) ;
   paramSize = 2 + inParam->Size ;
@@ -1661,7 +1674,9 @@
   p += comSize ;
 
   /*  固有パラメータの設定 */
-  *( ( cpcaATTRIB *)p )++  = inParam->Attribute ;
+  cpcaATTRIBp = (cpcaATTRIB *)p ;
+  *cpcaATTRIBp++  = inParam->Attribute ;
+  p = (Ptr)cpcaATTRIBp ;
   if ( inParam->Data && ( inParam->Size > 0 ) )
   {
     memcpy( p, inParam->Data, inParam->Size ) ;
@@ -1687,6 +1702,7 @@
   short               paramSize ;
   unsigned long       userID ;
   unsigned long       password ;
+  cpcaHANDLE          *cpcaHANDLEp ;
 
   z_setUserInfo( userInfo, &userID, &password ) ;
   paramSize = sizeof( cpcaHANDLE ) ;
@@ -1703,7 +1719,10 @@
   p += comSize ;
 
   /*  固有パラメータの設定 */
-  *( ( cpcaHANDLE *)p )++ = inParam->Object ;
+  cpcaHANDLEp = (cpcaHANDLE *)p ;
+  *cpcaHANDLEp++ = inParam->Object ;
+  p = (Ptr)cpcaHANDLEp ;
+
   comSize += paramSize ;
 
   return comSize ;
@@ -1723,6 +1742,7 @@
   short             paramSize ;
   unsigned long     userID ;
   unsigned long     password ;
+  cpcaATTRIB        *cpcaATTRIBp;
 
   z_setUserInfo( userInfo, &userID, &password ) ;
   paramSize = sizeof( cpcaATTRIB ) + inParam->Size ;
@@ -1739,7 +1759,9 @@
   p += comSize ;
 
   /*  固有パラメータの設定 */
-  *( ( cpcaATTRIB *)p )++ = inParam->Attribute ;
+  cpcaATTRIBp = (cpcaATTRIB *)p; 
+  *cpcaATTRIBp++ = inParam->Attribute ;
+  p = (Ptr)cpcaATTRIBp ;
   if ( inParam->Data && ( inParam->Size > 0 ) )
   {
     memcpy( p, inParam->Data, inParam->Size ) ;
@@ -1764,22 +1786,27 @@
   short                 comSize ;
   Ptr                   work ;
   char                  BindName;
+  unsigned char         *ucwork ;
 
   work = p ;
 
   /* ビンエイリアスの設定 */
-  *( ( unsigned char *)work )++ = bindInfo;
+  ucwork = (unsigned char *)work ;
+  *ucwork++ = bindInfo;
   /* ビン番号の設定=なし(0を指定) */
-  *( ( unsigned char *)work )++ = bindNum ;
+  *ucwork++ = bindNum ;
   /* ビン名称指定 */
   /*  null文字列指定 */
   BindName = 0;
+  work = (Ptr)ucwork ;
 
   memcpy( ( StringPtr )work, &BindName, 1 ) ;
   work += 1 ;
   /* 開始ビン、終了ビン指定 */
-  *( ( unsigned char *)work )++ = 0 ;
-  *( ( unsigned char *)work )++ = 0 ;
+  ucwork = (unsigned char *)work ;
+  *ucwork++ = 0 ;
+  *ucwork++ = 0 ;
+  work = (Ptr)ucwork ;
   /* サイズの取得 */
   comSize = work - p ;
 
@@ -1803,19 +1830,24 @@
   Ptr                   work ;
   char                  count;
   char                  str_count;
+  unsigned char         *ucwork ;
+  unsigned short        *uswork ;
 
   work = p ;
   count = 1;
   str_count = 1;
 
   /* Type:フィニッシング方法の設定 */
-  *( ( unsigned char *)work )++ = str_count;
+  ucwork = (unsigned char *)work ;
+  *ucwork++ = str_count;
   /* Type:フィニッシング方法の設定 */
-  *( ( unsigned char *)work )++ = id_val_finishing_type_staple_stitching;
+  *ucwork++ = id_val_finishing_type_staple_stitching;
   /* Count:フィニッシングを行う個数 */
-  *( ( unsigned char *)work )++ = count ;
+  *ucwork++ = count ;
   /* Locate:フィニッシングを行う箇所 */
-  *( ( unsigned short *)work )++ = staple_val;
+  uswork = (unsigned short *)ucwork ;
+  *uswork++ = staple_val;
+  work = (Ptr)uswork ;
   /* サイズの取得 */
   comSize = work - p ;
 
@@ -1839,6 +1871,7 @@
   short          paramSize ;
   unsigned long  userID ;
   unsigned long  password ;
+  cpcaHANDLE     *cpcaHANDLEp ;
 
   z_setUserInfo( userInfo, &userID, &password ) ;
   paramSize = 4 ;
@@ -1855,7 +1888,9 @@
   p += comSize ;
 
   /* 固有パラメータの設定 */
-  *( ( cpcaHANDLE *)p )++ = inParam->Object ;
+  cpcaHANDLEp = (cpcaHANDLE *)p ;
+  *cpcaHANDLEp++ = inParam->Object ;
+  p = (Ptr)cpcaHANDLEp ;
   comSize += paramSize ;
 
   return comSize ;
@@ -1876,7 +1911,7 @@
   short           paramSize ;
   unsigned long   userID ;
   unsigned long   password ;
-
+  cpcaATTRIB      *cpcaATTRIBp ;
 
   z_setUserInfo( userInfo, &userID, &password ) ;
   paramSize = 2 + inParam->Size ;
@@ -1893,7 +1928,9 @@
   p += comSize ;
 
   /* 固有パラメータの設定 */
-  *( ( cpcaATTRIB *)p )++ = inParam->Attribute ;
+  cpcaATTRIBp = (cpcaATTRIB *)p ;
+  *cpcaATTRIBp++ = inParam->Attribute ;
+  p = (Ptr)cpcaATTRIBp ;
   if ( inParam->Data && ( inParam->Size > 0 ) )
   {
     memcpy( p, inParam->Data, inParam->Size ) ;
@@ -1918,6 +1955,8 @@
   short           paramSize ;
   unsigned long   userID ;
   unsigned long   password ;
+  cpcaHANDLE      *cpcaHANDLEp ;
+  cpcaUSHORT      *cpcaUSHORTp ;
 
   z_setUserInfo( userInfo, &userID, &password ) ;
   paramSize = 6 + inParam->Size ;
@@ -1934,8 +1973,11 @@
   p += comSize ;              
 
   /* 固有パラメータの設定 */
-  *( ( cpcaHANDLE *)p )++     = inParam->Object ;
-  *( ( cpcaUSHORT *)p )++     = inParam->Method ;
+  cpcaHANDLEp = (cpcaHANDLE *)p ;
+  *cpcaHANDLEp++     = inParam->Object ;
+  cpcaUSHORTp = (cpcaUSHORT *)cpcaHANDLEp ;
+  *cpcaUSHORTp++     = inParam->Method ;
+  p = (Ptr)cpcaUSHORTp ;
   if ( inParam->Data && ( inParam->Size > 0 ) )
   {
     memcpy( p, inParam->Data, inParam->Size ) ;
@@ -2075,6 +2117,7 @@
   short                 paramSize ;
   unsigned long         userID ;
   unsigned long         password ;
+  cpcaUBYTE             *cpcaUBYTEp ;
 
   z_setUserInfo( userInfo, &userID, &password ) ;
   paramSize = 1 ;
@@ -2091,7 +2134,9 @@
   p += comSize ;
 
   /* 固有パラメータの設定 */
-  *( ( cpcaUBYTE *)p )++ = inParam->Code ;
+  cpcaUBYTEp = (cpcaUBYTE *)p ;
+  *cpcaUBYTEp++ = inParam->Code ;
+  p = (Ptr)cpcaUBYTEp ;
   comSize += paramSize ;
 
   return comSize ;
--- ../ghostscript-8.53.orig/gdevlips-2.4.0/gdevl4v.c	Wed Mar 15 15:00:27 2006
+++ gdevlips-2.4.0/gdevl4v.c	Wed Mar 15 15:35:41 2006
@@ -255,6 +255,7 @@
 lips4v_curveto(gx_device_vector * vdev, floatp x0, floatp y0, floatp x1,
 		floatp y1, floatp x2, floatp y2, floatp x3, floatp y3,
 		gx_path_type_t type);
+private int
 lips4v_closepath(gx_device_vector * vdev, floatp x, floatp y, floatp x_start,
 		  floatp y_start, gx_path_type_t type);


>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200603150512.k2F5CGqL033893>