Re: fix xlockmore build with clang
On Fri, Feb 03, 2017 at 05:40:47PM +1100, Jonathan Gray wrote: > On Fri, Feb 03, 2017 at 07:30:17AM +0100, Matthieu Herrb wrote: > > On Thu, Feb 02, 2017 at 01:45:36PM +1100, Jonathan Gray wrote: > > > Sync some xlockmore files with the 5.50 release to fix build errors > > > with clang of the form: > > > > Sure, ok. > > > > I remember I had more changes to make when trying clang from ports on > > xenocara during g2k16, but it may be that clang got more gcc > > compatible since then. > > Or upstreams started adding clang fixes? Either way this was the only > clang specific change I needed to build all of xenocara on arm64. > > On a related note the xlock upstream seems to have moved: Yes, ok. It's going to require some effort to merge it though. We've a lot of local patches to xlock already. I'd rather replace it with something that doesn't do fancy graphics (or do it with proper sandboxing). > > Index: 3RDPARTY > === > RCS file: /cvs/xenocara/3RDPARTY,v > retrieving revision 1.283 > diff -u -p -r1.283 3RDPARTY > --- 3RDPARTY 21 Jan 2017 16:17:24 - 1.283 > +++ 3RDPARTY 3 Feb 2017 06:37:50 - > @@ -44,9 +44,9 @@ Archive Site: http://dejavu-fonts.org/ > > Package: xlockmore > Version: 5.22 > -Current Vers:5.47 > -Maintainer: bagl...@tux.org > -Archive Site:http://www.tux.org/~bagleyd/latest/ > +Current Vers:5.50 > +Maintainer: David A. Bagley > +Archive Site:http://sillycycle.com/xlock/ > > Package: xkeyboard-config > Version: 2.19 -- Matthieu Herrb signature.asc Description: PGP signature
Re: fix xlockmore build with clang
On Fri, Feb 03, 2017 at 07:30:17AM +0100, Matthieu Herrb wrote: > On Thu, Feb 02, 2017 at 01:45:36PM +1100, Jonathan Gray wrote: > > Sync some xlockmore files with the 5.50 release to fix build errors > > with clang of the form: > > Sure, ok. > > I remember I had more changes to make when trying clang from ports on > xenocara during g2k16, but it may be that clang got more gcc > compatible since then. Or upstreams started adding clang fixes? Either way this was the only clang specific change I needed to build all of xenocara on arm64. On a related note the xlock upstream seems to have moved: Index: 3RDPARTY === RCS file: /cvs/xenocara/3RDPARTY,v retrieving revision 1.283 diff -u -p -r1.283 3RDPARTY --- 3RDPARTY21 Jan 2017 16:17:24 - 1.283 +++ 3RDPARTY3 Feb 2017 06:37:50 - @@ -44,9 +44,9 @@ Archive Site: http://dejavu-fonts.org/ Package: xlockmore Version: 5.22 -Current Vers: 5.47 -Maintainer:bagl...@tux.org -Archive Site: http://www.tux.org/~bagleyd/latest/ +Current Vers: 5.50 +Maintainer:David A. Bagley +Archive Site: http://sillycycle.com/xlock/ Package: xkeyboard-config Version: 2.19
Re: fix xlockmore build with clang
On Thu, Feb 02, 2017 at 01:45:36PM +1100, Jonathan Gray wrote: > Sync some xlockmore files with the 5.50 release to fix build errors > with clang of the form: Sure, ok. I remember I had more changes to make when trying clang from ports on xenocara during g2k16, but it may be that clang got more gcc compatible since then. > > c++ -c -DHAVE_CONFIG_H > -DDEF_FILESEARCHPATH=\"/usr/X11R6/share/X11/app-defaults/%N%C%S:/usr/X11R6/share/X11/app-defaults/%N%S\" > -I. -I.. -I../.. -I/usr/xenocara/app/xlockmore/xlock/ > -I/usr/xenocara/app/xlockmore -I/usr/X11R6/include -I/usr/X11R6/include > -I/usr/X11R6/include/freetype2 -I/usr/X11R6/include -I/usr/X11R6/include -g > -O2 /usr/xenocara/app/xlockmore/modes/glx/./i_figureeight.cc > /usr/xenocara/app/xlockmore/modes/glx/./i_figureeight.cc:31:47: error: use of > overloaded operator '^' is ambiguous > (with operand types 'class TwoJet' and 'int') > FigureEight(w, h, du*D(size, 0)*(D(u, 0)^(-1)), form, v), >~~~^ > Index: modes/glx/i_figureeight.cc > === > RCS file: /cvs/xenocara/app/xlockmore/modes/glx/i_figureeight.cc,v > retrieving revision 1.1.1.1 > diff -u -p -r1.1.1.1 i_figureeight.cc > --- modes/glx/i_figureeight.cc26 Nov 2006 11:08:51 - 1.1.1.1 > +++ modes/glx/i_figureeight.cc2 Feb 2017 02:19:08 - > @@ -28,7 +28,7 @@ TwoJetVec AddFigureEight(ThreeJetVec p, >TwoJetVec w = Normalize(Cross(h, du))*(TwoJet(size)*1.1); >return RotateZ( > TwoJetVec(p) + > - FigureEight(w, h, du*D(size, 0)*(D(u, 0)^(-1)), form, v), > + FigureEight(w, h, du*D(size, 0)*(D(u, 0)^((double)-1)), form, v), > v*(1./n_strips) >); > } > Index: modes/glx/i_sphere.cc > === > RCS file: /cvs/xenocara/app/xlockmore/modes/glx/i_sphere.cc,v > retrieving revision 1.1.1.1 > diff -u -p -r1.1.1.1 i_sphere.cc > --- modes/glx/i_sphere.cc 26 Nov 2006 11:08:51 - 1.1.1.1 > +++ modes/glx/i_sphere.cc 2 Feb 2017 02:21:33 - > @@ -28,16 +28,16 @@ ThreeJet Param1(ThreeJet x) { >double offset = 0; >x %= 4; >if (x > 2) { x = x+(-2); offset = 2; } > - if (x <= 1) return x*2 + (x^2)*(-1) + offset; > - else return (x^2) + x*(-2) + (2 + offset); > + if (x <= 1) return x*2 + (x^(double)2)*(-1) + offset; > + else return (x^(double)2) + x*(-2) + (2 + offset); > } > > ThreeJet Param2(ThreeJet x) { >double offset = 0; >x %= 4; >if (x > 2) { x = x+(-2); offset = 2; } > - if (x <= 1) return (x^2) + offset; > - else return (x^2)*(-1) + x*4 + (-2 + offset); > + if (x <= 1) return (x^(double)2) + offset; > + else return (x^(double)2)*(-1) + x*4 + (-2 + offset); > } > > static inline ThreeJet TInterp(double x) { > @@ -48,7 +48,7 @@ ThreeJet UInterp(ThreeJet x) { >x %= 2; >if (x > 1) > x = x*(-1) + 2; > - return (x^2)*3 + (x^3) * (-2); > + return (x^(double)2)*3 + (x^(double)3) * (-2); > } > > #define FFPOW 3 > @@ -59,7 +59,7 @@ ThreeJet FFInterp(ThreeJet x) { >x = x*1.06 + -0.05; >if (x < 0) return ThreeJet(0, 0, 0); >else if (x > 1) return ThreeJet(0, 0, 0) + 1; > - else return (x ^ (FFPOW-1)) * (FFPOW) + (x^FFPOW) * (-FFPOW+1); > + else return (x ^ (double)(FFPOW-1)) * (FFPOW) + (x^(double)FFPOW) * > (-FFPOW+1); > } > > #define FSPOW 3 > @@ -67,7 +67,7 @@ ThreeJet FSInterp(ThreeJet x) { >x %= 2; >if (x > 1) > x = x*(-1) + 2; > - return ((x ^ (FSPOW-1)) * (FSPOW) + (x^FSPOW) * (-FSPOW+1)) * (-0.2); > + return ((x ^ (double)(FSPOW-1)) * (FSPOW) + (x^(double)FSPOW) * > (-FSPOW+1)) * (-0.2); > } > > ThreeJetVec Stage0(ThreeJet u, ThreeJet v) { > Index: modes/glx/i_threejetvec.cc > === > RCS file: /cvs/xenocara/app/xlockmore/modes/glx/i_threejetvec.cc,v > retrieving revision 1.1.1.1 > diff -u -p -r1.1.1.1 i_threejetvec.cc > --- modes/glx/i_threejetvec.cc26 Nov 2006 11:08:51 - 1.1.1.1 > +++ modes/glx/i_threejetvec.cc2 Feb 2017 02:23:09 - > @@ -63,10 +63,10 @@ ThreeJetVec Normalize(ThreeJetVec v) { > > ThreeJetVec RotateZ(ThreeJetVec v, ThreeJet angle) { >ThreeJetVec result; > - ThreeJet s,c; > + ThreeJet s, c; >s = Sin (angle); >c = Cos (angle); > - result.x = v.x*c + v.y*s; > + result.x = v.x*c + v.y*s; >result.y = v.x*s*-1 + v.y*c; >result.z = v.z; >return result; > @@ -79,13 +79,13 @@ ThreeJetVec RotateY(ThreeJetVec v, Three >c = Cos (angle); >result.x = v.x*c + v.z*s*-1; >result.y = v.y; > - result.z = v.x*s + v.z*c; > + result.z = v.x*s + v.z*c; >return result; > } > > ThreeJetVec RotateX(ThreeJetVec v, ThreeJet angle) { >ThreeJetVec result; > - ThreeJet s,c; > + ThreeJet s, c; >s = Sin (angle); >c = Cos (angle); >result.x = v.x; > @@ -100,5 +100,5 @@ ThreeJetVec
fix xlockmore build with clang
Sync some xlockmore files with the 5.50 release to fix build errors with clang of the form: c++ -c -DHAVE_CONFIG_H -DDEF_FILESEARCHPATH=\"/usr/X11R6/share/X11/app-defaults/%N%C%S:/usr/X11R6/share/X11/app-defaults/%N%S\" -I. -I.. -I../.. -I/usr/xenocara/app/xlockmore/xlock/ -I/usr/xenocara/app/xlockmore -I/usr/X11R6/include -I/usr/X11R6/include -I/usr/X11R6/include/freetype2 -I/usr/X11R6/include -I/usr/X11R6/include -g -O2 /usr/xenocara/app/xlockmore/modes/glx/./i_figureeight.cc /usr/xenocara/app/xlockmore/modes/glx/./i_figureeight.cc:31:47: error: use of overloaded operator '^' is ambiguous (with operand types 'class TwoJet' and 'int') FigureEight(w, h, du*D(size, 0)*(D(u, 0)^(-1)), form, v), ~~~^ Index: modes/glx/i_figureeight.cc === RCS file: /cvs/xenocara/app/xlockmore/modes/glx/i_figureeight.cc,v retrieving revision 1.1.1.1 diff -u -p -r1.1.1.1 i_figureeight.cc --- modes/glx/i_figureeight.cc 26 Nov 2006 11:08:51 - 1.1.1.1 +++ modes/glx/i_figureeight.cc 2 Feb 2017 02:19:08 - @@ -28,7 +28,7 @@ TwoJetVec AddFigureEight(ThreeJetVec p, TwoJetVec w = Normalize(Cross(h, du))*(TwoJet(size)*1.1); return RotateZ( TwoJetVec(p) + - FigureEight(w, h, du*D(size, 0)*(D(u, 0)^(-1)), form, v), + FigureEight(w, h, du*D(size, 0)*(D(u, 0)^((double)-1)), form, v), v*(1./n_strips) ); } Index: modes/glx/i_sphere.cc === RCS file: /cvs/xenocara/app/xlockmore/modes/glx/i_sphere.cc,v retrieving revision 1.1.1.1 diff -u -p -r1.1.1.1 i_sphere.cc --- modes/glx/i_sphere.cc 26 Nov 2006 11:08:51 - 1.1.1.1 +++ modes/glx/i_sphere.cc 2 Feb 2017 02:21:33 - @@ -28,16 +28,16 @@ ThreeJet Param1(ThreeJet x) { double offset = 0; x %= 4; if (x > 2) { x = x+(-2); offset = 2; } - if (x <= 1) return x*2 + (x^2)*(-1) + offset; - else return (x^2) + x*(-2) + (2 + offset); + if (x <= 1) return x*2 + (x^(double)2)*(-1) + offset; + else return (x^(double)2) + x*(-2) + (2 + offset); } ThreeJet Param2(ThreeJet x) { double offset = 0; x %= 4; if (x > 2) { x = x+(-2); offset = 2; } - if (x <= 1) return (x^2) + offset; - else return (x^2)*(-1) + x*4 + (-2 + offset); + if (x <= 1) return (x^(double)2) + offset; + else return (x^(double)2)*(-1) + x*4 + (-2 + offset); } static inline ThreeJet TInterp(double x) { @@ -48,7 +48,7 @@ ThreeJet UInterp(ThreeJet x) { x %= 2; if (x > 1) x = x*(-1) + 2; - return (x^2)*3 + (x^3) * (-2); + return (x^(double)2)*3 + (x^(double)3) * (-2); } #define FFPOW 3 @@ -59,7 +59,7 @@ ThreeJet FFInterp(ThreeJet x) { x = x*1.06 + -0.05; if (x < 0) return ThreeJet(0, 0, 0); else if (x > 1) return ThreeJet(0, 0, 0) + 1; - else return (x ^ (FFPOW-1)) * (FFPOW) + (x^FFPOW) * (-FFPOW+1); + else return (x ^ (double)(FFPOW-1)) * (FFPOW) + (x^(double)FFPOW) * (-FFPOW+1); } #define FSPOW 3 @@ -67,7 +67,7 @@ ThreeJet FSInterp(ThreeJet x) { x %= 2; if (x > 1) x = x*(-1) + 2; - return ((x ^ (FSPOW-1)) * (FSPOW) + (x^FSPOW) * (-FSPOW+1)) * (-0.2); + return ((x ^ (double)(FSPOW-1)) * (FSPOW) + (x^(double)FSPOW) * (-FSPOW+1)) * (-0.2); } ThreeJetVec Stage0(ThreeJet u, ThreeJet v) { Index: modes/glx/i_threejetvec.cc === RCS file: /cvs/xenocara/app/xlockmore/modes/glx/i_threejetvec.cc,v retrieving revision 1.1.1.1 diff -u -p -r1.1.1.1 i_threejetvec.cc --- modes/glx/i_threejetvec.cc 26 Nov 2006 11:08:51 - 1.1.1.1 +++ modes/glx/i_threejetvec.cc 2 Feb 2017 02:23:09 - @@ -63,10 +63,10 @@ ThreeJetVec Normalize(ThreeJetVec v) { ThreeJetVec RotateZ(ThreeJetVec v, ThreeJet angle) { ThreeJetVec result; - ThreeJet s,c; + ThreeJet s, c; s = Sin (angle); c = Cos (angle); - result.x = v.x*c + v.y*s; + result.x = v.x*c + v.y*s; result.y = v.x*s*-1 + v.y*c; result.z = v.z; return result; @@ -79,13 +79,13 @@ ThreeJetVec RotateY(ThreeJetVec v, Three c = Cos (angle); result.x = v.x*c + v.z*s*-1; result.y = v.y; - result.z = v.x*s + v.z*c; + result.z = v.x*s + v.z*c; return result; } ThreeJetVec RotateX(ThreeJetVec v, ThreeJet angle) { ThreeJetVec result; - ThreeJet s,c; + ThreeJet s, c; s = Sin (angle); c = Cos (angle); result.x = v.x; @@ -100,5 +100,5 @@ ThreeJetVec InterpolateVec(ThreeJetVec v ThreeJet Length(ThreeJetVec v) { - return (v.x^2 + v.y^2) ^ (.5); + return (v.x * v.x + v.y * v.y) ^ (.5); } Index: modes/glx/i_twojetvec.cc === RCS file: /cvs/xenocara/app/xlockmore/modes/glx/i_twojetvec.cc,v retrieving revision 1.1.1.1 diff -u -p -r1.1.1.1 i_twojetvec.cc --- modes/glx/i_twojetvec.cc26 Nov 2006 11:08:51 - 1.1.1.1 +++ modes/glx/i_twojetvec.cc2 Feb 2017 02:23:57 - @@ -55,10 +55,10