arm: use -march when compiling m5op_arm.S
authorAnthony Gutierrez <atgutier@umich.edu>
Wed, 14 Aug 2013 14:51:47 +0000 (10:51 -0400)
committerAnthony Gutierrez <atgutier@umich.edu>
Wed, 14 Aug 2013 14:51:47 +0000 (10:51 -0400)
Using arm-linux-gnueabi-gcc 4.7.3-1ubuntu1 on Ubuntu 13.04 to compiled
the m5 binary yields the error:

m5op_arm.S: Assembler messages:
m5op_arm.S:85: Error: selected processor does not support ARM mode `bxj lr'

For each of of the SIMPLE_OPs. Apparently, this compiler doesn't like the
interworking of these code types for the default arch. Adding -march=armv7-a
makes it compile. Another alternative that I found to work is replacing the
bxj lr instruction with mov pc, lr, but I don't know how that affects the
KVM stuff and if bxj is needed.

util/m5/Makefile.arm

index fd6e8938c61ce1a1e124640f97726181619aa02c..99e95cc907d9c2a42b97f5c3f18f292257dac4ac 100644 (file)
@@ -39,7 +39,7 @@
 # Authors: Nathan Binkert
 #          Ali Saidi
 
-### If we are not compiling on an arm, we must use cross tools ###    
+### If we are not compiling on an arm, we must use cross tools ###
 ifneq ($(shell uname -m), armv7l)
 CROSS_COMPILE?=arm-linux-gnueabi-
 endif
@@ -54,7 +54,7 @@ JR=jar
 ### JDK_PATH must be set to build gem5OpJni
 #JDK_PATH=/path/to/jdk/version_number
 
-CFLAGS=-O2 -I $(JDK_PATH)/include/ -I $(JDK_PATH)/include/linux
+CFLAGS=-O2 -I $(JDK_PATH)/include/ -I $(JDK_PATH)/include/linux -march=armv7-a
 LDFLAGS=-L. -lm5
 
 LIB_OBJS=m5op_arm.o