From 31a6563ec5167d6b15fdb8c158a71ab4f97015ab Mon Sep 17 00:00:00 2001 From: Matt Turner Date: Wed, 30 May 2012 16:26:32 -0400 Subject: [PATCH] autotools: use custom build rule to build iwMMXt code gcc has no sane way of enabling iwmmxt code generation, like -msse for SSE, so you have to use -march=iwmmxt{,2}. User CFLAGS are placed after -march=iwmmxt and override the march value, so we have to use a custom build rule to order the CFLAGS such that pixman-mmx.c will be built with the necessary CFLAGS. --- configure.ac | 2 +- pixman/Makefile.am | 18 +++++++++++++----- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/configure.ac b/configure.ac index 5c60b13..a544e19 100644 --- a/configure.ac +++ b/configure.ac @@ -614,7 +614,7 @@ fi have_iwmmxt_intrinsics=no AC_MSG_CHECKING(whether to use ARM IWMMXT intrinsics) xserver_save_CFLAGS=$CFLAGS -CFLAGS="$IWMMXT_CFLAGS $CFLAGS" +CFLAGS="$CFLAGS $IWMMXT_CFLAGS" AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ #ifndef __arm__ #error "IWMMXT is only available on ARM" diff --git a/pixman/Makefile.am b/pixman/Makefile.am index b320a58..1b232ad 100644 --- a/pixman/Makefile.am +++ b/pixman/Makefile.am @@ -93,13 +93,21 @@ endif # iwmmxt code if USE_ARM_IWMMXT noinst_LTLIBRARIES += libpixman-iwmmxt.la -libpixman_iwmmxt_la_SOURCES = pixman-mmx.c -libpixman_iwmmxt_la_CFLAGS = $(DEP_CFLAGS) $(IWMMXT_CFLAGS) -libpixman_iwmmxt_la_LIBADD = $(DEP_LIBS) -libpixman_1_la_LDFLAGS += $(IWMMXT_LDFLAGS) libpixman_1_la_LIBADD += libpixman-iwmmxt.la -ASM_CFLAGS_IWMMXT=$(IWMMXT_CFLAGS) +libpixman_iwmmxt_la-pixman-mmx.lo: pixman-mmx.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CFLAGS) $(IWMMXT_CFLAGS) -MT libpixman_iwmmxt_la-pixman-mmx.lo -MD -MP -MF $(DEPDIR)/libpixman_iwmmxt_la-pixman-mmx.Tpo -c -o libpixman_iwmmxt_la-pixman-mmx.lo `test -f 'pixman-mmx.c' || echo '$(srcdir)/'`pixman-mmx.c + $(AM_V_at)$(am__mv) $(DEPDIR)/libpixman_iwmmxt_la-pixman-mmx.Tpo $(DEPDIR)/libpixman_iwmmxt_la-pixman-mmx.Plo + +libpixman_iwmmxt_la_DEPENDENCIES = $(am__DEPENDENCIES_1) +libpixman_iwmmxt_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(CFLAGS) $(IWMMXT_CFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +libpixman_iwmmxt_la_LIBADD = $(DEP_LIBS) + +libpixman-iwmmxt.la: libpixman_iwmmxt_la-pixman-mmx.lo $(libpixman_iwmmxt_la_DEPENDENCIES) + $(AM_V_CCLD)$(libpixman_iwmmxt_la_LINK) libpixman_iwmmxt_la-pixman-mmx.lo $(libpixman_iwmmxt_la_LIBADD) $(LIBS) endif # mips dspr2 code -- 2.7.4