]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blobdiff - src-release.sh
Adjust gdb_continue_to_end for Windows
[thirdparty/binutils-gdb.git] / src-release.sh
index fe5dab5fb364618c8c6e33d3ee371e19ddd1abaa..169135856a250fb7f98d42f9b9a154e3d37cf909 100755 (executable)
@@ -1,5 +1,5 @@
 #!/usr/bin/env bash
-#   Copyright (C) 1990-2018 Free Software Foundation
+#   Copyright (C) 1990-2020 Free Software Foundation
 #
 # This file is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -26,10 +26,11 @@ BZIPPROG=bzip2
 GZIPPROG=gzip
 LZIPPROG=lzip
 XZPROG=xz
-MD5PROG=md5sum
+SHA256PROG=sha256sum
 MAKE=make
 CC=gcc
 CXX=g++
+release_date=
 
 # Default to avoid splitting info files by setting the threshold high.
 MAKEINFOFLAGS=--split-size=5000000
@@ -38,15 +39,14 @@ MAKEINFOFLAGS=--split-size=5000000
 # Support for building net releases
 
 # Files in root used in any net release.
-DEVO_SUPPORT="README Makefile.in configure configure.ac \
-       config.guess config.sub config move-if-change \
-       COPYING COPYING.LIB install-sh config-ml.in symlink-tree \
-       mkinstalldirs ltmain.sh missing ylwrap \
-       libtool.m4 ltsugar.m4 ltversion.m4 ltoptions.m4 \
-       Makefile.def Makefile.tpl src-release.sh config.rpath \
-       ChangeLog MAINTAINERS README-maintainer-mode \
-       lt~obsolete.m4 ltgcc.m4 depcomp mkdep compile \
-       COPYING3 COPYING3.LIB test-driver ar-lib"
+DEVO_SUPPORT="ar-lib ChangeLog compile config config-ml.in config.guess \
+       config.rpath config.sub configure configure.ac COPYING COPYING.LIB \
+       COPYING3 COPYING3.LIB depcomp install-sh libtool.m4 ltgcc.m4 \
+       ltmain.sh ltoptions.m4 ltsugar.m4 ltversion.m4 lt~obsolete.m4 \
+       MAINTAINERS Makefile.def Makefile.in Makefile.tpl missing mkdep \
+       mkinstalldirs move-if-change README README-maintainer-mode \
+       SECURITY.txt src-release.sh symlink-tree test-driver ylwrap \
+        multilib.am"
 
 # Files in devo/etc used in any net release.
 ETC_SUPPORT="Makefile.in configure configure.in standards.texi \
@@ -63,8 +63,12 @@ getver()
        $tool/common/create-version.sh $tool 'dummy-host' 'dummy-target' VER.tmp
        cat VER.tmp | grep 'version\[\]' | sed 's/.*"\([^"]*\)".*/\1/' | sed 's/-git$//'
         rm -f VER.tmp
+    elif test $tool = "gdb"; then
+       ./gdbsupport/create-version.sh $tool 'dummy-host' 'dummy-target' VER.tmp
+       cat VER.tmp | grep 'version\[\]' | sed 's/.*"\([^"]*\)".*/\1/' | sed 's/-git$//'
+        rm -f VER.tmp
     elif test -f $tool/version.in; then
-       head -1 $tool/version.in
+       head -1 $tool/version.in
     else
        echo VERSION
     fi
@@ -91,7 +95,7 @@ do_proto_toplev()
     # built in the gold dir.  The disables speed the build a little.
     enables=
     disables=
-    for dir in binutils gas gdb gold gprof ld libdecnumber readline sim; do
+    for dir in binutils gas gdb gold gprof gprofng libsframe ld libctf libdecnumber readline sim; do
        case " $tool $support_files " in
            *" $dir "*) enables="$enables --enable-$dir" ;;
            *) disables="$disables --disable-$dir" ;;
@@ -124,57 +128,55 @@ do_proto_toplev()
            fi
        else
            if (echo x$d | grep / >/dev/null); then
