Import arm support patches

Take maintainership [1]
Convert to USES=libtool

Approved by:	zeising [1]
Tested by:	sbruno
This commit is contained in:
Baptiste Daroussin 2014-08-29 17:12:34 +00:00
parent 70c7279071
commit 95c499bbd7
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=366535
13 changed files with 196 additions and 12 deletions

View file

@ -3,11 +3,12 @@
PORTNAME= binutils
PORTVERSION= 2.24
PORTREVISION= 1
CATEGORIES= devel
MASTER_SITES= ${MASTER_SITE_SOURCEWARE}
MASTER_SITE_SUBDIR= binutils/releases
MAINTAINER= zeising@FreeBSD.org
MAINTAINER= bapt@FreeBSD.org
COMMENT= GNU binary tools
LICENSE= GPLv3 LGPL3
@ -23,7 +24,7 @@ OPTIONS_DEFINE= NLS
LICENSE_FILE_GPLv3= ${WRKSRC}/COPYING3
LICENSE_FILE_LGPL3= ${WRKSRC}/COPYING3.LIB
USES= bison tar:bzip2 gmake
USES= bison gmake libtool tar:bzip2
GNU_CONFIGURE= yes
CFLAGS+= -I${LOCALBASE}/include
@ -42,6 +43,10 @@ INFO= as \
configure \
ld
OPTIONS_SUB= yes
NLS_USES= gettext
NLS_CONFIGURE_ENABLE= nls
.include <bsd.port.options.mk>
# Actual earliest version may differ slightly
@ -52,14 +57,6 @@ PLIST_SUB+= GOLD=""
PLIST_SUB+= GOLD="@comment "
.endif
.if ${PORT_OPTIONS:MNLS}
USES+= gettext
PLIST_SUB+= NLS=""
.else
CONFIGURE_ARGS+= --disable-nls
PLIST_SUB+= NLS="@comment "
.endif
.if ${ARCH} == "amd64"
CONFIGURE_TARGET= x86_64-portbld-freebsd${OSREL}
.else
@ -75,5 +72,6 @@ post-install:
@${FIND} -ds ${STAGEDIR}${PREFIX}/${CONFIGURE_TARGET} -type d | \
${SED} -e 's,^${STAGEDIR}${PREFIX}/,@dirrm ,' >> ${TMPPLIST}
${RM} ${STAGEDIR}${PREFIX}/include/ansidecl.h
${REINPLACE_CMD} '/#include "ansidecl.h"/d' ${STAGEDIR}${PREFIX}/include/bfd.h
.include <bsd.port.mk>

View file

@ -0,0 +1,20 @@
--- bfd/config.bfd.orig 1970-01-01 00:07:43.000000000 +0000
+++ bfd/config.bfd 1970-01-01 00:09:21.000000000 +0000
@@ -323,7 +323,7 @@
targ_defvec=bfd_elf32_littlearm_vec
targ_selvecs=bfd_elf32_bigarm_vec
;;
- armeb-*-elf | arm*b-*-linux-*)
+ armeb-*-elf | arm*b-*-freebsd* | arm*b-*-linux-*)
targ_defvec=bfd_elf32_bigarm_vec
targ_selvecs=bfd_elf32_littlearm_vec
;;
@@ -331,7 +331,7 @@
targ_defvec=bfd_elf32_littlearm_vec
targ_selvecs=bfd_elf32_bigarm_vec
;;
- arm-*-elf | arm-*-freebsd* | arm*-*-linux-* | arm*-*-conix* | \
+ arm-*-elf | arm*-*-freebsd* | arm*-*-linux-* | arm*-*-conix* | \
arm*-*-uclinux* | arm-*-kfreebsd*-gnu | \
arm*-*-eabi* )
targ_defvec=bfd_elf32_littlearm_vec

View file

@ -0,0 +1,11 @@
--- gas/Makefile.am.orig 1970-01-01 00:12:34.000000000 +0000
+++ gas/Makefile.am 1970-01-01 00:13:11.000000000 +0000
@@ -296,6 +296,8 @@
config/te-386bsd.h \
config/te-aix5.h \
config/te-armeabi.h \
+ config/te-armfbsddeabi.h \
+ config/te-armfbsdvfp.h \
config/te-armlinuxeabi.h \
config/te-dynix.h \
config/te-epoc-pe.h \

