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...
Attilio Rao
attilio at FreeBSD.org
Wed Aug 25 00:05:15 UTC 2010
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);
}
More information about the svn-src-projects
mailing list