On Sun, Feb 14, 2016 at 08:57:10PM +0100, Matthieu Herrb wrote:
> On Sun, Feb 14, 2016 at 11:17:24PM +1100, Jonathan Gray wrote:
> > I would prefer if someone with time and an alpha can figure
> > out which optimisation flag breaks, then all of mesa
> > could be built with that disabled on alpha which would be
> > a much smaller diff.
> 
> Ok here is a new less intrusive diff. I don't understand why it works
> but it allows to build mesa on alpha.
> 
> I've taken the list of individual optimisation from gcc(1) for both -O1
> and -O2 and replaced -O2 by this in CFLAGS. My plan was to try to
> remove one after the other until it built, but both problematic files
> build ok with that combinaison.
> 
> I've only removed -fdelayed-branch  since gcc says that it's not supported
> on this architecture.

But this will break when building all of xenocara and not just
mesa if the i386 case is anything to go by, because of the cached
configure results.  That is why it uses USER_CFLAGS/USER_CXXFLAGS.

> 
> Index: share/mk/bsd.xconf.mk
> ===================================================================
> RCS file: /cvs/OpenBSD/xenocara/share/mk/bsd.xconf.mk,v
> retrieving revision 1.30
> diff -u -p -u -r1.30 bsd.xconf.mk
> --- share/mk/bsd.xconf.mk     5 Feb 2016 13:59:11 -0000       1.30
> +++ share/mk/bsd.xconf.mk     14 Feb 2016 19:36:56 -0000
> @@ -8,7 +8,7 @@ XENOCARA_HAVE_SHARED_LIBS?=yes
>  .endif
>  
>  # Build GL libs and apps?
> -.if ${MACHINE_ARCH} == "m88k" || ${MACHINE_ARCH} == "alpha"
> +.if ${MACHINE_ARCH} == "m88k"
>  XENOCARA_BUILD_GL?=no
>  XENOCARA_BUILD_DRI?=no
>  .else
> Index: lib/mesa/Makefile.bsd-wrapper
> ===================================================================
> RCS file: /cvs/OpenBSD/xenocara/lib/mesa/Makefile.bsd-wrapper,v
> retrieving revision 1.4
> diff -u -p -u -r1.4 Makefile.bsd-wrapper
> --- lib/mesa/Makefile.bsd-wrapper     20 Dec 2015 12:31:01 -0000      1.4
> +++ lib/mesa/Makefile.bsd-wrapper     14 Feb 2016 19:36:56 -0000
> @@ -18,6 +18,25 @@ DRI_DRIVERS=swrast,radeon,r200
>  GALLIUM_DRIVERS=swrast,r300,r600
>  .endif
>  
> +.if ${MACHINE} == alpha
> +O1= -fdefer-pop  -fguess-branch-probability -fcprop-registers \
> +     -fif-conversion -fif-conversion2 -ftree-ccp -ftree-dce \
> +     -ftree-dominator-opts -ftree-dse -ftree-ter -ftree-lrs -ftree-sra \
> +     -ftree-copyrename -ftree-fre -ftree-ch -funit-at-a-time \
> +     -fmerge-constants -fomit-frame-pointer
> +
> +O2= ${O1} -fthread-jumps -fcrossjumping \
> +     -foptimize-sibling-calls -fcse-follow-jumps -fcse-skip-blocks \
> +     -fgcse  -fgcse-lm -fexpensive-optimizations -frerun-cse-after-loop \
> +     -fcaller-saves -fpeephole2 -fschedule-insns -fschedule-insns2 \
> +     -fsched-interblock  -fsched-spec -fregmove -fstrict-aliasing \
> +     -fstrict-overflow -fdelete-null-pointer-checks -freorder-blocks \
> +     -freorder-functions -falign-functions -falign-jumps -falign-loops \
> +     -falign-labels -ftree-vrp -ftree-pre
> +
> +CFLAGS= ${O2} -pipe
> +.endif
> +
>  CONFIGURE_ARGS=              --with-dri-drivers=${DRI_DRIVERS} \
>                       --with-gallium-drivers=${GALLIUM_DRIVERS} \
>                       --disable-silent-rules \
> -- 
> Matthieu Herrb


Reply via email to