From cb464f98e23ab969c5c5bd1d8b3fb2c91cdbee6b Mon Sep 17 00:00:00 2001 From: Jakub Bogusz Date: Tue, 27 Sep 2022 20:44:55 +0200 Subject: [PATCH] - last version of binutils before gasp removal (2.13.2.1a) - added info patch from PLD binutils package from that era - added relax_type patch to allow build with modern compiler - epoch 5 to replace binutils-gasp built from binutils 4:2.38 --- binutils-gasp.spec | 88 +++++++++++++++++++ binutils-info.patch | 176 ++++++++++++++++++++++++++++++++++++++ binutils-relax_type.patch | 50 +++++++++++ 3 files changed, 314 insertions(+) create mode 100644 binutils-gasp.spec create mode 100644 binutils-info.patch create mode 100644 binutils-relax_type.patch diff --git a/binutils-gasp.spec b/binutils-gasp.spec new file mode 100644 index 0000000..5e004f4 --- /dev/null +++ b/binutils-gasp.spec @@ -0,0 +1,88 @@ +Summary: GASP - old preprocessor for assembly programs +Summary(pl.UTF-8): GASP - stary preprocesor dla programów w asemblerze +Name: binutils-gasp +Version: 2.13.2.1a +Release: 1 +Epoch: 5 +License: GPL v3+ +Group: Development/Tools +Source0: https://ftp.gnu.org/gnu/binutils/binutils-%{version}.tar.bz2 +# Source0-md5: aeb6464c6e3584edc021f7a552ec4fbd +Patch0: binutils-info.patch +Patch1: binutils-relax_type.patch +URL: http://www.sourceware.org/binutils/ +BuildRequires: bison +BuildRequires: flex +BuildRequires: gettext-tools +BuildRequires: perl-tools-pod +BuildRequires: pkgconfig +BuildRequires: rpmbuild(macros) >= 1.527 +%ifarch sparc sparc32 +BuildRequires: sparc32 +%endif +BuildRequires: texinfo >= 4.2 +BuildRequires: zlib-devel +BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) + +%description +GASP - old preprocessor for assembly programs. It's officially +obsoleted, but it's still needed to build some packages. + +%description -l pl.UTF-8 +GASP - stary preprocesor dla programów w asemblerze. Jest oficjalnie +uznany za przestarzały, ale jest nadal potrzebny do zbudowania +niektórych pakietów. + +%prep +%setup -q -n binutils-2.13.2.1 +%patch0 -p1 +%patch1 -p1 + +%build +cp -f /usr/share/automake/config.* . +CFLAGS="%{rpmcflags}"; export CFLAGS +CC="%{__cc}"; export CC +%ifarch sparc +sparc32 \ +%endif +./configure %{_target_platform} \ + --prefix=%{_prefix} \ + --libdir=%{_libdir} \ + --infodir=%{_infodir} \ + --mandir=%{_mandir} \ + --sysconfdir=%{_sysconfdir} \ + --disable-debug \ + --disable-silent-rules \ + --disable-werror \ +%ifarch sparc + --enable-64-bit-bfd \ +%endif + --enable-build-warnings=,-Wno-missing-prototypes \ + --with-tooldir=%{_prefix} \ + --with-zlib + +%{__make} -C libiberty +%{__make} -C bfd +%{__make} -C gas gasp-new +%{__make} -C gas/doc gasp.info + +%install +rm -rf $RPM_BUILD_ROOT +install -d $RPM_BUILD_ROOT{%{_bindir},%{_infodir}} + +install gas/gasp-new $RPM_BUILD_ROOT%{_bindir}/gasp +cp -p gas/doc/gasp.info* $RPM_BUILD_ROOT%{_infodir} + +%clean +rm -rf $RPM_BUILD_ROOT + +%post -p /sbin/postshell +-/usr/sbin/fix-info-dir -c %{_infodir} + +%postun -p /sbin/postshell +-/usr/sbin/fix-info-dir -c %{_infodir} + +%files +%defattr(644,root,root,755) +%attr(755,root,root) %{_bindir}/gasp +%{_infodir}/gasp.info* diff --git a/binutils-info.patch b/binutils-info.patch new file mode 100644 index 0000000..9df3bf9 --- /dev/null +++ b/binutils-info.patch @@ -0,0 +1,176 @@ +diff -urN binutils-2.12.90.0.1.org/bfd/doc/bfd.texinfo binutils-2.12.90.0.1/bfd/doc/bfd.texinfo +--- binutils-2.12.90.0.1.org/bfd/doc/bfd.texinfo Mon Mar 11 22:37:36 2002 ++++ binutils-2.12.90.0.1/bfd/doc/bfd.texinfo Mon Mar 11 22:37:52 2002 +@@ -21,9 +21,10 @@ + + @ifinfo + @format +-START-INFO-DIR-ENTRY +-* Bfd: (bfd). The Binary File Descriptor library. +-END-INFO-DIR-ENTRY ++@dircategory Programming tools: ++@direntry ++* Bfd: (bfd). The Binary File Descriptor library ++@end direntry + @end format + @end ifinfo + +diff -urN binutils-2.12.90.0.1.org/binutils/doc/binutils.texi binutils-2.12.90.0.1/binutils/doc/binutils.texi +--- binutils-2.12.90.0.1.org/binutils/doc/binutils.texi Mon Mar 11 22:37:37 2002 ++++ binutils-2.12.90.0.1/binutils/doc/binutils.texi Mon Mar 11 22:37:52 2002 +@@ -6,24 +6,26 @@ + + @ifinfo + @format +-START-INFO-DIR-ENTRY +-* Binutils: (binutils). The GNU binary utilities. +-* ar: (binutils)ar. Create, modify, and extract from archives +-* nm: (binutils)nm. List symbols from object files +-* objcopy: (binutils)objcopy. Copy and translate object files +-* objdump: (binutils)objdump. Display information from object files +-* ranlib: (binutils)ranlib. Generate index to archive contents +-* readelf: (binutils)readelf. Display the contents of ELF format files. +-* size: (binutils)size. List section sizes and total size +-* strings: (binutils)strings. List printable strings from files +-* strip: (binutils)strip. Discard symbols +-* c++filt: (binutils)c++filt. Filter to demangle encoded C++ symbols +-* cxxfilt: (binutils)c++filt. MS-DOS name for c++filt +-* addr2line: (binutils)addr2line. Convert addresses to file and line +-* nlmconv: (binutils)nlmconv. Converts object code into an NLM +-* windres: (binutils)windres. Manipulate Windows resources +-* dlltool: (binutils)dlltool. Create files needed to build and use DLLs +-END-INFO-DIR-ENTRY ++@dircategory Programming tools: ++@direntry ++* Binutils: (binutils). The GNU binary utilities ++* ar: (binutils)ar. Create, modify and extract from archives ++* nm: (binutils)nm. List symbols from object files ++* objcopy: (binutils)objcopy. Copy and translate object files ++* objdump: (binutils)objdump. Display information from object files ++* ranlib: (binutils)ranlib. Generate index to archive contents ++* readelf: (binutils)readelf. Display the contents of ELF format files ++* size: (binutils)size. List section sizes and total size ++* strings: (binutils)strings. List printable strings from files ++* strip: (binutils)strip. Discard symbols ++* c++filt: (binutils)c++filt. Filter to demangle encoded C++ symbols ++* cxxfilt: (binutils)c++filt. MS-DOS name for c++filt ++* addr2line: (binutils)addr2line. Convert addresses to file and line ++* nlmconv: (binutils)nlmconv. Converts object code into an NLM ++* windres: (binutils)windres. Manipulate Windows resources ++* dlltool: (binutils)dlltool. Create files needed to ++ build and use DLLs ++@end direntry + @end format + @end ifinfo + +diff -urN binutils-2.12.90.0.1.org/etc/configure.texi binutils-2.12.90.0.1/etc/configure.texi +--- binutils-2.12.90.0.1.org/etc/configure.texi Mon Mar 11 22:37:37 2002 ++++ binutils-2.12.90.0.1/etc/configure.texi Mon Mar 11 22:37:52 2002 +@@ -5,9 +5,9 @@ + @setchapternewpage off + @c %**end of header + +-@dircategory GNU admin ++@dircategory Programming tools: + @direntry +-* configure: (configure). The GNU configure and build system ++* configure: (configure). The GNU configure and build system + @end direntry + + @ifinfo +diff -urN binutils-2.12.90.0.1.org/etc/standards.texi binutils-2.12.90.0.1/etc/standards.texi +--- binutils-2.12.90.0.1.org/etc/standards.texi Mon Mar 11 22:37:37 2002 ++++ binutils-2.12.90.0.1/etc/standards.texi Mon Mar 11 22:37:52 2002 +@@ -8,9 +8,10 @@ + + @ifinfo + @format +-START-INFO-DIR-ENTRY +-* Standards: (standards). GNU coding standards. +-END-INFO-DIR-ENTRY ++@dircategory Miscellaneous: ++@direntry ++* Standards: (standards). GNU coding standards ++@end direntry + @end format + @end ifinfo + +diff -urN binutils-2.12.90.0.1.org/gas/doc/as.texinfo binutils-2.12.90.0.1/gas/doc/as.texinfo +--- binutils-2.12.90.0.1.org/gas/doc/as.texinfo Mon Mar 11 22:37:38 2002 ++++ binutils-2.12.90.0.1/gas/doc/as.texinfo Mon Mar 11 22:40:25 2002 +@@ -117,10 +117,11 @@ + + @ifinfo + @format +-START-INFO-DIR-ENTRY +-* As: (as). The GNU assembler. +-* Gas: (as). The GNU assembler. +-END-INFO-DIR-ENTRY ++@dircategory Programming tools: ++@direntry ++* As: (as). The GNU assembler ++* Gas: (as). The GNU assembler ++@end direntry + @end format + @end ifinfo + +diff -urN binutils-2.12.90.0.1.org/gas/doc/gasp.texi binutils-2.12.90.0.1/gas/doc/gasp.texi +--- binutils-2.12.90.0.1.org/gas/doc/gasp.texi Mon Mar 11 22:37:38 2002 ++++ binutils-2.12.90.0.1/gas/doc/gasp.texi Mon Mar 11 22:37:52 2002 +@@ -14,9 +14,10 @@ + + @ifinfo + @format +-START-INFO-DIR-ENTRY +-* gasp: (gasp). The GNU Assembler Preprocessor +-END-INFO-DIR-ENTRY ++@dircategory Programming tools: ++@direntry ++* gasp: (gasp). The GNU Assembler Preprocessor ++@end direntry + @end format + @end ifinfo + +diff -urN binutils-2.12.90.0.1.org/gprof/gprof.texi binutils-2.12.90.0.1/gprof/gprof.texi +--- binutils-2.12.90.0.1.org/gprof/gprof.texi Mon Mar 11 22:37:40 2002 ++++ binutils-2.12.90.0.1/gprof/gprof.texi Mon Mar 11 22:37:52 2002 +@@ -9,9 +9,10 @@ + @c This is a dir.info fragment to support semi-automated addition of + @c manuals to an info tree. zoo@cygnus.com is developing this facility. + @format +-START-INFO-DIR-ENTRY +-* gprof: (gprof). Profiling your program's execution +-END-INFO-DIR-ENTRY ++@dircategory Programming tools: ++@direntry ++* gprof: (gprof). Profiling your program's execution ++@end direntry + @end format + @end ifinfo + +diff -urN binutils-2.12.90.0.1.org/ld/ld.texinfo binutils-2.12.90.0.1/ld/ld.texinfo +--- binutils-2.12.90.0.1.org/ld/ld.texinfo Mon Mar 11 22:37:41 2002 ++++ binutils-2.12.90.0.1/ld/ld.texinfo Mon Mar 11 22:37:52 2002 +@@ -48,9 +48,10 @@ + + @ifinfo + @format +-START-INFO-DIR-ENTRY +-* Ld: (ld). The GNU linker. +-END-INFO-DIR-ENTRY ++@dircategory Programming tools: ++@direntry ++* Ld: (ld). The GNU linker ++@end direntry + @end format + @end ifinfo + +@@ -4590,7 +4591,7 @@ + @node BFD outline + @section How it works: an outline of BFD + @cindex opening object files +-@include bfdsumm.texi ++@include ../bfd/doc/bfdsumm.texi + @end ifclear + + @node Reporting Bugs diff --git a/binutils-relax_type.patch b/binutils-relax_type.patch new file mode 100644 index 0000000..658fdc4 --- /dev/null +++ b/binutils-relax_type.patch @@ -0,0 +1,50 @@ +--- binutils-2.13.2.1/gas/tc.h.orig 2001-11-15 22:28:53.000000000 +0100 ++++ binutils-2.13.2.1/gas/tc.h 2022-09-27 19:58:57.525827655 +0200 +@@ -27,22 +27,6 @@ extern const pseudo_typeS md_pseudo_tabl + /* JF moved this here from as.h under the theory that nobody except MACHINE.c + and write.c care about it anyway. */ + +-struct relax_type +-{ +- /* Forward reach. Signed number. > 0. */ +- long rlx_forward; +- /* Backward reach. Signed number. < 0. */ +- long rlx_backward; +- +- /* Bytes length of this address. */ +- unsigned char rlx_length; +- +- /* Next longer relax-state. 0 means there is no 'next' relax-state. */ +- relax_substateT rlx_more; +-}; +- +-typedef struct relax_type relax_typeS; +- + extern const int md_reloc_size; /* Size of a relocation record */ + + char *md_atof PARAMS ((int what_statement_type, char *literalP, int *sizeP)); +--- binutils-2.13.2.1/gas/as.h.orig 2002-07-14 03:14:19.000000000 +0200 ++++ binutils-2.13.2.1/gas/as.h 2022-09-27 19:58:58.979153115 +0200 +@@ -397,6 +397,22 @@ typedef unsigned int relax_substateT; + /* Enough bits for address, but still an integer type. + Could be a problem, cross-assembling for 64-bit machines. */ + typedef addressT relax_addressT; ++ ++struct relax_type ++{ ++ /* Forward reach. Signed number. > 0. */ ++ long rlx_forward; ++ /* Backward reach. Signed number. < 0. */ ++ long rlx_backward; ++ ++ /* Bytes length of this address. */ ++ unsigned char rlx_length; ++ ++ /* Next longer relax-state. 0 means there is no 'next' relax-state. */ ++ relax_substateT rlx_more; ++}; ++ ++typedef struct relax_type relax_typeS; + + /* main program "as.c" (command arguments etc) */ + -- 2.43.0