Skip to content

Commit

Permalink
Allow the processor simulator plugins to build on linux64ARMv8 [ci skip]
Browse files Browse the repository at this point in the history
  • Loading branch information
eliotmiranda committed Aug 11, 2021
1 parent cd21eb0 commit 40b4d2a
Show file tree
Hide file tree
Showing 19 changed files with 1,351 additions and 713 deletions.
56 changes: 56 additions & 0 deletions build.linux64ARMv8/bochsx64/conf.COG
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
#!/bin/sh

# Bochs x64 simulator for the BochsX64Alien plugin.
# this sets up the x64 compile for Cog on Mac OS X. Disable as much inessential
# stuff as possible leaving only the cpu/fpu & memory interface

# build cpu/libcpu.a disasm/libdisasm.a fpu/libfpu.a using
# $ ./conf.COG
# $ ../../processors/IA32/bochs/makeem

set echo
# CFLAGS="-pipe -O3 -fomit-frame-pointer -finline-functions -falign-loops=16 -falign-jumps=16 -falign-functions=16 -falign-labels=16 -falign-loops-max-skip=15 -falign-jumps-max-skip=15 -fprefetch-loop-arrays $CFLAGS"
CFLAGS="-Dlongjmp=_longjmp -Dsetjmp=_setjmp $CFLAGS"
CFLAGS="-pipe -O3 -fomit-frame-pointer -finline-functions $CFLAGS"
CFLAGS="-g $CFLAGS"
CPPFLAGS=""
CXXFLAGS="$CFLAGS"

export CFLAGS
export CPATH
export CPPFLAGS
export CXXFLAGS
export LDFLAGS

../../processors/IA32/bochs/configure \
--enable-Cog \
--enable-cpu-level=6 \
--enable-sse=2 \
--enable-assert-checks \
--with-nogui \
--enable-x86-64 \
--enable-global-pages \
--disable-mtrr \
--disable-sb16 \
--disable-ne2000 \
--disable-pci \
--disable-acpi \
--disable-apic \
--disable-clgd54xx \
--disable-usb \
--disable-plugins \
${CONFIGURE_ARGS}

# apic == Advanced programmable Interrupt Controller
# acpi == Advanced Configuration and Power Interface
# pci == Peripheral Component Interconnect local bus
# clgd54xx == Cirrus Logic GD54xx video card

# avoid conflict with squeak unix build's config.h
echo cp config.h bochsconfig.h
cp config.h bochsconfig.h

rm -f THIS_IS_A_*
echo >THIS_IS_A_FAST_CONFIG

echo "and don't forget to run ./makeem"
55 changes: 55 additions & 0 deletions build.linux64ARMv8/bochsx64/conf.COG.dbg
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
#!/bin/sh

# Bochs x64 simulator for the BochsX64Alien plugin.
# this sets up the x64 compile for Cog on Mac OS X. Disable as much inessential
# stuff as possible leaving only the cpu/fpu & memory interface

# build cpu/libcpu.a disasm/libdisasm.a fpu/libfpu.a using
# $ ./conf.COG.dbg
# $ ../../processors/IA32/bochs/makeem

set echo
CFLAGS="-Dlongjmp=_longjmp -Dsetjmp=_setjmp $CFLAGS"
CFLAGS="-pipe -O0 $CFLAGS"
CFLAGS="-g3 $CFLAGS"
CPPFLAGS=""
CXXFLAGS="$CFLAGS"

export CFLAGS
export CPATH
export CPPFLAGS
export CXXFLAGS
export LDFLAGS

../../processors/IA32/bochs/configure \
--enable-Cog \
--enable-cpu-level=6 \
--enable-sse=2 \
--enable-assert-checks \
--with-nogui \
--enable-x86-64 \
--enable-global-pages \
--disable-mtrr \
--disable-sb16 \
--disable-ne2000 \
--disable-pci \
--disable-acpi \
--disable-apic \
--disable-clgd54xx \
--disable-usb \
--disable-plugins \
${CONFIGURE_ARGS}

# apic == Advanced programmable Interrupt Controller
# acpi == Advanced Configuration and Power Interface
# pci == Peripheral Component Interconnect local bus
# clgd54xx == Cirrus Logic GD54xx video card

# avoid conflict with squeak unix build's config.h
echo cp config.h bochsconfig.h
cp config.h bochsconfig.h

rm -f THIS_IS_A_*
echo >THIS_IS_A_DEBUG_CONFIG

echo "and don't forget to run ./makeem"
3 changes: 3 additions & 0 deletions build.linux64ARMv8/bochsx64/exploration/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
include ../../../processors/IA32/bochs/explorationx64/Makefile.64

