diff options
author | 2011-04-24 21:14:24 +0400 | |
---|---|---|
committer | 2011-04-24 21:14:24 +0400 | |
commit | de02a6791bbf36360f5b68dfa7db8b328c4f30d9 (patch) | |
tree | 401bed752863df536cecea6dc7ce113f1553911f | |
parent | Add profiles/ (diff) | |
download | gentoo-openbsd-de02a6791bbf36360f5b68dfa7db8b328c4f30d9.tar.gz gentoo-openbsd-de02a6791bbf36360f5b68dfa7db8b328c4f30d9.tar.bz2 gentoo-openbsd-de02a6791bbf36360f5b68dfa7db8b328c4f30d9.zip |
Add sys-devel/binutils
-rw-r--r-- | sys-devel/binutils/Manifest | 5 | ||||
-rw-r--r-- | sys-devel/binutils/binutils-2.21.ebuild | 20 | ||||
-rw-r--r-- | sys-devel/binutils/files/binutils-2.21-makefiles.patch | 309 | ||||
-rw-r--r-- | sys-devel/binutils/files/binutils-2.21-obsd.patch | 1241 |
4 files changed, 1575 insertions, 0 deletions
diff --git a/sys-devel/binutils/Manifest b/sys-devel/binutils/Manifest new file mode 100644 index 0000000..b784c71 --- /dev/null +++ b/sys-devel/binutils/Manifest @@ -0,0 +1,5 @@ +AUX binutils-2.21-makefiles.patch 13779 RMD160 d4c462e03eda0f017bdbd6a9836c6825b8a44408 SHA1 2ddff3d21c0558cd8c32d91468e5232ff6f12dfb SHA256 056a9645687c86bbc3ad19e65d85a00f8498717178983c1e2000d8497d679e12 +AUX binutils-2.21-obsd.patch 40351 RMD160 e80787591e38b910c4a75fcc898c6347eecc30e1 SHA1 244e28202e90c87b4c5cf66665100f6ace72ecb7 SHA256 ccc50e824eabe52bd0407bb2434148c2d37f86f7f00ae68ffbbbd9c13e9bc5f0 +DIST binutils-2.21-patches-1.0.tar.bz2 8577 RMD160 78de2941174c9b9abf97e3bd19bd4c2fc3d7f73e SHA1 1f65e478b1bf20a2e107fefa72d0d2555ed38552 SHA256 5c6bcdd3e3faf8336c83cdbfd50999dc035b87d8101a6dad572718d6bc341c97 +DIST binutils-2.21.tar.bz2 18742991 RMD160 8d2ebab3287a6283267879074b808d20fe9112b0 SHA1 ef93235588eb443e4c4a77f229a8d131bccaecc6 SHA256 60abec5bf448eb930a5a15acb8712612377dc8bcfb13dfd5131228f70561d0c7 +EBUILD binutils-2.21.ebuild 625 RMD160 1c412eeab986c5a640db7676ce48e54a7e953d2a SHA1 54b55ae16f0cd5d739fa192cfa6c5c75a6b808e3 SHA256 cf2bd9234ed58fbeff1bfc7c46e819047e9d576c4ca272275f5746bda02b96a5 diff --git a/sys-devel/binutils/binutils-2.21.ebuild b/sys-devel/binutils/binutils-2.21.ebuild new file mode 100644 index 0000000..5aa8051 --- /dev/null +++ b/sys-devel/binutils/binutils-2.21.ebuild @@ -0,0 +1,20 @@ +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-devel/binutils/binutils-2.21.ebuild,v 1.2 2011/03/11 06:52:40 vapier Exp $ + +PATCHVER="1.0" +ELF2FLT_VER="" +inherit toolchain-binutils autotools eutils + +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~sparc-fbsd ~x86-fbsd" + +src_unpack(){ + toolchain-binutils_src_unpack + epatch "${FILESDIR}"/${P}-obsd.patch +# TODO: Workaround autoconf version crap + for dir in gprof gas binutils ld bfd; do + cd "${S}"/$dir + eautoreconf + cd "${S}" + done +} diff --git a/sys-devel/binutils/files/binutils-2.21-makefiles.patch b/sys-devel/binutils/files/binutils-2.21-makefiles.patch new file mode 100644 index 0000000..6ae0a24 --- /dev/null +++ b/sys-devel/binutils/files/binutils-2.21-makefiles.patch @@ -0,0 +1,309 @@ +diff --git a/bfd/Makefile.in b/bfd/Makefile.in +index b591ca6..957b090 100644 +--- a/bfd/Makefile.in ++++ b/bfd/Makefile.in +@@ -1930,7 +1930,7 @@ host-aout.lo: Makefile + aout-params.h: gen-aout + ./gen-aout host > aout-params.h + gen-aout: $(srcdir)/gen-aout.c Makefile +- $(CC) -o gen-aout $(CFLAGS) $(LFLAGS) $(srcdir)/gen-aout.c ++ $(CC) -o gen-aout $(CSEARCH) $(CFLAGS) $(LFLAGS) $(srcdir)/gen-aout.c + + $(BFD_H): stmp-bfd-h ; @true + +diff --git a/binutils/Makefile.in b/binutils/Makefile.in +index fddc931..0414ee3 100644 +--- a/binutils/Makefile.in ++++ b/binutils/Makefile.in +@@ -36,11 +36,11 @@ build_triplet = @build@ + host_triplet = @host@ + target_triplet = @target@ + bin_PROGRAMS = $(am__EXEEXT_6) $(am__EXEEXT_7) $(am__EXEEXT_8) \ +- $(am__EXEEXT_9) $(am__EXEEXT_10) $(am__EXEEXT_11) \ +- @BUILD_NLMCONV@ @BUILD_SRCONV@ @BUILD_DLLTOOL@ @BUILD_WINDRES@ \ +- @BUILD_WINDMC@ $(am__EXEEXT_12) $(am__EXEEXT_13) \ +- $(am__EXEEXT_14) @BUILD_DLLWRAP@ @BUILD_INSTALL_MISC@ +-noinst_PROGRAMS = $(am__EXEEXT_18) @BUILD_MISC@ ++ $(am__EXEEXT_9) $(am__EXEEXT_10) @BUILD_NLMCONV@ \ ++ @BUILD_SRCONV@ @BUILD_DLLTOOL@ @BUILD_WINDRES@ @BUILD_WINDMC@ \ ++ $(am__EXEEXT_11) $(am__EXEEXT_12) $(am__EXEEXT_13) \ ++ @BUILD_DLLWRAP@ @BUILD_INSTALL_MISC@ $(am__empty) ++noinst_PROGRAMS = $(am__EXEEXT_14) @BUILD_MISC@ + EXTRA_PROGRAMS = $(am__EXEEXT_1) srconv$(EXEEXT) sysdump$(EXEEXT) \ + coffdump$(EXEEXT) $(am__EXEEXT_2) $(am__EXEEXT_3) \ + $(am__EXEEXT_4) $(am__EXEEXT_5) +@@ -85,20 +85,16 @@ am__EXEEXT_2 = dlltool$(EXEEXT) + am__EXEEXT_3 = windres$(EXEEXT) + am__EXEEXT_4 = windmc$(EXEEXT) + am__EXEEXT_5 = dllwrap$(EXEEXT) +-am__EXEEXT_6 = size$(EXEEXT) +-am__EXEEXT_7 = objdump$(EXEEXT) +-am__EXEEXT_8 = ar$(EXEEXT) +-am__EXEEXT_9 = strings$(EXEEXT) +-am__EXEEXT_10 = ranlib$(EXEEXT) +-am__EXEEXT_11 = objcopy$(EXEEXT) +-am__EXEEXT_12 = addr2line$(EXEEXT) +-am__EXEEXT_13 = readelf$(EXEEXT) +-am__EXEEXT_14 = elfedit$(EXEEXT) ++am__EXEEXT_6 = objdump$(EXEEXT) ++am__EXEEXT_7 = ar$(EXEEXT) ++am__EXEEXT_8 = strings$(EXEEXT) ++am__EXEEXT_9 = ranlib$(EXEEXT) ++am__EXEEXT_10 = objcopy$(EXEEXT) ++am__EXEEXT_11 = addr2line$(EXEEXT) ++am__EXEEXT_12 = readelf$(EXEEXT) ++am__EXEEXT_13 = elfedit$(EXEEXT) + am__installdirs = "$(DESTDIR)$(bindir)" +-am__EXEEXT_15 = nm-new$(EXEEXT) +-am__EXEEXT_16 = strip-new$(EXEEXT) +-am__EXEEXT_17 = cxxfilt$(EXEEXT) +-am__EXEEXT_18 = $(am__EXEEXT_15) $(am__EXEEXT_16) $(am__EXEEXT_17) ++am__EXEEXT_14 = + PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS) + am__objects_1 = bucomm.$(OBJEXT) version.$(OBJEXT) filemode.$(OBJEXT) + am_addr2line_OBJECTS = addr2line.$(OBJEXT) $(am__objects_1) +@@ -113,9 +109,6 @@ am_coffdump_OBJECTS = coffdump.$(OBJEXT) coffgrok.$(OBJEXT) \ + $(am__objects_1) + coffdump_OBJECTS = $(am_coffdump_OBJECTS) + coffdump_LDADD = $(LDADD) +-am_cxxfilt_OBJECTS = cxxfilt.$(OBJEXT) $(am__objects_1) +-cxxfilt_OBJECTS = $(am_cxxfilt_OBJECTS) +-cxxfilt_LDADD = $(LDADD) + am_dlltool_OBJECTS = dlltool.$(OBJEXT) defparse.$(OBJEXT) \ + deflex.$(OBJEXT) $(am__objects_1) + dlltool_OBJECTS = $(am_dlltool_OBJECTS) +@@ -127,9 +120,6 @@ am_nlmconv_OBJECTS = nlmconv.$(OBJEXT) nlmheader.$(OBJEXT) \ + $(am__objects_1) + nlmconv_OBJECTS = $(am_nlmconv_OBJECTS) + nlmconv_LDADD = $(LDADD) +-am_nm_new_OBJECTS = nm.$(OBJEXT) $(am__objects_1) +-nm_new_OBJECTS = $(am_nm_new_OBJECTS) +-nm_new_LDADD = $(LDADD) + am__objects_2 = rddbg.$(OBJEXT) debug.$(OBJEXT) stabs.$(OBJEXT) \ + ieee.$(OBJEXT) rdcoff.$(OBJEXT) + am__objects_3 = $(am__objects_2) wrstabs.$(OBJEXT) +@@ -147,9 +137,6 @@ ranlib_OBJECTS = $(am_ranlib_OBJECTS) + am_readelf_OBJECTS = readelf.$(OBJEXT) version.$(OBJEXT) \ + unwind-ia64.$(OBJEXT) dwarf.$(OBJEXT) + readelf_OBJECTS = $(am_readelf_OBJECTS) +-am_size_OBJECTS = size.$(OBJEXT) $(am__objects_1) +-size_OBJECTS = $(am_size_OBJECTS) +-size_LDADD = $(LDADD) + am_srconv_OBJECTS = srconv.$(OBJEXT) coffgrok.$(OBJEXT) \ + $(am__objects_1) + srconv_OBJECTS = $(am_srconv_OBJECTS) +@@ -157,10 +144,6 @@ srconv_LDADD = $(LDADD) + am_strings_OBJECTS = strings.$(OBJEXT) $(am__objects_1) + strings_OBJECTS = $(am_strings_OBJECTS) + strings_LDADD = $(LDADD) +-am_strip_new_OBJECTS = objcopy.$(OBJEXT) is-strip.$(OBJEXT) \ +- rename.$(OBJEXT) $(am__objects_3) $(am__objects_1) +-strip_new_OBJECTS = $(am_strip_new_OBJECTS) +-strip_new_LDADD = $(LDADD) + am_sysdump_OBJECTS = sysdump.$(OBJEXT) $(am__objects_1) + sysdump_OBJECTS = $(am_sysdump_OBJECTS) + sysdump_LDADD = $(LDADD) +@@ -195,12 +178,11 @@ YACCCOMPILE = $(YACC) $(YFLAGS) $(AM_YFLAGS) + LTYACCCOMPILE = $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=compile $(YACC) $(YFLAGS) $(AM_YFLAGS) + SOURCES = $(addr2line_SOURCES) $(ar_SOURCES) $(EXTRA_ar_SOURCES) \ +- $(coffdump_SOURCES) $(cxxfilt_SOURCES) $(dlltool_SOURCES) \ +- $(dllwrap_SOURCES) $(elfedit_SOURCES) $(nlmconv_SOURCES) \ +- $(nm_new_SOURCES) $(objcopy_SOURCES) $(objdump_SOURCES) \ +- $(ranlib_SOURCES) $(readelf_SOURCES) $(size_SOURCES) \ +- $(srconv_SOURCES) $(strings_SOURCES) $(strip_new_SOURCES) \ +- $(sysdump_SOURCES) $(windmc_SOURCES) $(windres_SOURCES) ++ $(coffdump_SOURCES) $(dlltool_SOURCES) $(dllwrap_SOURCES) \ ++ $(elfedit_SOURCES) $(nlmconv_SOURCES) $(objcopy_SOURCES) \ ++ $(objdump_SOURCES) $(ranlib_SOURCES) $(readelf_SOURCES) \ ++ $(srconv_SOURCES) $(strings_SOURCES) $(sysdump_SOURCES) \ ++ $(windmc_SOURCES) $(windres_SOURCES) + RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ +@@ -403,7 +385,7 @@ OBJDUMP_PROG = objdump + + # This is the demangler, as a standalone program. + # Note: This one is used as the installed name too, unlike the above. +-DEMANGLER_PROG = cxxfilt ++#DEMANGLER_PROG=cxxfilt + ADDR2LINE_PROG = addr2line + NLMCONV_PROG = nlmconv + DLLTOOL_PROG = dlltool +@@ -411,10 +393,12 @@ WINDRES_PROG = windres + WINDMC_PROG = windmc + DLLWRAP_PROG = dllwrap + SRCONV_PROG = srconv$(EXEEXT) sysdump$(EXEEXT) coffdump$(EXEEXT) +-RENAMED_PROGS = $(NM_PROG) $(STRIP_PROG) $(DEMANGLER_PROG) ++ ++#RENAMED_PROGS = $(NM_PROG) $(STRIP_PROG) $(DEMANGLER_PROG) ++RENAMED_PROGS = $(STRIP_PROGS) + + # Stuff that goes in tooldir/ if appropriate. +-TOOL_PROGS = nm-new strip-new ar ranlib dlltool objdump objcopy ++TOOL_PROGS = strip-new ar ranlib dlltool objdump objcopy + BASEDIR = $(srcdir)/.. + BFDDIR = $(BASEDIR)/bfd + INCDIR = $(BASEDIR)/include +@@ -513,7 +497,8 @@ strip_new_SOURCES = objcopy.c is-strip.c rename.c $(WRITE_DEBUG_SRCS) $(BULIBS) + nm_new_SOURCES = nm.c $(BULIBS) + objdump_SOURCES = objdump.c dwarf.c prdbg.c $(DEBUG_SRCS) $(BULIBS) + objdump_LDADD = $(OPCODES) $(BFDLIB) $(LIBIBERTY) $(LIBINTL) +-cxxfilt_SOURCES = cxxfilt.c $(BULIBS) ++ ++#cxxfilt_SOURCES = cxxfilt.c $(BULIBS) + ar_SOURCES = arparse.y arlex.l ar.c not-ranlib.c arsup.c rename.c binemul.c \ + emul_$(EMULATION).c $(BULIBS) + +@@ -676,9 +661,6 @@ ar$(EXEEXT): $(ar_OBJECTS) $(ar_DEPENDENCIES) + coffdump$(EXEEXT): $(coffdump_OBJECTS) $(coffdump_DEPENDENCIES) + @rm -f coffdump$(EXEEXT) + $(LINK) $(coffdump_OBJECTS) $(coffdump_LDADD) $(LIBS) +-cxxfilt$(EXEEXT): $(cxxfilt_OBJECTS) $(cxxfilt_DEPENDENCIES) +- @rm -f cxxfilt$(EXEEXT) +- $(LINK) $(cxxfilt_OBJECTS) $(cxxfilt_LDADD) $(LIBS) + defparse.h: defparse.c + @if test ! -f $@; then \ + rm -f defparse.c; \ +@@ -701,9 +683,6 @@ nlmheader.h: nlmheader.c + nlmconv$(EXEEXT): $(nlmconv_OBJECTS) $(nlmconv_DEPENDENCIES) + @rm -f nlmconv$(EXEEXT) + $(LINK) $(nlmconv_OBJECTS) $(nlmconv_LDADD) $(LIBS) +-nm-new$(EXEEXT): $(nm_new_OBJECTS) $(nm_new_DEPENDENCIES) +- @rm -f nm-new$(EXEEXT) +- $(LINK) $(nm_new_OBJECTS) $(nm_new_LDADD) $(LIBS) + objcopy$(EXEEXT): $(objcopy_OBJECTS) $(objcopy_DEPENDENCIES) + @rm -f objcopy$(EXEEXT) + $(LINK) $(objcopy_OBJECTS) $(objcopy_LDADD) $(LIBS) +@@ -716,18 +695,12 @@ ranlib$(EXEEXT): $(ranlib_OBJECTS) $(ranlib_DEPENDENCIES) + readelf$(EXEEXT): $(readelf_OBJECTS) $(readelf_DEPENDENCIES) + @rm -f readelf$(EXEEXT) + $(LINK) $(readelf_OBJECTS) $(readelf_LDADD) $(LIBS) +-size$(EXEEXT): $(size_OBJECTS) $(size_DEPENDENCIES) +- @rm -f size$(EXEEXT) +- $(LINK) $(size_OBJECTS) $(size_LDADD) $(LIBS) + srconv$(EXEEXT): $(srconv_OBJECTS) $(srconv_DEPENDENCIES) + @rm -f srconv$(EXEEXT) + $(LINK) $(srconv_OBJECTS) $(srconv_LDADD) $(LIBS) + strings$(EXEEXT): $(strings_OBJECTS) $(strings_DEPENDENCIES) + @rm -f strings$(EXEEXT) + $(LINK) $(strings_OBJECTS) $(strings_LDADD) $(LIBS) +-strip-new$(EXEEXT): $(strip_new_OBJECTS) $(strip_new_DEPENDENCIES) +- @rm -f strip-new$(EXEEXT) +- $(LINK) $(strip_new_OBJECTS) $(strip_new_LDADD) $(LIBS) + sysdump$(EXEEXT): $(sysdump_OBJECTS) $(sysdump_DEPENDENCIES) + @rm -f sysdump$(EXEEXT) + $(LINK) $(sysdump_OBJECTS) $(sysdump_LDADD) $(LIBS) +diff --git a/gas/Makefile.in b/gas/Makefile.in +index 1aa9bb4..f73f7d2 100644 +--- a/gas/Makefile.in ++++ b/gas/Makefile.in +@@ -549,6 +549,7 @@ TARG_ENV_HFILES = \ + config/te-macos.h \ + config/te-nbsd.h \ + config/te-nbsd532.h \ ++ config/te-obsd.h \ + config/te-netware.h \ + config/te-pc532mach.h \ + config/te-pe.h \ +@@ -612,6 +613,7 @@ AM_CPPFLAGS = -I. -I$(srcdir) -I../bfd -I$(srcdir)/config \ + # How to link with both our special library facilities + # and the system's installed libraries. + GASLIBS = @OPCODES_LIB@ ../bfd/libbfd.la ../libiberty/libiberty.a ++GASLIBSDEPS = @OPCODES_LIB@ ../bfd/libbfd.la + + # Files to be copied away after each stage in building. + STAGESTUFF = *.@OBJEXT@ $(noinst_PROGRAMS) +@@ -620,7 +622,7 @@ as_new_LDADD = $(TARG_CPU_O) $(OBJ_FORMAT_O) $(ATOF_TARG_O) \ + $(extra_objects) $(GASLIBS) $(LIBINTL) $(LIBM) + + as_new_DEPENDENCIES = $(TARG_CPU_O) $(OBJ_FORMAT_O) $(ATOF_TARG_O) \ +- $(extra_objects) $(GASLIBS) $(LIBINTL_DEP) ++ $(extra_objects) $(GASLIBSDEPS) $(LIBINTL_DEP) + + + # The m68k operand parser. +diff --git a/ld/Makefile.in b/ld/Makefile.in +index dac81b3..1230342 100644 +--- a/ld/Makefile.in ++++ b/ld/Makefile.in +@@ -537,6 +537,7 @@ ALL_EMULATION_SOURCES = \ + eelf_i386_be.c \ + eelf_i386_chaos.c \ + eelf_i386_fbsd.c \ ++ eelf_i386_obsd.c \ + eelf_i386_ldso.c \ + eelf_i386_sol2.c \ + eelf_i386_vxworks.c \ +@@ -581,6 +582,7 @@ ALL_EMULATION_SOURCES = \ + ei386nbsd.c \ + ei386nto.c \ + ei386nw.c \ ++ ei386obsd.c \ + ei386pe.c \ + ei386pe_posix.c \ + ei386pep.c \ +@@ -742,6 +744,7 @@ ALL_64_EMULATION_SOURCES = \ + eshlelf64_nbsd.c \ + eelf_x86_64.c \ + eelf_x86_64_fbsd.c \ ++ eelf_x86_64_obsd.c \ + eelf_x86_64_sol2.c \ + eelf_l1om.c \ + eelf_l1om_fbsd.c \ +@@ -1131,6 +1134,7 @@ distclean-compile: + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_i386_chaos.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_i386_fbsd.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_i386_ldso.Po@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_i386_obsd.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_i386_sol2.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_i386_vxworks.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_l1om.Po@am__quote@ +@@ -1138,6 +1142,7 @@ distclean-compile: + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_s390.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_x86_64.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_x86_64_fbsd.Po@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_x86_64_obsd.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_x86_64_sol2.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/egld960.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/egld960coff.Po@am__quote@ +@@ -1180,6 +1185,7 @@ distclean-compile: + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ei386nbsd.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ei386nto.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ei386nw.Po@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ei386obsd.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ei386pe.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ei386pe_posix.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ei386pep.Po@am__quote@ +@@ -2606,6 +2612,10 @@ eelf_l1om_fbsd.c: $(srcdir)/emulparams/elf_l1om_fbsd.sh \ + $(srcdir)/emulparams/elf_l1om.sh \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf_l1om_fbsd "$(tdir_elf_l1om_fbsd)" ++eelf_x86_64_obsd.c: $(srcdir)/emulparams/elf_x86_64_obsd.sh \ ++ $(srcdir)/emulparams/elf_x86_64.sh \ ++ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ++ ${GENSCRIPTS} elf_x86_64_obsd "$(tdir_elf_x86_64_obsd)" + eelf_i386_be.c: $(srcdir)/emulparams/elf_i386_be.sh \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf_i386_be "$(tdir_elf_i386_be)" +@@ -2616,6 +2626,10 @@ eelf_i386_fbsd.c: $(srcdir)/emulparams/elf_i386_fbsd.sh \ + $(srcdir)/emulparams/elf_i386.sh \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf_i386_fbsd "$(tdir_elf_i386_fbsd)" ++eelf_i386_obsd.c: $(srcdir)/emulparams/elf_i386_obsd.sh \ ++ $(srcdir)/emulparams/elf_i386.sh \ ++ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ++ ${GENSCRIPTS} elf_i386_obsd "$(tdir_elf_i386_obsd)" + eelf_i386_ldso.c: $(srcdir)/emulparams/elf_i386_ldso.sh \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf_i386_ldso "$(tdir_elf_i386_ldso)" +@@ -2765,6 +2779,9 @@ ei386nto.c: $(srcdir)/emulparams/i386nto.sh \ + ei386nw.c: $(srcdir)/emulparams/i386nw.sh \ + $(ELF_DEPS) $(srcdir)/scripttempl/nw.sc ${GEN_DEPENDS} + ${GENSCRIPTS} i386nw "$(tdir_i386nw)" ++ei386obsd.c: $(srcdir)/emulparams/i386obsd.sh \ ++ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} ++ ${GENSCRIPTS} i386obsd "$(tdir_i386obsd)" + ei386pe.c: $(srcdir)/emulparams/i386pe.sh \ + $(srcdir)/emultempl/pe.em $(srcdir)/scripttempl/pe.sc ${GEN_DEPENDS} + ${GENSCRIPTS} i386pe "$(tdir_i386pe)" diff --git a/sys-devel/binutils/files/binutils-2.21-obsd.patch b/sys-devel/binutils/files/binutils-2.21-obsd.patch new file mode 100644 index 0000000..59e9137 --- /dev/null +++ b/sys-devel/binutils/files/binutils-2.21-obsd.patch @@ -0,0 +1,1241 @@ +From a2105dfa9d60aa65e72b39d676031f5ebfe07ea3 Mon Sep 17 00:00:00 2001 + +From: Maxim <kolmax94@gmail.com> + +Subject: [PATCH 01/27] Port bfd/config.bfd patch +--- + + bfd/config.bfd | 26 +++++++++++++++++++++----- + 1 files changed, 21 insertions(+), 5 deletions(-) + + +diff --git a/bfd/config.bfd b/bfd/config.bfd +index 9b719d8..2916bf0 100644 +--- a/bfd/config.bfd ++++ b/bfd/config.bfd +@@ -271,7 +271,7 @@ case "${targ}" in + targ_defvec=bfd_elf32_littlearm_vec + targ_selvecs=bfd_elf32_bigarm_vec + ;; +- armeb-*-elf | arm*b-*-linux-*) ++ armeb-*-elf | arm*b-*-linux-* | armeb-*-openbsd* ) + targ_defvec=bfd_elf32_bigarm_vec + targ_selvecs=bfd_elf32_littlearm_vec + ;; +@@ -281,7 +281,7 @@ case "${targ}" in + ;; + arm-*-elf | arm-*-freebsd* | arm*-*-linux-* | arm*-*-conix* | \ + arm*-*-uclinux* | arm-*-kfreebsd*-gnu | \ +- arm*-*-eabi* ) ++ arm*-*-eabi* | arm-*-openbsd* ) + targ_defvec=bfd_elf32_littlearm_vec + targ_selvecs=bfd_elf32_bigarm_vec + ;; +@@ -443,6 +443,10 @@ case "${targ}" in + ;; + + #ifdef BFD64 ++ hppa64*-*-openbsd*) ++ targ_defvec=bfd_elf64_hppa_vec ++ targ_selfvecs=bfd_elf64_hppa_linux_vec ++ ;; + hppa*64*-*-linux-*) + targ_defvec=bfd_elf64_hppa_linux_vec + targ_selvecs=bfd_elf64_hppa_vec +@@ -530,6 +534,10 @@ case "${targ}" in + targ_defvec=go32coff_vec + targ_selvecs="go32stubbedcoff_vec i386aout_vec" + ;; ++ hppa64*-*-openbsd*) ++ targ_defvec=bfd_elf64_hppa_vec ++ targ_selfvecs=bfd_elf64_hppa_linux_vec ++ ;; + i[3-7]86-*-sysv* | i[3-7]86-*-isc* | i[3-7]86-*-sco* | i[3-7]86-*-coff | \ + i[3-7]86-*-aix*) + targ_defvec=i386coff_vec +@@ -622,11 +630,16 @@ case "${targ}" in + targ_selvecs="bfd_elf32_i386_freebsd_vec i386coff_vec i386pei_vec x86_64pei_vec bfd_elf32_i386_vec bfd_elf64_x86_64_vec bfd_elf64_l1om_vec bfd_elf64_l1om_freebsd_vec" + want64=true + ;; +- x86_64-*-netbsd* | x86_64-*-openbsd*) ++ x86_64-*-netbsd*) + targ_defvec=bfd_elf64_x86_64_vec + targ_selvecs="bfd_elf32_i386_vec i386netbsd_vec i386coff_vec i386pei_vec x86_64pei_vec bfd_elf64_l1om_vec" + want64=true + ;; ++ x86_64-*-openbsd*) ++ targ_defvec=bfd_elf64_x86_64_vec ++ targ_selfvecs="bfd_elf32_i386_vec i386coff_vec bfd_efi_app_ia32_vec" ++ want64=true ++ ;; + x86_64-*-linux-*) + targ_defvec=bfd_elf64_x86_64_vec + targ_selvecs="bfd_elf32_i386_vec i386linux_vec i386pei_vec x86_64pei_vec bfd_elf64_l1om_vec" +@@ -1043,7 +1056,7 @@ case "${targ}" in + targ_defvec=pc532machaout_vec + targ_underscore=yes + ;; +- ns32k-*-netbsd* | ns32k-*-lites* | ns32k-*-openbsd*) ++ ns32k-*-netbsd* | ns32k-*-lites*) + targ_defvec=pc532netbsd_vec + targ_underscore=yes + ;; +@@ -1300,7 +1313,10 @@ case "${targ}" in + targ_selvecs="shlcoff_vec shlcoff_small_vec" + targ_underscore=yes + ;; +- ++ sh*-*-openbsd*) ++ targ_defvec=bfd_elf32_shlobsd_vec ++ targ_selvecs="bfd_elf32_shobsd_vec" ++ ;; + #ifdef BFD64 + shl*-*-elf* | sh[1234]l*-*-elf* | sh3el*-*-elf* | shl*-*-kaos*) + targ_defvec=bfd_elf32_shl_vec +From c5b873b76f42263fc8cdadfa4e75ed2f15ef2c28 Mon Sep 17 00:00:00 2001 + +From: Maxim <kolmax94@gmail.com> + +Subject: [PATCH 01/26] Port bfd/configure.in patch +--- + + bfd/configure.in | 2 ++ + 1 files changed, 2 insertions(+), 0 deletions(-) + + +diff --git a/bfd/configure.in b/bfd/configure.in +index fce1dd7..e57d832 100644 +--- a/bfd/configure.in ++++ b/bfd/configure.in +@@ -779,8 +779,10 @@ do + bfd_elf32_shl_symbian_vec) tb="$tb elf32-sh-symbian.lo elf32-sh64-com.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo" ;; + bfd_elf32_shlin_vec) tb="$tb elf32-sh.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;; + bfd_elf32_shlnbsd_vec) tb="$tb elf32-sh.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;; ++ bfd_elf32_shlobsd_vec) tb="$tb elf32-sh.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;; + bfd_elf32_shlvxworks_vec) tb="$tb elf32-sh.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo" ;; + bfd_elf32_shnbsd_vec) tb="$tb elf32-sh.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;; ++ bfd_elf32_shobsd_vec) tb="$tb elf32-sh.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;; + bfd_elf32_shvxworks_vec) tb="$tb elf32-sh.lo elf-vxworks.lo elf32.lo $elf coff-sh.lo" ;; + bfd_elf32_sparc_vec) tb="$tb elf32-sparc.lo elfxx-sparc.lo elf-vxworks.lo elf32.lo $elf" ;; + bfd_elf32_sparc_sol2_vec) tb="$tb elf32-sparc.lo elfxx-sparc.lo elf-vxworks.lo elf32.lo $elf" ;; +From bf789c2ba2a436c7e8dc0a8ff4e34bc28af15e2b Mon Sep 17 00:00:00 2001 + +From: Maxim <kolmax94@gmail.com> + +Subject: [PATCH 09/26] Port bfd/dlltool.c and bfd/dllwrap.c patch +--- + + binutils/dlltool.c | 4 ++++ + binutils/dllwrap.c | 22 ++++++++++------------ + 2 files changed, 14 insertions(+), 12 deletions(-) + + +diff --git a/binutils/dlltool.c b/binutils/dlltool.c +index 8c72647..1d266ed 100644 +--- a/binutils/dlltool.c ++++ b/binutils/dlltool.c +@@ -1297,7 +1297,11 @@ run (const char *what, char *args) + int i; + const char **argv; + char *errmsg_fmt, *errmsg_arg; ++#if defined(__MSDOS__) && !defined(__GO32__) + char *temp_base = choose_temp_base (); ++#else ++ char *temp_base = NULL; ++#endif + + inform ("run: %s %s", what, args); + +diff --git a/binutils/dllwrap.c b/binutils/dllwrap.c +index 4e48f3e..f121d51 100644 +--- a/binutils/dllwrap.c ++++ b/binutils/dllwrap.c +@@ -358,7 +358,11 @@ run (const char *what, char *args) + int i; + const char **argv; + char *errmsg_fmt, *errmsg_arg; ++#if defined(__MSDOS__) && !defined(__GO32__) + char *temp_base = choose_temp_base (); ++#else ++ char *temp_base = NULL; ++#endif + int in_quote; + char sep; + +@@ -823,13 +827,9 @@ main (int argc, char **argv) + + if (! def_file_seen) + { +- char *fileprefix = choose_temp_base (); +- +- def_file_name = (char *) xmalloc (strlen (fileprefix) + 5); +- sprintf (def_file_name, "%s.def", +- (dontdeltemps) ? mybasename (fileprefix) : fileprefix); +- delete_def_file = 1; +- free (fileprefix); ++ def_file_name = make_temp_file (".def"); ++ if (dontdeltemps) ++ def_file_name = mybasename (def_file_name); + delete_def_file = 1; + warn (_("no export definition file provided.\n\ + Creating one, but that may not be what you want")); +@@ -1036,12 +1036,10 @@ Creating one, but that may not be what you want")); + + if (! base_file_name) + { +- char *fileprefix = choose_temp_base (); +- base_file_name = (char *) xmalloc (strlen (fileprefix) + 6); +- sprintf (base_file_name, "%s.base", +- (dontdeltemps) ? mybasename (fileprefix) : fileprefix); ++ base_file_name = make_temp_file (".base"); ++ if (dontdeltemps) ++ base_file_name = mybasename (base_file_name); + delete_base_file = 1; +- free (fileprefix); + } + + { +From 9ec7febe77cbd6b0420d976de07b96eadd9345d1 Mon Sep 17 00:00:00 2001 + +From: Maxim <kolmax94@gmail.com> + +Subject: [PATCH 02/26] Port bfd/elf32-sh.c patch +--- + + bfd/elf32-sh.c | 18 ++++++++++++++++++ + 1 files changed, 18 insertions(+), 0 deletions(-) + + +diff --git a/bfd/elf32-sh.c b/bfd/elf32-sh.c +index e15f51c..23c9457 100644 +--- a/bfd/elf32-sh.c ++++ b/bfd/elf32-sh.c +@@ -7629,6 +7629,24 @@ sh_elf_encode_eh_address (bfd *abfd, + + #include "elf32-target.h" + ++/* OpenBSD support. */ ++#undef TARGET_BIG_SYM ++#define TARGET_BIG_SYM bfd_elf32_shobsd_vec ++#undef TARGET_BIG_NAME ++#define TARGET_BIG_NAME "elf32-sh-obsd" ++#undef TARGET_LITTLE_SYM ++#define TARGET_LITTLE_SYM bfd_elf32_shlobsd_vec ++#undef TARGET_LITTLE_NAME ++#define TARGET_LITTLE_NAME "elf32-shl-obsd" ++#undef ELF_MAXPAGESIZE ++#define ELF_MAXPAGESIZE 0x10000 ++#undef elf_symbol_leading_char ++#define elf_symbol_leading_char 0 ++#undef elf32_bed ++#define elf32_bed elf32_sh_obsd_bed ++ ++#include "elf32-target.h" ++ + /* NetBSD support. */ + #undef TARGET_BIG_SYM + #define TARGET_BIG_SYM bfd_elf32_shnbsd_vec +From 3cc9fdc96ec097a5dfab1224ca054cf7fd551257 Mon Sep 17 00:00:00 2001 + +From: Maxim <kolmax94@gmail.com> + +Subject: [PATCH 03/26] Port bfd/elf.c patch +--- + + bfd/elf.c | 9 ++++++--- + 1 files changed, 6 insertions(+), 3 deletions(-) + + +diff --git a/bfd/elf.c b/bfd/elf.c +index 4f326a7..d7afa6c 100644 +--- a/bfd/elf.c ++++ b/bfd/elf.c +@@ -3489,9 +3489,12 @@ get_program_header_size (bfd *abfd, struct bfd_link_info *info) + asection *s; + const struct elf_backend_data *bed; + +- /* Assume we will need exactly two PT_LOAD segments: one for text +- and one for data. */ +- segs = 2; ++ /* We used to assume that two PT_LOAD segments would be enough, ++ code and data, with the change to pad the PLT and GOT, this is no ++ longer true. Now there can be several PT_LOAD sections. 7 seems ++ to be enough with BSS_PLT and .rodata-X, where we have text, data, ++ GOT, dynamic, PLT, bss */ ++ segs = 7; + + s = bfd_get_section_by_name (abfd, ".interp"); + if (s != NULL && (s->flags & SEC_LOAD) != 0) +From 0b42b2ac300a254c01e270d44817de9c08ee6552 Mon Sep 17 00:00:00 2001 + +From: Maxim <kolmax94@gmail.com> + +Subject: [PATCH 05/26] Port bfd/elfxx-mips.c patch +--- + + bfd/elfxx-mips.c | 9 +++++++-- + 1 files changed, 7 insertions(+), 2 deletions(-) + + +diff --git a/bfd/elfxx-mips.c b/bfd/elfxx-mips.c +index 4718dd4..0b3c591 100644 +--- a/bfd/elfxx-mips.c ++++ b/bfd/elfxx-mips.c +@@ -10374,11 +10374,16 @@ _bfd_mips_elf_finish_dynamic_sections (bfd *output_bfd, + decided not to make. This is for the n64 irix rld, + which doesn't seem to apply any relocations if there + are trailing null entries. */ +- s = mips_elf_rel_dyn_section (info, FALSE); +- dyn.d_un.d_val = (s->reloc_count ++ if (SGI_COMPAT (output_bfd)) ++ { ++ s = mips_elf_rel_dyn_section (dynobj, FALSE); ++ dyn.d_un.d_val = (s->reloc_count + * (ABI_64_P (output_bfd) + ? sizeof (Elf64_Mips_External_Rel) + : sizeof (Elf32_External_Rel))); ++ } ++ else ++ swap_out_p = FALSE; + /* Adjust the section size too. Tools like the prelinker + can reasonably expect the values to the same. */ + elf_section_data (s->output_section)->this_hdr.sh_size +From 95b0858781c6c371f3d53a4b0303c3a6dd45efe0 Mon Sep 17 00:00:00 2001 + +From: Maxim <kolmax94@gmail.com> + +Subject: [PATCH 06/26] Port bfd/m68kopenbsd.c patch +--- + + bfd/m68kopenbsd.c | 33 +++++++++++++++++++++++++++++++++ + 1 files changed, 33 insertions(+), 0 deletions(-) + create mode 100644 bfd/m68kopenbsd.c + + +diff --git a/bfd/m68kopenbsd.c b/bfd/m68kopenbsd.c +new file mode 100644 +index 0000000..459d3b2 +--- /dev/null ++++ b/bfd/m68kopenbsd.c +@@ -0,0 +1,33 @@ ++/* BFD back-end for OpenBSD/m88k a.out binaries. ++ Copyright 2004 Free Software Foundation, Inc. ++ ++This file is part of BFD, the Binary File Descriptor library. ++ ++This program 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 2 of the License, or ++(at your option) any later version. ++ ++This program 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 this program; if not, write to the Free Software ++Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ ++ ++#define TARGET_IS_BIG_ENDIAN_P ++ ++#define TARGET_PAGE_SIZE 4096 ++ ++#define DEFAULT_ARCH bfd_arch_m88k ++#define DEFAULT_MID M_88K_OPENBSD ++ ++/* Do not "beautify" the CONCAT* macro args. Traditional C will not ++ remove whitespace added here, and thus will fail to concatenate ++ the tokens. */ ++#define MY(OP) CONCAT2 (m88kopenbsd_,OP) ++#define TARGETNAME "a.out-m88k-openbsd" ++ ++#include "netbsd.h" +From 08d9089d8293e875a0f292a5c98d50a862c7d335 Mon Sep 17 00:00:00 2001 + +From: Maxim <kolmax94@gmail.com> + +Subject: [PATCH 07/26] Port bfd/Makefile.am patch +--- + + bfd/Makefile.am | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + + +diff --git a/bfd/Makefile.am b/bfd/Makefile.am +index bf5dea4..39fcd8a 100644 +--- a/bfd/Makefile.am ++++ b/bfd/Makefile.am +@@ -884,7 +884,7 @@ host-aout.lo: Makefile + aout-params.h: gen-aout + ./gen-aout host > aout-params.h + gen-aout: $(srcdir)/gen-aout.c Makefile +- $(CC) -o gen-aout $(CFLAGS) $(LFLAGS) $(srcdir)/gen-aout.c ++ $(CC) -o gen-aout $(CSEARCH) $(CFLAGS) $(LFLAGS) $(srcdir)/gen-aout.c + + $(BFD_H): stmp-bfd-h ; @true + +From 4601313fe3212de5027223467cff767eefd45073 Mon Sep 17 00:00:00 2001 + +From: Maxim <kolmax94@gmail.com> + +Subject: [PATCH 08/26] Port bfd/targets.c patch +--- + + bfd/targets.c | 4 ++++ + 1 files changed, 4 insertions(+), 0 deletions(-) + + +diff --git a/bfd/targets.c b/bfd/targets.c +index 3e99754..8ee779b 100644 +--- a/bfd/targets.c ++++ b/bfd/targets.c +@@ -672,8 +672,10 @@ extern const bfd_target bfd_elf32_shl_vec; + extern const bfd_target bfd_elf32_shl_symbian_vec; + extern const bfd_target bfd_elf32_shlin_vec; + extern const bfd_target bfd_elf32_shlnbsd_vec; ++extern const bfd_target bfd_elf32_shlobsd_vec; + extern const bfd_target bfd_elf32_shlvxworks_vec; + extern const bfd_target bfd_elf32_shnbsd_vec; ++extern const bfd_target bfd_elf32_shobsd_vec; + extern const bfd_target bfd_elf32_shvxworks_vec; + extern const bfd_target bfd_elf32_sparc_vec; + extern const bfd_target bfd_elf32_sparc_sol2_vec; +@@ -1015,8 +1017,10 @@ static const bfd_target * const _bfd_target_vector[] = + &bfd_elf32_shl_symbian_vec, + &bfd_elf32_shlin_vec, + &bfd_elf32_shlnbsd_vec, ++ &bfd_elf32_shlobsd_vec, + &bfd_elf32_shlvxworks_vec, + &bfd_elf32_shnbsd_vec, ++ &bfd_elf32_shobsd_vec, + &bfd_elf32_shvxworks_vec, + #ifdef BFD64 + &bfd_elf32_sh64_vec, +From 049390e058a46a6b4052ec37dc3a9b927ef39382 Mon Sep 17 00:00:00 2001 + +From: Maxim <kolmax94@gmail.com> + +Subject: [PATCH 10/26] Port bfd/dlltool.c and binutils/Makefile.am patch +--- + + binutils/Makefile.am | 11 ++++++----- + 1 files changed, 6 insertions(+), 5 deletions(-) + + +diff --git a/binutils/Makefile.am b/binutils/Makefile.am +index 0978538..d3c7ec6 100644 +--- a/binutils/Makefile.am ++++ b/binutils/Makefile.am +@@ -48,7 +48,7 @@ OBJDUMP_PROG=objdump + + # This is the demangler, as a standalone program. + # Note: This one is used as the installed name too, unlike the above. +-DEMANGLER_PROG=cxxfilt ++#DEMANGLER_PROG=cxxfilt + + ADDR2LINE_PROG=addr2line + +@@ -60,17 +60,18 @@ DLLWRAP_PROG=dllwrap + + SRCONV_PROG=srconv$(EXEEXT) sysdump$(EXEEXT) coffdump$(EXEEXT) + +-bin_PROGRAMS = $(SIZE_PROG) $(OBJDUMP_PROG) $(AR_PROG) $(STRINGS_PROG) $(RANLIB_PROG) $(OBJCOPY_PROG) @BUILD_NLMCONV@ @BUILD_SRCONV@ @BUILD_DLLTOOL@ @BUILD_WINDRES@ @BUILD_WINDMC@ $(ADDR2LINE_PROG) $(READELF_PROG) $(ELFEDIT_PROG) @BUILD_DLLWRAP@ @BUILD_INSTALL_MISC@ ++bin_PROGRAMS = $(OBJDUMP_PROG) $(AR_PROG) $(STRINGS_PROG) $(RANLIB_PROG) $(OBJCOPY_PROG) @BUILD_NLMCONV@ @BUILD_SRCONV@ @BUILD_DLLTOOL@ @BUILD_WINDRES@ @BUILD_WINDMC@ $(ADDR2LINE_PROG) $(READELF_PROG) $(ELFEDIT_PROG) @BUILD_DLLWRAP@ @BUILD_INSTALL_MISC@ + + ## We need a special rule to install the programs which are built with + ## -new, and to rename cxxfilt to c++filt. +-RENAMED_PROGS = $(NM_PROG) $(STRIP_PROG) $(DEMANGLER_PROG) ++#RENAMED_PROGS = $(NM_PROG) $(STRIP_PROG) $(DEMANGLER_PROG) ++RENAMED_PROGS = $(STRIP_PROGS) + noinst_PROGRAMS = $(RENAMED_PROGS) @BUILD_MISC@ + + EXTRA_PROGRAMS = $(NLMCONV_PROG) srconv sysdump coffdump $(DLLTOOL_PROG) $(WINDRES_PROG) $(WINDMC_PROG) $(DLLWRAP_PROG) + + # Stuff that goes in tooldir/ if appropriate. +-TOOL_PROGS = nm-new strip-new ar ranlib dlltool objdump objcopy ++TOOL_PROGS = strip-new ar ranlib dlltool objdump objcopy + + BASEDIR = $(srcdir)/.. + BFDDIR = $(BASEDIR)/bfd +@@ -217,7 +218,7 @@ endif + $(COMPILE) -c $(OBJDUMP_DEFS) $(srcdir)/objdump.c + endif + +-cxxfilt_SOURCES = cxxfilt.c $(BULIBS) ++#cxxfilt_SOURCES = cxxfilt.c $(BULIBS) + + ar_SOURCES = arparse.y arlex.l ar.c not-ranlib.c arsup.c rename.c binemul.c \ + emul_$(EMULATION).c $(BULIBS) +From 70447029f77c30e293997db95f6cc622d4182e45 Mon Sep 17 00:00:00 2001 + +From: Maxim <kolmax94@gmail.com> + +Subject: [PATCH 11/26] Port bfd/dlltool.c and binutils/rdbg.c patch +--- + + binutils/rddbg.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + + +diff --git a/binutils/rddbg.c b/binutils/rddbg.c +index 27abd66..c91ead7 100644 +--- a/binutils/rddbg.c ++++ b/binutils/rddbg.c +@@ -199,7 +199,7 @@ read_section_stabs_debugging_info (bfd *abfd, asymbol **syms, long symcount, + + s = (char *) strings + stroff + strx; + +- while (s[strlen (s) - 1] == '\\' ++ while (*s != '\0' && s[strlen (s) - 1] == '\\' + && stab + 12 < stabs + stabsize) + { + char *p; +From 5f87ad14c028aad0539f20f42bf2264b7c84a6b4 Mon Sep 17 00:00:00 2001 + +From: Maxim <kolmax94@gmail.com> + +Subject: [PATCH 12/26] Port bfd/dlltool.c and binutils/stabs.c patch +--- + + binutils/resrc.c | 11 +- + binutils/stabs.c | 350 ------------------------------------------------------ + 2 files changed, 8 insertions(+), 353 deletions(-) + + +diff --git a/binutils/resrc.c b/binutils/resrc.c +index a72a23f..ff99c65 100644 +--- a/binutils/resrc.c ++++ b/binutils/resrc.c +@@ -207,7 +207,11 @@ run_cmd (char *cmd, const char *redir) + int i; + const char **argv; + char *errmsg_fmt, *errmsg_arg; ++#if defined(__MSDOS__) && !defined(__GO32__) + char *temp_base = choose_temp_base (); ++#else ++ char *temp_base = NULL; ++#endif + int in_quote; + char sep; + int redir_handle = -1; +@@ -318,12 +322,7 @@ open_input_stream (char *cmd) + { + if (istream_type == ISTREAM_FILE) + { +- char *fileprefix; +- +- fileprefix = choose_temp_base (); +- cpp_temp_file = (char *) xmalloc (strlen (fileprefix) + 5); +- sprintf (cpp_temp_file, "%s.irc", fileprefix); +- free (fileprefix); ++ cpp_temp_file = make_temp_file (".irc"); + + if (run_cmd (cmd, cpp_temp_file)) + fatal (_("can't execute `%s': %s"), cmd, strerror (errno)); +diff --git a/binutils/stabs.c b/binutils/stabs.c +index f8fb48c..293dbfc 100644 +--- a/binutils/stabs.c ++++ b/binutils/stabs.c +@@ -199,13 +199,13 @@ static debug_type stab_find_tagged_type + (void *, struct stab_handle *, const char *, int, enum debug_type_kind); + static debug_type *stab_demangle_argtypes + (void *, struct stab_handle *, const char *, bfd_boolean *, unsigned int); +-static debug_type *stab_demangle_v3_argtypes ++/*static debug_type *stab_demangle_v3_argtypes + (void *, struct stab_handle *, const char *, bfd_boolean *); + static debug_type *stab_demangle_v3_arglist + (void *, struct stab_handle *, struct demangle_component *, bfd_boolean *); + static debug_type stab_demangle_v3_arg + (void *, struct stab_handle *, struct demangle_component *, debug_type, +- bfd_boolean *); ++ bfd_boolean *);*/ + + /* Save a string in memory. */ + +@@ -2829,7 +2829,6 @@ parse_stab_argtypes (void *dhandle, struct stab_handle *info, + bfd_boolean is_full_physname_constructor; + bfd_boolean is_constructor; + bfd_boolean is_destructor; +- bfd_boolean is_v3; + debug_type *args; + bfd_boolean varargs; + unsigned int physname_len = 0; +@@ -2849,9 +2848,8 @@ parse_stab_argtypes (void *dhandle, struct stab_handle *info, + && (argtypes[1] == '$' || argtypes[1] == '.') + && argtypes[2] == '_') + || CONST_STRNEQ (argtypes, "__dt")); +- is_v3 = argtypes[0] == '_' && argtypes[1] == 'Z'; + +- if (is_destructor || is_full_physname_constructor || is_v3) ++ if (is_destructor || is_full_physname_constructor) + *pphysname = argtypes; + else + { +@@ -3714,10 +3712,6 @@ stab_demangle_argtypes (void *dhandle, struct stab_handle *info, + { + struct stab_demangle_info minfo; + +- /* Check for the g++ V3 ABI. */ +- if (physname[0] == '_' && physname[1] == 'Z') +- return stab_demangle_v3_argtypes (dhandle, info, physname, pvarargs); +- + minfo.dhandle = dhandle; + minfo.info = info; + minfo.args = NULL; +@@ -5060,341 +5054,3 @@ stab_demangle_remember_type (struct stab_demangle_info *minfo, + + return TRUE; + } +- +-/* Demangle names encoded using the g++ V3 ABI. The newer versions of +- g++ which use this ABI do not encode ordinary method argument types +- in a mangled name; they simply output the argument types. However, +- for a static method, g++ simply outputs the return type and the +- physical name. So in that case we need to demangle the name here. +- Here PHYSNAME is the physical name of the function, and we set the +- variable pointed at by PVARARGS to indicate whether this function +- is varargs. This returns NULL, or a NULL terminated array of +- argument types. */ +- +-static debug_type * +-stab_demangle_v3_argtypes (void *dhandle, struct stab_handle *info, +- const char *physname, bfd_boolean *pvarargs) +-{ +- struct demangle_component *dc; +- void *mem; +- debug_type *pargs; +- +- dc = cplus_demangle_v3_components (physname, DMGL_PARAMS | DMGL_ANSI, &mem); +- if (dc == NULL) +- { +- stab_bad_demangle (physname); +- return NULL; +- } +- +- /* We expect to see TYPED_NAME, and the right subtree describes the +- function type. */ +- if (dc->type != DEMANGLE_COMPONENT_TYPED_NAME +- || dc->u.s_binary.right->type != DEMANGLE_COMPONENT_FUNCTION_TYPE) +- { +- fprintf (stderr, _("Demangled name is not a function\n")); +- free (mem); +- return NULL; +- } +- +- pargs = stab_demangle_v3_arglist (dhandle, info, +- dc->u.s_binary.right->u.s_binary.right, +- pvarargs); +- +- free (mem); +- +- return pargs; +-} +- +-/* Demangle an argument list in a struct demangle_component tree. +- Returns a DEBUG_TYPE_NULL terminated array of argument types, and +- sets *PVARARGS to indicate whether this is a varargs function. */ +- +-static debug_type * +-stab_demangle_v3_arglist (void *dhandle, struct stab_handle *info, +- struct demangle_component *arglist, +- bfd_boolean *pvarargs) +-{ +- struct demangle_component *dc; +- unsigned int alloc, count; +- debug_type *pargs; +- +- alloc = 10; +- pargs = (debug_type *) xmalloc (alloc * sizeof *pargs); +- *pvarargs = FALSE; +- +- count = 0; +- +- for (dc = arglist; +- dc != NULL; +- dc = dc->u.s_binary.right) +- { +- debug_type arg; +- bfd_boolean varargs; +- +- if (dc->type != DEMANGLE_COMPONENT_ARGLIST) +- { +- fprintf (stderr, _("Unexpected type in v3 arglist demangling\n")); +- free (pargs); +- return NULL; +- } +- +- arg = stab_demangle_v3_arg (dhandle, info, dc->u.s_binary.left, +- NULL, &varargs); +- if (arg == NULL) +- { +- if (varargs) +- { +- *pvarargs = TRUE; +- continue; +- } +- free (pargs); +- return NULL; +- } +- +- if (count + 1 >= alloc) +- { +- alloc += 10; +- pargs = (debug_type *) xrealloc (pargs, alloc * sizeof *pargs); +- } +- +- pargs[count] = arg; +- ++count; +- } +- +- pargs[count] = DEBUG_TYPE_NULL; +- +- return pargs; +-} +- +-/* Convert a struct demangle_component tree describing an argument +- type into a debug_type. */ +- +-static debug_type +-stab_demangle_v3_arg (void *dhandle, struct stab_handle *info, +- struct demangle_component *dc, debug_type context, +- bfd_boolean *pvarargs) +-{ +- debug_type dt; +- +- if (pvarargs != NULL) +- *pvarargs = FALSE; +- +- switch (dc->type) +- { +- /* FIXME: These are demangle component types which we probably +- need to handle one way or another. */ +- case DEMANGLE_COMPONENT_LOCAL_NAME: +- case DEMANGLE_COMPONENT_TYPED_NAME: +- case DEMANGLE_COMPONENT_TEMPLATE_PARAM: +- case DEMANGLE_COMPONENT_CTOR: +- case DEMANGLE_COMPONENT_DTOR: +- case DEMANGLE_COMPONENT_JAVA_CLASS: +- case DEMANGLE_COMPONENT_RESTRICT_THIS: +- case DEMANGLE_COMPONENT_VOLATILE_THIS: +- case DEMANGLE_COMPONENT_CONST_THIS: +- case DEMANGLE_COMPONENT_VENDOR_TYPE_QUAL: +- case DEMANGLE_COMPONENT_COMPLEX: +- case DEMANGLE_COMPONENT_IMAGINARY: +- case DEMANGLE_COMPONENT_VENDOR_TYPE: +- case DEMANGLE_COMPONENT_ARRAY_TYPE: +- case DEMANGLE_COMPONENT_PTRMEM_TYPE: +- case DEMANGLE_COMPONENT_ARGLIST: +- default: +- fprintf (stderr, _("Unrecognized demangle component %d\n"), +- (int) dc->type); +- return NULL; +- +- case DEMANGLE_COMPONENT_NAME: +- if (context != NULL) +- { +- const debug_field *fields; +- +- fields = debug_get_fields (dhandle, context); +- if (fields != NULL) +- { +- /* Try to find this type by looking through the context +- class. */ +- for (; *fields != DEBUG_FIELD_NULL; fields++) +- { +- debug_type ft; +- const char *dn; +- +- ft = debug_get_field_type (dhandle, *fields); +- if (ft == NULL) +- return NULL; +- dn = debug_get_type_name (dhandle, ft); +- if (dn != NULL +- && (int) strlen (dn) == dc->u.s_name.len +- && strncmp (dn, dc->u.s_name.s, dc->u.s_name.len) == 0) +- return ft; +- } +- } +- } +- return stab_find_tagged_type (dhandle, info, dc->u.s_name.s, +- dc->u.s_name.len, DEBUG_KIND_ILLEGAL); +- +- case DEMANGLE_COMPONENT_QUAL_NAME: +- context = stab_demangle_v3_arg (dhandle, info, dc->u.s_binary.left, +- context, NULL); +- if (context == NULL) +- return NULL; +- return stab_demangle_v3_arg (dhandle, info, dc->u.s_binary.right, +- context, NULL); +- +- case DEMANGLE_COMPONENT_TEMPLATE: +- { +- char *p; +- size_t alc; +- +- /* We print this component to get a class name which we can +- use. FIXME: This probably won't work if the template uses +- template parameters which refer to an outer template. */ +- p = cplus_demangle_print (DMGL_PARAMS | DMGL_ANSI, dc, 20, &alc); +- if (p == NULL) +- { +- fprintf (stderr, _("Failed to print demangled template\n")); +- return NULL; +- } +- dt = stab_find_tagged_type (dhandle, info, p, strlen (p), +- DEBUG_KIND_CLASS); +- free (p); +- return dt; +- } +- +- case DEMANGLE_COMPONENT_SUB_STD: +- return stab_find_tagged_type (dhandle, info, dc->u.s_string.string, +- dc->u.s_string.len, DEBUG_KIND_ILLEGAL); +- +- case DEMANGLE_COMPONENT_RESTRICT: +- case DEMANGLE_COMPONENT_VOLATILE: +- case DEMANGLE_COMPONENT_CONST: +- case DEMANGLE_COMPONENT_POINTER: +- case DEMANGLE_COMPONENT_REFERENCE: +- dt = stab_demangle_v3_arg (dhandle, info, dc->u.s_binary.left, NULL, +- NULL); +- if (dt == NULL) +- return NULL; +- +- switch (dc->type) +- { +- default: +- abort (); +- case DEMANGLE_COMPONENT_RESTRICT: +- /* FIXME: We have no way to represent restrict. */ +- return dt; +- case DEMANGLE_COMPONENT_VOLATILE: +- return debug_make_volatile_type (dhandle, dt); +- case DEMANGLE_COMPONENT_CONST: +- return debug_make_const_type (dhandle, dt); +- case DEMANGLE_COMPONENT_POINTER: +- return debug_make_pointer_type (dhandle, dt); +- case DEMANGLE_COMPONENT_REFERENCE: +- return debug_make_reference_type (dhandle, dt); +- } +- +- case DEMANGLE_COMPONENT_FUNCTION_TYPE: +- { +- debug_type *pargs; +- bfd_boolean varargs; +- +- if (dc->u.s_binary.left == NULL) +- { +- /* In this case the return type is actually unknown. +- However, I'm not sure this will ever arise in practice; +- normally an unknown return type would only appear at +- the top level, which is handled above. */ +- dt = debug_make_void_type (dhandle); +- } +- else +- dt = stab_demangle_v3_arg (dhandle, info, dc->u.s_binary.left, NULL, +- NULL); +- if (dt == NULL) +- return NULL; +- +- pargs = stab_demangle_v3_arglist (dhandle, info, +- dc->u.s_binary.right, +- &varargs); +- if (pargs == NULL) +- return NULL; +- +- return debug_make_function_type (dhandle, dt, pargs, varargs); +- } +- +- case DEMANGLE_COMPONENT_BUILTIN_TYPE: +- { +- char *p; +- size_t alc; +- debug_type ret; +- +- /* We print this component in order to find out the type name. +- FIXME: Should we instead expose the +- demangle_builtin_type_info structure? */ +- p = cplus_demangle_print (DMGL_PARAMS | DMGL_ANSI, dc, 20, &alc); +- if (p == NULL) +- { +- fprintf (stderr, _("Couldn't get demangled builtin type\n")); +- return NULL; +- } +- +- /* The mangling is based on the type, but does not itself +- indicate what the sizes are. So we have to guess. */ +- if (strcmp (p, "signed char") == 0) +- ret = debug_make_int_type (dhandle, 1, FALSE); +- else if (strcmp (p, "bool") == 0) +- ret = debug_make_bool_type (dhandle, 1); +- else if (strcmp (p, "char") == 0) +- ret = debug_make_int_type (dhandle, 1, FALSE); +- else if (strcmp (p, "double") == 0) +- ret = debug_make_float_type (dhandle, 8); +- else if (strcmp (p, "long double") == 0) +- ret = debug_make_float_type (dhandle, 8); +- else if (strcmp (p, "float") == 0) +- ret = debug_make_float_type (dhandle, 4); +- else if (strcmp (p, "__float128") == 0) +- ret = debug_make_float_type (dhandle, 16); +- else if (strcmp (p, "unsigned char") == 0) +- ret = debug_make_int_type (dhandle, 1, TRUE); +- else if (strcmp (p, "int") == 0) +- ret = debug_make_int_type (dhandle, 4, FALSE); +- else if (strcmp (p, "unsigned int") == 0) +- ret = debug_make_int_type (dhandle, 4, TRUE); +- else if (strcmp (p, "long") == 0) +- ret = debug_make_int_type (dhandle, 4, FALSE); +- else if (strcmp (p, "unsigned long") == 0) +- ret = debug_make_int_type (dhandle, 4, TRUE); +- else if (strcmp (p, "__int128") == 0) +- ret = debug_make_int_type (dhandle, 16, FALSE); +- else if (strcmp (p, "unsigned __int128") == 0) +- ret = debug_make_int_type (dhandle, 16, TRUE); +- else if (strcmp (p, "short") == 0) +- ret = debug_make_int_type (dhandle, 2, FALSE); +- else if (strcmp (p, "unsigned short") == 0) +- ret = debug_make_int_type (dhandle, 2, TRUE); +- else if (strcmp (p, "void") == 0) +- ret = debug_make_void_type (dhandle); +- else if (strcmp (p, "wchar_t") == 0) +- ret = debug_make_int_type (dhandle, 4, TRUE); +- else if (strcmp (p, "long long") == 0) +- ret = debug_make_int_type (dhandle, 8, FALSE); +- else if (strcmp (p, "unsigned long long") == 0) +- ret = debug_make_int_type (dhandle, 8, TRUE); +- else if (strcmp (p, "...") == 0) +- { +- if (pvarargs == NULL) +- fprintf (stderr, _("Unexpected demangled varargs\n")); +- else +- *pvarargs = TRUE; +- ret = NULL; +- } +- else +- { +- fprintf (stderr, _("Unrecognized demangled builtin type\n")); +- ret = NULL; +- } +- +- free (p); +- +- return ret; +- } +- } +-} +From 99bb30f56b48efed145d359ecfb119814d00e309 Mon Sep 17 00:00:00 2001 + +From: Maxim <kolmax94@gmail.com> + +Subject: [PATCH 22/27] Port emulparams scripts +--- + + ld/emulparams/elf_i386_obsd.sh | 24 ++++++++++++++++++++++++ + ld/emulparams/elf_obsd.sh | 8 ++++++++ + ld/emulparams/elf_x86_64_obsd.sh | 2 ++ + 3 files changed, 34 insertions(+), 0 deletions(-) + create mode 100644 ld/emulparams/elf_i386_obsd.sh + create mode 100644 ld/emulparams/elf_obsd.sh + create mode 100644 ld/emulparams/elf_x86_64_obsd.sh + + +diff --git a/ld/emulparams/elf_i386_obsd.sh b/ld/emulparams/elf_i386_obsd.sh +new file mode 100644 +index 0000000..ae7ba0e +--- /dev/null ++++ b/ld/emulparams/elf_i386_obsd.sh +@@ -0,0 +1,24 @@ ++. ${srcdir}/emulparams/elf_i386.sh ++. ${srcdir}/emulparams/elf_obsd.sh ++ ++if test "${LD_FLAG#"${LD_FLAG%pie}"}" = "pie"; then ++ TEXT_START_ADDR=0x0 ++ if test "${LD_FLAG%%(cpie|pie)}" = "Z"; then ++ RODATA_PADSIZE=${MAXPAGESIZE} ++ else ++ RODATA_PADSIZE=0x20000000 ++ fi ++else ++ if test "${LD_FLAG%%(cpie|pie)}" = "Z"; then ++ TEXT_START_ADDR=0x08048000 ++ RODATA_PADSIZE=${MAXPAGESIZE} ++ else ++ TEXT_START_ADDR=0x1C000000 ++ RODATA_PADSIZE=0x20000000 ++ fi ++fi ++ ++RODATA_ALIGN=". = ALIGN(${RODATA_PADSIZE})" ++RODATA_ALIGN_ADD="${TEXT_START_ADDR}" ++ ++unset PAD_PLT +diff --git a/ld/emulparams/elf_obsd.sh b/ld/emulparams/elf_obsd.sh +new file mode 100644 +index 0000000..37e0d51 +--- /dev/null ++++ b/ld/emulparams/elf_obsd.sh +@@ -0,0 +1,8 @@ ++LIB_PATH=/usr/lib ++ ++PAD_RO= ++RODATA_PADSIZE=${MAXPAGESIZE} ++RODATA_ALIGN=". = ALIGN(${RODATA_PADSIZE}) + (. & (${RODATA_PADSIZE} - 1))" ++PAD_GOT= ++PAD_PLT= ++DATA_START_SYMBOLS='__data_start = . ;' +diff --git a/ld/emulparams/elf_x86_64_obsd.sh b/ld/emulparams/elf_x86_64_obsd.sh +new file mode 100644 +index 0000000..3689dad +--- /dev/null ++++ b/ld/emulparams/elf_x86_64_obsd.sh +@@ -0,0 +1,2 @@ ++. ${srcdir}/emulparams/elf_x86_64.sh ++. ${srcdir}/emulparams/elf_obsd.sh +From f8fc67d17104aaf6e331259439a5c8a520ac1684 Mon Sep 17 00:00:00 2001 + +From: Maxim <kolmax94@gmail.com> + +Subject: [PATCH 13/26] Port gas cofig patches +--- + + gas/config/tc-arm.c | 4 ++-- + gas/config/tc-i386.c | 3 ++- + 2 files changed, 4 insertions(+), 3 deletions(-) + + +diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c +index f4ebdc4..8acf362 100644 +--- a/gas/config/tc-arm.c ++++ b/gas/config/tc-arm.c +@@ -108,7 +108,7 @@ enum arm_float_abi + #ifndef FPU_DEFAULT + # ifdef TE_LINUX + # define FPU_DEFAULT FPU_ARCH_FPA +-# elif defined (TE_NetBSD) ++# elif defined (TE_NetBSD) || defined (TE_OpenBSD) + # ifdef OBJ_ELF + # define FPU_DEFAULT FPU_ARCH_VFP /* Soft-float, but VFP order. */ + # else +@@ -22052,7 +22052,7 @@ md_begin (void) + else if (!mfpu_opt) + { + #if !(defined (EABI_DEFAULT) || defined (TE_LINUX) \ +- || defined (TE_NetBSD) || defined (TE_VXWORKS)) ++ || defined (TE_NetBSD) || defined (TE_VXWORKS) || defined(TE_OpenBSD)) + /* Some environments specify a default FPU. If they don't, infer it + from the processor. */ + if (mcpu_fpu_opt) +diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c +index 9c33cf9..f59694f 100644 +--- a/gas/config/tc-i386.c ++++ b/gas/config/tc-i386.c +@@ -303,7 +303,8 @@ const char extra_symbol_chars[] = "*%-([" + && !defined (TE_LINUX) \ + && !defined (TE_NETWARE) \ + && !defined (TE_FreeBSD) \ +- && !defined (TE_NetBSD))) ++ && !defined (TE_NetBSD) \ ++ && !defined (TE_OpenBSD))) + /* This array holds the chars that always start a comment. If the + pre-processor is disabled, these aren't very useful. The option + --divide will remove '/' from this list. */ +From 9a9948f66a8bd7806d93903b7c35eaa60be967d7 Mon Sep 17 00:00:00 2001 + +From: Maxim <kolmax94@gmail.com> + +Subject: [PATCH 14/26] Port gas/Makefile.am patch +--- + + gas/Makefile.am | 4 +++- + 1 files changed, 3 insertions(+), 1 deletions(-) + + +diff --git a/gas/Makefile.am b/gas/Makefile.am +index 7b897f3..9fc7afd 100644 +--- a/gas/Makefile.am ++++ b/gas/Makefile.am +@@ -282,6 +282,7 @@ TARG_ENV_HFILES = \ + config/te-macos.h \ + config/te-nbsd.h \ + config/te-nbsd532.h \ ++ config/te-obsd.h \ + config/te-netware.h \ + config/te-pc532mach.h \ + config/te-pe.h \ +@@ -355,6 +356,7 @@ AM_CPPFLAGS = -I. -I$(srcdir) -I../bfd -I$(srcdir)/config \ + # and the system's installed libraries. + + GASLIBS = @OPCODES_LIB@ ../bfd/libbfd.la ../libiberty/libiberty.a ++GASLIBSDEPS = @OPCODES_LIB@ ../bfd/libbfd.la + + # Files to be copied away after each stage in building. + STAGESTUFF = *.@OBJEXT@ $(noinst_PROGRAMS) +@@ -363,7 +365,7 @@ as_new_SOURCES = $(GAS_CFILES) + as_new_LDADD = $(TARG_CPU_O) $(OBJ_FORMAT_O) $(ATOF_TARG_O) \ + $(extra_objects) $(GASLIBS) $(LIBINTL) $(LIBM) + as_new_DEPENDENCIES = $(TARG_CPU_O) $(OBJ_FORMAT_O) $(ATOF_TARG_O) \ +- $(extra_objects) $(GASLIBS) $(LIBINTL_DEP) ++ $(extra_objects) $(GASLIBSDEPS) $(LIBINTL_DEP) + EXTRA_as_new_SOURCES = $(CFILES) $(HFILES) $(TARGET_CPU_CFILES) \ + $(TARGET_CPU_HFILES) $(OBJ_FORMAT_CFILES) $(OBJ_FORMAT_HFILES) \ + $(TARG_ENV_CFILES) $(CONFIG_ATOF_CFILES) $(MULTI_CFILES) +From 0f2df696592793712a16cae18bd5dac4c2d3a58e Mon Sep 17 00:00:00 2001 + +From: Maxim <kolmax94@gmail.com> + +Subject: [PATCH 15/26] Port gas/read.c patch +--- + + gas/read.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + + +diff --git a/gas/read.c b/gas/read.c +index bd3fa58..a2f37bb 100644 +--- a/gas/read.c ++++ b/gas/read.c +@@ -5336,7 +5336,7 @@ next_char_of_string (void) + int i; + + for (i = 0, number = 0; +- ISDIGIT (c) && i < 3; ++ i < 3 && ISDIGIT (c); + c = *input_line_pointer++, i++) + { + number = number * 8 + c - '0'; +From 1f312c52f16e177676ac82816412b336f8cd0bd7 Mon Sep 17 00:00:00 2001 + +From: Maxim <kolmax94@gmail.com> + +Subject: [PATCH 17/26] Port ld/configure.tgt patch +--- + + ld/configure.tgt | 8 ++++++++ + 1 files changed, 8 insertions(+), 0 deletions(-) + + +diff --git a/ld/configure.tgt b/ld/configure.tgt +index 4e90739..bff4c20 100644 +--- a/ld/configure.tgt ++++ b/ld/configure.tgt +@@ -259,6 +259,14 @@ x86_64-*-freebsd* | x86_64-*-kfreebsd*-gnu) + | sed -e 's/x86_64/i386/'` + tdir_elf_i386=`echo ${targ_alias} \ + | sed -e 's/x86_64/i386/'` ;; ++i[3-7]86-*-openbsd[0-2]* | i[3-7]86-*-openbsd3.[0-2]) ++ targ_emul=i386obsd ;; ++i[3-7]86-*-openbsd*) targ_emul=elf_i386_obsd ;; ++x86_64-*-openbsd*) targ_emul=elf_x86_64_obsd ++ targ_extra_emuls="elf_i386_obsd elf_i386" ++ tdir_elf_i386_obsd=`echo ${targ_alias} | \ ++ sed -e 's/x86_64/i386/'` ++ ;; + i[3-7]86-*-sysv*) targ_emul=i386coff ;; + i[3-7]86-*-ptx*) targ_emul=i386coff ;; + i[3-7]86-*-mach*) targ_emul=i386mach ;; +From b05d9772b29631845d033f12b09aacfc5edd8f73 Mon Sep 17 00:00:00 2001 + +From: Maxim <kolmax94@gmail.com> + +Subject: [PATCH 21/27] Port ld/Makefile.am patch +--- + + ld/Makefile.am | 14 ++++++++++++++ + 1 files changed, 14 insertions(+), 0 deletions(-) + + +diff --git a/ld/Makefile.am b/ld/Makefile.am +index b4364be..46dbba6 100644 +--- a/ld/Makefile.am ++++ b/ld/Makefile.am +@@ -237,6 +237,7 @@ ALL_EMULATION_SOURCES = \ + eelf_i386_be.c \ + eelf_i386_chaos.c \ + eelf_i386_fbsd.c \ ++ eelf_i386_obsd.c \ + eelf_i386_ldso.c \ + eelf_i386_sol2.c \ + eelf_i386_vxworks.c \ +@@ -281,6 +282,7 @@ ALL_EMULATION_SOURCES = \ + ei386nbsd.c \ + ei386nto.c \ + ei386nw.c \ ++ ei386obsd.c \ + ei386pe.c \ + ei386pe_posix.c \ + ei386pep.c \ +@@ -443,6 +445,7 @@ ALL_64_EMULATION_SOURCES = \ + eshlelf64_nbsd.c \ + eelf_x86_64.c \ + eelf_x86_64_fbsd.c \ ++ eelf_x86_64_obsd.c \ + eelf_x86_64_sol2.c \ + eelf_l1om.c \ + eelf_l1om_fbsd.c \ +@@ -1183,6 +1186,10 @@ eelf_l1om_fbsd.c: $(srcdir)/emulparams/elf_l1om_fbsd.sh \ + $(srcdir)/emulparams/elf_l1om.sh \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf_l1om_fbsd "$(tdir_elf_l1om_fbsd)" ++eelf_x86_64_obsd.c: $(srcdir)/emulparams/elf_x86_64_obsd.sh \ ++ $(srcdir)/emulparams/elf_x86_64.sh \ ++ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ++ ${GENSCRIPTS} elf_x86_64_obsd "$(tdir_elf_x86_64_obsd)" + eelf_i386_be.c: $(srcdir)/emulparams/elf_i386_be.sh \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf_i386_be "$(tdir_elf_i386_be)" +@@ -1193,6 +1200,10 @@ eelf_i386_fbsd.c: $(srcdir)/emulparams/elf_i386_fbsd.sh \ + $(srcdir)/emulparams/elf_i386.sh \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf_i386_fbsd "$(tdir_elf_i386_fbsd)" ++eelf_i386_obsd.c: $(srcdir)/emulparams/elf_i386_obsd.sh \ ++ $(srcdir)/emulparams/elf_i386.sh \ ++ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ++ ${GENSCRIPTS} elf_i386_obsd "$(tdir_elf_i386_obsd)" + eelf_i386_ldso.c: $(srcdir)/emulparams/elf_i386_ldso.sh \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf_i386_ldso "$(tdir_elf_i386_ldso)" +@@ -1342,6 +1353,9 @@ ei386nto.c: $(srcdir)/emulparams/i386nto.sh \ + ei386nw.c: $(srcdir)/emulparams/i386nw.sh \ + $(ELF_DEPS) $(srcdir)/scripttempl/nw.sc ${GEN_DEPENDS} + ${GENSCRIPTS} i386nw "$(tdir_i386nw)" ++ei386obsd.c: $(srcdir)/emulparams/i386obsd.sh \ ++ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} ++ ${GENSCRIPTS} i386obsd "$(tdir_i386obsd)" + ei386pe.c: $(srcdir)/emulparams/i386pe.sh \ + $(srcdir)/emultempl/pe.em $(srcdir)/scripttempl/pe.sc ${GEN_DEPENDS} + ${GENSCRIPTS} i386pe "$(tdir_i386pe)" +From fe7580454be658f3838f631c33b46c7f612c8371 Mon Sep 17 00:00:00 2001 + +From: Maxim <kolmax94@gmail.com> + +Subject: [PATCH 27/27] Fix sentinels +--- + + ld/plugin.c | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + + +diff --git a/ld/plugin.c b/ld/plugin.c +index 79b39e8..6107dbe 100644 +--- a/ld/plugin.c ++++ b/ld/plugin.c +@@ -268,7 +268,7 @@ asymbol_from_plugin_symbol (bfd *abfd, asymbol *asym, + + asym->the_bfd = abfd; + asym->name = ldsym->version +- ? concat (ldsym->name, "@", ldsym->version, NULL) ++ ? concat (ldsym->name, "@", ldsym->version, (char *) NULL) + : ldsym->name; + asym->value = 0; + switch (ldsym->def) +@@ -563,7 +563,7 @@ message (int level, const char *format, ...) + default: + { + char *newfmt = ACONCAT ((level == LDPL_FATAL ? "%F" : "%X", +- format, NULL)); ++ format, (char *) NULL)); + vfinfo (stderr, newfmt, args, TRUE); + } + break; |