Gold/MIPS: Add mips64*/mips64*el triple support
[binutils-gdb.git] / src-release.sh
index fd65856a55cc8d73c222a2ef1ea0e9dd0c4b22e8..c974ea05473b0cfee4810bc2d34298ad5bc73cbc 100755 (executable)
@@ -30,6 +30,7 @@ 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
@@ -44,7 +45,7 @@ DEVO_SUPPORT="ar-lib ChangeLog compile config config-ml.in config.guess \
        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 \
-       src-release.sh symlink-tree test-driver ylwrap"
+       SECURITY.txt src-release.sh symlink-tree test-driver ylwrap"
 
 # Files in devo/etc used in any net release.
 ETC_SUPPORT="Makefile.in configure configure.in standards.texi \
@@ -93,7 +94,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 libctf 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" ;;
@@ -126,44 +127,42 @@ 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'
@@ -186,9 +185,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
@@ -297,7 +304,7 @@ gdb_tar_compress()
 }
 
 # The FSF "binutils" release includes gprof and ld.
-BINUTILS_SUPPORT_DIRS="bfd gas include libiberty libctf 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 intl setup.com makefile.vms cpu zlib"
 binutils_release()
 {
     compressors=$1
@@ -315,7 +322,7 @@ gas_release()
     tar_compress $package $tool "$GAS_SUPPORT_DIRS" "$compressors"
 }
 
-GDB_SUPPORT_DIRS="bfd include libiberty libctf opcodes readline sim intl libdecnumber cpu zlib contrib gnulib gdbsupport gdbserver"
+GDB_SUPPORT_DIRS="libsframe bfd include libiberty libctf opcodes readline sim intl libdecnumber cpu zlib contrib gnulib gdbsupport gdbserver libbacktrace"
 gdb_release()
 {
     compressors=$1
@@ -342,6 +349,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
 }
 
@@ -365,7 +373,7 @@ build_release()
 
 compressors=""
 
-while getopts ":bglx" opt; do
+while getopts ":bglr:x" opt; do
     case $opt in
        b)
            compressors="$compressors bz2";;
@@ -373,6 +381,8 @@ while getopts ":bglx" opt; do
            compressors="$compressors gz";;
        l)
            compressors="$compressors lz";;
+       r)
+           release_date=$OPTARG;;
        x)
            compressors="$compressors xz";;
        \?)