forked from llvm-mirror/dragonegg
-
Notifications
You must be signed in to change notification settings - Fork 1
Debug
Leslie Zhai edited this page Sep 5, 2017
·
1 revision
#!/bin/bash
make clean
CC=$1
if [[ -z "$CC" ]]; then
CC=gcc
fi
$CC --version
LC=$2
if [[ -z "$LC" ]]; then
LC=llvm-config
fi
echo "LLVM version:" $($LC --version)
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$($LC --libdir)
LANG=en_US.UTF-8 GCC=$CC LLVM_CONFIG=$LC ENABLE_LLVM_PLUGINS=1 DRAGONEGG_DEBUG=1 make -j4 &> /tmp/build.log
for example:
./debug-build arm-linux-gnu-gcc /opt/llvm-svn/bin/llvm-config
#!/bin/bash
rm -f *.s *.out
CC=$1
if [[ -z "$CC" ]]; then
CC=gcc
fi
$CC --version
CFLAGS="-Wall"
CPATH=
LIBPATH=
LIB=
if [ $CC == "arm-linux-gnu-gcc" ]; then
CPATH="-I/usr/arm-linux-gnu/include"
LIBPATH="-Wl,-rpath-link=/usr/arm-linux-gnu/lib -L/usr/arm-linux-gnu/lib"
LIB="-nostdlib /usr/arm-linux-gnu/lib/crt1.o /usr/arm-linux-gnu/lib/crti.o /usr/arm-linux-gnu/lib/crtn.o -lc -lgcc -ldl"
fi
LC=$2
if [[ -z "$LC" ]]; then
LC=llvm-config
fi
echo "LLVM version:" $($LC --version)
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$($LC --libdir)
SRC=$3
if [[ -z "$SRC" ]]; then
SRC=test/validator/c/hello.c
fi
ASM=$4
if [[ -z "$ASM" ]]; then
$CC -fplugin=./dragonegg.so \
$CFLAGS \
$CPATH \
-fplugin-arg-dragonegg-debug-pass-arguments \
-ftime-report \
-fverbose-asm \
-fplugin-arg-dragonegg-enable-gcc-optzns \
-fplugin-arg-dragonegg-emit-ir \
-S \
$SRC \
-wrapper gdb,--args
if [ $CC == "arm-linux-gnu-gcc" ]; then
$CC $CFLAGS $CPATH -S $SRC -o hello-$CC.s
$CC -o hello-$CC.out hello-$CC.s $LIBPATH $LIB
qemu-arm -L /usr/arm-linux-gnu ./hello-$CC.out
fi
else
$CC -fplugin=./dragonegg.so \
$CFLAGS \
$CPATH \
-fplugin-arg-dragonegg-save-gcc-output \
-fplugin-arg-dragonegg-debug-pass-arguments \
-fverbose-asm \
-ftime-report \
-fplugin-arg-dragonegg-enable-gcc-optzns \
$SRC \
$LIBPATH \
$LIB
fi
for example: ./debug arm-linux-gnu-gcc /opt/llvm-svn/bin/llvm-config