blob: 78755dd4db716ac178488b320a0260338b0d9c24 [file] [log] [blame]
#!/bin/sh
set -e
#Plan 9 source can be converted for akaros via a set of scripts.
#This is a WIP.
# At this point, we take it just so far and do the rest
# by hand. Cocci has its issues, and we're not here to debug
# and fix them all. Also, we may create some post-conversion
# scripts as well. We'll see.
#
#We preserve the waserror/poperror style, which adds complications
#but leaves the source relatively clean.
#
#To convert plan 9 source, we have to do several things.
#We use spatch, the semantic patch tool. BUT, that tool can be
#painful for some stuff, so we also use sed. And in some cases
#we clean up things that we do with spatch with a sed pass.
#Ugly but effective. Some scripts are idempotent, so we mark
#them as such.
#
# waserror/poperror fixing, via script/spatch/waserror.cocci
# N.B. Need r18 or later.
spatch --sp-file scripts/spatch/waserror.cocci --in-place $1
# General Plan 9 fixing, via script/spatch/waserror.cocci
spatch --sp-file scripts/spatch/plan9.cocci --in-place $1
spatch --sp-file scripts/spatch/scalar.cocci --in-place $1
spatch --sp-file scripts/spatch/typedef.cocci --in-place $1
spatch --sp-file scripts/spatch/locks.cocci --in-place $1
spatch --sp-file scripts/spatch/rendez.cocci --in-place $1
spatch --sp-file scripts/spatch/kproc.cocci --in-place $1
# include fixing. Idempotent.
sh scripts/fixincludes $1
# Scalars. Idempotent.
sh scripts/scalar $1
# remove pragmas. Idempotent.
sed -i '/^#pragma/d' $1
# Stuff we might want to think about later. Idempotent
sh scripts/temporary_hack $1
# malloc. Idempotent.
spatch --sp-file scripts/spatch/malloc.cocci --in-place $1
# type names, via scripts/plan9. NOT idempotent.
# in fact, we almost certainly don't want it.
sh scripts/plan9 $1
# kref. Idempotent.
spatch --sp-file scripts/spatch/kref.cocci --in-place $1