[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Three things
I've been tracking just about all the patches and RCSing them into my source
tree. Right now I only have Julian's tosfs stuff and Steve's load-average
stuff left to merge in. (And perhaps to back out entropy's last job control
change?)
[re: cross-compiler, sym-ld - you always need to use sym-ld if you plan to
debug with gdb. Not just for little-endian systems...]
I am unfortunately too busy trying to get other code to work at this moment to
build a new gcc setup. I'm still running 2.3.3...
btw, since I don't know of a program that directly takes diffs into an RCS
control file, here are two csh scripts I've been using for a while to manage
patches... The first, "patchit" runs patch and then checks the affected files
into RCS. The second, "checkin" just looks for patched files and checks them
in. I patched my copy of patch to name files ".O" and ".R" instead of ".orig"
and ".rej" on the ST, since they have a better chance of staying intact on a
short-name filesystem. [You've got to be using MinixFS to keep case preserved,
eh?] The scripts work fine with tcsh on the ST, [originally used on a Sun...]
though I source them in that case, dunno about actually trying to execute them.
Too bad neither of these scripts checks for changed files in subdirectories.
#!/bin/csh -f
# Patchit - apply patches and check into RCS. -- hyc, 3-1-93
if ($#argv < 1) then
echo "usage: $argv[0] patchfile [patch-options]"
exit 1
endif
set nonomatch
if (-e *.orig) then
echo "You still have to check in some old files\!"
echo *.orig
exit 1
endif
if (! -e RCS) then
echo "Creating RCS directory in $cwd"
mkdir RCS
endif
if (! -e Text) then
echo "Enter one line message for RCS initial description:"
set i=$<
echo $i > Text
endif
echo -n "Enter one-line patch identifier: "
set msg=$<
if ($#argv == 1) then
patch < $argv[1]
else
patch $argv[2-] < $argv[1]
endif
foreach i (*.orig)
set j=$i:r
if (! -e RCS/$j,v) then
mv $j $j.new
mv $i $j
ci -tText $j
rcs -l $j
mv $j.new $j
endif
ci -l -m"$msg" $j
if (-e $i) rm $i
end
if (-e *.rej) then
unset nonomatch
echo "Got some problems, check these out:"
ls -l *.rej
exit 1
endif
exit 0
#!/bin/csh -f
# checkin - check patched files into RCS. -- hyc, 9-12-93
if (! -e RCS) then
echo "Creating RCS directory in $cwd"
mkdir RCS
endif
if (! -e Text) then
echo "Enter one line message for RCS initial description:"
set i=$<
echo $i > Text
endif
echo -n "Enter one-line patch description: "
set msg=$<
foreach i (*.orig)
set j=$i:r
if (! -e RCS/$j,v) then
mv $j $j.new
mv $i $j
ci -tText $j
rcs -l $j
mv $j.new $j
endif
ci -l -m"$msg" $j
if (-e $i) rm $i
end
####
I suppose you might want to be more verbose than just the single-line messages
I used. I just run it and say, for initial description, e.g., "mint source"
and e.g. "Optimizations from Andreas Schwab" and in it goes... (Mebbe it would
be a good idea to also assign symbolic names to a set of patched files?)
Enjoy...