-             mkdir -p proto-toplev/`dirname $d`
-             x=`dirname $d`
-             ln -s ../`echo $x/ | sed -e 's,[^/]*/,../,g'`$d proto-toplev/$d
+               mkdir -p proto-toplev/`dirname $d`
+               x=`dirname $d`
+               ln -s ../`echo $x/ | sed -e 's,[^/]*/,../,g'`$d proto-toplev/$d
            else
-             ln -s ../$d proto-toplev/$d
+               ln -s ../$d proto-toplev/$d
            fi
-         fi
-       done
-       (cd etc; $MAKE MAKEINFOFLAGS="$MAKEINFOFLAGS" info)
-       $MAKE distclean
-       mkdir proto-toplev/etc
-       (cd proto-toplev/etc;
-           for i in $ETC_SUPPORT; do
-               ln -s ../../etc/$i .
-               done)
-       #
-       # Take out texinfo from configurable dirs
-       rm proto-toplev/configure.ac
-       sed -e '/^host_tools=/s/texinfo //' \
-           <configure.ac >proto-toplev/configure.ac
-       #
-       mkdir proto-toplev/texinfo
-       ln -s ../../texinfo/texinfo.tex proto-toplev/texinfo/
-       if test -r texinfo/util/tex3patch ; then
-           mkdir proto-toplev/texinfo/util && \
-               ln -s ../../../texinfo/util/tex3patch proto-toplev/texinfo/util
-       else
-           true
        fi
-       chmod -R og=u . || chmod og=u `find . -print`
-       #
-       # Create .gmo files from .po files.
-       for f in `find . -name '*.po' -type f -print`; do
-           msgfmt -o `echo $f | sed -e 's/\.po$/.gmo/'` $f
-       done
-       #
-       rm -f $package-$ver
-       ln -s proto-toplev $package-$ver
+    done
+    (cd etc; $MAKE MAKEINFOFLAGS="$MAKEINFOFLAGS" info)
+    $MAKE distclean
+    mkdir proto-toplev/etc
+    (cd proto-toplev/etc;
+       for i in $ETC_SUPPORT; do
+           ln -s ../../etc/$i .
+       done)
+    #
+    # Take out texinfo from configurable dirs
+    rm proto-toplev/configure.ac
+    sed -e '/^host_tools=/s/texinfo //' \
+       <configure.ac >proto-toplev/configure.ac
+    #
+    mkdir proto-toplev/texinfo
+    ln -s ../../texinfo/texinfo.tex proto-toplev/texinfo/
+    if test -r texinfo/util/tex3patch ; then
+       mkdir proto-toplev/texinfo/util && \
+           ln -s ../../../texinfo/util/tex3patch proto-toplev/texinfo/util
+    fi
+    chmod -R og=u . || chmod og=u `find . -print`
+    #
+    # Create .gmo files from .po files.
+    for f in `find . -name '*.po' -type f -print`; do
+       msgfmt -o `echo $f | sed -e 's/\.po$/.gmo/'` $f
+    done
+    #
+    rm -f $package-$ver
+    ln -s proto-toplev $package-$ver
 }
 
 CVS_NAMES='-name CVS -o -name .cvsignore'
 
-# Add an md5sum to the built tarball
-do_md5sum()
+# Add a sha256sum to the built tarball
+do_sha256sum()
 {
-    echo "==> Adding md5 checksum to top-level directory"
+    echo "==> Adding sha256 checksum to top-level directory"
     (cd proto-toplev && find * -follow \( $CVS_NAMES \) -prune \
        -o -type f -print \
-       | xargs $MD5PROG > ../md5.new)
-    rm -f proto-toplev/md5.sum
-    mv md5.new proto-toplev/md5.sum
+       | xargs $SHA256PROG > ../sha256.new)
+    rm -f proto-toplev/sha256.sum
+    mv sha256.new proto-toplev/sha256.sum
 }
 
 # Build the release tarball
@@ -184,9 +186,17 @@ do_tar()
     ver=$2
     echo "==> Making $package-$ver.tar"
     rm -f $package-$ver.tar