CFLAGS+=-Wno-invalid-offsetof
7 changes: 7 additions & 0 deletions build.linux64ARMv8/bochsx64/makeclean
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#!/bin/sh
for t in *; do
case $t in
conf.COG*|makeclean|makeem) ;;
*) rm -rf $t
esac
done
4 changes: 4 additions & 0 deletions build.linux64ARMv8/bochsx64/makeem
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#!/usr/bin/env bash
set -e
test -f config.h || ./conf.COG
exec ../../processors/IA32/bochs/makeem
58 changes: 58 additions & 0 deletions build.linux64ARMv8/bochsx86/conf.COG
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
#!/bin/sh

# Bochs x86 simulator for the BochsIA32Alien plugin.
# this sets up the x86 compile for Cog on Mac OS X. Disable as much inessential
# stuff as possible leaving only the cpu/fpu & memory interface

# build cpu/libcpu.a disasm/libdisasm.a fpu/libfpu.a using
# $ ./conf.COG
# $ ../../processors/IA32/bochs/makeem

set echo
# CFLAGS="-pipe -O3 -fomit-frame-pointer -finline-functions -falign-loops=16 -falign-jumps=16 -falign-functions=16 -falign-labels=16 -falign-loops-max-skip=15 -falign-jumps-max-skip=15 -fprefetch-loop-arrays $CFLAGS"
CFLAGS="-Dlongjmp=_longjmp -Dsetjmp=_setjmp $CFLAGS"
CFLAGS="-pipe -O3 -fomit-frame-pointer -finline-functions $CFLAGS"
CFLAGS="-g $CFLAGS"
CPPFLAGS=""
CXXFLAGS="$CFLAGS"

export CFLAGS
export CPATH
export CPPFLAGS
export CXXFLAGS
export LDFLAGS

../../processors/IA32/bochs/configure \
--enable-Cog \
--enable-cpu-level=6 \
--enable-sse=2 \
--enable-assert-checks \
--with-nogui \
--disable-x86-64 \
--disable-pae \
--disable-large-pages \
--disable-global-pages \
--disable-mtrr \
--disable-sb16 \
--disable-ne2000 \
--disable-pci \
--disable-acpi \
--disable-apic \
--disable-clgd54xx \
--disable-usb \
--disable-plugins \
${CONFIGURE_ARGS}

# apic == Advanced programmable Interrupt Controller
# acpi == Advanced Configuration and Power Interface
# pci == Peripheral Component Interconnect local bus
# clgd54xx == Cirrus Logic GD54xx video card

# avoid conflict with squeak unix build's config.h
echo cp config.h bochsconfig.h
cp config.h bochsconfig.h

rm -f THIS_IS_A_*
echo >THIS_IS_A_FAST_CONFIG

echo "and don't forget to run ./makeem"
58 changes: 58 additions & 0 deletions build.linux64ARMv8/bochsx86/conf.COG.dbg
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
#!/bin/sh

# Bochs x86 simulator for the BochsIA32Alien plugin.
# this sets up the x86 compile for Cog on Mac OS X. Disable as much inessential
# stuff as possible leaving only the cpu/fpu & memory interface

# build cpu/libcpu.a disasm/libdisasm.a fpu/libfpu.a using
# $ ./conf.COG
# $ ../../processors/IA32/bochs/makeem

set echo
# CFLAGS="-pipe -O3 -fomit-frame-pointer -finline-functions -falign-loops=16 -falign-jumps=16 -falign-functions=16 -falign-labels=16 -falign-loops-max-skip=15 -falign-jumps-max-skip=15 -fprefetch-loop-arrays $CFLAGS"
CFLAGS="-Dlongjmp=_longjmp -Dsetjmp=_setjmp $CFLAGS"
CFLAGS="-pipe -O0 $CFLAGS"
CFLAGS="-g3 $CFLAGS"
CPPFLAGS=""
CXXFLAGS="$CFLAGS"

export CFLAGS
export CPATH
export CPPFLAGS
export CXXFLAGS
export LDFLAGS

../../processors/IA32/bochs/configure \
--enable-Cog \
--enable-cpu-level=6 \
--enable-sse=2 \
--enable-assert-checks \
--with-nogui \
--disable-x86-64 \
--disable-pae \
--disable-large-pages \
--disable-global-pages \
--disable-mtrr \
--disable-sb16 \
--disable-ne2000 \
--disable-pci \
--disable-acpi \
--disable-apic \
--disable-clgd54xx \
--disable-usb \
--disable-plugins \
${CONFIGURE_ARGS}

