#!/bin/bash

results_dir=/tmp/ctfdwdiff

diff_tool() {
	local tool=$1
	local dwarf_options=$2
	local ctf_options=$3
	local obj=$4

	diff=$results_dir/$obj.$tool.diff
	ctf=$results_dir/$obj.$tool.ctf.c
	dwarf=$results_dir/$obj.$tool.dwarf.c
	$tool -F ctf   $ctf_options   $obj > $ctf
	$tool -F dwarf $dwarf_options $obj > $dwarf
	diff -up $dwarf $ctf > $diff
	if [ -s $diff ] ; then
		[ $# -gt 4 ] && vim $diff
		exit 0
	else
		rm -f $diff $ctf $dwarf
	fi
}

diff_one() {
	local obj=$1
	diff_tool "pahole" "--flat_arrays --show_private_classes --fixup_silly_bitfields" " " $obj $2
	diff_tool "pfunct" "-V --no_parm_names" "-V" $obj $2
}


diff_dir() {
	find . -type d | \
	while read dir ; do
		cd $dir
		ls *.o 2> /dev/null |
		while read obj ; do
			ncus=$(readelf -wi $obj | grep DW_TAG_compile_unit | wc -l)
			if [ $ncus -ne 1 ] ; then
				continue
			fi
			echo $obj
			pahole -Z $obj
			diff_one $obj $1
		done
		cd - > /dev/null
	done
}

rm -rf $results_dir
mkdir $results_dir

if [ $# -lt 2 ] ; then
	diff_dir
else
	diff_one $*
fi
