diff options
author | ABDULLATIF Mouhamadi | 2017-05-22 23:12:38 +0200 |
---|---|---|
committer | ABDULLATIF Mouhamadi | 2017-05-22 23:12:38 +0200 |
commit | e6607b35c800f4bb5b6eff24c0d8c401294b7917 (patch) | |
tree | 1902699988f85d5c821594e63e43da93e4349a3f | |
download | aur-binutils-msp430.tar.gz |
first commit
-rw-r--r-- | .SRCINFO | 24 | ||||
-rw-r--r-- | 0001_ld_makefile_libdir.patch | 24 | ||||
-rw-r--r-- | 0002_binutils-texinfo-5.0-gas-doc.patch | 261 | ||||
-rw-r--r-- | 0003-binutils-texinfo-5.0.patch | 91 | ||||
-rw-r--r-- | PKGBUILD | 111 |
5 files changed, 511 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..130a976e233f --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,24 @@ +pkgbase = binutils-msp430 + pkgdesc = A set of programs to assemble and manipulate binary and object files for the MSP430 architecture + pkgver = 2.21.1a + pkgrel = 1 + url = http://sourceforge.net/projects/mspgcc/ + arch = i686 + arch = x86_64 + license = GPL + depends = zlib + options = !emptydirs + options = !libtool + source = http://sourceforge.net/projects/mspgcc/files/mspgcc/mspgcc-20120406.tar.bz2 + source = http://ftpmirror.gnu.org/binutils/binutils-2.21.1a.tar.bz2 + source = 0001_ld_makefile_libdir.patch + source = 0002_binutils-texinfo-5.0-gas-doc.patch + source = 0003-binutils-texinfo-5.0.patch + sha1sums = cc96a7233f0b1d2c106eff7db6fc00e4ed9039a8 + sha1sums = 525255ca6874b872540c9967a1d26acfbc7c8230 + sha1sums = 7a5d78fd94fd99dd544816db75a14c326c494e68 + sha1sums = b92aba28a090f214a650102ad0f0862c37b45e58 + sha1sums = 417b1cdb35c41a08d3ca967c165c0d79588986e9 + +pkgname = binutils-msp430 + diff --git a/0001_ld_makefile_libdir.patch b/0001_ld_makefile_libdir.patch new file mode 100644 index 000000000000..82b65081dedd --- /dev/null +++ b/0001_ld_makefile_libdir.patch @@ -0,0 +1,24 @@ +diff -urNad ld/Makefile.am ld_/Makefile.am +--- ld/Makefile.am 2010-11-03 16:22:01.000000000 +1300 ++++ ld_/Makefile.am 2011-06-14 22:48:48.942861545 +1200 +@@ -37,7 +37,7 @@ + # We put the scripts in the directory $(scriptdir)/ldscripts. + # We can't put the scripts in $(datadir) because the SEARCH_DIR + # directives need to be different for native and cross linkers. +-scriptdir = $(tooldir)/lib ++scriptdir = $(libdir) + + EMUL = @EMUL@ + EMULATION_OFILES = @EMULATION_OFILES@ +diff -urNad ld/Makefile.in ld_/Makefile.in +--- ld/Makefile.in 2010-11-05 23:34:22.000000000 +1300 ++++ ld_/Makefile.in 2011-06-14 22:48:52.065772461 +1200 +@@ -360,7 +360,7 @@ + # We put the scripts in the directory $(scriptdir)/ldscripts. + # We can't put the scripts in $(datadir) because the SEARCH_DIR + # directives need to be different for native and cross linkers. +-scriptdir = $(tooldir)/lib ++scriptdir = $(libdir) + BASEDIR = $(srcdir)/.. + BFDDIR = $(BASEDIR)/bfd + INCDIR = $(BASEDIR)/include diff --git a/0002_binutils-texinfo-5.0-gas-doc.patch b/0002_binutils-texinfo-5.0-gas-doc.patch new file mode 100644 index 000000000000..e20c8b67b9a2 --- /dev/null +++ b/0002_binutils-texinfo-5.0-gas-doc.patch @@ -0,0 +1,261 @@ +diff --git c/gas/doc/c-arc.texi i/gas/doc/c-arc.texi +index 3a136a7..cd6f0d9 100644 +--- c/gas/doc/c-arc.texi ++++ i/gas/doc/c-arc.texi +@@ -212,7 +212,7 @@ The extension instructions are not macros. The assembler creates + encodings for use of these instructions according to the specification + by the user. The parameters are: + +-@table @bullet ++@table @code + @item @var{name} + Name of the extension instruction + +diff --git c/gas/doc/c-arm.texi i/gas/doc/c-arm.texi +index d3cccf4..97c2f92 100644 +--- c/gas/doc/c-arm.texi ++++ i/gas/doc/c-arm.texi +@@ -376,29 +376,29 @@ ARM and THUMB instructions had their own, separate syntaxes. The new, + @code{unified} syntax, which can be selected via the @code{.syntax} + directive, and has the following main features: + +-@table @bullet +-@item ++@table @code ++@item 1 + Immediate operands do not require a @code{#} prefix. + +-@item ++@item 2 + The @code{IT} instruction may appear, and if it does it is validated + against subsequent conditional affixes. In ARM mode it does not + generate machine code, in THUMB mode it does. + +-@item ++@item 3 + For ARM instructions the conditional affixes always appear at the end + of the instruction. For THUMB instructions conditional affixes can be + used, but only inside the scope of an @code{IT} instruction. + +-@item ++@item 4 + All of the instructions new to the V6T2 architecture (and later) are + available. (Only a few such instructions can be written in the + @code{divided} syntax). + +-@item ++@item 5 + The @code{.N} and @code{.W} suffixes are recognized and honored. + +-@item ++@item 6 + All instructions set the flags if and only if they have an @code{s} + affix. + @end table +@@ -433,28 +433,6 @@ Either @samp{#} or @samp{$} can be used to indicate immediate operands. + @cindex register names, ARM + *TODO* Explain about ARM register naming, and the predefined names. + +-@node ARM-Neon-Alignment +-@subsection NEON Alignment Specifiers +- +-@cindex alignment for NEON instructions +-Some NEON load/store instructions allow an optional address +-alignment qualifier. +-The ARM documentation specifies that this is indicated by +-@samp{@@ @var{align}}. However GAS already interprets +-the @samp{@@} character as a "line comment" start, +-so @samp{: @var{align}} is used instead. For example: +- +-@smallexample +- vld1.8 @{q0@}, [r0, :128] +-@end smallexample +- +-@node ARM Floating Point +-@section Floating Point +- +-@cindex floating point, ARM (@sc{ieee}) +-@cindex ARM floating point (@sc{ieee}) +-The ARM family uses @sc{ieee} floating-point numbers. +- + @node ARM-Relocations + @subsection ARM relocation generation + +@@ -497,6 +475,28 @@ respectively. For example to load the 32-bit address of foo into r0: + MOVT r0, #:upper16:foo + @end smallexample + ++@node ARM-Neon-Alignment ++@subsection NEON Alignment Specifiers ++ ++@cindex alignment for NEON instructions ++Some NEON load/store instructions allow an optional address ++alignment qualifier. ++The ARM documentation specifies that this is indicated by ++@samp{@@ @var{align}}. However GAS already interprets ++the @samp{@@} character as a "line comment" start, ++so @samp{: @var{align}} is used instead. For example: ++ ++@smallexample ++ vld1.8 @{q0@}, [r0, :128] ++@end smallexample ++ ++@node ARM Floating Point ++@section Floating Point ++ ++@cindex floating point, ARM (@sc{ieee}) ++@cindex ARM floating point (@sc{ieee}) ++The ARM family uses @sc{ieee} floating-point numbers. ++ + @node ARM Directives + @section ARM Machine Directives + +diff --git c/gas/doc/c-cr16.texi i/gas/doc/c-cr16.texi +index b6cf10f..00ddae2 100644 +--- c/gas/doc/c-cr16.texi ++++ i/gas/doc/c-cr16.texi +@@ -43,26 +43,33 @@ Operand expression type qualifier is an optional field in the instruction operan + CR16 target operand qualifiers and its size (in bits): + + @table @samp +-@item Immediate Operand +-- s ---- 4 bits +-@item +-- m ---- 16 bits, for movb and movw instructions. +-@item +-- m ---- 20 bits, movd instructions. +-@item +-- l ---- 32 bits +- +-@item Absolute Operand +-- s ---- Illegal specifier for this operand. +-@item +-- m ---- 20 bits, movd instructions. +- +-@item Displacement Operand +-- s ---- 8 bits +-@item +-- m ---- 16 bits +-@item +-- l ---- 24 bits ++@item Immediate Operand: s ++4 bits. ++ ++@item Immediate Operand: m ++16 bits, for movb and movw instructions. ++ ++@item Immediate Operand: m ++20 bits, movd instructions. ++ ++@item Immediate Operand: l ++32 bits. ++ ++@item Absolute Operand: s ++Illegal specifier for this operand. ++ ++@item Absolute Operand: m ++20 bits, movd instructions. ++ ++@item Displacement Operand: s ++8 bits. ++ ++@item Displacement Operand: m ++16 bits. ++ ++@item Displacement Operand: l ++24 bits ++ + @end table + + For example: +diff --git c/gas/doc/c-mips.texi i/gas/doc/c-mips.texi +index 715091e..1250c1e 100644 +--- c/gas/doc/c-mips.texi ++++ i/gas/doc/c-mips.texi +@@ -220,7 +220,7 @@ the @samp{mad} and @samp{madu} instruction, and to not schedule @samp{nop} + instructions around accesses to the @samp{HI} and @samp{LO} registers. + @samp{-no-m4650} turns off this option. + +-@itemx -m3900 ++@item -m3900 + @itemx -no-m3900 + @itemx -m4100 + @itemx -no-m4100 +diff --git c/gas/doc/c-score.texi i/gas/doc/c-score.texi +index 0820115..a5b570f 100644 +--- c/gas/doc/c-score.texi ++++ i/gas/doc/c-score.texi +@@ -36,7 +36,7 @@ implicitly with the @code{gp} register. The default value is 8. + @item -EB + Assemble code for a big-endian cpu + +-@itemx -EL ++@item -EL + Assemble code for a little-endian cpu + + @item -FIXDD +@@ -48,13 +48,13 @@ Assemble code for no warning message for fix data dependency + @item -SCORE5 + Assemble code for target is SCORE5 + +-@itemx -SCORE5U ++@item -SCORE5U + Assemble code for target is SCORE5U + +-@itemx -SCORE7 ++@item -SCORE7 + Assemble code for target is SCORE7, this is default setting + +-@itemx -SCORE3 ++@item -SCORE3 + Assemble code for target is SCORE3 + + @item -march=score7 +diff --git c/gas/doc/c-tic54x.texi i/gas/doc/c-tic54x.texi +index 4cfb440..9d631a6 100644 +--- c/gas/doc/c-tic54x.texi ++++ i/gas/doc/c-tic54x.texi +@@ -108,7 +108,7 @@ In this example, x is replaced with SYM2; SYM2 is replaced with SYM1, and SYM1 + is replaced with x. At this point, x has already been encountered + and the substitution stops. + +-@smallexample @code ++@smallexample + .asg "x",SYM1 + .asg "SYM1",SYM2 + .asg "SYM2",x +@@ -125,14 +125,14 @@ Substitution may be forced in situations where replacement might be + ambiguous by placing colons on either side of the subsym. The following + code: + +-@smallexample @code ++@smallexample + .eval "10",x + LAB:X: add #x, a + @end smallexample + + When assembled becomes: + +-@smallexample @code ++@smallexample + LAB10 add #10, a + @end smallexample + +@@ -308,7 +308,7 @@ The @code{LDX} pseudo-op is provided for loading the extended addressing bits + of a label or address. For example, if an address @code{_label} resides + in extended program memory, the value of @code{_label} may be loaded as + follows: +-@smallexample @code ++@smallexample + ldx #_label,16,a ; loads extended bits of _label + or #_label,a ; loads lower 16 bits of _label + bacc a ; full address is in accumulator A +@@ -344,7 +344,7 @@ Assign @var{name} the string @var{string}. String replacement is + performed on @var{string} before assignment. + + @cindex @code{eval} directive, TIC54X +-@itemx .eval @var{string}, @var{name} ++@item .eval @var{string}, @var{name} + Evaluate the contents of string @var{string} and assign the result as a + string to the subsym @var{name}. String replacement is performed on + @var{string} before assignment. diff --git a/0003-binutils-texinfo-5.0.patch b/0003-binutils-texinfo-5.0.patch new file mode 100644 index 000000000000..0ba9f82d9cea --- /dev/null +++ b/0003-binutils-texinfo-5.0.patch @@ -0,0 +1,91 @@ +diff --git i/bfd/doc/bfd.texinfo w/bfd/doc/bfd.texinfo +index 45ffa73..c3ca5e7 100644 +--- i/bfd/doc/bfd.texinfo ++++ w/bfd/doc/bfd.texinfo +@@ -322,7 +322,7 @@ All of BFD lives in one directory. + @printindex cp + + @tex +-% I think something like @colophon should be in texinfo. In the ++% I think something like @@colophon should be in texinfo. In the + % meantime: + \long\def\colophon{\hbox to0pt{}\vfill + \centerline{The body of this manual is set in} +@@ -333,7 +333,7 @@ All of BFD lives in one directory. + \centerline{{\sl\fontname\tensl\/}} + \centerline{are used for emphasis.}\vfill} + \page\colophon +-% Blame: doc@cygnus.com, 28mar91. ++% Blame: doc@@cygnus.com, 28mar91. + @end tex + + @bye +diff --git i/binutils/doc/binutils.texi w/binutils/doc/binutils.texi +index d8d1899..b8f75ce 100644 +--- i/binutils/doc/binutils.texi ++++ w/binutils/doc/binutils.texi +@@ -4190,28 +4190,28 @@ equivalent. At least one of the @option{--output-mach}, + + @table @env + +-@itemx --input-mach=@var{machine} ++@item --input-mach=@var{machine} + Set the matching input ELF machine type to @var{machine}. If + @option{--input-mach} isn't specified, it will match any ELF + machine types. + + The supported ELF machine types are, @var{L1OM} and @var{x86-64}. + +-@itemx --output-mach=@var{machine} ++@item --output-mach=@var{machine} + Change the ELF machine type in the ELF header to @var{machine}. The + supported ELF machine types are the same as @option{--input-mach}. + +-@itemx --input-type=@var{type} ++@item --input-type=@var{type} + Set the matching input ELF file type to @var{type}. If + @option{--input-type} isn't specified, it will match any ELF file types. + + The supported ELF file types are, @var{rel}, @var{exec} and @var{dyn}. + +-@itemx --output-type=@var{type} ++@item --output-type=@var{type} + Change the ELF file type in the ELF header to @var{type}. The + supported ELF types are the same as @option{--input-type}. + +-@itemx --input-osabi=@var{osabi} ++@item --input-osabi=@var{osabi} + Set the matching input ELF file OSABI to @var{osbi}. If + @option{--input-osabi} isn't specified, it will match any ELF OSABIs. + +@@ -4220,7 +4220,7 @@ The supported ELF OSABIs are, @var{none}, @var{HPUX}, @var{NetBSD}, + @var{FreeBSD}, @var{TRU64}, @var{Modesto}, @var{OpenBSD}, @var{OpenVMS}, + @var{NSK}, @var{AROS} and @var{FenixOS}. + +-@itemx --output-osabi=@var{osabi} ++@item --output-osabi=@var{osabi} + Change the ELF OSABI in the ELF header to @var{type}. The + supported ELF OSABI are the same as @option{--input-osabi}. + +diff --git i/ld/ld.texinfo w/ld/ld.texinfo +index 879bcfc..0a0845d 100644 +--- i/ld/ld.texinfo ++++ w/ld/ld.texinfo +@@ -7694,7 +7694,7 @@ If you have more than one @code{SECT} statement for the same + @printindex cp + + @tex +-% I think something like @colophon should be in texinfo. In the ++% I think something like @@colophon should be in texinfo. In the + % meantime: + \long\def\colophon{\hbox to0pt{}\vfill + \centerline{The body of this manual is set in} +@@ -7705,7 +7705,7 @@ If you have more than one @code{SECT} statement for the same + \centerline{{\sl\fontname\tensl\/}} + \centerline{are used for emphasis.}\vfill} + \page\colophon +-% Blame: doc@cygnus.com, 28mar91. ++% Blame: doc@@cygnus.com, 28mar91. + @end tex + + @bye diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..19a6cce215fb --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,111 @@ +# Contributor: ABDULLATIF Mouhamadi <bourou01dev@gmail.com> + +pkgname=binutils-msp430 +pkgver=2.21.1a +pkgrel=1 +pkgdesc="A set of programs to assemble and manipulate binary and object files for the MSP430 architecture" +arch=('i686' 'x86_64') +url="http://sourceforge.net/projects/mspgcc/" +license=('GPL') +depends=('zlib') +options=('!emptydirs' '!libtool') + +_mspgcc_ver=20120406 +_gnu_mirror="http://ftpmirror.gnu.org" +_sf_base="http://sourceforge.net/projects/mspgcc/files" +_patches_base="${_sf_base}/Patches/LTS/${_mspgcc_ver}" + +_patches=() + +source=("${_sf_base}/mspgcc/mspgcc-${_mspgcc_ver}.tar.bz2" + "${_gnu_mirror}/binutils/binutils-${pkgver}.tar.bz2" + "0001_ld_makefile_libdir.patch" + "0002_binutils-texinfo-5.0-gas-doc.patch" + "0003-binutils-texinfo-5.0.patch") +sha1sums=('cc96a7233f0b1d2c106eff7db6fc00e4ed9039a8' + '525255ca6874b872540c9967a1d26acfbc7c8230' + '7a5d78fd94fd99dd544816db75a14c326c494e68' + 'b92aba28a090f214a650102ad0f0862c37b45e58' + '417b1cdb35c41a08d3ca967c165c0d79588986e9') + +_builddir=build + +prepare() { + cd ${srcdir}/binutils-2.21.1/ + + # https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=avr-binutils-atmel + # https://bugs.archlinux.org/task/34629 + sed -i "/ac_cpp=/s/\$CPPFLAGS/\$CPPFLAGS -O2/" libiberty/configure + + _patch_name="msp430-binutils-${pkgver}-${_mspgcc_ver}.patch" + (cd "${srcdir}/binutils-2.21.1" && + patch -p1 < "${srcdir}/mspgcc-${_mspgcc_ver}/${_patch_name}" && + patch -p0 < "${srcdir}/0001_ld_makefile_libdir.patch" && + patch -p1 < "${srcdir}/0002_binutils-texinfo-5.0-gas-doc.patch" && + patch -p1 < "${srcdir}/0003-binutils-texinfo-5.0.patch" && + for patch in ${_patches[@]} ; do + msg "Applying ${patch}" + patch -p1 < "${srcdir}/${patch}" + done) + + rm -frv ${_builddir} + mkdir -p ${_builddir} && cd ${_builddir} + +} + + + +build() { + cd ${srcdir}/binutils-2.21.1/ + cd ${_builddir} + CFLAGS="-Os -g0" "${srcdir}/binutils-2.21.1/configure" \ + --prefix=/usr \ + --program-prefix="msp430-" \ + --disable-multilib \ + --disable-werror \ + --disable-nls \ + --enable-install-libbfd \ + --infodir=/usr/share/info \ + --libdir=/usr/msp430/lib \ + --mandir=/usr/share/man \ + --target=msp430 + + # This checks the host environment and makes sure all the necessary + # tools are available to compile Binutils. + make configure-host + + make tooldir=/usr all +} + +check() { + cd ${srcdir}/binutils-2.21.1/${_builddir} + + # do not abort on errors - manually check log files + make -k -j1 check || true + +} + +package() { + cd ${srcdir}/binutils-2.21.1/${_builddir} + make DESTDIR=${pkgdir} tooldir=/usr install + + rm -f ${pkgdir}/usr/lib/libiberty.a + rm -f ${pkgdir}/usr/man/man1/{dlltool,nlmconv,windres}* + rm -f ${pkgdir}/usr/share/info/dir + + cd ${pkgdir}/usr/share/info + for file in as bfd binutils configure gprof ld standards ; do + mv ${file}.info "msp430-${file}.info" + done + + for bin in addr2line ar as c++filt gprof ld nm objcopy \ + objdump ranlib readelf size strings strip + do + rm -f ${pkgdir}/usr/bin/${bin} + done + + install -Dm644 "${srcdir}/binutils-2.21.1/COPYING" \ + "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" +} + +# vim:set sts=2 ts=2 sw=2 et: |