From 15d17ea200e595220c84cbca479436f95172ea1b Mon Sep 17 00:00:00 2001 From: Chris Young Date: Fri, 19 Dec 2014 12:56:28 +0000 Subject: Fix m68k binutils build --- .../patches/binutils/binutils.Makefile.in.p | 11 + .../recipes/patches/binutils/ld.Makefile.in.p | 11 + .../recipes/patches/binutils/ylwrap.p | 291 +++++++++++++++++++++ 3 files changed, 313 insertions(+) create mode 100644 m68k-unknown-amigaos/recipes/patches/binutils/binutils.Makefile.in.p create mode 100644 m68k-unknown-amigaos/recipes/patches/binutils/ld.Makefile.in.p create mode 100644 m68k-unknown-amigaos/recipes/patches/binutils/ylwrap.p diff --git a/m68k-unknown-amigaos/recipes/patches/binutils/binutils.Makefile.in.p b/m68k-unknown-amigaos/recipes/patches/binutils/binutils.Makefile.in.p new file mode 100644 index 0000000..0b6d02d --- /dev/null +++ b/m68k-unknown-amigaos/recipes/patches/binutils/binutils.Makefile.in.p @@ -0,0 +1,11 @@ +--- binutils/Makefile.in 2014-12-19 12:37:51.912015855 +0000 ++++ binutils/Makefile.in 2014-12-19 12:45:15.116014557 +0000 +@@ -481,7 +481,7 @@ LINK = $(LIBTOOL) --mode=link $(CCLD) $( + $(AM_LDFLAGS) $(LDFLAGS) -o $@ + LEXCOMPILE = $(LEX) $(LFLAGS) $(AM_LFLAGS) + LTLEXCOMPILE = $(LIBTOOL) --mode=compile $(LEX) $(LFLAGS) $(AM_LFLAGS) +-YLWRAP = $(top_srcdir)/ylwrap ++YLWRAP = $(top_srcdir)/../ylwrap + YACCCOMPILE = $(YACC) $(YFLAGS) $(AM_YFLAGS) + LTYACCCOMPILE = $(LIBTOOL) --mode=compile $(YACC) $(YFLAGS) $(AM_YFLAGS) + DIST_SOURCES = $(addr2line_SOURCES) $(ar_SOURCES) $(coffdump_SOURCES) \ diff --git a/m68k-unknown-amigaos/recipes/patches/binutils/ld.Makefile.in.p b/m68k-unknown-amigaos/recipes/patches/binutils/ld.Makefile.in.p new file mode 100644 index 0000000..f1a1473 --- /dev/null +++ b/m68k-unknown-amigaos/recipes/patches/binutils/ld.Makefile.in.p @@ -0,0 +1,11 @@ +--- ld/Makefile.in 2014-12-19 12:37:47.280015870 +0000 ++++ ld/Makefile.in 2014-12-19 12:44:38.192014671 +0000 +@@ -635,7 +635,7 @@ LEXCOMPILE = $(LEX) $(LFLAGS) $(AM_LFLAG + LTLEXCOMPILE = $(LIBTOOL) --mode=compile $(LEX) $(LFLAGS) $(AM_LFLAGS) + YACCCOMPILE = $(YACC) $(YFLAGS) $(AM_YFLAGS) + LTYACCCOMPILE = $(LIBTOOL) --mode=compile $(YACC) $(YFLAGS) $(AM_YFLAGS) +-YLWRAP = $(top_srcdir)/ylwrap ++YLWRAP = $(top_srcdir)/../ylwrap + DIST_SOURCES = $(ld_new_SOURCES) $(EXTRA_ld_new_SOURCES) + TEXINFO_TEX = $(top_srcdir)/../texinfo/texinfo.tex + am__TEXINFO_TEX_DIR = $(top_srcdir)/../texinfo diff --git a/m68k-unknown-amigaos/recipes/patches/binutils/ylwrap.p b/m68k-unknown-amigaos/recipes/patches/binutils/ylwrap.p new file mode 100644 index 0000000..020dda1 --- /dev/null +++ b/m68k-unknown-amigaos/recipes/patches/binutils/ylwrap.p @@ -0,0 +1,291 @@ +--- ylwrap 2014-12-19 12:18:57.552019176 +0000 ++++ ylwrap 2014-12-19 12:35:15.832016312 +0000 +@@ -1,6 +1,11 @@ + #! /bin/sh + # ylwrap - wrapper for lex/yacc invocations. +-# Copyright (C) 1996, 1997 Free Software Foundation, Inc. ++ ++scriptversion=2005-05-14.22 ++ ++# Copyright (C) 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004, 2005 ++# Free Software Foundation, Inc. ++# + # Written by Tom Tromey . + # + # This program is free software; you can redistribute it and/or modify +@@ -15,58 +20,84 @@ + # + # You should have received a copy of the GNU General Public License + # along with this program; if not, write to the Free Software +-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +- +-# Usage: +-# ylwrap PROGRAM INPUT [OUTPUT DESIRED]... -- [ARGS]... +-# * PROGRAM is program to run. +-# * INPUT is the input file +-# * OUTPUT is file PROG generates +-# * DESIRED is file we actually want +-# * ARGS are passed to PROG +-# Any number of OUTPUT,DESIRED pairs may be used. ++# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA ++# 02110-1301, USA. + +-# The program to run. +-prog="$1" +-shift +-# Make any relative path in $prog absolute. +-case "$prog" in +- /* | [A-Za-z]:\\*) ;; +- */*) prog="`pwd`/$prog" ;; ++# As a special exception to the GNU General Public License, if you ++# distribute this file as part of a program that contains a ++# configuration script generated by Autoconf, you may include it under ++# the same distribution terms that you use for the rest of that program. ++ ++# This file is maintained in Automake, please report ++# bugs to or send patches to ++# . ++ ++case "$1" in ++ '') ++ echo "$0: No files given. Try \`$0 --help' for more information." 1>&2 ++ exit 1 ++ ;; ++ --basedir) ++ basedir=$2 ++ shift 2 ++ ;; ++ -h|--h*) ++ cat <<\EOF ++Usage: ylwrap [--help|--version] INPUT [OUTPUT DESIRED]... -- PROGRAM [ARGS]... ++ ++Wrapper for lex/yacc invocations, renaming files as desired. ++ ++ INPUT is the input file ++ OUTPUT is one file PROG generates ++ DESIRED is the file we actually want instead of OUTPUT ++ PROGRAM is program to run ++ ARGS are passed to PROG ++ ++Any number of OUTPUT,DESIRED pairs may be used. ++ ++Report bugs to . ++EOF ++ exit $? ++ ;; ++ -v|--v*) ++ echo "ylwrap $scriptversion" ++ exit $? ++ ;; + esac + ++ + # The input. + input="$1" + shift + case "$input" in +- /* | [A-Za-z]:\\*) ++ [\\/]* | ?:[\\/]*) + # Absolute path; do nothing. + ;; +- *) +- # Relative path. Make it absolute. Why? Because otherwise any +- # debugging info in the generated file will point to the wrong +- # place. This is really gross. ++ *) ++ # Relative path. Make it absolute. + input="`pwd`/$input" + ;; + esac + +-# We don't want to use the absolute path if the input in the current +-# directory like when making a tar ball. +-input_base=`echo $input | sed -e 's|.*/||'` +-if test -f $input_base && cmp $input_base $input >/dev/null 2>&1; then +- input=$input_base +-fi +- + pairlist= + while test "$#" -ne 0; do +- if test "$1" = "--"; then +- shift +- break +- fi +- pairlist="$pairlist $1" +- shift ++ if test "$1" = "--"; then ++ shift ++ break ++ fi ++ pairlist="$pairlist $1" ++ shift + done + ++# The program to run. ++prog="$1" ++shift ++# Make any relative path in $prog absolute. ++case "$prog" in ++ [\\/]* | ?:[\\/]*) ;; ++ *[\\/]*) prog="`pwd`/$prog" ;; ++esac ++ + # FIXME: add hostname here for parallel makes that run commands on + # other machines. But that might take us over the 14-char limit. + dirname=ylwrap$$ +@@ -74,50 +105,119 @@ trap "cd `pwd`; rm -rf $dirname > /dev/n + mkdir $dirname || exit 1 + + cd $dirname +-case "$input" in +- /* | [A-Za-z]:\\*) +- # Absolute path; do nothing. +- ;; +- *) +- # Make a symbolic link, hard link or hardcopy. +- ln -s ../"$input" . > /dev/null 2>&1 || ln ../"$input" . > /dev/null 2>&1 || cp ../"$input" . +- ;; ++ ++case $# in ++ 0) $prog "$input" ;; ++ *) $prog "$@" "$input" ;; + esac +-$prog ${1+"$@"} "$input" +-status=$? ++ret=$? + +-if test $status -eq 0; then +- set X $pairlist +- shift +- first=yes +- while test "$#" -ne 0; do +- if test -f "$1"; then +- # If $2 is an absolute path name, then just use that, +- # otherwise prepend `../'. +- case "$2" in +- /* | [A-Za-z]:\\*) target="$2";; +- *) target="../$2";; +- esac +- mv "$1" "$target" || status=$? ++if test $ret -eq 0; then ++ set X $pairlist ++ shift ++ first=yes ++ # Since DOS filename conventions don't allow two dots, ++ # the DOS version of Bison writes out y_tab.c instead of y.tab.c ++ # and y_tab.h instead of y.tab.h. Test to see if this is the case. ++ y_tab_nodot="no" ++ if test -f y_tab.c || test -f y_tab.h; then ++ y_tab_nodot="yes" ++ fi ++ ++ # The directory holding the input. ++ input_dir=`echo "$input" | sed -e 's,\([\\/]\)[^\\/]*$,\1,'` ++ # Quote $INPUT_DIR so we can use it in a regexp. ++ # FIXME: really we should care about more than `.' and `\'. ++ input_rx=`echo "$input_dir" | sed 's,\\\\,\\\\\\\\,g;s,\\.,\\\\.,g'` ++ ++ while test "$#" -ne 0; do ++ from="$1" ++ # Handle y_tab.c and y_tab.h output by DOS ++ if test $y_tab_nodot = "yes"; then ++ if test $from = "y.tab.c"; then ++ from="y_tab.c" + else +- # A missing file is only an error for the first file. This +- # is a blatant hack to let us support using "yacc -d". If -d +- # is not specified, we don't want an error when the header +- # file is "missing". +- if test $first = yes; then +- status=1 +- fi ++ if test $from = "y.tab.h"; then ++ from="y_tab.h" ++ fi + fi +- shift +- shift +- first=no +- done ++ fi ++ if test -f "$from"; then ++ # If $2 is an absolute path name, then just use that, ++ # otherwise prepend `../'. ++ case "$2" in ++ [\\/]* | ?:[\\/]*) target="$2";; ++ *) target="../$2";; ++ esac ++ ++ # We do not want to overwrite a header file if it hasn't ++ # changed. This avoid useless recompilations. However the ++ # parser itself (the first file) should always be updated, ++ # because it is the destination of the .y.c rule in the ++ # Makefile. Divert the output of all other files to a temporary ++ # file so we can compare them to existing versions. ++ if test $first = no; then ++ realtarget="$target" ++ target="tmp-`echo $target | sed s/.*[\\/]//g`" ++ fi ++ # Edit out `#line' or `#' directives. ++ # ++ # We don't want the resulting debug information to point at ++ # an absolute srcdir; it is better for it to just mention the ++ # .y file with no path. ++ # ++ # We want to use the real output file name, not yy.lex.c for ++ # instance. ++ # ++ # We want the include guards to be adjusted too. ++ FROM=`echo "$from" | sed \ ++ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\ ++ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'` ++ TARGET=`echo "$2" | sed \ ++ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\ ++ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'` ++ ++ sed -e "/^#/!b" -e "s,$input_rx,," -e "s,$from,$2," \ ++ -e "s,$FROM,$TARGET," "$from" >"$target" || ret=$? ++ ++ # Check whether header files must be updated. ++ if test $first = no; then ++ if test -f "$realtarget" && cmp -s "$realtarget" "$target"; then ++ echo "$2" is unchanged ++ rm -f "$target" ++ else ++ echo updating "$2" ++ mv -f "$target" "$realtarget" ++ fi ++ fi ++ else ++ # A missing file is only an error for the first file. This ++ # is a blatant hack to let us support using "yacc -d". If -d ++ # is not specified, we don't want an error when the header ++ # file is "missing". ++ if test $first = yes; then ++ ret=1 ++ fi ++ fi ++ shift ++ shift ++ first=no ++ done + else +- status=$? ++ ret=$? + fi + + # Remove the directory. + cd .. + rm -rf $dirname + +-exit $status ++exit $ret ++ ++# Local Variables: ++# mode: shell-script ++# sh-indentation: 2 ++# eval: (add-hook 'write-file-hooks 'time-stamp) ++# time-stamp-start: "scriptversion=" ++# time-stamp-format: "%:y-%02m-%02d.%02H" ++# time-stamp-end: "$" ++# End: -- cgit v1.2.3