svn commit: r265873 - in projects/random_number_generator: . bin/sh bin/sh/tests/builtins cddl/contrib/opensolaris/cmd/zpool cddl/contrib/opensolaris/lib/libzfs/common lib lib/clang lib/libc/gen li...
Mark Murray
markm at FreeBSD.org
Sun May 11 09:14:37 UTC 2014
Author: markm
Date: Sun May 11 09:14:29 2014
New Revision: 265873
URL: http://svnweb.freebsd.org/changeset/base/265873
Log:
MFC - tracking commit.
Merging r265820 through r265872.
Added:
projects/random_number_generator/.arcconfig
- copied unchanged from r265872, head/.arcconfig
projects/random_number_generator/bin/sh/tests/builtins/getopts6.0
- copied unchanged from r265872, head/bin/sh/tests/builtins/getopts6.0
projects/random_number_generator/bin/sh/tests/builtins/getopts7.0
- copied unchanged from r265872, head/bin/sh/tests/builtins/getopts7.0
projects/random_number_generator/bin/sh/tests/builtins/getopts8.0
- copied unchanged from r265872, head/bin/sh/tests/builtins/getopts8.0
projects/random_number_generator/bin/sh/tests/builtins/getopts8.0.stdout
- copied unchanged from r265872, head/bin/sh/tests/builtins/getopts8.0.stdout
projects/random_number_generator/tools/build/options/WITHOUT_DOCCOMPRESS
- copied unchanged from r265872, head/tools/build/options/WITHOUT_DOCCOMPRESS
projects/random_number_generator/tools/build/options/WITHOUT_GNU_GREP_COMPAT
- copied unchanged from r265872, head/tools/build/options/WITHOUT_GNU_GREP_COMPAT
projects/random_number_generator/tools/build/options/WITHOUT_MANCOMPRESS
- copied unchanged from r265872, head/tools/build/options/WITHOUT_MANCOMPRESS
projects/random_number_generator/tools/build/options/WITHOUT_SYSCALL_COMPAT
- copied unchanged from r265872, head/tools/build/options/WITHOUT_SYSCALL_COMPAT
projects/random_number_generator/tools/build/options/WITHOUT_WARNS
- copied unchanged from r265872, head/tools/build/options/WITHOUT_WARNS
projects/random_number_generator/tools/build/options/WITH_FMAKE
- copied unchanged from r265872, head/tools/build/options/WITH_FMAKE
Deleted:
projects/random_number_generator/share/mk/bsd.pkg.mk
Modified:
projects/random_number_generator/Makefile
projects/random_number_generator/Makefile.inc1
projects/random_number_generator/bin/sh/options.c
projects/random_number_generator/bin/sh/tests/builtins/Makefile
projects/random_number_generator/cddl/contrib/opensolaris/cmd/zpool/zpool_vdev.c
projects/random_number_generator/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_import.c
projects/random_number_generator/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c
projects/random_number_generator/lib/Makefile
projects/random_number_generator/lib/clang/Makefile
projects/random_number_generator/lib/clang/clang.build.mk
projects/random_number_generator/lib/libc/gen/sem_new.c
projects/random_number_generator/lib/libedit/editline.3
projects/random_number_generator/lib/libedit/hist.h
projects/random_number_generator/lib/libedit/histedit.h
projects/random_number_generator/lib/libedit/history.c
projects/random_number_generator/share/man/man4/udplite.4
projects/random_number_generator/share/mk/Makefile
projects/random_number_generator/share/mk/bsd.compiler.mk
projects/random_number_generator/share/mk/bsd.doc.mk
projects/random_number_generator/share/mk/bsd.opts.mk
projects/random_number_generator/share/mk/bsd.prog.mk
projects/random_number_generator/share/mk/bsd.sys.mk
projects/random_number_generator/share/mk/bsd.test.mk
projects/random_number_generator/share/mk/src.opts.mk
projects/random_number_generator/share/mk/sys.mk
projects/random_number_generator/sys/arm/arm/bus_space_generic.c
projects/random_number_generator/sys/arm/arm/cpufunc.c
projects/random_number_generator/sys/arm/arm/pl310.c
projects/random_number_generator/sys/arm/at91/at91_machdep.c
projects/random_number_generator/sys/arm/cavium/cns11xx/econa_machdep.c
projects/random_number_generator/sys/arm/conf/EXYNOS5250.common
projects/random_number_generator/sys/arm/include/atomic.h
projects/random_number_generator/sys/arm/include/cpufunc.h
projects/random_number_generator/sys/arm/lpc/lpc_gpio.c
projects/random_number_generator/sys/arm/lpc/lpc_machdep.c
projects/random_number_generator/sys/arm/lpc/lpcvar.h
projects/random_number_generator/sys/arm/mv/gpio.c
projects/random_number_generator/sys/arm/mv/mv_localbus.c
projects/random_number_generator/sys/arm/mv/mv_machdep.c
projects/random_number_generator/sys/arm/mv/mv_pci.c
projects/random_number_generator/sys/arm/mv/mvvar.h
projects/random_number_generator/sys/arm/mv/orion/db88f5xxx.c
projects/random_number_generator/sys/arm/rockchip/rk30xx_gpio.c
projects/random_number_generator/sys/arm/s3c2xx0/s3c24x0_machdep.c
projects/random_number_generator/sys/arm/xscale/i80321/ep80219_machdep.c
projects/random_number_generator/sys/arm/xscale/i80321/iq31244_machdep.c
projects/random_number_generator/sys/arm/xscale/i8134x/crb_machdep.c
projects/random_number_generator/sys/arm/xscale/ixp425/avila_machdep.c
projects/random_number_generator/sys/arm/xscale/pxa/pxa_machdep.c
projects/random_number_generator/sys/conf/Makefile.arm
projects/random_number_generator/sys/conf/files.powerpc
projects/random_number_generator/sys/conf/kern.mk
projects/random_number_generator/sys/conf/kern.pre.mk
projects/random_number_generator/sys/conf/kmod.mk
projects/random_number_generator/sys/dev/usb/controller/dwc_otg.c
projects/random_number_generator/sys/dev/usb/controller/dwc_otg.h
projects/random_number_generator/sys/dev/vt/hw/ofwfb/ofwfb.c
projects/random_number_generator/sys/modules/Makefile
projects/random_number_generator/sys/powerpc/conf/GENERIC
projects/random_number_generator/sys/powerpc/conf/GENERIC64
projects/random_number_generator/sys/powerpc/powerpc/platform.c
projects/random_number_generator/sys/powerpc/ps3/ps3_syscons.c
projects/random_number_generator/sys/vm/vm_fault.c
projects/random_number_generator/sys/vm/vm_map.c
projects/random_number_generator/tests/sys/netinet/Makefile
projects/random_number_generator/usr.bin/Makefile
projects/random_number_generator/usr.bin/clang/clang/Makefile
projects/random_number_generator/usr.bin/look/look.1
projects/random_number_generator/usr.bin/look/look.c
projects/random_number_generator/usr.bin/mesg/mesg.c
projects/random_number_generator/usr.bin/printf/printf.c
Directory Properties:
projects/random_number_generator/ (props changed)
projects/random_number_generator/cddl/ (props changed)
projects/random_number_generator/cddl/contrib/opensolaris/ (props changed)
projects/random_number_generator/cddl/contrib/opensolaris/lib/libzfs/ (props changed)
projects/random_number_generator/lib/libc/ (props changed)
projects/random_number_generator/share/man/man4/ (props changed)
projects/random_number_generator/sys/ (props changed)
projects/random_number_generator/sys/conf/ (props changed)
Copied: projects/random_number_generator/.arcconfig (from r265872, head/.arcconfig)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ projects/random_number_generator/.arcconfig Sun May 11 09:14:29 2014 (r265873, copy of r265872, head/.arcconfig)
@@ -0,0 +1,3 @@
+{
+ "phabricator.uri" : "https://phabric.freebsd.org/"
+}
Modified: projects/random_number_generator/Makefile
==============================================================================
--- projects/random_number_generator/Makefile Sun May 11 08:17:46 2014 (r265872)
+++ projects/random_number_generator/Makefile Sun May 11 09:14:29 2014 (r265873)
@@ -316,13 +316,6 @@ kernel: buildkernel installkernel
upgrade_checks:
.if ${HAVE_MAKE} != ${WANT_MAKE}
@(cd ${.CURDIR} && ${MAKE} ${WANT_MAKE:S,^f,,})
-.elif ${WANT_MAKE} == "fmake"
- @if ! (cd ${.CURDIR}/tools/build/make_check && \
- PATH=${PATH} ${BINMAKE} obj >/dev/null 2>&1 && \
- PATH=${PATH} ${BINMAKE} >/dev/null 2>&1); \
- then \
- (cd ${.CURDIR} && ${MAKE} make); \
- fi
.endif
#
@@ -334,20 +327,20 @@ MMAKEENV= MAKEOBJDIRPREFIX=${MYMAKE:H} \
DESTDIR= \
INSTALL="sh ${.CURDIR}/tools/install.sh"
MMAKE= ${MMAKEENV} ${MAKE} \
- -D_UPGRADING -DNO_MAN -DNO_SHARED \
+ -DNO_MAN -DNO_SHARED \
-DNO_CPU_CFLAGS -DNO_WERROR \
- DESTDIR= MK_TESTS=no PROGNAME=${MYMAKE:T}
+ DESTDIR= PROGNAME=${MYMAKE:T}
-make bmake: .PHONY
+bmake: .PHONY
@echo
@echo "--------------------------------------------------------------"
- @echo ">>> Building an up-to-date make(1)"
+ @echo ">>> Building an up-to-date ${.TARGET}(1)"
@echo "--------------------------------------------------------------"
${_+_}@cd ${.CURDIR}/usr.bin/${.TARGET}; \
${MMAKE} obj && \
${MMAKE} depend && \
${MMAKE} all && \
- ${MMAKE} install DESTDIR=${MYMAKE:H} BINDIR= NO_MAN=t
+ ${MMAKE} install DESTDIR=${MYMAKE:H} BINDIR=
tinderbox toolchains kernel-toolchains: upgrade_checks
@@ -457,7 +450,7 @@ TARGET!= uname -m
.if defined(MAKE_ALL_KERNELS)
_THINNER=cat
.else
-_THINNER=xargs grep -L "^.NO_UNIVERSE"
+_THINNER=xargs grep -L "^.NO_UNIVERSE" || true
.endif
KERNCONFS!= cd ${KERNSRCDIR}/${TARGET}/conf && \
find [A-Z0-9]*[A-Z0-9] -type f -maxdepth 0 \
Modified: projects/random_number_generator/Makefile.inc1
==============================================================================
--- projects/random_number_generator/Makefile.inc1 Sun May 11 08:17:46 2014 (r265872)
+++ projects/random_number_generator/Makefile.inc1 Sun May 11 09:14:29 2014 (r265873)
@@ -248,7 +248,8 @@ BMAKE= MAKEOBJDIRPREFIX=${WORLDTMP} \
SSP_CFLAGS= \
MK_HTML=no MK_INFO=no NO_LINT=yes MK_MAN=no \
-DNO_PIC MK_PROFILE=no -DNO_SHARED \
- -DNO_CPU_CFLAGS -DNO_WARNS MK_CTF=no -DEARLY_BUILD MK_TESTS=no
+ -DNO_CPU_CFLAGS MK_WARNS=no MK_CTF=no \
+ MK_CLANG_FULL=no MK_LLDB=no MK_TESTS=no
# build-tools stage
TMAKE= MAKEOBJDIRPREFIX=${OBJTREE} \
@@ -258,7 +259,7 @@ TMAKE= MAKEOBJDIRPREFIX=${OBJTREE} \
BOOTSTRAPPING=${OSRELDATE} \
SSP_CFLAGS= \
-DNO_LINT \
- -DNO_CPU_CFLAGS -DNO_WARNS MK_CTF=no -DEARLY_BUILD MK_TESTS=no
+ -DNO_CPU_CFLAGS MK_WARNS=no MK_CTF=no MK_CLANG_FULL=no MK_LLDB=no MK_TESTS=no
# cross-tools stage
XMAKE= TOOLS_PREFIX=${WORLDTMP} ${BMAKE} \
@@ -277,7 +278,7 @@ KTMAKE= TOOLS_PREFIX=${WORLDTMP} MAKEOB
SSP_CFLAGS= \
MK_HTML=no MK_INFO=no -DNO_LINT MK_MAN=no \
-DNO_PIC MK_PROFILE=no -DNO_SHARED \
- -DNO_CPU_CFLAGS -DNO_WARNS MK_CTF=no -DEARLY_BUILD
+ -DNO_CPU_CFLAGS MK_WARNS=no MK_CTF=no
# world stage
WMAKEENV= ${CROSSENV} \
@@ -609,8 +610,8 @@ build32:
WORLDTMP=${WORLDTMP} \
MAKEFLAGS="-m ${.CURDIR}/tools/build/mk ${.MAKEFLAGS}" \
MAKEOBJDIRPREFIX=${OBJTREE}/lib32 ${MAKE} SSP_CFLAGS= DESTDIR= \
- DIRPRFX=${_dir}/ -DNO_LINT -DNO_CPU_CFLAGS -DNO_WARNS MK_CTF=no \
- -DEARLY_BUILD build-tools
+ DIRPRFX=${_dir}/ -DNO_LINT -DNO_CPU_CFLAGS MK_WARNS=no MK_CTF=no \
+ build-tools
.endfor
cd ${.CURDIR}; \
${LIB32WMAKE} -f Makefile.inc1 libraries
@@ -1846,7 +1847,7 @@ XDEV_CPUTYPE?=${TARGET_CPUTYPE}
NOFUN=-DNO_FSCHG MK_HTML=no MK_INFO=no -DNO_LINT \
MK_MAN=no MK_NLS=no MK_PROFILE=no \
- MK_KERBEROS=no MK_RESCUE=no MK_TESTS=no -DNO_WARNS \
+ MK_KERBEROS=no MK_RESCUE=no MK_TESTS=no MK_WARNS=no \
TARGET=${XDEV} TARGET_ARCH=${XDEV_ARCH} \
CPUTYPE=${XDEV_CPUTYPE}
Modified: projects/random_number_generator/bin/sh/options.c
==============================================================================
--- projects/random_number_generator/bin/sh/options.c Sun May 11 08:17:46 2014 (r265872)
+++ projects/random_number_generator/bin/sh/options.c Sun May 11 09:14:29 2014 (r265873)
@@ -446,6 +446,7 @@ getopts(char *optstr, char *optvar, char
int ind = 0;
int err = 0;
char s[10];
+ const char *optarg = NULL;
if ((p = *optptr) == NULL || *p == '\0') {
/* Current word is done, advance */
@@ -471,16 +472,12 @@ atend:
if (optstr[0] == ':') {
s[0] = c;
s[1] = '\0';
- err |= setvarsafe("OPTARG", s, 0);
+ optarg = s;
}
- else {
+ else
out2fmt_flush("Illegal option -%c\n", c);
- INTOFF;
- (void) unsetvar("OPTARG");
- INTON;
- }
c = '?';
- goto bad;
+ goto out;
}
if (*++q == ':')
q++;
@@ -491,35 +488,33 @@ atend:
if (optstr[0] == ':') {
s[0] = c;
s[1] = '\0';
- err |= setvarsafe("OPTARG", s, 0);
+ optarg = s;
c = ':';
}
else {
out2fmt_flush("No arg for -%c option\n", c);
- INTOFF;
- (void) unsetvar("OPTARG");
- INTON;
c = '?';
}
- goto bad;
+ goto out;
}
if (p == **optnext)
(*optnext)++;
- setvarsafe("OPTARG", p, 0);
+ optarg = p;
p = NULL;
}
- else
- setvarsafe("OPTARG", "", 0);
- ind = *optnext - optfirst + 1;
- goto out;
-
-bad:
- ind = 1;
- *optnext = NULL;
- p = NULL;
+
out:
+ if (*optnext != NULL)
+ ind = *optnext - optfirst + 1;
*optptr = p;
+ if (optarg != NULL)
+ err |= setvarsafe("OPTARG", optarg, 0);
+ else {
+ INTOFF;
+ err |= unsetvar("OPTARG");
+ INTON;
+ }
fmtstr(s, sizeof(s), "%d", ind);
err |= setvarsafe("OPTIND", s, VNOFUNC);
s[0] = c;
Modified: projects/random_number_generator/bin/sh/tests/builtins/Makefile
==============================================================================
--- projects/random_number_generator/bin/sh/tests/builtins/Makefile Sun May 11 08:17:46 2014 (r265872)
+++ projects/random_number_generator/bin/sh/tests/builtins/Makefile Sun May 11 09:14:29 2014 (r265873)
@@ -83,6 +83,9 @@ FILES+= getopts2.0 getopts2.0.stdout
FILES+= getopts3.0
FILES+= getopts4.0
FILES+= getopts5.0
+FILES+= getopts6.0
+FILES+= getopts7.0
+FILES+= getopts8.0 getopts8.0.stdout
FILES+= hash1.0 hash1.0.stdout
FILES+= hash2.0 hash2.0.stdout
FILES+= hash3.0 hash3.0.stdout
Copied: projects/random_number_generator/bin/sh/tests/builtins/getopts6.0 (from r265872, head/bin/sh/tests/builtins/getopts6.0)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ projects/random_number_generator/bin/sh/tests/builtins/getopts6.0 Sun May 11 09:14:29 2014 (r265873, copy of r265872, head/bin/sh/tests/builtins/getopts6.0)
@@ -0,0 +1,7 @@
+# $FreeBSD$
+
+set -- -x -y
+getopts :x var || echo "First getopts bad: $?"
+getopts :x var
+r=$?
+[ r != 0 ] && [ "$OPTIND" = 3 ]
Copied: projects/random_number_generator/bin/sh/tests/builtins/getopts7.0 (from r265872, head/bin/sh/tests/builtins/getopts7.0)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ projects/random_number_generator/bin/sh/tests/builtins/getopts7.0 Sun May 11 09:14:29 2014 (r265873, copy of r265872, head/bin/sh/tests/builtins/getopts7.0)
@@ -0,0 +1,6 @@
+# $FreeBSD$
+
+set -- -x
+getopts :x: var
+r=$?
+[ r != 0 ] && [ "$OPTIND" = 2 ]
Copied: projects/random_number_generator/bin/sh/tests/builtins/getopts8.0 (from r265872, head/bin/sh/tests/builtins/getopts8.0)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ projects/random_number_generator/bin/sh/tests/builtins/getopts8.0 Sun May 11 09:14:29 2014 (r265873, copy of r265872, head/bin/sh/tests/builtins/getopts8.0)
@@ -0,0 +1,8 @@
+# $FreeBSD$
+
+set -- -yz -wx
+opt=wrong1 OPTARG=wrong2
+while getopts :x opt; do
+ echo "$opt:${OPTARG-unset}"
+done
+echo "OPTIND=$OPTIND"
Copied: projects/random_number_generator/bin/sh/tests/builtins/getopts8.0.stdout (from r265872, head/bin/sh/tests/builtins/getopts8.0.stdout)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ projects/random_number_generator/bin/sh/tests/builtins/getopts8.0.stdout Sun May 11 09:14:29 2014 (r265873, copy of r265872, head/bin/sh/tests/builtins/getopts8.0.stdout)
@@ -0,0 +1,5 @@
+?:y
+?:z
+?:w
+x:unset
+OPTIND=3
Modified: projects/random_number_generator/cddl/contrib/opensolaris/cmd/zpool/zpool_vdev.c
==============================================================================
--- projects/random_number_generator/cddl/contrib/opensolaris/cmd/zpool/zpool_vdev.c Sun May 11 08:17:46 2014 (r265872)
+++ projects/random_number_generator/cddl/contrib/opensolaris/cmd/zpool/zpool_vdev.c Sun May 11 09:14:29 2014 (r265873)
@@ -512,6 +512,7 @@ make_leaf_vdev(const char *arg, uint64_t
verify(nvlist_add_uint64(vdev, ZPOOL_CONFIG_WHOLE_DISK,
(uint64_t)wholedisk) == 0);
+#ifdef have_devid
/*
* For a whole disk, defer getting its devid until after labeling it.
*/
@@ -546,6 +547,7 @@ make_leaf_vdev(const char *arg, uint64_t
(void) close(fd);
}
+#endif
return (vdev);
}
Modified: projects/random_number_generator/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_import.c
==============================================================================
--- projects/random_number_generator/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_import.c Sun May 11 08:17:46 2014 (r265872)
+++ projects/random_number_generator/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_import.c Sun May 11 09:14:29 2014 (r265873)
@@ -94,6 +94,7 @@ typedef struct pool_list {
static char *
get_devid(const char *path)
{
+#ifdef have_devid
int fd;
ddi_devid_t devid;
char *minor, *ret;
@@ -113,6 +114,9 @@ get_devid(const char *path)
(void) close(fd);
return (ret);
+#else
+ return (NULL);
+#endif
}
Modified: projects/random_number_generator/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c
==============================================================================
--- projects/random_number_generator/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c Sun May 11 08:17:46 2014 (r265872)
+++ projects/random_number_generator/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c Sun May 11 09:14:29 2014 (r265873)
@@ -3324,6 +3324,7 @@ devid_to_path(char *devid_str)
static char *
path_to_devid(const char *path)
{
+#ifdef have_devid
int fd;
ddi_devid_t devid;
char *minor, *ret;
@@ -3343,6 +3344,9 @@ path_to_devid(const char *path)
(void) close(fd);
return (ret);
+#else
+ return (NULL);
+#endif
}
/*
Modified: projects/random_number_generator/lib/Makefile
==============================================================================
--- projects/random_number_generator/lib/Makefile Sun May 11 08:17:46 2014 (r265872)
+++ projects/random_number_generator/lib/Makefile Sun May 11 09:14:29 2014 (r265873)
@@ -31,8 +31,12 @@
# Except it appears bind needs to be compiled last
SUBDIR_ORDERED= ${_csu} \
+ .WAIT \
libc \
libc_nonshared \
+ .WAIT \
+ msun \
+ .WAIT \
libbsm \
libauditd \
libutil \
@@ -45,7 +49,6 @@ SUBDIR_ORDERED= ${_csu} \
${_libiconv_modules} \
libkvm \
${_libldns} \
- msun \
libmd \
ncurses \
${_libnetgraph} \
@@ -62,6 +65,7 @@ SUBDIR_ORDERED+= libcom_err
.endif
SUBDIR= ${SUBDIR_ORDERED} \
+ .WAIT \
libalias \
libarchive \
${_libatm} \
Modified: projects/random_number_generator/lib/clang/Makefile
==============================================================================
--- projects/random_number_generator/lib/clang/Makefile Sun May 11 08:17:46 2014 (r265872)
+++ projects/random_number_generator/lib/clang/Makefile Sun May 11 09:14:29 2014 (r265873)
@@ -3,8 +3,7 @@
.include <src.opts.mk>
.if !make(install)
-.if !defined(EARLY_BUILD)
-.if defined(MK_CLANG_FULL) && ${MK_CLANG_FULL} != "no"
+.if ${MK_CLANG_FULL} != "no"
_libclangstaticanalyzer= \
libclangstaticanalyzercheckers \
libclangstaticanalyzercore \
@@ -12,13 +11,11 @@ _libclangstaticanalyzer= \
_libclangarcmigrate= \
libclangarcmigrate
.endif # MK_CLANG_FULL
-.if (defined(MK_CLANG_FULL) && ${MK_CLANG_FULL} != "no") || \
- (defined(MK_LLDB) && ${MK_LLDB} != "no")
+.if ${MK_CLANG_FULL} != "no" || ${MK_LLDB} != "no"
_libclangrewriter= \
libclangrewritecore \
libclangrewritefrontend
.endif # (MK_CLANG_FULL || MK_LLDB)
-.endif # !EARLY_BUILD
SUBDIR= libclanganalysis \
${_libclangarcmigrate} \
@@ -105,7 +102,7 @@ SUBDIR+=libllvmexecutionengine \
libllvmruntimedyld
.endif # MK_CLANG_EXTRAS | LLDB
-.if !defined(EARLY_BUILD) && ${MK_LLDB} != "no"
+.if ${MK_LLDB} != "no"
SUBDIR+=liblldb \
\
liblldbAPI \
@@ -141,7 +138,7 @@ SUBDIR+=liblldb \
liblldbPluginSymbolVendorELF \
liblldbPluginUnwindAssemblyInstEmulation \
liblldbPluginUnwindAssemblyX86
-.endif # !EARLY_BUILD && MK_LLDB
+.endif # MK_LLDB
.endif # !make(install)
Modified: projects/random_number_generator/lib/clang/clang.build.mk
==============================================================================
--- projects/random_number_generator/lib/clang/clang.build.mk Sun May 11 08:17:46 2014 (r265872)
+++ projects/random_number_generator/lib/clang/clang.build.mk Sun May 11 09:14:29 2014 (r265873)
@@ -10,11 +10,11 @@ CFLAGS+= -I${LLVM_SRCS}/include -I${CLAN
-DLLVM_ON_UNIX -DLLVM_ON_FREEBSD \
-D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS #-DNDEBUG
-.if !defined(EARLY_BUILD) && defined(MK_CLANG_FULL) && ${MK_CLANG_FULL} != "no"
+.if ${MK_CLANG_FULL} != "no"
CFLAGS+= -DCLANG_ENABLE_ARCMT \
-DCLANG_ENABLE_REWRITER \
-DCLANG_ENABLE_STATIC_ANALYZER
-.endif # !EARLY_BUILD && MK_CLANG_FULL
+.endif # MK_CLANG_FULL
# LLVM is not strict aliasing safe as of 12/31/2011
CFLAGS+= -fno-strict-aliasing
Modified: projects/random_number_generator/lib/libc/gen/sem_new.c
==============================================================================
--- projects/random_number_generator/lib/libc/gen/sem_new.c Sun May 11 08:17:46 2014 (r265872)
+++ projects/random_number_generator/lib/libc/gen/sem_new.c Sun May 11 09:14:29 2014 (r265873)
@@ -66,6 +66,8 @@ __weak_reference(_sem_wait, sem_wait);
struct sem_nameinfo {
int open_count;
char *name;
+ dev_t dev;
+ ino_t ino;
sem_t *sem;
LIST_ENTRY(sem_nameinfo) next;
};
@@ -151,37 +153,46 @@ _sem_open(const char *name, int flags, .
return (SEM_FAILED);
}
name++;
-
+ strcpy(path, SEM_PREFIX);
+ if (strlcat(path, name, sizeof(path)) >= sizeof(path)) {
+ errno = ENAMETOOLONG;
+ return (SEM_FAILED);
+ }
if (flags & ~(O_CREAT|O_EXCL)) {
errno = EINVAL;
return (SEM_FAILED);
}
-
+ if ((flags & O_CREAT) != 0) {
+ va_start(ap, flags);
+ mode = va_arg(ap, int);
+ value = va_arg(ap, int);
+ va_end(ap);
+ }
+ fd = -1;
_pthread_once(&once, sem_module_init);
_pthread_mutex_lock(&sem_llock);
LIST_FOREACH(ni, &sem_list, next) {
- if (strcmp(name, ni->name) == 0) {
- if ((flags & (O_CREAT|O_EXCL)) == (O_CREAT|O_EXCL)) {
- _pthread_mutex_unlock(&sem_llock);
- errno = EEXIST;
- return (SEM_FAILED);
- } else {
- ni->open_count++;
- sem = ni->sem;
- _pthread_mutex_unlock(&sem_llock);
- return (sem);
+ if (ni->name != NULL && strcmp(name, ni->name) == 0) {
+ fd = _open(path, flags | O_RDWR | O_CLOEXEC |
+ O_EXLOCK, mode);
+ if (fd == -1 || _fstat(fd, &sb) == -1)
+ goto error;
+ if ((flags & (O_CREAT | O_EXCL)) == (O_CREAT |
+ O_EXCL) || ni->dev != sb.st_dev ||
+ ni->ino != sb.st_ino) {
+ ni->name = NULL;
+ ni = NULL;
+ break;
}
+ ni->open_count++;
+ sem = ni->sem;
+ _pthread_mutex_unlock(&sem_llock);
+ _close(fd);
+ return (sem);
}
}
- if (flags & O_CREAT) {
- va_start(ap, flags);
- mode = va_arg(ap, int);
- value = va_arg(ap, int);
- va_end(ap);
- }
-
len = sizeof(*ni) + strlen(name) + 1;
ni = (struct sem_nameinfo *)malloc(len);
if (ni == NULL) {
@@ -192,17 +203,11 @@ _sem_open(const char *name, int flags, .
ni->name = (char *)(ni+1);
strcpy(ni->name, name);
- strcpy(path, SEM_PREFIX);
- if (strlcat(path, name, sizeof(path)) >= sizeof(path)) {
- errno = ENAMETOOLONG;
- goto error;
+ if (fd == -1) {
+ fd = _open(path, flags | O_RDWR | O_CLOEXEC | O_EXLOCK, mode);
+ if (fd == -1 || _fstat(fd, &sb) == -1)
+ goto error;
}
-
- fd = _open(path, flags|O_RDWR|O_CLOEXEC|O_EXLOCK, mode);
- if (fd == -1)
- goto error;
- if (_fstat(fd, &sb))
- goto error;
if (sb.st_size < sizeof(sem_t)) {
sem_t tmp;
@@ -228,6 +233,8 @@ _sem_open(const char *name, int flags, .
}
ni->open_count = 1;
ni->sem = sem;
+ ni->dev = sb.st_dev;
+ ni->ino = sb.st_ino;
LIST_INSERT_HEAD(&sem_list, ni, next);
_close(fd);
_pthread_mutex_unlock(&sem_llock);
@@ -294,13 +301,13 @@ _sem_unlink(const char *name)
return -1;
}
name++;
-
strcpy(path, SEM_PREFIX);
if (strlcat(path, name, sizeof(path)) >= sizeof(path)) {
errno = ENAMETOOLONG;
return (-1);
}
- return unlink(path);
+
+ return (unlink(path));
}
int
Modified: projects/random_number_generator/lib/libedit/editline.3
==============================================================================
--- projects/random_number_generator/lib/libedit/editline.3 Sun May 11 08:17:46 2014 (r265872)
+++ projects/random_number_generator/lib/libedit/editline.3 Sun May 11 09:14:29 2014 (r265873)
@@ -682,6 +682,9 @@ Load the history list stored in
.It Dv H_SAVE , Fa "const char *file"
Save the history list to
.Fa file .
+.It Dv H_SAVE_FP , Fa "FILE*"
+Save the history list to the opened
+.Fa FILE* .
.It Dv H_SETUNIQUE , Fa "int unique"
Set flag that adjacent identical event strings should not be entered
into the history.
Modified: projects/random_number_generator/lib/libedit/hist.h
==============================================================================
--- projects/random_number_generator/lib/libedit/hist.h Sun May 11 08:17:46 2014 (r265872)
+++ projects/random_number_generator/lib/libedit/hist.h Sun May 11 09:14:29 2014 (r265873)
@@ -65,6 +65,7 @@ typedef struct el_history_t {
#define HIST_SET(el, num) HIST_FUN(el, H_SET, num)
#define HIST_LOAD(el, fname) HIST_FUN(el, H_LOAD fname)
#define HIST_SAVE(el, fname) HIST_FUN(el, H_SAVE fname)
+#define HIST_SAVE_FP(el, fp) HIST_FUN(el, H_SAVE_FP fp)
protected int hist_init(EditLine *);
protected void hist_end(EditLine *);
Modified: projects/random_number_generator/lib/libedit/histedit.h
==============================================================================
--- projects/random_number_generator/lib/libedit/histedit.h Sun May 11 08:17:46 2014 (r265872)
+++ projects/random_number_generator/lib/libedit/histedit.h Sun May 11 09:14:29 2014 (r265873)
@@ -208,6 +208,7 @@ int history(History *, HistEvent *, int
#define H_NEXT_EVDATA 23 /* , const int, histdata_t *); */
#define H_DELDATA 24 /* , int, histdata_t *);*/
#define H_REPLACE 25 /* , const char *, histdata_t); */
+#define H_SAVE_FP 26 /* , FILE*); */
/*
Modified: projects/random_number_generator/lib/libedit/history.c
==============================================================================
--- projects/random_number_generator/lib/libedit/history.c Sun May 11 08:17:46 2014 (r265872)
+++ projects/random_number_generator/lib/libedit/history.c Sun May 11 09:14:29 2014 (r265873)
@@ -103,6 +103,7 @@ private int history_getunique(History *,
private int history_set_fun(History *, History *);
private int history_load(History *, const char *);
private int history_save(History *, const char *);
+private int history_save_fp(History *, FILE*);
private int history_prev_event(History *, HistEvent *, int);
private int history_next_event(History *, HistEvent *, int);
private int history_next_string(History *, HistEvent *, const char *);
@@ -773,22 +774,16 @@ done:
return (i);
}
-
-/* history_save():
- * History save function
+/* history_save_fp():
+ * History save with open FILE*
*/
-private int
-history_save(History *h, const char *fname)
+private int history_save_fp(History *h, FILE* fp)
{
- FILE *fp;
HistEvent ev;
int i = -1, retval;
size_t len, max_size;
char *ptr;
- if ((fp = fopen(fname, "w")) == NULL)
- return (-1);
-
if (fchmod(fileno(fp), S_IRUSR|S_IWUSR) == -1)
goto done;
if (fputs(hist_cookie, fp) == EOF)
@@ -816,6 +811,26 @@ history_save(History *h, const char *fna
oomem:
h_free((ptr_t)ptr);
done:
+ return (i);
+
+}
+
+
+/* history_save():
+ * History save function
+ */
+private int
+history_save(History *h, const char *fname)
+{
+ FILE *fp;
+ int i;
+
+ if ((fp = fopen(fname, "w")) == NULL)
+ return (-1);
+
+ i = history_save_fp(h, fp);
+
+done:
(void) fclose(fp);
return (i);
}
@@ -1001,6 +1016,12 @@ history(History *h, HistEvent *ev, int f
he_seterrev(ev, _HE_HIST_WRITE);
break;
+ case H_SAVE_FP:
+ retval = history_save_fp(h, va_arg(va, FILE*));
+ if (retval == -1)
+ he_seterrev(ev, _HE_HIST_WRITE);
+ break;
+
case H_PREV_EVENT:
retval = history_prev_event(h, ev, va_arg(va, int));
break;
Modified: projects/random_number_generator/share/man/man4/udplite.4
==============================================================================
--- projects/random_number_generator/share/man/man4/udplite.4 Sun May 11 08:17:46 2014 (r265872)
+++ projects/random_number_generator/share/man/man4/udplite.4 Sun May 11 09:14:29 2014 (r265873)
@@ -52,7 +52,7 @@ supports a number of socket options whic
.Xr setsockopt 2
and tested with
.Xr getsockopt 2 :
-.Bl -tag -width ".Dv SCTP_SET_PEER_PRIMARY_ADDR"
+.Bl -tag -width ".Dv UDPLITE_SEND_CSCOV"
.It Dv UDPLITE_SEND_CSCOV
This option sets the sender checksum coverage.
A value of zero indicates that the entire packet
Modified: projects/random_number_generator/share/mk/Makefile
==============================================================================
--- projects/random_number_generator/share/mk/Makefile Sun May 11 08:17:46 2014 (r265872)
+++ projects/random_number_generator/share/mk/Makefile Sun May 11 09:14:29 2014 (r265873)
@@ -42,9 +42,6 @@ FILES= \
sys.mk \
version_gen.awk
-# Installed for the moment, but not may not be in the future.
-FILES+= src.opts.mk
-
NO_OBJ=
FILESDIR= ${BINDIR}/mk
Modified: projects/random_number_generator/share/mk/bsd.compiler.mk
==============================================================================
--- projects/random_number_generator/share/mk/bsd.compiler.mk Sun May 11 08:17:46 2014 (r265872)
+++ projects/random_number_generator/share/mk/bsd.compiler.mk Sun May 11 09:14:29 2014 (r265873)
@@ -1,27 +1,46 @@
# $FreeBSD$
+# Setup variables for the compiler
+#
+# COMPILTER_TYPE is the major type of compiler. Currently gcc and clang support
+# automatic detetion. Other compiler types can be shoe-horned in, but require explicit
+# setting of the compiler type. The compiler type can also be set explicitly if, say,
+# you install gcc as clang...
+#
+# COMPILER_VERSION is a numeric constant equal to major * 10000 + minor * 100 + tiny. It
+# too can be overriden on the command line. When testing it, be sure to make sure that you
+# are limiting the test to a specific compiler. Testing against 30300 for gcc likely isn't
+# what you wanted (since versions of gcc prior to 4.2 likely have no prayer of working).
+#
+# COMPILER_FEATURES will contain one or more of the following, based on compiler support
+# for that feature: c++11 (supports full (or nearly full) C++11 programming environment).
+#
+# This file may be included multiple times, but only has effect the first time.
+#
+
.if !target(__<bsd.compiler.mk>__)
__<bsd.compiler.mk>__:
+_v!= ${CC} --version
.if !defined(COMPILER_TYPE)
. if ${CC:T:Mgcc*}
COMPILER_TYPE:= gcc
. elif ${CC:T:Mclang}
COMPILER_TYPE:= clang
-. else
-_COMPILER_VERSION!= ${CC} --version
-. if ${_COMPILER_VERSION:Mgcc}
+. elif ${_v:Mgcc}
COMPILER_TYPE:= gcc
-. elif ${_COMPILER_VERSION:M\(GCC\)}
+. elif ${_v:M\(GCC\)}
COMPILER_TYPE:= gcc
-. elif ${_COMPILER_VERSION:Mclang}
+. elif ${_v:Mclang}
COMPILER_TYPE:= clang
-. else
+. else
.error Unable to determine compiler type for ${CC}. Consider setting COMPILER_TYPE.
-. endif
-. undef _COMPILER_VERSION
. endif
.endif
+.if !defined(COMPILER_VERSION)
+COMPILER_VERSION!=echo ${_v:M[1-9].[0-9]*} | awk -F. '{print $$1 * 10000 + $$2 * 100 + $$3;}'
+.endif
+.undef _v
.if ${COMPILER_TYPE} == "clang"
COMPILER_FEATURES= c++11
Modified: projects/random_number_generator/share/mk/bsd.doc.mk
==============================================================================
--- projects/random_number_generator/share/mk/bsd.doc.mk Sun May 11 08:17:46 2014 (r265872)
+++ projects/random_number_generator/share/mk/bsd.doc.mk Sun May 11 09:14:29 2014 (r265873)
@@ -19,7 +19,7 @@
#
# MACROS Macro packages used to build the document. [not set]
#
-# NO_DOCCOMPRESS If you do not want formatted troff documents to be
+# WITHOUT_DOCCOMPRESS If you do not want formatted troff documents to be
# compressed when they are installed. [not set]
#
# PRINTERDEVICE Indicates which output formats will be generated
@@ -87,7 +87,7 @@ DCOMPRESS_CMD?= ${COMPRESS_CMD}
DFILE.html= ${DOC}.html
.endfor
.for _dev in ${PRINTERDEVICE:Nhtml}
-.if defined(NO_DOCCOMPRESS)
+.if ${MK_DOCCOMPRESS} == "no"
DFILE.${_dev}= ${DOC}.${_dev}
.else
DFILE.${_dev}= ${DOC}.${_dev}${DCOMPRESS_EXT}
@@ -117,7 +117,7 @@ print: ${DFILE.${_dev}}
.endfor
print:
.for _dev in ${PRINTERDEVICE}
-.if defined(NO_DOCCOMPRESS)
+.if ${MK_DOCCOMPRESS} == "no"
${LPR} ${DFILE.${_dev}}
.else
${DCOMPRESS_CMD} -d ${DFILE.${_dev}} | ${LPR}
@@ -164,7 +164,7 @@ CLEANFILES+= _stamp.extra
${DFILE.${_dev}}: _stamp.extra
.endif
${DFILE.${_dev}}: ${SRCS}
-.if defined(NO_DOCCOMPRESS)
+.if ${MK_DOCCOMPRESS} == "no"
${ROFF.${_dev}} ${.ALLSRC:N_stamp.extra} > ${.TARGET}
.else
${ROFF.${_dev}} ${.ALLSRC:N_stamp.extra} | ${DCOMPRESS_CMD} > ${.TARGET}
Modified: projects/random_number_generator/share/mk/bsd.opts.mk
==============================================================================
--- projects/random_number_generator/share/mk/bsd.opts.mk Sun May 11 08:17:46 2014 (r265872)
+++ projects/random_number_generator/share/mk/bsd.opts.mk Sun May 11 09:14:29 2014 (r265873)
@@ -45,6 +45,7 @@ __<bsd.opts.mk>__:
__DEFAULT_YES_OPTIONS = \
ASSERT_DEBUG \
+ DOCCOMPRESS \
INFO \
INSTALLLIB \
KERBEROS \
@@ -56,7 +57,8 @@ __DEFAULT_YES_OPTIONS = \
PROFILE \
SSP \
SYMVER \
- TOOLCHAIN
+ TOOLCHAIN \
+ WARNS
__DEFAULT_NO_OPTIONS = \
CTF \
@@ -76,7 +78,8 @@ __DEFAULT_NO_OPTIONS = \
DEBUG_FILES \
INSTALLLIB \
MAN \
- PROFILE
+ PROFILE \
+ WARNS
.if defined(NO_${var})
# This warning may be premature...
#.warning "NO_${var} is defined, but deprecated. Please use MK_${var}=no instead."
Modified: projects/random_number_generator/share/mk/bsd.prog.mk
==============================================================================
--- projects/random_number_generator/share/mk/bsd.prog.mk Sun May 11 08:17:46 2014 (r265872)
+++ projects/random_number_generator/share/mk/bsd.prog.mk Sun May 11 09:14:29 2014 (r265873)
@@ -173,7 +173,7 @@ _EXTRADEPEND:
.endif
.else
echo ${PROG}: ${LIBC} ${DPADD} >> ${DEPENDFILE}
-.if defined(PROG_CXX) && !defined(EARLY_BUILD)
+.if defined(PROG_CXX)
.if ${COMPILER_TYPE} == "clang" && empty(CXXFLAGS:M-stdlib=libstdc++)
echo ${PROG}: ${LIBCPLUSPLUS} >> ${DEPENDFILE}
.else
@@ -276,7 +276,3 @@ ${OBJS}: ${SRCS:M*.h}
.include <bsd.obj.mk>
.include <bsd.sys.mk>
-
-.if defined(PORTNAME)
-.include <bsd.pkg.mk>
-.endif
Modified: projects/random_number_generator/share/mk/bsd.sys.mk
==============================================================================
--- projects/random_number_generator/share/mk/bsd.sys.mk Sun May 11 08:17:46 2014 (r265872)
+++ projects/random_number_generator/share/mk/bsd.sys.mk Sun May 11 09:14:29 2014 (r265873)
@@ -4,7 +4,7 @@
# sources.
# Enable various levels of compiler warning checks. These may be
-# overridden (e.g. if using a non-gcc compiler) by defining NO_WARNS.
+# overridden (e.g. if using a non-gcc compiler) by defining MK_WARNS=no.
# for GCC: http://gcc.gnu.org/onlinedocs/gcc-4.2.1/gcc/Warning-Options.html
@@ -64,7 +64,10 @@ CWARNFLAGS+= -Wno-pointer-sign
# Clang has more warnings enabled by default, and when using -Wall, so if WARNS
# is set to low values, these have to be disabled explicitly.
.if ${WARNS} <= 6
-CWARNFLAGS.clang+= -Wno-empty-body -Wno-string-plus-int -Wno-unused-const-variable
+CWARNFLAGS.clang+= -Wno-empty-body -Wno-string-plus-int
+.if ${COMPILER_TYPE} == "clang" && ${COMPILER_VERSION} > 30300
+CWARNFLAGS.clang+= -Wno-unused-const-variable
+.endif
.endif # WARNS <= 6
.if ${WARNS} <= 3
CWARNFLAGS.clang+= -Wno-tautological-compare -Wno-unused-value\
@@ -131,33 +134,24 @@ CFLAGS+= ${SSP_CFLAGS}
.endif # SSP && !IA64 && !ARM && !MIPS
# Allow user-specified additional warning flags, plus compiler specific flag overrides.
-# Unless we're early in the build, in which case don't (which is lame, this should
-# be handled by NO_WARNS which needs to migrate to something else.
-.if !defined(NO_WARNS) && !defined(EARLY_BUILD)
+# Unless we've overriden this...
+.if ${MK_WARNS} != "no"
CFLAGS+= ${CWARNFLAGS} ${CWARNFLAGS.${COMPILER_TYPE}}
.endif
-# Not sure this is 100% kosher, but I think that EARLY_BUILD must be only
-# defined when we're not building programs that use the CFLAGS.foo feature.
-.if !defined(EARLY_BUILD)
CFLAGS+= ${CFLAGS.${COMPILER_TYPE}}
CXXFLAGS+= ${CXXFLAGS.${COMPILER_TYPE}}
-.endif
# Tell bmake not to mistake standard targets for things to be searched for
# or expect to ever be up-to-date.
PHONY_NOTMAIN = afterdepend afterinstall all beforedepend beforeinstall \
beforelinking build build-tools buildfiles buildincludes \
checkdpadd clean cleandepend cleandir cleanobj configure \
- depend dependall distclean distribute exe extract \
+ depend dependall distclean distribute exe \
html includes install installfiles installincludes lint \
obj objlink objs objwarn realall realdepend \
realinstall regress subdir-all subdir-depend subdir-install \
tags whereobj
-.if defined(PORTNAME)
-PHONY_NOTMAIN+= fetch patch
-.endif
-
.PHONY: ${PHONY_NOTMAIN}
.NOTMAIN: ${PHONY_NOTMAIN}
Modified: projects/random_number_generator/share/mk/bsd.test.mk
==============================================================================
--- projects/random_number_generator/share/mk/bsd.test.mk Sun May 11 08:17:46 2014 (r265872)
+++ projects/random_number_generator/share/mk/bsd.test.mk Sun May 11 09:14:29 2014 (r265873)
@@ -51,8 +51,7 @@ SUBDIR+= ${TESTS_SUBDIRS}
# it is rare for test cases to have man pages
.if !defined(MAN)
-NO_MAN=yes
-.export NO_MAN
+MAN=
.endif
# tell progs.mk we might want to install things
Modified: projects/random_number_generator/share/mk/src.opts.mk
==============================================================================
--- projects/random_number_generator/share/mk/src.opts.mk Sun May 11 08:17:46 2014 (r265872)
+++ projects/random_number_generator/share/mk/src.opts.mk Sun May 11 09:14:29 2014 (r265873)
@@ -165,6 +165,7 @@ __DEFAULT_NO_OPTIONS = \
BSD_GREP \
CLANG_EXTRAS \
EISA \
+ FMAKE \
HESIOD \
LLDB \
NAND \
Modified: projects/random_number_generator/share/mk/sys.mk
==============================================================================
--- projects/random_number_generator/share/mk/sys.mk Sun May 11 08:17:46 2014 (r265872)
+++ projects/random_number_generator/share/mk/sys.mk Sun May 11 09:14:29 2014 (r265873)
@@ -74,10 +74,6 @@ CTFMERGE ?= ctfmerge
DTRACE ?= dtrace
.if defined(CFLAGS) && (${CFLAGS:M-g} != "")
CTFFLAGS += -g
-.else
-# XXX: What to do here? Is removing the CFLAGS part completely ok here?
-# For now comment it out to not compile with -g unconditionally.
-#CFLAGS += -g
.endif
CXX ?= c++
@@ -338,11 +334,7 @@ SHELL= ${__MAKE_SHELL}
# Toggle on warnings
.WARN: dirsyntax
-.endif
-
-.endif
-
-.if defined(.PARSEDIR)
+.else # is bmake
# Tell bmake to expand -V VAR by default
.MAKE.EXPAND_VARIABLES= yes
@@ -359,7 +351,8 @@ SHELL= ${__MAKE_SHELL}
echoFlag=v errFlag=e \
path=${__MAKE_SHELL:U/bin/sh}
.endif
-
-.endif
+.endif # bmake
.include <bsd.cpu.mk>
+
+.endif # ! Posix
Modified: projects/random_number_generator/sys/arm/arm/bus_space_generic.c
==============================================================================
--- projects/random_number_generator/sys/arm/arm/bus_space_generic.c Sun May 11 08:17:46 2014 (r265872)
+++ projects/random_number_generator/sys/arm/arm/bus_space_generic.c Sun May 11 09:14:29 2014 (r265873)
@@ -50,6 +50,7 @@ __FBSDID("$FreeBSD$");
#include <vm/vm_extern.h>
#include <machine/bus.h>
+#include <machine/cpufunc.h>
#include <machine/devmap.h>
/* Prototypes for all the bus_space structure functions */
@@ -110,5 +111,16 @@ generic_bs_barrier(void *t, bus_space_ha
bus_size_t len, int flags)
{
- /* Nothing to do. */
+ /*
+ * dsb() will drain the L1 write buffer and establish a memory access
+ * barrier point on platforms where that has meaning. On a write we
+ * also need to drain the L2 write buffer, because most on-chip memory
+ * mapped devices are downstream of the L2 cache. Note that this needs
+ * to be done even for memory mapped as Device type, because while
+ * Device memory is not cached, writes to it are still buffered.
+ */
+ dsb();
+ if (flags & BUS_SPACE_BARRIER_WRITE) {
+ cpu_l2cache_drain_writebuf();
+ }
}
Modified: projects/random_number_generator/sys/arm/arm/cpufunc.c
==============================================================================
--- projects/random_number_generator/sys/arm/arm/cpufunc.c Sun May 11 08:17:46 2014 (r265872)
+++ projects/random_number_generator/sys/arm/arm/cpufunc.c Sun May 11 09:14:29 2014 (r265873)
@@ -150,6 +150,7 @@ struct cpu_functions arm9_cpufuncs = {
(void *)cpufunc_nullop, /* l2cache_wbinv_range */
(void *)cpufunc_nullop, /* l2cache_inv_range */
(void *)cpufunc_nullop, /* l2cache_wb_range */
+ (void *)cpufunc_nullop, /* l2cache_drain_writebuf */
/* Other functions */
@@ -214,6 +215,7 @@ struct cpu_functions armv5_ec_cpufuncs =
(void *)cpufunc_nullop, /* l2cache_wbinv_range */
(void *)cpufunc_nullop, /* l2cache_inv_range */
(void *)cpufunc_nullop, /* l2cache_wb_range */
+ (void *)cpufunc_nullop, /* l2cache_drain_writebuf */
/* Other functions */
@@ -276,6 +278,7 @@ struct cpu_functions sheeva_cpufuncs = {
sheeva_l2cache_wbinv_range, /* l2cache_wbinv_range */
sheeva_l2cache_inv_range, /* l2cache_inv_range */
sheeva_l2cache_wb_range, /* l2cache_wb_range */
+ (void *)cpufunc_nullop, /* l2cache_drain_writebuf */
/* Other functions */
@@ -338,6 +341,7 @@ struct cpu_functions arm10_cpufuncs = {
(void *)cpufunc_nullop, /* l2cache_wbinv_range */
(void *)cpufunc_nullop, /* l2cache_inv_range */
(void *)cpufunc_nullop, /* l2cache_wb_range */
+ (void *)cpufunc_nullop, /* l2cache_drain_writebuf */
/* Other functions */
@@ -401,6 +405,7 @@ struct cpu_functions pj4bv7_cpufuncs = {
(void *)cpufunc_nullop, /* l2cache_wbinv_range */
(void *)cpufunc_nullop, /* l2cache_inv_range */
(void *)cpufunc_nullop, /* l2cache_wb_range */
+ (void *)cpufunc_nullop, /* l2cache_drain_writebuf */
/* Other functions */
@@ -466,6 +471,7 @@ struct cpu_functions xscale_cpufuncs = {
(void *)cpufunc_nullop, /* l2cache_wbinv_range */
(void *)cpufunc_nullop, /* l2cache_inv_range */
(void *)cpufunc_nullop, /* l2cache_wb_range */
+ (void *)cpufunc_nullop, /* l2cache_drain_writebuf */
/* Other functions */
@@ -530,6 +536,7 @@ struct cpu_functions xscalec3_cpufuncs =
xscalec3_l2cache_purge_rng, /* l2cache_wbinv_range */
xscalec3_l2cache_flush_rng, /* l2cache_inv_range */
xscalec3_l2cache_clean_rng, /* l2cache_wb_range */
+ (void *)cpufunc_nullop, /* l2cache_drain_writebuf */
/* Other functions */
@@ -593,6 +600,7 @@ struct cpu_functions fa526_cpufuncs = {
(void *)cpufunc_nullop, /* l2cache_wbinv_range */
(void *)cpufunc_nullop, /* l2cache_inv_range */
(void *)cpufunc_nullop, /* l2cache_wb_range */
+ (void *)cpufunc_nullop, /* l2cache_drain_writebuf */
/* Other functions */
@@ -656,6 +664,7 @@ struct cpu_functions arm1136_cpufuncs =
(void *)cpufunc_nullop, /* l2cache_wbinv_range */
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-src-projects
mailing list