OSDN Git Service

Daily bump.
[pf3gnuchains/gcc-fork.git] / libgo / merge.sh
old mode 100644 (file)
new mode 100755 (executable)
index 3696783..fbc7118
@@ -25,22 +25,27 @@ if ! test -f MERGE; then
   exit 1
 fi
 
-if test $# -ne 1; then
-  echo 1>&2 "merge.sh: Usage: merge.sh mercurial-repository"
+rev=weekly
+case $# in
+1) ;;
+2) rev=$2 ;;
+*)
+  echo 1>&2 "merge.sh: Usage: merge.sh mercurial-repository [revision]"
   exit 1
-fi
+  ;;
+esac
 
 repository=$1
 
-merge_rev=`sed 1q MERGE`
+old_rev=`sed 1q MERGE`
 
 rm -rf ${OLDDIR}
-hg clone -r ${merge_rev} ${repository} ${OLDDIR}
+hg clone -r ${old_rev} ${repository} ${OLDDIR}
 
 rm -rf ${NEWDIR}
-hg clone ${repository} ${NEWDIR}
+hg clone -u ${rev} ${repository} ${NEWDIR}
 
-new_rev=`cd ${NEWDIR} && hg log | sed 1q | sed -e 's/.*://'`
+new_rev=`cd ${NEWDIR} && hg log -r ${rev} | sed 1q | sed -e 's/.*://'`
 
 merge() {
   name=$1
@@ -116,10 +121,22 @@ merge() {
   fi
 }
 
-(cd ${NEWDIR}/src/pkg && find . -name '*.go' -print) | while read f; do
-  if test `dirname $f` = "./syscall"; then
-    continue
+merge_c() {
+  from=$1
+  to=$2
+  oldfile=${OLDDIR}/src/pkg/runtime/$from
+  if test -f ${oldfile}; then
+    sed -e 's/·/_/g' < ${oldfile} > ${oldfile}.tmp
+    oldfile=${oldfile}.tmp
+    newfile=${NEWDIR}/src/pkg/runtime/$from
+    sed -e 's/·/_/g' < ${newfile} > ${newfile}.tmp
+    newfile=${newfile}.tmp
+    libgofile=runtime/$to
+    merge $from ${oldfile} ${newfile} ${libgofile}
   fi
+}
+
+(cd ${NEWDIR}/src/pkg && find . -name '*.go' -print) | while read f; do
   oldfile=${OLDDIR}/src/pkg/$f
   newfile=${NEWDIR}/src/pkg/$f
   libgofile=go/$f
@@ -146,14 +163,14 @@ done
   done
 done
 
-runtime="goc2c.c mcache.c mcentral.c mfinal.c mfixalloc.c mgc0.c mheap.c msize.c malloc.h malloc.goc mprof.goc"
+runtime="chan.c cpuprof.c lock_futex.c lock_sema.c mcache.c mcentral.c mfinal.c mfixalloc.c mgc0.c mheap.c msize.c print.c proc.c runtime.c runtime.h signal_unix.c malloc.h malloc.goc mprof.goc runtime1.goc sema.goc sigqueue.goc string.goc time.goc"
 for f in $runtime; do
-  oldfile=${OLDDIR}/src/pkg/runtime/$f
-  newfile=${NEWDIR}/src/pkg/runtime/$f
-  libgofile=runtime/$f
-  merge $f ${oldfile} ${newfile} ${libgofile}
+  merge_c $f $f
 done
 
+merge_c thread_linux.c thread-linux.c
+merge_c mem_linux.c mem.c
+
 (cd ${OLDDIR}/src/pkg && find . -name '*.go' -print) | while read f; do
   oldfile=${OLDDIR}/src/pkg/$f
   newfile=${NEWDIR}/src/pkg/$f