diff options
author | 2011-04-24 20:19:23 +0000 | |
---|---|---|
committer | 2011-04-24 20:19:23 +0000 | |
commit | d2386abe6d72afba906e28bc7357d44f31adee3f (patch) | |
tree | 6a53fe2e6a07cc666c314b9f683a34e1ba0f52fe | |
parent | Here comes the easter bunnytils 2.17 (the last version released against a (diff) | |
download | wireguard-openbsd-d2386abe6d72afba906e28bc7357d44f31adee3f.tar.xz wireguard-openbsd-d2386abe6d72afba906e28bc7357d44f31adee3f.zip |
A first attempt at merging our local changes and fixes into the 2.17 codebase.
ld(1) needs a lot more work, as the upstream code evolved significantly since
2.15, mostly due to changes in PIE binaries layout, and we had already
diverged significantly to implement W^X.
82 files changed, 1887 insertions, 253 deletions
diff --git a/gnu/usr.bin/binutils-2.17/Makefile.bsd-wrapper b/gnu/usr.bin/binutils-2.17/Makefile.bsd-wrapper new file mode 100644 index 00000000000..36559e520a3 --- /dev/null +++ b/gnu/usr.bin/binutils-2.17/Makefile.bsd-wrapper @@ -0,0 +1,160 @@ +# $OpenBSD: Makefile.bsd-wrapper,v 1.1 2011/04/24 20:19:23 miod Exp $ + +NEW_BINUTILS=alpha amd64 arm hppa hppa64 i386 mips64 powerpc sh sparc sparc64 + +.for _arch in ${MACHINE_CPU} +. if !empty(NEW_BINUTILS:M${_arch}) +USING_NEW_BINUTILS?=yes +.else +USING_NEW_BINUTILS?=no +. endif +.endfor + +SUBDIRS= opcodes bfd +CONF_SUBDIRS= opcodes bfd + +# This allows moving the whole binutils installation around for +# testing purposes +PREFIX=/usr +.if ${PREFIX} != "/usr" +MANDIR=${PREFIX}/share/man/cat +.endif + +MAN= binutils/doc/objdump.1 c++filt.1 + +#### cross-compilation +###.if !defined(TARGET_ARCH) +###CONF_SUBDIRS+= gdb +###SUBDIRS+= gdb +###INST_SUBDIRS+= gdb +###MAN+= gdb/gdb.1 +###.endif + +.if ${USING_NEW_BINUTILS:L} == "yes" +SUBDIRS+= binutils ld gas +CONF_SUBDIRS+= binutils ld gas +INST_SUBDIRS+= binutils ld gas +MAN+= binutils/doc/addr2line.1 binutils/doc/ar.1 \ + binutils/doc/objcopy.1 binutils/doc/ranlib.1 \ + binutils/doc/readelf.1 binutils/doc/strings.1 \ + binutils/doc/strip.1 \ + gas/doc/as.1 ld/ld.1 +. else +CONF_SUBDIRS=${SUBDIRS} +CONF_SUBDIRS+= binutils +.endif + +# Used by the GNU Makefile +ALL_MODULES=${SUBDIRS:S/^/all-/g} +CONFIGURE_MODULES=${CONF_SUBDIRS:S/^/configure-/g} +CONFIGURE_HOST_MODULES=${CONF_SUBDIRS:S/^/configure-/g} +ALL_HOST_MODULES=${SUBDIRS:S/^/all-/g} +INSTALL_MODULES=${INST_SUBDIRS:S/^/install-/g} +INFO_HOST_MODULES=${SUBDIRS:S/^/info-/g} +INSTALL_INFO_HOST_MODULES=${INST_SUBDIRS:S/^/install-info-/g} + +# cross-compilation +.if defined(TARGET_ARCH) +CONFIGTARGET=--target=${TARGET_ARCH}-unknown-openbsd${OSREV} +.else +CONFIGTARGET= +.endif + +all: config.status + SUBDIRS='${SUBDIRS}' \ + CONFIGURE_HOST_MODULES='${CONFIGURE_HOST_MODULES}' \ + ${MAKE} CC="${CC}" \ + CFLAGS="${CFLAGS} ${COPTS}" LDFLAGS=${LDSTATIC} \ + scriptdir=${PREFIX}/libdata \ + tooldir=${PREFIX} \ + MAKEINFO='makeinfo --no-split' \ + MAKEINFOFLAGS='' \ + BSDSRCDIR=${BSDSRCDIR} \ + ALL_MODULES="${ALL_MODULES}" \ + ALL_HOST_MODULES='${ALL_HOST_MODULES}' \ + INFO_HOST_MODULES='${INFO_HOST_MODULES}' all info +.if ${USING_NEW_BINUTILS:L} != "yes" + cd ${.OBJDIR}/binutils && \ + ${MAKE} CC="${CC}" CFLAGS="${CFLAGS} ${COPTS}" \ + LDFLAGS=${LDSTATIC} objdump +.endif + +.include <bsd.own.mk> + +.ifdef GLOBAL_AUTOCONF_CACHE +CF= --cache-file=${GLOBAL_AUTOCONF_CACHE} +.else +CF= +.endif + +do-config: .USE + PATH="/bin:/usr/bin:/sbin:/usr/sbin" \ + MAKEINFO='makeinfo --no-split' \ + sh ${.CURDIR}/configure --prefix=${PREFIX} \ + --infodir='$${prefix}/share/info' \ + --disable-nls --disable-gdbtk --disable-install-libbfd ${CF} \ + ${CONFIGTARGET} + cd ${.OBJDIR} && \ + sed -e 's,SUBDIRS *=,SUBDIRS ?=,' <Makefile >Makefile.tmp && \ + mv -f Makefile.tmp Makefile + cd ${.OBJDIR} && \ + ${MAKE} ${CONFIGURE_MODULES} +.if ${USING_NEW_BINUTILS:L} == "yes" + # We need to generate as.1 and ld.1 immediately after config.status + # for the manpage machinery to work properly. + cd ${.OBJDIR}/gas/doc && ${MAKE} as.1 + cd ${.OBJDIR}/ld && ${MAKE} ld.1 +.endif + +config: do-config +.ifndef GLOBAL_AUTOCONF_CACHE + -rm -f config.cache +.endif + +config.status: do-config + +# Need to pass SUBDIRS because of install-info +install: maninstall + SUBDIRS='${INST_SUBDIRS}' ${MAKE} DESTDIR='${DESTDIR}' \ + INSTALL_MAN= \ + scriptdir=${PREFIX}/libdata \ + tooldir=${PREFIX} \ + BSDSRCDIR=${BSDSRCDIR} \ + INSTALL_MODULES='${INSTALL_MODULES}' \ + INSTALL_PROGRAM='install -c -S' \ + INSTALL_INFO_HOST_MODULES='${INSTALL_INFO_HOST_MODULES}' \ + install install-info +.if ${USING_NEW_BINUTILS:L} != "yes" + cd ${.OBJDIR}/binutils && \ + ${INSTALL} ${INSTALL_COPY} ${INSTALL_STRIP} -o ${BINOWN} \ + -g ${BINGRP} -m ${BINMODE} objdump ${DESTDIR}${PREFIX}/bin +.endif + +clean cleandir: + -@if [ -e Makefile ]; then ${MAKE} distclean; fi + +c++filt.1: binutils/cxxfilt.man + sed -e 's,@PROGRAM@,c++filt,' <${.CURDIR}/binutils/cxxfilt.man >$@ + +depend: + # Nothing here so far... + +lint: + # Nothing here so far... + +tags: + # Nothing here so far... + +BEFOREMAN=config.status + +.PHONY: config + +.include <bsd.obj.mk> +.include <bsd.subdir.mk> + +.ifdef NOMAN +maninstall: + @echo NOMAN is set +.else +.include <bsd.man.mk> +.endif diff --git a/gnu/usr.bin/binutils-2.17/bfd/Makefile.am b/gnu/usr.bin/binutils-2.17/bfd/Makefile.am index d00bf9827a5..790a880fada 100644 --- a/gnu/usr.bin/binutils-2.17/bfd/Makefile.am +++ b/gnu/usr.bin/binutils-2.17/bfd/Makefile.am @@ -804,17 +804,12 @@ uninstall-bfdlibLTLIBRARIES: @INSTALL_LIBBFD_TRUE@uninstall_libbfd .PHONY: install_libbfd uninstall_libbfd install_libbfd: $(bfdlib_LTLIBRARIES) $(BFD_H) $(mkinstalldirs) $(DESTDIR)$(bfdlibdir) - $(mkinstalldirs) $(DESTDIR)$(bfdincludedir) @list='$(bfdlib_LTLIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ echo "$(LIBTOOL) --mode=install $(INSTALL) $$p $(DESTDIR)$(bfdlibdir)/$$p"; \ $(LIBTOOL) --mode=install $(INSTALL) $$p $(DESTDIR)$(bfdlibdir)/$$p; \ else :; fi; \ done - $(INSTALL_DATA) $(BFD_H) $(DESTDIR)$(bfdincludedir)/bfd.h - $(INSTALL_DATA) $(INCDIR)/ansidecl.h $(DESTDIR)$(bfdincludedir)/ansidecl.h - $(INSTALL_DATA) $(INCDIR)/symcat.h $(DESTDIR)$(bfdincludedir)/symcat.h - $(INSTALL_DATA) $(INCDIR)/bfdlink.h $(DESTDIR)$(bfdincludedir)/bfdlink.h uninstall_libbfd: list='$(bfdlib_LTLIBRARIES)'; for p in $$list; do \ @@ -871,7 +866,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/gnu/usr.bin/binutils-2.17/bfd/Makefile.in b/gnu/usr.bin/binutils-2.17/bfd/Makefile.in index d73b9e70e34..04cb955e0c6 100644 --- a/gnu/usr.bin/binutils-2.17/bfd/Makefile.in +++ b/gnu/usr.bin/binutils-2.17/bfd/Makefile.in @@ -1374,7 +1374,7 @@ $(BFD32_LIBS) \ $(ALL_MACHINES) \ $(BFD32_BACKENDS) \ $(BFD64_BACKENDS) \ - $(OPTIONAL_BACKENDS): $(BFD_H) $(BFD_H_DEPS) $(LOCAL_H_DEPS) + $(OPTIONAL_BACKENDS) @COREFILE@: $(BFD_H) $(BFD_H_DEPS) $(LOCAL_H_DEPS) install-bfdlibLTLIBRARIES: @INSTALL_LIBBFD_TRUE@install_libbfd @$(NORMAL_INSTALL) @@ -1385,17 +1385,12 @@ uninstall-bfdlibLTLIBRARIES: @INSTALL_LIBBFD_TRUE@uninstall_libbfd .PHONY: install_libbfd uninstall_libbfd install_libbfd: $(bfdlib_LTLIBRARIES) $(BFD_H) $(mkinstalldirs) $(DESTDIR)$(bfdlibdir) - $(mkinstalldirs) $(DESTDIR)$(bfdincludedir) @list='$(bfdlib_LTLIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ echo "$(LIBTOOL) --mode=install $(INSTALL) $$p $(DESTDIR)$(bfdlibdir)/$$p"; \ $(LIBTOOL) --mode=install $(INSTALL) $$p $(DESTDIR)$(bfdlibdir)/$$p; \ else :; fi; \ done - $(INSTALL_DATA) $(BFD_H) $(DESTDIR)$(bfdincludedir)/bfd.h - $(INSTALL_DATA) $(INCDIR)/ansidecl.h $(DESTDIR)$(bfdincludedir)/ansidecl.h - $(INSTALL_DATA) $(INCDIR)/symcat.h $(DESTDIR)$(bfdincludedir)/symcat.h - $(INSTALL_DATA) $(INCDIR)/bfdlink.h $(DESTDIR)$(bfdincludedir)/bfdlink.h uninstall_libbfd: list='$(bfdlib_LTLIBRARIES)'; for p in $$list; do \ @@ -1452,7 +1447,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 @@ -2402,6 +2397,8 @@ peigen.lo: peigen.c $(INCDIR)/filenames.h $(INCDIR)/hashtab.h \ pepigen.lo: pepigen.c $(INCDIR)/filenames.h $(INCDIR)/hashtab.h \ $(INCDIR)/coff/internal.h $(INCDIR)/coff/ia64.h $(INCDIR)/coff/external.h \ $(INCDIR)/coff/pe.h libcoff.h $(INCDIR)/bfdlink.h libpei.h +netbsd-core.lo: netbsd-core.c $(INCDIR)/filenames.h libaout.h \ + $(INCDIR)/bfdlink.h # IF YOU PUT ANYTHING HERE IT WILL GO AWAY # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/gnu/usr.bin/binutils-2.17/bfd/config.bfd b/gnu/usr.bin/binutils-2.17/bfd/config.bfd index 4fd72c1c152..cb88842900a 100644 --- a/gnu/usr.bin/binutils-2.17/bfd/config.bfd +++ b/gnu/usr.bin/binutils-2.17/bfd/config.bfd @@ -242,7 +242,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 ;; @@ -251,7 +251,7 @@ case "${targ}" in targ_selvecs=bfd_elf32_bigarm_vec ;; arm-*-elf | arm-*-freebsd* | arm*-*-linux-* | arm*-*-conix* | \ - arm*-*-uclinux* | arm-*-kfreebsd*-gnu | \ + arm*-*-uclinux* | arm-*-kfreebsd*-gnu | arm-*-openbsd* | \ arm*-*-eabi* ) targ_defvec=bfd_elf32_littlearm_vec targ_selvecs=bfd_elf32_bigarm_vec @@ -409,6 +409,10 @@ case "${targ}" in targ_selvecs=bfd_elf64_hppa_linux_vec targ_cflags=-DHPUX_LARGE_AR_IDS ;; + hppa*64*-*-openbsd*) + targ_defvec=bfd_elf64_hppa_vec + targ_selvecs=bfd_elf64_hppa_linux_vec + ;; #endif hppa*-*-linux-*) @@ -529,7 +533,8 @@ case "${targ}" in ;; i[3-7]86-*-openbsd*) targ_defvec=bfd_elf32_i386_vec - targ_selvecs=i386netbsd_vec + targ_selvecs="i386netbsd_vec bfd_efi_app_ia32_vec" + targ64_selvecs=bfd_elf64_x86_64_vec ;; i[3-7]86-*-netware*) targ_defvec=bfd_elf32_i386_vec @@ -554,10 +559,14 @@ case "${targ}" in targ_defvec=bfd_elf64_x86_64_vec targ_selvecs="bfd_elf32_i386_vec i386coff_vec bfd_efi_app_ia32_vec" ;; - 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 bfd_efi_app_ia32_vec" ;; + x86_64-*-openbsd*) + targ_defvec=bfd_elf64_x86_64_vec + targ_selvecs="bfd_elf32_i386_vec i386coff_vec bfd_efi_app_ia32_vec" + ;; x86_64-*-linux-*) targ_defvec=bfd_elf64_x86_64_vec targ_selvecs="bfd_elf32_i386_vec i386linux_vec bfd_efi_app_ia32_vec" @@ -892,9 +901,13 @@ case "${targ}" in targ_selvecs="bfd_elf32_littlemips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec" ;; #ifdef BFD64 + mips64*el-*-openbsd*) + targ_defvec=bfd_elf64_tradlittlemips_vec + targ_selvecs="bfd_elf32_ntradlittlemips_vec bfd_elf32_ntradbigmips_vec bfd_elf32_tradlittlemips_vec bfd_elf32_tradbigmips_vec bfd_elf64_tradbigmips_vec ecoff_big_vec ecoff_little_vec" + ;; mips64*-*-openbsd*) targ_defvec=bfd_elf64_tradbigmips_vec - targ_selvecs="bfd_elf32_ntradlittlemips_vec bfd_elf32_ntradbigmips_vec bfd_elf32_tradlittlemips_vec bfd_elf32_tradbigmips_vec bfd_elf64_tradlittlemips_vec" + targ_selvecs="bfd_elf32_ntradlittlemips_vec bfd_elf32_ntradbigmips_vec bfd_elf32_tradlittlemips_vec bfd_elf32_tradbigmips_vec bfd_elf64_tradlittlemips_vec ecoff_big_vec ecoff_little_vec" ;; #endif mips*el-*-openbsd*) @@ -1180,6 +1193,10 @@ case "${targ}" in targ_defvec=bfd_elf32_shnbsd_vec targ_selvecs="bfd_elf32_shlnbsd_vec shcoff_vec shlcoff_vec" ;; + sh*-*-openbsd*) + targ_defvec=bfd_elf32_shlobsd_vec + targ_selvecs="bfd_elf32_shobsd_vec" + ;; sh*-*-symbianelf*) targ_defvec=bfd_elf32_shl_symbian_vec targ_selvecs="shlcoff_vec shlcoff_small_vec" diff --git a/gnu/usr.bin/binutils-2.17/bfd/configure b/gnu/usr.bin/binutils-2.17/bfd/configure index af6c22b5a66..2801f64dbb0 100755 --- a/gnu/usr.bin/binutils-2.17/bfd/configure +++ b/gnu/usr.bin/binutils-2.17/bfd/configure @@ -11467,7 +11467,9 @@ if test "${target}" = "${host}"; then alpha*-*-*) COREFILE=osf-core.lo ;; arm-*-freebsd* | arm-*-kfreebsd*-gnu) COREFILE='' ;; - arm-*-netbsd*) COREFILE=netbsd-core.lo ;; + arm-*-netbsd* | arm-*-openbsd*) + COREFILE=netbsd-core.lo + ;; arm-*-riscix) COREFILE=trad-core.lo ;; hppa*-*-hpux*) COREFILE=hpux-core.lo ;; hppa*-*-hiux*) COREFILE=hpux-core.lo ;; @@ -11674,7 +11676,9 @@ rm -f conftest.err conftest.$ac_objext conftest.$ac_ext powerpc-*-netbsd*) COREFILE=netbsd-core.lo ;; powerpc-*-*bsd*) COREFILE=netbsd-core.lo ;; s390*-*-*) COREFILE=trad-core.lo ;; - sh*-*-netbsd*) COREFILE=netbsd-core.lo ;; + sh*-*-netbsd* | sh*-*-openbsd*) + COREFILE=netbsd-core.lo + ;; sparc-*-netbsd* | sparc*-*-openbsd*) COREFILE=netbsd-core.lo ;; @@ -13158,7 +13162,9 @@ do bfd_elf32_shl_symbian_vec) tb="$tb elf32-sh-symbian.lo elf32-sh64-com.lo elf32.lo $elf coff-sh.lo" ;; bfd_elf32_shlin_vec) tb="$tb elf32-sh.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;; bfd_elf32_shlnbsd_vec) tb="$tb elf32-sh.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;; + bfd_elf32_shlobsd_vec) tb="$tb elf32-sh.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;; bfd_elf32_shnbsd_vec) tb="$tb elf32-sh.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;; + bfd_elf32_shobsd_vec) tb="$tb elf32-sh.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;; bfd_elf32_sparc_vec) tb="$tb elf32-sparc.lo elfxx-sparc.lo elf-vxworks.lo elf32.lo $elf" ;; bfd_elf32_sparc_vxworks_vec) tb="$tb elf32-sparc.lo elfxx-sparc.lo elf-vxworks.lo elf32.lo $elf" ;; bfd_elf32_tradbigmips_vec) tb="$tb elf32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo" ;; diff --git a/gnu/usr.bin/binutils-2.17/bfd/configure.in b/gnu/usr.bin/binutils-2.17/bfd/configure.in index 212f96142fd..97059a5d5c6 100644 --- a/gnu/usr.bin/binutils-2.17/bfd/configure.in +++ b/gnu/usr.bin/binutils-2.17/bfd/configure.in @@ -178,7 +178,9 @@ if test "${target}" = "${host}"; then alpha*-*-*) COREFILE=osf-core.lo ;; arm-*-freebsd* | arm-*-kfreebsd*-gnu) COREFILE='' ;; - arm-*-netbsd*) COREFILE=netbsd-core.lo ;; + arm-*-netbsd* | arm-*-openbsd*) + COREFILE=netbsd-core.lo + ;; arm-*-riscix) COREFILE=trad-core.lo ;; hppa*-*-hpux*) COREFILE=hpux-core.lo ;; hppa*-*-hiux*) COREFILE=hpux-core.lo ;; @@ -361,7 +363,9 @@ changequote([,])dnl powerpc-*-netbsd*) COREFILE=netbsd-core.lo ;; powerpc-*-*bsd*) COREFILE=netbsd-core.lo ;; s390*-*-*) COREFILE=trad-core.lo ;; - sh*-*-netbsd*) COREFILE=netbsd-core.lo ;; + sh*-*-netbsd* | sh*-*-openbsd*) + COREFILE=netbsd-core.lo + ;; sparc-*-netbsd* | sparc*-*-openbsd*) COREFILE=netbsd-core.lo ;; @@ -671,7 +675,9 @@ do bfd_elf32_shl_symbian_vec) tb="$tb elf32-sh-symbian.lo elf32-sh64-com.lo elf32.lo $elf coff-sh.lo" ;; bfd_elf32_shlin_vec) tb="$tb elf32-sh.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;; bfd_elf32_shlnbsd_vec) tb="$tb elf32-sh.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;; + bfd_elf32_shlobsd_vec) tb="$tb elf32-sh.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;; bfd_elf32_shnbsd_vec) tb="$tb elf32-sh.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;; + bfd_elf32_shobsd_vec) tb="$tb elf32-sh.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;; bfd_elf32_sparc_vec) tb="$tb elf32-sparc.lo elfxx-sparc.lo elf-vxworks.lo elf32.lo $elf" ;; bfd_elf32_sparc_vxworks_vec) tb="$tb elf32-sparc.lo elfxx-sparc.lo elf-vxworks.lo elf32.lo $elf" ;; bfd_elf32_tradbigmips_vec) tb="$tb elf32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo" ;; diff --git a/gnu/usr.bin/binutils-2.17/bfd/doc/Makefile.am b/gnu/usr.bin/binutils-2.17/bfd/doc/Makefile.am index 6d221faad4a..f520f0d5906 100644 --- a/gnu/usr.bin/binutils-2.17/bfd/doc/Makefile.am +++ b/gnu/usr.bin/binutils-2.17/bfd/doc/Makefile.am @@ -286,7 +286,7 @@ MAINTAINERCLEANFILES = $(DOCFILES) # We want install to imply install-info as per GNU standards, despite the # cygnus option. -install: install-info +install: @INSTALL_LIBBFD_TRUE@install-info html__strip_dir = `echo $$p | sed -e 's|^.*/||'`; diff --git a/gnu/usr.bin/binutils-2.17/bfd/doc/Makefile.in b/gnu/usr.bin/binutils-2.17/bfd/doc/Makefile.in index ad81061ec7b..7f1bdb6a77f 100644 --- a/gnu/usr.bin/binutils-2.17/bfd/doc/Makefile.in +++ b/gnu/usr.bin/binutils-2.17/bfd/doc/Makefile.in @@ -764,7 +764,7 @@ bfd.h: $(BFD_H_DEP) # We want install to imply install-info as per GNU standards, despite the # cygnus option. -install: install-info +install: @INSTALL_LIBBFD_TRUE@install-info install-html: install-html-am diff --git a/gnu/usr.bin/binutils-2.17/bfd/doc/bfd.texinfo b/gnu/usr.bin/binutils-2.17/bfd/doc/bfd.texinfo index 432e0526449..b3921b94a6d 100644 --- a/gnu/usr.bin/binutils-2.17/bfd/doc/bfd.texinfo +++ b/gnu/usr.bin/binutils-2.17/bfd/doc/bfd.texinfo @@ -144,7 +144,7 @@ To use the library, include @file{bfd.h} and link with @file{libbfd.a}. BFD provides a common interface to the parts of an object file for a calling application. -When an application sucessfully opens a target file (object, archive, or +When an application successfully opens a target file (object, archive, or whatever), a pointer to an internal structure is returned. This pointer points to a structure called @code{bfd}, described in @file{bfd.h}. Our convention is to call this pointer a BFD, and diff --git a/gnu/usr.bin/binutils-2.17/bfd/elf.c b/gnu/usr.bin/binutils-2.17/bfd/elf.c index 9e48f66e90f..46edeb00b46 100644 --- a/gnu/usr.bin/binutils-2.17/bfd/elf.c +++ b/gnu/usr.bin/binutils-2.17/bfd/elf.c @@ -4627,9 +4627,12 @@ get_program_header_size (bfd *abfd) return elf_tdata (abfd)->program_header_size; } - /* 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) @@ -7852,6 +7855,70 @@ elfcore_grok_netbsd_note (bfd *abfd, Elf_Internal_Note *note) } static bfd_boolean +elfcore_grok_openbsd_procinfo (bfd *abfd, Elf_Internal_Note *note) +{ + /* Signal number at offset 0x08. */ + elf_tdata (abfd)->core_signal + = bfd_h_get_32 (abfd, (bfd_byte *) note->descdata + 0x08); + + /* Process ID at offset 0x20. */ + elf_tdata (abfd)->core_pid + = bfd_h_get_32 (abfd, (bfd_byte *) note->descdata + 0x20); + + /* Command name at 0x48 (max 32 bytes, including nul). */ + elf_tdata (abfd)->core_command + = _bfd_elfcore_strndup (abfd, note->descdata + 0x48, 31); + + return TRUE; +} + +static bfd_boolean +elfcore_grok_openbsd_note (bfd *abfd, Elf_Internal_Note *note) +{ + if (note->type == NT_OPENBSD_PROCINFO) + return elfcore_grok_openbsd_procinfo (abfd, note); + + if (note->type == NT_OPENBSD_REGS) + return elfcore_make_note_pseudosection (abfd, ".reg", note); + + if (note->type == NT_OPENBSD_FPREGS) + return elfcore_make_note_pseudosection (abfd, ".reg2", note); + + if (note->type == NT_OPENBSD_XFPREGS) + return elfcore_make_note_pseudosection (abfd, ".reg-xfp", note); + + if (note->type == NT_OPENBSD_AUXV) + { + asection *sect = bfd_make_section_anyway (abfd, ".auxv"); + + if (sect == NULL) + return FALSE; + sect->_raw_size = note->descsz; + sect->filepos = note->descpos; + sect->flags = SEC_HAS_CONTENTS; + sect->alignment_power = 1 + bfd_get_arch_size (abfd) / 32; + + return TRUE; + } + + if (note->type == NT_OPENBSD_WCOOKIE) + { + asection *sect = bfd_make_section_anyway (abfd, ".wcookie"); + + if (sect == NULL) + return FALSE; + sect->_raw_size = note->descsz; + sect->filepos = note->descpos; + sect->flags = SEC_HAS_CONTENTS; + sect->alignment_power = 1 + bfd_get_arch_size (abfd) / 32; + + return TRUE; + } + + return TRUE; +} + +static bfd_boolean elfcore_grok_nto_status (bfd *abfd, Elf_Internal_Note *note, pid_t *tid) { void *ddata = note->descdata; @@ -8194,6 +8261,11 @@ elfcore_read_notes (bfd *abfd, file_ptr offset, bfd_size_type size) if (! elfcore_grok_netbsd_note (abfd, &in)) goto error; } + else if (strncmp (in.namedata, "OpenBSD", 7) == 0) + { + if (! elfcore_grok_openbsd_note (abfd, &in)) + goto error; + } else if (strncmp (in.namedata, "QNX", 3) == 0) { if (! elfcore_grok_nto_note (abfd, &in)) diff --git a/gnu/usr.bin/binutils-2.17/bfd/elf32-sh.c b/gnu/usr.bin/binutils-2.17/bfd/elf32-sh.c index 118690d9a58..d9e0a20ccd8 100644 --- a/gnu/usr.bin/binutils-2.17/bfd/elf32-sh.c +++ b/gnu/usr.bin/binutils-2.17/bfd/elf32-sh.c @@ -7398,4 +7398,23 @@ sh_elf_plt_sym_val (bfd_vma i, const asection *plt, #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" + + #endif /* neither INCLUDE_SHMEDIA nor SH_TARGET_ALREADY_DEFINED */ diff --git a/gnu/usr.bin/binutils-2.17/bfd/elfxx-mips.c b/gnu/usr.bin/binutils-2.17/bfd/elfxx-mips.c index 39420a63ae7..47cf31cfee8 100644 --- a/gnu/usr.bin/binutils-2.17/bfd/elfxx-mips.c +++ b/gnu/usr.bin/binutils-2.17/bfd/elfxx-mips.c @@ -8862,11 +8862,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 - * (ABI_64_P (output_bfd) - ? sizeof (Elf64_Mips_External_Rel) - : sizeof (Elf32_External_Rel))); + if (SGI_COMPAT (output_bfd)) + { + s = mips_elf_rel_dyn_section (info, 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; break; default: diff --git a/gnu/usr.bin/binutils-2.17/bfd/targets.c b/gnu/usr.bin/binutils-2.17/bfd/targets.c index 849eb944fbe..a06872bc5a8 100644 --- a/gnu/usr.bin/binutils-2.17/bfd/targets.c +++ b/gnu/usr.bin/binutils-2.17/bfd/targets.c @@ -632,7 +632,9 @@ 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_shnbsd_vec; +extern const bfd_target bfd_elf32_shobsd_vec; extern const bfd_target bfd_elf32_sparc_vec; extern const bfd_target bfd_elf32_sparc_vxworks_vec; extern const bfd_target bfd_elf32_tradbigmips_vec; @@ -939,7 +941,9 @@ 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_shnbsd_vec, + &bfd_elf32_shobsd_vec, #ifdef BFD64 &bfd_elf32_sh64_vec, &bfd_elf32_sh64l_vec, diff --git a/gnu/usr.bin/binutils-2.17/binutils/Makefile.am b/gnu/usr.bin/binutils-2.17/binutils/Makefile.am index 1b4e85adb8a..7513b981609 100644 --- a/gnu/usr.bin/binutils-2.17/binutils/Makefile.am +++ b/gnu/usr.bin/binutils-2.17/binutils/Makefile.am @@ -42,7 +42,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 @@ -53,18 +53,18 @@ DLLWRAP_PROG=dllwrap SRCONV_PROG=srconv$(EXEEXT) sysdump$(EXEEXT) coffdump$(EXEEXT) -PROGS = $(SIZE_PROG) $(OBJDUMP_PROG) $(NM_PROG) $(AR_PROG) $(STRINGS_PROG) $(STRIP_PROG) $(RANLIB_PROG) $(DEMANGLER_PROG) $(OBJCOPY_PROG) @BUILD_NLMCONV@ @BUILD_SRCONV@ @BUILD_DLLTOOL@ @BUILD_WINDRES@ $(ADDR2LINE_PROG) $(READELF_PROG) @BUILD_DLLWRAP@ @BUILD_MISC@ +PROGS = $(OBJDUMP_PROG) $(AR_PROG) $(STRINGS_PROG) $(STRIP_PROG) $(RANLIB_PROG) $(DEMANGLER_PROG) $(OBJCOPY_PROG) @BUILD_NLMCONV@ @BUILD_SRCONV@ @BUILD_DLLTOOL@ @BUILD_WINDRES@ $(ADDR2LINE_PROG) $(READELF_PROG) @BUILD_DLLWRAP@ @BUILD_MISC@ -bin_PROGRAMS = $(SIZE_PROG) $(OBJDUMP_PROG) $(AR_PROG) $(STRINGS_PROG) $(RANLIB_PROG) $(OBJCOPY_PROG) @BUILD_NLMCONV@ @BUILD_SRCONV@ @BUILD_DLLTOOL@ @BUILD_WINDRES@ $(ADDR2LINE_PROG) $(READELF_PROG) @BUILD_DLLWRAP@ @BUILD_MISC@ +bin_PROGRAMS = $(OBJDUMP_PROG) $(AR_PROG) $(STRINGS_PROG) $(RANLIB_PROG) $(OBJCOPY_PROG) @BUILD_NLMCONV@ @BUILD_SRCONV@ @BUILD_DLLTOOL@ @BUILD_WINDRES@ $(ADDR2LINE_PROG) $(READELF_PROG) @BUILD_DLLWRAP@ @BUILD_MISC@ ## We need a special rule to install the programs which are built with ## -new, and to rename cxxfilt to c++filt. -noinst_PROGRAMS = $(NM_PROG) $(STRIP_PROG) $(DEMANGLER_PROG) +noinst_PROGRAMS = $(STRIP_PROG) EXTRA_PROGRAMS = $(NLMCONV_PROG) srconv sysdump coffdump $(DLLTOOL_PROG) $(WINDRES_PROG) $(DLLWRAP_PROG) # Stuff that goes in tooldir/ if appropriate. -TOOL_PROGS = nm-new strip-new ar ranlib dlltool objdump +TOOL_PROGS = strip-new ar ranlib dlltool objdump BASEDIR = $(srcdir)/.. BFDDIR = $(BASEDIR)/bfd @@ -113,7 +113,7 @@ BFDLIB = ../bfd/libbfd.la OPCODES = ../opcodes/libopcodes.la -LIBIBERTY = ../libiberty/libiberty.a +LIBIBERTY = -liberty .PHONY: install-html install-html-am install-html-recursive @@ -203,7 +203,7 @@ objdump_LDADD = $(OPCODES) $(BFDLIB) $(LIBIBERTY) $(INTLLIBS) objdump.o:objdump.c $(COMPILE) -c $(OBJDUMP_DEFS) $(srcdir)/objdump.c -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) @@ -382,7 +382,7 @@ CLEANFILES = dep.sed DEP DEPA DEP1 DEP2 install-exec-local: install-binPROGRAMS $(bin_PROGRAMS) $(noinst_PROGRAMS) @list='$(noinst_PROGRAMS)'; for p in $$list; do \ if test -f $$p; then \ - echo " $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(bindir)/`echo $$p|sed -e 's/$(EXEEXT)$$//' -e 's/-new//' -e 's/cxxfilt/$(DEMANGLER_NAME)/'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \ + echo " $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed -e 's/$(EXEEXT)$$//' -e 's/-new//' -e 's/cxxfilt/$(DEMANGLER_NAME)/'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \ $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed -e 's/$(EXEEXT)$$//' -e 's/-new//' -e 's/cxxfilt/$(DEMANGLER_NAME)/'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ else :; fi; \ done diff --git a/gnu/usr.bin/binutils-2.17/binutils/Makefile.in b/gnu/usr.bin/binutils-2.17/binutils/Makefile.in index 8b5ab820548..49f1e732a95 100644 --- a/gnu/usr.bin/binutils-2.17/binutils/Makefile.in +++ b/gnu/usr.bin/binutils-2.17/binutils/Makefile.in @@ -37,11 +37,11 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ -bin_PROGRAMS = $(am__EXEEXT_5) $(am__EXEEXT_6) $(am__EXEEXT_7) \ +bin_PROGRAMS = $(am__EXEEXT_6) $(am__EXEEXT_7) \ $(am__EXEEXT_8) $(am__EXEEXT_9) $(am__EXEEXT_10) \ @BUILD_NLMCONV@ @BUILD_SRCONV@ @BUILD_DLLTOOL@ @BUILD_WINDRES@ \ $(am__EXEEXT_11) $(am__EXEEXT_12) @BUILD_DLLWRAP@ @BUILD_MISC@ -noinst_PROGRAMS = $(am__EXEEXT_13) $(am__EXEEXT_14) $(am__EXEEXT_15) +noinst_PROGRAMS = $(am__EXEEXT_14) $(am__EXEEXT_15) EXTRA_PROGRAMS = $(am__EXEEXT_1) srconv$(EXEEXT) sysdump$(EXEEXT) \ coffdump$(EXEEXT) $(am__EXEEXT_2) $(am__EXEEXT_3) \ $(am__EXEEXT_4) @@ -92,7 +92,7 @@ am_addr2line_OBJECTS = addr2line.$(OBJEXT) budemang.$(OBJEXT) \ addr2line_OBJECTS = $(am_addr2line_OBJECTS) addr2line_LDADD = $(LDADD) am__DEPENDENCIES_1 = ../bfd/libbfd.la -am__DEPENDENCIES_2 = ../libiberty/libiberty.a +am__DEPENDENCIES_2 = am__DEPENDENCIES_3 = addr2line_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) \ $(am__DEPENDENCIES_3) @@ -210,7 +210,7 @@ YACCCOMPILE = $(YACC) $(YFLAGS) $(AM_YFLAGS) LTYACCCOMPILE = $(LIBTOOL) --mode=compile $(YACC) $(YFLAGS) \ $(AM_YFLAGS) SOURCES = $(addr2line_SOURCES) $(ar_SOURCES) $(coffdump_SOURCES) \ - $(cxxfilt_SOURCES) $(dlltool_SOURCES) $(dllwrap_SOURCES) \ + $(dlltool_SOURCES) $(dllwrap_SOURCES) \ $(nlmconv_SOURCES) $(nm_new_SOURCES) $(objcopy_SOURCES) \ $(objdump_SOURCES) $(ranlib_SOURCES) $(readelf_SOURCES) \ $(size_SOURCES) $(srconv_SOURCES) $(strings_SOURCES) \ @@ -253,7 +253,7 @@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ -DEMANGLER_NAME = @DEMANGLER_NAME@ +#DEMANGLER_NAME = @DEMANGLER_NAME@ DEPDIR = @DEPDIR@ DLLTOOL_DEFS = @DLLTOOL_DEFS@ ECHO_C = @ECHO_C@ @@ -385,17 +385,17 @@ 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 WINDRES_PROG = windres DLLWRAP_PROG = dllwrap SRCONV_PROG = srconv$(EXEEXT) sysdump$(EXEEXT) coffdump$(EXEEXT) -PROGS = $(SIZE_PROG) $(OBJDUMP_PROG) $(NM_PROG) $(AR_PROG) $(STRINGS_PROG) $(STRIP_PROG) $(RANLIB_PROG) $(DEMANGLER_PROG) $(OBJCOPY_PROG) @BUILD_NLMCONV@ @BUILD_SRCONV@ @BUILD_DLLTOOL@ @BUILD_WINDRES@ $(ADDR2LINE_PROG) $(READELF_PROG) @BUILD_DLLWRAP@ @BUILD_MISC@ +PROGS = $(OBJDUMP_PROG) $(AR_PROG) $(STRINGS_PROG) $(STRIP_PROG) $(RANLIB_PROG) $(DEMANGLER_PROG) $(OBJCOPY_PROG) @BUILD_NLMCONV@ @BUILD_SRCONV@ @BUILD_DLLTOOL@ @BUILD_WINDRES@ $(ADDR2LINE_PROG) $(READELF_PROG) @BUILD_DLLWRAP@ @BUILD_MISC@ # Stuff that goes in tooldir/ if appropriate. -TOOL_PROGS = nm-new strip-new ar ranlib dlltool objdump +TOOL_PROGS = strip-new ar ranlib dlltool objdump BASEDIR = $(srcdir)/.. BFDDIR = $(BASEDIR)/bfd INCDIR = $(BASEDIR)/include @@ -437,7 +437,7 @@ WRITE_DEBUG_SRCS = $(DEBUG_SRCS) wrstabs.c BULIBS = bucomm.c version.c filemode.c BFDLIB = ../bfd/libbfd.la OPCODES = ../opcodes/libopcodes.la -LIBIBERTY = ../libiberty/libiberty.a +LIBIBERTY = -liberty POTFILES = $(CFILES) $(DEBUG_SRCS) $(HFILES) EXPECT = expect RUNTEST = runtest @@ -466,7 +466,7 @@ strip_new_SOURCES = objcopy.c is-strip.c rename.c $(WRITE_DEBUG_SRCS) $(BULIBS) nm_new_SOURCES = nm.c budemang.c $(BULIBS) objdump_SOURCES = objdump.c dwarf.c budemang.c prdbg.c $(DEBUG_SRCS) $(BULIBS) objdump_LDADD = $(OPCODES) $(BFDLIB) $(LIBIBERTY) $(INTLLIBS) -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) @@ -599,9 +599,6 @@ ar$(EXEEXT): $(ar_OBJECTS) $(ar_DEPENDENCIES) coffdump$(EXEEXT): $(coffdump_OBJECTS) $(coffdump_DEPENDENCIES) @rm -f coffdump$(EXEEXT) $(LINK) $(coffdump_LDFLAGS) $(coffdump_OBJECTS) $(coffdump_LDADD) $(LIBS) -cxxfilt$(EXEEXT): $(cxxfilt_OBJECTS) $(cxxfilt_DEPENDENCIES) - @rm -f cxxfilt$(EXEEXT) - $(LINK) $(cxxfilt_LDFLAGS) $(cxxfilt_OBJECTS) $(cxxfilt_LDADD) $(LIBS) dlltool$(EXEEXT): $(dlltool_OBJECTS) $(dlltool_DEPENDENCIES) @rm -f dlltool$(EXEEXT) $(LINK) $(dlltool_LDFLAGS) $(dlltool_OBJECTS) $(dlltool_LDADD) $(LIBS) @@ -1135,7 +1132,7 @@ mostlyclean-local: install-exec-local: install-binPROGRAMS $(bin_PROGRAMS) $(noinst_PROGRAMS) @list='$(noinst_PROGRAMS)'; for p in $$list; do \ if test -f $$p; then \ - echo " $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(bindir)/`echo $$p|sed -e 's/$(EXEEXT)$$//' -e 's/-new//' -e 's/cxxfilt/$(DEMANGLER_NAME)/'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \ + echo " $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed -e 's/$(EXEEXT)$$//' -e 's/-new//' -e 's/cxxfilt/$(DEMANGLER_NAME)/'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \ $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed -e 's/$(EXEEXT)$$//' -e 's/-new//' -e 's/cxxfilt/$(DEMANGLER_NAME)/'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ else :; fi; \ done diff --git a/gnu/usr.bin/binutils-2.17/binutils/ar.c b/gnu/usr.bin/binutils-2.17/binutils/ar.c index fe1c6402222..f50696f629d 100644 --- a/gnu/usr.bin/binutils-2.17/binutils/ar.c +++ b/gnu/usr.bin/binutils-2.17/binutils/ar.c @@ -922,7 +922,7 @@ write_archive (bfd *iarch) old_name = xmalloc (strlen (bfd_get_filename (iarch)) + 1); strcpy (old_name, bfd_get_filename (iarch)); - new_name = make_tempname (old_name); + new_name = make_tempname (old_name, 0); output_filename = new_name; diff --git a/gnu/usr.bin/binutils-2.17/binutils/bucomm.c b/gnu/usr.bin/binutils-2.17/binutils/bucomm.c index 03a4d2873e2..5c8f33f2e38 100644 --- a/gnu/usr.bin/binutils-2.17/binutils/bucomm.c +++ b/gnu/usr.bin/binutils-2.17/binutils/bucomm.c @@ -389,11 +389,12 @@ print_arelt_descr (FILE *file, bfd *abfd, bfd_boolean verbose) /* Return the name of a temporary file in the same directory as FILENAME. */ char * -make_tempname (char *filename) +make_tempname (char *filename, int isdir) { static char template[] = "stXXXXXX"; char *tmpname; char *slash = strrchr (filename, '/'); + char c; #ifdef HAVE_DOS_BASED_FILE_SYSTEM { @@ -408,8 +409,6 @@ make_tempname (char *filename) if (slash != (char *) NULL) { - char c; - c = *slash; *slash = 0; tmpname = xmalloc (strlen (filename) + sizeof (template) + 2); @@ -423,15 +422,31 @@ make_tempname (char *filename) #endif strcat (tmpname, "/"); strcat (tmpname, template); - mktemp (tmpname); - *slash = c; } else { tmpname = xmalloc (sizeof (template)); strcpy (tmpname, template); - mktemp (tmpname); } + + if (isdir) + { + if (mkdtemp (tmpname) == (char *) NULL) + tmpname = NULL; + } + else + { + int fd; + + fd = mkstemp (tmpname); + if (fd == -1) + tmpname = NULL; + else + close (fd); + } + if (slash != (char *) NULL) + *slash = c; + return tmpname; } diff --git a/gnu/usr.bin/binutils-2.17/binutils/bucomm.h b/gnu/usr.bin/binutils-2.17/binutils/bucomm.h index 9f914adeb58..0eadbba755b 100644 --- a/gnu/usr.bin/binutils-2.17/binutils/bucomm.h +++ b/gnu/usr.bin/binutils-2.17/binutils/bucomm.h @@ -199,7 +199,7 @@ int display_info (void); void print_arelt_descr (FILE *, bfd *, bfd_boolean); -char *make_tempname (char *); +char *make_tempname (char *, int); bfd_vma parse_vma (const char *, const char *); diff --git a/gnu/usr.bin/binutils-2.17/binutils/dlltool.c b/gnu/usr.bin/binutils-2.17/binutils/dlltool.c index 6c231f69a44..6f7efff41c1 100644 --- a/gnu/usr.bin/binutils-2.17/binutils/dlltool.c +++ b/gnu/usr.bin/binutils-2.17/binutils/dlltool.c @@ -1139,7 +1139,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/gnu/usr.bin/binutils-2.17/binutils/dllwrap.c b/gnu/usr.bin/binutils-2.17/binutils/dllwrap.c index f93c75d6fb3..ff8012e1081 100644 --- a/gnu/usr.bin/binutils-2.17/binutils/dllwrap.c +++ b/gnu/usr.bin/binutils-2.17/binutils/dllwrap.c @@ -349,7 +349,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; @@ -800,12 +804,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; + def_file_name = make_temp_file (".def"); + if (dontdeltemps) + def_file_name = mybasename (def_file_name); free (fileprefix); delete_def_file = 1; warn (_("no export definition file provided.\n\ @@ -983,12 +984,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); } { diff --git a/gnu/usr.bin/binutils-2.17/binutils/doc/Makefile.in b/gnu/usr.bin/binutils-2.17/binutils/doc/Makefile.in index ef28ceff8df..077a3fb3dc3 100644 --- a/gnu/usr.bin/binutils-2.17/binutils/doc/Makefile.in +++ b/gnu/usr.bin/binutils-2.17/binutils/doc/Makefile.in @@ -66,7 +66,7 @@ MAKEINFOHTML = $(MAKEINFO) --html AM_MAKEINFOHTMLFLAGS = $(AM_MAKEINFOFLAGS) DVIPS = dvips man1dir = $(mandir)/man1 -am__installdirs = "$(DESTDIR)$(man1dir)" +am__installdirs = NROFF = nroff MANS = $(man_MANS) ACLOCAL = @ACLOCAL@ @@ -205,7 +205,7 @@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ -AUTOMAKE_OPTIONS = cygnus +AUTOMAKE_OPTIONS = cygnus no-installman # What version of the manual you want; "all" includes everything CONFIG = all @@ -443,7 +443,7 @@ CTAGS: check-am: check: check-am -all-am: Makefile $(MANS) +all-am: Makefile installdirs: for dir in "$(DESTDIR)$(man1dir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ @@ -494,7 +494,7 @@ info: info-am info-am: $(INFO_DEPS) info-local -install-data-am: install-data-local install-man +install-data-am: install-data-local install-exec-am: @@ -552,7 +552,7 @@ ps: ps-am ps-am: $(PSS) -uninstall-am: uninstall-man +uninstall-am: uninstall-man: uninstall-man1 diff --git a/gnu/usr.bin/binutils-2.17/binutils/objcopy.c b/gnu/usr.bin/binutils-2.17/binutils/objcopy.c index 0e0cfaaccf5..63ac20d99ae 100644 --- a/gnu/usr.bin/binutils-2.17/binutils/objcopy.c +++ b/gnu/usr.bin/binutils-2.17/binutils/objcopy.c @@ -1686,13 +1686,6 @@ copy_object (bfd *ibfd, bfd *obfd) return TRUE; } -#undef MKDIR -#if defined (_WIN32) && !defined (__CYGWIN32__) -#define MKDIR(DIR, MODE) mkdir (DIR) -#else -#define MKDIR(DIR, MODE) mkdir (DIR, MODE) -#endif - /* Read each archive element in turn from IBFD, copy the contents to temp file, and keep the temp file handle. */ @@ -1707,12 +1700,12 @@ copy_archive (bfd *ibfd, bfd *obfd, const char *output_target) } *list, *l; bfd **ptr = &obfd->archive_head; bfd *this_element; - char *dir = make_tempname (bfd_get_filename (obfd)); + char *dir = make_tempname (bfd_get_filename (obfd), 1); /* Make a temp directory to hold the contents. */ - if (MKDIR (dir, 0700) != 0) - fatal (_("cannot mkdir %s for archive copying (error: %s)"), - dir, strerror (errno)); + if (dir == (char *) NULL) + fatal (_("cannot make temp directory for archive copying (error: %s)"), + strerror (errno)); obfd->has_armap = ibfd->has_armap; @@ -1739,10 +1732,10 @@ copy_archive (bfd *ibfd, bfd *obfd, const char *output_target) /* If the file already exists, make another temp dir. */ if (stat (output_name, &buf) >= 0) { - output_name = make_tempname (output_name); - if (MKDIR (output_name, 0700) != 0) - fatal (_("cannot mkdir %s for archive copying (error: %s)"), - output_name, strerror (errno)); + output_name = make_tempname (output_name, 1); + if (output_name == (char *) NULL) + fatal (_("cannot make temp directory for archive copying (error: %s)"), + strerror (errno)); l = xmalloc (sizeof (struct name_list)); l->name = output_name; @@ -2586,7 +2579,10 @@ strip_main (int argc, char *argv[]) char *tmpname; if (get_file_size (argv[i]) < 1) - continue; + { + status = 1; + continue; + } if (preserve_dates) /* No need to check the return value of stat(). @@ -2596,7 +2592,7 @@ strip_main (int argc, char *argv[]) if (output_file != NULL) tmpname = output_file; else - tmpname = make_tempname (argv[i]); + tmpname = make_tempname (argv[i], 0); status = 0; copy_file (argv[i], tmpname, input_target, output_target); @@ -3189,7 +3185,7 @@ copy_main (int argc, char *argv[]) are the same, then create a temp and rename the result into the input. */ if (output_filename == NULL || strcmp (input_filename, output_filename) == 0) { - char *tmpname = make_tempname (input_filename); + char *tmpname = make_tempname (input_filename, 0); copy_file (input_filename, tmpname, input_target, output_target); if (status == 0) diff --git a/gnu/usr.bin/binutils-2.17/binutils/rddbg.c b/gnu/usr.bin/binutils-2.17/binutils/rddbg.c index e977d8b5ef1..43bb7ed533e 100644 --- a/gnu/usr.bin/binutils-2.17/binutils/rddbg.c +++ b/gnu/usr.bin/binutils-2.17/binutils/rddbg.c @@ -196,7 +196,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; diff --git a/gnu/usr.bin/binutils-2.17/binutils/resrc.c b/gnu/usr.bin/binutils-2.17/binutils/resrc.c index 73b482cd04a..7c0fe01fa4d 100644 --- a/gnu/usr.bin/binutils-2.17/binutils/resrc.c +++ b/gnu/usr.bin/binutils-2.17/binutils/resrc.c @@ -183,7 +183,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; @@ -294,12 +298,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/gnu/usr.bin/binutils-2.17/configure b/gnu/usr.bin/binutils-2.17/configure index dbcbdfef7d3..ee6baef152c 100755 --- a/gnu/usr.bin/binutils-2.17/configure +++ b/gnu/usr.bin/binutils-2.17/configure @@ -1240,6 +1240,10 @@ case "${target}" in *-*-netware*) noconfigdirs="$noconfigdirs target-newlib target-libiberty target-libgloss ${libgcj} target-libmudflap" ;; + *-*-openbsd*) + # Skip some stuff on all OpenBSD configurations. + noconfigdirs="$noconfigdirs gdb target-libiberty" + ;; *-*-rtems*) noconfigdirs="$noconfigdirs target-libgloss ${libgcj}" ;; @@ -3179,6 +3183,8 @@ for item in ${target_configdirs} ; do olditem=${item} done serialization_dependencies=serdep.tmp +# override on OpenBSD +serialization_dependencies=/dev/null # Base args. Strip norecursion, cache-file, srcdir, host, build, diff --git a/gnu/usr.bin/binutils-2.17/configure.in b/gnu/usr.bin/binutils-2.17/configure.in index 76daff9729a..f1eeeb33709 100644 --- a/gnu/usr.bin/binutils-2.17/configure.in +++ b/gnu/usr.bin/binutils-2.17/configure.in @@ -432,6 +432,10 @@ case "${target}" in *-*-netware*) noconfigdirs="$noconfigdirs target-newlib target-libiberty target-libgloss ${libgcj} target-libmudflap" ;; + *-*-openbsd*) + # Skip some stuff on all OpenBSD configurations. + noconfigdirs="$noconfigdirs gdb target-libiberty" + ;; *-*-rtems*) noconfigdirs="$noconfigdirs target-libgloss ${libgcj}" ;; @@ -1952,6 +1956,8 @@ for item in ${target_configdirs} ; do olditem=${item} done serialization_dependencies=serdep.tmp +# override on OpenBSD +serialization_dependencies=/dev/null AC_SUBST_FILE(serialization_dependencies) # Base args. Strip norecursion, cache-file, srcdir, host, build, diff --git a/gnu/usr.bin/binutils-2.17/gas/Makefile.am b/gnu/usr.bin/binutils-2.17/gas/Makefile.am index 08b9842fc6b..a43e0268fc5 100644 --- a/gnu/usr.bin/binutils-2.17/gas/Makefile.am +++ b/gnu/usr.bin/binutils-2.17/gas/Makefile.am @@ -373,6 +373,7 @@ TARG_ENV_HFILES = \ config/te-nbsd.h \ config/te-nbsd532.h \ config/te-netware.h \ + config/te-obsd.h \ config/te-pc532mach.h \ config/te-pe.h \ config/te-psos.h \ @@ -478,7 +479,8 @@ DEP_FLAGS = -DOBJ_MAYBE_ELF \ # How to link with both our special library facilities # and the system's installed libraries. -GASLIBS = @OPCODES_LIB@ @BFDLIB@ ../libiberty/libiberty.a +GASLIBS = @OPCODES_LIB@ @BFDLIB@ -liberty +GASLIBSDEP = @OPCODES_LIB@ @BFDLIB@ # Files to be copied away after each stage in building. STAGESTUFF = *.o $(noinst_PROGRAMS) @@ -491,7 +493,7 @@ as_new_SOURCES = $(GAS_CFILES) as_new_LDADD = $(TARG_CPU_O) $(OBJ_FORMAT_O) $(ATOF_TARG_O) \ $(extra_objects) $(GASLIBS) $(INTLLIBS) $(LIBM) as_new_DEPENDENCIES = $(TARG_CPU_O) $(OBJ_FORMAT_O) $(ATOF_TARG_O) \ - $(extra_objects) $(GASLIBS) $(INTLDEPS) + $(extra_objects) $(GASLIBSDEP) $(INTLDEPS) # Stuff that every object file depends upon. If anything is removed # from this list, remove it from dep-in.sed as well. @@ -710,7 +712,7 @@ install-exec-bindir: $(noinst_PROGRAMS) $(mkinstalldirs) $(DESTDIR)$(bindir) @list='$(noinst_PROGRAMS)'; for p in $$list; do \ if test -f $$p; then \ - echo " $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(bindir)/`echo $$p|sed -e 's/$(EXEEXT)$$//' -e 's/-new//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \ + echo " $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed -e 's/$(EXEEXT)$$//' -e 's/-new//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \ $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed -e 's/$(EXEEXT)$$//' -e 's/-new//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ else :; fi; \ done diff --git a/gnu/usr.bin/binutils-2.17/gas/Makefile.in b/gnu/usr.bin/binutils-2.17/gas/Makefile.in index 4cc485f9683..9e41c01b668 100644 --- a/gnu/usr.bin/binutils-2.17/gas/Makefile.in +++ b/gnu/usr.bin/binutils-2.17/gas/Makefile.in @@ -602,6 +602,7 @@ TARG_ENV_HFILES = \ config/te-nbsd.h \ config/te-nbsd532.h \ config/te-netware.h \ + config/te-obsd.h \ config/te-pc532mach.h \ config/te-pe.h \ config/te-psos.h \ @@ -694,7 +695,8 @@ DEP_FLAGS = -DOBJ_MAYBE_ELF \ # How to link with both our special library facilities # and the system's installed libraries. -GASLIBS = @OPCODES_LIB@ @BFDLIB@ ../libiberty/libiberty.a +GASLIBS = @OPCODES_LIB@ @BFDLIB@ -liberty +GASLIBSDEP = @OPCODES_LIB@ @BFDLIB@ # Files to be copied away after each stage in building. STAGESTUFF = *.o $(noinst_PROGRAMS) @@ -703,7 +705,7 @@ as_new_LDADD = $(TARG_CPU_O) $(OBJ_FORMAT_O) $(ATOF_TARG_O) \ $(extra_objects) $(GASLIBS) $(INTLLIBS) $(LIBM) as_new_DEPENDENCIES = $(TARG_CPU_O) $(OBJ_FORMAT_O) $(ATOF_TARG_O) \ - $(extra_objects) $(GASLIBS) $(INTLDEPS) + $(extra_objects) $(GASLIBSDEP) $(INTLDEPS) EXPECT = expect RUNTEST = runtest @@ -2805,6 +2807,8 @@ install-data-am: install-exec-am: install-exec-local +install-info-am: + install-info: install-info-recursive install-man: @@ -3049,7 +3053,7 @@ install-exec-bindir: $(noinst_PROGRAMS) $(mkinstalldirs) $(DESTDIR)$(bindir) @list='$(noinst_PROGRAMS)'; for p in $$list; do \ if test -f $$p; then \ - echo " $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(bindir)/`echo $$p|sed -e 's/$(EXEEXT)$$//' -e 's/-new//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \ + echo " $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed -e 's/$(EXEEXT)$$//' -e 's/-new//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \ $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed -e 's/$(EXEEXT)$$//' -e 's/-new//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ else :; fi; \ done diff --git a/gnu/usr.bin/binutils-2.17/gas/as.h b/gnu/usr.bin/binutils-2.17/gas/as.h index 2f92c2ed774..1c19e0df082 100644 --- a/gnu/usr.bin/binutils-2.17/gas/as.h +++ b/gnu/usr.bin/binutils-2.17/gas/as.h @@ -567,7 +567,6 @@ segT subseg_get (const char *, int); struct expressionS; struct fix; typedef struct symbol symbolS; -struct relax_type; typedef struct frag fragS; /* literal.c */ diff --git a/gnu/usr.bin/binutils-2.17/gas/config/tc-alpha.c b/gnu/usr.bin/binutils-2.17/gas/config/tc-alpha.c index 3765b08c73a..9873c900ad5 100644 --- a/gnu/usr.bin/binutils-2.17/gas/config/tc-alpha.c +++ b/gnu/usr.bin/binutils-2.17/gas/config/tc-alpha.c @@ -1829,7 +1829,7 @@ insert_operand (unsigned insn, insn = (*operand->insert) (insn, val, &errmsg); if (errmsg) - as_warn (errmsg); + as_warn ("%s", errmsg); } else insn |= ((val & ((1 << operand->bits) - 1)) << operand->shift); diff --git a/gnu/usr.bin/binutils-2.17/gas/config/tc-arm.c b/gnu/usr.bin/binutils-2.17/gas/config/tc-arm.c index ae420b35347..485fad2e53c 100644 --- a/gnu/usr.bin/binutils-2.17/gas/config/tc-arm.c +++ b/gnu/usr.bin/binutils-2.17/gas/config/tc-arm.c @@ -111,7 +111,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 @@ -12880,7 +12880,7 @@ md_begin (void) } else if (!mfpu_opt) { -#if !(defined (TE_LINUX) || defined (TE_NetBSD) || defined (TE_VXWORKS)) +#if !(defined (TE_LINUX) || defined (TE_NetBSD) || defined (TE_OpenBSD) || defined (TE_VXWORKS)) /* Some environments specify a default FPU. If they don't, infer it from the processor. */ if (mcpu_fpu_opt) diff --git a/gnu/usr.bin/binutils-2.17/gas/config/tc-hppa.h b/gnu/usr.bin/binutils-2.17/gas/config/tc-hppa.h index 9b3edc1878f..6c30372d45a 100644 --- a/gnu/usr.bin/binutils-2.17/gas/config/tc-hppa.h +++ b/gnu/usr.bin/binutils-2.17/gas/config/tc-hppa.h @@ -72,7 +72,7 @@ #define TARGET_FORMAT "som" #endif -#if defined(TE_LINUX) || defined(TE_NetBSD) +#if defined(TE_LINUX) || defined(TE_NetBSD) || defined(TE_OpenBSD) /* Define to compile in an extra assembler option, -c, which enables a warning (once per file) when a comment is encountered. The hppa comment char is a `;' which tends to occur in random C asm diff --git a/gnu/usr.bin/binutils-2.17/gas/config/tc-i386.c b/gnu/usr.bin/binutils-2.17/gas/config/tc-i386.c index be384bc99a7..3c5551e038c 100644 --- a/gnu/usr.bin/binutils-2.17/gas/config/tc-i386.c +++ b/gnu/usr.bin/binutils-2.17/gas/config/tc-i386.c @@ -202,7 +202,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. */ @@ -3491,7 +3492,7 @@ output_insn () /* All opcodes on i386 have either 1 or 2 bytes. Merom New Instructions have 3 bytes. We may use one more higher byte to specify a prefix the instruction requires. */ - if ((i.tm.cpu_flags & CpuMNI) != 0) + if ((i.tm.cpu_flags & (CpuMNI|CpuAES|CpuPCLMUL)) != 0) { if (i.tm.base_opcode & 0xff000000) { @@ -3532,7 +3533,7 @@ check_prefix: } else { - if ((i.tm.cpu_flags & CpuMNI) != 0) + if ((i.tm.cpu_flags & (CpuMNI|CpuAES|CpuPCLMUL)) != 0) { p = frag_more (3); *p++ = (i.tm.base_opcode >> 16) & 0xff; diff --git a/gnu/usr.bin/binutils-2.17/gas/config/tc-i386.h b/gnu/usr.bin/binutils-2.17/gas/config/tc-i386.h index 98517041dad..a54724e7ba5 100644 --- a/gnu/usr.bin/binutils-2.17/gas/config/tc-i386.h +++ b/gnu/usr.bin/binutils-2.17/gas/config/tc-i386.h @@ -34,7 +34,7 @@ extern unsigned long i386_mach (void); #ifdef TE_FreeBSD #define AOUT_TARGET_FORMAT "a.out-i386-freebsd" #endif -#ifdef TE_NetBSD +#if defined(TE_NetBSD) || defined(TE_OpenBSD) #define AOUT_TARGET_FORMAT "a.out-i386-netbsd" #endif #ifdef TE_386BSD @@ -185,6 +185,8 @@ typedef struct #define CpuSVME 0x80000 /* AMD Secure Virtual Machine Ext-s required */ #define CpuVMX 0x100000 /* VMX Instructions required */ #define CpuMNI 0x200000 /* Merom New Instructions required */ +#define CpuAES 0x400000 /* Intel AES extensions required */ +#define CpuPCLMUL 0x800000 /* Intel Carry-less Multiplication extensions */ /* These flags are set by gas depending on the flag_code. */ #define Cpu64 0x4000000 /* 64bit support required */ @@ -193,7 +195,8 @@ typedef struct /* The default value for unknown CPUs - enable all features to avoid problems. */ #define CpuUnknownFlags (Cpu086|Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686 \ |CpuP4|CpuSledgehammer|CpuMMX|CpuMMX2|CpuSSE|CpuSSE2|CpuPNI|CpuVMX \ - |Cpu3dnow|Cpu3dnowA|CpuK6|CpuAthlon|CpuPadLock|CpuSVME|CpuMNI) + |Cpu3dnow|Cpu3dnowA|CpuK6|CpuAthlon|CpuPadLock|CpuSVME|CpuMNI|CpuAES \ + |CpuPCLMUL) /* the bits in opcode_modifier are used to generate the final opcode from the base_opcode. These bits also are used to detect alternate forms of @@ -388,7 +391,11 @@ arch_entry; /* The name of the global offset table generated by the compiler. Allow this to be overridden if need be. */ #ifndef GLOBAL_OFFSET_TABLE_NAME +#ifdef OBJ_ELF #define GLOBAL_OFFSET_TABLE_NAME "_GLOBAL_OFFSET_TABLE_" +#else +#define GLOBAL_OFFSET_TABLE_NAME "__GLOBAL_OFFSET_TABLE_" +#endif #endif #if (defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF)) && !defined (LEX_AT) diff --git a/gnu/usr.bin/binutils-2.17/gas/config/tc-i960.c b/gnu/usr.bin/binutils-2.17/gas/config/tc-i960.c index a3206bbf2d0..5c7cc4a1327 100644 --- a/gnu/usr.bin/binutils-2.17/gas/config/tc-i960.c +++ b/gnu/usr.bin/binutils-2.17/gas/config/tc-i960.c @@ -1669,14 +1669,14 @@ md_assemble (char *textP) break; case REG: if (branch_predict) - as_warn (bp_error_msg); + as_warn ("%s", bp_error_msg); reg_fmt (args, oP); break; case MEM1: if (args[0][0] == 'c' && args[0][1] == 'a') { if (branch_predict) - as_warn (bp_error_msg); + as_warn ("%s", bp_error_msg); mem_fmt (args, oP, 1); break; } @@ -1686,12 +1686,12 @@ md_assemble (char *textP) case MEM12: case MEM16: if (branch_predict) - as_warn (bp_error_msg); + as_warn ("%s", bp_error_msg); mem_fmt (args, oP, 0); break; case CALLJ: if (branch_predict) - as_warn (bp_error_msg); + as_warn ("%s", bp_error_msg); /* Output opcode & set up "fixup" (relocation); flag relocation as 'callj' type. */ know (oP->num_ops == 1); diff --git a/gnu/usr.bin/binutils-2.17/gas/config/tc-m68k.h b/gnu/usr.bin/binutils-2.17/gas/config/tc-m68k.h index fc05a9264e6..1942de0000a 100644 --- a/gnu/usr.bin/binutils-2.17/gas/config/tc-m68k.h +++ b/gnu/usr.bin/binutils-2.17/gas/config/tc-m68k.h @@ -30,7 +30,7 @@ struct fix; #ifdef TE_SUN3 #define TARGET_FORMAT "a.out-sunos-big" #endif -#ifdef TE_NetBSD +#if defined(TE_NetBSD) || defined(TE_OpenBSD) #define TARGET_FORMAT "a.out-m68k-netbsd" #endif #ifdef TE_LINUX diff --git a/gnu/usr.bin/binutils-2.17/gas/config/tc-mips.c b/gnu/usr.bin/binutils-2.17/gas/config/tc-mips.c index c885205dad4..df153aef884 100644 --- a/gnu/usr.bin/binutils-2.17/gas/config/tc-mips.c +++ b/gnu/usr.bin/binutils-2.17/gas/config/tc-mips.c @@ -692,6 +692,8 @@ static int mips_fix_vr4130; efficient expansion. */ static int mips_relax_branch; + +static int mips_fix_loongson2f_btb; /* The expansion of many macros depends on the type of symbol that they refer to. For example, when generating position-dependent code, @@ -964,6 +966,7 @@ static void mips_no_prev_insn (void); static void mips16_macro_build (expressionS *, const char *, const char *, va_list); static void load_register (int, expressionS *, int); +static void macro_build (expressionS *, const char *, const char *, ...); static void macro_start (void); static void macro_end (void); static void macro (struct mips_cl_insn * ip); @@ -2971,6 +2974,41 @@ macro_read_relocs (va_list *args, bfd_reloc_code_real_type *r) r[i] = (bfd_reloc_code_real_type) va_arg (*args, int); } +/* Fix jump through register issue on loongson2f processor for kernel code: + force a BTB clear before the jump to prevent it from being incorrectly + prefetched by the branch prediction engine. */ + +static void +macro_build_jrpatch (expressionS *ep, unsigned int sreg) +{ + if (!mips_fix_loongson2f_btb) + return; + + if (sreg == ZERO || sreg == KT0 || sreg == KT1 || sreg == AT) + return; + + if (mips_opts.noat) + { + as_warn (_("unable to apply loongson2f BTB workaround when .set noat")); + return; + } + + /* li $at, COP_0_BTB_CLEAR | COP_0_RAS_DISABLE */ + ep->X_op = O_constant; + ep->X_add_number = 3; + macro_build (ep, "ori", "t,r,i", AT, ZERO, BFD_RELOC_LO16); + + /* dmtc0 $at, COP_0_DIAG */ + macro_build (NULL, "dmtc0", "t,G", AT, 22); + + /* Hide these two instructions to avoid getting a ``macro expanded into + multiple instructions'' warning. */ + if (mips_relax.sequence != 2) + mips_macro_warning.sizes[0] -= 2 * 4; + if (mips_relax.sequence != 1) + mips_macro_warning.sizes[1] -= 2 * 4; +} + /* Build an instruction created by a macro expansion. This is passed a pointer to the count of instructions created so far, an expression, the name of the instruction to build, an operand format @@ -3361,6 +3399,7 @@ macro_build_jalr (expressionS *ep) frag_grow (8); f = frag_more (0); } + macro_build_jrpatch (ep, PIC_CALL_REG); macro_build (NULL, "jalr", "d,s", RA, PIC_CALL_REG); if (HAVE_NEWABI) fix_new_exp (frag_now, f - frag_now->fr_literal, @@ -5490,6 +5529,26 @@ macro (struct mips_cl_insn *ip) macro_build (NULL, ADDRESS_ADD_INSN, "d,v,t", treg, tempreg, breg); break; + case M_JR_S: + macro_build_jrpatch (&expr1, sreg); + macro_build (NULL, "jr", "s", sreg); + return; /* didn't modify $at */ + + case M_J_S: + macro_build_jrpatch (&expr1, sreg); + macro_build (NULL, "j", "s", sreg); + return; /* didn't modify $at */ + + case M_JALR_S: + macro_build_jrpatch (&expr1, sreg); + macro_build (NULL, "jalr", "s", sreg); + return; /* didn't modify $at */ + + case M_JALR_DS: + macro_build_jrpatch (&expr1, sreg); + macro_build (NULL, "jalr", "d,s", dreg, sreg); + return; /* didn't modify $at */ + case M_J_A: /* The j instruction may not be used in PIC code, since it requires an absolute address. We convert it to a b @@ -5508,12 +5567,16 @@ macro (struct mips_cl_insn *ip) /* Fall through. */ case M_JAL_2: if (mips_pic == NO_PIC) - macro_build (NULL, "jalr", "d,s", dreg, sreg); + { + macro_build_jrpatch (&expr1, sreg); + macro_build (NULL, "jalr", "d,s", dreg, sreg); + } else { if (sreg != PIC_CALL_REG) as_warn (_("MIPS PIC call to register other than $25")); + macro_build_jrpatch (&expr1, sreg); macro_build (NULL, "jalr", "d,s", dreg, sreg); if (mips_pic == SVR4_PIC && !HAVE_NEWABI) { @@ -10592,9 +10655,13 @@ struct option md_longopts[] = #define OPTION_NO_FIX_VR4130 (OPTION_FIX_BASE + 5) {"mfix-vr4130", no_argument, NULL, OPTION_FIX_VR4130}, {"mno-fix-vr4130", no_argument, NULL, OPTION_NO_FIX_VR4130}, +#define OPTION_FIX_LOONGSON2F_BTB (OPTION_FIX_BASE + 6) +#define OPTION_NO_FIX_LOONGSON2F_BTB (OPTION_FIX_BASE + 7) + {"mfix-loongson2f-btb", no_argument, NULL, OPTION_FIX_LOONGSON2F_BTB}, + {"mno-fix-loongson2f-btb", no_argument, NULL, OPTION_NO_FIX_LOONGSON2F_BTB}, /* Miscellaneous options. */ -#define OPTION_MISC_BASE (OPTION_FIX_BASE + 6) +#define OPTION_MISC_BASE (OPTION_FIX_BASE + 8) #define OPTION_TRAP (OPTION_MISC_BASE + 0) {"trap", no_argument, NULL, OPTION_TRAP}, {"no-break", no_argument, NULL, OPTION_TRAP}, @@ -10863,6 +10930,14 @@ md_parse_option (int c, char *arg) mips_fix_vr4130 = 0; break; + case OPTION_FIX_LOONGSON2F_BTB: + mips_fix_loongson2f_btb = 1; + break; + + case OPTION_NO_FIX_LOONGSON2F_BTB: + mips_fix_loongson2f_btb = 0; + break; + case OPTION_RELAX_BRANCH: mips_relax_branch = 1; break; @@ -14515,6 +14590,7 @@ MIPS options:\n\ fprintf (stream, _("\ -mfix-vr4120 work around certain VR4120 errata\n\ -mfix-vr4130 work around VR4130 mflo/mfhi errata\n\ +-mfix-loongson2f-btb work around Loongson2F BTB errata\n\ -mgp32 use 32-bit GPRs, regardless of the chosen ISA\n\ -mfp32 use 32-bit FPRs, regardless of the chosen ISA\n\ -mno-shared optimize output for executables\n\ diff --git a/gnu/usr.bin/binutils-2.17/gas/config/tc-sh.h b/gnu/usr.bin/binutils-2.17/gas/config/tc-sh.h index a812036fcd5..a83b8be7bf2 100644 --- a/gnu/usr.bin/binutils-2.17/gas/config/tc-sh.h +++ b/gnu/usr.bin/binutils-2.17/gas/config/tc-sh.h @@ -147,6 +147,8 @@ extern int target_big_endian; #define TARGET_FORMAT (!target_big_endian ? "elf32-sh-linux" : "elf32-shbig-linux") #elif defined(TE_NetBSD) #define TARGET_FORMAT (!target_big_endian ? "elf32-shl-nbsd" : "elf32-sh-nbsd") +#elif defined(TE_OpenBSD) +#define TARGET_FORMAT (!target_big_endian ? "elf32-shl-obsd" : "elf32-sh-obsd") #elif defined TARGET_SYMBIAN #define TARGET_FORMAT (!target_big_endian ? "elf32-shl-symbian" : "elf32-sh-symbian") #else diff --git a/gnu/usr.bin/binutils-2.17/gas/config/tc-sparc.c b/gnu/usr.bin/binutils-2.17/gas/config/tc-sparc.c index 10a1411b526..98381de3e31 100644 --- a/gnu/usr.bin/binutils-2.17/gas/config/tc-sparc.c +++ b/gnu/usr.bin/binutils-2.17/gas/config/tc-sparc.c @@ -306,7 +306,7 @@ sparc_target_format () init_default_arch (); #ifdef OBJ_AOUT -#ifdef TE_NetBSD +#if defined(TE_NetBSD) || defined(TE_OpenBSD) return "a.out-sparc-netbsd"; #else #ifdef TE_SPARCAOUT @@ -2197,12 +2197,14 @@ sparc_ip (str, pinsn) { if (SPARC_OPCODE_ARCH_V9_P (max_architecture)) { +#if !defined(TE_OpenBSD) if (*args == 'e' || *args == 'f' || *args == 'g') { error_message = _(": There are only 32 single precision f registers; [0-31]"); goto error; } +#endif v9_arg_p = 1; mask -= 31; /* wrap high bit */ } diff --git a/gnu/usr.bin/binutils-2.17/gas/config/tc-vax.h b/gnu/usr.bin/binutils-2.17/gas/config/tc-vax.h index 715d54a812f..1c46114fe28 100644 --- a/gnu/usr.bin/binutils-2.17/gas/config/tc-vax.h +++ b/gnu/usr.bin/binutils-2.17/gas/config/tc-vax.h @@ -24,7 +24,7 @@ #define TARGET_BYTES_BIG_ENDIAN 0 #ifdef OBJ_AOUT -#ifdef TE_NetBSD +#if defined(TE_NetBSD) || defined(TE_OpenBSD) #define TARGET_FORMAT "a.out-vax-netbsd" #endif #ifndef TARGET_FORMAT diff --git a/gnu/usr.bin/binutils-2.17/gas/config/te-obsd.h b/gnu/usr.bin/binutils-2.17/gas/config/te-obsd.h new file mode 100644 index 00000000000..1f3770e3120 --- /dev/null +++ b/gnu/usr.bin/binutils-2.17/gas/config/te-obsd.h @@ -0,0 +1,24 @@ +/* te-obsd.h -- OpenBSD target environment declarations. + Copyright 2003 + 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 2, 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, 59 Temple Place - Suite 330, Boston, MA + 02111-1307, USA. */ + +#define TE_OpenBSD 1 +#define LOCAL_LABELS_FB 1 +#include "obj-format.h" diff --git a/gnu/usr.bin/binutils-2.17/gas/configure.tgt b/gnu/usr.bin/binutils-2.17/gas/configure.tgt index 696daaa128f..5b0aa4c541d 100644 --- a/gnu/usr.bin/binutils-2.17/gas/configure.tgt +++ b/gnu/usr.bin/binutils-2.17/gas/configure.tgt @@ -111,7 +111,8 @@ case ${generic_target} in arm-*-linux-*) fmt=elf em=linux ;; arm-*-uclinux*) fmt=elf em=linux ;; arm-*-netbsdelf*) fmt=elf em=nbsd ;; - arm-*-*n*bsd*) fmt=aout em=nbsd ;; + arm-*-netbsd*) fmt=aout em=nbsd ;; + arm-*-openbsd*) fmt=elf em=obsd ;; arm-*-nto*) fmt=elf ;; arm-epoc-pe | thumb-epoc-pe) fmt=coff em=epoc-pe ;; arm-wince-pe | arm-*-wince) fmt=coff em=wince-pe ;; @@ -144,7 +145,11 @@ case ${generic_target} in hppa-*-*elf*) fmt=elf em=hppa ;; hppa-*-lites*) fmt=elf em=hppa ;; hppa-*-netbsd*) fmt=elf em=nbsd ;; - hppa-*-openbsd*) fmt=elf em=hppa ;; + hppa-*-openbsd*) + case ${cpu} in + hppa*64*) fmt=elf em=obsdhppa64 ;; + hppa*) fmt=elf em=obsd ;; + esac ;; hppa-*-osf*) fmt=som em=hppa ;; hppa-*-hpux11*) case ${cpu} in @@ -179,8 +184,8 @@ case ${generic_target} in *) fmt=aout em=nbsd ;; esac ;; i386-*-openbsd[0-2].* | \ - i386-*-openbsd3.[0-2]) fmt=aout em=nbsd ;; - i386-*-openbsd*) fmt=elf em=nbsd ;; + i386-*-openbsd3.[0-2]) fmt=aout em=obsd ;; + i386-*-openbsd*) fmt=elf em=obsd ;; i386-*-linux*aout*) fmt=aout em=linux ;; i386-*-linux*oldld) fmt=aout em=linux ;; i386-*-linux*coff*) fmt=coff em=linux ;; @@ -245,7 +250,7 @@ case ${generic_target} in m68k-*-gnu*) fmt=elf ;; m68k-*-netbsdelf*) fmt=elf em=nbsd ;; m68k-*-netbsd*) fmt=aout em=nbsd bfd_gas=yes ;; - m68k-*-openbsd*) fmt=aout em=nbsd bfd_gas=yes ;; + m68k-*-openbsd*) fmt=aout em=obsd bfd_gas=yes ;; m68k-*-psos*) fmt=elf em=psos;; maxq-*-coff) fmt=coff bfd_gas=yes ;; @@ -301,7 +306,8 @@ case ${generic_target} in ppc-*-aix5.*) fmt=coff em=aix5 ;; ppc-*-aix*) fmt=coff ;; ppc-*-beos*) fmt=coff ;; - ppc-*-*n*bsd* | ppc-*-elf*) fmt=elf ;; + ppc-*-netbsd* | ppc-*-elf*) fmt=elf ;; + ppc-*-openbsd*) fmt=elf em=obsd ;; ppc-*-eabi* | ppc-*-sysv4*) fmt=elf ;; ppc-*-linux-*) fmt=elf em=linux ;; ppc-*-solaris*) fmt=elf ;; @@ -322,6 +328,7 @@ case ${generic_target} in sh5*-*-netbsd*) fmt=elf em=nbsd ;; sh64*-*-netbsd*) fmt=elf em=nbsd ;; sh*-*-netbsdelf*) fmt=elf em=nbsd ;; + sh*-*-openbsd*) fmt=elf em=obsd endian=little ;; sh*-*-symbianelf*) fmt=elf endian=little ;; sh-*-elf*) fmt=elf ;; sh-*-coff*) fmt=coff ;; @@ -352,10 +359,10 @@ case ${generic_target} in sparc-*-openbsd[0-2].* | \ sparc-*-openbsd3.[0-1]) case ${cpu} in - sparc64) fmt=elf em=nbsd ;; - *) fmt=aout em=nbsd ;; + sparc64) fmt=elf em=obsd ;; + *) fmt=aout em=obsd ;; esac ;; - sparc-*-openbsd*) fmt=elf em=nbsd ;; + sparc-*-openbsd*) fmt=elf em=obsd ;; tic30-*-*aout*) fmt=aout bfd_gas=yes ;; tic30-*-*coff*) fmt=coff bfd_gas=yes ;; diff --git a/gnu/usr.bin/binutils-2.17/gas/doc/Makefile.in b/gnu/usr.bin/binutils-2.17/gas/doc/Makefile.in index cd9dad2baaf..2e01cc5fcd2 100644 --- a/gnu/usr.bin/binutils-2.17/gas/doc/Makefile.in +++ b/gnu/usr.bin/binutils-2.17/gas/doc/Makefile.in @@ -50,7 +50,7 @@ CONFIG_CLEAN_FILES = depcomp = am__depfiles_maybe = SOURCES = -INFO_DEPS = $(srcdir)/as.info +INFO_DEPS = as.info TEXINFO_TEX = $(top_srcdir)/../texinfo/texinfo.tex am__TEXINFO_TEX_DIR = $(top_srcdir)/../texinfo DVIS = as.dvi @@ -303,7 +303,7 @@ distclean-libtool: .texinfo.info: restore=: && backupdir="$(am__leading_dot)am$$$$" && \ - am__cwd=`pwd` && cd $(srcdir) && \ + am__cwd=`pwd` && \ rm -rf $$backupdir && mkdir $$backupdir && \ if ($(MAKEINFO) --version) >/dev/null 2>&1; then \ for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \ @@ -315,10 +315,8 @@ distclean-libtool: -o $@ $<; \ then \ rc=0; \ - cd $(srcdir); \ else \ rc=$$?; \ - cd $(srcdir) && \ $$restore $$backupdir/* `echo "./$@" | sed 's|[^/]*$$||'`; \ fi; \ rm -rf $$backupdir; exit $$rc @@ -346,7 +344,7 @@ distclean-libtool: rm -rf $(@:.html=); else rm -Rf $(@:.html=.htp) $@; fi; \ exit 1; \ fi -$(srcdir)/as.info: as.texinfo +as.info: as.texinfo as.dvi: as.texinfo as.pdf: as.texinfo as.html: as.texinfo @@ -405,49 +403,8 @@ maintainer-clean-aminfo: clean-info: mostlyclean-aminfo install-man1: $(man1_MANS) $(man_MANS) @$(NORMAL_INSTALL) - test -z "$(man1dir)" || $(mkdir_p) "$(DESTDIR)$(man1dir)" - @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \ - l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ - for i in $$l2; do \ - case "$$i" in \ - *.1*) list="$$list $$i" ;; \ - esac; \ - done; \ - for i in $$list; do \ - if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \ - else file=$$i; fi; \ - ext=`echo $$i | sed -e 's/^.*\\.//'`; \ - case "$$ext" in \ - 1*) ;; \ - *) ext='1' ;; \ - esac; \ - inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ - inst=`echo $$inst | sed -e 's/^.*\///'`; \ - inst=`echo $$inst | sed '$(transform)'`.$$ext; \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst"; \ - done uninstall-man1: @$(NORMAL_UNINSTALL) - @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \ - l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ - for i in $$l2; do \ - case "$$i" in \ - *.1*) list="$$list $$i" ;; \ - esac; \ - done; \ - for i in $$list; do \ - ext=`echo $$i | sed -e 's/^.*\\.//'`; \ - case "$$ext" in \ - 1*) ;; \ - *) ext='1' ;; \ - esac; \ - inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ - inst=`echo $$inst | sed -e 's/^.*\///'`; \ - inst=`echo $$inst | sed '$(transform)'`.$$ext; \ - echo " rm -f '$(DESTDIR)$(man1dir)/$$inst'"; \ - rm -f "$(DESTDIR)$(man1dir)/$$inst"; \ - done tags: TAGS TAGS: diff --git a/gnu/usr.bin/binutils-2.17/gas/doc/c-mips.texi b/gnu/usr.bin/binutils-2.17/gas/doc/c-mips.texi index 3c70ff29bc0..b3665634460 100644 --- a/gnu/usr.bin/binutils-2.17/gas/doc/c-mips.texi +++ b/gnu/usr.bin/binutils-2.17/gas/doc/c-mips.texi @@ -145,6 +145,14 @@ all problems in hand-written assembler code. @itemx -no-mfix-vr4130 Insert nops to work around the VR4130 @samp{mflo}/@samp{mfhi} errata. +@item -mfix-loongson2f-btb +@itemx -mno-fix-loongson2f-btb +Clear the Branch Target Buffer before any jump through a register. This +option is intended to be used on kernel code for the Loongson 2F processor +only; userland code compiled with this option will fault, and kernel code +compiled with this option run on another processor than Loongson 2E and 2F +will yield unpredictable results. + @item -m4010 @itemx -no-m4010 Generate code for the LSI @sc{r4010} chip. This tells the assembler to diff --git a/gnu/usr.bin/binutils-2.17/gas/read.c b/gnu/usr.bin/binutils-2.17/gas/read.c index 0485d72dec6..6972f79add2 100644 --- a/gnu/usr.bin/binutils-2.17/gas/read.c +++ b/gnu/usr.bin/binutils-2.17/gas/read.c @@ -4823,7 +4823,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'; diff --git a/gnu/usr.bin/binutils-2.17/gprof/Makefile.am b/gnu/usr.bin/binutils-2.17/gprof/Makefile.am index 1b862675353..3869fca38ad 100644 --- a/gnu/usr.bin/binutils-2.17/gprof/Makefile.am +++ b/gnu/usr.bin/binutils-2.17/gprof/Makefile.am @@ -26,8 +26,8 @@ sources = basic_blocks.c call_graph.c cg_arcs.c cg_dfn.c \ search_list.c symtab.c sym_ids.c utils.c \ i386.c alpha.c vax.c tahoe.c sparc.c mips.c gprof_SOURCES = $(sources) flat_bl.c bsd_callg_bl.c fsf_callg_bl.c -gprof_DEPENDENCIES = ../bfd/libbfd.la ../libiberty/libiberty.a $(INTLDEPS) -gprof_LDADD = ../bfd/libbfd.la ../libiberty/libiberty.a $(INTLLIBS) +gprof_DEPENDENCIES = ../bfd/libbfd.la $(INTLDEPS) +gprof_LDADD = ../bfd/libbfd.la -liberty $(INTLLIBS) noinst_HEADERS = \ basic_blocks.h call_graph.h cg_arcs.h cg_dfn.h cg_print.h \ diff --git a/gnu/usr.bin/binutils-2.17/gprof/Makefile.in b/gnu/usr.bin/binutils-2.17/gprof/Makefile.in index 328a3da48d7..ea5b9c65efe 100644 --- a/gnu/usr.bin/binutils-2.17/gprof/Makefile.in +++ b/gnu/usr.bin/binutils-2.17/gprof/Makefile.in @@ -247,8 +247,8 @@ sources = basic_blocks.c call_graph.c cg_arcs.c cg_dfn.c \ i386.c alpha.c vax.c tahoe.c sparc.c mips.c gprof_SOURCES = $(sources) flat_bl.c bsd_callg_bl.c fsf_callg_bl.c -gprof_DEPENDENCIES = ../bfd/libbfd.la ../libiberty/libiberty.a $(INTLDEPS) -gprof_LDADD = ../bfd/libbfd.la ../libiberty/libiberty.a $(INTLLIBS) +gprof_DEPENDENCIES = ../bfd/libbfd.la $(INTLDEPS) +gprof_LDADD = ../bfd/libbfd.la -liberty $(INTLLIBS) noinst_HEADERS = \ basic_blocks.h call_graph.h cg_arcs.h cg_dfn.h cg_print.h \ corefile.h gmon.h gmon_io.h gmon_out.h gprof.h hertz.h hist.h \ diff --git a/gnu/usr.bin/binutils-2.17/include/elf/common.h b/gnu/usr.bin/binutils-2.17/include/elf/common.h index b11171b56b4..2e43fcebd79 100644 --- a/gnu/usr.bin/binutils-2.17/include/elf/common.h +++ b/gnu/usr.bin/binutils-2.17/include/elf/common.h @@ -401,6 +401,17 @@ #define NT_NETBSDCORE_FIRSTMACH 32 /* start of machdep note types */ +/* Note segments for core files on OpenBSD systems. Note name is + "OpenBSD". */ + +#define NT_OPENBSD_PROCINFO 10 +#define NT_OPENBSD_AUXV 11 +#define NT_OPENBSD_REGS 20 +#define NT_OPENBSD_FPREGS 21 +#define NT_OPENBSD_XFPREGS 22 +#define NT_OPENBSD_WCOOKIE 23 + + /* Values of note segment descriptor types for object files. */ #define NT_VERSION 1 /* Contains a version string. */ diff --git a/gnu/usr.bin/binutils-2.17/include/opcode/i386.h b/gnu/usr.bin/binutils-2.17/include/opcode/i386.h index 2b2c1e0f979..27c34599c8c 100644 --- a/gnu/usr.bin/binutils-2.17/include/opcode/i386.h +++ b/gnu/usr.bin/binutils-2.17/include/opcode/i386.h @@ -1486,6 +1486,21 @@ static const template i386_optab[] = /* Alias for xstore-rng. */ {"xstore", 0, 0x000fa7, 0xc0, Cpu686|CpuPadLock, NoSuf|IsString|ImmExt, { 0, 0, 0} }, +/* Intel AES extensions */ +{"aesdec", 2, 0x660f38de, X, CpuAES, FP|Modrm|IgnoreSize|NoSuf, { RegXMM|LLongMem, RegXMM } }, +{"aesdeclast", 2, 0x660f38df, X, CpuAES, FP|Modrm|IgnoreSize|NoSuf, { RegXMM|LLongMem, RegXMM } }, +{"aesenc", 2, 0x660f38dc, X, CpuAES, FP|Modrm|IgnoreSize|NoSuf, { RegXMM|LLongMem, RegXMM } }, +{"aesenclast", 2, 0x660f38dd, X, CpuAES, FP|Modrm|IgnoreSize|NoSuf, { RegXMM|LLongMem, RegXMM } }, +{"aesimc", 2, 0x660f38db, X, CpuAES, FP|Modrm|IgnoreSize|NoSuf, { RegXMM|LLongMem, RegXMM } }, +{"aeskeygenassist", 3, 0x660f3adf, X, CpuAES, FP|Modrm|IgnoreSize|NoSuf, { Imm8, RegXMM|LLongMem, RegXMM } }, + +/* Intel Carry-less Multiplication extensions */ +{"pclmulqdq", 3, 0x660f3a44, X, CpuPCLMUL, FP|Modrm|IgnoreSize|NoSuf, { Imm8, RegXMM|LLongMem, RegXMM } }, +{"pclmullqlqdq", 2, 0x660f3a44, 0x0, CpuPCLMUL, FP|Modrm|IgnoreSize|NoSuf|ImmExt, { RegXMM|LLongMem, RegXMM } }, +{"pclmulhqlqdq", 2, 0x660f3a44, 0x1, CpuPCLMUL, FP|Modrm|IgnoreSize|NoSuf|ImmExt, { RegXMM|LLongMem, RegXMM } }, +{"pclmullqhqdq", 2, 0x660f3a44, 0x10, CpuPCLMUL, FP|Modrm|IgnoreSize|NoSuf|ImmExt, { RegXMM|LLongMem, RegXMM } }, +{"pclmulhqhqdq", 2, 0x660f3a44, 0x11, CpuPCLMUL, FP|Modrm|IgnoreSize|NoSuf|ImmExt, { RegXMM|LLongMem, RegXMM } }, + /* sentinel */ {NULL, 0, 0, 0, 0, 0, { 0, 0, 0} } }; diff --git a/gnu/usr.bin/binutils-2.17/include/opcode/mips.h b/gnu/usr.bin/binutils-2.17/include/opcode/mips.h index 4bec5edcc8c..001d55a05ce 100644 --- a/gnu/usr.bin/binutils-2.17/include/opcode/mips.h +++ b/gnu/usr.bin/binutils-2.17/include/opcode/mips.h @@ -653,7 +653,11 @@ enum M_DSUB_I, M_DSUBU_I, M_DSUBU_I_2, + M_JR_S, + M_J_S, M_J_A, + M_JALR_S, + M_JALR_DS, M_JAL_1, M_JAL_2, M_JAL_A, diff --git a/gnu/usr.bin/binutils-2.17/ld/Makefile.am b/gnu/usr.bin/binutils-2.17/ld/Makefile.am index 3f5d1a6e710..cb633bdc981 100644 --- a/gnu/usr.bin/binutils-2.17/ld/Makefile.am +++ b/gnu/usr.bin/binutils-2.17/ld/Makefile.am @@ -103,7 +103,7 @@ TEXI2DVI = texi2dvi -I $(srcdir) -I $(BFDDIR)/doc -I $(top_srcdir)/../libiberty INCLUDES = -D_GNU_SOURCE -I. -I$(srcdir) -I../bfd -I$(BFDDIR) -I$(INCDIR) -I$(top_srcdir)/../intl -I../intl $(HDEFINES) $(CFLAGS) -DLOCALEDIR="\"$(datadir)/locale\"" BFDLIB = ../bfd/libbfd.la -LIBIBERTY = ../libiberty/libiberty.a +LIBIBERTY = =liberty ALL_EMULATIONS = \ eaixppc.o \ @@ -123,6 +123,8 @@ ALL_EMULATIONS = \ earmelfb_linux_eabi.o \ earmelf_nbsd.o \ earmelfb_nbsd.o \ + earmelf_obsd.o \ + earmelfb_obsd.o \ earmelf_vxworks.o \ earmnto.o \ earmnbsd.o \ @@ -147,6 +149,7 @@ ALL_EMULATIONS = \ eelf32_i960.o \ eelf32_i860.o \ eelf32_sparc.o \ + eelf32_sparc_obsd.o \ eelf32_sparc_vxworks.o \ eelf32b4300.o \ eelf32bfin.o \ @@ -181,6 +184,7 @@ ALL_EMULATIONS = \ eelf32openrisc.o \ eelf32ppc.o \ eelf32ppc_fbsd.o \ + eelf32ppc_obsd.o \ eelf32ppclinux.o \ eelf32ppcnto.o \ eelf32ppcsim.o \ @@ -197,6 +201,7 @@ ALL_EMULATIONS = \ eelf_i386_chaos.o \ eelf_i386_fbsd.o \ eelf_i386_ldso.o \ + eelf_i386_obsd.o \ eelf_i386_vxworks.o \ eelf_s390.o \ egld960.o \ @@ -239,6 +244,7 @@ ALL_EMULATIONS = \ ei386nbsd.o \ ei386nto.o \ ei386nw.o \ + ei386obsd.o \ ei386pe.o \ ei386pe_posix.o \ elnk960.o \ @@ -258,6 +264,7 @@ ALL_EMULATIONS = \ em68kelfnbsd.o \ em68klinux.o \ em68knbsd.o \ + em68kobsd.o \ em68kpsos.o \ em88kbcs.o \ emaxqcoff.o \ @@ -355,6 +362,8 @@ ALL_EMULATIONS = \ eshlelf_nbsd.o \ eshelf_nto.o \ eshlelf_nto.o \ + eshelf_obsd.o \ + eshlelf_obsd.o \ eshl.o \ eshlelf.o \ eshlsymbian.o \ @@ -362,6 +371,7 @@ ALL_EMULATIONS = \ esparcaout.o \ esparclinux.o \ esparcnbsd.o \ + esparcobsd.o \ est2000.o \ esun3.o \ esun4.o \ @@ -392,15 +402,20 @@ ALL_64_EMULATIONS = \ eshlelf64_nbsd.o \ eelf_x86_64.o \ eelf_x86_64_fbsd.o \ + eelf_x86_64_obsd.o \ eelf64_s390.o \ eelf64_sparc.o \ eelf64_sparc_fbsd.o \ + eelf64_sparc_obsd.o \ eelf64alpha.o \ eelf64alpha_fbsd.o \ eelf64alpha_nbsd.o \ + eelf64alpha_obsd.o \ eelf64bmip.o \ eelf64btsmip.o \ + eelf64btsmip_obsd.o \ eelf64ltsmip.o \ + eelf64ltsmip_obsd.o \ eelf64hppa.o \ eelf64mmix.o \ emmo.o \ @@ -542,6 +557,17 @@ earmelfb_nbsd.c: $(srcdir)/emulparams/armelfb_nbsd.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/armelf.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} armelfb_nbsd "$(tdir_armelfb_nbsd)" +earmelf_obsd.c: $(srcdir)/emulparams/armelf_obsd.sh \ + $(srcdir)/emulparams/armelf.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/armelf.em \ + $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} armelf_obsd "$(tdir_armelf_obsd)" +earmelfb_obsd.c: $(srcdir)/emulparams/armelfb_obsd.sh \ + $(srcdir)/emulparams/armelf_obsd.sh \ + $(srcdir)/emulparams/armelf.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/armelf.em \ + $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} armelfb_obsd "$(tdir_armelfb_obsd)" earmelf_vxworks.c: $(srcdir)/emulparams/armelf_vxworks.sh \ $(srcdir)/emulparams/vxworks.sh $(srcdir)/emulparams/armelf.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/vxworks.em \ @@ -688,6 +714,9 @@ em32rlelf_linux.c: $(srcdir)/emulparams/m32rlelf_linux.sh \ eelf32_sparc.c: $(srcdir)/emulparams/elf32_sparc.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32_sparc "$(tdir_elf32_sparc)" +eelf32_sparc_obsd.c: $(srcdir)/emulparams/elf32_sparc_obsd.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32_sparc_obsd "$(tdir_elf32_sparc_obsd)" eelf32_sparc_vxworks.c: $(srcdir)/emulparams/elf32_sparc_vxworks.sh \ $(srcdir)/emulparams/vxworks.sh $(srcdir)/emulparams/elf32_sparc.sh \ $(srcdir)/emultempl/vxworks.em $(srcdir)/emultempl/elf32.em \ @@ -811,6 +840,11 @@ eelf32ppc_fbsd.c: $(srcdir)/emulparams/elf32ppc_fbsd.sh \ $(srcdir)/emultempl/ppc32elf.em $(srcdir)/emultempl/elf32.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32ppc_fbsd "$(tdir_elf32ppc_fbsd)" +eelf32ppc_obsd.c: $(srcdir)/emulparams/elf32ppc_obsd.sh \ + $(srcdir)/emulparams/elf32ppc.sh $(srcdir)/emulparams/elf32ppccommon.sh \ + $(srcdir)/emultempl/ppc32elf.em $(srcdir)/emultempl/elf32.em \ + $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32ppc_obsd "$(tdir_elf32ppc_obsd)" eelf32ppcsim.c: $(srcdir)/emulparams/elf32ppcsim.sh \ $(srcdir)/emulparams/elf32ppc.sh $(srcdir)/emulparams/elf32ppccommon.sh \ $(srcdir)/emultempl/ppc32elf.em $(srcdir)/emultempl/elf32.em \ @@ -854,9 +888,14 @@ eelf64alpha_nbsd.c: $(srcdir)/emulparams/elf64alpha_nbsd.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/alphaelf.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64alpha_nbsd "$(tdir_elf64alpha_nbsd)" +eelf64alpha_obsd.c: $(srcdir)/emulparams/elf64alpha_obsd.sh \ + $(srcdir)/emulparams/elf64alpha.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf64alpha_obsd "$(tdir_elf64alpha_obsd)" eelf64hppa.c: $(srcdir)/emulparams/elf64hppa.sh \ $(srcdir)/emulparams/hppa64linux.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/alphaelf.em \ + $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64hppa "$(tdir_elf64hppa)" eelf64_aix.c: $(srcdir)/emulparams/elf64_aix.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} @@ -882,6 +921,10 @@ eelf64_sparc_fbsd.c: $(srcdir)/emulparams/elf64_sparc_fbsd.sh \ $(srcdir)/emulparams/elf64_sparc.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64_sparc_fbsd "$(tdir_elf64_sparc_fbsd)" +eelf64_sparc_obsd.c: $(srcdir)/emulparams/elf64_sparc_obsd.sh \ + $(srcdir)/emulparams/elf64_sparc.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf64_sparc_obsd "$(tdir_elf64_sparc_obsd)" eelf64bmip.c: $(srcdir)/emulparams/elf64bmip.sh \ $(srcdir)/emulparams/elf32bmipn32.sh $(srcdir)/emultempl/irix.em \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} @@ -898,10 +941,18 @@ eelf64btsmip.c: $(srcdir)/emulparams/elf64btsmip.sh \ $(srcdir)/emulparams/elf32bmipn32.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64btsmip "$(tdir_elf64btsmip)" +eelf64btsmip_obsd.c: $(srcdir)/emulparams/elf64btsmip_obsd.sh \ + $(srcdir)/emulparams/elf32bmipn32.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf64btsmip_obsd "$(tdir_elf64btsmip_obsd)" eelf64ltsmip.c: $(srcdir)/emulparams/elf64ltsmip.sh \ $(srcdir)/emulparams/elf64btsmip.sh $(srcdir)/emulparams/elf32bmipn32.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64ltsmip "$(tdir_elf64ltsmip)" +eelf64ltsmip_obsd.c: $(srcdir)/emulparams/elf64ltsmip_obsd.sh \ + $(srcdir)/emulparams/elf32bmipn32.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf64ltsmip_obsd "$(tdir_elf64ltsmip_obsd)" eelf_i386.c: $(srcdir)/emulparams/elf_i386.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf_i386 "$(tdir_elf_i386)" @@ -912,6 +963,10 @@ eelf_x86_64_fbsd.c: $(srcdir)/emulparams/elf_x86_64_fbsd.sh \ $(srcdir)/emulparams/elf_x86_64.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf_x86_64_fbsd "$(tdir_elf_x86_64_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 \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf_i386_be "$(tdir_elf_i386_be)" @@ -925,6 +980,10 @@ eelf_i386_fbsd.c: $(srcdir)/emulparams/elf_i386_fbsd.sh \ eelf_i386_ldso.c: $(srcdir)/emulparams/elf_i386_ldso.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf_i386_ldso "$(tdir_elf_i386_ldso)" +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_vxworks.c: $(srcdir)/emulparams/elf_i386_vxworks.sh \ $(srcdir)/emulparams/vxworks.sh $(srcdir)/emultempl/vxworks.em \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} @@ -1066,6 +1125,9 @@ ei386nto.c: $(srcdir)/emulparams/i386nto.sh \ ei386nw.c: $(srcdir)/emulparams/i386nw.sh \ $(srcdir)/emultempl/elf32.em $(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)" @@ -1118,6 +1180,9 @@ em68klinux.c: $(srcdir)/emulparams/m68klinux.sh \ em68knbsd.c: $(srcdir)/emulparams/m68knbsd.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} ${GENSCRIPTS} m68knbsd "$(tdir_m68knbsd)" +em68kobsd.c: $(srcdir)/emulparams/m68kobsd.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} + ${GENSCRIPTS} m68kobsd "$(tdir_m68kobsd)" em68kpsos.c: $(srcdir)/emulparams/m68kpsos.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/psos.sc ${GEN_DEPENDS} ${GENSCRIPTS} m68kpsos "$(tdir_m68kpsos)" @@ -1480,6 +1545,11 @@ eshelf_nbsd.c: $(srcdir)/emulparams/shelf_nbsd.sh \ eshelf_nto.c: $(srcdir)/emulparams/shelf_nto.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} shelf_nto "$(tdir_shelf_nto)" +eshelf_obsd.c: $(srcdir)/emulparams/shelf_obsd.sh \ + $(srcdir)/emulparams/shelf.sh \ + $(srcdir)/emulparams/elf_obsd.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} shelf_obsd "$(tdir_shelf_obsd)" eshlelf_nbsd.c: $(srcdir)/emulparams/shlelf_nbsd.sh \ $(srcdir)/emulparams/shelf_nbsd.sh \ $(srcdir)/emulparams/shelf.sh \ @@ -1488,6 +1558,12 @@ eshlelf_nbsd.c: $(srcdir)/emulparams/shlelf_nbsd.sh \ eshlelf_nto.c: $(srcdir)/emulparams/shlelf_nto.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} shlelf_nto "$(tdir_shlelf_nto)" +eshlelf_obsd.c: $(srcdir)/emulparams/shlelf_obsd.sh \ + $(srcdir)/emulparams/shelf_obsd.sh \ + $(srcdir)/emulparams/shelf.sh \ + $(srcdir)/emulparams/elf_obsd.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} shlelf_obsd "$(tdir_shlelf_obsd)" eshlelf.c: $(srcdir)/emulparams/shlelf.sh \ $(srcdir)/emulparams/shelf.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} @@ -1538,6 +1614,9 @@ esparclinux.c: $(srcdir)/emulparams/sparclinux.sh \ esparcnbsd.c: $(srcdir)/emulparams/sparcnbsd.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} ${GENSCRIPTS} sparcnbsd "$(tdir_sparcnbsd)" +esparcobsd.c: $(srcdir)/emulparams/sparcobsd.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} + ${GENSCRIPTS} sparcobsd "$(tdir_sparcobsd)" est2000.c: $(srcdir)/emulparams/st2000.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/st2000.sc ${GEN_DEPENDS} ${GENSCRIPTS} st2000 "$(tdir_st2000)" @@ -1613,7 +1692,7 @@ EXTRA_ld_new_SOURCES = deffilep.y ld_new_SOURCES = ldgram.y ldlex.l lexsup.c ldlang.c mri.c ldctor.c ldmain.c \ ldwrite.c ldexp.c ldemul.c ldver.c ldmisc.c ldfile.c ldcref.c -ld_new_DEPENDENCIES = $(EMULATION_OFILES) $(EMUL_EXTRA_OFILES) $(BFDLIB) $(LIBIBERTY) $(INTLDEPS) +ld_new_DEPENDENCIES = $(EMULATION_OFILES) $(EMUL_EXTRA_OFILES) $(BFDLIB) $(INTLDEPS) ld_new_LDADD = $(EMULATION_OFILES) $(EMUL_EXTRA_OFILES) $(BFDLIB) $(LIBIBERTY) $(INTLLIBS) # The generated emulation files mostly have the same dependencies. @@ -1789,7 +1868,7 @@ install-exec-local: ld-new$(EXEEXT) $(mkinstalldirs) $(DESTDIR)$(bindir) $(DESTDIR)$(tooldir)/bin @list='$(noinst_PROGRAMS)'; for p in $$list; do \ if test -f $$p; then \ - echo " $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(bindir)/`echo $$p|sed -e 's/$(EXEEXT)$$//' -e 's/-new//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \ + echo " $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed -e 's/$(EXEEXT)$$//' -e 's/-new//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \ $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed -e 's/$(EXEEXT)$$//' -e 's/-new//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ else :; fi; \ done @@ -1854,17 +1933,17 @@ dep.sed: dep-in.sed config.status dep: DEP sed -e '/^..DO NOT DELETE THIS LINE/,$$d' < Makefile > tmp-Makefile cat DEP >> tmp-Makefile - $(srcdir)/../move-if-change tmp-Makefile Makefile + $(SHELL) $(srcdir)/../move-if-change tmp-Makefile Makefile dep-in: DEP sed -e '/^..DO NOT DELETE THIS LINE/,$$d' < $(srcdir)/Makefile.in > tmp-Makefile.in cat DEP >> tmp-Makefile.in - $(srcdir)/../move-if-change tmp-Makefile.in $(srcdir)/Makefile.in + $(SHELL) $(srcdir)/../move-if-change tmp-Makefile.in $(srcdir)/Makefile.in dep-am: DEP sed -e '/^..DO NOT DELETE THIS LINE/,$$d' < $(srcdir)/Makefile.am > tmp-Makefile.am cat DEP >> tmp-Makefile.am - $(srcdir)/../move-if-change tmp-Makefile.am $(srcdir)/Makefile.am + $(SHELL) $(srcdir)/../move-if-change tmp-Makefile.am $(srcdir)/Makefile.am .PHONY: dep dep-in dep-am diff --git a/gnu/usr.bin/binutils-2.17/ld/Makefile.in b/gnu/usr.bin/binutils-2.17/ld/Makefile.in index 2b917b11137..ad56bf3b81c 100644 --- a/gnu/usr.bin/binutils-2.17/ld/Makefile.in +++ b/gnu/usr.bin/binutils-2.17/ld/Makefile.in @@ -328,7 +328,7 @@ AM_MAKEINFOFLAGS = -I $(srcdir) -I $(BFDDIR)/doc -I $(top_srcdir)/../libiberty TEXI2DVI = texi2dvi -I $(srcdir) -I $(BFDDIR)/doc -I $(top_srcdir)/../libiberty INCLUDES = -D_GNU_SOURCE -I. -I$(srcdir) -I../bfd -I$(BFDDIR) -I$(INCDIR) -I$(top_srcdir)/../intl -I../intl $(HDEFINES) $(CFLAGS) -DLOCALEDIR="\"$(datadir)/locale\"" BFDLIB = ../bfd/libbfd.la -LIBIBERTY = ../libiberty/libiberty.a +LIBIBERTY = -liberty ALL_EMULATIONS = \ eaixppc.o \ eaixrs6.o \ @@ -347,6 +347,8 @@ ALL_EMULATIONS = \ earmelfb_linux_eabi.o \ earmelf_nbsd.o \ earmelfb_nbsd.o \ + earmelf_obsd.o \ + earmelfb_obsd.o \ earmelf_vxworks.o \ earmnto.o \ earmnbsd.o \ @@ -371,6 +373,7 @@ ALL_EMULATIONS = \ eelf32_i960.o \ eelf32_i860.o \ eelf32_sparc.o \ + eelf32_sparc_obsd.o \ eelf32_sparc_vxworks.o \ eelf32b4300.o \ eelf32bfin.o \ @@ -405,6 +408,7 @@ ALL_EMULATIONS = \ eelf32openrisc.o \ eelf32ppc.o \ eelf32ppc_fbsd.o \ + eelf32ppc_obsd.o \ eelf32ppclinux.o \ eelf32ppcnto.o \ eelf32ppcsim.o \ @@ -421,6 +425,7 @@ ALL_EMULATIONS = \ eelf_i386_chaos.o \ eelf_i386_fbsd.o \ eelf_i386_ldso.o \ + eelf_i386_obsd.o \ eelf_i386_vxworks.o \ eelf_s390.o \ egld960.o \ @@ -463,6 +468,7 @@ ALL_EMULATIONS = \ ei386nbsd.o \ ei386nto.o \ ei386nw.o \ + ei386obsd.o \ ei386pe.o \ ei386pe_posix.o \ elnk960.o \ @@ -482,6 +488,7 @@ ALL_EMULATIONS = \ em68kelfnbsd.o \ em68klinux.o \ em68knbsd.o \ + em68kobsd.o \ em68kpsos.o \ em88kbcs.o \ emaxqcoff.o \ @@ -579,6 +586,8 @@ ALL_EMULATIONS = \ eshlelf_nbsd.o \ eshelf_nto.o \ eshlelf_nto.o \ + eshelf_obsd.o \ + eshlelf_obsd.o \ eshl.o \ eshlelf.o \ eshlsymbian.o \ @@ -586,6 +595,7 @@ ALL_EMULATIONS = \ esparcaout.o \ esparclinux.o \ esparcnbsd.o \ + esparcobsd.o \ est2000.o \ esun3.o \ esun4.o \ @@ -616,15 +626,20 @@ ALL_64_EMULATIONS = \ eshlelf64_nbsd.o \ eelf_x86_64.o \ eelf_x86_64_fbsd.o \ + eelf_x86_64_obsd.o \ eelf64_s390.o \ eelf64_sparc.o \ eelf64_sparc_fbsd.o \ + eelf64_sparc_obsd.o \ eelf64alpha.o \ eelf64alpha_fbsd.o \ eelf64alpha_nbsd.o \ + eelf64alpha_obsd.o \ eelf64bmip.o \ eelf64btsmip.o \ + eelf64btsmip_obsd.o \ eelf64ltsmip.o \ + eelf64ltsmip_obsd.o \ eelf64hppa.o \ eelf64mmix.o \ emmo.o \ @@ -666,7 +681,7 @@ EXTRA_ld_new_SOURCES = deffilep.y ld_new_SOURCES = ldgram.y ldlex.l lexsup.c ldlang.c mri.c ldctor.c ldmain.c \ ldwrite.c ldexp.c ldemul.c ldver.c ldmisc.c ldfile.c ldcref.c -ld_new_DEPENDENCIES = $(EMULATION_OFILES) $(EMUL_EXTRA_OFILES) $(BFDLIB) $(LIBIBERTY) $(INTLDEPS) +ld_new_DEPENDENCIES = $(EMULATION_OFILES) $(EMUL_EXTRA_OFILES) $(BFDLIB) $(INTLDEPS) ld_new_LDADD = $(EMULATION_OFILES) $(EMUL_EXTRA_OFILES) $(BFDLIB) $(LIBIBERTY) $(INTLLIBS) MAINTAINERCLEANFILES = ldver.texi configdoc.texi @@ -1201,7 +1216,7 @@ install-info-am: $(INFO_DEPS) install-info --info-dir="$(DESTDIR)$(infodir)" "$(DESTDIR)$(infodir)/$$relfile" || :;\ done; \ else : ; fi -install-man: install-man1 +install-man: installcheck-am: @@ -1229,7 +1244,7 @@ uninstall-am: uninstall-man uninstall-info: uninstall-info-recursive -uninstall-man: uninstall-man1 +uninstall-man: .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \ check-DEJAGNU check-am clean clean-generic clean-info \ @@ -1353,6 +1368,17 @@ earmelfb_nbsd.c: $(srcdir)/emulparams/armelfb_nbsd.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/armelf.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} armelfb_nbsd "$(tdir_armelfb_nbsd)" +earmelf_obsd.c: $(srcdir)/emulparams/armelf_obsd.sh \ + $(srcdir)/emulparams/armelf.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/armelf.em \ + $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} armelf_obsd "$(tdir_armelf_obsd)" +earmelfb_obsd.c: $(srcdir)/emulparams/armelfb_obsd.sh \ + $(srcdir)/emulparams/armelf_obsd.sh \ + $(srcdir)/emulparams/armelf.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/armelf.em \ + $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} armelfb_obsd "$(tdir_armelfb_obsd)" earmelf_vxworks.c: $(srcdir)/emulparams/armelf_vxworks.sh \ $(srcdir)/emulparams/vxworks.sh $(srcdir)/emulparams/armelf.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/vxworks.em \ @@ -1499,6 +1525,9 @@ em32rlelf_linux.c: $(srcdir)/emulparams/m32rlelf_linux.sh \ eelf32_sparc.c: $(srcdir)/emulparams/elf32_sparc.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32_sparc "$(tdir_elf32_sparc)" +eelf32_sparc_obsd.c: $(srcdir)/emulparams/elf32_sparc_obsd.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32_sparc_obsd "$(tdir_elf32_sparc_obsd)" eelf32_sparc_vxworks.c: $(srcdir)/emulparams/elf32_sparc_vxworks.sh \ $(srcdir)/emulparams/vxworks.sh $(srcdir)/emulparams/elf32_sparc.sh \ $(srcdir)/emultempl/vxworks.em $(srcdir)/emultempl/elf32.em \ @@ -1622,6 +1651,11 @@ eelf32ppc_fbsd.c: $(srcdir)/emulparams/elf32ppc_fbsd.sh \ $(srcdir)/emultempl/ppc32elf.em $(srcdir)/emultempl/elf32.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32ppc_fbsd "$(tdir_elf32ppc_fbsd)" +eelf32ppc_obsd.c: $(srcdir)/emulparams/elf32ppc_obsd.sh \ + $(srcdir)/emulparams/elf32ppc.sh $(srcdir)/emulparams/elf32ppccommon.sh \ + $(srcdir)/emultempl/ppc32elf.em $(srcdir)/emultempl/elf32.em \ + $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32ppc_obsd "$(tdir_elf32ppc_obsd)" eelf32ppcsim.c: $(srcdir)/emulparams/elf32ppcsim.sh \ $(srcdir)/emulparams/elf32ppc.sh $(srcdir)/emulparams/elf32ppccommon.sh \ $(srcdir)/emultempl/ppc32elf.em $(srcdir)/emultempl/elf32.em \ @@ -1665,9 +1699,14 @@ eelf64alpha_nbsd.c: $(srcdir)/emulparams/elf64alpha_nbsd.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/alphaelf.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64alpha_nbsd "$(tdir_elf64alpha_nbsd)" +eelf64alpha_obsd.c: $(srcdir)/emulparams/elf64alpha_obsd.sh \ + $(srcdir)/emulparams/elf64alpha.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf64alpha_obsd "$(tdir_elf64alpha_obsd)" eelf64hppa.c: $(srcdir)/emulparams/elf64hppa.sh \ $(srcdir)/emulparams/hppa64linux.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/alphaelf.em \ + $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64hppa "$(tdir_elf64hppa)" eelf64_aix.c: $(srcdir)/emulparams/elf64_aix.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} @@ -1693,6 +1732,10 @@ eelf64_sparc_fbsd.c: $(srcdir)/emulparams/elf64_sparc_fbsd.sh \ $(srcdir)/emulparams/elf64_sparc.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64_sparc_fbsd "$(tdir_elf64_sparc_fbsd)" +eelf64_sparc_obsd.c: $(srcdir)/emulparams/elf64_sparc_obsd.sh \ + $(srcdir)/emulparams/elf64_sparc.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf64_sparc_obsd "$(tdir_elf64_sparc_obsd)" eelf64bmip.c: $(srcdir)/emulparams/elf64bmip.sh \ $(srcdir)/emulparams/elf32bmipn32.sh $(srcdir)/emultempl/irix.em \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} @@ -1709,10 +1752,18 @@ eelf64btsmip.c: $(srcdir)/emulparams/elf64btsmip.sh \ $(srcdir)/emulparams/elf32bmipn32.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64btsmip "$(tdir_elf64btsmip)" +eelf64btsmip_obsd.c: $(srcdir)/emulparams/elf64btsmip_obsd.sh \ + $(srcdir)/emulparams/elf32bmipn32.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf64btsmip_obsd "$(tdir_elf64btsmip_obsd)" eelf64ltsmip.c: $(srcdir)/emulparams/elf64ltsmip.sh \ $(srcdir)/emulparams/elf64btsmip.sh $(srcdir)/emulparams/elf32bmipn32.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64ltsmip "$(tdir_elf64ltsmip)" +eelf64ltsmip_obsd.c: $(srcdir)/emulparams/elf64ltsmip_obsd.sh \ + $(srcdir)/emulparams/elf32bmipn32.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf64ltsmip_obsd "$(tdir_elf64ltsmip_obsd)" eelf_i386.c: $(srcdir)/emulparams/elf_i386.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf_i386 "$(tdir_elf_i386)" @@ -1723,6 +1774,10 @@ eelf_x86_64_fbsd.c: $(srcdir)/emulparams/elf_x86_64_fbsd.sh \ $(srcdir)/emulparams/elf_x86_64.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf_x86_64_fbsd "$(tdir_elf_x86_64_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 \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf_i386_be "$(tdir_elf_i386_be)" @@ -1736,6 +1791,10 @@ eelf_i386_fbsd.c: $(srcdir)/emulparams/elf_i386_fbsd.sh \ eelf_i386_ldso.c: $(srcdir)/emulparams/elf_i386_ldso.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf_i386_ldso "$(tdir_elf_i386_ldso)" +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_vxworks.c: $(srcdir)/emulparams/elf_i386_vxworks.sh \ $(srcdir)/emulparams/vxworks.sh $(srcdir)/emultempl/vxworks.em \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} @@ -1877,6 +1936,9 @@ ei386nto.c: $(srcdir)/emulparams/i386nto.sh \ ei386nw.c: $(srcdir)/emulparams/i386nw.sh \ $(srcdir)/emultempl/elf32.em $(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)" @@ -1929,6 +1991,9 @@ em68klinux.c: $(srcdir)/emulparams/m68klinux.sh \ em68knbsd.c: $(srcdir)/emulparams/m68knbsd.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} ${GENSCRIPTS} m68knbsd "$(tdir_m68knbsd)" +em68kobsd.c: $(srcdir)/emulparams/m68kobsd.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} + ${GENSCRIPTS} m68kobsd "$(tdir_m68kobsd)" em68kpsos.c: $(srcdir)/emulparams/m68kpsos.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/psos.sc ${GEN_DEPENDS} ${GENSCRIPTS} m68kpsos "$(tdir_m68kpsos)" @@ -2291,6 +2356,11 @@ eshelf_nbsd.c: $(srcdir)/emulparams/shelf_nbsd.sh \ eshelf_nto.c: $(srcdir)/emulparams/shelf_nto.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} shelf_nto "$(tdir_shelf_nto)" +eshelf_obsd.c: $(srcdir)/emulparams/shelf_obsd.sh \ + $(srcdir)/emulparams/shelf.sh \ + $(srcdir)/emulparams/elf_obsd.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} shelf_obsd "$(tdir_shelf_obsd)" eshlelf_nbsd.c: $(srcdir)/emulparams/shlelf_nbsd.sh \ $(srcdir)/emulparams/shelf_nbsd.sh \ $(srcdir)/emulparams/shelf.sh \ @@ -2299,6 +2369,12 @@ eshlelf_nbsd.c: $(srcdir)/emulparams/shlelf_nbsd.sh \ eshlelf_nto.c: $(srcdir)/emulparams/shlelf_nto.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} shlelf_nto "$(tdir_shlelf_nto)" +eshlelf_obsd.c: $(srcdir)/emulparams/shlelf_obsd.sh \ + $(srcdir)/emulparams/shelf_obsd.sh \ + $(srcdir)/emulparams/shelf.sh \ + $(srcdir)/emulparams/elf_obsd.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} shlelf_obsd "$(tdir_shlelf_obsd)" eshlelf.c: $(srcdir)/emulparams/shlelf.sh \ $(srcdir)/emulparams/shelf.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} @@ -2349,6 +2425,9 @@ esparclinux.c: $(srcdir)/emulparams/sparclinux.sh \ esparcnbsd.c: $(srcdir)/emulparams/sparcnbsd.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} ${GENSCRIPTS} sparcnbsd "$(tdir_sparcnbsd)" +esparcobsd.c: $(srcdir)/emulparams/sparcobsd.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} + ${GENSCRIPTS} sparcobsd "$(tdir_sparcobsd)" est2000.c: $(srcdir)/emulparams/st2000.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/st2000.sc ${GEN_DEPENDS} ${GENSCRIPTS} st2000 "$(tdir_st2000)" @@ -2576,7 +2655,7 @@ install-exec-local: ld-new$(EXEEXT) $(mkinstalldirs) $(DESTDIR)$(bindir) $(DESTDIR)$(tooldir)/bin @list='$(noinst_PROGRAMS)'; for p in $$list; do \ if test -f $$p; then \ - echo " $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(bindir)/`echo $$p|sed -e 's/$(EXEEXT)$$//' -e 's/-new//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \ + echo " $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed -e 's/$(EXEEXT)$$//' -e 's/-new//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \ $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed -e 's/$(EXEEXT)$$//' -e 's/-new//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ else :; fi; \ done @@ -2635,17 +2714,17 @@ dep.sed: dep-in.sed config.status dep: DEP sed -e '/^..DO NOT DELETE THIS LINE/,$$d' < Makefile > tmp-Makefile cat DEP >> tmp-Makefile - $(srcdir)/../move-if-change tmp-Makefile Makefile + $(SHELL) $(srcdir)/../move-if-change tmp-Makefile Makefile dep-in: DEP sed -e '/^..DO NOT DELETE THIS LINE/,$$d' < $(srcdir)/Makefile.in > tmp-Makefile.in cat DEP >> tmp-Makefile.in - $(srcdir)/../move-if-change tmp-Makefile.in $(srcdir)/Makefile.in + $(SHELL) $(srcdir)/../move-if-change tmp-Makefile.in $(srcdir)/Makefile.in dep-am: DEP sed -e '/^..DO NOT DELETE THIS LINE/,$$d' < $(srcdir)/Makefile.am > tmp-Makefile.am cat DEP >> tmp-Makefile.am - $(srcdir)/../move-if-change tmp-Makefile.am $(srcdir)/Makefile.am + $(SHELL) $(srcdir)/../move-if-change tmp-Makefile.am $(srcdir)/Makefile.am .PHONY: dep dep-in dep-am diff --git a/gnu/usr.bin/binutils-2.17/ld/configure b/gnu/usr.bin/binutils-2.17/ld/configure index 0cd6f5c99d1..d779ba18761 100755 --- a/gnu/usr.bin/binutils-2.17/ld/configure +++ b/gnu/usr.bin/binutils-2.17/ld/configure @@ -9700,7 +9700,7 @@ do all_targets=true else # Canonicalize the secondary target names. - result=`$ac_config_sub $targ_alias 2>/dev/null` + result=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $targ_alias 2>/dev/null` if test -n "$result"; then targ=$result else diff --git a/gnu/usr.bin/binutils-2.17/ld/configure.in b/gnu/usr.bin/binutils-2.17/ld/configure.in index e020288c00c..da2fc05c85a 100644 --- a/gnu/usr.bin/binutils-2.17/ld/configure.in +++ b/gnu/usr.bin/binutils-2.17/ld/configure.in @@ -156,7 +156,7 @@ do all_targets=true else # Canonicalize the secondary target names. - result=`$ac_config_sub $targ_alias 2>/dev/null` + result=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $targ_alias 2>/dev/null` if test -n "$result"; then targ=$result else diff --git a/gnu/usr.bin/binutils-2.17/ld/configure.tgt b/gnu/usr.bin/binutils-2.17/ld/configure.tgt index d324e4ece25..a133f07fa67 100644 --- a/gnu/usr.bin/binutils-2.17/ld/configure.tgt +++ b/gnu/usr.bin/binutils-2.17/ld/configure.tgt @@ -32,8 +32,7 @@ alpha*-*-osf*) targ_emul=alpha ;; alpha*-*-gnu*) targ_emul=elf64alpha ;; alpha*-*-netware*) targ_emul=alpha ;; alpha*-*-netbsd*) targ_emul=elf64alpha_nbsd ;; -alpha*-*-openbsd*) targ_emul=elf64alpha - ;; +alpha*-*-openbsd*) targ_emul=elf64alpha_obsd ;; arc-*-elf*) targ_emul=arcelf ;; arm-epoc-pe) targ_emul=arm_epoc_pe ; targ_extra_ofiles="deffilep.o pe-dll.o" ;; @@ -52,7 +51,10 @@ arm-*-netbsdelf*) targ_emul=armelf_nbsd; arm-*-netbsd*) targ_emul=armnbsd; targ_extra_emuls="armelf armelf_nbsd armelfb_nbsd" ;; arm-*-nto*) targ_emul=armnto ;; -arm-*-openbsd*) targ_emul=armnbsd ;; +armeb-*-openbsd*) targ_emul=armelfb_obsd + targ_extra_emuls="armelf_obsd" ;; +arm-*-openbsd*) targ_emul=armelf_obsd + targ_extra_emuls="armelfb_obsd" ;; arm-*-rtems*) targ_emul=armelf ;; armeb-*-elf) targ_emul=armelfb ;; arm-*-elf | arm*-*-eabi*) @@ -125,8 +127,7 @@ hppa*-*-linux-*) targ_emul=hppalinux ;; hppa*-*-*elf*) targ_emul=hppaelf ;; hppa*-*-lites*) targ_emul=hppaelf ;; hppa*-*-netbsd*) targ_emul=hppanbsd ;; -hppa*-*-openbsd*) targ_emul=hppaobsd - ;; +hppa*-*-openbsd*) targ_emul=hppaobsd ;; i370-*-elf* | i370-*-linux-*) targ_emul=elf32i370 ;; i[3-7]86-*-nto-qnx*) targ_emul=i386nto ;; @@ -187,6 +188,14 @@ x86_64-*-netbsd*) targ_emul=elf_x86_64 sed -e 's/netbsd/netbsdelf/'`;; esac ;; i[3-7]86-*-netware) targ_emul=i386nw ;; +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-*-elf*) targ_emul=elf_i386 ;; x86_64-*-elf*) targ_emul=elf_x86_64 targ_extra_emuls=elf_i386 @@ -285,6 +294,7 @@ m68*-*-netbsdelf*) targ_emul=m68kelfnbsd m68*-*-netbsdaout* | m68*-*-netbsd*) targ_emul=m68knbsd targ_extra_emuls="m68kelfnbsd m68k4knbsd" ;; +m68*-*-openbsd*) targ_emul=m68kobsd ;; m68*-*-psos*) targ_emul=m68kpsos ;; m68*-*-rtemscoff*) targ_emul=m68kcoff ;; m68*-*-rtems*) targ_emul=m68kelf @@ -314,6 +324,14 @@ mips*el-*-netbsd*) targ_emul=elf32ltsmip mips*-*-netbsd*) targ_emul=elf32btsmip targ_extra_emuls="elf32ltsmip elf64btsmip elf64ltsmip" ;; +mips64*el-*-openbsd*) targ_emul=elf64ltsmip_obsd + targ_extra_emuls="elf32ltsmipn32 elf32btsmipn32 elf32ltsmip elf32btsmip elf64btsmip" + ;; +mips64*-*-openbsd*) targ_emul=elf64btsmip_obsd + targ_extra_emuls="elf32btsmipn32 elf32ltsmipn32 elf32btsmip elf32ltsmip elf64ltsmip" + ;; +mips*el-*-openbsd*) targ_emul=elf32ltsmip ;; +mips*-*-openbsd*) targ_emul=elf32btsmip ;; mips*-*-bsd*) targ_emul=mipsbig ;; mips*vr4300el-*-elf*) targ_emul=elf32l4300 ;; mips*vr4300-*-elf*) targ_emul=elf32b4300 ;; @@ -400,7 +418,7 @@ powerpc*le-*-elf* | powerpc*le-*-eabi* | powerpc*le-*-solaris* \ targ_extra_emuls="elf32ppcsim" ;; esac ;; powerpc*-*-elf* | powerpc*-*-eabi* | powerpc*-*-sysv* \ - | powerpc*-*-netbsd* | powerpc-*-openbsd* | powerpc*-*-kaos*) + | powerpc*-*-netbsd* | powerpc*-*-kaos*) case "${targ}" in *64*) targ_emul=elf64ppc targ_extra_emuls="elf32ppc elf32ppclinux elf32ppcsim" @@ -411,6 +429,11 @@ powerpc*-*-elf* | powerpc*-*-eabi* | powerpc*-*-sysv* \ *) targ_emul=elf32ppc targ_extra_emuls="elf32ppclinux elf32ppcsim" ;; esac ;; +powerpc-*-openbsd*) case "${targ}" in + *64*) targ_emul=elf64ppc_obsd + targ_extra_emuls="elf32ppc_obsd" ;; + *) targ_emul=elf32ppc_obsd ;; + esac ;; powerpc-*-vxworks*) targ_emul=elf32ppcvxworks targ_extra_emuls="elf32ppc elf32ppclinux elf32ppcsim" ;; @@ -465,6 +488,8 @@ sh*l*-*-netbsdelf*) targ_emul=shlelf_nbsd targ_extra_emuls=shelf_nbsd ;; sh*-*-netbsdelf*) targ_emul=shelf_nbsd targ_extra_emuls=shlelf_nbsd ;; +sh*-*-openbsd*) targ_emul=shlelf_obsd + targ_extra_emuls=shelf_obsd ;; sh*-*-symbianelf*) targ_emul=shlsymbian ;; shle*-*-elf* | sh[1234]*le*-*-elf | shle*-*-kaos*) targ_emul=shlelf @@ -516,11 +541,14 @@ sparc*-*-linux-*) targ_emul=elf32_sparc tdir_sparclinux=${targ_alias}aout tdir_elf64_sparc=`echo ${targ_alias} | sed -e 's/32//'` tdir_sun4=sparc-sun-sunos4 ;; -sparc64-*-netbsd* | sparc64-*-openbsd*) - targ_emul=elf64_sparc +sparc64-*-netbsd*) targ_emul=elf64_sparc targ_extra_emuls="elf32_sparc" ;; +sparc64-*-openbsd*) targ_emul=elf64_sparc_obsd ;; sparc*-*-netbsd*elf*) targ_emul=elf32_sparc ;; sparc*-*-netbsd*) targ_emul=sparcnbsd ;; +sparc-*-openbsd[0-2].* | sparc-*-openbsd3.[0-1]) + targ_emul=sparcobsd ;; +sparc-*-openbsd*) targ_emul=elf32_sparc_obsd ;; sparc-*-solaris2.[0-6] | sparc-*-solaris2.[0-6].*) targ_emul=elf32_sparc ;; sparc-*-solaris2*) targ_emul=elf32_sparc diff --git a/gnu/usr.bin/binutils-2.17/ld/emulparams/armelf_obsd.sh b/gnu/usr.bin/binutils-2.17/ld/emulparams/armelf_obsd.sh new file mode 100644 index 00000000000..a2f193b7546 --- /dev/null +++ b/gnu/usr.bin/binutils-2.17/ld/emulparams/armelf_obsd.sh @@ -0,0 +1,8 @@ +. ${srcdir}/emulparams/armelf.sh +. ${srcdir}/emulparams/elf_obsd.sh + +MAXPAGESIZE=0x8000 +TEXT_START_ADDR=0x00008000 +TARGET2_TYPE=got-rel + +unset EMBEDDED diff --git a/gnu/usr.bin/binutils-2.17/ld/emulparams/armelfb_obsd.sh b/gnu/usr.bin/binutils-2.17/ld/emulparams/armelfb_obsd.sh new file mode 100644 index 00000000000..8c35c13c276 --- /dev/null +++ b/gnu/usr.bin/binutils-2.17/ld/emulparams/armelfb_obsd.sh @@ -0,0 +1,3 @@ +. ${srcdir}/emulparams/armelf_obsd.sh + +OUTPUT_FORMAT="elf32-bigarm" diff --git a/gnu/usr.bin/binutils-2.17/ld/emulparams/elf32_sparc_obsd.sh b/gnu/usr.bin/binutils-2.17/ld/emulparams/elf32_sparc_obsd.sh new file mode 100644 index 00000000000..3f36d6954ec --- /dev/null +++ b/gnu/usr.bin/binutils-2.17/ld/emulparams/elf32_sparc_obsd.sh @@ -0,0 +1,4 @@ +. ${srcdir}/emulparams/elf32_sparc.sh +#override MAXPAGESIZE to avoid cache aliasing. +MAXPAGESIZE=0x100000 +. ${srcdir}/emulparams/elf_obsd.sh diff --git a/gnu/usr.bin/binutils-2.17/ld/emulparams/elf32ppc_obsd.sh b/gnu/usr.bin/binutils-2.17/ld/emulparams/elf32ppc_obsd.sh new file mode 100644 index 00000000000..63d838343a6 --- /dev/null +++ b/gnu/usr.bin/binutils-2.17/ld/emulparams/elf32ppc_obsd.sh @@ -0,0 +1,2 @@ +. ${srcdir}/emulparams/elf32ppc.sh +. ${srcdir}/emulparams/elf_obsd.sh diff --git a/gnu/usr.bin/binutils-2.17/ld/emulparams/elf64_sparc_obsd.sh b/gnu/usr.bin/binutils-2.17/ld/emulparams/elf64_sparc_obsd.sh new file mode 100644 index 00000000000..465f473ad99 --- /dev/null +++ b/gnu/usr.bin/binutils-2.17/ld/emulparams/elf64_sparc_obsd.sh @@ -0,0 +1,2 @@ +. ${srcdir}/emulparams/elf64_sparc.sh +. ${srcdir}/emulparams/elf_obsd.sh diff --git a/gnu/usr.bin/binutils-2.17/ld/emulparams/elf64alpha_obsd.sh b/gnu/usr.bin/binutils-2.17/ld/emulparams/elf64alpha_obsd.sh new file mode 100644 index 00000000000..d41f5e7814a --- /dev/null +++ b/gnu/usr.bin/binutils-2.17/ld/emulparams/elf64alpha_obsd.sh @@ -0,0 +1,2 @@ +. ${srcdir}/emulparams/elf64alpha.sh +. ${srcdir}/emulparams/elf_obsd.sh diff --git a/gnu/usr.bin/binutils-2.17/ld/emulparams/elf64btsmip_obsd.sh b/gnu/usr.bin/binutils-2.17/ld/emulparams/elf64btsmip_obsd.sh new file mode 100644 index 00000000000..f4cde708f64 --- /dev/null +++ b/gnu/usr.bin/binutils-2.17/ld/emulparams/elf64btsmip_obsd.sh @@ -0,0 +1,7 @@ +. ${srcdir}/emulparams/elf64btsmip.sh +MAXPAGESIZE=0x10000 +TEXT_START_ADDR="0x10000000" +. ${srcdir}/emulparams/elf_obsd.sh +# XXX causes GOT oflows +NO_PAD_CDTOR=y +DATA_START_SYMBOLS='_fdata = . ; __data_start = . ;' diff --git a/gnu/usr.bin/binutils-2.17/ld/emulparams/elf64ltsmip_obsd.sh b/gnu/usr.bin/binutils-2.17/ld/emulparams/elf64ltsmip_obsd.sh new file mode 100644 index 00000000000..bec35d17e7d --- /dev/null +++ b/gnu/usr.bin/binutils-2.17/ld/emulparams/elf64ltsmip_obsd.sh @@ -0,0 +1,7 @@ +. ${srcdir}/emulparams/elf64ltsmip.sh +MAXPAGESIZE=0x10000 +TEXT_START_ADDR="0x10000000" +. ${srcdir}/emulparams/elf_obsd.sh +# XXX causes GOT oflows +NO_PAD_CDTOR=y +DATA_START_SYMBOLS='_fdata = . ; __data_start = . ;' diff --git a/gnu/usr.bin/binutils-2.17/ld/emulparams/elf_i386_obsd.sh b/gnu/usr.bin/binutils-2.17/ld/emulparams/elf_i386_obsd.sh new file mode 100644 index 00000000000..ae7ba0e3d29 --- /dev/null +++ b/gnu/usr.bin/binutils-2.17/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/gnu/usr.bin/binutils-2.17/ld/emulparams/elf_obsd.sh b/gnu/usr.bin/binutils-2.17/ld/emulparams/elf_obsd.sh new file mode 100644 index 00000000000..37e0d51e8f5 --- /dev/null +++ b/gnu/usr.bin/binutils-2.17/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/gnu/usr.bin/binutils-2.17/ld/emulparams/elf_x86_64_obsd.sh b/gnu/usr.bin/binutils-2.17/ld/emulparams/elf_x86_64_obsd.sh new file mode 100644 index 00000000000..3689dad903f --- /dev/null +++ b/gnu/usr.bin/binutils-2.17/ld/emulparams/elf_x86_64_obsd.sh @@ -0,0 +1,2 @@ +. ${srcdir}/emulparams/elf_x86_64.sh +. ${srcdir}/emulparams/elf_obsd.sh diff --git a/gnu/usr.bin/binutils-2.17/ld/emulparams/hppaobsd.sh b/gnu/usr.bin/binutils-2.17/ld/emulparams/hppaobsd.sh index 0227dc5c335..45e5c4e3ba4 100644 --- a/gnu/usr.bin/binutils-2.17/ld/emulparams/hppaobsd.sh +++ b/gnu/usr.bin/binutils-2.17/ld/emulparams/hppaobsd.sh @@ -1,6 +1,19 @@ -. ${srcdir}/emulparams/hppanbsd.sh - +. ${srcdir}/emulparams/hppaelf.sh + +#override hppaelf.sh +SCRIPT_NAME=elf +ELFSIZE=32 OUTPUT_FORMAT="elf32-hppa" -TEXT_START_ADDR=0x1000 -TARGET_PAGE_SIZE=0x1000 + +# other necessary defines, similar but not the same as linux. MAXPAGESIZE=0x1000 +ENTRY="__start" +MACHINE=hppa1.1 # We use 1.1 specific features. +OTHER_READONLY_SECTIONS=".PARISC.unwind ${RELOCATING-0} : { *(.PARISC.unwind) }" +DATA_NONEXEC_PLT= +GENERATE_SHLIB_SCRIPT=yes + +. ${srcdir}/emulparams/elf_obsd.sh + +#override elf_obsd.sh +DATA_START_SYMBOLS='PROVIDE ($global$ = .); __data_start = . ;' diff --git a/gnu/usr.bin/binutils-2.17/ld/emulparams/i386obsd.sh b/gnu/usr.bin/binutils-2.17/ld/emulparams/i386obsd.sh new file mode 100644 index 00000000000..88afe6b851d --- /dev/null +++ b/gnu/usr.bin/binutils-2.17/ld/emulparams/i386obsd.sh @@ -0,0 +1,8 @@ +SCRIPT_NAME=aout +TEXT_START_ADDR=0x1020 +OUTPUT_FORMAT="a.out-i386-netbsd" +TARGET_PAGE_SIZE=0x1000 +ARCH=i386 +EXECUTABLE_SYMBOLS='__DYNAMIC = 0;' + +LIB_PATH=/usr/lib diff --git a/gnu/usr.bin/binutils-2.17/ld/emulparams/m68kobsd.sh b/gnu/usr.bin/binutils-2.17/ld/emulparams/m68kobsd.sh new file mode 100644 index 00000000000..55f5b2d8c8c --- /dev/null +++ b/gnu/usr.bin/binutils-2.17/ld/emulparams/m68kobsd.sh @@ -0,0 +1,9 @@ +SCRIPT_NAME=aout +TEXT_START_ADDR=0x2020 +NONPAGED_TEXT_START_ADDR=0x2000 +OUTPUT_FORMAT="a.out-m68k-netbsd" +TARGET_PAGE_SIZE=0x2000 +ARCH=m68k +EXECUTABLE_SYMBOLS='__DYNAMIC = 0;' + +LIB_PATH=/usr/lib diff --git a/gnu/usr.bin/binutils-2.17/ld/emulparams/shelf_obsd.sh b/gnu/usr.bin/binutils-2.17/ld/emulparams/shelf_obsd.sh new file mode 100644 index 00000000000..03883ef4ab6 --- /dev/null +++ b/gnu/usr.bin/binutils-2.17/ld/emulparams/shelf_obsd.sh @@ -0,0 +1,16 @@ +# If you change this file, please alsolook at files which source this one: +# shlelf_obsd.sh + +. ${srcdir}/emulparams/shelf.sh +. ${srcdir}/emulparams/elf_obsd.sh + +OUTPUT_FORMAT="elf32-sh-obsd" +TEXT_START_ADDR=0x400000 +MAXPAGESIZE=0x10000 + +DATA_START_SYMBOLS='__data_start = . ;'; + +ENTRY=_start + +unset EMBEDDED +unset OTHER_SECTIONS diff --git a/gnu/usr.bin/binutils-2.17/ld/emulparams/shlelf_obsd.sh b/gnu/usr.bin/binutils-2.17/ld/emulparams/shlelf_obsd.sh new file mode 100644 index 00000000000..dfab67a2ca1 --- /dev/null +++ b/gnu/usr.bin/binutils-2.17/ld/emulparams/shlelf_obsd.sh @@ -0,0 +1,3 @@ +. ${srcdir}/emulparams/shelf_obsd.sh + +OUTPUT_FORMAT="elf32-shl-obsd" diff --git a/gnu/usr.bin/binutils-2.17/ld/emulparams/sparcobsd.sh b/gnu/usr.bin/binutils-2.17/ld/emulparams/sparcobsd.sh new file mode 100644 index 00000000000..a45fadc51b1 --- /dev/null +++ b/gnu/usr.bin/binutils-2.17/ld/emulparams/sparcobsd.sh @@ -0,0 +1,7 @@ +SCRIPT_NAME=aout +TEXT_START_ADDR=0x1020 +OUTPUT_FORMAT="a.out-sparc-netbsd" +TARGET_PAGE_SIZE=0x1000 +ARCH=sparc + +LIB_PATH=/usr/lib diff --git a/gnu/usr.bin/binutils-2.17/ld/emultempl/elf32.em b/gnu/usr.bin/binutils-2.17/ld/emultempl/elf32.em index 19259796053..f4fb443af93 100644 --- a/gnu/usr.bin/binutils-2.17/ld/emultempl/elf32.em +++ b/gnu/usr.bin/binutils-2.17/ld/emultempl/elf32.em @@ -77,6 +77,237 @@ EOF esac fi +case ${target} in + *-*-openbsd*) + cat >>e${EMULATION_NAME}.c <<EOF +#include <sys/types.h> +#include <dirent.h> + +/* Search a directory for a .so file. */ + +static char * gld${EMULATION_NAME}_search_dir_needed (const char *dirlist, const char *filename); + +static char * gld${EMULATION_NAME}_search_dir (const char *dirname, + const char *filename, int req_maj, int req_min); + +static char * gld${EMULATION_NAME}_split_lib_name (char *name, int *pmaj, + int *pmin); + +/* THIS FUNCTION MODIFIES THE name ARGUMENT string */ +static char * +gld${EMULATION_NAME}_split_lib_name (name, pmaj, pmin) + char *name; + int *pmaj, *pmin; +{ + char*eptr, *lib = name; + char *s; + int found_so = 0; + + *pmaj = -1; + *pmin = -1; + + if (strncmp(lib, "lib", 3) == 0) + lib += 3; + + s = lib; + while (found_so == 0) + { + s = strstr(s, ".so"); + + /* if .so not found, return not found, invalid lib name */ + if (s == NULL) + { + return NULL; + } + + /* if .so is at end of string, fine return with pmaj/pmin -1 */ + if (s[3] == '\0') + { + *s = '\0'; + return lib; + } + + if (s[3] == '.') + { + *s = '\0'; + found_so = 1; + } + /* skip over the ".so" */ + s += 3; + } + + + /* lib[name].so.[M].[N] */ + /* s ^ */ + s += 1; + + /* lib[name].so.[M].[N] */ + /* s ^ */ + *pmaj = strtoul (s, &eptr, 10); + + /* lib[name].so.[M]X... */ + /* eptr ^ */ + if (*eptr != '.' || s == eptr) + return NULL; /* invalid, must have minor */ + + s = eptr+1; + + /* lib[name].so.[M].[N] */ + /* s ^ */ + *pmin = strtoul (s, &eptr, 10); + + /* lib[name].so.[M].[N] */ + /* eptr ^ */ + if (*eptr != '\0' || s == eptr) + return NULL; /* minor must be last field of library */ + + return lib; +} + +static char * +gld${EMULATION_NAME}_search_dir_needed (dirlist, filename) + const char *dirlist; + const char *filename; +{ + char *dlist, *dlist_alloc, *dir; + char *fnam, *fnam_alloc, *lib; + char *found = NULL; + int maj = -1, min = -1; + + dlist_alloc = dlist = xstrdup(dirlist); + fnam_alloc = fnam = xstrdup(filename); + + lib = gld${EMULATION_NAME}_split_lib_name(fnam, &maj, &min); + + while (lib != NULL && found == NULL) + { + dir = strsep(&dlist, ":"); + if (dir == NULL) + break; + if (*dir == '\0') + continue; /* skip dirlist of ...::... */ + found = gld${EMULATION_NAME}_search_dir(dir, lib, maj, min); + } + + free(dlist_alloc); + free(fnam_alloc); + return found; +} + + +static char * +gld${EMULATION_NAME}_search_dir (dirname, filename, req_maj, req_min) + const char *dirname; + const char *filename; + int req_maj, req_min; +{ + const char *dot; + unsigned int len; + char *found; + int max_maj, max_min; + DIR *dir; + struct dirent *entry; + unsigned int dirnamelen; + char *full_path; + int statval; + struct stat st; + + dot = strchr (filename, '.'); + len = strlen (filename); + found = NULL; + max_maj = max_min = 0; + + dir = opendir (dirname); + if (dir == NULL) + return NULL; + dirnamelen = strlen (dirname); + + while ((entry = readdir (dir)) != NULL) + { + const char *s; + char *eptr, *eptr1; + int found_maj, found_min; + + if (strncmp (entry->d_name, "lib", 3) != 0 + || strncmp (entry->d_name + 3, filename, len) != 0) + continue; + + /* We accept libfoo.so without a version number, even though the + native linker does not. This is more convenient for packages + which just generate .so files for shared libraries, as on ELF + systems. */ + if (strncmp (entry->d_name + 3 + len, ".so", 3) != 0) + continue; + + if (entry->d_name[6 + len] == '\0') + ; + else if (entry->d_name[6 + len] == '.' + && ISDIGIT ((unsigned char) entry->d_name[7 + len])) + ; + else + continue; + + for (s = entry->d_name + 6 + len; *s != '\0'; s++) + if (*s != '.' && ! ISDIGIT ((unsigned char) *s)) + break; + if (*s != '\0') + continue; + + /* We've found a .so file. Work out the major and minor + version numbers. */ + found_maj = -1; + found_min = -1; + + /* do allow libN.so */ + if (entry->d_name[6 + len] == '.') { + found_maj = strtoul (entry->d_name + 7 + len, &eptr, 10); + + /* do not support libN.so. or libN.so.X */ + if (*eptr != '.' || ((entry->d_name + 3 + len) == eptr)) + continue; + + found_min = strtoul (eptr+1, &eptr1, 10); + + /* do not support libN.so.X. or libN.so.X.Y.[anything] */ + if (*eptr1 != '\0' || (eptr+1 == eptr1)) + continue; + } + + /* Make sure the file really exists (ignore broken symlinks). */ + full_path = xmalloc (dirnamelen + 1 + strlen (entry->d_name) + 1); + sprintf (full_path, "%s/%s", dirname, entry->d_name); + statval = stat (full_path, &st); + free (full_path); + if (statval != 0) + continue; + + /* We've found a match for the name we are searching for. See + if this is the version we should use. */ + if (((req_maj == -1) && (found == NULL + || (found_maj > max_maj) + || (found_maj == max_maj && (found_min > max_min)))) + || ((found_maj == req_maj) && (found_min >= req_min) + && (found_min > max_min))) + { + if (found != NULL) + free (found); + found = (char *) xmalloc (dirnamelen + strlen (entry->d_name) + 2); + sprintf (found, "%s/%s", dirname, entry->d_name); + max_maj = found_maj; + max_min = found_min; + } + } + + closedir (dir); + + return found; +} + +EOF + ;; +esac +cat >>e${EMULATION_NAME}.c <<EOF +EOF # Import any needed special functions and/or overrides. # if test -n "$EXTRA_EM_FILE" ; then @@ -301,7 +532,7 @@ gld${EMULATION_NAME}_try_needed (struct dt_needed *needed, { bfd *abfd; const char *name = needed->name; - const char *soname; + char *soname; int class; abfd = bfd_openr (name, bfd_get_target (output_bfd)); @@ -395,7 +626,7 @@ cat >>e${EMULATION_NAME}.c <<EOF einfo ("%F%P:%B: bfd_stat failed: %E\n", abfd); /* First strip off everything before the last '/'. */ - soname = lbasename (abfd->filename); + soname = xstrdup (lbasename (abfd->filename)); if (trace_file_tries) info_msg (_("found %s at %s\n"), soname, name); @@ -406,6 +637,7 @@ cat >>e${EMULATION_NAME}.c <<EOF { /* Return TRUE to indicate that we found the file, even though we aren't going to do anything with it. */ + free (soname); return TRUE; } @@ -452,6 +684,25 @@ gld${EMULATION_NAME}_search_needed (const char *path, return FALSE; needed.by = n->by; +EOF +case ${target} in + *-*-openbsd*) + cat >>e${EMULATION_NAME}.c <<EOF + + { + char *found; + if ((found = gld${EMULATION_NAME}_search_dir_needed(path, name)) != NULL) { + needed.name = found; + if (gld${EMULATION_NAME}_try_needed (&needed, force)) { + return TRUE; + } + free(found); + } + } + +EOF +esac +cat >>e${EMULATION_NAME}.c <<EOF needed.name = n->name; len = strlen (name); @@ -930,7 +1181,7 @@ gld${EMULATION_NAME}_after_open (void) rpath_link, rpath, then the environment variable LD_LIBRARY_PATH (native only), then the DT_RPATH/DT_RUNPATH entries (native only), then the linker script LIB_SEARCH_DIRS. - We do not search using the -L arguments. + We look at the -L arguments to build the search path. We search twice. The first time, we skip objects which may introduce version mismatches. The second time, we force @@ -942,7 +1193,7 @@ gld${EMULATION_NAME}_after_open (void) EOF if [ "x${NATIVE}" = xyes ] ; then cat >>e${EMULATION_NAME}.c <<EOF - const char *lib_path; + char *lib_path; EOF fi if [ "x${USE_LIBPATH}" = xyes ] ; then @@ -966,15 +1217,37 @@ EOF fi if [ "x${NATIVE}" = xyes ] ; then cat >>e${EMULATION_NAME}.c <<EOF - if (command_line.rpath_link == NULL + if (getenv ("LD_RUN_PATH") != NULL + && command_line.rpath_link == NULL && command_line.rpath == NULL) { - lib_path = (const char *) getenv ("LD_RUN_PATH"); - if (gld${EMULATION_NAME}_search_needed (lib_path, &n, - force)) + lib_path = getenv ("LD_RUN_PATH"); + if (gld${EMULATION_NAME}_search_needed (lib_path, &n, force)) break; } - lib_path = (const char *) getenv ("LD_LIBRARY_PATH"); + + len = strlen(search_head->name); + lib_path = xstrdup(search_head->name); + for (search = search_head->next; search != NULL; + search = search->next) + { + size_t nlen; + + nlen = strlen(search->name); + lib_path = xrealloc(lib_path, len + nlen + 2); + lib_path[len] = ':'; + strcpy(lib_path + len + 1, search->name); + len += nlen + 1; + } + + if (gld${EMULATION_NAME}_search_needed (lib_path, &n, force)) + { + free (lib_path); + break; + } + free (lib_path); + + lib_path = getenv ("LD_LIBRARY_PATH"); if (gld${EMULATION_NAME}_search_needed (lib_path, &n, force)) break; EOF @@ -1180,10 +1453,8 @@ ${ELF_INTERPRETER_SET_DEFAULT} { asection *s; bfd_size_type sz; - bfd_size_type prefix_len; char *msg; bfd_boolean ret; - const char * gnu_warning_prefix = _("warning: "); if (is->just_syms_flag) continue; @@ -1193,14 +1464,11 @@ ${ELF_INTERPRETER_SET_DEFAULT} continue; sz = s->size; - prefix_len = strlen (gnu_warning_prefix); - msg = xmalloc ((size_t) (prefix_len + sz + 1)); - strcpy (msg, gnu_warning_prefix); - if (! bfd_get_section_contents (is->the_bfd, s, msg + prefix_len, - (file_ptr) 0, sz)) + msg = xmalloc ((size_t) (sz + 1)); + if (! bfd_get_section_contents (is->the_bfd, s, msg, (file_ptr) 0, sz)) einfo ("%F%B: Can't read contents of section .gnu.warning: %E\n", is->the_bfd); - msg[prefix_len + sz] = '\0'; + msg[sz] = '\0'; ret = link_info.callbacks->warning (&link_info, msg, (const char *) NULL, is->the_bfd, (asection *) NULL, @@ -1246,6 +1514,17 @@ gld${EMULATION_NAME}_open_dynamic_archive filename = entry->filename; +EOF +case ${target} in + *-*-openbsd*) + cat >>e${EMULATION_NAME}.c <<EOF + string = gld${EMULATION_NAME}_search_dir(search->name, filename, -1, -1); + if (string == NULL) + return FALSE; +EOF + ;; + *) + cat >>e${EMULATION_NAME}.c <<EOF /* This allocates a few bytes too many when EXTRA_SHLIB_EXTENSION is defined, but it does not seem worth the headache to optimize away those two bytes of space. */ @@ -1259,6 +1538,10 @@ gld${EMULATION_NAME}_open_dynamic_archive sprintf (string, "%s/lib%s%s.so", search->name, filename, arch); +EOF + ;; +esac +cat >>e${EMULATION_NAME}.c <<EOF #ifdef EXTRA_SHLIB_EXTENSION /* Try the .so extension first. If that fails build a new filename using EXTRA_SHLIB_EXTENSION. */ @@ -1621,9 +1904,13 @@ echo ' ; else if (link_info.pie && link_info.combreloc' >> e${EMULATION_NAME}.c echo ' && link_info.relro' >> e${EMULATION_NAME}.c echo ' && (link_info.flags & DT_BIND_NOW)) return' >> e${EMULATION_NAME}.c sed $sc ldscripts/${EMULATION_NAME}.xdw >> e${EMULATION_NAME}.c +echo ' ; else if (link_info.pie && link_info.combreloc && config.data_bss_contig == TRUE) return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xdcz >> e${EMULATION_NAME}.c echo ' ; else if (link_info.pie && link_info.combreloc) return' >> e${EMULATION_NAME}.c sed $sc ldscripts/${EMULATION_NAME}.xdc >> e${EMULATION_NAME}.c fi +echo ' ; else if (link_info.pie && config.data_bss_contig == TRUE) return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xdz >> e${EMULATION_NAME}.c echo ' ; else if (link_info.pie) return' >> e${EMULATION_NAME}.c sed $sc ldscripts/${EMULATION_NAME}.xd >> e${EMULATION_NAME}.c fi @@ -1639,6 +1926,8 @@ fi echo ' ; else if (link_info.shared) return' >> e${EMULATION_NAME}.c sed $sc ldscripts/${EMULATION_NAME}.xs >> e${EMULATION_NAME}.c fi +echo ' ; else if (config.data_bss_contig == TRUE) return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xz >> e${EMULATION_NAME}.c if test -n "$GENERATE_COMBRELOC_SCRIPT" ; then echo ' ; else if (link_info.combreloc && link_info.relro' >> e${EMULATION_NAME}.c echo ' && (link_info.flags & DT_BIND_NOW)) return' >> e${EMULATION_NAME}.c @@ -1677,11 +1966,15 @@ cat >>e${EMULATION_NAME}.c <<EOF else if (link_info.pie && link_info.combreloc && link_info.relro && (link_info.flags & DT_BIND_NOW)) return "ldscripts/${EMULATION_NAME}.xdw"; + else if (link_info.pie && link_info.combreloc && config.data_bss_contig == TRUE) + return "ldscripts/${EMULATION_NAME}.xdcz"; else if (link_info.pie && link_info.combreloc) return "ldscripts/${EMULATION_NAME}.xdc"; EOF fi cat >>e${EMULATION_NAME}.c <<EOF + else if (link_info.pie && config.data_bss_contig == TRUE) + return "ldscripts/${EMULATION_NAME}.xdz"; else if (link_info.pie) return "ldscripts/${EMULATION_NAME}.xd"; EOF @@ -1701,6 +1994,10 @@ cat >>e${EMULATION_NAME}.c <<EOF return "ldscripts/${EMULATION_NAME}.xs"; EOF fi +cat >>e${EMULATION_NAME}.c <<EOF + else if (config.data_bss_contig == TRUE) + return "ldscripts/${EMULATION_NAME}.xz"; +EOF if test -n "$GENERATE_COMBRELOC_SCRIPT" ; then cat >>e${EMULATION_NAME}.c <<EOF else if (link_info.combreloc && link_info.relro diff --git a/gnu/usr.bin/binutils-2.17/ld/genscripts.sh b/gnu/usr.bin/binutils-2.17/ld/genscripts.sh index e9d4f153a7a..534916c1be1 100755 --- a/gnu/usr.bin/binutils-2.17/ld/genscripts.sh +++ b/gnu/usr.bin/binutils-2.17/ld/genscripts.sh @@ -181,16 +181,6 @@ if [ "x${LIB_PATH}" = "x" ] && [ "x${USE_LIBPATH}" = xyes ] ; then esac fi -# Always search $(tooldir)/lib, aka /usr/local/TARGET/lib, except for -# sysrooted configurations and when LIBPATH=":". -if [ "x${use_sysroot}" != "xyes" ] ; then - case :${LIB_PATH}: in - ::: | *:${tool_lib}:*) ;; - ::) LIB_PATH=${tool_lib} ;; - *) LIB_PATH=${tool_lib}:${LIB_PATH} ;; - esac -fi - LIB_SEARCH_DIRS=`echo ${LIB_PATH} | sed -e 's/:/ /g' -e 's/\([^ ][^ ]*\)/SEARCH_DIR(\\"\1\\");/g'` # We need it for testsuite. @@ -357,12 +347,33 @@ if test -n "$GENERATE_PIE_SCRIPT"; then . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc ) | sed -e '/^ *$/d;s/[ ]*$//' > ldscripts/${EMULATION_NAME}.xdw rm -f ${COMBRELOC} + LD_FLAG=Zcpie + ( echo "/* Script for -pie -z combreloc, -Z: position independent executable, combine & sort relocs, no PLT/GOT padding */" + . ${CUSTOMIZER_SCRIPT} ${EMULATION_NAME} + . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc + ) | sed -e '/^ *$/d;s/[ ]*$//' > ldscripts/${EMULATION_NAME}.xdcz + rm -f ${COMBRELOC} COMBRELOC= unset RELRO_NOW fi + LD_FLAG=Zpie + DATA_ALIGNMENT=${DATA_ALIGNMENT_sc-${DATA_ALIGNMENT}} + ( + echo "/* Script for ld -pie -Z: link position independent executable, no PLT/GOT padding */" + . ${CUSTOMIZER_SCRIPT} ${EMULATION_NAME} + . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc + ) | sed -e '/^ *$/d;s/[ ]*$//' > ldscripts/${EMULATION_NAME}.xdz unset CREATE_PIE fi +LD_FLAG=Z +DATA_ALIGNMENT=${DATA_ALIGNMENT_} +RELOCATING=" " +( echo "/* Script for -Z: traditional binaries with no PLT/GOT padding */" + . ${srcdir}/emulparams/${EMULATION_NAME}.sh + . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc +) | sed -e '/^ *$/d;s/[ ]*$//' > ldscripts/${EMULATION_NAME}.xz + case " $EMULATION_LIBPATH " in *" ${EMULATION_NAME} "*) COMPILE_IN=true;; esac diff --git a/gnu/usr.bin/binutils-2.17/ld/ld.h b/gnu/usr.bin/binutils-2.17/ld/ld.h index e1aa62cc6cf..bf4e50351a5 100644 --- a/gnu/usr.bin/binutils-2.17/ld/ld.h +++ b/gnu/usr.bin/binutils-2.17/ld/ld.h @@ -252,6 +252,10 @@ typedef struct { bfd_boolean text_read_only; + /* Classic ELF executable which has data and bss next to each + other with no padding for GOT/PLT. */ + bfd_boolean data_bss_contig; + char *map_filename; FILE *map_file; diff --git a/gnu/usr.bin/binutils-2.17/ld/ld.texinfo b/gnu/usr.bin/binutils-2.17/ld/ld.texinfo index 07bb0c3d93a..6d94f6cb33b 100644 --- a/gnu/usr.bin/binutils-2.17/ld/ld.texinfo +++ b/gnu/usr.bin/binutils-2.17/ld/ld.texinfo @@ -1011,6 +1011,11 @@ Create an ELF @code{PT_GNU_RELRO} segment header in the object. Other keywords are ignored for Solaris compatibility. +@kindex -Z +@item -Z +Produce 'Standard' executables, disables Writable XOR Executable features +in resulting binaries. + @kindex -( @cindex groups of archives @item -( @var{archives} -) diff --git a/gnu/usr.bin/binutils-2.17/ld/ldmain.c b/gnu/usr.bin/binutils-2.17/ld/ldmain.c index db87a40b6aa..e948d8b4560 100644 --- a/gnu/usr.bin/binutils-2.17/ld/ldmain.c +++ b/gnu/usr.bin/binutils-2.17/ld/ldmain.c @@ -323,6 +323,7 @@ main (int argc, char **argv) force_make_executable = FALSE; config.magic_demand_paged = TRUE; config.text_read_only = TRUE; + config.data_bss_contig = FALSE; emulation = get_emulation (argc, argv); ldemul_choose_mode (emulation); diff --git a/gnu/usr.bin/binutils-2.17/ld/lexsup.c b/gnu/usr.bin/binutils-2.17/ld/lexsup.c index c2bef1dd482..77c68667ebb 100644 --- a/gnu/usr.bin/binutils-2.17/ld/lexsup.c +++ b/gnu/usr.bin/binutils-2.17/ld/lexsup.c @@ -299,6 +299,9 @@ static const struct ld_option ld_options[] = { {NULL, required_argument, NULL, '\0'}, 'Y', N_("PATH"), N_("Default search path for Solaris compatibility"), ONE_DASH }, + { {"Zmagic", no_argument, NULL, 'Z'}, + 'Z', NULL, N_("Do not page align got/plt, old style executable"), + EXACTLY_TWO_DASHES }, { {"start-group", no_argument, NULL, '('}, '(', NULL, N_("Start a group"), TWO_DASHES }, { {"end-group", no_argument, NULL, ')'}, @@ -1280,6 +1283,9 @@ parse_args (unsigned argc, char **argv) case 'y': add_ysym (optarg); break; + case 'Z': + config.data_bss_contig = TRUE; + break; case OPTION_SPARE_DYNAMIC_TAGS: link_info.spare_dynamic_tags = strtoul (optarg, NULL, 0); break; diff --git a/gnu/usr.bin/binutils-2.17/opcodes/Makefile.am b/gnu/usr.bin/binutils-2.17/opcodes/Makefile.am index 57bdb4a716a..5b3e8edc713 100644 --- a/gnu/usr.bin/binutils-2.17/opcodes/Makefile.am +++ b/gnu/usr.bin/binutils-2.17/opcodes/Makefile.am @@ -582,17 +582,17 @@ dep.sed: dep-in.sed config.status dep: DEP sed -e '/^..DO NOT DELETE THIS LINE/,$$d' < Makefile > tmp-Makefile cat DEP >> tmp-Makefile - $(srcdir)/../move-if-change tmp-Makefile Makefile + $(SHELL) $(srcdir)/../move-if-change tmp-Makefile Makefile dep-in: DEP sed -e '/^..DO NOT DELETE THIS LINE/,$$d' < $(srcdir)/Makefile.in > tmp-Makefile.in cat DEP >> tmp-Makefile.in - $(srcdir)/../move-if-change tmp-Makefile.in $(srcdir)/Makefile.in + $(SHELL) $(srcdir)/../move-if-change tmp-Makefile.in $(srcdir)/Makefile.in dep-am: DEP sed -e '/^..DO NOT DELETE THIS LINE/,$$d' < $(srcdir)/Makefile.am > tmp-Makefile.am cat DEP >> tmp-Makefile.am - $(srcdir)/../move-if-change tmp-Makefile.am $(srcdir)/Makefile.am + $(SHELL) $(srcdir)/../move-if-change tmp-Makefile.am $(srcdir)/Makefile.am .PHONY: dep dep-in dep-am diff --git a/gnu/usr.bin/binutils-2.17/opcodes/Makefile.in b/gnu/usr.bin/binutils-2.17/opcodes/Makefile.in index 78faab920ae..081433a2330 100644 --- a/gnu/usr.bin/binutils-2.17/opcodes/Makefile.in +++ b/gnu/usr.bin/binutils-2.17/opcodes/Makefile.in @@ -1124,17 +1124,17 @@ dep.sed: dep-in.sed config.status dep: DEP sed -e '/^..DO NOT DELETE THIS LINE/,$$d' < Makefile > tmp-Makefile cat DEP >> tmp-Makefile - $(srcdir)/../move-if-change tmp-Makefile Makefile + $(SHELL) $(srcdir)/../move-if-change tmp-Makefile Makefile dep-in: DEP sed -e '/^..DO NOT DELETE THIS LINE/,$$d' < $(srcdir)/Makefile.in > tmp-Makefile.in cat DEP >> tmp-Makefile.in - $(srcdir)/../move-if-change tmp-Makefile.in $(srcdir)/Makefile.in + $(SHELL) $(srcdir)/../move-if-change tmp-Makefile.in $(srcdir)/Makefile.in dep-am: DEP sed -e '/^..DO NOT DELETE THIS LINE/,$$d' < $(srcdir)/Makefile.am > tmp-Makefile.am cat DEP >> tmp-Makefile.am - $(srcdir)/../move-if-change tmp-Makefile.am $(srcdir)/Makefile.am + $(SHELL) $(srcdir)/../move-if-change tmp-Makefile.am $(srcdir)/Makefile.am .PHONY: dep dep-in dep-am diff --git a/gnu/usr.bin/binutils-2.17/opcodes/i386-dis.c b/gnu/usr.bin/binutils-2.17/opcodes/i386-dis.c index f73e883e779..ce8cc2e6894 100644 --- a/gnu/usr.bin/binutils-2.17/opcodes/i386-dis.c +++ b/gnu/usr.bin/binutils-2.17/opcodes/i386-dis.c @@ -102,6 +102,7 @@ static void BadOp (void); static void SEG_Fixup (int, int); static void VMX_Fixup (int, int); static void REP_Fixup (int, int); +static void OP_0f3a (int, int); struct dis_private { /* Points to first byte not fetched. */ @@ -314,6 +315,7 @@ fetch_data (struct disassemble_info *info, bfd_byte *addr) #define VM OP_VMX, q_mode #define OPSUF OP_3DNowSuffix, 0 #define OPSIMD OP_SIMD_Suffix, 0 +#define OP0F3A OP_0f3a, 0 /* Used handle "rep" prefix for string instructions. */ #define Xbr REP_Fixup, eSI_reg @@ -1762,9 +1764,10 @@ static const struct dis386 x86_64_table[][2] = { }, }; -static const struct dis386 three_byte_table[][32] = { +static const struct dis386 three_byte_table[][256] = { /* THREE_BYTE_0 */ { + /* 00 */ { "pshufb", MX, EM, XX }, { "phaddw", MX, EM, XX }, { "phaddd", MX, EM, XX }, @@ -1781,6 +1784,7 @@ static const struct dis386 three_byte_table[][32] = { { "(bad)", XX, XX, XX }, { "(bad)", XX, XX, XX }, { "(bad)", XX, XX, XX }, + /* 10 */ { "(bad)", XX, XX, XX }, { "(bad)", XX, XX, XX }, { "(bad)", XX, XX, XX }, @@ -1796,10 +1800,249 @@ static const struct dis386 three_byte_table[][32] = { { "pabsb", MX, EM, XX }, { "pabsw", MX, EM, XX }, { "pabsd", MX, EM, XX }, + { "(bad)", XX, XX, XX }, + /* 20 */ + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + /* 30 */ + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + /* 40 */ + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + /* 50 */ + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + /* 60 */ + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + /* 70 */ + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + /* 80 */ + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + /* 90 */ + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + /* a0 */ + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + /* b0 */ + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + /* c0 */ + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + /* d0 */ + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "aesimc", XM, XM, XX }, + { "aesenc", XM, XM, XX }, + { "aesdec", XM, XM, XX }, + { "aesenclast", XM, XM, XX }, + { "aesdeclast", XM, XM, XX }, + /* e0 */ + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + /* f0 */ + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, { "(bad)", XX, XX, XX } }, /* THREE_BYTE_1 */ { + /* 00 */ { "(bad)", XX, XX, XX }, { "(bad)", XX, XX, XX }, { "(bad)", XX, XX, XX }, @@ -1816,6 +2059,245 @@ static const struct dis386 three_byte_table[][32] = { { "(bad)", XX, XX, XX }, { "(bad)", XX, XX, XX }, { "palignr", MX, EM, Ib }, + /* 10 */ + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + /* 20 */ + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + /* 30 */ + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + /* 40 */ + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "", OP0F3A, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + /* 50 */ + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + /* 60 */ + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + /* 70 */ + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + /* 80 */ + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + /* 90 */ + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + /* a0 */ + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + /* b0 */ + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + /* c0 */ + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + /* d0 */ + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "", OP0F3A, XX, XX }, + /* e0 */ + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + { "(bad)", XX, XX, XX }, + /* f0 */ { "(bad)", XX, XX, XX }, { "(bad)", XX, XX, XX }, { "(bad)", XX, XX, XX }, @@ -4859,3 +5341,94 @@ REP_Fixup (int bytemode, int sizeflag) break; } } + +#define XMM_DST(rex, modrm) \ + (((((rex) & ~0x40) & 0x4) ? 8 : 0) | (((modrm) & ~0xc0) >> 3)) +#define XMM_SRC(rex, modrm) \ + (((((rex) & ~0x40) & 0x1) ? 8 : 0) | (((modrm) & ~0xc0) & 7)) + +static struct { + unsigned char opc; + char *name; +} pclmul[] = { + { 0x00, "pclmullqlqdq" }, + { 0x01, "pclmulhqlqdq" }, + { 0x10, "pclmullqhqdq" }, + { 0x11, "pclmulhqhqdq" }, +}; + +static void +OP_0f3a (bytemode, sizeflag) + int bytemode ATTRIBUTE_UNUSED; + int sizeflag ATTRIBUTE_UNUSED; +{ + const char *mnemonic = NULL; + unsigned int i, xmms; + unsigned char op, imm; + + FETCH_DATA (the_info, codep + 1); + obufp = obuf + strlen (obuf); + + op = *codep; + codep++; + + FETCH_DATA (the_info, codep + 1); + + /* save xmm pair */ + xmms = XMM_DST (rex, *codep) << 8; + xmms |= XMM_SRC (rex, *codep); + codep++; + + /* save immediate field */ + FETCH_DATA (the_info, codep + 2); + imm = *codep; + codep++; + + if (op != 0x44 && op != 0xdf) + { + BadOp(); + return; + } + + switch (op) + { + case 0x44: + for (i = 0; i < sizeof(pclmul) / sizeof(pclmul[0]); i++) + if (pclmul[i].opc == imm) + mnemonic = pclmul[i].name; + + if (!mnemonic) + { + oappend ("pclmulqdq"); + sprintf (scratchbuf, " $%#x,", imm); + oappend (scratchbuf); + } + else + { + oappend (mnemonic); + oappend (" "); + } + break; + case 0xdf: + oappend ("aeskeygenassist "); + sprintf (scratchbuf, " $%#x,", imm); + oappend (scratchbuf); + break; + } + + sprintf (scratchbuf, "%%xmm%d,", xmms & 0xff); + oappend (scratchbuf); + sprintf (scratchbuf, "%%xmm%d", xmms >> 8); + oappend (scratchbuf); + + used_prefixes |= (prefixes & PREFIX_DATA); + USED_REX(rex); +} + +static void +BadOp (void) +{ + /* Throw away prefixes and 1st. opcode byte. */ + codep = insn_codep + 1; + oappend ("(bad)"); +} diff --git a/gnu/usr.bin/binutils-2.17/opcodes/mips-opc.c b/gnu/usr.bin/binutils-2.17/opcodes/mips-opc.c index cd92a9fe217..7bfc5824141 100644 --- a/gnu/usr.bin/binutils-2.17/opcodes/mips-opc.c +++ b/gnu/usr.bin/binutils-2.17/opcodes/mips-opc.c @@ -647,8 +647,10 @@ const struct mips_opcode mips_builtin_opcodes[] = {"flushid", "", 0xbc030000, 0xffffffff, 0, 0, L1 }, {"hibernate","", 0x42000023, 0xffffffff, 0, 0, V1 }, {"ins", "t,r,+A,+B", 0x7c000004, 0xfc00003f, WR_t|RD_s, 0, I33 }, +{"jr", "s", 0, (int) M_JR_S, INSN_MACRO, I1 }, {"jr", "s", 0x00000008, 0xfc1fffff, UBD|RD_s, 0, I1 }, {"jr.hb", "s", 0x00000408, 0xfc1fffff, UBD|RD_s, 0, I33 }, +{"j", "s", 0, (int) M_J_S, INSN_MACRO, I1 }, {"j", "s", 0x00000008, 0xfc1fffff, UBD|RD_s, 0, I1 }, /* jr */ /* SVR4 PIC code requires special handling for j, so it must be a macro. */ @@ -657,7 +659,9 @@ const struct mips_opcode mips_builtin_opcodes[] = assembler, but will never match user input (because the line above will match first). */ {"j", "a", 0x08000000, 0xfc000000, UBD, 0, I1 }, +{"jalr", "s", 0, (int) M_JALR_S, INSN_MACRO, I1 }, {"jalr", "s", 0x0000f809, 0xfc1fffff, UBD|RD_s|WR_d, 0, I1 }, +{"jalr", "d,s", 0, (int) M_JALR_DS, INSN_MACRO, I1 }, {"jalr", "d,s", 0x00000009, 0xfc1f07ff, UBD|RD_s|WR_d, 0, I1 }, {"jalr.hb", "s", 0x0000fc09, 0xfc1fffff, UBD|RD_s|WR_d, 0, I33 }, {"jalr.hb", "d,s", 0x00000409, 0xfc1f07ff, UBD|RD_s|WR_d, 0, I33 }, |