aboriginal

changeset 1545:49be0eeedda9

Upgrade binutils to the last GPLv2 commit in the .git repository (397a64b3, right before they poisoned gas). This includes the -Bsymbolic-functions thing musl needs (and oddly enough the first drop of armv7l support). Since "make dist" inexplicably doesn't work (because maintainers are _special_) the tarball was made via: git clean -fdx && git checkout -f && patch -p1 -i ~/aboriginal/sources/patches/binutils-screwinfo.patch && ./configure --disable-werror && make configure-host && find . -name Makefile | xargs sed -i 's/^all:/& $(DIST_COMMON) $(EXTRA_DIST) $(DIST_SOURCES)/' && make && patch -p1 -Ri ~/aboriginal/aboriginal/sources/patches/binutils-screwinfo.patch && make distclean This resurrects several of the things I worked out to build 2.18 back before I worked out the license on that had been changed by stealth. (This also gets us away from the 2.17 on the FSF website which the FSF retroactively replaced with a version containing GPLv3 source files last year).
author Rob Landley <rob@landley.net>
date Tue, 25 Sep 2012 19:42:33 -0500
parents e2f722cc97a6
children 09f18f222c92
files download.sh sources/patches/binutils-screwinfo.patch sources/sections/binutils.build
diffstat 3 files changed, 27 insertions(+), 5 deletions(-) [+]
line diff
     1.1 --- a/download.sh	Thu Sep 06 05:11:25 2012 -0500
     1.2 +++ b/download.sh	Tue Sep 25 19:42:33 2012 -0500
     1.3 @@ -32,11 +32,13 @@
     1.4  maybe_fork "download || dienow"
     1.5  
     1.6  
     1.7 -# 2.17 was the last GPLv2 release of binutils
     1.8 +# 2.17 was the last GPLv2 release of binutils, but git commit
     1.9 +# 397a64b350470350c8e0adb2af84439ea0f89272 was the last GPLv2
    1.10 +# _version_ of binutils. This tarball has prebuilt release files
    1.11 +# so it builds without optional dependencies such as lex and yacc.
    1.12  
    1.13 -URL=ftp://ftp.gnu.org/gnu/binutils/binutils-2.17.tar.bz2 \
    1.14 -SHA1=a557686eef68362ea31a3aa41ce274e3eeae1ef0 \
    1.15 -ALT=ftp://ftp.gnu.org/gnu/binutils/binutils-2.18.tar.bz2 \
    1.16 +URL=http://landley.net/aboriginal/mirror/binutils-397a64b3.tar.bz2
    1.17 +SHA1=efc2a12da60ebf56b98cb5edb8d9daaae6a49152 \
    1.18  maybe_fork "download || dienow"
    1.19  
    1.20  # 4.2.1 was the last GPLv2 release of gcc
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/sources/patches/binutils-screwinfo.patch	Tue Sep 25 19:42:33 2012 -0500
     2.3 @@ -0,0 +1,18 @@
     2.4 +The binutils build notices that makeinfo is missing, but fails anyway, breaking
     2.5 +the build.  Make it stop.
     2.6 +
     2.7 +The "info" file format is obsolete (similar to "gopher"), was never used
     2.8 +by anyone but the FSF, and failed to even replace man pages (which are
     2.9 +now available in HTML).
    2.10 +
    2.11 +--- binutils-2.18/missing	2005-07-13 20:24:56.000000000 -0500
    2.12 ++++ binutils-2.18/missing	2008-08-11 02:05:47.000000000 -0500
    2.13 +@@ -299,7 +299,7 @@
    2.14 +     fi
    2.15 +     # If the file does not exist, the user really needs makeinfo;
    2.16 +     # let's fail without touching anything.
    2.17 +-    test -f $file || exit 1
    2.18 ++    test -f $file || exit 0
    2.19 +     touch $file
    2.20 +     ;;
    2.21 + 
     3.1 --- a/sources/sections/binutils.build	Thu Sep 06 05:11:25 2012 -0500
     3.2 +++ b/sources/sections/binutils.build	Tue Sep 25 19:42:33 2012 -0500
     3.3 @@ -2,7 +2,8 @@
     3.4  
     3.5  function configure_binutils()
     3.6  {
     3.7 -  "$CURSRC/configure" --prefix="$STAGE_DIR" "$@" --target="$CROSS_TARGET" \
     3.8 +  AR=ar AS=as LD=ld NM=nm OBJDUMP=objdump OBJCOPY=objcopy \
     3.9 +    "$CURSRC/configure" --prefix="$STAGE_DIR" "$@" --target="$CROSS_TARGET" \
    3.10      --disable-nls --disable-shared --disable-multilib --disable-werror \
    3.11      --with-lib-path=lib --program-prefix="$TOOLCHAIN_PREFIX" $BINUTILS_FLAGS
    3.12  
    3.13 @@ -38,7 +39,9 @@
    3.14  
    3.15  make -j $CPUS configure-host &&
    3.16  make -j $CPUS CFLAGS="-O2 $STATIC_FLAGS $CFLAGS" &&
    3.17 +ln -s lib "$STAGE_DIR/lib64" &&
    3.18  make -j $CPUS install &&
    3.19 +rm "$STAGE_DIR/lib64" &&
    3.20  
    3.21  # Fix up install
    3.22