libffi: Add HOWTO_MERGE, autogen.sh and merge.sh
Add scripts for syncing with libffi upstream: 1. Clone libffi repo. 2. Checkout the specific commit. 3. Remove the unused files. 4. Add new files and remove old files if needed. * HOWTO_MERGE: New file. * autogen.sh: Likewise. * merge.sh: Likewise.
This commit is contained in:
parent
7113f1b54d
commit
d738405e7f
13
libffi/HOWTO_MERGE
Normal file
13
libffi/HOWTO_MERGE
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
In general, merging process should not be very difficult, but we need to
|
||||||
|
track GCC-specific patches carefully. Here is a general list of actions
|
||||||
|
required to perform the merge:
|
||||||
|
|
||||||
|
* Checkout recent GCC tree.
|
||||||
|
* Run merge.sh script from the libffi directory.
|
||||||
|
* Add new files and remove old files if needed.
|
||||||
|
* Apply all needed GCC-specific patches to libffi (note that some of
|
||||||
|
them might be already included to upstream). The list of these patches
|
||||||
|
is stored into LOCAL_PATCHES file. May need to re-run autogen.sh to
|
||||||
|
regenerate configure and Makefile.in files.
|
||||||
|
* Send your patches for review to GCC Patches Mailing List (gcc-patches@gcc.gnu.org).
|
||||||
|
* Update LOCAL_PATCHES file when you've committed the whole patch set with new revisions numbers.
|
11
libffi/autogen.sh
Executable file
11
libffi/autogen.sh
Executable file
@ -0,0 +1,11 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#exec autoreconf -v -i
|
||||||
|
|
||||||
|
rm -rf autom4te.cache
|
||||||
|
aclocal -I .. -I ../config
|
||||||
|
autoheader -I .. -I ../config
|
||||||
|
autoconf
|
||||||
|
automake --foreign --add-missing --copy Makefile
|
||||||
|
automake --foreign include/Makefile
|
||||||
|
automake --foreign man/Makefile
|
||||||
|
automake --foreign testsuite/Makefile
|
51
libffi/merge.sh
Executable file
51
libffi/merge.sh
Executable file
@ -0,0 +1,51 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# FIXME: do we need a license (or whatever else) header here?
|
||||||
|
|
||||||
|
# This script merges libffi sources from upstream.
|
||||||
|
|
||||||
|
# Default to the tip of master branch.
|
||||||
|
commit=${1-master}
|
||||||
|
|
||||||
|
fatal() {
|
||||||
|
echo "$1"
|
||||||
|
exit 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
get_upstream() {
|
||||||
|
rm -rf upstream
|
||||||
|
git clone https://github.com/libffi/libffi.git upstream
|
||||||
|
pushd upstream
|
||||||
|
git checkout $commit || fatal "Failed to checkout $commit"
|
||||||
|
popd
|
||||||
|
}
|
||||||
|
|
||||||
|
get_current_rev() {
|
||||||
|
cd upstream
|
||||||
|
git rev-parse HEAD
|
||||||
|
}
|
||||||
|
|
||||||
|
pwd | grep 'libffi$' || \
|
||||||
|
fatal "Run this script from the libffi directory"
|
||||||
|
get_upstream
|
||||||
|
CUR_REV=$(get_current_rev)
|
||||||
|
echo Current upstream revision: $CUR_REV
|
||||||
|
|
||||||
|
# Remove the unused files.
|
||||||
|
pushd upstream
|
||||||
|
rm -rf ChangeLog.old .appveyor* .ci .github .gitignore .travis* \
|
||||||
|
config.guess config.sub libtool-ldflags m4 make_sunver.pl \
|
||||||
|
msvc_build
|
||||||
|
rm -rf .git autogen.sh
|
||||||
|
cp -a . ..
|
||||||
|
popd
|
||||||
|
|
||||||
|
rm -rf upstream
|
||||||
|
|
||||||
|
# Update the MERGE file.
|
||||||
|
cat << EOF > MERGE
|
||||||
|
$CUR_REV
|
||||||
|
|
||||||
|
The first line of this file holds the git revision number of the
|
||||||
|
last merge done from the master library sources.
|
||||||
|
EOF
|
Loading…
Reference in New Issue
Block a user