# apic == Advanced programmable Interrupt Controller
# acpi == Advanced Configuration and Power Interface
# pci == Peripheral Component Interconnect local bus
# clgd54xx == Cirrus Logic GD54xx video card

# avoid conflict with squeak unix build's config.h
echo cp config.h bochsconfig.h
cp config.h bochsconfig.h

rm -f THIS_IS_A_*
echo >THIS_IS_A_DEBUG_CONFIG

echo "and don't forget to run ./makeem"
1 change: 1 addition & 0 deletions build.linux64ARMv8/bochsx86/exploration/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
include ../../../processors/IA32/bochs/exploration/Makefile.64
7 changes: 7 additions & 0 deletions build.linux64ARMv8/bochsx86/makeclean
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#!/bin/sh
for t in *; do
case $t in
conf.COG*|makeclean|makeem) ;;
*) rm -rf $t
esac
done
4 changes: 4 additions & 0 deletions build.linux64ARMv8/bochsx86/makeem
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#!/usr/bin/env bash
set -e
test -f config.h || ./conf.COG
exec ../../processors/IA32/bochs/makeem
4 changes: 4 additions & 0 deletions build.linux64ARMv8/gdbarm32/clean
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#!/bin/sh
rm -rf bfd gdb libiberty opcodes sim
rm exploration/print*64
rm -i exploration/*.st
13 changes: 13 additions & 0 deletions build.linux64ARMv8/gdbarm32/conf.COG
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#!/bin/sh
S=../../../processors/ARM/gdb-8.3.1
export CFLAGS="-g -Os -m64 -DCOG=1 -DWORDS_BIGENDIAN=0"
export CFLAGS="-g3 -O0 -m64 -DCOG=1 -DWORDS_BIGENDIAN=0"
CONFFLAGS='--target=arm-apple-darwin CC=clang CXX=clang++ --with-system-zlib=yes'
mkdir -p bfd libiberty opcodes sim/common sim/arm
for d in bfd libiberty opcodes; do
(cd $d; $S/$d/configure COG=1 CFLAGS="$CFLAGS" $CONFFLAGS)
done
for d in sim/common sim/arm; do
(cd $d;
../$S/$d/configure COG=1 CFLAGS="$CFLAGS" $CONFFLAGS)
done
6 changes: 6 additions & 0 deletions build.linux64ARMv8/gdbarm32/makeem
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#!/bin/sh -e
test -d bfd || ./conf.COG
for d in bfd libiberty opcodes; do
(cd ./$d; make SUBDIRS="" COG=1)
done
(cd ./sim/arm; make version.c; test -f version.c-tmp && mv version.c-tmp version.c; make COG=1 libsim.a)
4 changes: 4 additions & 0 deletions build.linux64ARMv8/gdbarm64/clean
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#!/bin/sh
rm -rf bfd gdb libiberty opcodes sim
rm exploration/print*64
rm -i exploration/*.st
14 changes: 14 additions & 0 deletions build.linux64ARMv8/gdbarm64/conf.COG
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#!/bin/sh
S=../../../processors/ARM/gdb-8.3.1
export CFLAGS="-g -O2 -m64 -DCOG=1 -DWORDS_BIGENDIAN=0"
#export CFLAGS="-g3 -O0 -m64 -DCOG=1 -DWORDS_BIGENDIAN=0"
CONFFLAGS='--target=aarch64-apple-darwin CC=clang CXX=clang++ --with-system-zlib=yes'
mkdir -p bfd gdb libiberty opcodes sim/common sim/aarch64
for d in bfd gdb libiberty opcodes; do
(cd $d; $S/$d/configure COG=1 CFLAGS="$CFLAGS" $CONFFLAGS)
done
for d in sim/common sim/aarch64; do
(cd $d;
../$S/$d/configure COG=1 CFLAGS="$CFLAGS" $CONFFLAGS \
--disable-sim-trace)
done
6 changes: 6 additions & 0 deletions build.linux64ARMv8/gdbarm64/makeem
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#!/bin/sh -e
test -d bfd || ./conf.COG
(cd ./bfd; make COG=1 bfdver.h targmatch.h libbfd.a)
(cd ./libiberty; make COG=1 libiberty.a)
(cd ./opcodes; make COG=1 libopcodes.a)
(cd ./sim/aarch64; make version.c; test -f version.c-tmp && mv version.c-tmp version.c; make COG=1 libsim.a)
1 change: 1 addition & 0 deletions platforms/Cross/plugins/ProcessorSimulatorPlugin.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
*/

#include <sys/types.h>
#include <stdint.h>

#define NoError 0
#define ExecutionError 1
Expand Down
Loading

0 comments on commit 40b4d2a

Please sign in to comment.