View file

@ -0,0 +1,11 @@
--- gas/Makefile.in.orig 1970-01-01 00:12:39.000000000 +0000
+++ gas/Makefile.in 1970-01-01 00:13:39.000000000 +0000
@@ -565,6 +565,8 @@
config/te-386bsd.h \
config/te-aix5.h \
config/te-armeabi.h \
+ config/te-armfbsddeabi.h \
+ config/te-armfbsdvfp.h \
config/te-armlinuxeabi.h \
config/te-dynix.h \
config/te-epoc-pe.h \

View file

@ -0,0 +1,25 @@
--- gas/config/te-armfbsdeabi.h.orig 1970-01-01 00:14:12.000000000 +0000
+++ gas/config/te-armfbsdeabi.h 1970-01-01 00:14:37.000000000 +0000
@@ -0,0 +1,22 @@
+/* Copyright (C) 2004-2014 Free Software Foundation, Inc.
+
+ This file is part of GAS, the GNU Assembler.
+
+ GAS is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as
+ published by the Free Software Foundation; either version 3,
+ or (at your option) any later version.
+
+ GAS is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
+ the GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GAS; see the file COPYING. If not, write to the Free
+ Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
+ 02110-1301, USA. */
+
+#include "te-freebsd.h"
+
+#define EABI_DEFAULT EF_ARM_EABI_VER5

View file

@ -0,0 +1,25 @@
--- gas/config/te-armfbsdvfp.h.orig 1970-01-01 00:14:52.000000000 +0000
+++ gas/config/te-armfbsdvfp.h 1970-01-01 00:14:41.000000000 +0000
@@ -0,0 +1,22 @@
+/* Copyright (C) 2004-2014 Free Software Foundation, Inc.
+
+ This file is part of GAS, the GNU Assembler.
+
+ GAS is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as
+ published by the Free Software Foundation; either version 3,
+ or (at your option) any later version.
+
+ GAS is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
+ the GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GAS; see the file COPYING. If not, write to the Free
+ Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
+ 02110-1301, USA. */
+
+#include "te-armfbsdeabi.h"
+
+#define FPU_DEFAULT FPU_ARCH_VFP

View file

@ -0,0 +1,12 @@
--- gas/configure.tgt.orig 1970-01-01 00:15:16.000000000 +0000
+++ gas/configure.tgt 1970-01-01 00:16:31.000000000 +0000
@@ -136,6 +136,9 @@
arm-*-symbianelf*) fmt=elf em=symbian ;;
arm-*-kaos*) fmt=elf ;;
arm-*-conix*) fmt=elf ;;
+ arm-*-freebsd9* | armeb-*-freebsd9*) fmt=elf em=freebsd ;;
+ arm-*-freebsd* | armeb-*-freebsd*) fmt=elf em=armfbsdeabi ;;
+ arm*-*-freebsd*) fmt=elf em=armfbsdvfp ;;
arm-*-linux*aout*) fmt=aout em=linux ;;
arm-*-linux-*eabi*) fmt=elf em=armlinuxeabi ;;
arm-*-linux-*) fmt=elf em=linux ;;

View file

