Date: Wed, 25 Aug 2010 00:05:14 +0000 (UTC) From: Attilio Rao <attilio@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r211788 - in projects/sv: . cddl/contrib/dtracetoolkit contrib/top lib lib/libc lib/libc/compat-43 lib/libc/gen lib/libc/locale lib/libc/quad lib/libc/softfloat lib/libc/stdlib lib/libc... Message-ID: <201008250005.o7P05EOT093684@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: attilio Date: Wed Aug 25 00:05:14 2010 New Revision: 211788 URL: http://svn.freebsd.org/changeset/base/211788 Log: MFC @ 211787 Replaced: projects/sv/cddl/contrib/dtracetoolkit/ - copied from r211787, head/cddl/contrib/dtracetoolkit/ Deleted: projects/sv/lib/libthr/arch/powerpc64/ Modified: projects/sv/Makefile.inc1 projects/sv/lib/Makefile projects/sv/lib/libc/Makefile projects/sv/lib/libc/compat-43/Makefile.inc projects/sv/lib/libc/gen/Makefile.inc projects/sv/lib/libc/locale/Makefile.inc projects/sv/lib/libc/quad/Makefile.inc projects/sv/lib/libc/softfloat/Makefile.inc projects/sv/lib/libc/stdlib/Makefile.inc projects/sv/lib/libc/string/Makefile.inc projects/sv/lib/libc/sys/Makefile.inc projects/sv/lib/libthr/Makefile projects/sv/lib/libthr/arch/powerpc/Makefile.inc projects/sv/lib/libthr/arch/powerpc/include/pthread_md.h projects/sv/libexec/rtld-elf/Makefile projects/sv/share/man/man9/locking.9 projects/sv/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c projects/sv/sys/dev/age/if_age.c projects/sv/sys/dev/ed/if_ed_isa.c projects/sv/sys/dev/vr/if_vr.c projects/sv/sys/pci/if_rl.c projects/sv/sys/x86/x86/local_apic.c projects/sv/usr.sbin/acpi/acpiconf/acpiconf.c Directory Properties: projects/sv/ (props changed) projects/sv/cddl/contrib/opensolaris/ (props changed) projects/sv/contrib/bind9/ (props changed) projects/sv/contrib/ee/ (props changed) projects/sv/contrib/expat/ (props changed) projects/sv/contrib/file/ (props changed) projects/sv/contrib/gdb/ (props changed) projects/sv/contrib/gdtoa/ (props changed) projects/sv/contrib/gnu-sort/ (props changed) projects/sv/contrib/groff/ (props changed) projects/sv/contrib/less/ (props changed) projects/sv/contrib/libpcap/ (props changed) projects/sv/contrib/llvm/ (props changed) projects/sv/contrib/llvm/tools/clang/ (props changed) projects/sv/contrib/ncurses/ (props changed) projects/sv/contrib/netcat/ (props changed) projects/sv/contrib/ntp/ (props changed) projects/sv/contrib/one-true-awk/ (props changed) projects/sv/contrib/openbsm/ (props changed) projects/sv/contrib/openpam/ (props changed) projects/sv/contrib/pf/ (props changed) projects/sv/contrib/sendmail/ (props changed) projects/sv/contrib/tcpdump/ (props changed) projects/sv/contrib/tcsh/ (props changed) projects/sv/contrib/top/ (props changed) projects/sv/contrib/top/install-sh (props changed) projects/sv/contrib/tzcode/stdtime/ (props changed) projects/sv/contrib/tzcode/zic/ (props changed) projects/sv/contrib/tzdata/ (props changed) projects/sv/contrib/wpa/ (props changed) projects/sv/crypto/openssh/ (props changed) projects/sv/crypto/openssl/ (props changed) projects/sv/lib/libc/ (props changed) projects/sv/lib/libc/stdtime/ (props changed) projects/sv/lib/libutil/ (props changed) projects/sv/lib/libz/ (props changed) projects/sv/sbin/ (props changed) projects/sv/sbin/ipfw/ (props changed) projects/sv/share/mk/bsd.arch.inc.mk (props changed) projects/sv/share/zoneinfo/ (props changed) projects/sv/sys/ (props changed) projects/sv/sys/amd64/include/xen/ (props changed) projects/sv/sys/cddl/contrib/opensolaris/ (props changed) projects/sv/sys/contrib/dev/acpica/ (props changed) projects/sv/sys/contrib/pf/ (props changed) projects/sv/sys/contrib/x86emu/ (props changed) projects/sv/sys/dev/xen/xenpci/ (props changed) projects/sv/usr.bin/csup/ (props changed) projects/sv/usr.bin/procstat/ (props changed) projects/sv/usr.sbin/zic/ (props changed) Modified: projects/sv/Makefile.inc1 ============================================================================== --- projects/sv/Makefile.inc1 Tue Aug 24 23:34:13 2010 (r211787) +++ projects/sv/Makefile.inc1 Wed Aug 25 00:05:14 2010 (r211788) @@ -1131,12 +1131,10 @@ _prereq_libs= gnu/lib/libssp/libssp_nons # all shared libraries for ELF. # _startup_libs= gnu/lib/csu -.if exists(${.CURDIR}/lib/csu/${MACHINE_CPUARCH}-elf) -_startup_libs+= lib/csu/${MACHINE_CPUARCH}-elf +.if exists(${.CURDIR}/lib/csu/${MACHINE_ARCH}-elf) +_startup_libs+= lib/csu/${MACHINE_ARCH}-elf .elif exists(${.CURDIR}/lib/csu/${MACHINE_CPUARCH}-elf) _startup_libs+= lib/csu/${MACHINE_CPUARCH}-elf -.elif exists(${.CURDIR}/lib/csu/${MACHINE_ARCH}) -_startup_libs+= lib/csu/${MACHINE_ARCH} .else _startup_libs+= lib/csu/${MACHINE_CPUARCH} .endif Modified: projects/sv/lib/Makefile ============================================================================== --- projects/sv/lib/Makefile Tue Aug 24 23:34:13 2010 (r211787) +++ projects/sv/lib/Makefile Wed Aug 25 00:05:14 2010 (r211788) @@ -112,7 +112,9 @@ SUBDIR= ${SUBDIR_ORDERED} \ ${_bind} \ ${_clang} -.if exists(${.CURDIR}/csu/${MACHINE_CPUARCH}-elf) +.if exists(${.CURDIR}/csu/${MACHINE_ARCH}-elf) +_csu=csu/${MACHINE_ARCH}-elf +.elif exists(${.CURDIR}/csu/${MACHINE_CPUARCH}-elf) _csu=csu/${MACHINE_CPUARCH}-elf .elif exists(${.CURDIR}/csu/${MACHINE_CPUARCH}/Makefile) _csu=csu/${MACHINE_CPUARCH} Modified: projects/sv/lib/libc/Makefile ============================================================================== --- projects/sv/lib/libc/Makefile Tue Aug 24 23:34:13 2010 (r211787) +++ projects/sv/lib/libc/Makefile Wed Aug 25 00:05:14 2010 (r211788) @@ -5,6 +5,15 @@ SHLIBDIR?= /lib .include <bsd.own.mk> +# We have to special case powerpc and powerpc64, since they mostly have +# the same source implementation. libc is very different due to large +# ABI differences. +.if ${MACHINE_ARCH} == "powerpc" +LIBC_ARCH=${MACHINE_ARCH} +.else +LIBC_ARCH=${MACHINE_CPUARCH} +.endif + # All library objects contain FreeBSD revision strings by default; they may be # excluded as a space-saving measure. To produce a library that does # not contain these strings, add -DSTRIP_FBSDID (see <sys/cdefs.h>) to CFLAGS @@ -15,7 +24,7 @@ LIB=c SHLIB_MAJOR= 7 WARNS?= 2 CFLAGS+=-I${.CURDIR}/include -I${.CURDIR}/../../include -CFLAGS+=-I${.CURDIR}/${MACHINE_CPUARCH} +CFLAGS+=-I${.CURDIR}/${LIBC_ARCH} CFLAGS+=-DNLS CLEANFILES+=tags INSTALL_PIC_ARCHIVE= @@ -36,7 +45,7 @@ MDASM= MIASM= NOASM= -.include "${.CURDIR}/${MACHINE_CPUARCH}/Makefile.inc" +.include "${.CURDIR}/${LIBC_ARCH}/Makefile.inc" .include "${.CURDIR}/db/Makefile.inc" .include "${.CURDIR}/compat-43/Makefile.inc" .include "${.CURDIR}/gdtoa/Makefile.inc" @@ -49,14 +58,14 @@ NOASM= .include "${.CURDIR}/net/Makefile.inc" .include "${.CURDIR}/nls/Makefile.inc" .include "${.CURDIR}/posix1e/Makefile.inc" -.if ${MACHINE_CPUARCH} != "amd64" && \ - ${MACHINE_CPUARCH} != "ia64" && \ - ${MACHINE_ARCH} != "powerpc64" && \ - ${MACHINE_CPUARCH} != "sparc64" && \ - ${MACHINE_CPUARCH} != "mips" +.if ${LIBC_ARCH} != "amd64" && \ + ${LIBC_ARCH} != "ia64" && \ + ${LIBC_ARCH} != "powerpc64" && \ + ${LIBC_ARCH} != "sparc64" && \ + ${LIBC_ARCH} != "mips" .include "${.CURDIR}/quad/Makefile.inc" .endif -.if ${MACHINE_ARCH} == "mips" && \ +.if ${LIBC_ARCH} == "mips" && \ (!defined(TARGET_ABI) || ${TARGET_ABI} == "o32") .include "${.CURDIR}/quad/Makefile.inc" .endif @@ -70,7 +79,7 @@ NOASM= .include "${.CURDIR}/rpc/Makefile.inc" .include "${.CURDIR}/uuid/Makefile.inc" .include "${.CURDIR}/xdr/Makefile.inc" -.if ${MACHINE_CPUARCH} == "arm" || ${MACHINE_CPUARCH} == "mips" +.if ${LIBC_ARCH} == "arm" || ${LIBC_ARCH} == "mips" .include "${.CURDIR}/softfloat/Makefile.inc" .endif .if ${MK_NIS} != "no" @@ -115,14 +124,14 @@ KQSRCS= adddi3.c anddi3.c ashldi3.c ashr KSRCS= bcmp.c ffs.c ffsl.c fls.c flsl.c index.c mcount.c rindex.c \ strcat.c strcmp.c strcpy.c strlen.c strncpy.c -libkern: libkern.gen libkern.${MACHINE_CPUARCH} +libkern: libkern.gen libkern.${LIBC_ARCH} libkern.gen: ${KQSRCS} ${KSRCS} cp -p ${.CURDIR}/quad/quad.h ${.ALLSRC} ${DESTDIR}/sys/libkern -libkern.${MACHINE_CPUARCH}:: ${KMSRCS} +libkern.${LIBC_ARCH}:: ${KMSRCS} .if defined(KMSRCS) && !empty(KMSRCS) - cp -p ${.ALLSRC} ${DESTDIR}/sys/libkern/${MACHINE_CPUARCH} + cp -p ${.ALLSRC} ${DESTDIR}/sys/libkern/${LIBC_ARCH} .endif .include <bsd.lib.mk> Modified: projects/sv/lib/libc/compat-43/Makefile.inc ============================================================================== --- projects/sv/lib/libc/compat-43/Makefile.inc Tue Aug 24 23:34:13 2010 (r211787) +++ projects/sv/lib/libc/compat-43/Makefile.inc Wed Aug 25 00:05:14 2010 (r211788) @@ -2,7 +2,7 @@ # $FreeBSD$ # compat-43 sources -.PATH: ${.CURDIR}/${MACHINE_CPUARCH}/compat-43 ${.CURDIR}/compat-43 +.PATH: ${.CURDIR}/${LIBC_ARCH}/compat-43 ${.CURDIR}/compat-43 SRCS+= creat.c gethostid.c getwd.c killpg.c sethostid.c setpgrp.c \ setrgid.c setruid.c sigcompat.c Modified: projects/sv/lib/libc/gen/Makefile.inc ============================================================================== --- projects/sv/lib/libc/gen/Makefile.inc Tue Aug 24 23:34:13 2010 (r211787) +++ projects/sv/lib/libc/gen/Makefile.inc Wed Aug 25 00:05:14 2010 (r211788) @@ -2,7 +2,7 @@ # $FreeBSD$ # machine-independent gen sources -.PATH: ${.CURDIR}/${MACHINE_CPUARCH}/gen ${.CURDIR}/gen +.PATH: ${.CURDIR}/${LIBC_ARCH}/gen ${.CURDIR}/gen SRCS+= __getosreldate.c __xuname.c \ _once_stub.c _pthread_stubs.c _rand48.c _spinlock_stub.c \ @@ -38,9 +38,7 @@ SRCS+= __getosreldate.c __xuname.c \ SYM_MAPS+=${.CURDIR}/gen/Symbol.map # machine-dependent gen sources -.if exists(${.CURDIR}/${MACHINE_CPUARCH}/gen/Makefile.inc) -.include "${.CURDIR}/${MACHINE_CPUARCH}/gen/Makefile.inc" -.endif +.sinclude "${.CURDIR}/${LIBC_ARCH}/gen/Makefile.inc" MAN+= alarm.3 arc4random.3 \ basename.3 check_utility_compat.3 clock.3 \ Modified: projects/sv/lib/libc/locale/Makefile.inc ============================================================================== --- projects/sv/lib/libc/locale/Makefile.inc Tue Aug 24 23:34:13 2010 (r211787) +++ projects/sv/lib/libc/locale/Makefile.inc Wed Aug 25 00:05:14 2010 (r211788) @@ -2,7 +2,7 @@ # $FreeBSD$ # locale sources -.PATH: ${.CURDIR}/${MACHINE_CPUARCH}/locale ${.CURDIR}/locale +.PATH: ${.CURDIR}/${LIBC_ARCH}/locale ${.CURDIR}/locale SRCS+= ascii.c big5.c btowc.c collate.c collcmp.c euc.c fix_grouping.c \ gb18030.c gb2312.c gbk.c isctype.c iswctype.c \ Modified: projects/sv/lib/libc/quad/Makefile.inc ============================================================================== --- projects/sv/lib/libc/quad/Makefile.inc Tue Aug 24 23:34:13 2010 (r211787) +++ projects/sv/lib/libc/quad/Makefile.inc Wed Aug 25 00:05:14 2010 (r211788) @@ -2,9 +2,9 @@ # $FreeBSD$ # Quad support, if needed -.PATH: ${.CURDIR}/${MACHINE_CPUARCH}/quad ${.CURDIR}/quad +.PATH: ${.CURDIR}/${LIBC_ARCH}/quad ${.CURDIR}/quad -.if ${MACHINE_CPUARCH} == "i386" +.if ${LIBC_ARCH} == "i386" SRCS+= cmpdi2.c divdi3.c moddi3.c qdivrem.c ucmpdi2.c udivdi3.c umoddi3.c Modified: projects/sv/lib/libc/softfloat/Makefile.inc ============================================================================== --- projects/sv/lib/libc/softfloat/Makefile.inc Tue Aug 24 23:34:13 2010 (r211787) +++ projects/sv/lib/libc/softfloat/Makefile.inc Wed Aug 25 00:05:14 2010 (r211788) @@ -2,10 +2,10 @@ # $FreeBSD$ SOFTFLOAT_BITS?=64 -.PATH: ${MACHINE_CPUARCH}/softfloat \ +.PATH: ${LIBC_ARCH}/softfloat \ ${.CURDIR}/softfloat/bits${SOFTFLOAT_BITS} ${.CURDIR}/softfloat -CFLAGS+= -I${.CURDIR}/${MACHINE_CPUARCH}/softfloat -I${.CURDIR}/softfloat +CFLAGS+= -I${.CURDIR}/${LIBC_ARCH}/softfloat -I${.CURDIR}/softfloat CFLAGS+= -DSOFTFLOAT_FOR_GCC SRCS+= softfloat.c Modified: projects/sv/lib/libc/stdlib/Makefile.inc ============================================================================== --- projects/sv/lib/libc/stdlib/Makefile.inc Tue Aug 24 23:34:13 2010 (r211787) +++ projects/sv/lib/libc/stdlib/Makefile.inc Wed Aug 25 00:05:14 2010 (r211788) @@ -2,7 +2,7 @@ # $FreeBSD$ # machine-independent stdlib sources -.PATH: ${.CURDIR}/${MACHINE_CPUARCH}/stdlib ${.CURDIR}/stdlib +.PATH: ${.CURDIR}/${LIBC_ARCH}/stdlib ${.CURDIR}/stdlib MISRCS+=_Exit.c a64l.c abort.c abs.c atexit.c atof.c atoi.c atol.c atoll.c \ bsearch.c div.c exit.c getenv.c getopt.c getopt_long.c \ @@ -16,7 +16,7 @@ MISRCS+=_Exit.c a64l.c abort.c abs.c ate SYM_MAPS+= ${.CURDIR}/stdlib/Symbol.map # machine-dependent stdlib sources -.sinclude "${.CURDIR}/${MACHINE_CPUARCH}/stdlib/Makefile.inc" +.sinclude "${.CURDIR}/${LIBC_ARCH}/stdlib/Makefile.inc" MAN+= a64l.3 abort.3 abs.3 alloca.3 atexit.3 atof.3 atoi.3 atol.3 bsearch.3 \ div.3 exit.3 getenv.3 getopt.3 getopt_long.3 getsubopt.3 \ Modified: projects/sv/lib/libc/string/Makefile.inc ============================================================================== --- projects/sv/lib/libc/string/Makefile.inc Tue Aug 24 23:34:13 2010 (r211787) +++ projects/sv/lib/libc/string/Makefile.inc Wed Aug 25 00:05:14 2010 (r211788) @@ -1,7 +1,7 @@ # @(#)Makefile.inc 8.1 (Berkeley) 6/4/93 # $FreeBSD$ -.PATH: ${.CURDIR}/${MACHINE_CPUARCH}/string ${.CURDIR}/string +.PATH: ${.CURDIR}/${LIBC_ARCH}/string ${.CURDIR}/string CFLAGS+= -I${.CURDIR}/locale @@ -26,9 +26,7 @@ SYM_MAPS+= ${.CURDIR}/string/Symbol.map # machine-dependent string sources -.if exists(${.CURDIR}/${MACHINE_CPUARCH}/string/Makefile.inc) -.include "${.CURDIR}/${MACHINE_CPUARCH}/string/Makefile.inc" -.endif +.sinclude "${.CURDIR}/${LIBC_ARCH}/string/Makefile.inc" MAN+= bcmp.3 bcopy.3 bstring.3 bzero.3 ffs.3 index.3 memccpy.3 memchr.3 \ memcmp.3 memcpy.3 memmem.3 memmove.3 memset.3 strcasecmp.3 strcat.3 \ Modified: projects/sv/lib/libc/sys/Makefile.inc ============================================================================== --- projects/sv/lib/libc/sys/Makefile.inc Tue Aug 24 23:34:13 2010 (r211787) +++ projects/sv/lib/libc/sys/Makefile.inc Wed Aug 25 00:05:14 2010 (r211788) @@ -2,7 +2,7 @@ # $FreeBSD$ # sys sources -.PATH: ${.CURDIR}/${MACHINE_CPUARCH}/sys ${.CURDIR}/sys +.PATH: ${.CURDIR}/${LIBC_ARCH}/sys ${.CURDIR}/sys # Include the generated makefile containing the *complete* list # of syscall names in MIASM. @@ -13,9 +13,7 @@ # MDASM names override the default syscall names in MIASM. # NOASM will prevent the default syscall code from being generated. # -.if exists(${.CURDIR}/${MACHINE_CPUARCH}/sys/Makefile.inc) -.include "${.CURDIR}/${MACHINE_CPUARCH}/sys/Makefile.inc" -.endif +.sinclude "${.CURDIR}/${LIBC_ARCH}/sys/Makefile.inc" # Sources common to both syscall interfaces: SRCS+= stack_protector.c stack_protector_compat.c __error.c Modified: projects/sv/lib/libthr/Makefile ============================================================================== --- projects/sv/lib/libthr/Makefile Tue Aug 24 23:34:13 2010 (r211787) +++ projects/sv/lib/libthr/Makefile Wed Aug 25 00:05:14 2010 (r211788) @@ -19,7 +19,7 @@ WARNS?= 3 CFLAGS+=-DPTHREAD_KERNEL CFLAGS+=-I${.CURDIR}/../libc/include -I${.CURDIR}/thread \ -I${.CURDIR}/../../include -CFLAGS+=-I${.CURDIR}/arch/${MACHINE_ARCH}/include +CFLAGS+=-I${.CURDIR}/arch/${MACHINE_CPUARCH}/include CFLAGS+=-I${.CURDIR}/sys CFLAGS+=-I${.CURDIR}/../../libexec/rtld-elf CFLAGS+=-I${.CURDIR}/../../libexec/rtld-elf/${MACHINE_ARCH} @@ -38,7 +38,7 @@ CFLAGS+=-D_PTHREADS_INVARIANTS PRECIOUSLIB= -.include "${.CURDIR}/arch/${MACHINE_ARCH}/Makefile.inc" +.include "${.CURDIR}/arch/${MACHINE_CPUARCH}/Makefile.inc" .include "${.CURDIR}/sys/Makefile.inc" .include "${.CURDIR}/thread/Makefile.inc" Modified: projects/sv/lib/libthr/arch/powerpc/Makefile.inc ============================================================================== --- projects/sv/lib/libthr/arch/powerpc/Makefile.inc Tue Aug 24 23:34:13 2010 (r211787) +++ projects/sv/lib/libthr/arch/powerpc/Makefile.inc Wed Aug 25 00:05:14 2010 (r211788) @@ -1,5 +1,5 @@ # $FreeBSD$ -.PATH: ${.CURDIR}/arch/${MACHINE_ARCH}/${MACHINE_ARCH} +.PATH: ${.CURDIR}/arch/${MACHINE_CPUARCH}/${MACHINE_CPUARCH} SRCS+= pthread_md.c Modified: projects/sv/lib/libthr/arch/powerpc/include/pthread_md.h ============================================================================== --- projects/sv/lib/libthr/arch/powerpc/include/pthread_md.h Tue Aug 24 23:34:13 2010 (r211787) +++ projects/sv/lib/libthr/arch/powerpc/include/pthread_md.h Wed Aug 25 00:05:14 2010 (r211788) @@ -39,12 +39,16 @@ #define CPU_SPINWAIT #define DTV_OFFSET offsetof(struct tcb, tcb_dtv) +#ifdef __powerpc64__ +#define TP_OFFSET 0x7010 +#else #define TP_OFFSET 0x7008 +#endif /* * Variant I tcb. The structure layout is fixed, don't blindly * change it. - * %r2 points to end of the structure. + * %r2 (32-bit) or %r13 (64-bit) points to end of the structure. */ struct tcb { void *tcb_dtv; @@ -57,7 +61,11 @@ void _tcb_dtor(struct tcb *); static __inline void _tcb_set(struct tcb *tcb) { +#ifdef __powerpc64__ + register uint8_t *_tp __asm__("%r13"); +#else register uint8_t *_tp __asm__("%r2"); +#endif __asm __volatile("mr %0,%1" : "=r"(_tp) : "r"((uint8_t *)tcb + TP_OFFSET)); @@ -66,7 +74,11 @@ _tcb_set(struct tcb *tcb) static __inline struct tcb * _tcb_get(void) { +#ifdef __powerpc64__ + register uint8_t *_tp __asm__("%r13"); +#else register uint8_t *_tp __asm__("%r2"); +#endif return ((struct tcb *)(_tp - TP_OFFSET)); } Modified: projects/sv/libexec/rtld-elf/Makefile ============================================================================== --- projects/sv/libexec/rtld-elf/Makefile Tue Aug 24 23:34:13 2010 (r211787) +++ projects/sv/libexec/rtld-elf/Makefile Wed Aug 25 00:05:14 2010 (r211788) @@ -10,7 +10,12 @@ SRCS= rtld_start.S \ MAN= rtld.1 CSTD?= gnu99 CFLAGS+= -Wall -DFREEBSD_ELF -DIN_RTLD -CFLAGS+= -I${.CURDIR}/${MACHINE_CPUARCH} -I${.CURDIR} +.if exists(${.CURDIR}/${MACHINE_ARCH}) +RTLD_ARCH= ${MACHINE_ARCH} +.else +RTLD_ARCH= ${MACHINE_CPUARCH} +.endif +CFLAGS+= -I${.CURDIR}/${RTLD_ARCH} -I${.CURDIR} .if ${MACHINE_ARCH} == "powerpc64" LDFLAGS+= -nostdlib -e _rtld_start .else @@ -39,15 +44,13 @@ LDFLAGS+= -Wl,--version-script=${VERSION ${PROG}: ${VERSION_MAP} -.if exists(${.CURDIR}/${MACHINE_CPUARCH}/Symbol.map) -SYMBOL_MAPS+= ${.CURDIR}/${MACHINE_CPUARCH}/Symbol.map +.if exists(${.CURDIR}/${RTLD_ARCH}/Symbol.map) +SYMBOL_MAPS+= ${.CURDIR}/${RTLD_ARCH}/Symbol.map .endif .endif .endif -.if exists(${.CURDIR}/${MACHINE_CPUARCH}/Makefile.inc) -.include "${.CURDIR}/${MACHINE_CPUARCH}/Makefile.inc" -.endif +.sinclude "${.CURDIR}/${RTLD_ARCH}/Makefile.inc" # Since moving rtld-elf to /libexec, we need to create a symlink. # Fixup the existing binary that's there so we can symlink over it. @@ -56,7 +59,7 @@ beforeinstall: -chflags noschg ${DESTDIR}/usr/libexec/${PROG} .endif -.PATH: ${.CURDIR}/${MACHINE_CPUARCH} +.PATH: ${.CURDIR}/${RTLD_ARCH} .include <bsd.symver.mk> .include <bsd.prog.mk> Modified: projects/sv/share/man/man9/locking.9 ============================================================================== --- projects/sv/share/man/man9/locking.9 Tue Aug 24 23:34:13 2010 (r211787) +++ projects/sv/share/man/man9/locking.9 Wed Aug 25 00:05:14 2010 (r211788) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd February 15, 2010 +.Dd August 24, 2010 .Dt LOCKING 9 .Os .Sh NAME @@ -334,7 +334,7 @@ At this time this is a rather easy to re .Em "Context:" Ta spin mtx Ta mutex Ta sx Ta rwlock Ta rmlock Ta sleep .Xc .It interrupt filter: Ta \&ok Ta \&no Ta \&no Ta \&no Ta \&no Ta \&no -.It ithread: Ta \&ok Ta \&ok Ta \&no Ta \&ok Ta \&ok Ta \&no +.It interrupt thread: Ta \&ok Ta \&ok Ta \&no Ta \&ok Ta \&ok Ta \&no .It callout: Ta \&ok Ta \&ok Ta \&no Ta \&ok Ta \&no Ta \&no .It syscall: Ta \&ok Ta \&ok Ta \&ok Ta \&ok Ta \&ok Ta \&ok .El Modified: projects/sv/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c ============================================================================== --- projects/sv/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c Tue Aug 24 23:34:13 2010 (r211787) +++ projects/sv/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c Wed Aug 25 00:05:14 2010 (r211788) @@ -2317,12 +2317,12 @@ arc_reclaim_thread(void *dummy __unused) if (arc_eviction_list != NULL) arc_do_user_evicts(); - if (arc_reclaim_needed()) { - needfree = 0; #ifdef _KERNEL + if (needfree) { + needfree = 0; wakeup(&needfree); -#endif } +#endif /* block until needed, or one second, whichever is shorter */ CALLB_CPR_SAFE_BEGIN(&cpr); Modified: projects/sv/sys/dev/age/if_age.c ============================================================================== --- projects/sv/sys/dev/age/if_age.c Tue Aug 24 23:34:13 2010 (r211787) +++ projects/sv/sys/dev/age/if_age.c Wed Aug 25 00:05:14 2010 (r211788) @@ -1781,6 +1781,7 @@ age_watchdog(struct age_softc *sc) if ((sc->age_flags & AGE_FLAG_LINK) == 0) { if_printf(sc->age_ifp, "watchdog timeout (missed link)\n"); ifp->if_oerrors++; + ifp->if_drv_flags &= ~IFF_DRV_RUNNING; age_init_locked(sc); return; } @@ -1793,6 +1794,7 @@ age_watchdog(struct age_softc *sc) } if_printf(sc->age_ifp, "watchdog timeout\n"); ifp->if_oerrors++; + ifp->if_drv_flags &= ~IFF_DRV_RUNNING; age_init_locked(sc); if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd)) taskqueue_enqueue(sc->age_tq, &sc->age_tx_task); @@ -1817,8 +1819,10 @@ age_ioctl(struct ifnet *ifp, u_long cmd, else if (ifp->if_mtu != ifr->ifr_mtu) { AGE_LOCK(sc); ifp->if_mtu = ifr->ifr_mtu; - if ((ifp->if_drv_flags & IFF_DRV_RUNNING) != 0) + if ((ifp->if_drv_flags & IFF_DRV_RUNNING) != 0) { + ifp->if_drv_flags &= ~IFF_DRV_RUNNING; age_init_locked(sc); + } AGE_UNLOCK(sc); } break; @@ -2165,6 +2169,7 @@ age_int_task(void *arg, int pending) if ((status & INTR_DMA_WR_TO_RST) != 0) device_printf(sc->age_dev, "DMA write error! -- resetting\n"); + ifp->if_drv_flags &= ~IFF_DRV_RUNNING; age_init_locked(sc); } if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd)) @@ -2529,6 +2534,9 @@ age_init_locked(struct age_softc *sc) ifp = sc->age_ifp; mii = device_get_softc(sc->age_miibus); + if ((ifp->if_drv_flags & IFF_DRV_RUNNING) != 0) + return; + /* * Cancel any pending I/O. */ Modified: projects/sv/sys/dev/ed/if_ed_isa.c ============================================================================== --- projects/sv/sys/dev/ed/if_ed_isa.c Tue Aug 24 23:34:13 2010 (r211787) +++ projects/sv/sys/dev/ed/if_ed_isa.c Wed Aug 25 00:05:14 2010 (r211788) @@ -58,6 +58,7 @@ static struct isa_pnp_id ed_ids[] = { { 0x0131d805, NULL }, /* ANX3101 */ { 0x4cf48906, NULL }, /* ATIf44c */ { 0x01200507, NULL }, /* AXE2001 */ + { 0x0115180e, NULL }, /* CPX1501 */ { 0x0090252a, NULL }, /* JQE9000 */ { 0x0020832e, NULL }, /* KTC2000 */ { 0xd680d041, NULL }, /* PNP80d6 */ Modified: projects/sv/sys/dev/vr/if_vr.c ============================================================================== --- projects/sv/sys/dev/vr/if_vr.c Tue Aug 24 23:34:13 2010 (r211787) +++ projects/sv/sys/dev/vr/if_vr.c Wed Aug 25 00:05:14 2010 (r211788) @@ -1558,8 +1558,7 @@ vr_tick(void *xsc) if ((sc->vr_flags & VR_F_RESTART) != 0) { device_printf(sc->vr_dev, "restarting\n"); sc->vr_stat.num_restart++; - vr_stop(sc); - vr_reset(sc); + sc->vr_ifp->if_drv_flags &= ~IFF_DRV_RUNNING; vr_init_locked(sc); sc->vr_flags &= ~VR_F_RESTART; } @@ -2016,6 +2015,9 @@ vr_init_locked(struct vr_softc *sc) ifp = sc->vr_ifp; mii = device_get_softc(sc->vr_miibus); + if ((ifp->if_drv_flags & IFF_DRV_RUNNING) != 0) + return; + /* Cancel pending I/O and free all RX/TX buffers. */ vr_stop(sc); vr_reset(sc); @@ -2287,6 +2289,7 @@ vr_watchdog(struct vr_softc *sc) if_printf(sc->vr_ifp, "watchdog timeout " "(missed link)\n"); ifp->if_oerrors++; + ifp->if_drv_flags &= ~IFF_DRV_RUNNING; vr_init_locked(sc); return; } @@ -2294,8 +2297,7 @@ vr_watchdog(struct vr_softc *sc) ifp->if_oerrors++; if_printf(ifp, "watchdog timeout\n"); - vr_stop(sc); - vr_reset(sc); + ifp->if_drv_flags &= ~IFF_DRV_RUNNING; vr_init_locked(sc); if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd)) Modified: projects/sv/sys/pci/if_rl.c ============================================================================== --- projects/sv/sys/pci/if_rl.c Tue Aug 24 23:34:13 2010 (r211787) +++ projects/sv/sys/pci/if_rl.c Wed Aug 25 00:05:14 2010 (r211788) @@ -1302,6 +1302,7 @@ rl_rxeof(struct rl_softc *sc) total_len < ETHER_MIN_LEN || total_len > ETHER_MAX_LEN + ETHER_VLAN_ENCAP_LEN) { ifp->if_ierrors++; + ifp->if_drv_flags &= ~IFF_DRV_RUNNING; rl_init_locked(sc); return (rx_npkts); } @@ -1413,6 +1414,7 @@ rl_txeof(struct rl_softc *sc) CSR_WRITE_4(sc, RL_TXCFG, RL_TXCFG_CONFIG); oldthresh = sc->rl_txthresh; /* error recovery */ + ifp->if_drv_flags &= ~IFF_DRV_RUNNING; rl_init_locked(sc); /* restore original threshold */ sc->rl_txthresh = oldthresh; @@ -1606,8 +1608,10 @@ rl_poll_locked(struct ifnet *ifp, enum p /* XXX We should check behaviour on receiver stalls. */ - if (status & RL_ISR_SYSTEM_ERR) + if (status & RL_ISR_SYSTEM_ERR) { + ifp->if_drv_flags &= ~IFF_DRV_RUNNING; rl_init_locked(sc); + } } return (rx_npkts); } @@ -1645,8 +1649,10 @@ rl_intr(void *arg) rl_rxeof(sc); if ((status & RL_ISR_TX_OK) || (status & RL_ISR_TX_ERR)) rl_txeof(sc); - if (status & RL_ISR_SYSTEM_ERR) + if (status & RL_ISR_SYSTEM_ERR) { + ifp->if_drv_flags &= ~IFF_DRV_RUNNING; rl_init_locked(sc); + } } if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd)) @@ -1808,6 +1814,9 @@ rl_init_locked(struct rl_softc *sc) mii = device_get_softc(sc->rl_miibus); + if ((ifp->if_drv_flags & IFF_DRV_RUNNING) != 0) + return; + /* * Cancel pending I/O and free all RX/TX buffers. */ @@ -2036,6 +2045,7 @@ rl_watchdog(struct rl_softc *sc) rl_txeof(sc); rl_rxeof(sc); + sc->rl_ifp->if_drv_flags &= ~IFF_DRV_RUNNING; rl_init_locked(sc); } Modified: projects/sv/sys/x86/x86/local_apic.c ============================================================================== --- projects/sv/sys/x86/x86/local_apic.c Tue Aug 24 23:34:13 2010 (r211787) +++ projects/sv/sys/x86/x86/local_apic.c Wed Aug 25 00:05:14 2010 (r211788) @@ -369,12 +369,13 @@ lapic_setup(int boot) if (la->la_timer_mode != 0) { KASSERT(la->la_timer_period != 0, ("lapic%u: zero divisor", lapic_id())); + lapic_timer_stop(); lapic_timer_set_divisor(lapic_timer_divisor); + lapic_timer_enable_intr(); if (la->la_timer_mode == 1) lapic_timer_periodic(la->la_timer_period); else lapic_timer_oneshot(la->la_timer_period); - lapic_timer_enable_intr(); } /* Program error LVT and clear any existing errors. */ @@ -505,12 +506,10 @@ lapic_et_start(struct eventtimer *et, et->et_max_period.frac = ((0xfffffffeLLU << 32) / et->et_frequency) << 32; } - la = &lapics[lapic_id()]; - /* - * Start up the timer on the BSP. The APs will kick off their - * timer during lapic_setup(). - */ + lapic_timer_stop(); lapic_timer_set_divisor(lapic_timer_divisor); + lapic_timer_enable_intr(); + la = &lapics[lapic_id()]; if (period != NULL) { la->la_timer_mode = 1; la->la_timer_period = @@ -526,7 +525,6 @@ lapic_et_start(struct eventtimer *et, la->la_timer_period += et->et_frequency * first->sec; lapic_timer_oneshot(la->la_timer_period); } - lapic_timer_enable_intr(); return (0); } @@ -862,8 +860,9 @@ lapic_timer_stop(void) value = lapic->lvt_timer; value &= ~APIC_LVTT_TM; - value &= ~APIC_LVT_M; + value |= APIC_LVT_M; lapic->lvt_timer = value; + lapic->icr_timer = 0; } static void Modified: projects/sv/usr.sbin/acpi/acpiconf/acpiconf.c ============================================================================== --- projects/sv/usr.sbin/acpi/acpiconf/acpiconf.c Tue Aug 24 23:34:13 2010 (r211787) +++ projects/sv/usr.sbin/acpi/acpiconf/acpiconf.c Wed Aug 25 00:05:14 2010 (r211788) @@ -86,7 +86,8 @@ acpi_battinfo(int num) { union acpi_battery_ioctl_arg battio; const char *pwr_units; - int hours, min; + int hours, min, amp; + uint32_t volt; if (num < 0 || num > 64) err(EX_USAGE, "invalid battery %d", num); @@ -95,11 +96,8 @@ acpi_battinfo(int num) battio.unit = num; if (ioctl(acpifd, ACPIIO_BATT_GET_BIF, &battio) == -1) err(EX_IOERR, "get battery info (%d) failed", num); - if (battio.bif.units == 0) - pwr_units = "mW"; - else - pwr_units = "mA"; - + amp = battio.bif.units; + pwr_units = amp ? "mA" : "mW"; if (battio.bif.dcap == UNKNOWN_CAP) printf("Design capacity:\tunknown\n"); else @@ -125,6 +123,14 @@ acpi_battinfo(int num) printf("Type:\t\t\t%s\n", battio.bif.type); printf("OEM info:\t\t%s\n", battio.bif.oeminfo); + /* Fetch battery voltage information. */ + volt = UNKNOWN_VOLTAGE; + battio.unit = num; + if (ioctl(acpifd, ACPIIO_BATT_GET_BST, &battio) == -1) + err(EX_IOERR, "get battery status (%d) failed", num); + if (battio.bst.state != ACPI_BATT_STAT_NOT_PRESENT) + volt = battio.bst.volt; + /* Print current battery state information. */ battio.unit = num; if (ioctl(acpifd, ACPIIO_BATT_GET_BATTINFO, &battio) == -1) @@ -154,22 +160,21 @@ acpi_battinfo(int num) } if (battio.battinfo.rate == -1) printf("Present rate:\t\tunknown\n"); - else + else if (amp && volt != UNKNOWN_VOLTAGE) { + printf("Present rate:\t\t%d mA (%d mW)\n", + battio.battinfo.rate, + battio.battinfo.rate * volt / 1000); + } else printf("Present rate:\t\t%d %s\n", battio.battinfo.rate, pwr_units); } else printf("State:\t\t\tnot present\n"); /* Print battery voltage information. */ - battio.unit = num; - if (ioctl(acpifd, ACPIIO_BATT_GET_BST, &battio) == -1) - err(EX_IOERR, "get battery status (%d) failed", num); - if (battio.bst.state != ACPI_BATT_STAT_NOT_PRESENT) { - if (battio.bst.volt == UNKNOWN_VOLTAGE) - printf("Voltage:\t\tunknown\n"); - else - printf("Voltage:\t\t%d mV\n", battio.bst.volt); - } + if (volt == UNKNOWN_VOLTAGE) + printf("Present voltage:\tunknown\n"); + else + printf("Present voltage:\t%d mV\n", volt); return (0); }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201008250005.o7P05EOT093684>