Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 11 Dec 2012 21:03:48 +0100
From:      Dimitry Andric <dim@FreeBSD.org>
To:        AN <andy@neu.net>
Cc:        freebsd-ports@freebsd.org
Subject:   Re: Compiz problem - Undefined symbol "animGetI"
Message-ID:  <50C791A4.8040503@FreeBSD.org>
In-Reply-To: <alpine.BSF.2.00.1212081415560.12407@mail.neu.net>
References:  <mailman.1.1354795200.33415.freebsd-ports@freebsd.org> <alpine.BSF.2.00.1212081415560.12407@mail.neu.net>

next in thread | previous in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format.
--------------010901060503090004010109
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

On 2012-12-08 20:32, AN wrote:
...
> I believe this is related to the switch to clang because the same hardware
> was configured the same way previously, the only difference is that the
> system where Compiz was working was compiled with GCC 4.2.
>
> When I run the following on the command line:
>
> compiz --replace --sm-disable --ignore-desktop-hints ccp &
> gtk-window-decorator --replace &
>
> I get:
>
> /usr/local/lib/compiz/libanimation.so Undefined symbol "animGetI"

Please try applying the attached patch (easiest is to use svn patch from
the root of your ports tree).  This fixes a number of problems with
inline functions in compiz-plugins-main.

--------------010901060503090004010109
Content-Type: text/x-diff;
 name="x11-wm_compiz-plugins-main-1.diff"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
 filename="x11-wm_compiz-plugins-main-1.diff"

Index: x11-wm/compiz-plugins-main/files/patch-include__compiz-animation.h
===================================================================
--- x11-wm/compiz-plugins-main/files/patch-include__compiz-animation.h	(revision 0)
+++ x11-wm/compiz-plugins-main/files/patch-include__compiz-animation.h	(working copy)
@@ -0,0 +1,81 @@
+--- include/compiz-animation.h.orig	2009-10-14 03:01:42.000000000 +0200
++++ include/compiz-animation.h	2012-12-10 00:51:30.000000000 +0100
+@@ -215,7 +215,7 @@ typedef struct _AnimBaseFunctions {
+ 
+ #define OPTION_GETTERS(extensionBaseFunctions,				\
+ 		       extensionPluginInfo, firstEffectOption)		\
+-static inline CompOptionValue *						\
++extern inline CompOptionValue *						\
+ animGetOptVal (CompWindow *w,						\
+ 	       int optionId)						\
+ {									\
+@@ -223,35 +223,35 @@ animGetOptVal (CompWindow *w,						\
+     	(w, (extensionPluginInfo), optionId - (firstEffectOption));	\
+ }						\
+ 						\
+-inline Bool					\
++extern inline Bool				\
+ animGetB (CompWindow *w,			\
+ 	  int optionId)				\
+ {						\
+     return animGetOptVal (w, optionId)->b;	\
+ }						\
+ 						\
+-inline int					\
++extern inline int				\
+ animGetI (CompWindow *w,			\
+ 	  int optionId)				\
+ {						\
+     return animGetOptVal (w, optionId)->i;	\
+ }						\
+ 						\
+-inline float					\
++extern inline float				\
+ animGetF (CompWindow *w,			\
+ 	  int optionId)				\
+ {						\
+     return animGetOptVal (w, optionId)->f;	\
+ }						\
+ 						\
+-inline char *					\
++extern inline char *				\
+ animGetS (CompWindow *w,			\
+ 	  int optionId)				\
+ {						\
+     return animGetOptVal (w, optionId)->s;	\
+ }						\
+ 						\
+-inline unsigned short *				\
++extern inline unsigned short *			\
+ animGetC (CompWindow *w,			\
+ 	  int optionId)				\
+ {						\
+@@ -260,23 +260,23 @@ animGetC (CompWindow *w,			\
+ 
+ #define OPTION_GETTERS_HDR			\
+ 						\
+-inline Bool					\
++extern inline Bool				\
+ animGetB (CompWindow *w,			\
+ 	  int optionId);			\
+ 						\
+-inline int					\
++extern inline int				\
+ animGetI (CompWindow *w,			\
+ 	  int optionId);			\
+ 						\
+-inline float					\
++extern inline float				\
+ animGetF (CompWindow *w,			\
+ 	  int optionId);			\
+ 						\
+-inline char *					\
++extern inline char *				\
+ animGetS (CompWindow *w,			\
+ 	  int optionId);			\
+ 						\
+-inline unsigned short *				\
++extern inline unsigned short *			\
+ animGetC (CompWindow *w,			\
+ 	  int optionId);
+ 
Index: x11-wm/compiz-plugins-main/files/patch-src__animation__animation-internal.h
===================================================================
--- x11-wm/compiz-plugins-main/files/patch-src__animation__animation-internal.h	(revision 0)
+++ x11-wm/compiz-plugins-main/files/patch-src__animation__animation-internal.h	(working copy)
@@ -0,0 +1,20 @@
+--- src/animation/animation-internal.h.orig	2009-10-14 03:01:42.000000000 +0200
++++ src/animation/animation-internal.h	2012-12-10 00:55:13.000000000 +0100
+@@ -429,7 +429,7 @@ applyPerspectiveSkew (CompOutput *output
+ 		      CompTransform *transform,
+ 		      Point *center);
+ 
+-inline void
++extern inline void
+ applyTransform (CompTransform *wTransform,
+ 		CompTransform *transform);
+ 
+@@ -616,7 +616,7 @@ fxZoomInit (CompWindow * w);
+ void
+ applyZoomTransform (CompWindow * w);
+ 
+-void
++extern inline void
+ getZoomCenterScale (CompWindow *w,
+ 		    Point *pCurCenter, Point *pCurScale);
+ 
Index: x11-wm/compiz-plugins-main/files/patch-src__animation__animation.c
===================================================================
--- x11-wm/compiz-plugins-main/files/patch-src__animation__animation.c	(revision 0)
+++ x11-wm/compiz-plugins-main/files/patch-src__animation__animation.c	(working copy)
@@ -0,0 +1,11 @@
+--- src/animation/animation.c.orig	2009-10-14 03:01:42.000000000 +0200
++++ src/animation/animation.c	2012-12-10 00:46:15.000000000 +0100
+@@ -742,7 +742,7 @@ defaultUpdateWindowTransform (CompWindow
+ }
+ 
+ // Apply transform to wTransform
+-inline void
++extern inline void
+ applyTransform (CompTransform *wTransform,
+ 		CompTransform *transform)
+ {
Index: x11-wm/compiz-plugins-main/files/patch-src__animation__zoomside.c
===================================================================
--- x11-wm/compiz-plugins-main/files/patch-src__animation__zoomside.c	(revision 0)
+++ x11-wm/compiz-plugins-main/files/patch-src__animation__zoomside.c	(working copy)
@@ -0,0 +1,11 @@
+--- src/animation/zoomside.c.orig	2009-10-14 03:01:42.000000000 +0200
++++ src/animation/zoomside.c	2012-12-10 00:55:13.000000000 +0100
+@@ -303,7 +303,7 @@ getZoomCenterScaleFull (CompWindow *w,
+ 	*pRotateProgress = rotateProgress;
+ }
+ 
+-inline void
++extern inline void
+ getZoomCenterScale (CompWindow *w,
+ 		    Point *pCurCenter, Point *pCurScale)
+ {

--------------010901060503090004010109--



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