Date: Sun, 9 Jan 2011 11:52:23 +0000 (UTC) From: Dimitry Andric <dim@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r217190 - in projects/binutils-2.17: . bin/sh contrib/top etc/defaults gnu/lib/libgcc gnu/lib/libgomp gnu/usr.bin/binutils gnu/usr.bin/binutils/ld gnu/usr.bin/binutils/libbfd gnu/usr.bi... Message-ID: <201101091152.p09BqN09041419@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: dim Date: Sun Jan 9 11:52:23 2011 New Revision: 217190 URL: http://svn.freebsd.org/changeset/base/217190 Log: Sync: merge r217119 through r217189 from ^/head. Added: projects/binutils-2.17/sys/x86/include/_inttypes.h - copied unchanged from r217189, head/sys/x86/include/_inttypes.h projects/binutils-2.17/tools/regression/bin/sh/builtins/exit2.8 - copied unchanged from r217189, head/tools/regression/bin/sh/builtins/exit2.8 projects/binutils-2.17/tools/regression/bin/sh/builtins/exit3.0 - copied unchanged from r217189, head/tools/regression/bin/sh/builtins/exit3.0 projects/binutils-2.17/tools/regression/usr.bin/sed/inplace_race.t - copied unchanged from r217189, head/tools/regression/usr.bin/sed/inplace_race.t Modified: projects/binutils-2.17/Makefile projects/binutils-2.17/Makefile.inc1 projects/binutils-2.17/Makefile.mips projects/binutils-2.17/bin/sh/main.c projects/binutils-2.17/bin/sh/trap.c projects/binutils-2.17/bin/sh/trap.h projects/binutils-2.17/etc/defaults/rc.conf projects/binutils-2.17/gnu/lib/libgcc/Makefile projects/binutils-2.17/gnu/lib/libgomp/Makefile projects/binutils-2.17/gnu/usr.bin/binutils/Makefile.inc0 projects/binutils-2.17/gnu/usr.bin/binutils/ld/Makefile.mips projects/binutils-2.17/gnu/usr.bin/binutils/libbfd/Makefile.mips projects/binutils-2.17/gnu/usr.bin/cc/Makefile.inc projects/binutils-2.17/gnu/usr.bin/cc/Makefile.tgt projects/binutils-2.17/gnu/usr.bin/gdb/Makefile.inc projects/binutils-2.17/gnu/usr.bin/gdb/libgdb/Makefile projects/binutils-2.17/lib/libc/Makefile projects/binutils-2.17/lib/libc/gen/Symbol.map projects/binutils-2.17/lib/libc/gen/dlfcn.c projects/binutils-2.17/lib/libc/gen/elf_utils.c projects/binutils-2.17/lib/libc/net/hesiod.c projects/binutils-2.17/lib/libc/stdlib/realpath.c projects/binutils-2.17/libexec/rtld-elf/Symbol.map projects/binutils-2.17/libexec/rtld-elf/map_object.c projects/binutils-2.17/libexec/rtld-elf/rtld.c projects/binutils-2.17/libexec/rtld-elf/rtld.h projects/binutils-2.17/share/man/man4/tcp.4 projects/binutils-2.17/share/man/man5/rc.conf.5 projects/binutils-2.17/share/mk/bsd.endian.mk projects/binutils-2.17/share/mk/sys.mk projects/binutils-2.17/sys/amd64/amd64/elf_machdep.c projects/binutils-2.17/sys/amd64/amd64/machdep.c projects/binutils-2.17/sys/amd64/ia32/ia32_signal.c projects/binutils-2.17/sys/amd64/include/_inttypes.h projects/binutils-2.17/sys/amd64/include/_limits.h projects/binutils-2.17/sys/amd64/include/_stdint.h projects/binutils-2.17/sys/amd64/include/vmparam.h projects/binutils-2.17/sys/arm/include/_limits.h projects/binutils-2.17/sys/arm/include/_stdint.h projects/binutils-2.17/sys/arm/include/_types.h projects/binutils-2.17/sys/compat/freebsd32/freebsd32_misc.c projects/binutils-2.17/sys/compat/ia32/ia32_sysvec.c projects/binutils-2.17/sys/compat/ia32/ia32_util.h projects/binutils-2.17/sys/dev/ixgbe/ixgbe.c projects/binutils-2.17/sys/dev/ixgbe/ixgbe.h projects/binutils-2.17/sys/dev/ixgbe/ixv.h projects/binutils-2.17/sys/fs/nfsserver/nfs_nfsdport.c projects/binutils-2.17/sys/i386/include/_inttypes.h projects/binutils-2.17/sys/i386/include/_limits.h projects/binutils-2.17/sys/i386/include/_stdint.h projects/binutils-2.17/sys/i386/include/_types.h projects/binutils-2.17/sys/ia64/include/_limits.h projects/binutils-2.17/sys/ia64/include/_stdint.h projects/binutils-2.17/sys/ia64/include/float.h projects/binutils-2.17/sys/kern/imgact_elf.c projects/binutils-2.17/sys/kern/kern_exec.c projects/binutils-2.17/sys/kern/kern_timeout.c projects/binutils-2.17/sys/kern/vfs_mountroot.c projects/binutils-2.17/sys/mips/atheros/ar91xxreg.h projects/binutils-2.17/sys/mips/include/_inttypes.h projects/binutils-2.17/sys/mips/include/_limits.h projects/binutils-2.17/sys/mips/include/_stdint.h projects/binutils-2.17/sys/mips/include/_types.h projects/binutils-2.17/sys/netinet/if_ether.c projects/binutils-2.17/sys/netinet/in_pcb.c projects/binutils-2.17/sys/netinet/tcp_input.c projects/binutils-2.17/sys/netinet/tcp_lro.c projects/binutils-2.17/sys/netinet/tcp_lro.h projects/binutils-2.17/sys/netinet/tcp_reass.c projects/binutils-2.17/sys/netinet/tcp_syncache.h projects/binutils-2.17/sys/netinet/tcp_timer.c projects/binutils-2.17/sys/netinet/tcp_usrreq.c projects/binutils-2.17/sys/netinet/tcp_var.h projects/binutils-2.17/sys/netinet/udp.h projects/binutils-2.17/sys/netinet/udp_var.h projects/binutils-2.17/sys/netsmb/smb_dev.h projects/binutils-2.17/sys/netsmb/smb_subr.c projects/binutils-2.17/sys/netsmb/smb_subr.h projects/binutils-2.17/sys/pc98/include/_inttypes.h projects/binutils-2.17/sys/powerpc/include/_inttypes.h projects/binutils-2.17/sys/powerpc/include/_limits.h projects/binutils-2.17/sys/powerpc/include/_stdint.h projects/binutils-2.17/sys/powerpc/include/_types.h projects/binutils-2.17/sys/powerpc/include/float.h projects/binutils-2.17/sys/sparc64/include/_limits.h projects/binutils-2.17/sys/sparc64/include/_stdint.h projects/binutils-2.17/sys/sparc64/include/float.h projects/binutils-2.17/sys/sun4v/include/_limits.h projects/binutils-2.17/sys/sun4v/include/_stdint.h projects/binutils-2.17/sys/sun4v/include/float.h projects/binutils-2.17/sys/sys/cdefs.h projects/binutils-2.17/sys/sys/imgact.h projects/binutils-2.17/sys/sys/link_elf.h projects/binutils-2.17/sys/sys/sysent.h projects/binutils-2.17/sys/vm/vm_page.c projects/binutils-2.17/tools/regression/usr.bin/sed/Makefile projects/binutils-2.17/usr.bin/sed/main.c projects/binutils-2.17/usr.bin/xlint/Makefile.inc projects/binutils-2.17/usr.sbin/Makefile.mips projects/binutils-2.17/usr.sbin/cpucontrol/cpucontrol.c projects/binutils-2.17/usr.sbin/ndp/ndp.c projects/binutils-2.17/usr.sbin/pc-sysinstall/backend-query/disk-part.sh projects/binutils-2.17/usr.sbin/pc-sysinstall/backend-query/send-logs.sh projects/binutils-2.17/usr.sbin/pc-sysinstall/backend/functions-cleanup.sh projects/binutils-2.17/usr.sbin/pc-sysinstall/backend/functions-disk.sh projects/binutils-2.17/usr.sbin/pc-sysinstall/backend/functions-networking.sh Directory Properties: projects/binutils-2.17/ (props changed) projects/binutils-2.17/cddl/contrib/opensolaris/ (props changed) projects/binutils-2.17/contrib/bind9/ (props changed) projects/binutils-2.17/contrib/binutils/ (props changed) projects/binutils-2.17/contrib/bzip2/ (props changed) projects/binutils-2.17/contrib/ee/ (props changed) projects/binutils-2.17/contrib/expat/ (props changed) projects/binutils-2.17/contrib/file/ (props changed) projects/binutils-2.17/contrib/gdb/ (props changed) projects/binutils-2.17/contrib/gdtoa/ (props changed) projects/binutils-2.17/contrib/gnu-sort/ (props changed) projects/binutils-2.17/contrib/groff/ (props changed) projects/binutils-2.17/contrib/less/ (props changed) projects/binutils-2.17/contrib/libpcap/ (props changed) projects/binutils-2.17/contrib/llvm/ (props changed) projects/binutils-2.17/contrib/llvm/tools/clang/ (props changed) projects/binutils-2.17/contrib/ncurses/ (props changed) projects/binutils-2.17/contrib/netcat/ (props changed) projects/binutils-2.17/contrib/ntp/ (props changed) projects/binutils-2.17/contrib/one-true-awk/ (props changed) projects/binutils-2.17/contrib/openbsm/ (props changed) projects/binutils-2.17/contrib/openpam/ (props changed) projects/binutils-2.17/contrib/pf/ (props changed) projects/binutils-2.17/contrib/sendmail/ (props changed) projects/binutils-2.17/contrib/tcpdump/ (props changed) projects/binutils-2.17/contrib/tcsh/ (props changed) projects/binutils-2.17/contrib/top/ (props changed) projects/binutils-2.17/contrib/top/install-sh (props changed) projects/binutils-2.17/contrib/tzcode/stdtime/ (props changed) projects/binutils-2.17/contrib/tzcode/zic/ (props changed) projects/binutils-2.17/contrib/tzdata/ (props changed) projects/binutils-2.17/contrib/wpa/ (props changed) projects/binutils-2.17/contrib/xz/ (props changed) projects/binutils-2.17/crypto/openssh/ (props changed) projects/binutils-2.17/crypto/openssl/ (props changed) projects/binutils-2.17/lib/libc/ (props changed) projects/binutils-2.17/lib/libc/stdtime/ (props changed) projects/binutils-2.17/lib/libutil/ (props changed) projects/binutils-2.17/lib/libz/ (props changed) projects/binutils-2.17/sbin/ (props changed) projects/binutils-2.17/sbin/ipfw/ (props changed) projects/binutils-2.17/share/mk/bsd.arch.inc.mk (props changed) projects/binutils-2.17/share/zoneinfo/ (props changed) projects/binutils-2.17/sys/ (props changed) projects/binutils-2.17/sys/amd64/include/xen/ (props changed) projects/binutils-2.17/sys/cddl/contrib/opensolaris/ (props changed) projects/binutils-2.17/sys/contrib/dev/acpica/ (props changed) projects/binutils-2.17/sys/contrib/octeon-sdk/ (props changed) projects/binutils-2.17/sys/contrib/pf/ (props changed) projects/binutils-2.17/sys/contrib/x86emu/ (props changed) projects/binutils-2.17/usr.bin/calendar/ (props changed) projects/binutils-2.17/usr.bin/csup/ (props changed) projects/binutils-2.17/usr.bin/procstat/ (props changed) projects/binutils-2.17/usr.sbin/zic/ (props changed) Modified: projects/binutils-2.17/Makefile ============================================================================== --- projects/binutils-2.17/Makefile Sun Jan 9 11:27:06 2011 (r217189) +++ projects/binutils-2.17/Makefile Sun Jan 9 11:52:23 2011 (r217190) @@ -26,6 +26,7 @@ # delete-old-dirs - Delete obsolete directories. # delete-old-files - Delete obsolete files. # delete-old-libs - Delete obsolete libraries. +# targets - Print a list of supported TARGET/TARGET_ARCH pairs. # # This makefile is simple by design. The FreeBSD make automatically reads # the /usr/share/mk/sys.mk unless the -m argument is specified on the @@ -280,10 +281,10 @@ tinderbox: # with a reasonable chance of success, regardless of how old your # existing system is. # -.if make(universe) || make(universe_kernels) || make(tinderbox) +.if make(universe) || make(universe_kernels) || make(tinderbox) || make(targets) TARGETS?=amd64 arm i386 ia64 mips pc98 powerpc sparc64 sun4v TARGET_ARCHES_arm?= arm armeb -TARGET_ARCHES_mips?= mipsel mipseb +TARGET_ARCHES_mips?= mipsel mipseb mips64el mips64eb TARGET_ARCHES_powerpc?= powerpc powerpc64 TARGET_ARCHES_pc98?= i386 TARGET_ARCHES_sun4v?= sparc64 @@ -291,6 +292,14 @@ TARGET_ARCHES_sun4v?= sparc64 TARGET_ARCHES_${target}?= ${target} .endfor +targets: + @echo "Supported TARGET/TARGET_ARCH pairs" +.for target in ${TARGETS} +.for target_arch in ${TARGET_ARCHES_${target}} + @echo " ${target}/${target_arch}" +.endfor +.endfor + .if defined(DOING_TINDERBOX) FAILFILE=tinderbox.failed MAKEFAIL=tee -a ${FAILFILE} Modified: projects/binutils-2.17/Makefile.inc1 ============================================================================== --- projects/binutils-2.17/Makefile.inc1 Sun Jan 9 11:27:06 2011 (r217189) +++ projects/binutils-2.17/Makefile.inc1 Sun Jan 9 11:52:23 2011 (r217190) @@ -121,7 +121,7 @@ VERSION+= ${OSRELDATE} TARGET_ARCH= ${TARGET:S/pc98/i386/:S/sun4v/sparc64/:S/mips/mipsel/} .elif !defined(TARGET) && defined(TARGET_ARCH) && \ ${TARGET_ARCH} != ${MACHINE_ARCH} -TARGET= ${TARGET_ARCH:C/mipse[lb]/mips/:C/armeb/arm/} +TARGET= ${TARGET_ARCH:C/mips.*e[lb]/mips/:C/armeb/arm/} .endif # Legacy names, for a transition period mips:mips -> mipsel:mips .if defined(TARGET) && defined(TARGET_ARCH) && \ @@ -142,7 +142,7 @@ TARGET_ARCH=armeb TARGET?= ${MACHINE} TARGET_ARCH?= ${MACHINE_ARCH} -KNOWN_ARCHES?= amd64 arm armeb/arm i386 i386/pc98 ia64 mipsel/mips mipseb/mips powerpc powerpc64/powerpc sparc64 sparc64/sun4v +KNOWN_ARCHES?= amd64 arm armeb/arm i386 i386/pc98 ia64 mipsel/mips mipseb/mips mips64el/mips mips64eb/mips mipsn32el/mips mipsn32eb/mips powerpc powerpc64/powerpc sparc64 sparc64/sun4v .if ${TARGET} == ${TARGET_ARCH} _t= ${TARGET} .else Modified: projects/binutils-2.17/Makefile.mips ============================================================================== --- projects/binutils-2.17/Makefile.mips Sun Jan 9 11:27:06 2011 (r217189) +++ projects/binutils-2.17/Makefile.mips Sun Jan 9 11:52:23 2011 (r217190) @@ -1,5 +1,5 @@ # $FreeBSD$ -.if defined(TARGET_ABI) && ${TARGET_ABI} == "n64" +.if ${MACHINE_ARCH} != "mipsel" && ${MACHINE_ARCH} != "mipseb" MK_RESCUE=no .endif Modified: projects/binutils-2.17/bin/sh/main.c ============================================================================== --- projects/binutils-2.17/bin/sh/main.c Sun Jan 9 11:27:06 2011 (r217189) +++ projects/binutils-2.17/bin/sh/main.c Sun Jan 9 11:52:23 2011 (r217190) @@ -341,10 +341,7 @@ exitcmd(int argc, char **argv) if (stoppedjobs()) return 0; if (argc > 1) - exitstatus = number(argv[1]); + exitshell(number(argv[1])); else - exitstatus = oexitstatus; - exitshell(exitstatus); - /*NOTREACHED*/ - return 0; + exitshell_savedstatus(); } Modified: projects/binutils-2.17/bin/sh/trap.c ============================================================================== --- projects/binutils-2.17/bin/sh/trap.c Sun Jan 9 11:27:06 2011 (r217189) +++ projects/binutils-2.17/bin/sh/trap.c Sun Jan 9 11:52:23 2011 (r217190) @@ -80,6 +80,9 @@ static volatile sig_atomic_t gotsig[NSIG static int ignore_sigchld; /* Used while handling SIGCHLD traps. */ volatile sig_atomic_t gotwinch; +static int exiting; /* exitshell() has been called */ +static int exiting_exitstatus; /* value passed to exitshell() */ + static int getsigaction(int, sig_t *); @@ -478,10 +481,21 @@ setinteractive(int on) void exitshell(int status) { + TRACE(("exitshell(%d) pid=%d\n", status, getpid())); + exiting = 1; + exiting_exitstatus = status; + exitshell_savedstatus(); +} + +void +exitshell_savedstatus(void) +{ struct jmploc loc1, loc2; char *p; - TRACE(("exitshell(%d) pid=%d\n", status, getpid())); + if (!exiting) + exiting_exitstatus = oexitstatus; + exitstatus = oexitstatus = exiting_exitstatus; if (setjmp(loc1.loc)) { goto l1; } @@ -498,5 +512,5 @@ l1: handler = &loc2; /* probably unn #if JOBS setjobctl(0); #endif -l2: _exit(status); +l2: _exit(exiting_exitstatus); } Modified: projects/binutils-2.17/bin/sh/trap.h ============================================================================== --- projects/binutils-2.17/bin/sh/trap.h Sun Jan 9 11:27:06 2011 (r217189) +++ projects/binutils-2.17/bin/sh/trap.h Sun Jan 9 11:52:23 2011 (r217190) @@ -46,3 +46,4 @@ void onsig(int); void dotrap(void); void setinteractive(int); void exitshell(int) __dead2; +void exitshell_savedstatus(void) __dead2; Modified: projects/binutils-2.17/etc/defaults/rc.conf ============================================================================== --- projects/binutils-2.17/etc/defaults/rc.conf Sun Jan 9 11:27:06 2011 (r217189) +++ projects/binutils-2.17/etc/defaults/rc.conf Sun Jan 9 11:52:23 2011 (r217190) @@ -89,7 +89,7 @@ fsck_y_enable="NO" # Set to YES to do fs fsck_y_flags="" # Additional flags for fsck -y background_fsck="YES" # Attempt to run fsck in the background where possible. background_fsck_delay="60" # Time to wait (seconds) before starting the fsck. -netfs_types="nfs:NFS nfs4:NFS4 smbfs:SMB portalfs:PORTAL nwfs:NWFS" # Net filesystems. +netfs_types="nfs:NFS newnfs:NEWNFS smbfs:SMB portalfs:PORTAL nwfs:NWFS" # Net filesystems. extra_netfs_types="NO" # List of network extra filesystem types for delayed # mount at startup (or NO). Modified: projects/binutils-2.17/gnu/lib/libgcc/Makefile ============================================================================== --- projects/binutils-2.17/gnu/lib/libgcc/Makefile Sun Jan 9 11:27:06 2011 (r217189) +++ projects/binutils-2.17/gnu/lib/libgcc/Makefile Sun Jan 9 11:52:23 2011 (r217190) @@ -119,9 +119,10 @@ LIB2FUNCS_EXTRA = floatunsidf.c floatuns # _fixsfsi _fixunssfsi _floatdidf _floatdisf .endif -.if ${TARGET_CPUARCH} == "mips" +.if ${TARGET_CPUARCH} == mips LIB2FUNCS_EXTRA = floatunsidf.c floatunsisf.c -.if defined(TARGET_ABI) && ${TARGET_ABI} != "o32" +# XXX do we need n32 here? +.if ${TARGET_ARCH:Mmips64*} != "" LIB2FUNCS_EXTRA+= floatdidf.c fixunsdfsi.c LIB2FUNCS_EXTRA+= floatdisf.c floatundidf.c LIB2FUNCS_EXTRA+= fixsfdi.c floatundisf.c Modified: projects/binutils-2.17/gnu/lib/libgomp/Makefile ============================================================================== --- projects/binutils-2.17/gnu/lib/libgomp/Makefile Sun Jan 9 11:27:06 2011 (r217189) +++ projects/binutils-2.17/gnu/lib/libgomp/Makefile Sun Jan 9 11:52:23 2011 (r217190) @@ -25,8 +25,7 @@ VERSION_MAP= ${SRCDIR}/libgomp.map # Target-specific OpenMP configuration .if ${MACHINE_CPUARCH} == arm || ${MACHINE_CPUARCH} == i386 || \ ${MACHINE_ARCH} == powerpc || \ - (${MACHINE_CPUARCH} == mips && \ - (!defined(TARGET_ABI) || ${TARGET_ABI} != "n64")) + ${MACHINE_ARCH} == mipsel || ${MACHINE_ARCH} == mipseb OMP_LOCK_ALIGN = 4 OMP_LOCK_KIND= 4 OMP_LOCK_SIZE= 4 Modified: projects/binutils-2.17/gnu/usr.bin/binutils/Makefile.inc0 ============================================================================== --- projects/binutils-2.17/gnu/usr.bin/binutils/Makefile.inc0 Sun Jan 9 11:27:06 2011 (r217189) +++ projects/binutils-2.17/gnu/usr.bin/binutils/Makefile.inc0 Sun Jan 9 11:52:23 2011 (r217190) @@ -7,7 +7,7 @@ VERSION= "2.17.50 [FreeBSD] 2007-07-03" .if defined(TARGET_ARCH) -TARGET_CPUARCH=${TARGET_ARCH:C/mipse[bl]/mips/:C/armeb/arm/:C/powerpc64/powerpc/} +TARGET_CPUARCH=${TARGET_ARCH:C/mips.*e[bl]/mips/:C/armeb/arm/:C/powerpc64/powerpc/} .else TARGET_CPUARCH=${MACHINE_CPUARCH} .endif @@ -16,7 +16,7 @@ TARGET_VENDOR?= unknown TARGET_OS?= freebsd BINUTILS_ARCH=${TARGET_ARCH:C/amd64/x86_64/} TARGET_TUPLE?= ${BINUTILS_ARCH}-${TARGET_VENDOR}-${TARGET_OS} -.if ${TARGET_ARCH} == "armeb" || ${TARGET_ARCH} == "mipseb" +.if ${TARGET_ARCH} == "armeb" || ${TARGET_ARCH:Mmips*eb} != "" TARGET_BIG_ENDIAN=t .endif @@ -30,8 +30,7 @@ SRCDIR= ${.CURDIR}/${RELSRC} .if ${TARGET_CPUARCH} == "arm" || ${TARGET_CPUARCH} == "i386" || \ ${TARGET_ARCH} == "powerpc" || \ - (${TARGET_CPUARCH} == "mips" && \ - (!defined(TARGET_ABI) || ${TARGET_ABI} != "n64")) + ${TARGET_ARCH} == "mipsel" || ${TARGET_ARCH} == "mipseb" CFLAGS+= -DBFD_DEFAULT_TARGET_SIZE=32 .else CFLAGS+= -DBFD_DEFAULT_TARGET_SIZE=64 Modified: projects/binutils-2.17/gnu/usr.bin/binutils/ld/Makefile.mips ============================================================================== --- projects/binutils-2.17/gnu/usr.bin/binutils/ld/Makefile.mips Sun Jan 9 11:27:06 2011 (r217189) +++ projects/binutils-2.17/gnu/usr.bin/binutils/ld/Makefile.mips Sun Jan 9 11:52:23 2011 (r217190) @@ -1,19 +1,18 @@ # $FreeBSD$ -.if ${TARGET_ARCH} == "mipsel" +.if ${TARGET_ARCH:Mmips*el} != "" _EMULATION_ENDIAN=l .else _EMULATION_ENDIAN=b .endif -.if defined(TARGET_ABI) && ${TARGET_ABI} != "o32" -.if ${TARGET_ABI} == "n32" -NATIVE_EMULATION=elf32${_EMULATION_ENDIAN}tsmipn32_fbsd -.elif ${TARGET_ABI} == "n64" +.if ${TARGET_ARCH:Mmips64*} != "" NATIVE_EMULATION=elf64${_EMULATION_ENDIAN}tsmip_fbsd -.endif -.endif +.elif ${TARGET_ARCH:Mmipsn32*} != "" +NATIVE_EMULATION=elf32${_EMULATION_ENDIAN}tsmipn32_fbsd +.else NATIVE_EMULATION?=elf32${_EMULATION_ENDIAN}tsmip_fbsd +.endif MIPS_ABIS=elf32btsmip_fbsd elf32ltsmip_fbsd elf64btsmip_fbsd elf64ltsmip_fbsd \ elf32btsmipn32_fbsd elf32ltsmipn32_fbsd Modified: projects/binutils-2.17/gnu/usr.bin/binutils/libbfd/Makefile.mips ============================================================================== --- projects/binutils-2.17/gnu/usr.bin/binutils/libbfd/Makefile.mips Sun Jan 9 11:27:06 2011 (r217189) +++ projects/binutils-2.17/gnu/usr.bin/binutils/libbfd/Makefile.mips Sun Jan 9 11:52:23 2011 (r217190) @@ -1,19 +1,18 @@ # $FreeBSD$ -.if ${TARGET_ARCH} == "mipsel" +.if ${TARGET_ARCH:Mmips*el} != "" _EMULATION_ENDIAN=little .else _EMULATION_ENDIAN=big .endif -.if defined(TARGET_ABI) && ${TARGET_ABI} != "o32" -.if ${TARGET_ABI} == "n32" -DEFAULT_VECTOR= bfd_elf32_ntrad${_EMULATION_ENDIAN}mips_vec -.elif ${TARGET_ABI} == "n64" +.if ${TARGET_ARCH:Mmips64*} != "" DEFAULT_VECTOR= bfd_elf64_trad${_EMULATION_ENDIAN}mips_vec +.elif ${TARGET_ARCH:Mmipsn32*} != "" +DEFAULT_VECTOR= bfd_elf32_ntrad${_EMULATION_ENDIAN}mips_vec +.else +DEFAULT_VECTOR=bfd_elf32_trad${_EMULATION_ENDIAN}mips_vec .endif -.endif -DEFAULT_VECTOR?=bfd_elf32_trad${_EMULATION_ENDIAN}mips_vec SRCS+= coff-mips.c \ cpu-mips.c \ Modified: projects/binutils-2.17/gnu/usr.bin/cc/Makefile.inc ============================================================================== --- projects/binutils-2.17/gnu/usr.bin/cc/Makefile.inc Sun Jan 9 11:27:06 2011 (r217189) +++ projects/binutils-2.17/gnu/usr.bin/cc/Makefile.inc Sun Jan 9 11:52:23 2011 (r217190) @@ -22,12 +22,6 @@ CFLAGS+= -DPREFIX=\"${TOOLS_PREFIX}/usr\ #CFLAGS+= -DWANT_COMPILER_INVARIANTS CSTD?= gnu89 -# If building 64-bit longs for the i386, "_LARGE_LONG" should also be defined -# to get the proper sizes in limits.h -.if defined(LONG_TYPE_SIZE) -CFLAGS+= -DLONG_TYPE_SIZE=${LONG_TYPE_SIZE} -.endif - .if ${TARGET_ARCH} != ${MACHINE_ARCH} CFLAGS+= -DCROSS_COMPILE .endif @@ -36,21 +30,18 @@ CFLAGS+= -DCROSS_COMPILE CFLAGS += -DTARGET_ENDIAN_DEFAULT=MASK_BIG_END .endif - .if ${TARGET_CPUARCH} == "mips" -.if ${TARGET_ARCH} == "mipsel" +.if ${TARGET_ARCH:Mmips*el} != "" CFLAGS += -DTARGET_ENDIAN_DEFAULT=0 .endif -.if defined(TARGET_ABI) && ${TARGET_ABI} != "o32" -.if ${TARGET_ABI} == "n32" -MIPS_ABI_DEFAULT=ABI_N32 -.elif ${TARGET_ABI} == "n64" +.if ${TARGET_ARCH:Mmips64*} != "" MIPS_ABI_DEFAULT=ABI_64 +.elif ${TARGET_ARCH:Mmipsn32*} != "" +MIPS_ABI_DEFAULT=ABI_N32 +.else +MIPS_ABI_DEFAULT=ABI_32 .endif -.endif - -MIPS_ABI_DEFAULT?=ABI_32 CFLAGS += -DMIPS_ABI_DEFAULT=${MIPS_ABI_DEFAULT} # If we are compiling for the O32 ABI, we need to default to MIPS-III rather Modified: projects/binutils-2.17/gnu/usr.bin/cc/Makefile.tgt ============================================================================== --- projects/binutils-2.17/gnu/usr.bin/cc/Makefile.tgt Sun Jan 9 11:27:06 2011 (r217189) +++ projects/binutils-2.17/gnu/usr.bin/cc/Makefile.tgt Sun Jan 9 11:52:23 2011 (r217190) @@ -4,7 +4,7 @@ # MACHINE_CPUARCH, but there's no easy way to export make functions... .if defined(TARGET_ARCH) -TARGET_CPUARCH=${TARGET_ARCH:C/mipse[bl]/mips/:C/armeb/arm/:C/powerpc64/powerpc/} +TARGET_CPUARCH=${TARGET_ARCH:C/mips.*e[bl]/mips/:C/armeb/arm/:C/powerpc64/powerpc/} .else TARGET_CPUARCH=${MACHINE_CPUARCH} .endif @@ -17,7 +17,7 @@ TARGET_CPU_DEFAULT= MASK_GNU_AS|MASK_GNU .if ${TARGET_ARCH} == "sparc64" TARGET_CPU_DEFAULT= TARGET_CPU_ultrasparc .endif -.if ${TARGET_ARCH} == "armeb" || ${TARGET_ARCH} == "mipseb" || ${TARGET_ARCH} == "mips64eb" +.if ${TARGET_ARCH} == "armeb" || ${TARGET_ARCH:Mmips*eb} != "" TARGET_BIG_ENDIAN=t .endif .if ${TARGET_ARCH} == "powerpc64" Modified: projects/binutils-2.17/gnu/usr.bin/gdb/Makefile.inc ============================================================================== --- projects/binutils-2.17/gnu/usr.bin/gdb/Makefile.inc Sun Jan 9 11:27:06 2011 (r217189) +++ projects/binutils-2.17/gnu/usr.bin/gdb/Makefile.inc Sun Jan 9 11:52:23 2011 (r217190) @@ -20,7 +20,7 @@ OBJ_GDB= ${OBJ_ROOT}/gdb # MACHINE_CPUARCH, but there's no easy way to export make functions... .if defined(TARGET_ARCH) -TARGET_CPUARCH=${TARGET_ARCH:C/mipse[bl]/mips/:C/armeb/arm/:C/powerpc64/powerpc/} +TARGET_CPUARCH=${TARGET_ARCH:C/mips.*e[bl]/mips/:C/armeb/arm/:C/powerpc64/powerpc/} .else TARGET_CPUARCH=${MACHINE_CPUARCH} .endif Modified: projects/binutils-2.17/gnu/usr.bin/gdb/libgdb/Makefile ============================================================================== --- projects/binutils-2.17/gnu/usr.bin/gdb/libgdb/Makefile Sun Jan 9 11:27:06 2011 (r217189) +++ projects/binutils-2.17/gnu/usr.bin/gdb/libgdb/Makefile Sun Jan 9 11:52:23 2011 (r217190) @@ -4,7 +4,7 @@ # MACHINE_CPUARCH, but there's no easy way to export make functions... .if defined(TARGET_ARCH) -TARGET_CPUARCH=${TARGET_ARCH:C/mipse[bl]/mips/:C/armeb/arm/:C/powerpc64/powerpc/} +TARGET_CPUARCH=${TARGET_ARCH:C/mips.*e[bl]/mips/:C/armeb/arm/:C/powerpc64/powerpc/} .else TARGET_CPUARCH=${MACHINE_CPUARCH} .endif Modified: projects/binutils-2.17/lib/libc/Makefile ============================================================================== --- projects/binutils-2.17/lib/libc/Makefile Sun Jan 9 11:27:06 2011 (r217189) +++ projects/binutils-2.17/lib/libc/Makefile Sun Jan 9 11:52:23 2011 (r217190) @@ -68,11 +68,7 @@ NOASM= ${LIBC_ARCH} != "ia64" && \ ${LIBC_ARCH} != "powerpc64" && \ ${LIBC_ARCH} != "sparc64" && \ - ${LIBC_ARCH} != "mips" -.include "${.CURDIR}/quad/Makefile.inc" -.endif -.if ${LIBC_ARCH} == "mips" && \ - (!defined(TARGET_ABI) || ${TARGET_ABI} == "o32") + ${MACHINE_ARCH:Mmips64*} == "" .include "${.CURDIR}/quad/Makefile.inc" .endif .include "${.CURDIR}/regex/Makefile.inc" Modified: projects/binutils-2.17/lib/libc/gen/Symbol.map ============================================================================== --- projects/binutils-2.17/lib/libc/gen/Symbol.map Sun Jan 9 11:27:06 2011 (r217189) +++ projects/binutils-2.17/lib/libc/gen/Symbol.map Sun Jan 9 11:52:23 2011 (r217190) @@ -453,6 +453,7 @@ FBSDprivate_1.0 { _rtld_atfork_pre; _rtld_atfork_post; _rtld_error; /* for private use */ + _rtld_get_stack_prot; _rtld_thread_init; /* for private use */ __elf_phdr_match_addr; _err; @@ -499,4 +500,5 @@ FBSDprivate_1.0 { _libc_sem_getvalue_compat; __elf_aux_vector; + __pthread_map_stacks_exec; }; Modified: projects/binutils-2.17/lib/libc/gen/dlfcn.c ============================================================================== --- projects/binutils-2.17/lib/libc/gen/dlfcn.c Sun Jan 9 11:27:06 2011 (r217189) +++ projects/binutils-2.17/lib/libc/gen/dlfcn.c Sun Jan 9 11:52:23 2011 (r217190) @@ -30,6 +30,7 @@ __FBSDID("$FreeBSD$"); /* * Linkage to services provided by the dynamic linker. */ +#include <sys/mman.h> #include <dlfcn.h> #include <link.h> #include <stddef.h> @@ -165,3 +166,12 @@ _rtld_addr_phdr(const void *addr, struct return (0); } + +#pragma weak _rtld_get_stack_prot +int +_rtld_get_stack_prot(void) +{ + + return (PROT_EXEC | PROT_READ | PROT_WRITE); +} + Modified: projects/binutils-2.17/lib/libc/gen/elf_utils.c ============================================================================== --- projects/binutils-2.17/lib/libc/gen/elf_utils.c Sun Jan 9 11:27:06 2011 (r217189) +++ projects/binutils-2.17/lib/libc/gen/elf_utils.c Sun Jan 9 11:52:23 2011 (r217190) @@ -26,7 +26,12 @@ * $FreeBSD$ */ +#include <sys/types.h> +#include <sys/mman.h> +#include <sys/resource.h> +#include <sys/sysctl.h> #include <link.h> +#include <stddef.h> int __elf_phdr_match_addr(struct dl_phdr_info *phdr_info, void *addr) @@ -45,3 +50,25 @@ __elf_phdr_match_addr(struct dl_phdr_inf } return (i != phdr_info->dlpi_phnum); } + +#pragma weak __pthread_map_stacks_exec +void +__pthread_map_stacks_exec(void) +{ + int mib[2]; + struct rlimit rlim; + u_long usrstack; + size_t len; + + mib[0] = CTL_KERN; + mib[1] = KERN_USRSTACK; + len = sizeof(usrstack); + if (sysctl(mib, sizeof(mib) / sizeof(mib[0]), &usrstack, &len, NULL, 0) + == -1) + return; + if (getrlimit(RLIMIT_STACK, &rlim) == -1) + return; + mprotect((void *)(uintptr_t)(usrstack - rlim.rlim_cur), + rlim.rlim_cur, _rtld_get_stack_prot()); +} + Modified: projects/binutils-2.17/lib/libc/net/hesiod.c ============================================================================== --- projects/binutils-2.17/lib/libc/net/hesiod.c Sun Jan 9 11:27:06 2011 (r217189) +++ projects/binutils-2.17/lib/libc/net/hesiod.c Sun Jan 9 11:52:23 2011 (r217190) @@ -324,6 +324,7 @@ read_config_file(ctx, filename) ? &ctx->lhs : &ctx->rhs; *which = strdup(data); if (!*which) { + fclose(fp); errno = ENOMEM; return -1; } Modified: projects/binutils-2.17/lib/libc/stdlib/realpath.c ============================================================================== --- projects/binutils-2.17/lib/libc/stdlib/realpath.c Sun Jan 9 11:27:06 2011 (r217189) +++ projects/binutils-2.17/lib/libc/stdlib/realpath.c Sun Jan 9 11:52:23 2011 (r217190) @@ -54,7 +54,7 @@ realpath(const char * __restrict path, c char *p, *q, *s; size_t left_len, resolved_len; unsigned symlinks; - int serrno, slen, m; + int m, serrno, slen; char left[PATH_MAX], next_token[PATH_MAX], symlink[PATH_MAX]; if (path == NULL) { @@ -73,7 +73,6 @@ realpath(const char * __restrict path, c m = 1; } else m = 0; - symlinks = 0; if (path[0] == '/') { resolved[0] = '/'; @@ -86,8 +85,10 @@ realpath(const char * __restrict path, c if (getcwd(resolved, PATH_MAX) == NULL) { if (m) free(resolved); - else - strlcpy(resolved, ".", PATH_MAX); + else { + resolved[0] = '.'; + resolved[1] = '\0'; + } return (NULL); } resolved_len = strlen(resolved); Modified: projects/binutils-2.17/libexec/rtld-elf/Symbol.map ============================================================================== --- projects/binutils-2.17/libexec/rtld-elf/Symbol.map Sun Jan 9 11:27:06 2011 (r217189) +++ projects/binutils-2.17/libexec/rtld-elf/Symbol.map Sun Jan 9 11:52:23 2011 (r217190) @@ -28,4 +28,5 @@ FBSDprivate_1.0 { _rtld_atfork_pre; _rtld_atfork_post; _rtld_addr_phdr; + _rtld_get_stack_prot; }; Modified: projects/binutils-2.17/libexec/rtld-elf/map_object.c ============================================================================== --- projects/binutils-2.17/libexec/rtld-elf/map_object.c Sun Jan 9 11:27:06 2011 (r217189) +++ projects/binutils-2.17/libexec/rtld-elf/map_object.c Sun Jan 9 11:52:23 2011 (r217190) @@ -83,6 +83,7 @@ map_object(int fd, const char *path, con Elf_Addr bss_vaddr; Elf_Addr bss_vlimit; caddr_t bss_addr; + Elf_Word stack_flags; hdr = get_elf_header(fd, path); if (hdr == NULL) @@ -100,6 +101,7 @@ map_object(int fd, const char *path, con phdyn = phinterp = phtls = NULL; phdr_vaddr = 0; segs = alloca(sizeof(segs[0]) * hdr->e_phnum); + stack_flags = PF_X | PF_R | PF_W; while (phdr < phlimit) { switch (phdr->p_type) { @@ -128,6 +130,10 @@ map_object(int fd, const char *path, con case PT_TLS: phtls = phdr; break; + + case PT_GNU_STACK: + stack_flags = phdr->p_flags; + break; } ++phdr; @@ -261,6 +267,7 @@ map_object(int fd, const char *path, con obj->tlsinitsize = phtls->p_filesz; obj->tlsinit = mapbase + phtls->p_vaddr; } + obj->stack_flags = stack_flags; return obj; } Modified: projects/binutils-2.17/libexec/rtld-elf/rtld.c ============================================================================== --- projects/binutils-2.17/libexec/rtld-elf/rtld.c Sun Jan 9 11:27:06 2011 (r217189) +++ projects/binutils-2.17/libexec/rtld-elf/rtld.c Sun Jan 9 11:52:23 2011 (r217190) @@ -103,6 +103,7 @@ static void unload_filtees(Obj_Entry *); static int load_needed_objects(Obj_Entry *, int); static int load_preload_objects(void); static Obj_Entry *load_object(const char *, const Obj_Entry *, int); +static void map_stacks_exec(void); static Obj_Entry *obj_from_addr(const void *); static void objlist_call_fini(Objlist *, Obj_Entry *, RtldLockState *); static void objlist_call_init(Objlist *, RtldLockState *); @@ -188,6 +189,9 @@ extern Elf_Dyn _DYNAMIC; int osreldate, pagesize; +static int stack_prot = PROT_READ | PROT_WRITE | PROT_EXEC; +static int max_stack_flags; + /* * Global declarations normally provided by crt1. The dynamic linker is * not built with crt1, so we have to provide them ourselves. @@ -382,6 +386,7 @@ _rtld(Elf_Addr *sp, func_ptr_type *exit_ close(fd); if (obj_main == NULL) die(); + max_stack_flags = obj->stack_flags; } else { /* Main program already loaded. */ const Elf_Phdr *phdr; int phnum; @@ -421,6 +426,10 @@ _rtld(Elf_Addr *sp, func_ptr_type *exit_ dbg("obj_main path %s", obj_main->path); obj_main->mainprog = true; + if (aux_info[AT_STACKPROT] != NULL && + aux_info[AT_STACKPROT]->a_un.a_val != 0) + stack_prot = aux_info[AT_STACKPROT]->a_un.a_val; + /* * Get the actual dynamic linker pathname from the executable if * possible. (It should always be possible.) That ensures that @@ -519,6 +528,8 @@ _rtld(Elf_Addr *sp, func_ptr_type *exit_ r_debug_state(NULL, &obj_main->linkmap); /* say hello to gdb! */ + map_stacks_exec(); + wlock_acquire(rtld_bind_lock, &lockstate); objlist_call_init(&initlist, &lockstate); objlist_clear(&initlist); @@ -1031,6 +1042,8 @@ digest_phdr(const Elf_Phdr *phdr, int ph break; } + obj->stack_flags = PF_X | PF_R | PF_W; + for (ph = phdr; ph < phlimit; ph++) { switch (ph->p_type) { @@ -1062,6 +1075,10 @@ digest_phdr(const Elf_Phdr *phdr, int ph obj->tlsinitsize = ph->p_filesz; obj->tlsinit = (void*)(ph->p_vaddr + obj->relocbase); break; + + case PT_GNU_STACK: + obj->stack_flags = ph->p_flags; + break; } } if (nsegs < 1) { @@ -1679,6 +1696,7 @@ do_load_object(int fd, const char *name, obj_count++; obj_loads++; linkmap_add(obj); /* for GDB & dlinfo() */ + max_stack_flags |= obj->stack_flags; dbg(" %p .. %p: %s", obj->mapbase, obj->mapbase + obj->mapsize - 1, obj->path); @@ -2202,6 +2220,8 @@ dlopen_object(const char *name, Obj_Entr name); GDB_STATE(RT_CONSISTENT,obj ? &obj->linkmap : NULL); + map_stacks_exec(); + /* Call the init functions. */ objlist_call_init(&initlist, &lockstate); objlist_clear(&initlist); @@ -3872,6 +3892,28 @@ fetch_ventry(const Obj_Entry *obj, unsig return NULL; } +int +_rtld_get_stack_prot(void) +{ + + return (stack_prot); +} + +static void +map_stacks_exec(void) +{ + void (*thr_map_stacks_exec)(void); + + if ((max_stack_flags & PF_X) == 0 || (stack_prot & PROT_EXEC) != 0) + return; + thr_map_stacks_exec = (void (*)(void))(uintptr_t) + get_program_var_addr("__pthread_map_stacks_exec"); + if (thr_map_stacks_exec != NULL) { + stack_prot |= PROT_EXEC; + thr_map_stacks_exec(); + } +} + void symlook_init(SymLook *dst, const char *name) { Modified: projects/binutils-2.17/libexec/rtld-elf/rtld.h ============================================================================== --- projects/binutils-2.17/libexec/rtld-elf/rtld.h Sun Jan 9 11:27:06 2011 (r217189) +++ projects/binutils-2.17/libexec/rtld-elf/rtld.h Sun Jan 9 11:52:23 2011 (r217190) @@ -157,6 +157,7 @@ typedef struct Struct_Obj_Entry { const Elf_Phdr *phdr; /* Program header if it is mapped, else NULL */ size_t phsize; /* Size of program header in bytes */ const char *interp; /* Pathname of the interpreter, if any */ + Elf_Word stack_flags; /* TLS information */ int tlsindex; /* Index in DTV for this module */ Modified: projects/binutils-2.17/share/man/man4/tcp.4 ============================================================================== --- projects/binutils-2.17/share/man/man4/tcp.4 Sun Jan 9 11:27:06 2011 (r217189) +++ projects/binutils-2.17/share/man/man4/tcp.4 Sun Jan 9 11:52:23 2011 (r217190) @@ -32,7 +32,7 @@ .\" From: @(#)tcp.4 8.1 (Berkeley) 6/5/93 .\" $FreeBSD$ .\" -.Dd September 16, 2010 +.Dd January 8, 2011 .Dt TCP 4 .Os .Sh NAME @@ -289,7 +289,9 @@ Amount of time, in milliseconds, that th before keepalive probes (if enabled) are sent. .It Va keepintvl The interval, in milliseconds, between keepalive probes sent to remote -machines. +machines, when no response is received on a +.Va keepidle +probe. After .Dv TCPTV_KEEPCNT (default 8) probes are sent, with no response, the connection is dropped. Modified: projects/binutils-2.17/share/man/man5/rc.conf.5 ============================================================================== --- projects/binutils-2.17/share/man/man5/rc.conf.5 Sun Jan 9 11:27:06 2011 (r217189) +++ projects/binutils-2.17/share/man/man5/rc.conf.5 Sun Jan 9 11:52:23 2011 (r217190) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd November 24, 2010 +.Dd January 7, 2011 .Dt RC.CONF 5 .Os .Sh NAME @@ -64,7 +64,19 @@ The file is used to override settings in .Pa /etc/rc.conf for historical reasons. -See the +In addition to +.Pa /etc/rc.conf.local +you can also place smaller configuration files for each +.Xr rc +script in the +.Pa /etc/rc.conf.d +directory, which will be included by the +.Va load_rc_config +function. +For jail configurations you could use the file +.Pa /etc/rc.conf.d/jail +to store jail specific configuration options. +Also see the .Va rc_conf_files variable below. .Pp Modified: projects/binutils-2.17/share/mk/bsd.endian.mk ============================================================================== --- projects/binutils-2.17/share/mk/bsd.endian.mk Sun Jan 9 11:27:06 2011 (r217189) +++ projects/binutils-2.17/share/mk/bsd.endian.mk Sun Jan 9 11:52:23 2011 (r217190) @@ -4,12 +4,12 @@ ${MACHINE_ARCH} == "i386" || \ ${MACHINE_ARCH} == "ia64" || \ ${MACHINE_ARCH} == "arm" || \ - ${MACHINE_ARCH} == "mipsel" + ${MACHINE_ARCH:Mmips*el} != "" TARGET_ENDIANNESS= 1234 .elif ${MACHINE_ARCH} == "powerpc" || \ ${MACHINE_ARCH} == "powerpc64" || \ ${MACHINE_ARCH} == "sparc64" || \ ${MACHINE_ARCH} == "armeb" || \ - ${MACHINE_ARCH} == "mipseb" + ${MACHINE_ARCH:Mmips*eb} != "" TARGET_ENDIANNESS= 4321 .endif Modified: projects/binutils-2.17/share/mk/sys.mk ============================================================================== --- projects/binutils-2.17/share/mk/sys.mk Sun Jan 9 11:27:06 2011 (r217189) +++ projects/binutils-2.17/share/mk/sys.mk Sun Jan 9 11:52:23 2011 (r217190) @@ -13,7 +13,7 @@ unix ?= We run FreeBSD, not UNIX. # and/or endian. This is called MACHINE_CPU in NetBSD, but that's used # for something different in FreeBSD. # -MACHINE_CPUARCH=${MACHINE_ARCH:C/mipse[lb]/mips/:C/armeb/arm/:C/powerpc64/powerpc/} +MACHINE_CPUARCH=${MACHINE_ARCH:C/mips.*e[lb]/mips/:C/armeb/arm/:C/powerpc64/powerpc/} .endif # If the special target .POSIX appears (without prerequisites or Modified: projects/binutils-2.17/sys/amd64/amd64/elf_machdep.c ============================================================================== --- projects/binutils-2.17/sys/amd64/amd64/elf_machdep.c Sun Jan 9 11:27:06 2011 (r217189) +++ projects/binutils-2.17/sys/amd64/amd64/elf_machdep.c Sun Jan 9 11:52:23 2011 (r217190) @@ -75,11 +75,14 @@ struct sysentvec elf64_freebsd_sysvec = .sv_setregs = exec_setregs, .sv_fixlimit = NULL, .sv_maxssiz = NULL, - .sv_flags = SV_ABI_FREEBSD | SV_LP64, + .sv_flags = SV_ABI_FREEBSD | SV_LP64 | SV_SHP, .sv_set_syscall_retval = cpu_set_syscall_retval, .sv_fetch_syscall_args = cpu_fetch_syscall_args, .sv_syscallnames = syscallnames, + .sv_shared_page_base = SHAREDPAGE, + .sv_shared_page_len = PAGE_SIZE, }; +INIT_SYSENTVEC(elf64_sysvec, &elf64_freebsd_sysvec); static Elf64_Brandinfo freebsd_brand_info = { .brand = ELFOSABI_FREEBSD, @@ -129,7 +132,6 @@ SYSINIT(kelf64, SI_SUB_EXEC, SI_ORDER_AN (sysinit_cfunc_t) elf64_insert_brand_entry, &kfreebsd_brand_info); - void elf64_dump_thread(struct thread *td __unused, void *dst __unused, size_t *off __unused) Modified: projects/binutils-2.17/sys/amd64/amd64/machdep.c ============================================================================== --- projects/binutils-2.17/sys/amd64/amd64/machdep.c Sun Jan 9 11:27:06 2011 (r217189) +++ projects/binutils-2.17/sys/amd64/amd64/machdep.c Sun Jan 9 11:52:23 2011 (r217190) @@ -386,7 +386,7 @@ sendsig(sig_t catcher, ksiginfo_t *ksi, } regs->tf_rsp = (long)sfp; - regs->tf_rip = PS_STRINGS - *(p->p_sysent->sv_szsigcode); + regs->tf_rip = p->p_sysent->sv_sigcode_base; regs->tf_rflags &= ~(PSL_T | PSL_D); regs->tf_cs = _ucodesel; regs->tf_ds = _udatasel; Modified: projects/binutils-2.17/sys/amd64/ia32/ia32_signal.c ============================================================================== --- projects/binutils-2.17/sys/amd64/ia32/ia32_signal.c Sun Jan 9 11:27:06 2011 (r217189) +++ projects/binutils-2.17/sys/amd64/ia32/ia32_signal.c Sun Jan 9 11:52:23 2011 (r217190) @@ -393,7 +393,8 @@ freebsd4_ia32_sendsig(sig_t catcher, ksi } regs->tf_rsp = (uintptr_t)sfp; - regs->tf_rip = p->p_sysent->sv_psstrings - sz_freebsd4_ia32_sigcode; + regs->tf_rip = p->p_sysent->sv_sigcode_base + sz_ia32_sigcode - + sz_freebsd4_ia32_sigcode; regs->tf_rflags &= ~(PSL_T | PSL_D); regs->tf_cs = _ucode32sel; regs->tf_ss = _udatasel; @@ -514,7 +515,7 @@ ia32_sendsig(sig_t catcher, ksiginfo_t * } regs->tf_rsp = (uintptr_t)sfp; - regs->tf_rip = p->p_sysent->sv_psstrings - *(p->p_sysent->sv_szsigcode); + regs->tf_rip = p->p_sysent->sv_sigcode_base; regs->tf_rflags &= ~(PSL_T | PSL_D); regs->tf_cs = _ucode32sel; regs->tf_ss = _udatasel; Modified: projects/binutils-2.17/sys/amd64/include/_inttypes.h ============================================================================== --- projects/binutils-2.17/sys/amd64/include/_inttypes.h Sun Jan 9 11:27:06 2011 (r217189) +++ projects/binutils-2.17/sys/amd64/include/_inttypes.h Sun Jan 9 11:52:23 2011 (r217190) @@ -1,213 +1,6 @@ /*- - * Copyright (c) 2001 The NetBSD Foundation, Inc. - * All rights reserved. - * - * This code is derived from software contributed to The NetBSD Foundation - * by Klaus Klein. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS - * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS - * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - * From: $NetBSD: int_fmtio.h,v 1.2 2001/04/26 16:25:21 kleink Exp $ - * $FreeBSD$ + * This file is in the public domain. */ +/* $FreeBSD$ */ -#ifndef _MACHINE_INTTYPES_H_ -#define _MACHINE_INTTYPES_H_ - -/* - * Macros for format specifiers. - */ - -/* fprintf(3) macros for signed integers. */ - -#define PRId8 "d" /* int8_t */ -#define PRId16 "d" /* int16_t */ -#define PRId32 "d" /* int32_t */ -#define PRId64 "ld" /* int64_t */ -#define PRIdLEAST8 "d" /* int_least8_t */ -#define PRIdLEAST16 "d" /* int_least16_t */ -#define PRIdLEAST32 "d" /* int_least32_t */ -#define PRIdLEAST64 "ld" /* int_least64_t */ -#define PRIdFAST8 "d" /* int_fast8_t */ -#define PRIdFAST16 "d" /* int_fast16_t */ -#define PRIdFAST32 "d" /* int_fast32_t */ -#define PRIdFAST64 "ld" /* int_fast64_t */ -#define PRIdMAX "jd" /* intmax_t */ -#define PRIdPTR "ld" /* intptr_t */ - -#define PRIi8 "i" /* int8_t */ -#define PRIi16 "i" /* int16_t */ -#define PRIi32 "i" /* int32_t */ -#define PRIi64 "li" /* int64_t */ -#define PRIiLEAST8 "i" /* int_least8_t */ -#define PRIiLEAST16 "i" /* int_least16_t */ -#define PRIiLEAST32 "i" /* int_least32_t */ -#define PRIiLEAST64 "li" /* int_least64_t */ -#define PRIiFAST8 "i" /* int_fast8_t */ -#define PRIiFAST16 "i" /* int_fast16_t */ -#define PRIiFAST32 "i" /* int_fast32_t */ -#define PRIiFAST64 "li" /* int_fast64_t */ -#define PRIiMAX "ji" /* intmax_t */ -#define PRIiPTR "li" /* intptr_t */ - -/* fprintf(3) macros for unsigned integers. */ - -#define PRIo8 "o" /* uint8_t */ -#define PRIo16 "o" /* uint16_t */ -#define PRIo32 "o" /* uint32_t */ -#define PRIo64 "lo" /* uint64_t */ -#define PRIoLEAST8 "o" /* uint_least8_t */ -#define PRIoLEAST16 "o" /* uint_least16_t */ -#define PRIoLEAST32 "o" /* uint_least32_t */ -#define PRIoLEAST64 "lo" /* uint_least64_t */ -#define PRIoFAST8 "o" /* uint_fast8_t */ -#define PRIoFAST16 "o" /* uint_fast16_t */ -#define PRIoFAST32 "o" /* uint_fast32_t */ -#define PRIoFAST64 "lo" /* uint_fast64_t */ -#define PRIoMAX "jo" /* uintmax_t */ -#define PRIoPTR "lo" /* uintptr_t */ - -#define PRIu8 "u" /* uint8_t */ -#define PRIu16 "u" /* uint16_t */ -#define PRIu32 "u" /* uint32_t */ -#define PRIu64 "lu" /* uint64_t */ -#define PRIuLEAST8 "u" /* uint_least8_t */ -#define PRIuLEAST16 "u" /* uint_least16_t */ -#define PRIuLEAST32 "u" /* uint_least32_t */ -#define PRIuLEAST64 "lu" /* uint_least64_t */ -#define PRIuFAST8 "u" /* uint_fast8_t */ -#define PRIuFAST16 "u" /* uint_fast16_t */ -#define PRIuFAST32 "u" /* uint_fast32_t */ -#define PRIuFAST64 "lu" /* uint_fast64_t */ -#define PRIuMAX "ju" /* uintmax_t */ -#define PRIuPTR "lu" /* uintptr_t */ - -#define PRIx8 "x" /* uint8_t */ -#define PRIx16 "x" /* uint16_t */ -#define PRIx32 "x" /* uint32_t */ -#define PRIx64 "lx" /* uint64_t */ -#define PRIxLEAST8 "x" /* uint_least8_t */ -#define PRIxLEAST16 "x" /* uint_least16_t */ -#define PRIxLEAST32 "x" /* uint_least32_t */ -#define PRIxLEAST64 "lx" /* uint_least64_t */ -#define PRIxFAST8 "x" /* uint_fast8_t */ -#define PRIxFAST16 "x" /* uint_fast16_t */ -#define PRIxFAST32 "x" /* uint_fast32_t */ -#define PRIxFAST64 "lx" /* uint_fast64_t */ -#define PRIxMAX "jx" /* uintmax_t */ -#define PRIxPTR "lx" /* uintptr_t */ - -#define PRIX8 "X" /* uint8_t */ -#define PRIX16 "X" /* uint16_t */ -#define PRIX32 "X" /* uint32_t */ -#define PRIX64 "lX" /* uint64_t */ -#define PRIXLEAST8 "X" /* uint_least8_t */ -#define PRIXLEAST16 "X" /* uint_least16_t */ -#define PRIXLEAST32 "X" /* uint_least32_t */ -#define PRIXLEAST64 "lX" /* uint_least64_t */ -#define PRIXFAST8 "X" /* uint_fast8_t */ -#define PRIXFAST16 "X" /* uint_fast16_t */ -#define PRIXFAST32 "X" /* uint_fast32_t */ -#define PRIXFAST64 "lX" /* uint_fast64_t */ -#define PRIXMAX "jX" /* uintmax_t */ -#define PRIXPTR "lX" /* uintptr_t */ - -/* fscanf(3) macros for signed integers. */ - -#define SCNd8 "hhd" /* int8_t */ -#define SCNd16 "hd" /* int16_t */ -#define SCNd32 "d" /* int32_t */ -#define SCNd64 "ld" /* int64_t */ -#define SCNdLEAST8 "hhd" /* int_least8_t */ -#define SCNdLEAST16 "hd" /* int_least16_t */ -#define SCNdLEAST32 "d" /* int_least32_t */ -#define SCNdLEAST64 "ld" /* int_least64_t */ -#define SCNdFAST8 "d" /* int_fast8_t */ -#define SCNdFAST16 "d" /* int_fast16_t */ -#define SCNdFAST32 "d" /* int_fast32_t */ -#define SCNdFAST64 "ld" /* int_fast64_t */ -#define SCNdMAX "jd" /* intmax_t */ -#define SCNdPTR "ld" /* intptr_t */ - -#define SCNi8 "hhi" /* int8_t */ -#define SCNi16 "hi" /* int16_t */ -#define SCNi32 "i" /* int32_t */ -#define SCNi64 "li" /* int64_t */ -#define SCNiLEAST8 "hhi" /* int_least8_t */ -#define SCNiLEAST16 "hi" /* int_least16_t */ -#define SCNiLEAST32 "i" /* int_least32_t */ -#define SCNiLEAST64 "li" /* int_least64_t */ -#define SCNiFAST8 "i" /* int_fast8_t */ -#define SCNiFAST16 "i" /* int_fast16_t */ -#define SCNiFAST32 "i" /* int_fast32_t */ -#define SCNiFAST64 "li" /* int_fast64_t */ -#define SCNiMAX "ji" /* intmax_t */ -#define SCNiPTR "li" /* intptr_t */ - -/* fscanf(3) macros for unsigned integers. */ - -#define SCNo8 "hho" /* uint8_t */ -#define SCNo16 "ho" /* uint16_t */ -#define SCNo32 "o" /* uint32_t */ -#define SCNo64 "lo" /* uint64_t */ -#define SCNoLEAST8 "hho" /* uint_least8_t */ -#define SCNoLEAST16 "ho" /* uint_least16_t */ -#define SCNoLEAST32 "o" /* uint_least32_t */ -#define SCNoLEAST64 "lo" /* uint_least64_t */ -#define SCNoFAST8 "o" /* uint_fast8_t */ -#define SCNoFAST16 "o" /* uint_fast16_t */ -#define SCNoFAST32 "o" /* uint_fast32_t */ -#define SCNoFAST64 "lo" /* uint_fast64_t */ -#define SCNoMAX "jo" /* uintmax_t */ -#define SCNoPTR "lo" /* uintptr_t */ - -#define SCNu8 "hhu" /* uint8_t */ -#define SCNu16 "hu" /* uint16_t */ -#define SCNu32 "u" /* uint32_t */ -#define SCNu64 "lu" /* uint64_t */ -#define SCNuLEAST8 "hhu" /* uint_least8_t */ -#define SCNuLEAST16 "hu" /* uint_least16_t */ -#define SCNuLEAST32 "u" /* uint_least32_t */ -#define SCNuLEAST64 "lu" /* uint_least64_t */ -#define SCNuFAST8 "u" /* uint_fast8_t */ -#define SCNuFAST16 "u" /* uint_fast16_t */ -#define SCNuFAST32 "u" /* uint_fast32_t */ -#define SCNuFAST64 "lu" /* uint_fast64_t */ -#define SCNuMAX "ju" /* uintmax_t */ -#define SCNuPTR "lu" /* uintptr_t */ - -#define SCNx8 "hhx" /* uint8_t */ -#define SCNx16 "hx" /* uint16_t */ -#define SCNx32 "x" /* uint32_t */ -#define SCNx64 "lx" /* uint64_t */ -#define SCNxLEAST8 "hhx" /* uint_least8_t */ -#define SCNxLEAST16 "hx" /* uint_least16_t */ -#define SCNxLEAST32 "x" /* uint_least32_t */ -#define SCNxLEAST64 "lx" /* uint_least64_t */ -#define SCNxFAST8 "x" /* uint_fast8_t */ -#define SCNxFAST16 "x" /* uint_fast16_t */ -#define SCNxFAST32 "x" /* uint_fast32_t */ -#define SCNxFAST64 "lx" /* uint_fast64_t */ *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201101091152.p09BqN09041419>