#!/bin/sh

options="-fthread-jumps -fcrossjumping -foptimize-sibling-calls"
options="${options} -fcse-follow-jumps -fcse-skip-blocks -fgcse -fgcse-lm"
options="${options} -fexpensive-optimizations -fstrength-reduce"
options="${options} -frerun-cse-after-loop -frerun-loop-opt -fcaller-saves"
options="${options} -fforce-mem -fpeephole2 -fschedule-insns -fschedule-insns2"
options="${options} -fsched-interblock -fsched-spec -fregmove -fstrict-aliasing"
options="${options} -fdelete-null-pointer-checks -freorder-blocks"
options="${options} -freorder-functions -funit-at-a-time -falign-functions"
options="${options} -falign-jumps -falign-loops  -falign-labels -ftree-pre"

logfile=${PWD}/util-linux-crash.log;
> ${logfile};

for opt in ${options}; do
	echo "Compiling with -O ${opt} optimisation" >> ${logfile};
	rm -rf util-linux-2.12q;
	tar xjvf util-linux-2.12q.tar.bz2;
	cd util-linux-2.12q;

	sed -i 's@etc/adjtime@var/lib/hwclock/adjtime@g' hwclock/hwclock.c;
	mkdir -p /var/lib/hwclock;

	patch -Np1 -i ../util-linux-2.12q-cramfs-1.patch;
	sed -i -e "s/-O2/-O ${opt}/" -e 's/"-s"/""/' configure;
	sed -i -e 's/-fomit-frame-pointer//' -e 's/-O2//' MCONFIG;
	./configure;
	make HAVE_KILL=yes HAVE_SLN=yes;
	fdisk/cfdisk -Pt /dev/hda >> ${logfile} 2>&1;
	echo -e "cfdisk with -O ${opt} exited with status $?\n" >> ${logfile} 2>&1;
	cd ../;
done;
