util: Convert the other architecture's m5 utility builds to scons.
Because I don't have a canonical toolchain to set SPARC's defaults to, it will by default build for Linux instead of Solaris like it used to. This will make it hard to test, but without a compiler there's not much I can do. This also coincidentally brings the SPARC version more in line with the other variants which all target Linux. Change-Id: Ie19217e988782da124306160920f40ef168840e4 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/27219 Maintainer: Bobby R. Bruce <bbruce@ucdavis.edu> Tested-by: kokoro <noreply+kokoro@google.com> Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br>
This commit is contained in:
@@ -1,95 +0,0 @@
|
||||
# Copyright (c) 2010 ARM Limited
|
||||
# All rights reserved.
|
||||
#
|
||||
# The license below extends only to copyright in the software and shall
|
||||
# not be construed as granting a license to any other intellectual
|
||||
# property including but not limited to intellectual property relating
|
||||
# to a hardware implementation of the functionality of the software
|
||||
# licensed hereunder. You may use the software subject to the license
|
||||
# terms below provided that you ensure that this notice is replicated
|
||||
# unmodified and in its entirety in all distributions of the software,
|
||||
# modified or unmodified, in source code or in binary form.
|
||||
#
|
||||
# Copyright (c) 2005-2006 The Regents of The University of Michigan
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are
|
||||
# met: redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer;
|
||||
# redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution;
|
||||
# neither the name of the copyright holders nor the names of its
|
||||
# contributors may be used to endorse or promote products derived from
|
||||
# this software without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
### If we are not compiling on an arm, we must use cross tools ###
|
||||
ifneq ($(shell uname -m), armv7l)
|
||||
CROSS_COMPILE?=arm-linux-gnueabi-
|
||||
endif
|
||||
CC=$(CROSS_COMPILE)gcc
|
||||
AS=$(CROSS_COMPILE)as
|
||||
LD=$(CROSS_COMPILE)ld
|
||||
AR=$(CROSS_COMPILE)ar
|
||||
|
||||
JC=javac
|
||||
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 \
|
||||
-I../../../include -march=armv7-a
|
||||
LDFLAGS=-L. -lm5 -static
|
||||
|
||||
LIB_OBJS=m5op_arm.o m5_mmap.o
|
||||
OBJS=m5.o
|
||||
JNI_OBJS=m5op_arm.o jni_gem5Op.o
|
||||
LUA_OBJS=lua_gem5Op.o m5op_arm.o m5_mmap.o
|
||||
|
||||
### Need to install lua5.1 library to compile gem5OpLua.so
|
||||
LUA_HEADER_INCLUDE=$(shell pkg-config --cflags lua51) \
|
||||
-I/usr/include/x86_64-linux-gnu
|
||||
|
||||
all: libm5.a m5
|
||||
|
||||
%.o: %.S
|
||||
$(CC) $(CFLAGS) -o $@ -c $<
|
||||
|
||||
%.o: %.c
|
||||
$(CC) $(CFLAGS) -o $@ -c $<
|
||||
|
||||
m5: $(OBJS) libm5.a
|
||||
$(CC) -o $@ $^ $(LDFLAGS)
|
||||
|
||||
libm5.a: $(LIB_OBJS)
|
||||
$(AR) rcs $@ $^
|
||||
|
||||
gem5OpJni: gem5OpJni.jar $(JNI_OBJS)
|
||||
$(CC) --shared -o lib$@.so $(JNI_OBJS)
|
||||
|
||||
gem5OpJni.jar:
|
||||
$(JC) jni/gem5Op.java -h .; \
|
||||
$(JR) cvf $@ jni/*.class
|
||||
|
||||
lua_gem5Op.o: lua_gem5Op.c
|
||||
$(CC) $(CFLAGS) $(LUA_HEADER_INCLUDE) -o $@ -c $< -fPIC
|
||||
|
||||
gem5OpLua.so: $(LUA_OBJS)
|
||||
$(CC) $(CFLAGS) $^ -o $@ -shared
|
||||
|
||||
clean:
|
||||
rm -f *.o m5 libgem5OpJni.so gem5OpJni.jar jni/*.class libm5.a \
|
||||
jni_gem5Op.h gem5OpLua.so
|
||||
@@ -1,5 +1,4 @@
|
||||
# Copyright (c) 2005-2006 The Regents of The University of Michigan
|
||||
# All rights reserved.
|
||||
# Copyright 2020 Google, Inc.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are
|
||||
@@ -24,27 +23,8 @@
|
||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
### If we are not compiling on an alpha, we must use cross tools ###
|
||||
ifneq ($(shell uname -m), sun4v)
|
||||
CROSS_COMPILE?=sparc64-sun-solaris2.10-
|
||||
endif
|
||||
CC=$(CROSS_COMPILE)gcc
|
||||
AS=$(CROSS_COMPILE)as
|
||||
LD=$(CROSS_COMPILE)ld
|
||||
Import('*')
|
||||
|
||||
CFLAGS=-O2 -m64 -I../../../include
|
||||
OBJS=m5.o m5op_sparc.o m5_mmap.o
|
||||
|
||||
all: m5
|
||||
|
||||
%.o: %.S
|
||||
$(CC) $(CFLAGS) -o $@ -c $<
|
||||
|
||||
%.o: %.c
|
||||
$(CC) $(CFLAGS) -o $@ -c $<
|
||||
|
||||
m5: $(OBJS)
|
||||
$(CC) -m64 -o $@ $(OBJS)
|
||||
|
||||
clean:
|
||||
rm -f *.o m5
|
||||
env['VARIANT'] = 'arm'
|
||||
get_variant_opt('CROSS_COMPILE', 'arm-linux-gnueabihf-')
|
||||
env.Append(CFLAGS='-march=armv7-a')
|
||||
57
util/m5/src/arm/m5op.S
Normal file
57
util/m5/src/arm/m5op.S
Normal file
@@ -0,0 +1,57 @@
|
||||
/*
|
||||
* Copyright (c) 2010, 2016 ARM Limited
|
||||
* All rights reserved
|
||||
*
|
||||
* The license below extends only to copyright in the software and shall
|
||||
* not be construed as granting a license to any other intellectual
|
||||
* property including but not limited to intellectual property relating
|
||||
* to a hardware implementation of the functionality of the software
|
||||
* licensed hereunder. You may use the software subject to the license
|
||||
* terms below provided that you ensure that this notice is replicated
|
||||
* unmodified and in its entirety in all distributions of the software,
|
||||
* modified or unmodified, in source code or in binary form.
|
||||
*
|
||||
* Copyright (c) 2003-2006 The Regents of The University of Michigan
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are
|
||||
* met: redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer;
|
||||
* redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution;
|
||||
* neither the name of the copyright holders nor the names of its
|
||||
* contributors may be used to endorse or promote products derived from
|
||||
* this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
.syntax unified
|
||||
|
||||
#include <gem5/asm/generic/m5ops.h>
|
||||
|
||||
.text
|
||||
|
||||
.macro m5op_func name, func
|
||||
.align 2
|
||||
.globl \name
|
||||
\name:
|
||||
.long 0xEE000110 | (\func << 16)
|
||||
mov pc,lr
|
||||
.endm
|
||||
|
||||
.text
|
||||
#define M5OP(name, func) m5op_func name, func
|
||||
M5OP_FOREACH
|
||||
#undef M5OP
|
||||
@@ -1,5 +1,4 @@
|
||||
# Copyright (c) 2005-2006 The Regents of The University of Michigan
|
||||
# All rights reserved.
|
||||
# Copyright 2020 Google, Inc.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are
|
||||
@@ -24,40 +23,8 @@
|
||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
CC=gcc
|
||||
AS=as
|
||||
LD=ld
|
||||
Import('*')
|
||||
|
||||
CFLAGS?=-O2 -DM5OP_ADDR=0xFFFF0000 -I../../../include
|
||||
OBJS=m5.o m5op_x86.o m5_mmap.o
|
||||
LUA_HEADER_INCLUDE=$(shell pkg-config --cflags-only-I lua51)
|
||||
LUA_OBJS=lua_gem5Op.opic m5op_x86.opic m5_mmap.opic
|
||||
|
||||
all: m5
|
||||
|
||||
%.o: %.S
|
||||
$(CC) $(CFLAGS) -o $@ -c $<
|
||||
|
||||
%.o: %.c
|
||||
$(CC) $(CFLAGS) -o $@ -c $<
|
||||
|
||||
%.opic : %.S
|
||||
$(CC) $(CFLAGS) -fPIC -o $@ -c $<
|
||||
|
||||
%.opic : %.c
|
||||
$(CC) $(CFLAGS) -fPIC -o $@ -c $<
|
||||
|
||||
m5: $(OBJS)
|
||||
$(CC) -o $@ $(OBJS) -no-pie
|
||||
|
||||
m5op_x86.opic: m5op_x86.S
|
||||
$(CC) $(CFLAGS) -DM5OP_PIC -fPIC -o $@ -c $<
|
||||
|
||||
lua_gem5Op.opic: lua_gem5Op.c
|
||||
$(CC) $(CFLAGS) $(LUA_HEADER_INCLUDE) -fPIC -o $@ -c $<
|
||||
|
||||
gem5OpLua.so: $(LUA_OBJS)
|
||||
$(CC) $(CFLAGS) -fPIC $^ -o $@ -shared
|
||||
|
||||
clean:
|
||||
rm -f *.o *.opic m5 gem5OpLua.so
|
||||
env['VARIANT'] = 'sparc'
|
||||
get_variant_opt('CROSS_COMPILE', 'sparc64-linux-gnu-')
|
||||
env.Append(CFLAGS='-m64')
|
||||
@@ -1,17 +1,4 @@
|
||||
# Copyright (c) 2010 ARM Limited
|
||||
# All rights reserved.
|
||||
#
|
||||
# The license below extends only to copyright in the software and shall
|
||||
# not be construed as granting a license to any other intellectual
|
||||
# property including but not limited to intellectual property relating
|
||||
# to a hardware implementation of the functionality of the software
|
||||
# licensed hereunder. You may use the software subject to the license
|
||||
# terms below provided that you ensure that this notice is replicated
|
||||
# unmodified and in its entirety in all distributions of the software,
|
||||
# modified or unmodified, in source code or in binary form.
|
||||
#
|
||||
# Copyright (c) 2005-2006 The Regents of The University of Michigan
|
||||
# All rights reserved.
|
||||
# Copyright 2020 Google, Inc.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are
|
||||
@@ -36,36 +23,8 @@
|
||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
### If we are not compiling on an arm, we must use cross tools ###
|
||||
ifneq ($(shell uname -m), arm)
|
||||
CROSS_COMPILE?=arm-none-linux-gnueabi-
|
||||
endif
|
||||
CC=$(CROSS_COMPILE)gcc
|
||||
AS=$(CROSS_COMPILE)as
|
||||
LD=$(CROSS_COMPILE)ld
|
||||
AR=$(CROSS_COMPILE)ar
|
||||
Import('*')
|
||||
|
||||
#CFLAGS=-O2 -march=armv7 -mthumb -I../../include
|
||||
CFLAGS=-O2 -mthumb -I../../../include
|
||||
LDFLAGS=-L. -lm5
|
||||
|
||||
OBJS=m5.o
|
||||
LIB_OBJS=m5op_arm.o m5_mmap.o
|
||||
|
||||
all: libm5.a m5
|
||||
|
||||
%.o: %.S
|
||||
$(CC) $(CFLAGS) -o $@ -c $<
|
||||
|
||||
%.o: %.c
|
||||
$(CC) $(CFLAGS) -o $@ -c $<
|
||||
|
||||
m5: $(OBJS) libm5.a
|
||||
$(CC) -o $@ -march=armv7 -mthumb $(OBJS) $(LDFLAGS)
|
||||
|
||||
libm5.a: $(LIB_OBJS)
|
||||
$(AR) rcs $@ $^
|
||||
|
||||
|
||||
clean:
|
||||
rm -f *.o m5 libm5.a
|
||||
env['VARIANT'] = 'thumb'
|
||||
get_variant_opt('CROSS_COMPILE', 'arm-linux-gnueabihf-')
|
||||
env.Append(CFLAGS=[ '-mthumb', '-march=armv7' ])
|
||||
@@ -38,9 +38,7 @@
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
.syntax unified
|
||||
#ifdef __thumb__
|
||||
.thumb
|
||||
#endif
|
||||
|
||||
#include <gem5/asm/generic/m5ops.h>
|
||||
|
||||
@@ -50,12 +48,8 @@
|
||||
.align 2
|
||||
.globl \name
|
||||
\name:
|
||||
#ifdef __thumb__
|
||||
.short 0xEE00 | \func
|
||||
.short 0x0110
|
||||
#else
|
||||
.long 0xEE000110 | (\func << 16)
|
||||
#endif
|
||||
mov pc,lr
|
||||
.endm
|
||||
|
||||
31
util/m5/src/x86/SConsopts
Normal file
31
util/m5/src/x86/SConsopts
Normal file
@@ -0,0 +1,31 @@
|
||||
# Copyright 2020 Google, Inc.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are
|
||||
# met: redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer;
|
||||
# redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution;
|
||||
# neither the name of the copyright holders nor the names of its
|
||||
# contributors may be used to endorse or promote products derived from
|
||||
# this software without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
Import('*')
|
||||
|
||||
env['VARIANT'] = 'x86'
|
||||
get_variant_opt('CROSS_COMPILE', '')
|
||||
env.Append(CFLAGS='-DM5OP_ADDR=0xFFFF0000')
|
||||
env.Append(ASFLAGS='-DM5OP_ADDR=0xFFFF0000')
|
||||
Reference in New Issue
Block a user