Browse Source

add dynamic binutils requirement (especially for too old Linux)

master
parent
commit
55a85e4342
  1. 47
      gcc/gcc.sh
  2. 9
      gcc/gcc.spec

47
gcc/gcc.sh

@ -0,0 +1,47 @@
#!/bin/sh
##
## gcc.sh -- GCC Package Build Utility
## Copyright (c) 2002 Ralf S. Engelschall <rse@engelschall.com>
##
check="$1"
shift
case $check in
require-binutils )
# determine whether GNU gcc requires GNU binutils on this platform
require="no"
target="$1"
shift
case $target in
*-linux* )
v=unknown
if [ -f /etc/debian_version ]; then
v=`/usr/bin/dpkg -l binutils | grep binutils | awk '{ print $3; }'`
elif [ -f /etc/redhat-release ]; then
v=`/bin/rpm -q --qf '%{VERSION}' binutils`
elif [ -f /etc/SuSE-release ]; then
v=`/bin/rpm -q --qf '%{VERSION}' binutils`
else
v=`(ld --version | grep 'GNU ld' | sed -e 's;^[^0-9]*\([0-9].[0-9.]*\).*;\1;') 2>/dev/null`
fi
# require GNU binutils >= 2.12
case "$v" in
2.1[2-9] | 2.1[2-9].* ) ;;
* ) require="yes" ;;
esac
;;
* )
if [ ".`(ld --version) 2>/dev/null | grep 'GNU ld'`" != . ]; then
v=`(ld --version | grep 'GNU ld' | sed -e 's;^[^0-9]*\([0-9].[0-9.]*\).*;\1;') 2>/dev/null`
# require GNU binutils >= 2.12
case "$v" in
2.1[2-9] | 2.1[2-9].* ) ;;
* ) require="yes" ;;
esac
fi
;;
esac
echo "$require" | awk '{ printf("%s", $1); }'
;;
esac

9
gcc/gcc.spec

@ -24,9 +24,9 @@
##
# package versions
%define V_major 3.1.1
%define V_short 3.1.1
%define V_long 3.1.1
%define V_major 3.1.1
%define V_short 3.1.1
%define V_long 3.1.1
# package options
%ifndef with_cxx
@ -36,7 +36,7 @@
%define with_optimize yes
%endif
%ifndef with_binutils
%define with_binutils yes
%define with_binutils %(sh %{SOURCE gcc.sh} require-binutils %{l_target})
%endif
# package information
@ -53,6 +53,7 @@ Release: 20020808
# list of sources
Source0: ftp://gcc.gnu.org/pub/gcc/releases/gcc-%{V_long}/gcc-%{V_long}.tar.bz2
Source1: gcc.sh
Patch0: gcc.patch
# build information

Loading…
Cancel
Save