svn commit: r245552 - in projects/mtree: . bin/cp bin/pwait cddl/contrib/opensolaris/lib/libzfs/common contrib/gcc/config/arm etc/mtree etc/rc.d gnu/lib/csu gnu/lib/libgcc gnu/lib/libgcov gnu/lib/l...
Brooks Davis
brooks at FreeBSD.org
Thu Jan 17 15:45:53 UTC 2013
Author: brooks
Date: Thu Jan 17 15:45:45 2013
New Revision: 245552
URL: http://svnweb.freebsd.org/changeset/base/245552
Log:
MFH @ r245551
Added:
projects/mtree/sys/libkern/arm/ldivmod.S
- copied unchanged from r245551, head/sys/libkern/arm/ldivmod.S
projects/mtree/sys/libkern/arm/ldivmod_helper.c
- copied unchanged from r245551, head/sys/libkern/arm/ldivmod_helper.c
projects/mtree/tools/build/options/WITH_ARM_EABI
- copied unchanged from r245551, head/tools/build/options/WITH_ARM_EABI
projects/mtree/tools/build/options/WITH_OPENSSH_NONE_CIPHER
- copied unchanged from r245551, head/tools/build/options/WITH_OPENSSH_NONE_CIPHER
Modified:
projects/mtree/ObsoleteFiles.inc
projects/mtree/bin/cp/cp.c
projects/mtree/bin/pwait/pwait.c
projects/mtree/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_status.c
projects/mtree/contrib/gcc/config/arm/freebsd.h
projects/mtree/etc/mtree/BSD.usr.dist
projects/mtree/etc/rc.d/jail
projects/mtree/gnu/lib/csu/Makefile
projects/mtree/gnu/lib/libgcc/Makefile
projects/mtree/gnu/lib/libgcov/Makefile
projects/mtree/gnu/lib/libstdc++/Makefile
projects/mtree/gnu/usr.bin/cc/Makefile.inc
projects/mtree/gnu/usr.bin/cc/c++filt/Makefile
projects/mtree/gnu/usr.bin/cc/cc1/Makefile
projects/mtree/gnu/usr.bin/cc/cc1plus/Makefile
projects/mtree/gnu/usr.bin/cc/cc_int/Makefile
projects/mtree/gnu/usr.bin/cc/cc_tools/Makefile
projects/mtree/gnu/usr.bin/cc/doc/Makefile
projects/mtree/gnu/usr.bin/cc/gcov/Makefile
projects/mtree/gnu/usr.bin/cc/include/Makefile
projects/mtree/gnu/usr.bin/cc/libcpp/Makefile
projects/mtree/gnu/usr.bin/cc/libdecnumber/Makefile
projects/mtree/gnu/usr.bin/cc/libiberty/Makefile
projects/mtree/sbin/geom/class/raid/graid.8
projects/mtree/sbin/setkey/Makefile
projects/mtree/secure/lib/libssh/Makefile
projects/mtree/secure/usr.bin/ssh/Makefile
projects/mtree/secure/usr.sbin/sshd/Makefile
projects/mtree/share/man/man4/rl.4
projects/mtree/share/man/man5/src.conf.5
projects/mtree/share/misc/committers-doc.dot
projects/mtree/share/misc/committers-src.dot
projects/mtree/share/mk/bsd.man.mk
projects/mtree/share/mk/bsd.own.mk
projects/mtree/share/mk/bsd.prog.mk
projects/mtree/sys/arm/allwinner/console.c
projects/mtree/sys/arm/arm/cpufunc.c
projects/mtree/sys/arm/arm/db_trace.c
projects/mtree/sys/arm/arm/swtch.S
projects/mtree/sys/arm/arm/trap.c
projects/mtree/sys/arm/include/atomic.h
projects/mtree/sys/arm/include/proc.h
projects/mtree/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/txg.c
projects/mtree/sys/conf/files.arm
projects/mtree/sys/conf/options
projects/mtree/sys/dev/ath/if_ath.c
projects/mtree/sys/dev/ath/if_ath_misc.h
projects/mtree/sys/dev/ath/if_ath_sysctl.c
projects/mtree/sys/dev/ath/if_ath_tx.c
projects/mtree/sys/dev/ath/if_athvar.h
projects/mtree/sys/dev/cxgbe/adapter.h
projects/mtree/sys/dev/cxgbe/t4_main.c
projects/mtree/sys/dev/cxgbe/tom/t4_connect.c
projects/mtree/sys/dev/cxgbe/tom/t4_listen.c
projects/mtree/sys/dev/puc/puc.c
projects/mtree/sys/fs/nfs/nfs_commonkrpc.c
projects/mtree/sys/fs/nfs/nfs_commonsubs.c
projects/mtree/sys/fs/nfsclient/nfs_clport.c
projects/mtree/sys/fs/nullfs/null_vfsops.c
projects/mtree/sys/geom/raid/md_promise.c
projects/mtree/sys/geom/raid/tr_concat.c
projects/mtree/sys/kern/subr_param.c
projects/mtree/sys/libkern/arm/divsi3.S
projects/mtree/sys/net80211/ieee80211_power.c
projects/mtree/sys/nfsclient/nfs_krpc.c
projects/mtree/sys/nfsclient/nfs_subs.c
projects/mtree/sys/pci/if_rl.c
projects/mtree/sys/pci/if_rlreg.h
projects/mtree/tools/tools/cxgbetool/cxgbetool.c
projects/mtree/tools/tools/notescheck/notescheck.py
projects/mtree/usr.bin/man/man.1
projects/mtree/usr.bin/man/man.sh
projects/mtree/usr.sbin/cpucontrol/intel.c
projects/mtree/usr.sbin/cpucontrol/via.c
projects/mtree/usr.sbin/pw/pw_log.c
Directory Properties:
projects/mtree/ (props changed)
projects/mtree/cddl/contrib/opensolaris/ (props changed)
projects/mtree/cddl/contrib/opensolaris/lib/libzfs/ (props changed)
projects/mtree/contrib/gcc/ (props changed)
projects/mtree/gnu/lib/ (props changed)
projects/mtree/gnu/usr.bin/cc/cc_tools/ (props changed)
projects/mtree/sbin/ (props changed)
projects/mtree/share/man/man4/ (props changed)
projects/mtree/sys/ (props changed)
projects/mtree/sys/cddl/contrib/opensolaris/ (props changed)
projects/mtree/sys/conf/ (props changed)
Modified: projects/mtree/ObsoleteFiles.inc
==============================================================================
--- projects/mtree/ObsoleteFiles.inc Thu Jan 17 09:52:35 2013 (r245551)
+++ projects/mtree/ObsoleteFiles.inc Thu Jan 17 15:45:45 2013 (r245552)
@@ -38,6 +38,13 @@
# xargs -n1 | sort | uniq -d;
# done
+# 20130116: removed long unused directories for .1aout section manpages
+OLD_FILES+=usr/share/man/en.ISO8859-1/man1aout
+OLD_FILES+=usr/share/man/en.UTF-8/man1aout
+OLD_DIRS+=usr/share/man/man1aout
+OLD_DIRS+=usr/share/man/cat1aout
+OLD_DIRS+=usr/share/man/en.ISO8859-1/cat1aout
+OLD_DIRS+=usr/share/man/en.UTF-8/cat1aout
# 20121230: libdisk removed
OLD_FILES+=usr/share/man/man3/libdisk.3.gz usr/include/libdisk.h
OLD_FILES+=usr/lib/libdisk.a usr/lib32/libdisk.a
Modified: projects/mtree/bin/cp/cp.c
==============================================================================
--- projects/mtree/bin/cp/cp.c Thu Jan 17 09:52:35 2013 (r245551)
+++ projects/mtree/bin/cp/cp.c Thu Jan 17 15:45:45 2013 (r245552)
@@ -98,30 +98,28 @@ main(int argc, char *argv[])
{
struct stat to_stat, tmp_stat;
enum op type;
- int Hflag, Lflag, Pflag, ch, fts_options, r, have_trailing_slash;
+ int Hflag, Lflag, ch, fts_options, r, have_trailing_slash;
char *target;
fts_options = FTS_NOCHDIR | FTS_PHYSICAL;
- Hflag = Lflag = Pflag = 0;
+ Hflag = Lflag = 0;
while ((ch = getopt(argc, argv, "HLPRafilnprvx")) != -1)
switch (ch) {
case 'H':
Hflag = 1;
- Lflag = Pflag = 0;
+ Lflag = 0;
break;
case 'L':
Lflag = 1;
- Hflag = Pflag = 0;
+ Hflag = 0;
break;
case 'P':
- Pflag = 1;
Hflag = Lflag = 0;
break;
case 'R':
Rflag = 1;
break;
case 'a':
- Pflag = 1;
pflag = 1;
Rflag = 1;
Hflag = Lflag = 0;
@@ -146,7 +144,7 @@ main(int argc, char *argv[])
break;
case 'r':
rflag = Lflag = 1;
- Hflag = Pflag = 0;
+ Hflag = 0;
break;
case 'v':
vflag = 1;
Modified: projects/mtree/bin/pwait/pwait.c
==============================================================================
--- projects/mtree/bin/pwait/pwait.c Thu Jan 17 09:52:35 2013 (r245551)
+++ projects/mtree/bin/pwait/pwait.c Thu Jan 17 15:45:45 2013 (r245552)
@@ -141,5 +141,5 @@ main(int argc, char *argv[])
nleft -= n;
}
- return 0;
+ exit(EX_OK);
}
Modified: projects/mtree/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_status.c
==============================================================================
--- projects/mtree/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_status.c Thu Jan 17 09:52:35 2013 (r245551)
+++ projects/mtree/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_status.c Thu Jan 17 15:45:45 2013 (r245552)
@@ -150,6 +150,16 @@ find_vdev_problem(nvlist_t *vdev, int (*
return (B_TRUE);
}
+ /*
+ * Check any L2 cache devs
+ */
+ if (nvlist_lookup_nvlist_array(vdev, ZPOOL_CONFIG_L2CACHE, &child,
+ &children) == 0) {
+ for (c = 0; c < children; c++)
+ if (find_vdev_problem(child[c], func))
+ return (B_TRUE);
+ }
+
return (B_FALSE);
}
Modified: projects/mtree/contrib/gcc/config/arm/freebsd.h
==============================================================================
--- projects/mtree/contrib/gcc/config/arm/freebsd.h Thu Jan 17 09:52:35 2013 (r245551)
+++ projects/mtree/contrib/gcc/config/arm/freebsd.h Thu Jan 17 15:45:45 2013 (r245552)
@@ -29,8 +29,13 @@
{ "fbsd_dynamic_linker", FBSD_DYNAMIC_LINKER }
#undef SUBTARGET_EXTRA_ASM_SPEC
+#ifdef TARGET_ARM_EABI
+#define SUBTARGET_EXTRA_ASM_SPEC \
+ "%{mabi=apcs-gnu|mabi=atpcs:-meabi=gnu;:-meabi=4} %{fpic|fpie:-k} %{fPIC|fPIE:-k}"
+#else
#define SUBTARGET_EXTRA_ASM_SPEC \
"-matpcs %{fpic|fpie:-k} %{fPIC|fPIE:-k}"
+#endif
/* Default to full FPA if -mhard-float is specified. */
#undef SUBTARGET_ASM_FLOAT_SPEC
@@ -61,8 +66,25 @@
#define TARGET_ENDIAN_DEFAULT 0
#endif
+#ifdef TARGET_ARM_EABI
+/* We default to a soft-float ABI so that binaries can run on all
+ target hardware. */
+#undef TARGET_DEFAULT_FLOAT_ABI
+#define TARGET_DEFAULT_FLOAT_ABI ARM_FLOAT_ABI_SOFT
+
+#undef ARM_DEFAULT_ABI
+#define ARM_DEFAULT_ABI ARM_ABI_AAPCS_LINUX
+
+#undef TARGET_OS_CPP_BUILTINS
+#define TARGET_OS_CPP_BUILTINS() \
+ do \
+ { \
+ FBSD_TARGET_OS_CPP_BUILTINS(); \
+ TARGET_BPABI_CPP_BUILTINS(); \
+ } \
+ while (false)
+#else
/* Default it to use ATPCS with soft-VFP. */
-#undef TARGET_DEFAULT
#define TARGET_DEFAULT \
(MASK_APCS_FRAME \
| TARGET_ENDIAN_DEFAULT)
@@ -70,6 +92,10 @@
#undef ARM_DEFAULT_ABI
#define ARM_DEFAULT_ABI ARM_ABI_ATPCS
+#undef FPUTYPE_DEFAULT
+#define FPUTYPE_DEFAULT FPUTYPE_VFP
+#endif
+
/* Define the actual types of some ANSI-mandated types.
Needs to agree with <machine/ansi.h>. GCC defaults come from c-decl.c,
c-common.c, and config/<arch>/<arch>.h. */
@@ -134,5 +160,3 @@ do \
} \
while (0)
-#undef FPUTYPE_DEFAULT
-#define FPUTYPE_DEFAULT FPUTYPE_VFP
Modified: projects/mtree/etc/mtree/BSD.usr.dist
==============================================================================
--- projects/mtree/etc/mtree/BSD.usr.dist Thu Jan 17 09:52:35 2013 (r245551)
+++ projects/mtree/etc/mtree/BSD.usr.dist Thu Jan 17 15:45:45 2013 (r245552)
@@ -756,8 +756,6 @@
/set uname=man
cat1
..
- cat1aout
- ..
cat2
..
cat3
@@ -795,8 +793,6 @@
en.ISO8859-1 uname=root
cat1
..
- cat1aout
- ..
cat2
..
cat3
@@ -835,8 +831,6 @@
en.UTF-8 uname=root
cat1
..
- cat1aout
- ..
cat2
..
cat3
@@ -913,8 +907,6 @@
..
man1
..
- man1aout
- ..
man2
..
man3
Modified: projects/mtree/etc/rc.d/jail
==============================================================================
--- projects/mtree/etc/rc.d/jail Thu Jan 17 09:52:35 2013 (r245551)
+++ projects/mtree/etc/rc.d/jail Thu Jan 17 15:45:45 2013 (r245552)
@@ -509,7 +509,7 @@ jail_handle_ips_option()
esac
case "${_type}" in
inet) ;;
- inet6) ;;
+ inet6) ipv6_address_count=$((ipv6_address_count + 1)) ;;
*) warn "Could not determine address family. Not going" \
"to ${_action} address '${_addr}' for ${_jail}."
continue
@@ -546,6 +546,7 @@ jail_ips()
esac
# Handle addresses.
+ ipv6_address_count=0
jail_handle_ips_option ${_action} "${_ip}"
# Handle jail_xxx_ip_multi<N>
alias=0
@@ -558,6 +559,12 @@ jail_ips()
;;
esac
done
+ case ${ipv6_address_count} in
+ 0) ;;
+ *) # Sleep 1 second to let DAD complete before starting services.
+ sleep 1
+ ;;
+ esac
}
jail_prestart()
Modified: projects/mtree/gnu/lib/csu/Makefile
==============================================================================
--- projects/mtree/gnu/lib/csu/Makefile Thu Jan 17 09:52:35 2013 (r245551)
+++ projects/mtree/gnu/lib/csu/Makefile Thu Jan 17 15:45:45 2013 (r245552)
@@ -24,6 +24,10 @@ CFLAGS+= -I${GCCLIB}/include -I${GCCDIR}
CRTS_CFLAGS= -DCRTSTUFFS_O -DSHARED ${PICFLAG}
MKDEP= -DCRT_BEGIN
+.if ${TARGET_CPUARCH} == "arm" && ${MK_ARM_EABI} != "no"
+CFLAGS+= -DTARGET_ARM_EABI
+.endif
+
.if ${MACHINE_CPUARCH} == "ia64"
BEGINSRC= crtbegin.asm
ENDSRC= crtend.asm
Modified: projects/mtree/gnu/lib/libgcc/Makefile
==============================================================================
--- projects/mtree/gnu/lib/libgcc/Makefile Thu Jan 17 09:52:35 2013 (r245551)
+++ projects/mtree/gnu/lib/libgcc/Makefile Thu Jan 17 15:45:45 2013 (r245552)
@@ -15,6 +15,10 @@ MK_SSP= no
.include "${.CURDIR}/../../usr.bin/cc/Makefile.tgt"
+.if ${TARGET_CPUARCH} == "arm" && ${MK_ARM_EABI} != "no"
+CFLAGS+= -DTARGET_ARM_EABI
+.endif
+
.if ${TARGET_CPUARCH} == "mips"
LIB= gcc
.endif
@@ -55,10 +59,13 @@ LIB2FUNCS+= _fixuns${mode}si
.endfor
# Likewise double-word routines.
+.if ${TARGET_CPUARCH} != "arm" || ${MK_ARM_EABI} == "no"
+# These are implemented in an ARM specific file but will not be filtered out
.for mode in sf df xf tf
LIB2FUNCS+= _fix${mode}di _fixuns${mode}di
LIB2FUNCS+= _floatdi${mode} _floatundi${mode}
.endfor
+.endif
LIB2ADD = $(LIB2FUNCS_EXTRA)
LIB2ADD_ST = $(LIB2FUNCS_STATIC_EXTRA)
@@ -115,15 +122,14 @@ CFLAGS+= -fheinous-gnu-extensions
LIB1ASMSRC = lib1funcs.asm
LIB1ASMFUNCS = _dvmd_tls _bb_init_func
-LIB2FUNCS_EXTRA = floatunsidf.c floatunsisf.c
+.if ${MK_ARM_EABI} != "no"
+LIB1ASMFUNCS+= _addsubdf3 _addsubsf3 _cmpdf2 _cmpsf2 _fixdfsi _fixsfsi \
+ _fixunsdfsi _fixunsdfsi _muldivdf3 _muldivsf3 _udivsi3
-# Not now
-#LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_tls _bb_init_func
-#LIB1ASMFUNCS+= _call_via_rX _interwork_call_via_rX \
-# _lshrdi3 _ashrdi3 _ashldi3 \
-# _negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi _fixunsdfsi \
-# _truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2 \
-# _fixsfsi _fixunssfsi _floatdidf _floatdisf
+LIB2ADDEH = unwind-arm.c libunwind.S pr-support.c unwind-c.c
+.else
+LIB2FUNCS_EXTRA = floatunsidf.c floatunsisf.c
+.endif
.endif
.if ${TARGET_CPUARCH} == mips
@@ -329,6 +335,9 @@ CLEANFILES += cs-*.h option*
SHLIB_MKMAP = ${GCCDIR}/mkmap-symver.awk
SHLIB_MKMAP_OPTS =
SHLIB_MAPFILES = ${GCCDIR}/libgcc-std.ver
+.if ${TARGET_CPUARCH} == "arm" && ${MK_ARM_EABI} != "no"
+SHLIB_MAPFILES += ${GCCDIR}/config/arm/libgcc-bpabi.ver
+.endif
VERSION_MAP = libgcc.map
libgcc.map: ${SHLIB_MKMAP} ${SHLIB_MAPFILES} ${SOBJS} ${OBJS:R:S/$/.So/}
Modified: projects/mtree/gnu/lib/libgcov/Makefile
==============================================================================
--- projects/mtree/gnu/lib/libgcov/Makefile Thu Jan 17 09:52:35 2013 (r245551)
+++ projects/mtree/gnu/lib/libgcov/Makefile Thu Jan 17 15:45:45 2013 (r245552)
@@ -15,6 +15,11 @@ CFLAGS+= -DIN_GCC -DIN_LIBGCC2 -D__GCC_F
CFLAGS+= -D_PTHREADS -DGTHREAD_USE_WEAK
CFLAGS+= -I${.CURDIR}/../../usr.bin/cc/cc_tools \
-I${GCCLIB}/include -I${GCCDIR}/config -I${GCCDIR} -I.
+
+.if ${TARGET_CPUARCH} == "arm" && ${MK_ARM_EABI} != "no"
+CFLAGS+= -DTARGET_ARM_EABI
+.endif
+
#
# Library members defined in libgcov.c.
# Defined in libgcov.c, included only in gcov library
Modified: projects/mtree/gnu/lib/libstdc++/Makefile
==============================================================================
--- projects/mtree/gnu/lib/libstdc++/Makefile Thu Jan 17 09:52:35 2013 (r245551)
+++ projects/mtree/gnu/lib/libstdc++/Makefile Thu Jan 17 15:45:45 2013 (r245552)
@@ -1,5 +1,7 @@
# $FreeBSD$
+.include <bsd.own.mk>
+
GCCVER= 4.2
GCCDIR= ${.CURDIR}/../../../contrib/gcc
GCCLIB= ${.CURDIR}/../../../contrib/gcclibs
@@ -14,7 +16,7 @@ LIB= stdc++
SHLIB_MAJOR= 6
CFLAGS+= -DIN_GLIBCPP_V3 -DHAVE_CONFIG_H
-.if ${MACHINE_CPUARCH} == "arm"
+.if ${MACHINE_CPUARCH} == "arm" && ${MK_ARM_EABI} == "no"
CFLAGS+= -D_GLIBCXX_SJLJ_EXCEPTIONS=1
.endif
CFLAGS+= -I${.CURDIR} -I${SUPDIR} -I${GCCDIR} -I${SRCDIR}/include
@@ -594,7 +596,13 @@ gthr-default.h: ${GCCDIR}/gthr-posix.h
CLEANFILES+= ${THRHDRS}
+.if ${MACHINE_CPUARCH} == "arm" && ${MK_ARM_EABI} != "no"
+unwind.h: ${GCCDIR}/config/arm/unwind-arm.h
+.else
unwind.h: ${GCCDIR}/unwind-generic.h
+.endif
+
+unwind.h:
ln -sf ${.ALLSRC} ${.TARGET}
SRCS+= unwind.h
Modified: projects/mtree/gnu/usr.bin/cc/Makefile.inc
==============================================================================
--- projects/mtree/gnu/usr.bin/cc/Makefile.inc Thu Jan 17 09:52:35 2013 (r245551)
+++ projects/mtree/gnu/usr.bin/cc/Makefile.inc Thu Jan 17 15:45:45 2013 (r245552)
@@ -26,6 +26,10 @@ CSTD?= gnu89
CFLAGS+= -DCROSS_COMPILE
.endif
+.if ${TARGET_CPUARCH} == "arm" && ${MK_ARM_EABI} != "no"
+CFLAGS+= -DTARGET_ARM_EABI
+.endif
+
.if ${TARGET_ARCH} == "armeb" || ${TARGET_ARCH} == "armv6eb"
CFLAGS += -DTARGET_ENDIAN_DEFAULT=MASK_BIG_END
.endif
Modified: projects/mtree/gnu/usr.bin/cc/c++filt/Makefile
==============================================================================
--- projects/mtree/gnu/usr.bin/cc/c++filt/Makefile Thu Jan 17 09:52:35 2013 (r245551)
+++ projects/mtree/gnu/usr.bin/cc/c++filt/Makefile Thu Jan 17 15:45:45 2013 (r245552)
@@ -1,5 +1,8 @@
# $FreeBSD$
+NO_MAN=
+.include <bsd.own.mk>
+
.include "../Makefile.inc"
.include "../Makefile.fe"
@@ -7,7 +10,6 @@
PROG= c++filt
SRCS= cp-demangle.c
-NO_MAN=
CFLAGS+= -DSTANDALONE_DEMANGLER -DVERSION=\"$(GCC_VERSION)\"
Modified: projects/mtree/gnu/usr.bin/cc/cc1/Makefile
==============================================================================
--- projects/mtree/gnu/usr.bin/cc/cc1/Makefile Thu Jan 17 09:52:35 2013 (r245551)
+++ projects/mtree/gnu/usr.bin/cc/cc1/Makefile Thu Jan 17 15:45:45 2013 (r245552)
@@ -1,9 +1,10 @@
# $FreeBSD$
-.include "../Makefile.inc"
NO_MAN=
.include <bsd.own.mk>
+.include "../Makefile.inc"
+
.PATH: ${GCCDIR}
PROG= cc1
Modified: projects/mtree/gnu/usr.bin/cc/cc1plus/Makefile
==============================================================================
--- projects/mtree/gnu/usr.bin/cc/cc1plus/Makefile Thu Jan 17 09:52:35 2013 (r245551)
+++ projects/mtree/gnu/usr.bin/cc/cc1plus/Makefile Thu Jan 17 15:45:45 2013 (r245552)
@@ -1,9 +1,10 @@
# $FreeBSD$
-.include "../Makefile.inc"
NO_MAN=
.include <bsd.own.mk>
+.include "../Makefile.inc"
+
.PATH: ${GCCDIR}/cp ${GCCDIR}
PROG= cc1plus
Modified: projects/mtree/gnu/usr.bin/cc/cc_int/Makefile
==============================================================================
--- projects/mtree/gnu/usr.bin/cc/cc_int/Makefile Thu Jan 17 09:52:35 2013 (r245551)
+++ projects/mtree/gnu/usr.bin/cc/cc_int/Makefile Thu Jan 17 15:45:45 2013 (r245552)
@@ -1,5 +1,7 @@
# $FreeBSD$
+.include <bsd.own.mk>
+
.include "../Makefile.inc"
.include "../Makefile.ver"
Modified: projects/mtree/gnu/usr.bin/cc/cc_tools/Makefile
==============================================================================
--- projects/mtree/gnu/usr.bin/cc/cc_tools/Makefile Thu Jan 17 09:52:35 2013 (r245551)
+++ projects/mtree/gnu/usr.bin/cc/cc_tools/Makefile Thu Jan 17 15:45:45 2013 (r245552)
@@ -51,6 +51,9 @@ TARGET_INC+= ${GCC_CPU}/elf.h
.endif
.if ${TARGET_CPUARCH} == "arm"
TARGET_INC+= ${GCC_CPU}/aout.h
+.if ${MK_ARM_EABI} != "no"
+TARGET_INC+= ${GCC_CPU}/bpabi.h
+.endif
.endif
.if ${TARGET_ARCH} == "powerpc64"
TARGET_INC+= ${GCC_CPU}/biarch64.h
@@ -349,7 +352,13 @@ gthr-default.h: ${GCCDIR}/gthr-posix.h
GENSRCS+= gthr-default.h
+.if ${TARGET_CPUARCH} == "arm" && ${MK_ARM_EABI} != "no"
+unwind.h: ${GCCDIR}/config/arm/unwind-arm.h
+.else
unwind.h: ${GCCDIR}/unwind-generic.h
+.endif
+
+unwind.h:
ln -sf ${.ALLSRC} ${.TARGET}
GENSRCS+= unwind.h
Modified: projects/mtree/gnu/usr.bin/cc/doc/Makefile
==============================================================================
--- projects/mtree/gnu/usr.bin/cc/doc/Makefile Thu Jan 17 09:52:35 2013 (r245551)
+++ projects/mtree/gnu/usr.bin/cc/doc/Makefile Thu Jan 17 15:45:45 2013 (r245552)
@@ -1,5 +1,7 @@
# $FreeBSD$
+.include <bsd.own.mk>
+
.include "../Makefile.inc"
.include "../Makefile.ver"
Modified: projects/mtree/gnu/usr.bin/cc/gcov/Makefile
==============================================================================
--- projects/mtree/gnu/usr.bin/cc/gcov/Makefile Thu Jan 17 09:52:35 2013 (r245551)
+++ projects/mtree/gnu/usr.bin/cc/gcov/Makefile Thu Jan 17 15:45:45 2013 (r245552)
@@ -1,5 +1,7 @@
# $FreeBSD$
+.include <bsd.own.mk>
+
.include "../Makefile.inc"
.include "../Makefile.ver"
Modified: projects/mtree/gnu/usr.bin/cc/include/Makefile
==============================================================================
--- projects/mtree/gnu/usr.bin/cc/include/Makefile Thu Jan 17 09:52:35 2013 (r245551)
+++ projects/mtree/gnu/usr.bin/cc/include/Makefile Thu Jan 17 15:45:45 2013 (r245552)
@@ -1,5 +1,7 @@
# $FreeBSD$
+.include <bsd.own.mk>
+
.include "../Makefile.inc"
INCSDIR=${INCLUDEDIR}/gcc/${GCCVER}
Modified: projects/mtree/gnu/usr.bin/cc/libcpp/Makefile
==============================================================================
--- projects/mtree/gnu/usr.bin/cc/libcpp/Makefile Thu Jan 17 09:52:35 2013 (r245551)
+++ projects/mtree/gnu/usr.bin/cc/libcpp/Makefile Thu Jan 17 15:45:45 2013 (r245552)
@@ -1,5 +1,7 @@
# $FreeBSD$
+.include <bsd.own.mk>
+
# Use our headers in preference to ones from ../cc_tools.
CFLAGS+= -I${.CURDIR} -I.
Modified: projects/mtree/gnu/usr.bin/cc/libdecnumber/Makefile
==============================================================================
--- projects/mtree/gnu/usr.bin/cc/libdecnumber/Makefile Thu Jan 17 09:52:35 2013 (r245551)
+++ projects/mtree/gnu/usr.bin/cc/libdecnumber/Makefile Thu Jan 17 15:45:45 2013 (r245552)
@@ -1,5 +1,7 @@
# $FreeBSD$
+.include <bsd.own.mk>
+
# Use our headers in preference to ones from ../cc_tools.
CFLAGS+= -I${.CURDIR} -I.
Modified: projects/mtree/gnu/usr.bin/cc/libiberty/Makefile
==============================================================================
--- projects/mtree/gnu/usr.bin/cc/libiberty/Makefile Thu Jan 17 09:52:35 2013 (r245551)
+++ projects/mtree/gnu/usr.bin/cc/libiberty/Makefile Thu Jan 17 15:45:45 2013 (r245552)
@@ -1,5 +1,7 @@
# $FreeBSD$
+.include <bsd.own.mk>
+
#
# Make sure we will pick up our config.h file first, not the one from
# cc_tools.
Modified: projects/mtree/sbin/geom/class/raid/graid.8
==============================================================================
--- projects/mtree/sbin/geom/class/raid/graid.8 Thu Jan 17 09:52:35 2013 (r245551)
+++ projects/mtree/sbin/geom/class/raid/graid.8 Thu Jan 17 15:45:45 2013 (r245552)
@@ -24,7 +24,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd September 13, 2012
+.Dd January 16, 2013
.Dt GRAID 8
.Os
.Sh NAME
@@ -274,7 +274,6 @@ complete it there.
Do not run GEOM RAID class on migrating volumes under pain of possible data
corruption!
.Sh 2TiB BARRIERS
-Promise metadata format does not support disks above 2TiB.
NVIDIA metadata format does not support volumes above 2TiB.
.Sh SYSCTL VARIABLES
The following
Modified: projects/mtree/sbin/setkey/Makefile
==============================================================================
--- projects/mtree/sbin/setkey/Makefile Thu Jan 17 09:52:35 2013 (r245551)
+++ projects/mtree/sbin/setkey/Makefile Thu Jan 17 15:45:45 2013 (r245552)
@@ -61,7 +61,7 @@ CLEANFILES+= scriptdump y.tab.h
#SCRIPTS= scriptdump
-LOCALPREFIX= /usr
+LOCALPREFIX= /usr/local
scriptdump: scriptdump.pl
sed -e 's#@LOCALPREFIX@#${LOCALPREFIX}#' < $> > scriptdump
Modified: projects/mtree/secure/lib/libssh/Makefile
==============================================================================
--- projects/mtree/secure/lib/libssh/Makefile Thu Jan 17 09:52:35 2013 (r245551)
+++ projects/mtree/secure/lib/libssh/Makefile Thu Jan 17 15:45:45 2013 (r245552)
@@ -38,6 +38,10 @@ DPADD+= ${LIBGSSAPI} ${LIBKRB5} ${LIBHX5
LDADD+= -lgssapi -lkrb5 -lhx509 -lasn1 -lcom_err -lmd -lroken
.endif
+.if ${MK_OPENSSH_NONE_CIPHER} != "no"
+CFLAGS+= -DNONE_CIPHER_ENABLED
+.endif
+
NO_LINT=
DPADD+= ${LIBCRYPTO} ${LIBCRYPT}
Modified: projects/mtree/secure/usr.bin/ssh/Makefile
==============================================================================
--- projects/mtree/secure/usr.bin/ssh/Makefile Thu Jan 17 09:52:35 2013 (r245551)
+++ projects/mtree/secure/usr.bin/ssh/Makefile Thu Jan 17 15:45:45 2013 (r245552)
@@ -25,6 +25,10 @@ DPADD+= ${LIBGSSAPI}
LDADD+= -lgssapi
.endif
+.if ${MK_OPENSSH_NONE_CIPHER} != "no"
+CFLAGS+= -DNONE_CIPHER_ENABLED
+.endif
+
DPADD+= ${LIBCRYPT} ${LIBCRYPTO}
LDADD+= -lcrypt -lcrypto
Modified: projects/mtree/secure/usr.sbin/sshd/Makefile
==============================================================================
--- projects/mtree/secure/usr.sbin/sshd/Makefile Thu Jan 17 09:52:35 2013 (r245551)
+++ projects/mtree/secure/usr.sbin/sshd/Makefile Thu Jan 17 15:45:45 2013 (r245552)
@@ -40,6 +40,10 @@ DPADD+= ${LIBGSSAPI_KRB5} ${LIBGSSAPI}
LDADD+= -lgssapi_krb5 -lgssapi -lkrb5 -lasn1
.endif
+.if ${MK_OPENSSH_NONE_CIPHER} != "no"
+CFLAGS+= -DNONE_CIPHER_ENABLED
+.endif
+
DPADD+= ${LIBCRYPTO} ${LIBCRYPT}
LDADD+= -lcrypto -lcrypt
Modified: projects/mtree/share/man/man4/rl.4
==============================================================================
--- projects/mtree/share/man/man4/rl.4 Thu Jan 17 09:52:35 2013 (r245551)
+++ projects/mtree/share/man/man4/rl.4 Thu Jan 17 15:45:45 2013 (r245552)
@@ -30,7 +30,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd August 22, 2010
+.Dd January 16, 2013
.Dt RL 4
.Os
.Sh NAME
@@ -155,6 +155,8 @@ Corega FEther CB-TXD
.It
Corega FEtherII CB-TXD
.It
+D-Link DFE-520TX (rev. C1)
+.It
D-Link DFE-528TX
.It
D-Link DFE-530TX+
Modified: projects/mtree/share/man/man5/src.conf.5
==============================================================================
--- projects/mtree/share/man/man5/src.conf.5 Thu Jan 17 09:52:35 2013 (r245551)
+++ projects/mtree/share/man/man5/src.conf.5 Thu Jan 17 15:45:45 2013 (r245552)
@@ -1,7 +1,7 @@
.\" DO NOT EDIT-- this file is automatically generated.
.\" from FreeBSD: head/tools/build/options/makeman 236279 2012-05-30 02:37:20Z gjb
.\" $FreeBSD$
-.Dd January 14, 2013
+.Dd January 17, 2013
.Dt SRC.CONF 5
.Os
.Sh NAME
@@ -805,7 +805,7 @@ Set to not build NLS catalogs.
Set to not build NLS catalog support for
.Xr csh 1 .
.It Va WITH_NMTREE
-.\" from FreeBSD: head/tools/build/options/WITH_NMTREE 245241 2013-01-09 21:07:08Z brooks
+.\" from FreeBSD: head/tools/build/options/WITH_NMTREE 245435 2013-01-14 20:38:32Z brooks
Set to install
.Xr nmtree 8
as
@@ -835,6 +835,16 @@ Infiniband software stack.
.It Va WITHOUT_OPENSSH
.\" from FreeBSD: head/tools/build/options/WITHOUT_OPENSSH 156932 2006-03-21 07:50:50Z ru
Set to not build OpenSSH.
+.It Va WITH_OPENSSH_NONE_CIPHER
+.\" from FreeBSD: head/tools/build/options/WITH_OPENSSH_NONE_CIPHER 245527 2013-01-17 01:51:04Z bz
+Set to include the "None" cipher support in OpenSSH and its libraries.
+Additional adjustments may need to be done to system configuration
+files, such as
+.Xr sshd_config 5 ,
+to enable this cipher.
+Please see
+.Pa /usr/src/crypto/openssh/README.hpn
+for full details.
.It Va WITHOUT_OPENSSL
.\" from FreeBSD: head/tools/build/options/WITHOUT_OPENSSL 156932 2006-03-21 07:50:50Z ru
Set to not build OpenSSL.
Modified: projects/mtree/share/misc/committers-doc.dot
==============================================================================
--- projects/mtree/share/misc/committers-doc.dot Thu Jan 17 09:52:35 2013 (r245551)
+++ projects/mtree/share/misc/committers-doc.dot Thu Jan 17 15:45:45 2013 (r245552)
@@ -116,6 +116,7 @@ gabor -> issyl0
gabor -> ebrandi
gjb -> wblock
+gjb -> rene
hrs -> ryusuke
Modified: projects/mtree/share/misc/committers-src.dot
==============================================================================
--- projects/mtree/share/misc/committers-src.dot Thu Jan 17 09:52:35 2013 (r245551)
+++ projects/mtree/share/misc/committers-src.dot Thu Jan 17 15:45:45 2013 (r245552)
@@ -117,6 +117,7 @@ bruno [label="Bruno Ducrot\nbruno at FreeBS
bryanv [label="Bryan Venteicher\nbryanv at FreeBSD.org\n2012/11/03"]
bschmidt [label="Bernhard Schmidt\nbschmidt at FreeBSD.org\n2010/02/06"]
bz [label="Bjoern A. Zeeb\nbz at FreeBSD.org\n2004/07/27"]
+carl [label="Carl Delsey\ncarl at FreeBSD.org\n2013/01/14"]
cognet [label="Olivier Houchard\ncognet at FreeBSD.org\n2002/10/09"]
cokane [label="Coleman Kane\ncokane at FreeBSD.org\n2000/06/19"]
cperciva [label="Colin Percival\ncperciva at FreeBSD.org\n2004/01/20"]
@@ -454,6 +455,8 @@ jhb -> peterj
jhb -> pfg
jhb -> rnoland
+jimharris -> carl
+
jkh -> grog
jkh -> imp
jkh -> jlemon
Modified: projects/mtree/share/mk/bsd.man.mk
==============================================================================
--- projects/mtree/share/mk/bsd.man.mk Thu Jan 17 09:52:35 2013 (r245551)
+++ projects/mtree/share/mk/bsd.man.mk Thu Jan 17 15:45:45 2013 (r245552)
@@ -62,7 +62,7 @@ MROFF_CMD?= groff -Tascii -mtty-char -ma
MCOMPRESS_CMD?= ${COMPRESS_CMD}
MCOMPRESS_EXT?= ${COMPRESS_EXT}
-SECTIONS= 1 1aout 2 3 4 5 6 7 8 9
+SECTIONS= 1 2 3 4 5 6 7 8 9
.SUFFIXES: ${SECTIONS:S/^/./g}
# Backwards compatibility.
Modified: projects/mtree/share/mk/bsd.own.mk
==============================================================================
--- projects/mtree/share/mk/bsd.own.mk Thu Jan 17 09:52:35 2013 (r245551)
+++ projects/mtree/share/mk/bsd.own.mk Thu Jan 17 15:45:45 2013 (r245552)
@@ -352,6 +352,7 @@ __DEFAULT_YES_OPTIONS = \
ZONEINFO
__DEFAULT_NO_OPTIONS = \
+ ARM_EABI \
BIND_IDN \
BIND_LARGE_FILE \
BIND_LIBS \
@@ -369,6 +370,7 @@ __DEFAULT_NO_OPTIONS = \
NMTREE \
NAND \
OFED \
+ OPENSSH_NONE_CIPHER \
SHARED_TOOLCHAIN
#
Modified: projects/mtree/share/mk/bsd.prog.mk
==============================================================================
--- projects/mtree/share/mk/bsd.prog.mk Thu Jan 17 09:52:35 2013 (r245551)
+++ projects/mtree/share/mk/bsd.prog.mk Thu Jan 17 15:45:45 2013 (r245552)
@@ -95,8 +95,7 @@ ${PROG}: ${OBJS}
.if ${MK_MAN} != "no" && !defined(MAN) && \
!defined(MAN1) && !defined(MAN2) && !defined(MAN3) && \
!defined(MAN4) && !defined(MAN5) && !defined(MAN6) && \
- !defined(MAN7) && !defined(MAN8) && !defined(MAN9) && \
- !defined(MAN1aout)
+ !defined(MAN7) && !defined(MAN8) && !defined(MAN9)
MAN= ${PROG}.1
MAN1= ${MAN}
.endif
Modified: projects/mtree/sys/arm/allwinner/console.c
==============================================================================
--- projects/mtree/sys/arm/allwinner/console.c Thu Jan 17 09:52:35 2013 (r245551)
+++ projects/mtree/sys/arm/allwinner/console.c Thu Jan 17 15:45:45 2013 (r245552)
@@ -40,43 +40,39 @@ __FBSDID("$FreeBSD$");
#define A10_UART_BASE 0xe1c28000 /* UART0 */
#endif
-int reg_shift = 2;
+#define REG_SHIFT 2
-#define UART_DLL 0 /* Out: Divisor Latch Low */
-#define UART_DLM 1 /* Out: Divisor Latch High */
-#define UART_FCR 2 /* Out: FIFO Control Register */
-#define UART_LCR 3 /* Out: Line Control Register */
-#define UART_MCR 4 /* Out: Modem Control Register */
-#define UART_LSR 5 /* In: Line Status Register */
-#define UART_LSR_THRE 0x20 /* Transmit-hold-register empty */
-#define UART_LSR_DR 0x01 /* Receiver data ready */
-#define UART_MSR 6 /* In: Modem Status Register */
-#define UART_SCR 7 /* I/O: Scratch Register */
+#define UART_DLL 0 /* Out: Divisor Latch Low */
+#define UART_DLM 1 /* Out: Divisor Latch High */
+#define UART_FCR 2 /* Out: FIFO Control Register */
+#define UART_LCR 3 /* Out: Line Control Register */
+#define UART_MCR 4 /* Out: Modem Control Register */
+#define UART_LSR 5 /* In: Line Status Register */
+#define UART_LSR_THRE 0x20 /* Transmit-hold-register empty */
+#define UART_LSR_DR 0x01 /* Receiver data ready */
+#define UART_MSR 6 /* In: Modem Status Register */
+#define UART_SCR 7 /* I/O: Scratch Register */
-
-/*
- * uart related funcs
- */
-static u_int32_t
-uart_getreg(u_int32_t *bas)
+static uint32_t
+uart_getreg(uint32_t *bas)
{
- return *((volatile u_int32_t *)(bas)) & 0xff;
+ return *((volatile uint32_t *)(bas)) & 0xff;
}
static void
-uart_setreg(u_int32_t *bas, u_int32_t val)
+uart_setreg(uint32_t *bas, uint32_t val)
{
- *((volatile u_int32_t *)(bas)) = (u_int32_t)val;
+ *((volatile uint32_t *)(bas)) = val;
}
static int
ub_getc(void)
{
- while ((uart_getreg((u_int32_t *)(A10_UART_BASE +
- (UART_LSR << reg_shift))) & UART_LSR_DR) == 0);
+ while ((uart_getreg((uint32_t *)(A10_UART_BASE +
+ (UART_LSR << REG_SHIFT))) & UART_LSR_DR) == 0);
__asm __volatile("nop");
- return (uart_getreg((u_int32_t *)A10_UART_BASE) & 0xff);
+ return (uart_getreg((uint32_t *)A10_UART_BASE) & 0xff);
}
static void
@@ -85,11 +81,11 @@ ub_putc(unsigned char c)
if (c == '\n')
ub_putc('\r');
- while ((uart_getreg((u_int32_t *)(A10_UART_BASE +
- (UART_LSR << reg_shift))) & UART_LSR_THRE) == 0)
+ while ((uart_getreg((uint32_t *)(A10_UART_BASE +
+ (UART_LSR << REG_SHIFT))) & UART_LSR_THRE) == 0)
__asm __volatile("nop");
- uart_setreg((u_int32_t *)A10_UART_BASE, c);
+ uart_setreg((uint32_t *)A10_UART_BASE, c);
}
static cn_probe_t uart_cnprobe;
@@ -121,8 +117,8 @@ uart_cnprobe(struct consdev *cp)
static void
uart_cninit(struct consdev *cp)
{
- uart_setreg((u_int32_t *)(A10_UART_BASE +
- (UART_FCR << reg_shift)), 0x06);
+ uart_setreg((uint32_t *)(A10_UART_BASE +
+ (UART_FCR << REG_SHIFT)), 0x06);
}
void
Modified: projects/mtree/sys/arm/arm/cpufunc.c
==============================================================================
--- projects/mtree/sys/arm/arm/cpufunc.c Thu Jan 17 09:52:35 2013 (r245551)
+++ projects/mtree/sys/arm/arm/cpufunc.c Thu Jan 17 15:45:45 2013 (r245552)
@@ -1146,7 +1146,7 @@ struct cpu_functions cortexa_cpufuncs =
/* Other functions */
cpufunc_nullop, /* flush_prefetchbuf */
- arm11_drain_writebuf, /* drain_writebuf */
+ armv7_drain_writebuf, /* drain_writebuf */
cpufunc_nullop, /* flush_brnchtgt_C */
(void *)cpufunc_nullop, /* flush_brnchtgt_E */
@@ -1157,7 +1157,7 @@ struct cpu_functions cortexa_cpufuncs =
cpufunc_null_fixup, /* dataabt_fixup */
cpufunc_null_fixup, /* prefetchabt_fixup */
- arm11_context_switch, /* context_switch */
+ armv7_context_switch, /* context_switch */
cortexa_setup /* cpu setup */
};
Modified: projects/mtree/sys/arm/arm/db_trace.c
==============================================================================
--- projects/mtree/sys/arm/arm/db_trace.c Thu Jan 17 09:52:35 2013 (r245551)
+++ projects/mtree/sys/arm/arm/db_trace.c Thu Jan 17 15:45:45 2013 (r245552)
@@ -50,6 +50,395 @@ __FBSDID("$FreeBSD$");
#include <ddb/db_sym.h>
#include <ddb/db_output.h>
+#ifdef __ARM_EABI__
+/*
+ * Definitions for the instruction interpreter.
+ *
+ * The ARM EABI specifies how to perform the frame unwinding in the
+ * Exception Handling ABI for the ARM Architecture document. To perform
+ * the unwind we need to know the initial frame pointer, stack pointer,
+ * link register and program counter. We then find the entry within the
+ * index table that points to the function the program counter is within.
+ * This gives us either a list of three instructions to process, a 31-bit
+ * relative offset to a table of instructions, or a value telling us
+ * we can't unwind any further.
+ *
+ * When we have the instructions to process we need to decode them
+ * following table 4 in section 9.3. This describes a collection of bit
+ * patterns to encode that steps to take to update the stack pointer and
+ * link register to the correct values at the start of the function.
+ */
+
+/* A special case when we are unable to unwind past this function */
+#define EXIDX_CANTUNWIND 1
+
+/* The register names */
+#define FP 11
+#define SP 13
+#define LR 14
+#define PC 15
+
+/*
+ * These are set in the linker script. Their addresses will be
+ * either the start or end of the exception table or index.
+ */
+extern int extab_start, extab_end, exidx_start, exidx_end;
+
+/*
+ * Entry types.
+ * These are the only entry types that have been seen in the kernel.
+ */
+#define ENTRY_MASK 0xff000000
+#define ENTRY_ARM_SU16 0x80000000
+#define ENTRY_ARM_LU16 0x81000000
+
+/* Instruction masks. */
+#define INSN_VSP_MASK 0xc0
+#define INSN_VSP_SIZE_MASK 0x3f
+#define INSN_STD_MASK 0xf0
+#define INSN_STD_DATA_MASK 0x0f
+#define INSN_POP_TYPE_MASK 0x08
+#define INSN_POP_COUNT_MASK 0x07
+#define INSN_VSP_LARGE_INC_MASK 0xff
+
+/* Instruction definitions */
+#define INSN_VSP_INC 0x00
+#define INSN_VSP_DEC 0x40
+#define INSN_POP_MASKED 0x80
+#define INSN_VSP_REG 0x90
+#define INSN_POP_COUNT 0xa0
+#define INSN_FINISH 0xb0
+#define INSN_VSP_LARGE_INC 0xb2
+
+/* An item in the exception index table */
+struct unwind_idx {
+ uint32_t offset;
+ uint32_t insn;
+};
+
+/* The state of the unwind process */
+struct unwind_state {
+ uint32_t registers[16];
+ uint32_t start_pc;
+ uint32_t *insn;
+ u_int entries;
+ u_int byte;
+ uint16_t update_mask;
+};
+
+/* We need to provide these but never use them */
+void __aeabi_unwind_cpp_pr0(void);
+void __aeabi_unwind_cpp_pr1(void);
+void __aeabi_unwind_cpp_pr2(void);
+
+void
+__aeabi_unwind_cpp_pr0(void)
+{
+ panic("__aeabi_unwind_cpp_pr0");
+}
+
+void
+__aeabi_unwind_cpp_pr1(void)
+{
+ panic("__aeabi_unwind_cpp_pr1");
+}
+
+void
+__aeabi_unwind_cpp_pr2(void)
+{
+ panic("__aeabi_unwind_cpp_pr2");
+}
+
+/* Expand a 31-bit signed value to a 32-bit signed value */
+static __inline int32_t
+db_expand_prel31(uint32_t prel31)
+{
+
+ return ((int32_t)(prel31 & 0x7fffffffu) << 1) / 2;
+}
+
+/*
+ * Perform a binary search of the index table to find the function
+ * with the largest address that doesn't exceed addr.
+ */
+static struct unwind_idx *
+db_find_index(uint32_t addr)
+{
+ unsigned int min, mid, max;
+ struct unwind_idx *start;
+ struct unwind_idx *item;
+ int32_t prel31_addr;
+ uint32_t func_addr;
+
+ start = (struct unwind_idx *)&exidx_start;
+
+ min = 0;
+ max = (&exidx_end - &exidx_start) / 2;
+
+ while (min != max) {
+ mid = min + (max - min + 1) / 2;
+
+ item = &start[mid];
+
+ prel31_addr = db_expand_prel31(item->offset);
+ func_addr = (uint32_t)&item->offset + prel31_addr;
+
+ if (func_addr <= addr) {
+ min = mid;
+ } else {
+ max = mid - 1;
+ }
+ }
+
+ return &start[min];
+}
+
+/* Reads the next byte from the instruction list */
+static uint8_t
+db_unwind_exec_read_byte(struct unwind_state *state)
+{
+ uint8_t insn;
+
+ /* Read the unwind instruction */
+ insn = (*state->insn) >> (state->byte * 8);
+
+ /* Update the location of the next instruction */
+ if (state->byte == 0) {
+ state->byte = 3;
+ state->insn++;
+ state->entries--;
+ } else
+ state->byte--;
+
+ return insn;
+}
+
+/* Executes the next instruction on the list */
+static int
+db_unwind_exec_insn(struct unwind_state *state)
+{
+ unsigned int insn;
+ uint32_t *vsp = (uint32_t *)state->registers[SP];
+ int update_vsp = 0;
+
+ /* This should never happen */
+ if (state->entries == 0)
+ return 1;
+
+ /* Read the next instruction */
+ insn = db_unwind_exec_read_byte(state);
+
+ if ((insn & INSN_VSP_MASK) == INSN_VSP_INC) {
+ state->registers[SP] += ((insn & INSN_VSP_SIZE_MASK) << 2) + 4;
+
+ } else if ((insn & INSN_VSP_MASK) == INSN_VSP_DEC) {
+ state->registers[SP] -= ((insn & INSN_VSP_SIZE_MASK) << 2) + 4;
+
+ } else if ((insn & INSN_STD_MASK) == INSN_POP_MASKED) {
+ unsigned int mask, reg;
+
+ /* Load the mask */
+ mask = db_unwind_exec_read_byte(state);
+ mask |= (insn & INSN_STD_DATA_MASK) << 8;
+
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-src-projects
mailing list