-    find $package-$ver -follow \( $CVS_NAMES \) -prune \
-       -o -type f -print \
-       | tar cTfh - $package-$ver.tar
+    if test x$release_date == "x" ; then
+       find $package-$ver -follow \( $CVS_NAMES \) -prune -o -type f -print \
+          | tar cTfh - $package-$ver.tar
+    else
+       # Attempt to create a consistent, reproducible tarball using the
+       # specified date.
+       find $package-$ver -follow \( $CVS_NAMES \) -prune -o -type f -print \
+           | LC_ALL=C sort \
+           | tar cTfh - $package-$ver.tar \
+                 --mtime=$release_date --group=0 --owner=0
+    fi
 }
 
 # Compress the output with bzip2
@@ -274,7 +284,7 @@ tar_compress()
     verdir=${5:-$tool}
     ver=$(getver $verdir)
     do_proto_toplev $package $ver $tool "$support_files"
-    do_md5sum
+    do_sha256sum
     do_tar $package $ver
     do_compress $package $ver "$compressors"
 }
@@ -288,14 +298,14 @@ gdb_tar_compress()
     compressors=$4
     ver=$(getver $tool)
     do_proto_toplev $package $ver $tool "$support_files"
-    do_md5sum
+    do_sha256sum
     do_djunpack $package $ver
     do_tar $package $ver
     do_compress $package $ver "$compressors"
 }
 
 # The FSF "binutils" release includes gprof and ld.
-BINUTILS_SUPPORT_DIRS="bfd gas include libiberty opcodes ld elfcpp gold gprof intl setup.com makefile.vms cpu zlib"
+BINUTILS_SUPPORT_DIRS="libsframe bfd gas include libiberty libctf opcodes ld elfcpp gold gprof gprofng setup.com makefile.vms cpu zlib"
 binutils_release()
 {
     compressors=$1
@@ -304,7 +314,7 @@ binutils_release()
     tar_compress $package $tool "$BINUTILS_SUPPORT_DIRS" "$compressors"
 }
 
-GAS_SUPPORT_DIRS="bfd include libiberty opcodes intl setup.com makefile.vms zlib"
+GAS_SUPPORT_DIRS="bfd include libiberty opcodes setup.com makefile.vms zlib"
 gas_release()
 {
     compressors=$1
@@ -313,7 +323,7 @@ gas_release()
     tar_compress $package $tool "$GAS_SUPPORT_DIRS" "$compressors"
 }
 
-GDB_SUPPORT_DIRS="bfd include libiberty opcodes readline sim intl libdecnumber cpu zlib contrib"
+GDB_SUPPORT_DIRS="libsframe bfd include libiberty libctf opcodes readline sim libdecnumber cpu zlib contrib gnulib gdbsupport gdbserver libbacktrace"
 gdb_release()
 {
     compressors=$1
@@ -323,7 +333,7 @@ gdb_release()
 }
 
 # Corresponding to the CVS "sim" module.
-SIM_SUPPORT_DIRS="bfd opcodes libiberty include intl gdb/version.in gdb/common/create-version.sh makefile.vms zlib"
+SIM_SUPPORT_DIRS="libsframe bfd opcodes libiberty libctf/swap.h include gdb/version.in gdb/common/create-version.sh makefile.vms zlib gnulib"
 sim_release()
 {
     compressors=$1
@@ -340,6 +350,7 @@ usage()
     echo "  -g: Compress with gzip"
     echo "  -l: Compress with lzip"
     echo "  -x: Compress with xz"
+    echo "  -r <date>: Create a reproducible tarball using <date> as the mtime"
     exit 1
 }
 
@@ -363,7 +374,7 @@ build_release()
 
 compressors=""
 
-while getopts ":bglx" opt; do
+while getopts ":bglr:x" opt; do
     case $opt in
        b)
            compressors="$compressors bz2";;
@@ -371,6 +382,8 @@ while getopts ":bglx" opt; do
            compressors="$compressors gz";;
        l)
            compressors="$compressors lz";;
+       r)
+           release_date=$OPTARG;;
        x)
            compressors="$compressors xz";;
        \?)