@ -0,0 +1,22 @@
--- ld/Makefile.am.orig 1970-01-01 00:20:49.000000000 +0000
+++ ld/Makefile.am 1970-01-01 00:30:34.000000000 +0000
@@ -165,6 +165,7 @@
earmelf_nbsd.c \
earmelf_vxworks.c \
earmelfb.c \
+ earmelfb_fbsd.c \
earmelfb_linux.c \
earmelfb_linux_eabi.c \
earmelfb_nacl.c \
@@ -765,6 +766,11 @@
$(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
$(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
${GENSCRIPTS} armelfb "$(tdir_armelfb)"
+earmelfb_fbsd.c: $(srcdir)/emulparams/armelfb_fbsd.sh \
+ $(srcdir)/emulparams/armelf_fbsd.sh \
+ $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
+ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+ ${GENSCRIPTS} armelfb_fbsd "$(tdir_armelfb_fbsd)"
earmelfb_linux.c: $(srcdir)/emulparams/armelfb_linux.sh \
$(srcdir)/emulparams/armelf_linux.sh \
$(ELF_DEPS) $(srcdir)/emultempl/armelf.em \

View file

@ -0,0 +1,30 @@
--- ld/Makefile.in.orig 2013-11-26 11:37:33.000000000 +0000
+++ ld/Makefile.in 2014-05-15 23:42:02.000000000 +0000
@@ -473,6 +473,7 @@
earmelf_nbsd.c \
earmelf_vxworks.c \
earmelfb.c \
+ earmelfb_fbsd.c \
earmelfb_linux.c \
earmelfb_linux_eabi.c \
earmelfb_nacl.c \
@@ -1109,6 +1110,7 @@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf_nbsd.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf_vxworks.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelfb.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelfb_fbsd.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelfb_linux.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelfb_linux_eabi.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelfb_nacl.Po@am__quote@
@@ -2249,6 +2251,11 @@
$(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
$(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
${GENSCRIPTS} armelfb "$(tdir_armelfb)"
+earmelfb_fbsd.c: $(srcdir)/emulparams/armelfb_fbsd.sh \
+ $(srcdir)/emulparams/armelf_fbsd.sh \
+ $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
+ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+ ${GENSCRIPTS} armelfb_fbsd "$(tdir_armelfb_fbsd)"
earmelfb_linux.c: $(srcdir)/emulparams/armelfb_linux.sh \
$(srcdir)/emulparams/armelf_linux.sh \
$(ELF_DEPS) $(srcdir)/emultempl/armelf.em \

View file

@ -0,0 +1,16 @@
--- ld/configure.tgt.orig 1970-01-01 00:26:50.000000000 +0000
+++ ld/configure.tgt 1970-01-01 00:29:22.000000000 +0000
@@ -81,9 +81,11 @@
arm-*-aout | armel-*-aout) targ_emul=armaoutl ;;
armeb-*-aout) targ_emul=armaoutb ;;
arm-*-coff) targ_emul=armcoff ;;
-arm-*-freebsd* | arm-*-kfreebsd*-gnu)
+arm*b-*-freebsd*) targ_emul=armelfb_fbsd
+ targ_extra_emuls="armelf_fbsd armelf" ;;
+arm*-*-freebsd* | arm-*-kfreebsd*-gnu)
targ_emul=armelf_fbsd
- targ_extra_emuls="armelf" ;;
+ targ_extra_emuls="armelfb_fbsd armelf" ;;
armeb-*-netbsdelf*) targ_emul=armelfb_nbsd;
targ_extra_emuls="armelf_nbsd armelf armnbsd" ;;
arm-*-netbsdelf*) targ_emul=armelf_nbsd;

View file

@ -0,0 +1,11 @@
--- ld/emulparams/armelf_fbsd.sh.orig 1970-01-01 00:21:26.000000000 +0000
+++ ld/emulparams/armelf_fbsd.sh 1970-01-01 00:25:53.000000000 +0000
@@ -1,3 +1,8 @@
. ${srcdir}/emulparams/armelf.sh
. ${srcdir}/emulparams/elf_fbsd.sh
TARGET2_TYPE=got-rel
+MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
+GENERATE_PIE_SCRIPT=yes
+
+unset STACK_ADDR
+unset EMBEDDED

View file

@ -0,0 +1,5 @@
--- ld/emulparams/armelfb_fbsd.sh.orig 1970-01-01 00:21:38.000000000 +0000
+++ ld/emulparams/armelfb_fbsd.sh 1970-01-01 00:25:49.000000000 +0000
@@ -0,0 +1,2 @@
+. ${srcdir}/emulparams/armelf_fbsd.sh
+OUTPUT_FORMAT="elf32-bigarm"

View file

@ -22,9 +22,7 @@ include/dis-asm.h
%%GOLD%%include/plugin-api.h
include/symcat.h
lib/libbfd.a
lib/libbfd.la
lib/libopcodes.a
lib/libopcodes.la
man/man1/addr2line.1.gz
man/man1/ar.1.gz
man/man1/as.1.gz